用于处理器的适于短操作数的扩展指令执行方法及装置制造方法及图纸

技术编号:18732013 阅读:18 留言:0更新日期:2018-08-22 02:54
本发明专利技术提供一种用于处理器的适于短操作数的扩展指令执行方法,包括:1)取出扩展指令,其由处理器的原始长操作数指令扩展而得;原始长操作数指令包括至少两个用于指定操作数位置的域,操作数包括源操作数和目的操作数;其中,将原始长操作数指令的至少一个用于指定操作数位置的域重定义为指定两个短操作数位置的域,从而得到所述扩展指令;2)对指令进行译码,分解成对应于一系列微操作的控制信号;3)将控制信号派发,以寻址并取出短操作数、执行原始长操作数指令对应的运算、然后再将运算结果存入扩展指令所指定的寄存器。本发明专利技术还提供了相应的用于处理器的适于短操作数的扩展指令执行装置。

Extended instruction execution method and device suitable for short operation number for processor

The invention provides an extended instruction execution method suitable for short operands for a processor, including: 1) taking out an extended instruction, which is obtained by extending the processor's original long operand instruction; the original long operand instruction includes at least two fields for specifying the position of the operand, and the operand includes the source operand and the destination operand The extended instruction is obtained by redefining at least one field of the original long operand instruction for the specified operand position as a field of the specified two short operand positions; 2) decoding the instruction into a control signal corresponding to a series of micro-operations; 3) distributing the control signal to address and extract the short operand position. Operators, perform the operations corresponding to the original long operand instruction, and then store the result of the operation in the register specified by the extension instruction. The invention also provides an extended instruction execution device corresponding to a short operation number for a processor.

