数据通路流水线的制作方法_3

文档序号:9125470阅读:来源:国知局
中的输出寄存器块218、220在交替的周期上被启用,且在任何时钟周期中只从一对输出寄存器块中的一个读取数据(例如,在时钟周期0、2等上读取输出寄存器块218,并在时钟周期1、3等上读取输出寄存器块220)。因此,可通过将输出寄存器块移动越过多工器222并用单个输出寄存器块420将其替换来优化流水线,其中输出寄存器块420在所有时钟周期上被启用并从两个逻辑通路交替地接收数据,并且来自两个逻辑通路的数据在每个循环上被读取。
[0058]应理解,尽管图4只示出两个逻辑通路,但是方法可被延伸至形成N个逻辑通路的N个再生块。在这种示例中,每个输入寄存器级在每第N个时钟周期被启用,其中每个时钟周期中启用一个输入寄存器级。这表示N个再生块中的每一个再生块具有用以处理输入数据的N个时钟周期,且多工器在每个时钟周期中选择N个通路中的一个并轮流循环对N个通路中的每一个的选择。在所有时钟周期上启用流水线42中的单个输出寄存器块420。
[0059]与第一个改进的流水线22相比,第二个示例性改进的流水线42减小寄存器所需的区域,并且从而降低静态(或泄漏)功率消耗,同时动态功率消耗基本保持不变。
[0060]与传统的流水线式解决方案(例如,如流水线21中所示的)相比,在第二个示例性改进的流水线42中具有相同总数的寄存器块;然而,每个通路包括更少的寄存器级,从而减少总的设置和保持时间。而且,由于寄存器级只位于输入端和输出端处,它们的宽度更窄(即,它们需要存储较少位数),且由于并行的通路,寄存器级被更少定时(流水线21中的寄存器级在每个时钟周期上都进行定时,然而流水线42中的输入寄存器级只在交替的周期上定时)。与流水线21相比,这将降低动态功率消耗。
[0061]图5示出可对流水线51 (其可对应于图4中所示的改进的流水线42)做出的进一步的优化,其中在每个再生逻辑块的末端(且因此每个逻辑通路的末端)处具有相同的逻辑块502、504,来自其中的数据只需要在交替的时钟周期上稳定一个周期。在各个示例中,用于寄存器重定时的已知算法可被使用以优化其中使用侧流线的多工器的定位。示例算法在由C.E.Leiserson和J.B.Saxe于1991年出版在Algorithmica的“重定时同步电路系统(Retiming Synchronous Circuitry”)中提出。其他示例算法是网络流量算法和混合整数线性程序算法。
[0062]返回参考改进的流水线42,再生逻辑块206、208可被分为如图5所示的两个或多于两个较小的逻辑块502-508(如果使用了传统的流水线,情况将是逻辑块之间没有寄存器级)。在流水线51中所示的示例中,每个通路中的较小的逻辑块506、508中的第一个需要稳定2个时钟周期(例如,如果N = 2,则块506在周期O — I上保持稳定,块508在周期I — O上保持稳定),然而,每个通路中的较小的逻辑块502、504中的最后一个只需要在交替的时钟周期上稳定一个周期(例如,如果N = 2,则块502在周期I上保持稳定,块504在周期O上保持稳定)。
[0063]如在改进的流水线52中所示,多工器222前面的两个逻辑块502、504可反而被多工器222后面的单个逻辑块510替代,其中两个逻辑块502、504中的每个只需要在交替的时钟周期上稳定一个周期。这减少了被再生的逻辑的数量,从而减少了制造流水线所需的面积(例如,硅面积),同时仍然使得时钟速度(以及由此吞吐量)能够增加。由于现在多工器222在逻辑链内(S卩,多工器222在其输入端和输出端均具有逻辑块),而不是在所有逻辑之后,因此这可能增加多工器必须能够适应的数据的宽度;然而,由于实现多工器所需的逻辑相对简单,因此这不会导致所需面积的大幅增加。
[0064]输出端处的多工器222不增加很多逻辑级(例如,其可被实现作为单极的与/或),且多工器代表的额外面积由寄存器所占的面积的降低来抵消(作为整体,在寄存器中存储较少的位,因为寄存器仅位于通路的输入端和输出端,而不位于通路的中间,其中在通路中间的数据的宽度可能比在输入端处的大)。
[0065]就图2和图4来说,应理解,尽管图5只示出两个逻辑通路,但是方法可被延伸至N个逻辑通路。在这种示例中,其中在每个路径的末端处具有逻辑,其只需要在每第N个时钟周期上稳定,该逻辑可被多工器后的逻辑的单个实例替代。
[0066]图6示出(如能够人工产生的或通过使用寄存器重定时技术产生的)全流水线式功能单元61和使用流水线操作和侧流线的组合的功能单元62的比较。为了清楚起见,当描述图6时使用术语“功能单元”来代替流水线,且应理解,所示的功能单元可以是完整的功能单元或其部分。
[0067]在全流水线式功能单元61中,逻辑块602是被寄存器级604分开的,逻辑块602中的每一个能够在单个周期中执行。在使用流水线和侧流线的功能单元62中,逻辑中的一些已经被再生(例如,块606和608以及块610和612),以形成两个独立的通路,而其他的逻辑未被再生(例如,块614)。两个流水线61、62之间的虚线箭头示出逻辑块之间的对应关系,且可看出第二流水线62中的再生逻辑块606、608中的一个包括花费两个周期来完成的逻辑。如上所述,数据在交替的时钟周期上被定时进入两个通路中的每一个,使得在任一个路径中的有效时钟速率是实际时钟速率的一半。另外,包含逻辑块610、612和614的结构示出参考图5所描述的优化。
[0068]通过如在图6中下面的图中所示的组合流水线操作和侧流线技术,产生的功能单元具有提高的时钟速度(由于侧流线),同时减少总逻辑面积(由于流水线)。
[0069]尽管图6中的第二张图只示出被再生以形成两个并行、独立的逻辑通路的两个逻辑块,但是该方法可被延伸至包含更多的再生以形成N个逻辑通路。另外,还如图6中所示,本文所述的方法可被用于只在功能单元的一部分中再生逻辑块。
[0070]图7示出另外两个改进的流水线71、72,其中N = 4。尽管第二流水线72可被视为第一流水线71的优化,但是每个流水线基于对流水线的特定要求和应用可以为适合的解决方案。具体地,尽管第二流水线72具有较少的逻辑再生,但其具有两个额外的多工器,且这些多工器的尺寸(S卩,多工器所容纳的位的数目)将取决于由流水线执行的特定计算,且在一些示例中该尺寸可能非常大(例如,如果流水线与32位的数相乘,则可能在逻辑通路中间具有64或128位)。因此,基于特定应用,与流水线72相比,流水线71可占有较多的或较小的面积(例如,在硅芯片上)。
[0071]图7中所示的第一流水线71有些类似于图4和图5中所示并如上所述的流水线42和51,除了 N = 4 (对于流水线42和51,N = 2)。流水线71包括四个独立的逻辑通路,每个逻辑通路包括输入逻辑块702以及在每个通路中相同的一些逻辑。每个输入寄存器块702每第N个时钟周期被启用,且保存数据N (即,4)个周期。通过输入寄存器块702 (以及本文所述的所有改进的流水线中的输入寄存器块)所保存的值不变,除了当输入寄存器级被启用的时候。即使逻辑通路可能花费N个周期来执行,输入寄存器也必须保存该数据N个周期(而不是,例如,读取用于处理的新数据),否则这可能将影响逻辑通路的输出。具有被放置于多工器712后(例如,以与图4中所示的流水线42相似的方式)的单个输出寄存器块714。
[0072]尽管每个通路中的逻辑可被表示为一个单个块(如流水线42中的块206、208中),但是在图7中逻辑通路中的逻辑被表示为四个分立的块(未被寄存器级分开),且每个块被标记以辨认数据在哪个周期上需要稳定,其中周期被编号为O到3,然后重复(例如,周期4 =周期0,周期5 =周期I等)。在每个通路中,第一逻辑块704需要在所有四个周期上稳定,第二逻辑块706需要在每四个周期中稳定三个周期(例如,对于第一通路为周期1-3),第三逻辑块708需要在每四个周期中稳定两个周期(例如,对于第一通路为周期2-3),且第四逻辑块710需要在每四个周期中稳定一个周期(例如,对于第一通路为周期3) ο
[0073]图7中所示的第二流水线72将上面参考图5所描述的优化应用于第一流水线71。首先考虑流水线71的逻辑通路中的每一个中的第四逻辑块710,可看出当数据需要在通路之间稳定的时候不存在重叠,因此四个逻辑块710可以被多工器712之后单个逻辑块716替代。考虑流水线71的逻辑通路中的每一个中的第三逻辑块708,可看出当数据需要在第一和第三通路之间稳定的时候不存在重叠,相似地,当数据需要在第二和第四通路之间稳定的时候不存在重叠。因此,四个第三逻辑块708可被两个逻辑块718替代,在利用多工器720合并的两个逻辑通路之间共享逻辑块718的每个,多工器720交替地选择两个通路中的一个。应注意,流水线72中的通路被绘制为与流水线71不同的顺序,其中流水线72中的第二逻辑通路对应于流水线71中的第三通路,且流水线72中的第三逻辑通路对应于流水线71中的第二通路,如箭头722所示。
[0074]就图2、图4和图5来说,应理解,尽管图7示出四个逻辑通路,但是方法可被延伸至N个逻辑通路。在这种示例中,成对的逻辑通路可以利用多工器被合并到一起并被馈入到N/2个逻辑通路中的一个中,其中N/2个逻辑块的输出端通过另外的多工器合并且馈入到输出寄存器级之前的输出逻辑块中。
[0075]应理解,改进的流水线22、42、51、52、62、71、72只提供改进的流水线的一些示例,且已被描述以展示侧流线技术,该技术可被用于提高流水线的时钟速度,并从而提高流水线的吞吐量。如上所述以及图6中所示,侧流线可结合传统的流水线操作来使用,或者侧流线可独立于传统的流水线操作来使用。在各种示例中,确定寄存器级的最佳位置而在
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1