当前位置: 首页 > 专利查询>ARM有限公司专利>正文

标识第一和第二架构寄存器编号的编码指令制造技术

技术编号:18792150 阅读:36 留言:0更新日期:2018-08-29 10:28
讨论了用于更有效地编码标识第一和第二架构寄存器编号的指令的各种编码方案。在第一示例中,通过将第一架构寄存器编号约束为大于第二架构寄存器编号,这释放了编码以用于编码其他操作。在第二示例中,第一和第二架构寄存器编号可以采取任何值,但根据第一和第二架构寄存器编号的比较来选择第一类型的处理操作和第二类型的处理操作中的一个。

Encoding instructions identifying first and second architecture register numbers

Various coding schemes for more efficient coding of instructions identifying the first and second architecture registers are discussed. In the first example, by constraining the first schema register number to be greater than the second schema register number, the encoding is released for encoding other operations. In the second example, the first and second schema registers numbers may take any value, but one of the first type of processing operations and the second type of processing operations is selected according to the comparison of the first and second schema registers numbers.

【技术实现步骤摘要】
【国外来华专利技术】标识第一和第二架构寄存器编号的编码指令
本技术涉及数据处理领域。
技术介绍
数据处理装置可以具有被配置为执行根据给定指令集架构(ISA)编码的指令的处理电路。可以使用给定数量的位来表示指令,这些给定数量的位被解码以标识在处理操作期间什么样的处理操作应当被执行以及哪些寄存器会被使用到。ISA设计可能具有挑战性,因为尽管理论上可能期望支持多种处理操作,但为了适应附加的操作而增加每条指令中的位数往往会增加电路面积和处理设备执行根据ISA的指令的功耗,因为对于每条指令均需沿处理管线承载附加位,所以可能需要更复杂的解码电路,并且所需用于在存储器中存储程序的存储器空间将随着指令的大小而增加。另一方面,为了节省电路面积和能量,指令编码中的位数可以被限制到一定数量,但是这可能需要就ISA支持哪些操作方面做出妥协。
技术实现思路
至少一些示例提供了一种装置,包括:多个寄存器,用于存储数据值;以及处理电路,用于响应于指令来执行处理操作;其中,响应于标识第一和第二架构寄存器编号的第一类指令中的一个,该处理电路被配置为使用对应于该第一和第二架构寄存器编号的第一和第二寄存器执行相应的处理操作;以及所述第一类指令中的指令具有约束所述第一架构寄存器编号为大于所述第二架构寄存器编号的指令编码。至少一些示例提供了一种数据处理方法,包括:控制处理电路用于响应于指令来执行处理操作;其中,响应于标识第一和第二架构寄存器编号的第一类指令中的一个,所述处理电路被控制为使用对应于第一和第二架构寄存器编号的第一和第二寄存器来执行相应的处理操作;以及所述第一类指令中的指令具有约束所述第一架构寄存器编号大于所述第二架构寄存器编号的指令编码。至少一些示例提供了一种装置,包括:多个寄存器,用于存储数据值;以及处理电路,用于响应于指令来执行处理操作;其中:响应于具有标识第一和第二架构寄存器编号的指令编码的指令,处理电路被配置为根据第一和第二架构寄存器编号的比较来选择使用对应于第一和第二架构寄存器编号的寄存器来执行第一类型的处理操作还是第二类型的处理操作。至少一些示例提供了一种数据处理方法,包括:响应于具有标识第一和第二架构寄存器编号的指令编码的指令,比较第一和第二架构寄存器编号;以及根据第一和第二架构寄存器编号的比较来选择是使用对应于第一和第二架构寄存器编号的寄存器来执行第一类型的处理操作还是第二类型的处理操作。计算机可读存储介质可以被提供,其存储用于控制计算机以提供对应于上述任一装置的虚拟机执行环境的计算机程序。存储介质可以是非暂态存储介质。根据下面对将结合附图来阅读的实施例进行的描述,本技术的其他方面、特征和优点将变得显然。附图说明现在将参照附图,仅以示例的方式来描述本专利技术的实施例,其中:图1示意性地示出了具有用于处理指令的处理管线的数据处理装置的示例;图2示出了标识可采用任何值的第一和第二架构寄存器编号的指令编码的示例;图3示出了提供其中第一架构寄存器编号被约束为大于第二架构寄存器编号的第一类指令的指令编码和编码单个源架构指令编号的第二类指令编码的示例;图4A和图4B示出了图3所示的第一类指令的第一和第二寄存器字段的两种可能的编码;图5示出了用于解码如图3所示被编码的指令的解码阶段的示例;图6A示出了用于根据图4A的编码方案解码第一和第二寄存器字段的电路的第一示例;图6B示出了解码电路的第二示例;图7示出了处理指令的方法;图8示出了包括用于比较第一和第二架构寄存器编号的寄存器比较器的指令解码电路的第二示例;图9示出了比较指令的编码示例;图10示出了处理指令的方法;以及图11示出了可使用的虚拟机实现方式。具体实施方式以下示出了一些具体的示例。应该理解,本专利技术不限于这些示例。处理电路可以支持标识第一和第二架构寄存器编号的一些指令。响应于这样的指令,处理电路可以使用对应于第一和第二架构寄存器编号的第一和第二寄存器来执行相应的处理操作。典型的ISA指定给定数量的架构寄存器,并对指令进行编码,使得这些架构寄存器中的任何寄存器可以被指定为任何组合的第一和第二架构寄存器编号。然而,专利技术人认识到,在这种方法中存在一些冗余,因为将分别被指代第一和第二架构寄存器编号的那些寄存器对换可能不会给出不一样的结果。例如,用于相加存储在寄存器R1和R2中的值的加法指令会给出与用于相加寄存器R2和R1中的值的加法指令相同的结果。因此,对于给定的处理操作,典型的ISA在分别对给定的寄存器对的两种顺序进行编码时会用尽大量的指令编码空间。本技术提供了可以利用这种冗余来提供对指令的更有效编码的技术。在第一示例中,可以提供具有约束第一架构寄存器编号为大于第二架构寄存器编号的指令编码的第一类指令。通过消除第一架构寄存器编号小于或等于第二架构寄存器编号的选项,减少了架构寄存器的有效组合的数量,并且这可释放一些指令编码以用于用信号标示其他处理操作。与架构寄存器的任何组合可被指定的情况相比,通过将第一架构寄存器编号限制为大于第二架构寄存器编号,有效寄存器对编码的数量可以减少一半以上,从而可使用较少的位来标识它们。这可以使得能够使用总计更少的位来对指令进行编码,从而节约在执行这些指令的处理设备中的能量和功率,或允许给定数量的位表示更宽范围的不同处理操作以支持额外的功能,因为附加位可用于对要执行的处理操作进行编码。为了简明起见,第一架构寄存器编号在下面被称为Rx并且第二架构寄存器编号被称为Ry,并且Rx>Ry。该装置可具有以硬件提供的物理寄存器,其可由处理电路响应于指令而被访问。在一些实施例中,架构寄存器编号Rx、Ry也可以标识要使用的物理寄存器。在这种情况下,Rx>Ry的约束条件也可以约束哪些物理寄存器可以存储要处理的数据。然而,其他实施例可以支持寄存器重命名,其中,由指令指定的架构寄存器编号可以映射到在硬件中提供的不同物理寄存器。在这种情况下,虽然指令编码可能需要Rx>Ry,但这不需要通过任何方式来限制对物理寄存器的选择,因为寄存器重命名电路可仍具有将指定架构寄存器编号映射到任何可用的物理寄存器的自由。请注意,尽管指令编码约束了架构寄存器编号,使得Rx>Ry,但是对存储在相应寄存器中的数据没有限制,存储在Rx和Ry中的数据可以采用任何值。处理电路可以具有解码电路,以根据其中Rx被限制为大于Ry的指令编码来对第一类指令进行解码。对于第一类指令中的至少一些,第一和第二架构寄存器编号Rx、Ry可以是源架构寄存器编号,其标识存储要响应于相应指令而被处理的操作数值的寄存器(例如,算术或逻辑指令可以通过架构寄存器(其中,Rx>Ry)来标识其源操作数)。该指令还可以指定要写入操作结果的目标寄存器。目标寄存器的选择可以是不受约束的,所以任何架构寄存器都可以被指定为目标架构寄存器,而与对源架构寄存器Rx、Ry的选择无关。另一方面,对于第一类指令的其他指令,第一和第二架构寄存器编号Rx、Ry中的一者或两者可以标识结果要被写入的目标寄存器。例如,加载多指令可以指定使用Rx>Ry的编码从存储器向其加载值的两个目标寄存器Rx、Ry。在一个示例中,第一类指令可以包括相应的处理操作是可交换操作的至少一个可交换指令。可交换操作可以是这样一种本文档来自技高网...

