第一节 流水线工作原理
流水工作方式:将一个计算任务细分成若干个子任务,每个子任务由专门的部件处理,多个计算任务依次进行并行处理。

一、流水线的分类
操作部件级,指令级,处理器级
单功能,多功能
静态,动态
线性,非线性
标量,向量
二、流水线的性能
1. 吞吐率:单位时间内流水线能处理的任务数量。
对于线性流水线: Dt=max{t1,…,ti,…,tm}+tl
时空图:

最大吞吐率:流水线达到不间断流水的稳定状态后可获得的吞吐率。
流水线瓶颈的解决:


对于线性流水线,完成n个任务所需时间为T=mDt+(n-1)Dt,实际吞吐率为:

2. 加速比:流水方式的工作速度与等效的顺序工作方式时间的比值。
对于线性流水线:

3. 使用效率:工作时间的时空区与流水线中各段总的时空区之比。
退耦流水线

三、流水线的相关处理
三种相关性:
1. 资源相关(结构相关)
解决方法:增加资源
2. 数据相关(RAW、WAR、WAW)
解决方法:停顿、编译检测、旁路相关专用通路
3. 控制相关。
解决方法:提前判断、转移延迟槽等
四、流水线的调度
非线性流水线的调度方法
预约表
表8-1 非线性流水线预约表
|
|
t1 |
t2 |
t3 |
t4 |
t5 |
t6 |
t7 |
t8 |
t9 |
|
S1 |
x |
|
|
|
|
|
|
|
x |
|
S2 |
|
x |
x |
|
|
|
|
x |
|
|
S3 |
|
|
|
x |
|
|
|
|
|
|
S4 |
|
|
|
|
x |
x |
|
|
|
|
S5 |
|
|
|
|
|
|
x |
x |
|
禁止表
F = {1, 5, 6, 8}
冲突向量
C = 10110001
调度状态转换图

调度方案比较
表8-2 各种调度方案的平均间隔拍数
调度策略 |
平均间隔周期 |
|
bc: (3,4) |
3.50 |
|
ad: (2,7) |
4.50 |
|
ade: (2,2,7) |
3.67 |
|
abcb: (3,4,2,7) |
4.25 |
|
abc: (3,4,7) |
4.67 |
|
acb: (4,3,7) |
4.67 |
|
ab: (3,7) |
5.00 |
|
ac: (4,7) |
5.50 |
|
a: (7) |
7.00 |