流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。
目的是提高数据吞吐率(提高处理速度)。
流水线缩短了在一个时钟周期内给的那个信号必须通过的通路长度,从而可以提高时钟频率。
例如:一个2级组合逻辑,假定每级延迟相同为Tpd,
[upload]/bbs/BBSUploadfile/2005-11-5-19-52-30.jpg[/upload]
1.无流水线的总延迟就是2Tpd,可以在一个时钟周期完成,但是时钟周期受限制在2Tpd;
2.流水线:
每一级加入寄存器(延迟为Tco)后,单级的延迟为Tpd+Tco,每级消耗一个时钟周期,
流水线需要2个时钟周期来获得第一个计算结果,称为首次延迟,它要2*(Tpd+Tco),
但是执行重复操作时,只要一个时钟周期来获得最后的计算结果,称为吞吐延迟(Tpd+Tco);
可见只要Tco小于Tpd,流水线就可以提高速度。
推论:增加流水线长度可以节省更多延迟,
流水线越长,首次延迟越大,如果流水线反复启动,则会损失速度。
实现流水线的代价:1.消耗寄存器-就是消耗硅片面积(想想20级流水线的某著名CPU吧)
2.流水线长则消耗更多时钟周期。(如果流水线反复启动,则会损失速度,想想某CPU著名的高频率低效能吧)
文章评论(0条评论)
登录后参与讨论