【技术保护点】
1.一种装置,包括:多个寄存器,用于存储数据值;以及处理电路,用于响应于指令来执行处理操作;其中,响应于标识第一和第二架构寄存器编号的第一类指令中的一个,所述处理电路被配置为使用对应于所述第一和第二架构寄存器编号的第一和第二寄存器执行相应的处理操作;以及所述第一类指令中的指令具有约束所述第一架构寄存器编号为大于所述第二架构寄存器编号的指令编码。

【技术特征摘要】
【国外来华专利技术】2016.01.22 US 15/003,8281.一种装置,包括:多个寄存器,用于存储数据值;以及处理电路,用于响应于指令来执行处理操作;其中,响应于标识第一和第二架构寄存器编号的第一类指令中的一个,所述处理电路被配置为使用对应于所述第一和第二架构寄存器编号的第一和第二寄存器执行相应的处理操作;以及所述第一类指令中的指令具有约束所述第一架构寄存器编号为大于所述第二架构寄存器编号的指令编码。2.根据权利要求1所述的装置,其中,所述第一类指令包括至少一个可交换指令,其中,所述相应的处理操作是可交换操作。3.根据权利要求1和2中任一项所述的装置,其中,所述第一类指令包括至少一个非可交换指令,其中,所述相应的处理操作是非可交换操作。4.根据前述权利要求中任一项所述的装置,其中,所述第一类指令包括对应于被应用于存储在所述第一和第二寄存器中的第一和第二操作数的相同类型的非可交换操作的至少一对互补非可交换指令,其中,对于每一对互补非可交换指令,所述对中的一个指令用于控制所述处理电路以利用与所述对的另一指令的不同的顺序的第一和第二操作数来执行所述非可交换操作。5.根据前述权利要求中任一项所述的装置,其中,所述第一类指令包括至少一个寄存器范围指定指令,用于控制所述处理电路使用对应于所述第一架构寄存器编号和所述第二架构寄存器编号之间的连续范围内的架构寄存器编号的多个寄存器来执行处理操作。6.根据前述权利要求中任一项所述的装置,包括寄存器解码电路,用于解码所述第一类指令的指令编码,以标识所述第一和第二架构寄存器编号。7.根据前述权利要求中任一项所述的装置,其中,所述处理电路被配置为根据提供2N个架构寄存器的指令集架构来处理指令,并且在所述第一类指令中,所述第一和第二架构寄存器编号使用2N-1位指令编码来表示。8.根据前述权利要求中任一项所述的装置,其中,所述第一类指令的指令编码包括操作码字段和多个寄存器标识位,该多个寄存器标识位根据预定编码方案来表示所述第一和第二架构寄存器编号,在所述编码方案中,所述多个寄存器标识位的多个备用位模式不对应于所述第一架构寄存器编号大于所述第二架构寄存器编号的所述第一和第二架构寄存器编号的任何有效组合;所述指令集架构包括具有包括所述操作码字段和所述多个寄存器标识位的指令编码的第二类指令,其中所述多个寄存器标识位具有所述备用位模式中的一个;以及响应于所述第二类指令中的一个,所述处理电路被配置为不同于所述第一类指令中的一个指令的相同操作码字段来解译所述指令的操作码字段。9.根据权利要求8所述的装置,其中,所述第二类指令包括标识单个源架构寄存器编号的至少一个指令,用于控制所述处理电路使用由所述单个源架构寄存器编号标识的寄存器来执行相应的处理操作。10.根据权利要求9所述的装置,其中,所述单个源架构寄存器编号是使用所述寄存器标识位的子集和所述操作码字段的位在所述第二类指令的至少一个指令的指令编码中被表示。11.根据前述权利要求中任一项所述的装置,其中,所述第一类指令的指令编码包括:第一寄存器字段,当所述第二架构寄存器编号的最高有效位为0时取决于所述第一架构寄存器编号,并且当所述第二架构寄存器编号的最高有效位为1时取决于对所述第一架构寄存器编号的所有位取反的结果;以及第二寄存器字段,具有取决于除了所述第二架构寄存器编号的最高有效位之外的所述第二架构寄存器编号的剩余位的值。12.根据权利要求11所述的装置,其中,所述第二寄存器字段具有取决于所述第二架构寄存器编号的所述剩余位与所述第一架构寄存器编号的相应位进行按位异或的结果的值。13.根据权利要求11所述的装置,其中,所述第二寄存器字段具有当所述第二架构寄存器编号的最高有效位为0时取决于所述第二架构寄存器编号的剩余位,并且当所述第二架构寄存器编号的最高有效位为1时取决于对所述第二架构寄存器编号的剩余位取反的结果的值。14.一种数据处理方法,包括:控制处理电路用于响应于指令来执行处理操作;其中,响应于标识第一和第二架构寄存器编号的第一类指令中的一个,所述处理电路被控制为使用对应于所述第一和第二架构寄存器编号的第一和第二寄存器来执行相应的处理操作;以及所述第一类指令中的指令具有约束所述第一架构寄存器编号为大于所述第二架构寄存器编号的指令编码。15.一种存储计算机程序的计算机可读存储介质,该计算机程序用于控制计算机以提供对应于根据权利要求1至13中任一项所述的装置的虚拟机执行环境。16.一种装置,包括:多个寄存器,用于存储数据值;以及处理电路,...

【专利技术属性】
技术研发人员:西蒙·霍西奥尔·尼斯塔德
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1