流水线工作原理PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S3
1 2 3 4 5 … … … n-1 n
S2
1 2 3 4 5 … … … n-1 n
S1 1 2 3 4 5 … … … n-1 n
mΔt
. (n-1) Δt
T时间
7
举例 用一条5个功能段的浮点加法器流水线计算
10
F Ai i 1
每个功能段的延迟时间均相等,流水线的输出端和输入端之 间有直接数据通路,而且设置有足够的缓冲寄存器。要求用 尽可能短的时间完成计算,画出流水线时空图,并计算流水 线的实际吞吐率、加速比和效率。
R8=R5+R6
R7=R3+R4
F=R7+R8
.
10
整个计算过程需要21Δt,所以吞吐率为:
Tp 9 21t
加速比为: 效率为:
S95t 452.14 2 1t 21
E95t 42.86% 52 1t
.
11
课后思考
15
F Ai i 1
20
F Ai i 1
100
F Ai i 1
1000
F Ai i 1
.
12
本课到此结束
谢谢大家
.
13
➢ 取指(FI):从存储器取出一条指令并暂时 存入指令部件的缓冲区。
➢ 指令译码(DI):确定操作性质和操作数地 址的形成方式。
➢ 计算操作数地址(CO):计算操作数的有效 地址,涉及到寄存器间址、间址、变址、基 址、相对寻址等各种地址计算方式。
Sp = m Δ· t +(n-1) Δ· t = m + n -1
.
5
3. 效率
流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态
S空间
空间
S4
1 2 3 4 5 … … … n-1 n
S3
1 2 3 4 5 … … … n-1 n
.
9
部件m
R2 R4
R1 R3 R5 R6 R7
R8
F
5
1 2 34 5 6 7
8
9
4
1 2 34 5 6 7
8
9
3
1 2 34 5 6 7
8
9
2 1 2 34 5 6 7
8
9
11 2 34 5 6 7
8
9
时间
21Δt
百度文库
R1=A1+A2 R2=A3+A4 R3=A5+A6 R4=A7+A8
R5=A9+A10 R6=R1+R2
➢ 取操作数(FO): 从存储器中取操作数(若 操作数在寄存器中,则无需此阶段)。
➢ 执行指令(EI):执行指令所需的操作,并 将结果存于目的位置(寄存器中)。
➢ 写操作数(WO):将结果存入存储器。
.
返14 回
一、指令流水原理
1. 指令的串行执行
取指令 1 执行指令 1 取指令 2 执行指令 2 取指令 3 执行指令 3 …
取指令 取指令部件 完成 总有一个部件 空闲 执行指令 执行指令部件 完成
2. 指令的二级流水
取指令 1 执行指令 1
取指令 2 执行指令 2
指令预取
取指令 3 执行指令 3
若 取指 和 执行 阶段时间上 完全重叠
指令周期 减半 速度提. 高 1 倍
1
3. 影响指令流水效率加倍的因素
(1) 执行时间 > 取指时间
取指令 部件
指令部件 缓冲区
执行指令 部件
(2) 条件转移指令 对指令流水的影响
必须等 上条 指令执行结束,才能确定 下条 指令的地址,
造成时间损失
猜测法
解决办法 ?
.
2
4. 指令的六级流水
t 1 2 3 4 5 6 7 8 9 10 11 12 13 14
.
8
✓ I1:
R1←A1+A2
✓ I2:
R2←A3+A4
✓ I3:
R3←A5+A6
✓ I4:
R4←A7+A8
✓ I5:
R5←A9+A10
✓ I6:
R6←R1+R2
✓ I7:
R7←R3+R4
✓ I8:
R8←R5+R6
✓ I9:
F←R7+R8
这并不是唯一可能的计算方法。假设功能段的延迟为Δt。时
-空图如下,图中的数字是指令号。
S2
1 2 3 4 5 … … … n-1 n
S1 1 2 3 4 5 … … … n-1 n
mΔt
. (n-1) Δt
T时间
6
3. 效率
流水线中各功能段的 利用率
效率 =
=
S空间
空间
流水线各段处于工作时间的时空区
流水线中各段总的时空区
mnΔt m(m + n -1) Δt
S4
1 2 3 4 5 … … … n-1 n
[分析]首先需要考虑的是,10个数的的和最少需要做几次加法。
我们可以发现,加法的次数是不能减少的:9次;
于是我们要尽可能快的完成任务,就只有考虑如何让流水线 尽可能充满,这需要消除前后指令之间的相关。
由于加法满足交换率和结合率,我们可以调整运算次序如以下的指令序列 ,我们把中间结果寄存器称为R,源操作数寄存器称为A,最后结果寄存 器称为F,并假设源操作数已经在寄存器中,则指令如下:
指令 1 FI 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9
DI CO FO EI WO FI DI CO FO EI WO
FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO
完成 一条指令 串行执行 六级流水
6 个时间单位
6 × 9 = 54 个时间单位
14 个时间单位
.
注释
3
二、流水线性能
1. 吞吐率 单位时间内 流水线所完成指令 或 输出结果 的 数量
设 m 段的流水线各段时间为Δ t
• 最大吞吐率
Tpmax
=
1
Δt
• 实际吞吐率
连续处理 n 条指令的吞吐率为
Tp
=
n m ·Δt+ (n-1)
·Δ
t
.
4
2. 加速比 Sp
m 段的 流水线的速度 与等功能的 非流水线的速度 之比
设流水线各段时间为 Δ t
完成 n 条指令在 m 段流水线上共需
T = m ·Δt + (n-1) Δ· t
完成 n 条指令在等效的非流水线上共需
T′= nm ·Δt
则
nm ·Δt
nm