- 第三章 流水线技术
- 流水线定义:把一个重复的过程分解为若干个子过程,每个过程由专门的功能部件来实现,把多个处理过程在时间上错开,依次通过各个功能段,这样每个子过程就可以与其他子过程并行进行。
- 流水线的深度:流水线的段数称为流水线的深度;
- 流水线工作过程常采用时空图来描述
- 流水线的特点:
- 将一个处理过程分为若干子过程,每个子过程由专门功能部件实现;
- 各段时间应尽量相等,避免阻塞、断流从而形成瓶颈段;
- 每个功能部件后都需要一个缓冲寄存器(锁存器),称为流水寄存器;
- 适合大量重复的时序过程,,输入端最好不断地提供任务才能发挥最大效率;
- 流水线需要由通过时间河排空时间。
- 流水线的分类;
- 单功能流水线与多功能流水线:
- 单功能:只能完成一种固定功能;
- 多功能:各段可以进行不同的链连接以完成不同的功能。
- 静态流水线与动态流水线:都属于多功能流水线
- 静态:同一时间各段按同一连接方式工作,若需另一种连接实现另一种功能,则需等待原来任务流出后才可改变连接;
- 同一时间各段可按不同方式连接实现不同功能,灵活,提高处理速度。
- 单功能流水线与多功能流水线:
注意:静态流水线只有输入的是一串相同的计算任务时才充分发挥流水线效率,否则流水线效率回合顺序处理一致。
-
- 顺序流水线与乱序流水线:
- 顺序:输出端任务流出顺序与输入端任务输入顺序一致,即任务一个跟着一个;
- 乱序:允许不按照输入顺序流出。
- 顺序流水线与乱序流水线:
- 流水线的性能指标:
- 吞吐率:TP = 完成任务数/完成任务所用时间。
注:在各段不完全相等的流水线中,时间最长的段称为流水线的瓶颈段。
解决瓶颈段问题的方法:
- 细分瓶颈段:将瓶颈段细分成小段,每小段为∆t
- 重复设置瓶颈段:重复设置的段并行工作,依次错开处理任务,但控制逻辑复杂,需要的硬件也增多。
- 加速比:S = 不使用流水线的时间/使用流水线的时间。
- 效率:E = 任务实际占用的时空区/总的时空区。
- 流水线中的三个问题:
- 瓶颈问题:计算机的时钟周期取决于瓶颈段的延迟时间,因此设计流水线时要尽可能的使各段时间相等。
- 流水线的额外开销:是指流水寄存器延迟和时钟偏移开销。采用流水技术后,可以提高指令执行的吞吐从而提高执行速度,但流水线实际上并不能真正减少一条指令的执行时间。实际上,由于开销的存在,反而会使每条指令的执行时间增加,这限制了流水线深度的增加。前面提到增加流水线的段数可以提高流水线的性能,但是流水线段数的增加是受到额外开销限制的,一旦时钟周期减小到和额外开销时间接近的时候,流水线就没有意义。
- 冲突问题:后面的计算要用到前面的结果等,数据冲突,控制冲突,结构冲突等。