计算机组成原理 第15讲_流水线

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

将一个重复的时序过程分解成为多个子过程Subprocess。每个 子过程都可有效地在其专用功能段上与其它子过程同时执行。
例如,分成4个功能段Segment: 入口 取 指 令 指令 译码 取操 作数 执行
出口
9
时空图 Space-Time-Diagram 各功能段时间相等
空间
执行
(功能段)
通过时间
This design, wherein the CPU's execution resources can operate on only one instruction at a time, can only possibly reach scalar performance (one instruction per clock). However, the performance is nearly always subscalar (less than one instruction per cycle).
③ 形成流水处理需要一段准备时间,称为“通过时间”。 此后,流水过程才能稳定。
④ 指令流发生不是顺序执行时,会使流水过程中断。再形 成流水过程需“通过时间”。要提高效率,不应常断流。 ⑤ 流水线技术适用于大量重复的程序过程。只有在输入端 能连续地提供任务,流水线效率才能充分发挥。
17
流水线结构 ① 指令流水线 Instruction Pipeline 要求指令部件每个节拍输出一条指令给执行部件。指令流水 过程要分成更多的子过程。 取 指 令 部 件 指 令 译 码 部 件 地 址 形 成 部 件 取 操 作 数 部 件 操 作 执 行 部 件
11
流水线的主要技术指标有:吞吐率,加速比,效率,等。 ① 吞吐率 Throughput Rate 单位时间内流水线所能处理的任务数(或指令数),或流 水线能输出的结果的数量。 最大吞吐率: 当流水线在连续流动达到稳定状态后的吞吐率。
如果各功能段时间都相等,Δti=Δt0
TPmax=1/Δt0
如果各功能段时间不相等,TPmax=1/max(Δti) 取决于最慢的段。
2
第6章 中央处理器
Chapter 6 Central Processing Unit
(5) The description of the basic operation of a CPU offered in the previous section describes the simplest form that a CPU can take. This type of CPU, usually referred to as subscalar, operates on and executes one instruction on one or two pieces of data at a time.
取指k+1
执行k+1 取指k+2
Δt
执行k+2
重叠解释不能加快一条指令的实现,但能加快相邻两条指 令以至一段程序的解释。 重叠方式把一条指令的解释过程分解成“取指”,“执行” 两个子过程。若每个子过程需Δt时间,一条指令需2Δt时间完成。 机器每隔Δt时间完成一条指令的解释。吞吐率提高一倍。
7
重叠方式与顺序方式的比较
计算机组成原理
Principles of Computer Organization
广义双语教学课程
青岛理工大学 校级精品课程
http://211.64.192.109/skyclass25/ http://jx.qtech.edu.cn/ec/C84/
计算机组成原理设计性作业
第8周周末完成
课题3 组合逻辑控制单元设计
取指k 取指k 执行k 执行k 取指k+1 执行k+1 取指k+2 执行k+2 取指k+1 执行k+1 取指k+2 执行k+2 取指k+3 执行k+3
理想情况
取指k+3 执行k+3
不同指令在各个阶段 所需时间不同 取指k 执行k
实际情况?
取指k+1
执行k+1
取指k+2 一次重叠
8
执行k+2
3.流水方式 Pipelining One of the simplest methods used to accomplish increased parallelism is to begin the first steps of instruction fetching and decoding before the prior instruction finishes executing. This is the simplest form of a technique known as instruction pipelining, and is utilized in almost all modern general-purpose CPUs.
10
时空图 Space-Time-Diagram 各功能段时间不等
空间 执行 (功能段)
1
2
3
4 4
取数
分析 取指
1
1 1 2 2
2 3
3
3 4
4
气泡 Bubble
时间
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14
In computing, a pipeline is a set of data processing elements connected in series, so that the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion.
用硬布线(组合逻辑)控制法设计一个简单模型机的控 制单元CU(微操作信号产生电路)。 假设该模型机有 8 条不同类型的指令。包括:算术运算、 逻辑运算、移位、数据传送、访存操作、转移等。根据每条 指令的功能和时序,分析其执行过程中需要在各个阶段产生 的全部微操作,导出产生这些微操作控制信号的逻辑。
提示:需要决定指令周期包括哪几个机器周期,每个机器周期 包括几拍,每拍包括几个时钟,以及时钟周期是多少nS。有些 操作可能还需要规定是在时钟的上升沿或是在时钟的下降沿进 行。
锁 存 器
锁 存 器
锁 存 器
各段与一个统一的时钟同步。
在各段间增加锁存器。
19
流水线要解决的技术问题 要实现重叠和流水,还要解决:访存冲突,相关,等问题。 1.访存冲突 Resource Conflicts 在同一时间段,“分析k”在形成操作数有效地址后要访存取 操作数,而“取指k+1”也需访存取指令。 取指k 分析k 取指k+1 执行k 分析k+1 取指k+2 k+1 执行k+1 分析k+2 执行k+2
设各段时间相等,每段效率ei相等, e0 = e1 = ……= em : e0 = n·Δt0/T = n/(m+(n-1))
m e0 n m t0 m m m T 若各段时间不等,则各段的效率也不等,整个流水线的效率
整个流水线的效率
i
e E
E
n t i
i 1
回 写 结 果 部 件
修 改 指 令 指 针 部 件
在指令流水过程中要不断访存,所需时间不确定,难以 用统一的时钟控制各段工作。
18
流水线结构 ② 运算操作流水线 Arithmetic Pipelining 按照指令的要求,选择合适的算法,把运算过程分成多个子 过程。使各个子过程的时间尽量相等。 对 阶 功 能 部 件 尾 数 加 部 件 规 格 化 部 件
断流
取数
分析 取指
1 1 1 2 2 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6
5 6
6 7 7 7 8 8 9
7 8 9
8 9
9
排空时间 时间
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14
4个功能段Segment: 入口 取 指 令 指令 译码 取操 作数 执行 出口
20
解决访存冲突的方法: 取指k 分析k 执行k
取指k+1
分析k+1 取指k+2 k+1
执行k+1 分析k+2
执行k+2
① 采用“哈佛结构”。指令和操作数分别存放在2个独立编址且 可同时访问的存储器内。 ② 采用多体交叉存储器。使第k条指令的操作数与第k+1条指令 不在同一个存储体内。 ③ 设置指令缓冲寄存器组。把若干条指令预先从主存取到指缓。 取指令部件从指缓取指令,执行部件从主存取操作数,互相不干 扰。只要指缓不满,就自动从主存预取指令。
Instruction level parallelism In the best case scenario, this pipeline can sustain a completion rate of one instruction per cycle.
16பைடு நூலகம்
流水技术的特点 ① 流水线可分成若干个互有联系的子过程,分别由专用功 能段实现。 ② 实现子过程的功能段所需时间尽可能相等,避免因不等 而产生处理的瓶颈,形成流水线的断流。
m m 1 1 n
13
② 加速比 Speedup Ratio m段流水线的速度与等效的非流水线的速度之比。 •若各段时间不等 加速比:
SP
n ti
i 1
m
Δtj是最慢的一段时间
t
i 1
m
i
(n 1) t j
14
流水线上的各段有 “通过时间”和“排空时间”, ③ 效率 Efficiency 并非都是满负荷工作。 流水线上的设备利用率就是效率。
Model of a subscalar CPU.
3
Model of a subscalar CPU.
This process gives rise to an inherent inefficiency in subscalar CPUs. Since only one instruction is executed at a time, the entire CPU must wait for that instruction to complete before proceeding to the next instruction.
m
m ti (n 1) t j
i 1
m
n个任务占用的时空区 m个段总的时空区
15
Pipelining allows more than one instruction to be executed at any given time by breaking down the execution pathway into discrete stages. This separation can be compared to an assembly line, in which an instruction is made more complete at each stage until it exits the execution pipeline and is retired. Basic five-stage pipeline.
取指k 分析k 执行k 取指k+1 分析k+1 执行k+1 取指k+2 ……
顺序方式的优点是控制简单。 缺点是速度上不去,机器各部件的利用率不高。
6
2.重叠方式 Overlap 在解释第k条指令的操作完成之前,就可开始解释第k+1条指令。 例如,把解释一条机器指令分为:取指,执行,两个子过程。 取指k 执行k
4
§6.5 流水线工作原理
计算机的速度可以用每秒执行的指令条数来表示。 指令的解释 怎样加快一条指令的解释过程? 为了加快单条指令的解释过程可采用的方法有:
•选用更高速的器件
•减少解释过程所需拍数 •使解释过程的各个动作并行执行 指令的解释可以有三种控制方式:顺序,重叠,流水。
5
1.顺序方式 各条机器指令间顺序串行执行。一条指令执行完之后,才取 下条指令来执行。指令内的各条微指令也是顺序串行执行的。 例如,把解释一条机器指令分为:取指,分析,执行,3个 子过程。
12
② 加速比 Speedup Ratio m段流水线的速度与等效的非流水线的速度之比。 •若各段时间相等 完成n个任务的时间: T流水= m·Δt0 + (n-1)·Δt0 T非流水= n·m·Δt0 加速比:
n m t0 T非流水 nm SP m t0 (n 1) t0 T流水 m n 1
相关文档
最新文档