前言
Piple - line 广泛应用于CPU & 高性能 DSP中。
参考:《Verilog数字系统设计教程》
某乎
概念
流水线设计:把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组并暂存中间数据。K级的流水线就是从组合逻辑的输入到输出恰好有K个寄存器组。上一级的输出是下一级的输入而又无反馈的电路。
如上图电路,组合逻辑部分可划分为两级。第一级的延迟是T1和T3中的最大值。第二级的延迟等于T2的延迟。因而该组合逻辑的传播延迟为:
[max(T1,T3) + T2]
加入流水线后,第一级寄存器具有的总延迟:
max(max(T1,T3) + Tco, (T2 + Tco))
Tco为寄存器的触发时间。
流水线的优势:提高吞吐量 How ?
Ans: 假设T1、T2和T3有同样的传播延迟 Tpd。这对于组合逻辑设计,总延迟为 2 * Tpd。对于流水线设计来说,计算周期为( Tpd + Tco )。
首次延迟:从最长的路径进行初始化所需要的时间总量
吞吐延迟 :执行一次重复性操作所需要的时间总量
组合逻辑的首次延迟和吞吐延迟同为 2 * Tpd
流水线设计中,首次延迟为 2 * (Tpd + Tco),吞吐延迟为 Tpd + Tco
总结
改善整个系统的吞吐量,但不能改善甚至会恶劣单个任务的执行速度。
在分割组合逻辑时,使分割后的每段处理时间尽量相同,因为系统时钟是由最慢的那段决定的