【技术实现步骤摘要】
用于处理器的适于短操作数的扩展指令执行方法及装置
本专利技术涉及微处理器的体系结构
,具体地说,本专利技术涉及一种用于处理器的适于短操作数的扩展指令执行方法及装置。
技术介绍
随着计算技术的发展,为了满足各种新应用的需求,提高某一方面的性能,许多厂商扩展了指令集。例如,为了提高图像和多媒体之类软件的性能,增加了单指令多数据流指令;为了加密解密的速度,增加了加密解密类指令。这种对指令集的扩展使得处理器的指令数目快速增加。例如,x86架构的指令在2015年已经达到1300条;ARMv8架构的指令达到1070条。指令数目快速增加给指令编码带来问题。x86架构本身使用变长指令编码,增加编码前缀可以扩展新的指令,但增加编码前缀会增加静态代码的内存占用和动态取指令的传输。而对于RISC架构的指令集,指令扩展大多使用之前保留的或非法的指令进行扩展编码,但这些编码资源毕竟有限。可以想象,随着新的计算需求的提出,还需要扩展出大量的新的指令。例如,针对当前非常火热的深度学习,已经有学者提出了相关的指令集,相信在不久的将来,各厂商也需要扩展相应的指令。这就导致指令集原始设计中可用于指令扩展的保留的(或非法的)指令资源非常紧张。另一方面,现在的寄存器文件大多为64位,而许多应用中的操作数并不需要用64位表示。例如用于测试CPU性能的SPEC2000标准应用集中,40%的操作数可以只用16位表示,还有45%的操作数据用32位表示,只有15%的操作数只能用64位表示(可参考文献ErginO,BalkanD,GhoseK,etal.Registerpacking:Exploitingnarrow-widthoperandsforreducingregisterfilepressure[C]//Microarchitecture,2004.MICRO-372004.37thInternationalSymposiumon.IEEE,2004:304-315.的记载)。因此很多操作数并不需要用到一个寄存器项的所有位。现有的一些研究基于这一特点,按位划分寄存器文件,将一个寄存器中没有用的位分配给其它操作数使用,这种方法使寄存器宽度变窄,相同物理面积下增加了寄存器项的个数,减少寄存器的功耗。然而这种方案需要检测或预测操作数宽度(可参考文献AhmadianSN,FazeliM,GhalatyNF,etal.Value-Awarelow-powerregisterfilearchitecture[C]//ComputerArchitectureandDigitalSystems(CADS),201216thCSIInternationalSymposiumon.IEEE,2012:44-49.),这样就需要设计检测或预测操作数宽度的逻辑单元,从而带来额外的开销。
技术实现思路
因此,本专利技术的任务是克服现有技术的上述缺陷,提供一种不需增加编码前缀、且不需要消耗预留的用于指令扩展的编码资源的指令扩展解决方案。根据本专利技术的一个方面,提供了一种用于处理器的适于短操作数的扩展指令执行方法,包括下列步骤:1)取出指令,所述指令是由处理器的原始长操作数指令扩展而得的扩展指令;所述原始长操作数指令包括至少两个用于指定操作数位置的域,所述操作数包括源操作数和目的操作数;其中,将原始长操作数指令的至少两个用于指定操作数位置的域中的一个,重定义为指定两个短操作数位置的域,从而得到所述扩展指令,并且这两个短操作数分别存储于所指定寄存器的高位区段和低位区段;2)对指令进行译码,将扩展指令分解成对应于一系列微操作的控制信号;3)将步骤2)所得的控制信号派发,基于这些控制信号寻址并取出短操作数,执行原始长操作数指令对应的运算,然后再将运算结果存入扩展指令所指定的寄存器。其中,所述步骤1)中,所述原始长操作数指令具有两个源操作数,所述扩展指令的指定存入同一寄存器的所述两个短操作数是两个源操作数。其中,所述步骤3)中,所述的取出短操作数是在寻址到扩展指令所指定的源操作数存储寄存器后,分别从该寄存器的高位区段和低位区段取出两个作为源操作数的短操作数。其中,所述步骤1)中,所述原始长操作数指令仅具有一个源操作数,所述扩展指令的指定存入同一寄存器的所述两个短操作数是一个源操作数和一个目的操作数。其中,所述步骤3)中,所述的取出短操作数是在寻址到扩展指令所指定的存放短操作数的寄存器后,从该存放短操作数的寄存器的预先定义的一个区段取出一个作为源操作数的短操作数,所述的将运算结果存入是将运算结果存入扩展指令所指定的存放短操作数的寄存器的另一个区段,所述区段是高位区段或低位区段。其中,所述步骤1)中,将原始长操作数指令的至少两个用于指定操作数位置的域中的另一个,作为扩展指令的扩展编码域。根据本专利技术的另一方面,还提供了一种用于处理器的适于短操作数的扩展指令执行装置,包括:取指单元,用于取出指令,所述指令是由处理器的原始长操作数指令扩展而得的扩展指令;所述原始长操作数指令包括至少两个用于指定操作数位置的域,所述操作数包括源操作数和目的操作数;其中,将原始长操作数指令的至少两个用于指定操作数位置的域中的一个,重定义为指定两个短操作数位置的域,从而得到所述扩展指令,并且这两个短操作数分别存储于所指定寄存器的高位区段和低位区段;译码单元,用于对指令进行译码,将扩展指令分解成对应于一系列微操作的控制信号;以及派发单元,用于将所述译码单元所得的控制信号派发,基于这些控制信号寻址并取出短操作数,执行原始长操作数指令对应的运算,然后再将运算结果存入扩展指令所指定的寄存器。其中,所述派发单元还用于:在寻址到扩展指令所指定的源操作数存储寄存器后,分别从该寄存器的高位区段和低位区段取出两个作为源操作数的短操作数。其中,所述派发单元还用于:在寻址到扩展指令所指定的存放短操作数的寄存器后,从该存放短操作数的寄存器的预先定义的一个区段取出一个作为源操作数的短操作数;以及将运算结果存入扩展指令所指定的存放短操作数的寄存器的另一个区段,所述区段是高位区段或低位区段。与现有技术相比,本专利技术具有下列技术效果:1、本专利技术不需增加编码前缀、不需要消耗预留的用于指令扩展的编码资源,即能够增加实现短操作数运算的扩展指令。2、本专利技术的扩展指令在实现短操作数运算的同时,还增加了该指令的预留位,为进一步的功能扩展留下了空间。3、本专利技术的扩展指令能够提高了逻辑寄存器和物理寄存器的利用率,原本2个源操作数需要占用2个独立的物理寄存器,但是现在面向短操作数时,2个源操作数可以共享同一个物理寄存器。在总寄存器数不变的前提下,变相增加逻辑寄存器和物理寄存器的可用数量,即利用率。4、本专利技术的扩展指令能够减少寄存器的读写次数或范围,达到降低功耗的目的。附图说明以下,结合附图来详细说明本专利技术的实施例,其中:图1示出了可以基于短操作数扩展指令的指令类型;图2示出了图1中类型1指令具体对应的指令格式;图3示出了类型1指令扩展方式,(a)为扩展前指令格式,(b)为扩展后指令格式,(c)为扩展前寄存器映射方式,(d)为扩展后寄存器映射方式;图4示出了类型2指令扩展方式,(a)为扩展前指令格式,(b)为扩展后指令格式,(c)为扩展前寄存器映射方式,(d)为扩本文档来自技高网
...

