技术是朴实的

『原』流水线技术——面积与速度的矛盾(之一)

上一篇 / 下一篇  2007-01-27 18:41:21 / 天气: 晴朗 / 心情: 平静 / 个人分类:〖数字基础〗

流水线技术——面积与速度的矛盾(之一)


  在电路设计当中,面积与速度永远是一对矛盾的共生体。在节省面积的前提下,电路的速度就不会做的很高;而为了提高速度,就必须牺牲一定的面积。下面以流水线设计技术为例来介绍为什么面积与速度是一对矛盾的共生体,以及流水线技术是怎样用面积来换取速度的。

1、流水线设计的概念:

  流水线设计是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组并暂存中间数据。K级的流水线就是从组合逻辑的输入到输出有K级寄存器组,上一级的输出是下一级的输入而又无反馈电路。

  下图表示了如何把组合逻辑设计转换为相同组合逻辑功能的流水线设计。

  图左边的组合逻辑包括两级:第一级的延迟是逻辑A的延迟tA和逻辑B的延迟tB中的最大值;第二级的延迟为逻辑C的延迟tC。电路的逻辑输入要经过这个组合逻辑而得到稳定的计算结果输出,需要等待的传播延迟为[max(tA+tB)+tC]。

  在从输入到输出的每一级插入寄存器后,如图右所示,第一级寄存器所具有的总延迟为tA与tB中的最大值加上寄存器的触发时间tCO。同样,第二级寄存器延迟为tC加上tCO。这样从逻辑输入到取得稳定的计算结果输出,需要等待的传播延迟为[(max(tA,tB)+tCO),(tC+tCO)]。由于器件中逻辑门的延迟相对于触发器的触发时间要长的多,因此采用流水线设计要比同功能的组合逻辑设计具有更快的速度。

  需要注意的是,上面的流水线设计需要两个时钟周期才能取得第一个计算结果,但是随后的计算结果只需要一个时钟周期即可得到。开始时用来获得第一个计算结果的两个时钟周期被称为流水线设计的首次延迟。

2、流水线设计的作用:

  流水线设计的作用在于它能提高电路的工作速度。仍以上面的例子为例,若逻辑A、B、C的延迟均为tPD,对于组合逻辑而言,一次计算的总延迟为2×tPD;对于流水线设计而言,一次计算所需的时间为(tPD+tCO),称为吞吐延迟。前面讲的首次延迟是对从输入到输出之间最长路径的初始化所需的时间。在组合逻辑设计中,首次延迟和吞吐延迟均为2×tPD;而在流水线设计中,首次延迟为2×(tPD+tCO),而吞吐延迟为(tPD+tCO)。而tCO<tPD,因此采用流水线设计,吞吐延迟要比组合逻辑的小得多,提高了电路的工作速度。

3、流水线设计的不足:

  流水线设计虽然能够提高电路的速度,但它需要在组合逻辑的每一级插入相应的寄存器。这对于简单的组合逻辑来说,可能只要很少的寄存器就能实现速度的提高;但对于复杂的组合逻辑,所需的寄存器的数量就会成倍的增加。因此,流水线设计在速度上的提高是以消耗较多的寄存器资源为代价的,这是面积和速度之间的矛盾的必然结果。


(待续)


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar