处理器的动态调度互联寄存器及调度数据的方法与流程

文档序号:14947989发布日期:2018-07-17 21:55阅读:155来源:国知局
本发明实施例涉及处理器
技术领域
,具体涉及一种处理器的动态调度互联寄存器及利用该动态调度互联寄存器调度数据的方法。
背景技术
:随着集成电路的发展,处理器的体系结构越来越复杂,集成的晶体管数量也按照摩尔定律成指数级上升。这就导致了处理器的功耗越来越大,严重的制约了处理器性能的提升。在各个领域算法的要求下,处理器的功能单元的个数越来越多,这就势必会导致功能单元间的互联网络越来越复杂。这些互联网络上的功耗成为了不可忽视的一部分。图1示例性地示出了普通互联寄存器的结构。普通互联寄存器设有N个外部输入、(M-N)个功能单元,每个功能单元有K个寄存器,分别是T0、T1、T2和T3。其中,N表示外部输入的个数;M表示每个功能单元的物理寄存器个数(即写通道数);W表示数据的比特位宽;K表示每个功能单元的逻辑寄存器个数;图1以N=2、K=4、M=6和7(分别代表奇数和偶数的情况)为例予以说明。在图1中,有5个功能单元何2个外部输入,每个功能单元有T0、T1、T2和T3四个寄存器。一般的功能单元的寄存器是通过多路选择器来选择要写入的数据来自哪个功能单元的结果输出或者外部输入。如图1所示,每个寄存器通过一个M选一的选择器来选择要写入的数据来自哪个写通道。这样一来,互联网络会变得很复杂,例如,在寄存器的互联网络中存在K×M×(M-N)个数据交换网络,且每个数据位宽为W。而且,每个功能单元的距离会相对较远,这种较长连线的相对复杂的多路选择会带来很大的功耗。有鉴于此,特提出本发明。技术实现要素:为了解决上述技术问题,本发明实施例提供一种处理器的动态调度互联寄存器,以降低处理器内互联网络上的功耗。此外,本发明实施例还提供一种利用该动态调度互联寄存器调度数据的方法。为了实现上述目的,根据本发明的一个方面,提供了以下技术方案:一种处理器的动态调度互联寄存器。其中,所述动态调度互联寄存器至少包括:至少一功能单元和至少一物理寄存器;其中,所述至少一功能单元的输出端口和所述动态调度互联寄存器的输入端口只绑定有一所述物理寄存器。进一步地,所述物理寄存器具体包括:有效位,用于确定所述物理寄存器数据位的数据是否有效;逻辑寄存器编号位,用于确定所述物理寄存器映射的逻辑寄存器的编号;所述数据位,用于确定所述物理寄存器存有的数据。为了实现上述目的,根据本发明的另一个方面,还提供了一种利用上述动态调度互联寄存器调度数据的方法。其中,所述调度数据的方法包括:确定指令中的逻辑寄存器的编号是否与有效的所述物理寄存器中的所述逻辑寄存器编号相匹配;在匹配的情况下,读取所述有效的物理寄存器中所述数据位的数据。为了实现上述目的,根据本发明的再一个方面,还提供了一种利用上述动态调度互联寄存器调度数据的方法。其中,所述调度数据的方法包括:判断当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;如果是,则根据预定的物理寄存器的调度优先级,查找功能单元的下一个物理寄存器,并判断所述物理寄存器中的数据是否需要保留,如果是,继续根据所述调度优先级进行查找,直至找到可以接受调度数据的物理寄存器;将逻辑寄存器编号和写通道数据写入当前写请求的功能单元绑定的物理寄存器,并将所述物理寄存器中的有效位设置为有效状态。进一步地,所述判断当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留具体可以包括:判断所述当前写请求的功能单元绑定的物理寄存器中有效位的状态;根据判断结果确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;根据有写请求的写通道来确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;其中,所述有写请求的写通道中指定要写的逻辑寄存器的编号。进一步地,所述根据有写请求的写通道来确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留具体可以包括:对所述有写请求的写通道的写通道编号译码,得到所述写通道编号的独热码;对所述当前写请求的功能单元绑定的物理寄存器中逻辑寄存器编号位的数据译码,得到所述逻辑寄存器编号位的独热码;将所述写通道编号的所述独热码与其对应的写使能信号进行与操作;将各与操作的结果进行或操作,得到所有所述有写请求的逻辑寄存器编号的集合;根据所述所有有写请求的逻辑寄存器编号的集合,来确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留。进一步地,所述预定的物理寄存器的调度优先级根据以下方式来确定:当所述物理寄存器个数为偶数时,将所有所述物理寄存器分为第一簇和第二簇,所述第一簇物理寄存器中的数据只调度至所述第二簇内,并根据以下方式确定所述调度优先级:Rm和R(m+3)互为第一优先级,其中,0≤m≤M/2-1,所述Rm表示物理寄存器;所述m表示物理寄存器的编号;所述M表示物理寄存器的个数;当所述物理寄存器个数为奇数时,根据以下规则和拓扑学原理确定所述物理寄存器的调度优先级:当需要调度的物理寄存器个数为1时,进行最多3次的所述查找步骤;两个所述需要调度的数据不能找到同一个空闲寄存器。本发明实施例提供一种处理器的动态调度互联寄存器。通过功能单元的寄存器动态调度设计将复杂的互联网络简化。将原本的功能单元间复杂的数据选择,转移到属于同一个功能单元的寄存器之间的数据调度。这样,可以使功能单元间的互联网络变得精简,化长连线的数据选择为短距离的寄存器间数据调度,可以很大程度上的降低互联网络上的功耗,同时不影响运算器的功能和性能。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其它优点可通过在所写的说明书、权利要求书以及附图中所特别指出的方法来实现和获得。附图说明附图作为本发明的一部分,用来提供对本发明的进一步的理解,本发明的示意性实施例及其说明用于解释本发明,但不构成对本发明的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:图1为根据一示例性实施例示出的普通互联寄存器的结构示意图;图2为根据一示例性实施例示出的动态调度互联寄存器的结构示意图;图3为根据另一示例性实施例示出的动态调度互联寄存器的结构示意图;图4为根据一示例性实施例示出的物理寄存器的结构示意图;图5为根据一示例性实施例示出的普通互联寄存器读\写组织结构示意图;图6为根据一示例性实施例示出的利用动态调度互联寄存器实施例调度数据的方法流程示意图;图7为根据一示例性实施例示出的确定当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留的一种实现方式的示意图;图8为根据一示例性实施例示出的动态调度互联寄存器读\写组织结构示意图;图9为根据一示例性实施例示出的物理寄存器动态调度的实现方式示意图。这些附图和文字描述并不旨在以任何方式限制本发明的保护范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。具体实施方式下面结合附图以及具体实施例对本发明实施例解决的技术问题、所采用的技术方案以及实现的技术效果进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,并不是全部实施例。在没有明确限定或不冲突的情况下,本发明中的各个实施例及其中的技术特征可以相互组合而形成技术方案。基于本申请中的实施例,本领域普通技术人员在不付出创造性劳动的前提下,所获的所有其它等同或明显变型的实施例均落在本发明的保护范围内。本发明实施例可以按照权利要求中限定和涵盖的多种不同方式来具体化。需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本发明的实现可以没有这些具体细节。另外,虽然本文可提供包含特定值的参数的示例,但应了解,参数无需确切等于相应的值,而是在可接受的误差容限或设计约束内近似于相应的值。本发明实施例的基本思想是将原本的功能单元间复杂的数据选择,转移到属于同一个功能单元的寄存器之间的数据调度,通过动态调度功能单元的寄存器来实现功能单元间互联网络的低功耗设计。下面对本文中涉及到的字母含义进行定义:W:数据的比特位宽;K:每个功能单元的逻辑寄存器个数;N:外部输入的个数;M:每个功能单元的物理寄存器个数(写通道数);m:0≤m≤M-1物理寄存器的编号。本发明实施例提出一种处理器的动态调度互联寄存器。如图2所示,该动态调度互联寄存器20可以包括至少一功能单元21和至少一物理寄存器23,24;其中,至少一功能单元21的输出端口和动态调度互联寄存器20的输入端口22只绑定有一物理寄存器23,24。本发明实施例通过将至少一功能单元的输出端口和动态调度互联寄存器的输入端口只绑定一个物理寄存器,将原本的功能单元间复杂的数据选择,转移到属于同一个功能单元的寄存器之间的数据调度。这样,可以使功能单元间的互联网络变得精简,化长连线的数据选择为短距离的寄存器间的数据调度,降低了互联网络上的功耗,同时还不影响运算器的功能和性能。图3示例性地示出了一种动态调度互联寄存器的结构。如图3所示,本发明实施例将普通互联寄存器的K个逻辑寄存器通过M个物理寄存器Rm来实现,其中0≤m≤M-1。在本发明实施例一些优选的实施方式中,物理寄存器具体可以包括:有效位、逻辑寄存器编号位和数据位。其中,有效位用于确定物理寄存器数据位的数据是否有效。逻辑寄存器编号位用于确定物理寄存器映射的逻辑寄存器的编号。数据位用于确定物理寄存器存有的数据。在上述实施例中,可以将有效位设置在物理寄存器的结构中的最高位,在实际实施过程中,可以用“1”表示有效,用“0”表示无效。较有效位低的为逻辑寄存器编号位(也即log2K位),例如:2比特。数据位可以设置在较逻辑寄存器编号位低的位置。图4示例性地示出了一种物理寄存器的结构。如图4所示,用1位比特表示有效位,用较低log2K位来表示逻辑寄存器编号位,用低W位表示数据位,用M表示物理寄存器个数,则在寄存器的动态调度互联网络中仅存在K×M个位宽为W+log2K+1数据交换网络。可见,通过按照上述方式设置物理寄存器,精简了互联网络的规模。图5示例性地示出了普通互联寄存器读\写组织结构。其中,读口和写口为均为选择性地读写,即:每个读\写口通过一个读\写ID号索引到目标寄存器进行读\写操作。现有普通互联寄存器的读操作是通过指令中的读取寄存器ID号索引寄存器的实际编址,将数据读出。为了提高调度数据的性能,本发明还提供一种利用上述动态调度互联寄存器实施例调度数据的方法。如图6所示,该调度数据的方法可以包括:S601:确定指令中的逻辑寄存器的编号是否与有效的物理寄存器中的所述逻辑寄存器编号相匹配。S602:在匹配的情况下,读取有效的物理寄存器中数据位的数据。例如,确定指令中的逻辑寄存器的ID号是否与有效位为1的物理寄存器的逻辑寄存器编号相匹配;在匹配的情况下,读取有效位为1的物理寄存器的数据位。此外,为了提高调度数据的性能,本发明实施例还提供一种利用上述动态调度互联寄存器实施例调度数据的方法。该调度数据的方法可以包括:S701:判断当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;如果是,则执行步骤S702;否则,执行步骤S703。S702:根据预定的物理寄存器的调度优先级,查找功能单元的下一个物理寄存器,并判断物理寄存器中的数据是否需要保留,如果是,继续根据调度优先级进行查找,直至找到可以接受调度数据的物理寄存器。S703:将逻辑寄存器编号和写通道数据写入当前写请求的功能单元绑定的物理寄存器,并将物理寄存器中的有效位设置为有效状态。下面以一优选实施例来详细说明写数据的过程。该调度数据的方法可以包括:步骤A:在一个时钟周期内,写通道根据指令,对目标功能单元绑定的当前物理寄存器发出写请求。步骤B:判断当前物理寄存器中的历史数据是否需要保留。如果是,则执行步骤C;否则,执行步骤F。步骤C:查找该目标功能单元的下一个物理寄存器(根据物理寄存器的调度优先级来确定),判断该下一个物理寄存器中的数据是否需要保留,如果是,则执行步骤D;否则,执行步骤E。步骤D查找该目标功能单元的另一个物理寄存器。步骤E:将当前物理寄存器中的历史数据调度到无需保留数据的物理寄存器,并执行步骤F。步骤F:将逻辑寄存器编号和写通道数据写入写通道绑定的物理寄存器,并将物理寄存器中的有效位设置为有效状态。本步骤中,例如,可以将物理寄存器中的有效位置1。其中,1表示有效状态。步骤G:将该目标功能单元的无需保留数据的物理寄存器的有效位置0。步骤H:将写通道的数据直接写入当前物理寄存器。在实际应用中,在完成上述判断后当时钟上升沿到来时,各个数据写入之前已经找到的寄存器,并将其他不存数的寄存器最高有效位置0。在上述技术方案中,每次写入操作将不需要保留其值的物理寄存器的最高有效位置0。所有动态调度的步骤要在一个时钟周期内完成。也就是说除了写寄存器操作以外,其他所有判断操作要通过组合逻辑实现。在上述实施例中,步骤S701具体可以包括:S7011:判断当前写请求的功能单元绑定的物理寄存器中有效位的状态。S7012:根据判断结果确定当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留。S7013:根据有写请求的写通道来确定当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;其中,有写请求的写通道中指定要写的逻辑寄存器的编号。举例而言,如果物理寄存器中的最高有效位为0,表示此数据无效,则这些数据不需要保留。如果有写请求的写通道中指定要写的逻辑寄存器的编号(ID),意味着这些逻辑寄存器的值(或数据)会被覆盖,即:存在ID值的物理寄存器中的数据不需要保留。优选地,根据有写请求的写通道来确定当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留具体可以包括:S70131:对有写请求的写通道的写通道编号(写ID)译码,得到写通道编号的独热码。S70132:对当前写请求的功能单元绑定的物理寄存器中逻辑寄存器编号位(ID位)的数据译码,得到逻辑寄存器编号位的独热码。S70133:将写通道编号的独热码与其对应的写使能信号进行与操作。S70134:将各与操作的结果进行或操作,得到所有有写请求的逻辑寄存器编号的集合。其中,本步骤将每个写通道写ID的独热码与其对应的写使能信号进行与操作,再将各与操作的结果进行或操作,得到时钟周期内所有有写请求的逻辑寄存器编号的集合。S70135:根据所有有写请求的逻辑寄存器编号的集合,来确定当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留。其中,本步骤根据时钟周期内所有有写请求的逻辑寄存器编号的集合,来确定当前物理寄存器中的历史数据是否需要保留。图7示例性地示出了确定当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留的一种实现方式。其中,k表示写通道编号,也就是每个物理寄存器编号。每个写通道的写ID经过译码得到其独热码,也就是WriteIndex[k]。每个物理寄存器将其中的ID位译码得到其独热码,也就是RegIndex[k]。WriteEnaIndex为每个写通道写ID的独热码与其对应的写使能信号进行与操作,在将得到各个结果进行或操作,得到是该时钟周期所有有写请求的逻辑寄存器集合。当物理寄存器中的最高有效位为1,并且所有有写情求的写通道中指定要写的逻辑寄存器的ID与该物理寄存器中的ID都不匹配时,得到hold[k],即为每个物理寄存器的数据是否需要保留的信号,hold[k]为1,表示需要保留,hold[k]为0,表示不需要保留。在步骤S702中,需要设定物理寄存器的调度优先级。以四个逻辑寄存器为例,如表1所示。表1:写请求数最多需要调度的数据个数0011223140物理寄存器每个时钟周期有写请求的个数的可能值为0、1、2、3、4。当有0个物理寄存器有写请求时,显然不会产生调度;当有1个物理寄存器有写请求时,显然最多只有1个需要调度;当有2物理寄存器有写请求时,最多需要调度的情况是这两个更新数据和要调度的历史数据,即分别就是T0、T1、T2和T3的数据,所以最多有2个数据调度,并且,除了这两个物理寄存器以外,其他的物理寄存器均空闲。当有3物理寄存器有写请求时,由于产生了3个逻辑寄存器的更新数据,所以需要调度的数据最多也只有一个。当有4物理寄存器有写请求时,由于这4个逻辑寄存器都有更新数据,所以不会产生调度。综上所述,需要调度的数据个数只有0、1、2这三种情况。在一些实施例中,预定的物理寄存器的调度优先级根据以下方式来确定:当物理寄存器个数为偶数时,将所有物理寄存器分为第一簇和第二簇,第一簇物理寄存器中的数据只调度至第二簇内,并根据以下方式确定调度优先级:Rm和R(m+3)互为第一优先级,其中,0≤m≤M/2-1,Rm表示物理寄存器;m表示物理寄存器的编号;M表示物理寄存器的个数。当物理寄存器个数为奇数时,根据以下规则和拓扑学原理确定物理寄存器的调度优先级:当需要调度的物理寄存器个数为1时,进行最多3次的所述查找步骤;两个需要调度的数据不能找到同一个空闲寄存器。下面以M=6为例来说明物理寄存器个数为偶数时的情况。将6个物理寄存器分为两簇,例如:R0、R1和R2为一簇,R3、R4和R5为另一簇。当0≤m≤M/2-1时,Rm和R(m+3)互为第一优先级。这样,每个物理寄存器调度的第一优先级都不一样。因为当需要调度数据的物理寄存器为2个时,除了这两个物理寄存器以外,其他的物理寄存器均空闲。所以,这两个需要调度的数据不会找到同一个空闲寄存器,因而不会发生调度冲突。当需要调度的物理寄存器的个数为1时,可以知道不会存在冲突问题,并且当前物理寄存器和需要调度的数据占了两个逻辑寄存器的数据,那么其他的物理寄存器中最多只有两个寄存器是非空闲的,则最多只要查找3次,就一定能找到一个可以接受调度数据的物理寄存器。因此,在图7的基础上,继续寻找后两个调度优先级的寄存器,如表2所示。表2:需调度的物理寄存器第1调度优先级第2调度优先级第3调度优先级R0R3R4R5R1R4R5R3R2R5R3R4R3R0R1R2R4R1R2R0R5R2R0R1下面以M=7为例来说明物理寄存器个数为奇数时的情况。当需要调度的物理寄存器个数为1时,这种情况与物理寄存器个数为偶数的情况一样,为了保证找到空闲寄存器,最多要查找3次。当需要调度的物理寄存器个数为2时,两个需要调度的数据不能找到同一个空闲寄存器。根据这两个准则和拓扑学原理,给定R0的第一优先级为R3,然后下面的每一斜行依次为R4、R5、R6、R0、R2、R3、R4,这样可以得到表3。表3:需调度的物理寄存器第1调度优先级第2调度优先级第3调度优先级R0R3R4R5R1R4R5R6R2R5R6R0R3R6R0R1R4R0R1R2R5R1R2R3R6R2R3R4在完成上述过程后,当时钟上升沿到来时,各个数据写入查找到的物理寄存器,并将其他不存数据的物理寄存器中的有效位置0。至此完成了互联寄存器写操作的动态调度。图8示例性地示出了本发明实施例提供的动态调度互联寄存器读\写组织结构。其中,读口通过读ID来选择性读取数据,写口直接写入绑定的物理寄存器。由此,来完成数据调度的操作。图9示例性地示出了一种物理寄存器动态调度的实现方式。下面结合图8和图9,以M=6为例来说明写物理寄存器R0的动态调度过程。首先是复位操作,如果不需要复位,则判断写通道0有没有写请求,如果有则将写通道数据及写ID写入,并将有效位置1。如果没有写入,并且hold[0]为0,那么该物理寄存器的数据不需要保留并且可以接受其他寄存器调度出来的数据。然后很久表2所示,第一优先级为R0的是R3,第二优先级为R0的是R5,第三优先级为R0的是R4。所以当R3有写请求,并且R3的原始数据需要数据保留时,R3中的数据调度到R0。R5调度的第一优先级是R2,所以当R5的原始数据需要保留,并且R2无法接受时,R5的数据调度到R0。同理可得R4的数据调度到R0的情况。如果都没有数据要调度到R0时,并且hold[0]为0,则将R0的最高有效位置0。上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。以上对本发明实施例所提供的技术方案进行了详细的介绍。虽然本文应用了具体的个例对本发明的原理和实施方式进行了阐述,但是,上述实施例的说明仅适用于帮助理解本发明实施例的原理;同时,对于本领域技术人员来说,依据本发明实施例,在具体实施方式以及应用范围之内均会做出改变。需要说明的是,本文中涉及到的流程图或框图不仅仅局限于本文所示的形式,其还可以进行其他划分和/或组合。还需要说明的是:附图中的标记和文字只是为了更清楚地说明本发明,不视为对本发明保护范围的不当限定。术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。本发明的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明不限于任何特定的硬件和软件或者其结合。本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1