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

文档序号:9125470阅读:768来源:国知局
数据通路流水线的制作方法
【技术领域】
[0001]本实用新型涉及数据通路流水线。
【背景技术】
[0002]通常期望增大通过处理器内的流水线(例如,算术逻辑单元)的数据吞吐量,且这通常是通过加快处理器的时钟速度来实现的。然而,时钟速度受限于在流水线内寄存器组之间的逻辑的数量,因为该逻辑必须在一个时钟周期内全部被执行。对此的已知解决方案是将组合逻辑分为多个周期,并将寄存器组插入每个逻辑块之间。由于每个寄存器级之间有更少的逻辑,因此可以提高时钟速度,且现在时钟速度受限于执行产生的逻辑块中最慢的逻辑块所用的时间。用这种方式分开组合逻辑使时钟速率能够加快,时钟速率加快增大了吞吐量,但也增大了延迟(因为数据需要额外的周期以通过所有逻辑)。除了人工设计之外,可使用被称为“寄存器重定时”的技术来确定如何划分逻辑以及应将寄存器放置在哪儿。
[0003]如下所述的实施例不限于解决在处理器内设计流水线的已知方法的任何或全部缺点的实现方式。
【实用新型内容】
[0004]本【实用新型内容】被提供从而以简化方式介绍以下【具体实施方式】中会进一步描述的一组概念。该【实用新型内容】不旨在确定所要求保护的主题的关键特性或基本特性,也不旨在用于帮助确定所要求保护的主题的范围。
[0005]根据本实用新型的一方面,提供了一种数据通路流水线,其包括:一个或多个再生逻辑块,其在所述流水线中形成并行逻辑通路;输入寄存器块,其位于每个逻辑通路的起始端,其中在任何时钟周期中只启用所述输入寄存器块的一个子集;输出多工器,其被布置成将所述并行逻辑通路重新合并为单个输出;以及单个输出寄存器块,其被连接至所述输出多工器的输出端。
[0006]在优选实施方式中,再生逻辑块可包括两个或多于两个硬件逻辑块。
[0007]在优选实施方式中,流水线还可包括在所述输出多工器和输出寄存器块之间的逻辑块。
[0008]在优选实施方式中,流水线还可包括:中间多工器,其可被连接至所述并行逻辑通路的子集,并可被布置成将所述并行逻辑通路的所述子集合并为单个输出。
[0009]在优选实施方式中,流水线还可包括在所述中间多工器和所述输出多工器之间的逻辑块。
[0010]在优选实施方式中,每个逻辑通路可包括第一逻辑块和第二逻辑块以及在所述第一逻辑块和所述第二逻辑块之间的中间寄存器级。
[0011]在优选实施方式中,流水线可包括只在所述流水线的输入端和输出端的寄存器级。
[0012]在优选实施方式中,流水线可在处理器的功能单元中。
[0013]在优选实施方式中,流水线还可包括:时钟;以及时钟门控单元,其被连接在所述时钟与所述输入寄存器块中的每个输入寄存器块之间。
[0014]描述了使用再生逻辑块来提高流水线的吞吐量的数据通路流水线。在实施例中,流水线或其部分包括若干并行的逻辑通路,每个逻辑通路包括相同的逻辑。在连续的时钟周期上轮流启用在每个逻辑通路起始端的输入寄存器级,使得轮流将数据读入每个逻辑通路,且不同通路上的逻辑异相地运行。将逻辑通路的输出读入一个或多个输出寄存器级,且使用多工器合并逻辑通路,该多工器在任何时钟周期上从逻辑通路中的一个选择输出。描述了各种优化技术,并在各种示例中还可使用寄存器重定时。在各种示例中,数据通路流水线在处理器内。
[0015]第一方面提供数据通路流水线,其包括:在流水线内形成并行逻辑通路的一个或多个再生逻辑块;在每个逻辑通路的起始端的输入寄存器块,其中在任何时钟周期中只启用输入寄存器级的一个子集;一个或多个输出寄存器块,其被布置成从一个或多个逻辑通路接收数据;以及多工器,其被布置成将并行逻辑通路合并为单个输出。
[0016]第二方面提供操作数据通路流水线的方法,该方法包括:在连续的时钟周期上轮流启用一组输入寄存器块中的每一个,以将数据传递到多个并行逻辑通路中;在多个时钟周期上处理每个逻辑通路中的数据;以及在连续的时钟周期上轮流从每个逻辑通路选择一个输出。
[0017]第三方面提供设计数据通路流水线的方法,该流水线包括逻辑且该方法包括:再生逻辑的至少一部分以形成多个逻辑通路;将输入寄存器块添加到每个逻辑通路的起始端;将输出寄存器块添加到每个逻辑通路的末端;配置流水线以在连续的时钟周期上轮流启用输入寄存器块;配置流水线以在连续的时钟周期上轮流启用输出寄存器块;以及增加多工器以合并来自逻辑通路的输出。
[0018]另一方面提供一种计算机可读存储介质,在其上编码用于生成处理器的计算机可读程序代码,该处理器包括如上所述的流水线,并提供了一种计算机可读存储介质,在其上编码用于生成处理器的计算机可读程序代码,该处理器被配置成实施如上所述的方法。
[0019]本文所述的方法可通过配置有软件的计算机来实施,该软件为机器可读形式,并被存储在有形的存储介质上,例如,当程序在计算机上运行时且计算机程序可在计算机可读存储介质上实现的情况下,以包括用于配置计算机以实施所述的方法的组成部分的计算机可读程序代码的计算机程序的形式,或者以包括适用于实施本文所述的任何方法的所有步骤的计算机程序代码方法的计算机程序的形式。有形的(或非暂时性的)存储介质的示例包含磁盘、拇指驱动器、记忆卡等,且不包含传播的信号。软件可适合于在平行处理器或串行处理器上被执行,从而使能够以任何合适的次序或同时实施方法步骤。
[0020]本文所述的硬件组件可由在其上编码计算机可读程序代码的非暂时性计算机可读存储介质而产生。
[0021]这确认了固件和软件可被单独地使用且有价值。其旨在包含运行在“基本的(dumb) ”或标准的硬件上或控制“基本的”或标准的硬件的软件,以实现期望的功能。其还旨在包含“描述”或定义硬件配置的软件,例如HDL(硬件描述语音)软件,如被用于设计硅芯片或用于配置通用可编程芯片,以实现期望的功能。
[0022]如对于技术人员很明显的,优选的特性可被适当地结合,且可与本实用新型的任何方面相结合。
【附图说明】
[0023]参考以下附图,以示例的方式描述本实用新型的实施例,其中:
[0024]图1示出示例处理器的示意图,其中可实施本文所述的方法;
[0025]图2示出两个执行流水线的示意图;
[0026]图3示出图2所示的改进的执行流水线的波形;
[0027]图4示出可对图2所示的改进的流水线做出的进一步的优化;
[0028]图5示出可对流水线做出的进一步的优化;
[0029]图6示出全流水线式功能单元和使用流水线操作(pipelining)和侧流线(sidelining)组合的功能单元的比较;
[0030]图7示出两个进一步改进的流水线;
[0031]图8为示出流水线操作的示例方法的流程图,其中流水线使用了侧流线;以及
[0032]图9为设计改进的流水线的示例方法的流程图。
[0033]整个附图中共同的参考标记用来指示相似的特征。
【具体实施方式】
[0034]下文中只以示例的方式描述了本实用新型的实施例。这些示例代表目前申请人所知道的实施本实用新型的最佳方式,然而它们不是实施本实用新型的唯一的方式。本说明书阐述了示例的功能以及用于构造和操作示例的步骤的顺序。然而,可由不同的示例来实现相同或等同的功能和顺序。
[0035]如上所述,通过在流水线内增加额外的寄存器级,在每个寄存器级之间的逻辑更少,并且可提高时钟速度。然而,随着级间的逻辑减少,寄存器的设置和保持时间变为对寄存器级间的延迟的更重要的贡献,且这是限制进一步提高时钟速度的能力的其中一个因素(因为延迟对应于最小可能的时钟周期)。而且,增加额外的寄存器级可对设计尺寸(其中寄存器被放置于逻辑的中间,相较于在逻辑的输入端或输出端中的任一个处,其通常需要存储更多位)以及还有可对该设计的有效功率(由于定时硬件在使用中的以往周期的大量的寄存器时钟)产生不利影响。
[0036]本文描述了数据通路流水线以及设计和操作数据通路流水线的方法,该方法使时钟速度能够加快,并因此可增加流水线的吞吐量。如下所述,在一些示例中,这些方法可结合寄存器重定时(或其他常规的流水线操作技术)来使用,或者这些方法可独立于寄存器重定时来使用。在本文所述的方法中,组合逻辑被再生,且再生版本并行且异相地运行。这降低了再生块中的每一个再生块内的有效时钟速度(或有效时钟速率)(例如,数据可只在交替的时钟周期上被定时进入再生块中,从而块可具有用以完成的两个时钟周期)ο通过减少寄存器级的数量,与标准解决方案相比,减少了总的设置和保持时间,这使实际的时钟速度能够被加快。如下面更详细地描述,可通过优化逻辑的哪个部分被再生以及输出多工器(其将来自再生块的结果合并回到单一通路)和输出寄存器的位置来实现时钟速度和/或设备区的进一步的改进。在很多示例中,本文所述的方法被实现用于不包含任何组合反馈(即,逻辑块不向其本身反馈)的组合逻辑。然而,在其他示例中,可包含反馈。
[0037]术语“数据通路流水线”(也可将其称为“执行流水线”或“流水线”)指的是逻辑块,该逻辑块花费多个时钟周期以用于待处理信息,且因此通常包括多个寄存器级,在寄存器级之间具有逻辑。在各个示例中,流水线可能是处理器的一部分(如下面描述的实例中),S卩,CPU、GPU或DSP的一部分;然而还可在其它情况下实现本文所述的方法。
[0038]术语“组合逻辑(combinat1nal logic) ”指的是逻辑,其中输出只是当前输入的纯函数且输出不依赖于输入的历史(不同于时序逻辑)。流水线可包括组合逻辑和时序逻辑,且进行数学计算的算术逻辑单元(ALU)的部分可以只包
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1