流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是提高数据吞吐率(提高处理速度)。
流水线缩短了在一个时钟周期内给的那个信号必须通过的通路长度,从而可以提高时钟频率。例如:一个2级组合逻辑,假定每级延迟相同为Tpd,无流水线的总延迟就是2Tpd,可以在一个时钟周期完成,但是时钟周期受限制在2Tpd;如果使用流水线,每一级加入寄存器(延迟为Tco)后,单级的延迟为Tpd+ Tco,每级消耗一个时钟周期,流水线需要2个时钟周期来获得第一个计算结果,称为首次延迟,它要2*(Tpd+Tco),但是执行重复操作时,只要一个时钟周期来获得最后的计算结果,称为吞吐延迟(Tpd+Tco);可见只要Tco小于Tpd,流水线可以提高速度。
实现流水线的代价:
1.消耗寄存器-就是消耗硅片面积(想想20级流水线的某著名CPU吧)
2.流水线长则消耗更多时钟周期。(如果流水线反复启动,则会损失速度,想想某CPU著名的高频率低效能吧)
下面附上一段流水线在CPU设计中的应用和问题进行简要介绍
对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(ALU),写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控