计算机系统结构 第三章 流水线技术

本文详细介绍了流水线技术的基本概念、指令和运算操作流水线的应用,探讨了吞吐率、加速比及效率的计算方法,并针对流水线的瓶颈问题提供了解决方案。
摘要由CSDN通过智能技术生成

第三章 流水线技术

3.1流水线的基本概念

1.2 计算机中的流水线

  1. 把一重复的过程分解为若干子过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,保证每个子过程可并行进行,这种技术称为流水线技术。
  2. 流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。流水线的段数称为流水线的深度

1.3 指令流水线

  1. 把流水线技术应用于指令的解释执行过程,即形成指令流水线
  2. 该执行过程可分为:取指令、译码、执行、存结果等4个子过程

在这里插入图片描述
1.4 运算操作流水线
4. 把流水线技术应用于运算的执行过程,即形成运算操作流水线,即部件级流水线
5. 例:浮点加法流水线的执行过程可分为:求阶差、对阶、尾数相加、规格化等4个子过程
在这里插入图片描述
1.5 时空图
6. 流水线的工作过程常采用时空图的方法描述。
① 时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐标代表时间,纵坐标代表流水线的各个段
7. 例:指令流水线的时空图
在这里插入图片描述
1.6 流水技术的特点
8. 流水线把一个处理过程分解为若干个子过程(段),每个子过程由一个专门的功能部件来实现。

依靠并行工作缩短程序执行时间

  1. 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞、断流。

时间长的段将成为流水线的瓶颈

  1. 流水线每一个功能部件的后面都要有一个缓冲寄存器(锁存器),称为流水寄存器。

作用:在相邻的两段之间传送数据,以保证提供后面要用到的数据,并把各段的处理工作相互隔离。

  1. 流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。
  2. 流水线需要有通过时间和排空时间。

①通过时间:第一个任务从进入流水线到流出结果所需的时间。
②排空时间:最后一个任务从进入流水线到流出结果所需的时间

2.流水线的性能指标
2.1 吞吐率

13. 在单位时间内流水线所完成的任务数量或输出结果的数量,即为吞吐率TP=n/TK

n为任务数
TK为处理完成n个任务所用的时间

2.1.1 各段时间均相等的流水线

  1. 各段时间均相等的流水线时空图。
    在这里插入图片描述
  2. 公式
    (1)流水线完成n个连续任务所需要的总时间为:TK=kΔt +(n -1)Δt =( k+n-1)Δt
    (2)流水线的实际吞吐率为:TP=n/( k+n-1)Δt
    (3) 最大吞吐率为:在这里插入图片描述
    (4) 最大吞吐率与实际吞吐率的关系为:
    在这里插入图片描述

① 流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水线中的任务数n等有关。
② 只有当n>>k时,才有TP≈TPmax

2.1.2 各段时间不完全相等的流水线
在这里插入图片描述

  1. 各段时间不等的流水线及时空图。

一条4段的流水线
S1,S3,S4各段的时间:Δt
S2的时间:3Δt (瓶颈段)

流水线中这种时间最长的段称为流水线的瓶颈段。
在这里插入图片描述
2. 公式
(1)各段时间不等的流水线的实际吞吐率为:在这里插入图片描述
(2)流水线的最大吞吐率为:在这里插入图片描述
所以,上述例子中流水线最大吞吐率为:TPmax=1/3Δt
3. 解决流水线瓶颈问题:
(1)细分瓶颈段
例如:对前面的4段流水线
把瓶颈段S3细分为3个子流水线段:S3a,S3b,S3c
在这里插入图片描述
改进后的流水线的吞吐率为 :TPmax=1/ Δt
(2) 重复设置瓶颈段
例如:对前面的4段流水线
重复设置瓶颈段S3:S3a,S3b,S3c
在这里插入图片描述
在这里插入图片描述
改进后的流水线的吞吐率为 :TPmax=1/ Δt
2.2 加速比
4. 完成同样一批任务不使用流水线所用的时间与使用流水线所用的时间之比,即为加速比。
5. 假设:不使用流水线(即顺序执行)所用的间为Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为:S=Ts/Tk

2.2.1 各段时间均相等的流水线
6. 一条k段流水线完成n个连续任务所需要的时间为:Tk = (k+n-1)Δt
7. 顺序执行n个任务所需要的时间为:Ts= nk△t
8. 流水线的实际加速比为:S=nk/(k+n-1)
9. 最大加速比:在这里插入图片描述
当n>>k时, S ≈ k

2.2.2 各段时间不完全相等的流水线
10. 一条k段流水线完成n个连续任务所需要的时间为:在这里插入图片描述
2.3 效率
11. 流水线中的设备实际使用时间与整个的比值,即流水线设备的利用率,亦指效率
12. 由于流水线有通过时间和排空时间,所以在连续完成n个任务的时间内,各段并不是满负荷地工作。

2.3.1 各段时间均相等的流水线
13. 各段时间均相等的流水线时空图。
在这里插入图片描述
2. 公式
各段的效率ei相同:
在这里插入图片描述 整条流水线的效率为:
在这里插入图片描述
可以写为:E=n/(k+n-1)
最高效率为:
在这里插入图片描述

(1) 当流水线各段时间相等时,流水线的效率与吞吐率成正比E=TP△t
(2) 流水线的效率是流水线的实际加速比S与它的最大加速比k的比值。
E=S/k

当 E=1时,S=k ,实际加速比达到最大

2.3.2 流水线效率的计算

  1. 从时空图上看,效率就是n个任务占用的时空面积和k个段总的时空面积之比。
    E=n个段总的时空区/任务实际占用的时空区
  2. 当各段时间不相等时
    在这里插入图片描述
    2.4 分析举例
    例3.1 设在下图所示的静态流水线上计算:在这里插入图片描述
    流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中,试计算其吞吐率、加速比和效率。在这里插入图片描述
    解:
    (1)选择适合于流水线工作的算法
    ① 先计算A1+B1、A2+B2、A3+B3和A4+B4;
    ② 再计算(A1+B1)×(A2+B2)和(A3+B3)×(A4+B4);
    ③ 然后求总的乘积结果。
    (2)画出时空图
    在这里插入图片描述
    (3)计算性能
    ① 在18个△t时间中,给出了7个结果。吞吐率为:TP=7/18△t
    ② 不用流水线,由于一次求和需6△t,一次求积需4△t,则产生上述7个结果共需(46+34
    △t = 36△t 加速比为:S=36△t/18△t=2
    ③E=4.25
    可以看出,在求解此问题时,该流水线的效率不高。
  • 55
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值