CN104516726B - 一种指令处理的方法及装置 - Google Patents
一种指令处理的方法及装置 Download PDFInfo
- Publication number
- CN104516726B CN104516726B CN201310449617.7A CN201310449617A CN104516726B CN 104516726 B CN104516726 B CN 104516726B CN 201310449617 A CN201310449617 A CN 201310449617A CN 104516726 B CN104516726 B CN 104516726B
- Authority
- CN
- China
- Prior art keywords
- physical register
- renaming
- released
- mark
- target object
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例公开了一种指令处理的方法及装置,涉及计算机领域,解决了指令处理中,处理器处理性能低,功耗大的问题。具体方案为:获取输入指令并读取指令内容,当所述指令包含第一操作指令时,查找所述第一操作指令的目标对象和源对象,将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。本发明用于处理器指令处理。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种指令处理的方法及装置。
背景技术
在高性能的处理器设计中,性能和功耗是最重要的指标之一。现有的高性能处理器都采用乱序执行的流水线设计,所有的基本指令基本上都可以分为取指,译码,重命名,发射,执行,结果返回等步骤
在执行指令的过程中,有一个指令:寄存器间的MOV(传送指令,用于把一个字节、字或双字的操作数从源位置传送到目的位置,源操作数的内容不变)指令。在很多程序中,寄存器间的MOV指令占了比较多的比例,在高性能处理器中,用处理器架构指令集编译后的程序中,有大约6%的指令是寄存器间的MOV指令。
现有技术对于寄存器间的MOV指令进行取指,译码,接着寄存器间的MOV指令在重命名阶段需要检查物理寄存器空闲列表中是否有空闲的寄存器,如果有则把其中一个空闲的物理寄存器分配给当前指令,即该指令对应的架构寄存器项的内容修改为该物理寄存器。然后在执行发射,执行,结果返回等步骤。
在实现上述执行指令的过程中,发明人发现现有技术中至少存在如下问题:
寄存器间的MOV指令的执行要经过取指,译码,重命名,发射,执行,结果返回等步骤。由于执行步骤较多,所以会造成处理器处理性能低,功耗大的问题。
发明内容
本发明的实施例提供一种指令处理的方法及装置,能够提高处理器的性能,并减小处理器的功耗。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种指令处理的方法,包括如下步骤:
获取输入指令并读取指令内容;
当所述指令包含第一操作指令时,查找所述第一操作指令的目标对象和源对象;
将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。
结合第一方面,在第一种可能的实现方式中,所述第一操作指令为寄存器间的MOV指令。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识之后,包括:
执行第二操作指令,判断执行结果,所述第二操作指令为跳转指令;
若所述执行结果出错,则将所述目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
结合第一方面,在第三种可能的实现方式中,所述将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识之后,包括:
生成重命名队列,所述重命名队列包括至少一个重命名项,所述重命名项包括:是否有效,是否跳转,目标对象,修改前目标对象对应的物理寄存器标识,修改后目标对象对应的物理寄存器标识。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述生成重命名队列之后,包括:
根据重命名队列对物理寄存器释放进行释放。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据重命名队列对物理寄存器进行释放,包括:
在所述重命名队列的重命名项中获取一个待释放物理寄存器标识,所述待释放物理寄存器标识为所述重命名项中的修改前目标对象对应的物理寄存器标识;
将所述待释放物理寄存器标识与所有架构寄存器对应的物理寄存器标识进行匹配;
若所述所有架构寄存器对应的物理寄存器标识不包含所述待释放物理寄存器标识,则将所述待释放物理寄存器标识与未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识进行匹配;
若所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中不包含所述待释放物理寄存器标识,则将所述待释放物理寄存器标识对应的物理寄存器释放。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
若所述所有架构寄存器对应的物理寄存器标识包含所述待释放物理寄存器标识,则不将所述待释放物理寄存器标识对应的物理寄存器释放。
结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:
若所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中包含所述待释放物理寄存器标识,则不将所述待释放物理寄存器标识对应的物理寄存器释放。
结合第一方面的第五种可能的实现方式,在第八种可能的实现方式中,所述在所述重命名队列的重命名项中获取一个待释放物理寄存器标识,包括:
生成确认指针;
按照预设的顺序将所述确认指针指向所述重命名队列的重命名项中的预定项;
在所述预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,以便对所述预定项的中获取的所述待释放物理寄存器标识对应的物理寄存器进行释放。
第二方面,提供一种处理器,用于处理指令,包括:
获取单元,用于获取输入指令并读取指令内容;
查找单元,用于当所述获取单元获取的指令包含第一操作指令时,查找所述第一操作指令的目标对象和源对象;
修改单元,用于将所述查找单元查找的目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。
结合第二方面,在第一种可能的实现方式中,所述查找单元中的第一操作指令为寄存器间的MOV指令。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
跳转单元,用于执行第二操作指令,判断执行结果,所述第二操作指令为跳转指令;
恢复单元,用于当所述跳转单元的执行结果出错时,将所述目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
结合第二方面,在第三种可能的实现方式中,所述装置还包括:
生成单元,用于生成重命名队列;所述重命名队列包括至少一个重命名项,所述重命名项包括:是否有效,是否跳转,目标对象,修改前目标对象对应的物理寄存器标识,修改后目标对象对应的物理寄存器标识。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
释放单元,用于根据生成单元生成的重命名队列对物理寄存器释放进行释放。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述释放单元包括:
获取子单元,用于在所述重命名队列的重命名项中获取一个待释放物理寄存器标识,所述待释放物理寄存器标识为所述重命名项中的修改前目标对象对应的物理寄存器标识;
第一匹配子单元,用于将所述获取子单元获取的待释放物理寄存器标识与所有架构寄存器对应的物理寄存器标识进行匹配;
第二匹配子单元,用于所述第一匹配子单元的匹配结果中,当所有架构寄存器对应的物理寄存器标识不包含所述待释放物理寄存器标识的情况下,将所述待释放物理寄存器标识与未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识进行匹配;
释放子单元,用于所述第二匹配子单元的匹配结果中,当所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中不包含所述待释放物理寄存器标识的情况下,将所述待释放物理寄存器标识对应的物理寄存器释放。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述释放子单元还用于:
所述第一匹配子单元的匹配结果中,当所有架构寄存器对应的物理寄存器标识包含所述待释放物理寄存器标识的情况下,则不将所述待释放物理寄存器标识对应的物理寄存器释放。
结合第二方面的第五种可能的实现方式,在第七种可能的实现方式中,所述释放子单元还用于:
所述第二匹配子单元的匹配结果中,当所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中包含所述待释放物理寄存器标识的情况下,不将所述待释放物理寄存器标识对应的物理寄存器释放。
结合第二方面的第五种可能的实现方式,在第八种可能的实现方式中,所述获取子单元包括:
生成模块,用于生成确认指针;
指向模块,用于按照预设的顺序将所述生成模块生成的确认指针指向所述重命名队列的重命名项中的预定项;
获取模块,用于在所述指向模块指向的预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,以便对所述预定项的中获取的所述待释放物理寄存器标识对应的物理寄存器进行释放。
上述方案,能够通过源架构寄存器中对应的物理寄存器标识对目标架构寄存器进行重命名,并在重命名后确定释放相应的物理寄存器,由于不需要重新生成物理寄存器,从而避免了进行与现有技术中其他指令相同的后续处理,能够提高处理器的性能,并减小处理器的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明的实施例提供的一种指令处理方法的流程示意图;
图2为本发明的另一实施例提供的一种指令处理方法的流程示意图;
图3为本发明的又一实施例提供的一种指令处理方法的流程示意图;
图4为本发明的再一实施例提供的一种指令处理方法的流程示意图;
图5为本发明的另一实施例提供的一种指令处理方法的流程示意图;
图6为本发明的实施例提供的一种处理器的结构示意图;
图7为本发明的另一实施例提供的一种处理器的结构示意图;
图8为本发明的又一实施例提供的一种处理器的结构示意图;
图9为本发明的再一实施例提供的一种处理器的结构示意图;
图10为本发明的另一实施例提供的一种处理器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本发明的实施例提供一种指令处理的方法,参照图1所示,包括以下步骤:
101、获取输入指令并读取指令内容。
102、当指令包含第一操作指令时,查找第一操作指令的目标对象和源对象。
其中,第一操作指令为寄存器间的MOV指令。
103、将目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。
具体的,一个寄存器间的MOV指令为:MOV r2,r1,该指令代表的意思是把架构寄存器r1对应的物理寄存器中的数值赋给架构寄存器r2对应的物理寄存器;其中,架构寄存器r1为源对象,架构寄存器r2为目标对象。源对象r1对应的物理寄存器标识为35,目标对象r2对应的物理寄存器标识为15,将目标对象对应的物理寄存器标识15改为对象对应的物理寄存器标识35,则目标对象对应的物理寄存器标识变为35,这样目标对象对应的物理寄存器中的数值就与源对象一致,如此就完成了对目标对象重命名。
表1
参照表1所示,每一个架构寄存器都对应一个物理寄存器标识,重命名后架构寄存器r1和r2都对应35号物理寄存器,X代表未知的物理寄存器标识。
在上述实施例中,查找MOV指令中源对象的对应的物理寄存器标识,将MOV指令中的目标对象的内容修改为原架构寄存器对应的物理寄存器标识。由于源对象对应的物理寄存器已经执行过发射、执行、结果返回等步骤,就不需要再去执行这些操作了,这样提高了处理器的性能,并减小处理器的功耗。
本发明的实施例提供一种指令处理的方法,参照图2所示,包括以下步骤:
201、获取输入指令并读取指令内容。
202、当指令包含第一操作指令时,查找第一操作指令的目标对象和源对象。
其中,第一操作指令为寄存器间的MOV指令。
203、将目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。
204、执行第二操作指令,判断执行结果。
其中,第二操作指令为跳转指令。
205、若执行结果出错,则将目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
其中,跳转指令的执行结果出错代表寄存器间的MOV指令不需要执行,因此要取消该寄存器间的MOV的执行结果,这样需要将目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
在上述实施例中,查找MOV指令中源对象的对应的物理寄存器标识,将MOV指令中的目标对象的内容修改为原架构寄存器对应的物理寄存器标识。由于源对象对应的物理寄存器已经执行过发射、执行、结果返回等步骤,就不需要再去执行这些操作了,这样提高了处理器的性能,并减小处理器的功耗。
本发明的实施例提供一种指令处理的方法,参照图3所示,包括以下步骤:
301、获取输入指令并读取指令内容;
302、当指令包含第一操作指令时,查找第一操作指令的目标对象和源对象;
其中,第一操作指令为寄存器间的MOV指令。
303、将目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。
304、生成重命名队列,
其中,重命名队列包括至少一个重命名项,重命名项包括:是否有效,是否跳转,目标对象,修改前目标对象对应的物理寄存器标识,修改后目标对象对应的物理寄存器标识。
表2
参照表2所示,表2代表重命名队列,当将目标对象对应的物理寄存器标识15修改为源对象对应的物理寄存器标识35之后,将这条指令的信息写入重命名列表中;其中,每一行都代表一个重命名项;是否有效,0代表指令无效,1代表指令有效;是否跳转,0代表不跳转,1代表跳转;
305、根据重命名队列对物理寄存器释放进行释放。
其中,待释放物理寄存器标识为修改前目标对象对应的物理寄存器标识;本发明MOV指令重命名的方法,会造成一个物理寄存器对应多个架构寄存器的情况,所以重命名队列中的至少一个重命名项中的目的架构寄存器和原架构寄存器对应同一个物理寄存器标识。
进一步的,参照图4所示,重命名队列对物理寄存器释放进行释放,具体包括以下步骤:
3051、在重命名队列的重命名项中获取一个待释放物理寄存器标识。
其中,待释放物理寄存器标识为重命名项中的修改前目标对象对应的物理寄存器标识;、
进一步的,参照图5所示,在重命名队列的重命名项中获取一个待释放物理寄存器标识包括:
3051-1、生成确认指针。
3051-2、按照预设的顺序将确认指针指向重命名队列的重命名项中的预定项。
其中,预定项中的修改前目标对象对应的物理寄存器标识就是需要判断的是否还要继续使用的物理寄存器标识。
3051-3在预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识。
上述步骤以便对预定项的中获取的待释放物理寄存器标识进行释放。其中,将待释放物理寄存器标识加入可能释放队列中去,以便可能释放队列保存待释放物理寄存器标识的信息。
3052、将待释放物理寄存器标识与所有架构寄存器对应的物理寄存器标识进行匹配。
其中,进行匹配也就是在所有的架构寄存器对应的物理寄存器标识中查找与待释放物理寄存器标识相同的标识。
3053、若所有架构寄存器对应的物理寄存器标识包含待释放物理寄存器标识,则不将待释放物理寄存器标识对应的物理寄存器释放。
3054、若所有架构寄存器对应的物理寄存器标识不包含待释放物理寄存器标识,则将待释放物理寄存器标识与未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识进行匹配。
3055、若未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中包含待释放物理寄存器标识,则不将待释放物理寄存器标识对应的物理寄存器释放。
3056、若未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中不包含待释放物理寄存器标识,则将待释放物理寄存器标识对应的物理寄存器释放。
其中,待释放物理寄存器标识为修改前目标对象对应的物理寄存器标识;本发明MOV指令重命名的方法,会造成一个物理寄存器对应多个架构寄存器的情况,因此需要进行两次匹配来确定该物理寄存器不会被再次使用。
其中,对该待释放物理寄存器标识处理完成之后,还要继续进行下一个待释放物理寄存器标识的获取和对该待释放物理寄存器标识对应的物理寄存器释放,直至所有重命名项中对应的待释放物理寄存器标识对应的物理寄存器都根据匹配结果释放完毕。
具体的,以下述实施例为例,当一段程序执行完之后,例如以下1-4所示的程序片段:
1:MOV r2,r1(传送指令,用于把一个字节、字或双字的操作数从原架构寄存器r1置传送到目的架构寄存器r2);
2:ADD r2,r5(相加指令,用于把架构寄存器r5对应的物理寄存器的值与架构寄存器r2对应的物理寄存器的值相加,将相加结果赋给一个空闲的物理寄存器,并将r2与该空闲的物理寄存器相对应);
3:BEQ r3(跳转指令,不会对架构寄存器对应的物理寄存器标识进行改变);
4:ADD r1,r2(相加指令,用于把架构寄存器r2对应的物理寄存器的值与架构寄存器r1对应的物理寄存器的值相加,将相加结果赋给一个空闲的物理寄存器,并将r1与该空闲的物理寄存器相对应);
表3
参照表3所示,当这4条指令处理完之后,处理器产生重命名队列,该重命名队列包括4个重命名项,每个重命名项对应每一条指令的信息;处理器生成确认指针指向重命名队列的第一项,在预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,标识号为15;将待释放物理寄存器标识15写入可能释放队列中;
表4
接着,参照表4所示,在所有架构寄存器对应的物理寄存器标识查找是否包含待释放物理寄存器标识15,查找结果不包含15,则在未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中查找待释放物理寄存器标识15(表3的后3项即为未进行释放处理的重命名项),查找结果不包含15,则释放待释放物理寄存器标识15对应的物理寄存器。
接着,进行下一个物理寄存器的释放,确认指针指向重命名队列的第二项,在预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,标识号为35;将待释放物理寄存器标识35写入可能释放队列中;接着,在所有架构寄存器对应的物理寄存器标识查找是否包含待释放物理寄存器标识35,查找结果不包含35,则在未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中查找待释放物理寄存器标识35,查找结果包含35(表3中的第四项包含35),则不释放待释放物理寄存器标识35对应的物理寄存器。
接着,进行下一个物理寄存器的释放,确认指针指向重命名队列的第三项,由于第三项修改前目标对象对应的物理寄存器标识为空,所以不进行释放。
然后,确认指针指向重命名队列的第四项,在预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,号码为35;将待释放物理寄存器标识35写入可能释放队列中;接着,在所有架构寄存器对应的物理寄存器标识查找是否包含待释放物理寄存器标识35,查找结果不包含35,则在未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中查找待释放物理寄存器标识35,除了第四项所有的重命名项对应的待释放物理寄存器标识都已释放完毕,所以查找结果不包含35,则释放待释放物理寄存器标识35对应的物理寄存器,当然该释放过程的顺序是按照指令执行的顺序进行的,并不与每个指令对应的重命名项在重命名队列中的位置直接相关的,即也可以在重命名队列中为每个指令对应的重命名项设置其他的排序方式,此时确认指针按照相应的排序方式确定待释放物理寄存器标识所在重命名项的指向即可。
在上述实施例中,查找MOV指令中源对象的对应的物理寄存器标识,将MOV指令中的目标对象的内容修改为原架构寄存器对应的物理寄存器标识。由于源对象对应的物理寄存器已经执行过发射、执行、结果返回等步骤,就不需要再去执行这些操作了,这样提高了处理器的性能,并减小处理器的功耗。
本发明的实施例提供一种处理器4,参照图6所示,用于实现上述指令处理的方法,包括:
获取单元41,用于获取输入指令并读取指令内容;
查找单元42,用于当获取单元41获取的指令包含第一操作指令时,查找第一操作指令的目标对象和源对象;
其中,第一操作指令为寄存器间的MOV指令。
修改单元43,用于将查找单元42查找的目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识。
进一步的,参照图7所示,处理器4还包括:
跳转单元44,用于执行第二操作指令,判断执行结果,第二操作指令为跳转指令。
其中,第二操作指令为跳转指令。
恢复单元45,用于当跳转单元44的执行结果出错时,将目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
可选的,参照图8所示,处理器4还包括:
生成单元46,用于生成重命名队列;
其中,重命名队列包括至少一个重命名项,重命名项包括:是否有效,是否跳转,目标对象,修改前目标对象对应的物理寄存器标识,修改后目标对象对应的物理寄存器标识。
释放单元47,用于根据生成单元46生成的重命名队列对物理寄存器释放进行释放。
进一步的,参照图9所示,释放单元47包括:
获取子单元471,用于在重命名队列的重命名项中获取一个待释放物理寄存器标识,待释放物理寄存器标识为重命名项中的修改前目标对象对应的物理寄存器标识;
可选的,参照图10所示,获取子单元471包括:
生成模块4711,用于生成确认指针;
指向模块4712,用于按照预设的顺序将生成模块生成的确认指针指向重命名队列的重命名项中的预定项;
获取模块4713,用于在指向模块指向的预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识。
以便对预定项的中获取的待释放物理寄存器标识对应的物理寄存器进行释放。
进一步的,参照图9所示,释放单元47包括:
第一匹配子单元472,用于将获取子单元471获取的待释放物理寄存器标识与所有架构寄存器对应的物理寄存器标识进行匹配;
释放子单元474,用于第一匹配子单元472的匹配结果中,当所有架构寄存器对应的物理寄存器标识包含待释放物理寄存器标识的情况下,则不将待释放物理寄存器标识对应的物理寄存器释放。
第二匹配子单元473,用于第一匹配子单元472的匹配结果中,当所有架构寄存器对应的物理寄存器标识不包含待释放物理寄存器标识情况下,将待释放物理寄存器标识与未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识进行匹配;
释放子单元474,还用于第二匹配子单元473的匹配结果中,当未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中包含待释放物理寄存器标识的情况下,不将待释放物理寄存器标识对应的物理寄存器释放。
释放子单元474,还用于第二匹配子单元473的匹配结果中,在未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中不包含待释放物理寄存器标识情况下,将待释放物理寄存器标识对应的物理寄存器释放。
其中,待释放物理寄存器标识为修改前目标对象对应的物理寄存器标识;本发明MOV指令重命名的方法,会造成一个物理寄存器对应多个架构寄存器的情况,因此需要进行两次匹配来确定该物理寄存器不会被再次使用。
在上述实施例中,处理器查找MOV指令中源对象的对应的物理寄存器标识,将MOV指令中的目标对象的内容修改为原架构寄存器对应的物理寄存器标识。由于源对象对应的物理寄存器已经执行过发射、执行、结果返回等步骤,就不需要再去执行这些操作了,这样提高了处理器的性能,并减小处理器的功耗。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种指令处理的方法,其特征在于,包括如下步骤:
获取输入指令并读取指令内容;
当所述指令包含第一操作指令时,查找所述第一操作指令的目标对象和源对象;
将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识;
所述将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识之后,包括:
生成重命名队列,所述重命名队列包括至少一个重命名项,所述重命名项包括:是否有效,是否跳转,目标对象,修改前目标对象对应的物理寄存器标识,修改后目标对象对应的物理寄存器标识。
2.根据权利要求1所述的方法,其特征在于,所述第一操作指令为寄存器间的MOV指令。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识之后,包括:
执行第二操作指令,判断执行结果,所述第二操作指令为跳转指令;
若所述执行结果出错,则将所述目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
4.根据权利要求1所述的方法,其特征在于,所述生成重命名队列之后,包括:
根据重命名队列对物理寄存器进行释放。
5.根据权利要求4所述的方法,其特征在于,所述根据重命名队列对物理寄存器进行释放,包括:
在所述重命名队列的重命名项中获取一个待释放物理寄存器标识,所述待释放物理寄存器标识为所述重命名项中的修改前目标对象对应的物理寄存器标识;
将所述待释放物理寄存器标识与所有架构寄存器对应的物理寄存器标识进行匹配;
若所述所有架构寄存器对应的物理寄存器标识不包含所述待释放物理寄存器标识,则将所述待释放物理寄存器标识与未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识进行匹配;
若所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中不包含所述待释放物理寄存器标识,则将所述待释放物理寄存器标识对应的物理寄存器释放。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述所有架构寄存器对应的物理寄存器标识包含所述待释放物理寄存器标识,则不将所述待释放物理寄存器标识对应的物理寄存器释放。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中包含所述待释放物理寄存器标识,则不将所述待释放物理寄存器标识对应的物理寄存器释放。
8.根据权利要求5所述的方法,其特征在于,所述在所述重命名队列的重命名项中获取一个待释放物理寄存器标识,包括:
生成确认指针;
按照预设的顺序将所述确认指针指向所述重命名队列的重命名项中的预定项;
在所述预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,以便对所述预定项的中获取的所述待释放物理寄存器标识对应的物理寄存器进行释放。
9.一种处理器,用于实现指令处理,其特征在于,包括:
获取单元,用于获取输入指令并读取指令内容;
查找单元,用于当所述获取单元获取的指令包含第一操作指令时,查找所述第一操作指令的目标对象和源对象;
修改单元,用于将所述查找单元查找的目标对象所对应的物理寄存器标识修改为源对象所对应的物理寄存器标识;
生成单元,用于生成重命名队列;所述重命名队列包括至少一个重命名项,所述重命名项包括:是否有效,是否跳转,目标对象,修改前目标对象对应的物理寄存器标识,修改后目标对象对应的物理寄存器标识。
10.根据权利要求9所述的处理器,其特征在于,所述查找单元中的第一操作指令为寄存器间的MOV指令。
11.根据权利要求10所述的处理器,其特征在于,所述处理器还包括:
跳转单元,用于执行第二操作指令,判断执行结果,所述第二操作指令为跳转指令;
恢复单元,用于当所述跳转单元的执行结果出错时,将所述目标对象所对应的物理寄存器标识恢复为修改前的物理寄存器的标识。
12.根据权利要求9所述的处理器,其特征在于,所述处理器还包括:
释放单元,用于根据生成单元生成的重命名队列对物理寄存器释放进行释放。
13.根据权利要求12所述的处理器,其特征在于,所述释放单元包括:
获取子单元,用于在所述重命名队列的重命名项中获取一个待释放物理寄存器标识,所述待释放物理寄存器标识为所述重命名项中的修改前目标对象对应的物理寄存器标识;
第一匹配子单元,用于将所述获取子单元获取的待释放物理寄存器标识与所有架构寄存器对应的物理寄存器标识进行匹配;
第二匹配子单元,用于所述第一匹配子单元的匹配结果中,当所有架构寄存器对应的物理寄存器标识不包含所述待释放物理寄存器标识的情况下,将所述待释放物理寄存器标识与未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识进行匹配;
释放子单元,用于所述第二匹配子单元的匹配结果中,在所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中不包含所述待释放物理寄存器标识情况下,将所述待释放物理寄存器标识对应的物理寄存器释放。
14.根据权利要求13所述的处理器,其特征在于,所述释放子单元还用于:
所述第一匹配子单元的匹配结果中,当所有架构寄存器对应的物理寄存器标识包含所述待释放物理寄存器标识的情况下,则不将所述待释放物理寄存器标识对应的物理寄存器释放。
15.根据权利要求13所述的处理器,其特征在于,所述释放子单元还用于:
所述第二匹配子单元的匹配结果中,当所述未进行释放处理的重命名项中的修改前目标对象对应的物理寄存器标识中包含所述待释放物理寄存器标识的情况下,不将所述待释放物理寄存器标识对应的物理寄存器释放。
16.根据权利要求13所述的处理器,其特征在于,所述获取子单元包括:
生成模块,用于生成确认指针;
指向模块,用于按照预设的顺序将所述生成模块生成的确认指针指向所述重命名队列的重命名项中的预定项;
获取模块,用于在所述指向模块指向的预定项中获取修改前目标对象对应的物理寄存器标识作为待释放物理寄存器标识,以便对所述预定项的中获取的所述待释放物理寄存器标识对应的物理寄存器进行释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310449617.7A CN104516726B (zh) | 2013-09-27 | 2013-09-27 | 一种指令处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310449617.7A CN104516726B (zh) | 2013-09-27 | 2013-09-27 | 一种指令处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104516726A CN104516726A (zh) | 2015-04-15 |
CN104516726B true CN104516726B (zh) | 2018-08-07 |
Family
ID=52792093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310449617.7A Active CN104516726B (zh) | 2013-09-27 | 2013-09-27 | 一种指令处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104516726B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2538237B (en) * | 2015-05-11 | 2018-01-10 | Advanced Risc Mach Ltd | Available register control for register renaming |
CN108875363B (zh) * | 2017-12-29 | 2021-04-30 | 北京安天网络安全技术有限公司 | 一种加速虚拟执行的方法、装置、电子设备及存储介质 |
CN112667241B (zh) * | 2019-11-08 | 2023-09-29 | 安徽寒武纪信息科技有限公司 | 机器学习指令的转换方法及装置、板卡、主板、电子设备 |
CN111124492B (zh) * | 2019-12-16 | 2022-09-20 | 成都海光微电子技术有限公司 | 指令生成方法、装置、指令执行方法、处理器及电子设备 |
CN114356420B (zh) * | 2021-12-28 | 2023-02-17 | 海光信息技术股份有限公司 | 指令流水线的处理方法及装置、电子装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594754B1 (en) * | 1999-07-07 | 2003-07-15 | Intel Corporation | Mapping destination logical register to physical register storing immediate or renamed source register of move instruction and using mapping counters |
CN101739237A (zh) * | 2009-12-21 | 2010-06-16 | 北京龙芯中科技术服务中心有限公司 | 微处理器功能性指令实现装置和方法 |
CN102566976A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 管理重命名寄存器的寄存器重命名系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005459A1 (en) * | 2010-12-28 | 2012-01-05 | Advanced Micro Devices, Inc. | Processor having increased performance and energy saving via move elimination |
-
2013
- 2013-09-27 CN CN201310449617.7A patent/CN104516726B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594754B1 (en) * | 1999-07-07 | 2003-07-15 | Intel Corporation | Mapping destination logical register to physical register storing immediate or renamed source register of move instruction and using mapping counters |
CN101739237A (zh) * | 2009-12-21 | 2010-06-16 | 北京龙芯中科技术服务中心有限公司 | 微处理器功能性指令实现装置和方法 |
CN102566976A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 管理重命名寄存器的寄存器重命名系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104516726A (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104516726B (zh) | 一种指令处理的方法及装置 | |
US9965285B2 (en) | Method and apparatus for efficient scheduling for asymmetrical execution units | |
CN111414197B (zh) | 数据处理系统、编译器、处理器的方法和机器可读介质 | |
DE102018006791A1 (de) | Prozessoren, Verfahren und Systeme mit einem konfigurierbaren räumlichen Beschleuniger mit einem Sequenzer-Datenflussoperator | |
US10776124B2 (en) | Handling exceptional conditions for vector arithmetic instruction | |
US9547493B2 (en) | Self-timed user-extension instructions for a processing device | |
CN108369511A (zh) | 用于基于通道的跨步存储操作的指令和逻辑 | |
US8271768B2 (en) | Concurrent handling of exceptions in received aggregate exception structure with supplied exception handlers and marking handled exceptions | |
US9965275B2 (en) | Element size increasing instruction | |
KR20140131472A (ko) | 상수 저장 레지스터를 구비하는 재구성 가능 프로세서 | |
CN108139903B (zh) | 依dmb操作用加载/存储操作实施加载撷取/存储释放指令 | |
CN108182082A (zh) | 一种流水处理双发射处理器记分板电路 | |
US20130339689A1 (en) | Later stage read port reduction | |
US9990216B2 (en) | Providing hypercall interface for virtual machines | |
TWI733746B (zh) | 在運行時最佳化指令的處理器、由處理器在運行時最佳化指令的方法及非暫態機器可讀媒體 | |
US20080320275A1 (en) | Concurrent exception handling | |
US10476492B2 (en) | Structures and operations of integrated circuits having network of configurable switches | |
US20140281423A1 (en) | Processor and method for processing instructions using at least one processing pipeline | |
EP2709003B1 (en) | Loopback structure and data loopback processing method for processor | |
JP5238876B2 (ja) | 情報処理装置及び情報処理方法 | |
Lethin | How vliw almost disappeared-and then proliferated | |
CN205680085U (zh) | 调试启用处理设备和嵌入式处理系统 | |
Fryza et al. | Instruction-level programming approach for very long instruction word digital signal processors | |
CN117348881A (zh) | 编译方法、编译装置和机器可读存储介质 | |
Anjam et al. | On the Implementation of Traps for a Softcore VLIW Processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |