什么是流水线处理?
流水线技术是一种将顺序过程分解成小的片段或子操作的技术。每个子程序的执行都在某个专门的段中进行,该段与所有其他段一起工作。流水线包含一系列处理段,这些段有助于二进制信息的流动。
流水线的内部工作方式是这样的:一个段的结果被传递到流水线的下一个段,直到获得期望的结果。在信息通过所有段处理后获得结果。
术语“流水线”表示信息的流动是并行的。流水线定义了处理的时序重叠。通过将寄存器与流水线中的每个段相关联来完成处理的重叠。寄存器有助于在每个段之间提供隔离,以便每个段可以同时处理不同的数据。
一个段由一个输入寄存器和一个组合电路组成。寄存器存储信息,组合电路在特定段中运行。一个段的组合电路的输出被发送到下一个段的输入寄存器。为了执行每个段中的活动,为每个寄存器设置一个时钟。
当我们考虑三个指令的顺序执行时,每个指令都有三个执行阶段,得到的顺序是以下指令周期。
如果每个阶段需要一个单位时间,并且每个动作都需要一个单独的单元,那么总共需要九个单位时间。对于相同指令集的流水线执行,该序列只需要五个单位时间。
该图显示了并行处理和顺序处理之间的比较。
从图中可以看出,通过使用流水线,我们可以节省大约 50% 的执行时间。
我们将用一个简单的例子来说明流水线组织。假设我们需要对一系列数字执行组合的乘法和加法运算。
Ai * Bi + Ci 其中 i = 1,2,3 … 7
每个子操作都在流水线内的某个段中执行。每个段之间的分离由寄存器提供,以便每个段同时处理不同的数据。
每个段使用一个或三个寄存器和组合电路。R1 到 R7 是在每个时钟脉冲中获得新信息的寄存器。组合电路是乘法器和加法器。
R1 ← Ai, R1 ← Bi 输入 Ai 和 Bi
R3 ← R1 * R2, R4 ← Ci 乘法和输入 Ci
R5 ← R3 + R4 将 Ci 加到乘积中