System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及处理器,尤其涉及一种寄存器重命名方法、装置、系统、设备及介质。
技术介绍
1、在乱序处理器中,译码(decode)后的指令首先进行寄存器重命名(registerrenaming),再根据操作类型分配至不同的派遣(dispatch)队列中,由于超标量处理器基本都采用了预测的方式来执行指令,如分支预测、存数指令和取数指令相关预测等,则当流水线中的某条指令发生了预测错误,或者某条指令发生了异常时,那么在这条指令之后进入流水线的所有指令就都不允许提交了,需要将这些指令从流水线中抹掉,同时将处理器的状态恢复到开始执行这条指令时的状态。然而,在相关技术中,当指令从重排序缓冲区(reorder buffer,rob)中提交时,需要确定指令的目的寄存器的重命名关系,并将提交指令的目的物理寄存器的结果确认到逻辑寄存器中。因此当处理器的指令流中出现预测错误时,需要从重排序缓冲区中恢复寄存器重命名信息。其中有一定比例的没有目的寄存器的指令,是不需要进行寄存器的提交和恢复的。对该部分指令,通过在重排序缓冲区进行提交,来提交和恢复寄存器重命名信息,会造成资源的浪费,进而影响寄存器重命名恢复的速度,影响处理器的处理效率。
技术实现思路
1、本专利技术提供一种寄存器重命名方法、装置、系统、设备及介质,用以解决相关技术中对没有目的寄存器的指令在重排序缓冲区进行提交,来提交和恢复寄存器重命名信息,会造成资源的浪费,进而影响寄存器重命名恢复的速度,影响处理器的处理效率的问题。
2、本专利技术
3、获取译码后的多个指令,并记录多个指令中目标指令的顺序关系,得到重命名定序队列,目标指令为存在目的寄存器的指令;
4、将每个指令分配到每个指令对应的派遣队列去执行;
5、基于重命名定序队列,将执行完成的目标指令进行寄存器重命名的提交。
6、根据本专利技术提供的一种寄存器重命名方法,将每个指令分配到每个指令对应的派遣队列去执行,包括:
7、根据重命名映射表,确定每个指令的源寄存器对应的第一类物理寄存器;
8、为每个目标指令的目的寄存器映射第二类物理寄存器,并将映射关系写入重命名映射表;
9、将每个指令对应的第一类物理寄存器编号和第二类物理寄存器编号送入派遣队列,以得到指令的执行结果。
10、根据本专利技术提供的一种寄存器重命名方法,为每个目标指令的目的寄存器映射第二类物理寄存器,并将映射关系写入重命名映射表,包括:
11、根据物理寄存器表和空闲物理寄存器编号表,确定空闲物理寄存器;
12、为每个目标指令的目的寄存器映射空闲物理寄存器,并将映射后的空闲物理寄存器确定为第二类物理寄存器;
13、将映射关系写入重命名映射表,并在物理寄存器表和空闲物理寄存器编号表中修正第二类物理寄存器的状态。
14、根据本专利技术提供的一种寄存器重命名方法,基于重命名定序队列,将执行完成的目标指令进行寄存器重命名的提交,包括:
15、根据重命名定序队列确定执行完成的目标指令的寄存器重命名的提交顺序;
16、基于提交顺序,依次将每个执行完成的目标指令对应的执行结果写入到目标指令对应的第二类物理寄存器中。
17、根据本专利技术提供的一种寄存器重命名方法,方法还包括:
18、在发生预测错误或发生异常时,基于重命名定序队列进行寄存器重命名恢复。
19、根据本专利技术提供的一种寄存器重命名方法,在发生预测错误或发生异常时,基于重命名定序队列进行寄存器重命名恢复,包括:
20、在发生预测错误或发生异常时,基于重命名定序队列确定目标指令的顺序关系;
21、根据顺序关系,从当前目标指令开始,逐个恢复目标指令的执行,并对应恢复重命名映射表。
22、本专利技术还提供一种寄存器重命名装置,包括如下单元:
23、获取单元,用于获取译码后的多个指令,并记录多个指令中目标指令的顺序关系,得到重命名定序队列,目标指令为存在目的寄存器的指令;
24、执行单元,用于将每个指令分配到每个指令对应的派遣队列去执行;
25、提交单元,用于基于重命名定序队列,将执行完成的目标指令进行寄存器重命名的提交。
26、根据本专利技术提供的一种寄存器重命名装置,执行单元具体用于:
27、根据重命名映射表,确定每个指令的源寄存器对应的第一类物理寄存器;
28、为每个目标指令的目的寄存器映射第二类物理寄存器,并将映射关系写入重命名映射表;
29、将每个指令对应的第一类物理寄存器编号和第二类物理寄存器编号送入派遣队列,以得到指令的执行结果。
30、根据本专利技术提供的一种寄存器重命名装置,执行单元具体用于:
31、根据物理寄存器表和空闲物理寄存器编号表,确定空闲物理寄存器;
32、为每个目标指令的目的寄存器映射空闲物理寄存器,并将映射后的空闲物理寄存器确定为第二类物理寄存器;
33、将映射关系写入重命名映射表,并在物理寄存器表和空闲物理寄存器编号表中修正第二类物理寄存器的状态。
34、根据本专利技术提供的一种寄存器重命名装置,提交单元具体用于:
35、根据重命名定序队列确定执行完成的目标指令的寄存器重命名的提交顺序;
36、基于提交顺序,依次将每个执行完成的目标指令对应的执行结果写入到目标指令对应的第二类物理寄存器中。
37、根据本专利技术提供的一种寄存器重命名装置,执行单元还用于:
38、在发生预测错误或发生异常时,基于重命名定序队列进行寄存器重命名恢复。
39、根据本专利技术提供的一种寄存器重命名装置,在发生预测错误或发生异常时,基于重命名定序队列进行寄存器重命名恢复,执行单元具体还用于:
40、在发生预测错误或发生异常时,基于重命名定序队列确定目标指令的顺序关系;
41、根据顺序关系,从当前目标指令开始,逐个恢复目标指令的执行,并对应恢复重命名映射表。
42、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上述任一种寄存器重命名方法。
43、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一种寄存器重命名方法。
44、本专利技术提供的寄存器重命名方法,首先获取译码后的多个指令,并记录多个指令中目标指令的顺序关系,得到重命名定序队列,目标指令为存在目的寄存器的指令,然后将每个指令分配到每个指令对应的派遣队列去执行,最后基于重命名定序队列,将执行完成的目标指令进行寄存器重命名的提交。通过重命名定序队列做寄存器重命名的提交,避免了有些指令没有目的寄存器造成的浪费,节省处理器资源。
本文档来自技高网...【技术保护点】
1.一种寄存器重命名方法,其特征在于,所述方法包括:
2.根据权利要求1所述的寄存器重命名方法,其特征在于,所述将每个所述指令分配到每个所述指令对应的派遣队列去执行,包括:
3.根据权利要求2所述的寄存器重命名方法,其特征在于,所述为每个所述目标指令的目的寄存器映射第二类物理寄存器,并将映射关系写入所述重命名映射表,包括:
4.根据权利要求3所述的寄存器重命名方法,其特征在于,所述基于所述重命名定序队列,将执行完成的所述目标指令进行寄存器重命名的提交,包括:
5.根据权利要求2-4任一项所述的寄存器重命名方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的寄存器重命名方法,其特征在于,所述在发生预测错误或发生异常时,基于所述重命名定序队列进行寄存器重命名恢复,包括:
7.一种寄存器重命名装置,其特征在于,包括:
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述寄存器重命名方法
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述寄存器重命名方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述寄存器重命名方法。
...【技术特征摘要】
1.一种寄存器重命名方法,其特征在于,所述方法包括:
2.根据权利要求1所述的寄存器重命名方法,其特征在于,所述将每个所述指令分配到每个所述指令对应的派遣队列去执行,包括:
3.根据权利要求2所述的寄存器重命名方法,其特征在于,所述为每个所述目标指令的目的寄存器映射第二类物理寄存器,并将映射关系写入所述重命名映射表,包括:
4.根据权利要求3所述的寄存器重命名方法,其特征在于,所述基于所述重命名定序队列,将执行完成的所述目标指令进行寄存器重命名的提交,包括:
5.根据权利要求2-4任一项所述的寄存器重命名方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的寄存器重命名方法,其...
【专利技术属性】
技术研发人员:郇丹丹,李祖松,宋德林,商家玮,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。