CN106371805B - 处理器的动态调度互联寄存器及调度数据的方法 - Google Patents
处理器的动态调度互联寄存器及调度数据的方法 Download PDFInfo
- Publication number
- CN106371805B CN106371805B CN201610685174.5A CN201610685174A CN106371805B CN 106371805 B CN106371805 B CN 106371805B CN 201610685174 A CN201610685174 A CN 201610685174A CN 106371805 B CN106371805 B CN 106371805B
- Authority
- CN
- China
- Prior art keywords
- data
- register
- physical register
- physical
- functional unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000027455 binding Effects 0.000 claims description 28
- 238000009739 binding Methods 0.000 claims description 28
- 230000009467 reduction Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Power Sources (AREA)
Abstract
本发明公开了一种处理器的动态调度互联寄存器及利用该动态调度互联寄存器调度数据的方法。其中,动态调度互联寄存器至少包括:至少一功能单元和至少一物理寄存器;其中,所述至少一功能单元的输出端口和所述动态调度互联寄存器的输入端口只绑定有一所述物理寄存器。本发明实施例通过功能单元的寄存器动态调度设计将复杂的互联网络简化。将原本的功能单元间复杂的数据选择,转移到属于同一个功能单元的寄存器之间的数据调度。这样,可以使功能单元间的互联网络变得精简,化长连线的数据选择为短距离的寄存器间数据调度,可以很大程度上的降低互联网络上的功耗,同时不影响运算器的功能和性能。
Description
技术领域
本发明实施例涉及处理器技术领域,具体涉及一种处理器的动态调度互联寄存器及利用该动态调度互联寄存器调度数据的方法。
背景技术
随着集成电路的发展,处理器的体系结构越来越复杂,集成的晶体管数量也按照摩尔定律成指数级上升。这就导致了处理器的功耗越来越大,严重的制约了处理器性能的提升。在各个领域算法的要求下,处理器的功能单元的个数越来越多,这就势必会导致功能单元间的互联网络越来越复杂。这些互联网络上的功耗成为了不可忽视的一部分。
图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:
写请求数 | 最多需要调度的数据个数 |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 1 |
4 | 0 |
物理寄存器每个时钟周期有写请求的个数的可能值为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调度优先级 |
R0 | R3 | R4 | R5 |
R1 | R4 | R5 | R3 |
R2 | R5 | R3 | R4 |
R3 | R0 | R1 | R2 |
R4 | R1 | R2 | R0 |
R5 | R2 | R0 | R1 |
下面以M=7为例来说明物理寄存器个数为奇数时的情况。
当需要调度的物理寄存器个数为1时,这种情况与物理寄存器个数为偶数的情况一样,为了保证找到空闲寄存器,最多要查找3次。当需要调度的物理寄存器个数为2时,两个需要调度的数据不能找到同一个空闲寄存器。根据这两个准则和拓扑学原理,给定R0的第一优先级为R3,然后下面的每一斜行依次为R4、R5、R6、R0、R2、R3、R4,这样可以得到表3。
表3:
需调度的物理寄存器 | 第1调度优先级 | 第2调度优先级 | 第3调度优先级 |
R0 | R3 | R4 | R5 |
R1 | R4 | R5 | R6 |
R2 | R5 | R6 | R0 |
R3 | R6 | R0 | R1 |
R4 | R0 | R1 | R2 |
R5 | R1 | R2 | R3 |
R6 | R2 | R3 | R4 |
在完成上述过程后,当时钟上升沿到来时,各个数据写入查找到的物理寄存器,并将其他不存数据的物理寄存器中的有效位置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。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
以上对本发明实施例所提供的技术方案进行了详细的介绍。虽然本文应用了具体的个例对本发明的原理和实施方式进行了阐述,但是,上述实施例的说明仅适用于帮助理解本发明实施例的原理;同时,对于本领域技术人员来说,依据本发明实施例,在具体实施方式以及应用范围之内均会做出改变。
需要说明的是,本文中涉及到的流程图或框图不仅仅局限于本文所示的形式,其还可以进行其他划分和/或组合。
还需要说明的是:附图中的标记和文字只是为了更清楚地说明本发明,不视为对本发明保护范围的不当限定。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
本发明的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明不限于任何特定的硬件和软件或者其结合。
本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的保护范围。
Claims (6)
1.一种处理器的动态调度互联寄存器,其特征在于,所述动态调度互联寄存器至少包括:至少一功能单元和至少一物理寄存器;其中,所述至少一功能单元的输出端口和所述动态调度互联寄存器的输入端口只绑定有一所述物理寄存器;
所述物理寄存器具体包括:
有效位,用于确定所述物理寄存器数据位的数据是否有效;
逻辑寄存器编号位,用于确定所述物理寄存器映射的逻辑寄存器的编号;
所述数据位,用于确定所述物理寄存器存有的数据。
2.一种利用上述权利要求1所述的动态调度互联寄存器调度数据的方法,其特征在于,所述调度数据的方法包括:
确定指令中的逻辑寄存器的编号是否与有效位状态有效的物理寄存器中的所述逻辑寄存器编号相匹配;
在匹配的情况下,读取所述有效位状态有效的物理寄存器中所述数据位的数据。
3.一种利用上述权利要求1所述的动态调度互联寄存器调度数据的方法,其特征在于,所述调度数据的方法包括:
判断当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;
如果是,则根据预定的物理寄存器的调度优先级,查找功能单元的下一个物理寄存器,并判断所述的下一个物理寄存器中的数据是否需要保留,如果是,继续根据所述调度优先级进行查找,直至找到可以接受调度数据的物理寄存器;
将逻辑寄存器编号和写通道数据写入当前写请求的功能单元绑定的物理寄存器,并将所述物理寄存器中的有效位设置为有效状态。
4.根据权利要求3所述调度数据的方法,其特征在于,所述判断当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留,具体包括:
判断所述当前写请求的功能单元绑定的物理寄存器中有效位的状态,根据判断结果确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留;
或者,根据有写请求的写通道来确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留,其中,所述有写请求的写通道中指定要写的逻辑寄存器的编号。
5.根据权利要求4所述调度数据的方法,其特征在于,所述根据有写请求的写通道来确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留,具体包括:
对所述有写请求的写通道的写通道编号译码,得到所述写通道编号的独热码;
对所述当前写请求的功能单元绑定的物理寄存器中逻辑寄存器编号位的数据译码,得到所述逻辑寄存器编号位的独热码;
将所述写通道编号的所述独热码与其对应的写使能信号进行与操作;
将各与操作的结果进行或操作,得到所有所述有写请求的逻辑寄存器编号的集合;
根据所述所有有写请求的逻辑寄存器编号的集合,来确定所述当前写请求的功能单元绑定的物理寄存器中的历史数据是否需要保留。
6.根据权利要求3所述调度数据的方法,其特征在于,所述预定的物理寄存器的调度优先级根据以下方式来确定:
当所述物理寄存器个数为偶数时,将所有所述物理寄存器分为第一簇和第二簇,所述第一簇物理寄存器中的数据只调度至所述第二簇内,并根据以下方式确定所述调度优先级:Rm和R(m+3)互为第一优先级,其中,0≤m≤M/2-1,所述Rm表示物理寄存器;所述m表示物理寄存器的编号;所述M表示物理寄存器的个数;
当所述物理寄存器个数为奇数时,根据以下规则和拓扑学原理确定所述物理寄存器的调度优先级:
当需要调度的物理寄存器个数为1时,进行最多3次的所述查找步骤;
两个所述需要调度的数据不能找到同一个空闲寄存器;
将需要调度的物理寄存器中的数据调度至符合调度优先级的寄存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610685174.5A CN106371805B (zh) | 2016-08-18 | 2016-08-18 | 处理器的动态调度互联寄存器及调度数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610685174.5A CN106371805B (zh) | 2016-08-18 | 2016-08-18 | 处理器的动态调度互联寄存器及调度数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106371805A CN106371805A (zh) | 2017-02-01 |
CN106371805B true CN106371805B (zh) | 2018-07-17 |
Family
ID=57879444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610685174.5A Active CN106371805B (zh) | 2016-08-18 | 2016-08-18 | 处理器的动态调度互联寄存器及调度数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106371805B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781100B (zh) * | 2019-10-23 | 2021-09-21 | 新华三信息安全技术有限公司 | 一种数据检测方法、逻辑芯片及网络设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1401101A (zh) * | 2000-12-11 | 2003-03-05 | 皇家菲利浦电子有限公司 | 信号处理设备和将信号处理结果提供给多个寄存器的方法 |
CN101246434A (zh) * | 2008-03-06 | 2008-08-20 | 中国人民解放军国防科学技术大学 | 一种利用剩余资源分配寄存器的方法 |
CN101727434A (zh) * | 2008-10-20 | 2010-06-09 | 北京大学深圳研究生院 | 一种特定应用算法专用集成电路结构 |
US8145889B2 (en) * | 2007-02-21 | 2012-03-27 | Renesas Electronics Corporation | Data processing system with branch target addressing using upper and lower bit permutation |
US8949575B2 (en) * | 2011-12-14 | 2015-02-03 | International Business Machines Corporation | Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086364A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Managing a Register Cache Based on an Architected Computer Instruction Set Having Operand Last-User Information |
-
2016
- 2016-08-18 CN CN201610685174.5A patent/CN106371805B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1401101A (zh) * | 2000-12-11 | 2003-03-05 | 皇家菲利浦电子有限公司 | 信号处理设备和将信号处理结果提供给多个寄存器的方法 |
US8145889B2 (en) * | 2007-02-21 | 2012-03-27 | Renesas Electronics Corporation | Data processing system with branch target addressing using upper and lower bit permutation |
CN101246434A (zh) * | 2008-03-06 | 2008-08-20 | 中国人民解放军国防科学技术大学 | 一种利用剩余资源分配寄存器的方法 |
CN101727434A (zh) * | 2008-10-20 | 2010-06-09 | 北京大学深圳研究生院 | 一种特定应用算法专用集成电路结构 |
US8949575B2 (en) * | 2011-12-14 | 2015-02-03 | International Business Machines Corporation | Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency |
Also Published As
Publication number | Publication date |
---|---|
CN106371805A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101770437B (zh) | 实现同步双端口存储器ip的并行读写的装置及方法 | |
EP3368989B1 (en) | Intelligent coded memory architecture with enhanced access scheduler | |
CN103730149B (zh) | 一种双端口存储器的读写控制电路 | |
CN1323362C (zh) | 网络设备及其外围器件互连资源的分配方法 | |
CN102141974A (zh) | 一种多核处理器核间通信方法及其电路结构 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN102023843A (zh) | 函数的调用方法、装置及智能卡 | |
CN102306141A (zh) | 一种描述动态可重构阵列配置信息的方法 | |
CN101211256A (zh) | 一种专用双流水线risc指令系统及其操作方法 | |
Usui et al. | A cost-effective and scalable merge sorter tree on FPGAs | |
CN101320344A (zh) | 一种多核或众核处理器功能验证设备及方法 | |
CN106843803B (zh) | 一种基于归并树的全排序加速器及应用 | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN106371805B (zh) | 处理器的动态调度互联寄存器及调度数据的方法 | |
US20080209038A1 (en) | Methods and systems for optimizing placement on a clock signal distribution network | |
CN110046024A (zh) | 用于数据中心存储评估框架仿真的方法 | |
CN116522844B (zh) | 电路划分方法、电路节点电压计算方法、终端及存储介质 | |
CN112464609A (zh) | 一种集成电路相对位置布局优化方法、装置及存储介质 | |
CN102411557B (zh) | 多粒度并行fft计算装置 | |
CN102611667B (zh) | 随机接入检测fft/ifft处理方法及装置 | |
CN112486904B (zh) | 可重构处理单元阵列的寄存器堆设计方法及装置 | |
CN110347343A (zh) | 数据管理方法和装置 | |
CN101916239B (zh) | 提高片上多处理器通信速度的方法 | |
US9158731B2 (en) | Multiprocessor arrangement having shared memory, and a method of communication between processors in a multiprocessor arrangement | |
CN107291371A (zh) | 一种读写锁的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |