体系结构笔记------流水线概述

Pipeline

流水线技术是指将一重复的时序过程分解为若干子过程,每个子过程都可有效地在其专用功能段上与其它子过程同时执行,这种技术称为流水技术。

这里重复的时序过程与子过程就是指将指令过程进行划分,指令划分之后的若干子过程之间并无相关与依赖,可以保证不同指令的不同子过程之间同时执行。

由于进行了过程划分,流水线的速度受制于最慢流水站的速度(指令划分的子过程中用时最长的)。

流水线无法缩短单个指令的执行时间,但是多个指令的指令流水是并行处理,可以提高吞吐率(单位时间内完成的任务数量)。

时空图

在这里插入图片描述
从时间和空间两个方面描述流水线的工作过程。
横坐标表示时间,纵坐标表示流水段。

特点:流水过程由多个相关的子过程组成,这些子过程称为流水线的“级”或“段”。段的数目称为流水线的“深度”。
每个子过程由专用的功能段实现,各功能段的时间应基本相等,通常为1个时钟周期。
流水线需要经过一定的通过时间才能稳定。
流水技术适合于大量重复的时序过程。

大致分类

操作功能

单功能流水线:只能完成一种固定功能的流水线。
多功能流水线:可以进行不同的连接,从而可以完成不同的功能。
在这里插入图片描述
通过对子过程的拆分重组可以实现不同功能的扩充。

连接方式

这个分类的前提是对多功能流水线进行的。
静态流水线:在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算,同时执行多种功能。

流水级别

部件级:又叫运算操作流水线,把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。
处理机级:又叫指令流水线,是把解释指令的过程按照流水方式处理。
处理机间:又叫宏流水线,是由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。

数据类型

标量流水处理机:仅对标量数据进行流水处理。
向量流水处理机:是指处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。

是否含有反馈回路

线性流水线:流水线的各段串行连接,没有反馈回路。
非线性流水线:除有串行连接的通路外,还有反馈回路。

流水线调度问题(非线性流水线)

确定什么时候向流水线注入新的输入,从而使新输入的数据和先前操作的反馈数据在流水线中不产生冲突,此即所谓流水线调度问题。
在这里插入图片描述
在这里插入图片描述

流入流出顺序

按照输出端任务流出顺序与输入端任务流入顺序是否相同划分。
乱序流动流水线也可称为无序流水线、错序流水线;

性能描述

吞吐率

吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量(指令数)。

最大吞吐率

最大吞吐率TPmax ,是指流水线在达到稳定状态后的吞吐率。

最大吞吐率取决于流水线中最慢一段所需的时间。

假设流水线各段的时间相等,均为△t0
TPmax = 1/△t0

假设流水线各段时间不等,第i段时间为△ti
TPmax = 1/max{△ti }

实际吞吐率

实际吞吐率肯定比最大吞吐率小
实际吞吐率:完成的指令数/流水时间(n/T流水)
在这里插入图片描述

加速比

使用加速比来描述流水线的性能。大致定义为:
未使用流水前n个任务的使用时间 / 使用流水线后的用时

理想中的加速比为流水站数(划分的子过程数)
实际情况中无法达到这一效果,主要原因是流水线在流水站之间的速度不匹配,并且运算之间存在关联,需要通过填充或排空来保证运行与数据安全。

流水效率

效率指流水线对设备的利用率。
从时空图上看,效率就是n个任务所占的时空区与m个段总的时空区之比。
在这里插入图片描述
即浅色的矩形与深色部分的比值。
E=n个任务占用的时空区/m个段总的时空区

性能小结

流水线并不能减少(而且一般是增加)单条指令的执行时间,但能够提高吞吐率;
增加流水线的深度通常可以提高流水线性能;
流水线深度受限于流水线的延迟和额外开销;