【技术保护点】
1.一种用于处理器的适于短操作数的扩展指令执行方法,包括下列步骤:1)取出指令,所述指令是由处理器的原始长操作数指令扩展而得的扩展指令;所述原始长操作数指令包括至少两个用于指定操作数位置的域,所述操作数包括源操作数和目的操作数;其中,将原始长操作数指令的至少两个用于指定操作数位置的域中的一个,重定义为指定两个短操作数位置的域,从而得到所述扩展指令,并且这两个短操作数分别存储于所指定寄存器的高位区段和低位区段;2)对指令进行译码,将扩展指令分解成对应于一系列微操作的控制信号;3)将步骤2)所得的控制信号派发,基于这些控制信号寻址并取出短操作数,执行原始长操作数指令对应的运算,然后再将运算结果存入扩展指令所指定的寄存器。

【技术特征摘要】
1.一种用于处理器的适于短操作数的扩展指令执行方法,包括下列步骤:1)取出指令,所述指令是由处理器的原始长操作数指令扩展而得的扩展指令;所述原始长操作数指令包括至少两个用于指定操作数位置的域,所述操作数包括源操作数和目的操作数;其中,将原始长操作数指令的至少两个用于指定操作数位置的域中的一个,重定义为指定两个短操作数位置的域,从而得到所述扩展指令,并且这两个短操作数分别存储于所指定寄存器的高位区段和低位区段;2)对指令进行译码,将扩展指令分解成对应于一系列微操作的控制信号;3)将步骤2)所得的控制信号派发,基于这些控制信号寻址并取出短操作数,执行原始长操作数指令对应的运算,然后再将运算结果存入扩展指令所指定的寄存器。2.根据权利要求1所述的用于处理器的适于短操作数的扩展指令执行方法,其特征在于,所述步骤1)中,所述原始长操作数指令具有两个源操作数,所述扩展指令的指定存入同一寄存器的所述两个短操作数是两个源操作数。3.根据权利要求2所述的用于处理器的适于短操作数的扩展指令执行方法,其特征在于,所述步骤3)中,所述的取出短操作数是在寻址到扩展指令所指定的源操作数存储寄存器后,分别从该寄存器的高位区段和低位区段取出两个作为源操作数的短操作数。4.根据权利要求1所述的用于处理器的适于短操作数的扩展指令执行方法,其特征在于,所述步骤1)中,所述原始长操作数指令仅具有一个源操作数,所述扩展指令的指定存入同一寄存器的所述两个短操作数是一个源操作数和一个目的操作数。5.根据权利要求4所述的用于处理器的适于短操作数的扩展指令执行方法,其特征在于,所述步骤3)中,所述的取出短操作数是在寻址到扩展指令所指定的存放短操作数的寄存器后,从该存放短操作数的寄存器的预先定义的一个区段取出一个作为源操作数的短操作...

【专利技术属性】
技术研发人员:张军张立新冯煜晶侯锐
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1