原创 流水线(转)

2006-10-22 21:55 4852 11 11 分类: FPGA/CPLD
流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是提高数据吞吐率(提高处理速度)。流水线缩短了在一个时钟周期内给的那个信号必须通过的通路长度,从而可以提高时钟频率。例如:一个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条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条