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

文档序号:9125470阅读:来源:国知局
括组合逻辑。组合逻辑也可被称为时间无关逻辑或组合的逻辑(combinatorial logic)。
[0039]图1示出其中可实施本文所述方法的两个示例处理器100、101的示意图。第一示例处理器100为乱序处理器,且第二示例处理器为有序处理器。在此示例中,处理器100、101是单线程处理器,然而该方法也可被应用于多线程处理器。而且,如上所述,尽管将流水线112示为示例处理器100、101的一部分,本文所述的方法和流水线不限于处理器内的流水线(例如,CPU内)。
[0040]乱序处理器100包括提取级102、解码和重命名级104、重新排序缓冲器106、提交级108和一个或多个功能单元110,每个功能单元110包括一个或多个执行流水线112。
[0041]提取级102被配置成从如通过程序计数器(PC)指示的程序中提取指令(以程序顺序)。一旦指令被提取,将其提供给解码和重命名级104,解码和重命名级104被布置为解译指令并执行寄存器重命名。
[0042]指令通过解码和重命名级104之后,其被嵌入重新排序缓冲器106 (ROB)并发送给功能单元110以用于执行。向其发送指令的功能单元110可基于指令的类型。重新排序缓冲器106是能够将指令乱序地执行、但有序地提交的缓冲器。重新排序缓冲器106以程序顺序保存被嵌入其中的指令,但ROB 106内的指令可被功能单元110不按顺序地执行。
[0043]每个功能单元110负责执行指令并可被配置成执行特定类型的指令。因为功能单元110可包括加载-存储单元、整数单元、浮点单元(FPU)、数字信号处理(DSP)/单指令多数据(Sn?)单元或乘法累加(MAC)单元中的一个或多个。功能单元内的流水线可具有不同的长度和/或复杂度。例如,FPU流水线通常比整数执行流水线长,因为FPU流水线通常执行更复杂的操作。
[0044]有序处理器101包括提取级102、解码级105、一个或多个功能单元110 (其每个包括一个或多个执行流水线112)以及寄存器文件114。如同乱序处理器100中的解码和重命名级104,有序处理器中的解码级105被布置成解译在提取级102中提取的指令;然而在有序处理器中,解码级105不执行寄存器重命名。
[0045]应理解,其他处理器可能不包括图1中所示的所有功能元件(S卩,图1中所示的功能元件中的一个或多个可被省略),并且在一些示例中,可包括图1中未示出的额外的功能元件。
[0046]图2示出执行流水线21、22的两个示意图。每个21、22包括由圆化端部的形状表示的组合逻辑(在以下描述中将其称之为“逻辑”)块202和由方形表示的寄存器块204。第一张图示出包括三个寄存器级(每个包括一个寄存器块204)的标准流水线21,在寄存器级之间具有逻辑块202。流水线21的输入端处具有寄存器级,且该寄存器级可被称为输入寄存器级;在流水线21的输出端处具有寄存器级,且该寄存器级可被称为输出寄存器级。
[0047]图2中的第二张图示出改进的流水线22的第一个示例(其中,如上所述,术语“流水线”指的是花费多个周期以用于待处理信息的任意逻辑块)。如可从图看出的,已形成了逻辑块,其对应于如图2中第一张图所示的两个逻辑块202,然后该逻辑块(其花费两个周期来完成)已被再生,产生两个相同的逻辑块206、208和两个逻辑通路:通路1210和通路2212。每个通路210、212包括输入寄存器级(寄存器块214、216)和输出寄存器级(寄存器块218和220),且两个通路210、212通过在输出寄存器级218、220之后使用多工器222被合并。
[0048]可参考图3所示的图解来描述流水线22的操作。输入寄存器块214、216中的每一个在交替的时钟周期(如通过波形303和305所示)上被启用(即,被时钟控制),使得它们在交替的时钟周期上接收新数据并然后将该数据保存两个时钟周期(如通过波形304和306所示,其具有在波形302中所示的共享的输入数据)。例如,第一输入寄存器块214在时钟边沿O上存储输入数据I (见波形304)。在时钟边沿I上,第二输入寄存器块216存储输入数据2 (见波形306)且第一输入寄存器块仍然保存输入数据I (见波形304)。在时钟边沿2上,第一输入寄存器块214存储输入数据3 (见波形304),而第二输入寄存器块仍然保存输入数据2 (如参见波形306)。在时钟边沿3上,第二输入寄存器块216存储输入数据4 (见波形306),且第一输入寄存器块仍然保存输入数据3 (如参见波形304),以此类推。输入寄存器块214从而在时钟周期O和I上保存输入数据I (如波形304中所示),输入寄存器块216在时钟周期I和2上保存输入数据2 (如波形306中所示),等等。这在图2中通过使能(EN)逻辑表示,其中对于第一输入寄存器块214,ΕΝ: (T/N)+0,并且对于第二输入寄存器块216,ΕΝ: (T/N)+N-l,其中T是当前周期计数(S卩,时间),且N为流水线中的级数(在所示示例中N = 2)。
[0049]用于输入(和输出)寄存器块的时钟可以是与主时钟(即,用于流水线的标准时钟)分离的;然而,在很多示例中可使用同一个时钟(如在图3中由波形301表示的)来为所有的寄存器级定时,其中时钟穿过时钟门控单元,从而寄存器不是在主时钟的每个周期上都被启用(如通过波形303和305所示)。
[0050]因此,再生逻辑块206、208具有两个时钟周期用于完成,在这个时间段中输入数据(在输入寄存器级中)被保存(如波形304和306中所示)。返回参考前面示例,第一再生逻辑块206在时钟边沿O和2之间的时钟周期中处理输入数据1,第二再生逻辑块208在时钟边沿I和3之间的时钟周期中处理输入数据2,第一再生逻辑块206在时钟边沿2和4之间的时钟周期中处理输入数据3,等等。从而,每个通路210、212的“有效时钟速率”可被视为实际时钟速率(即,流水线21的时钟速率)的一半。
[0051]以与输入寄存器块214、216相似的方式,输出寄存器块218、220中的每个在交替的时钟周期(如通过波形303、305所示)上被启用,使得它们在交替的时钟周期上接收新数据。在时钟边沿2上,第一输出寄存器块218接收处理数据I (其在两个先前的时钟周期中发生)的第一再生逻辑块206的结果。然后该数据在寄存器块218的输出端上被保存两个时钟周期(如波形307中所示)。在时钟边沿3上,第二输出寄存器块220接收处理数据2(其在两个先前的时钟周期上发生)的第二再生逻辑块208的结果,然后该数据在寄存器块220的输出端上被保存两个时钟周期(如波形308中所示),等等。
[0052]输出多工器222在相邻时钟周期上选择交替的输入,其中该输出多工器222将流水线22内的两个独立的逻辑通路210、220的输出合并。图2示出选择逻辑(SEL:T% N,其中符号“ ”表示“模运算”),且这在附图3的波形309中被示出,其中“O ”表示选择通路1210,“I”表示选择通路2212。可从图3中看出,多工器222选择刚被更新的寄存器组(或输出寄存器块218、220),例如,多工器222在时钟边沿2上选择第一通路210、在时钟边沿3上选择第二通路212、在时钟边沿4上选择第一通路210等等。从图3中还可看出,寄存器块218、220只需要在第一循环上保存数据,且同样地没有为其定时的新数据,因此为每个周期定时将会浪费功率。
[0053]尽管图2中的第二张图只示出形成两个逻辑通路210、212的两个再生块206、208,但是方法可被延伸至形成N个逻辑通路的N个再生块。在这种示例中,每个输入和每个输出寄存器级在每第N个时钟周期被启用,其中在每个时钟周期中启用一个输入级和一个输出级。这表示N个再生块中的每一个再生块具有用以处理输入数据的N个时钟周期,且多工器在每个时钟周期中选择N个通路中的一个并轮流循环对N个通路中每一个的选择。
[0054]图2中所示的改进的流水线22的第一个示例包括更多数量的逻辑,这导致与第一流水线21相比的逻辑尺寸(例如,区域)的增加;然而,通过减少任何通路中的寄存器级的数量(并因此消除相关的设置和保持时间),其使时钟速度能够提高,时钟速度的提高增加了流水线的吞吐量。虽然现在具有更多的寄存器块(4个而不是3个),但是与21中的寄存器块相比,流水线22中的每个寄存器块将具有相同或更小的宽度,因为寄存器只位于输入端和输出端处,而不在通路的中间,其中数据宽度在路径的中间很可能比输入端处更大。此夕卜,由于寄存器被更少定时(例如,对于输入寄存器,每第N个周期),因此降低了寄存器块的有效(或动态)功率消耗,并且逻辑的有效功率消耗基本保持不变(因为新的数据每N个周期才被定时进入逻辑)。虽然存在对整体漏泄功率的影响,但是由额外的逻辑引起的增加通过由减少的寄存器数量引起的下降来抵消。基于特定的设计,泄漏功率可能在图2所示的两个流水线之间变化。
[0055]如在图2中改进的流水线22的第一个示例所示,再生逻辑以产生多个独立的逻辑通路的技术可被称为“侧流线”。该技术的进一步优化在下面进行描述,且如上所述,还可将该技术与寄存器重定时或其他形式的流水线操作结合。
[0056]图4示出可对图2所示并如上所述的改进的流水线22做出的进一步的优化。所示改进与多工器和输出寄存器级的定位有关。
[0057]图4示出来自图2的改进的流水线22的第一个示例,以及具有减少数量的寄存器块的第二个示例性改进的流水线42,但是该改进的流水线42的寄存器级的数量保持不变(例如,流水线22示出在两个寄存器级中的四个寄存器块214、216、218、220,然而流水线42示出在两个寄存器级中的三个寄存器块214、216、420)。如上所述,流水线22
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1