3.1流水线的基本概念
3.1.1 什么是流水线
流水线技术
把一个重复的过程分解为若干个子过程,每个子过程由专门的功能部件来实现。把多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他的子过程并行进行。
流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。流水线的段数称为流水线的深度。
把流水线技术应用于运算的执行过程,就形成了运算操作流水线,也称为部件级流水线。
时空图
时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐标代表时间,纵坐标代表流水线的各个段。
流水技术的特点
1.合作:流水线把一个处理过程分解为若干个子过程(段),每个子过程由一个专门的功能部件来实现。
2.瓶颈:流水线中各段的时间应尽可能相等,否则将引起流水线堵塞、断流。时间长的段将成为流水线的瓶颈。
3.流水寄存器:流水线各功能部件间都要有一个缓冲寄存器(锁存器)。
4.流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。
5.流水线需要有通过时间和排空时间。两个时间段流水线均不满载
通过时间:第一个任务从进入流水线到流出结果所需的时间。
排空时间:最后一个任务从进入流水线到流出结果所需的时间。
3.1.2 流水线的分类
单功能流水线与多功能流水线(按照流水线所完成的功能来分类)
单功能流水线:只能完成一种固定功能的流水线。
多功能流水线:流水线的各段可以进行不同的连接,以实现不同的功能
静态流水线与动态流水线(按照同一时间内各段之间的连接方式对多功能流水线做进一步的分类)
静态流水线:在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作。
动态流水线:在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。
部件级、处理机级及处理机间流水线(按照流水的级别来进行分类)
部件级流水线(运算操作流水线):把处理机的算术逻辑运算部件分段,使得各种类型的运算操作能够按流水方式进行。
处理机级流水线(指令流水线):把指令的解释执行过程按照流水方式处理。把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。
处理机间流水线(宏流水线&系统级流水线):它是由两个或两个以上的处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。
线性流水线与非线性流水线(按照流水线中是否有反馈回路来进行分类)
线性流水线:流水线的各段串行连接,没有反馈回路。
非线性流水线:流水线中除了有串行的连接外,还有反馈回路。
顺序流水线与乱序流水线(根据任务流入和流出的顺序是否相同来进行分类)
顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。每一个任务在流水线的各段中是一个跟着一个顺序流动的。
乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成(从输出端流出)。
标量处理机与向量流水处理机
把指令执行部件中采用了流水线的处理机称为流水线处理机。有下面两种流水线处理机:
标量处理机:处理机不具有向量数据表示和向量指令,仅对标量数据进行流水处理。
向量流水处理机:具有向量数据表示和向量指令的处理机。
3.2 流水线的性能指标
3.2.1吞吐率
吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。用TP表示,计算公式如下:
对于各段时间均相等的流水线来说:
流水线完成n个连续任务所需要的总时间为(假设一条k段线性流水线)
流水线的实际吞吐率:
最大吞吐率:
最大吞吐率与实际吞吐率的关系:
对于各段时间不完全相等的流水线来说:
例如:一条4段的流水线:
S1,S3,S4各段的时间:Δt
S2的时间:3Δt (瓶颈段)
流水线中这种时间最长的段称为流水线的瓶颈段。
各段时间不等的流水线的实际吞吐率:
( Δti为第i段的时间,共有k个段 )
流水线的最大吞吐率为
解决流水线瓶颈问题的常用方法
1.细分瓶颈段
例如:对前面的4段流水线把瓶颈段S3细分为3个子流水线段:S3a,S3b,S3c
2.重复设置瓶颈段
缺点:控制逻辑比较复杂,所需的硬件增加了。
例如:对前面的4段流水线重复设置瓶颈段S3:S3a,S3b,S3c
3.2.2 加速比(Speedup)
流水线加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。
当流水线各段时间相等(都是△t):
流水线的实际加速比为
最大加速比:
当流水线的各段时间不完全相等时:
一条k段流水线完成n个连续任务的实际加速比为
3.2.3 效率(Efficiency)
效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线设备的利用率。
当各段时间相等时,各段的效率ei相同:
整条流水线的效率为
可以写成
最高效率为:
当流水线各段时间相等时,流水线的效率E与吞吐率TP成正比:
流水线的效率是流水线的实际加速比S与它的最大加速比k的比值。
当E=1时,S=k,实际加速比达到最大。
从时空图上看,效率就是n个任务占用的时空面积和k个段总的时空面积之比:
当各段时间不相等时: