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

文档序号:9125470阅读:来源:国知局
寄存器重定时中使用的算法可在侧流线中被使用,以确定多工器的最佳位置。
[0076]图8为示出流水线操作的示例方法的流程图,其中流水线使用了侧流线。如图8所示和如上参考示例性改进的流水线所述,在连续的时钟周期上轮流启用一组输入寄存器块(其形成输入寄存器级)中的每一个,以便将数据传递到多个逻辑通路(块802)中,其中每个逻辑通路包括逻辑的相同布置。被传递到每个逻辑通路中的数据然后在两个或多于两个时钟周期上在每个逻辑通路中被处理(块804),然后例如,使用多工器在连续的时钟周期上轮流从多个逻辑通路中的每一个中选择输出(块806)。如上所述,来自被选择(在块806中)的通路的输出可能是来自通路本身内的逻辑的输出或来自输出寄存器级的输出。
[0077]图9是设计改进的流水线的示例方法的流程图。如图9所示且如上参考示例性改进的流水线所述,流水线内的逻辑块(其在许多示例中不包括任何组合的反馈)被再生,以形成多个并行的逻辑通路(块902)。输入寄存器块被添加到每个逻辑通路的起始端(块904),并且输出寄存器块被添加到每个逻辑通路的末端(块906),并且流水线被配置使得输入寄存器块被连续启用,其中一个输入寄存器块在任意时钟周期上被启用(块908)。相似地,流水线还被配置使得连续地启用输出寄存器块,其中一个输出寄存器块在任意时钟周期上被启用(块910)。然后添加多工器以合并逻辑通路的输出(块912)。
[0078]如上所述,方法可进一步包括一个或多个优化,例如以下中的一个或多个:
[0079].在每个逻辑通路内使用传统的流水线操作/寄存器重定时(块914和如图6所示);
[0080].将多工器前的两个或多于两个输出寄存器块替换为多工器后的一个输出寄存器块(块916和如图4所示);
[0081].将每个逻辑通路末端处的逻辑的一部分替换为在多工器后、输出寄存器级前的逻辑的一部分的单个实例(块918和如图5所示),其中当数据需要在分开的逻辑通路中的逻辑的每一个部分中保持稳定的时候不存在重叠;
[0082].将逻辑通路的(合适的)子集的末端处的逻辑的一部分替换为在新增的多工器后的逻辑的一部分的单个实例,该新增的多工器将逻辑通路的子集的输出合并(块920和如图7所示),其中当数据需要在逻辑通路的子集中的逻辑的一部分中保持稳定的时候不存在重叠;以及
[0083].使用用于寄存器重定时的已知算法在流水线内优化多工器布置(块922)。
[0084]如上所述,通过使用本文所述的方法,消除了与流水线中的寄存器级相关的设置和保持时间的子集,并因此可以提高时钟速度,这增加了流水线的吞吐量。而且,如上所述,与常规的解决方案相比,能够降低动态功率消耗。虽然所需的逻辑的面积有所增加,然而这被所需的寄存器面积的降低部分地抵消。通过使用本文所述的各种优化,有可能设计出流水线并且在尺寸的增加与可获得的时钟速度的提高之间进行折衷。
[0085]将理解,尽管图2-7在上文中被描述为示出了流水线,但是它们可选择性地示出流水线的一部分,并且本文所述的方法可被应用于整个流水线或其一部分。
[0086]在如上所述的示例中,再生逻辑块(例如,图2中的块214和216)被描述为是相同的。然而应理解,可能存在其中在再生逻辑中可能有差异(例如,在奇数周期和偶数周期中具有传递不同类型的操作的流水线中)的示例。
[0087]本文使用的术语“处理器”是指具有处理能力从而其能够执行指令的任何设备或其部分。例如,术语“处理器”可包括中央处理单元(CPU)、图形处理单元(GPU或VPU)、物理处理单元(PPU)、数字信号处理器(DSP)、通用处理器(例如,通用GPU)、微处理器、被设计成在CPU外加速任务的任何处理单元等等。本领域的技术人员将意识到,这种处理能力被纳入许多不同设备中,并且因此术语“计算机”包括机顶盒、媒体播放器、数字收音机、PCJg务器、手机、个人数字助理和许多其他设备。
[0088]本文所述的方法不限于CPU、乱序处理器或单线程处理器,但可在任何类型的处理器(例如,GPU)中被实现,其中处理器可执行或可不执行乱序指令,且其中处理器可以是单线程的或多线程的。而且,如上所述,可在处理器外使用本文所述的方法。
[0089]对“逻辑”的特定引用是指执行一个功能或多个功能的结构。逻辑的示例包括被布置成执行那些功能的电路系统。例如,这种电路系统可包括晶体管和/或制造过程中可用的其他硬件元件。这种晶体管和/或其他元件可用于形成实现和/或包含存储器的电路系统或结构,其中存储器例如寄存器、触发器或锁存器、例如布尔运算的逻辑运算符、例如加法器、乘法器的数学运算符或移位器,并通过示例的方式相互连接。可将这种元件提供作为定制电路或标准元件库、宏指令或在其他抽象层上提供。可将这种元件以特定的布置相互连接。逻辑可包括固定功能的电路系统,并且电路系统可被编程以执行一个功能或多个功能;可从固件或软件更新或控制机制提供这种编程。被识别以执行一个功能的逻辑还可包括实现组合功能或子进程的逻辑。在一个示例中,硬件逻辑具有执行固定功能操作或多个操作、状态机或进程的电路系统。
[0090]如将对技术人员明显的是,可在不失去所寻求的效果的情况下延伸或改变本文所给出的任何范围或设备值。
[0091]应理解,如上所述的益处和优点可能与一个实施例相关或可能与几个实施例相关。实施例不限于解决任何或全部所陈述的问题的那些实施例或具有任何或全部所陈述的益处和优点的那些实施例。
[0092]对术语“一个”的任何引用是指那些项中的一个或多个。术语“包括”在本文中被使用以表示包含方法块或所识别的元件,但是这种块或元件不包括穷举性列表,且装置可包含额外的块或元件,以及方法可包含额外的操作或元件。此外,块、元件和操作本身并不隐含地不公开。
[0093]对“子集”的任何引用是指合适的子集,从而子集不包括整个组的一个或多个元件。
[0094]本文所述的方法的步骤可用任何合适的顺序来执行或在适当的时候同时执行。图中方框之间的箭头示出方法步骤的一个示例性顺序,但并不旨在排除其他顺序或多个步骤的并行执行。此外,在不脱离在本文所述的主题的精神和范围的情况下,可从任何方法中删除独立的块。在不失去所寻求的效果的情况下,如上所述的任何示例的方面可被与形成其他示例所描述的任何其他示例的方面结合。其中图中的元件被示出为通过箭头连接,应理解,这些箭头只示出元件之间的通信(包含数据和控制消息)的一个示例性流程。元件之间的流向可以在两个方向中任一方向或两个方向上。
[0095]应理解,只通过示例性的方式给出优选实施例的以上描述,且本领域技术人员可以进行各种修改。尽管以上已经以某种程度的特殊性或参考一个或多个单独的实施例描述了本实用新型的各种实施例,但是在不背离本实用新型精神或范围的前提下,本领域技术人员可以对公开的实施例做出多种改变。
【主权项】
1.一种数据通路流水线(42、51、52、62、71、72),其包括: 一个或多个再生逻辑块(206、208、502-508、606-612、704-710),其在所述流水线中形成并行逻辑通路(210、212); 输入寄存器块(214、216、702),其位于每个逻辑通路的起始端,其中在任何时钟周期中只启用所述输入寄存器块的一个子集; 输出多工器(222、712),其被布置成将所述并行逻辑通路重新合并为单个输出;以及 单个输出寄存器块(420、714),其被连接至所述输出多工器的输出端。2.根据权利要求1所述的流水线,其中,再生逻辑块包括两个或多于两个硬件逻辑块。3.根据权利要求1所述的流水线(52、72),还包括: 在所述输出多工器和输出寄存器块之间的逻辑块(510、614、716)。4.根据权利要求1所述的流水线(72),还包括: 中间多工器(720),其被连接至所述并行逻辑通路的子集,并被布置成将所述并行逻辑通路的所述子集合并为单个输出。5.根据权利要求4所述的流水线(72),还包括: 在所述中间多工器和所述输出多工器之间的逻辑块(718)。6.根据前述权利要求中任一项所述的流水线(62),其中,每个逻辑通路包括第一逻辑块(606、608)和第二逻辑块出10、612)以及在所述第一逻辑块和所述第二逻辑块之间的中间寄存器级。7.根据权利要求1-5中任一项所述的流水线,其包括只在所述流水线的输入端和输出端的寄存器级。8.根据权利要求1所述的流水线,其中,所述流水线在处理器(100、101)的功能单元(110)中。9.根据权利要求1所述的流水线,还包括: 时钟;以及 时钟门控单元,其被连接在所述时钟与所述输入寄存器块中的每个输入寄存器块之间。
【专利摘要】本实用新型涉及数据通路流水线。描述了使用再生的逻辑块来提高流水线的吞吐量的一种数据通路流水线。在实施例中,流水线或其部分包括若干并行的逻辑通路,每个逻辑通路包括相同的逻辑。在连续的时钟周期上轮流启用每个逻辑通路起始端的输入寄存器级,从而轮流将数据读入每个逻辑通路,且不同通路上的逻辑异相地运行。将逻辑通路的输出读入一个或多个输出寄存器级,且使用多工器将逻辑通路合并,该多工器在任何时钟周期上从逻辑通路中的一个选择输出。描述了各种优化技术,并在各种示例中可还使用寄存器重定时。在各种示例中,数据通路流水线在处理器内。
【IPC分类】G06F9/38
【公开号】CN204790975
【申请号】CN201520430146
【发明人】休·杰克逊
【申请人】想象技术有限公司
【公开日】2015年11月18日
【申请日】2015年6月19日
【公告号】DE102015109969A1
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1