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

用于控制指令执行行为的装置及方法制造方法及图纸

技术编号:17746136 阅读:22 留言:0更新日期:2018-04-18 19:36
提供了一种用于控制指令执行行为的装置及方法。该装置包括用于存储数据值的一组数据寄存器,以及一组有界指针存储元件,其中,每个有界指针存储元件存储具有相关联的范围信息的指针,在使用该指针时,该相关联的范围信息指示地址的可允许范围。控制存储元件存储当前指令上下文,并且该当前指令上下文被用于影响由处理电路执行的至少一个指令的行为,该至少一个指令指定用于所需要的指针的指针参考,其中,指针参考在值的至少第一子集内(在一个实施例中,行为被影响而不管所需要的指针的值)。具体地,当当前指令上下文标识默认状态时,处理电路使用指针参考来标识数据寄存器中其所存储的数据值形成所需要的指针的一个数据寄存器。然而,当当前指令上下文标识有界指针状态时,处理电路替代地使用指针参考来标识有界指针存储元件中其所存储指针形成所需要的指针的一个有界指针存储元件。这允许提供可以用于有界指针已知代码和有界指针未知代码二者的指令组,而不显著增加对指令组编码空间的压力。

【技术实现步骤摘要】
【国外来华专利技术】用于控制指令执行行为的装置及方法
本技术涉及数据处理领域。
技术介绍
当执行指令时,已知执行使用指针来标识存储器中的地址的某些指令。这类指令的示例为加载及存储指令,用于将来自存储器中的地址的数据加载至寄存器,或用于将来自寄存器的数据值存储于存储器的地址中。这类加载及存储指令可被编码以使得这些指令标识一组通用寄存器内的寄存器,该寄存器包含将用于确定存储器地址的指针值。然而,一些数据处理装置可支持有界指针的使用,其中指示特定地址的指针与指示用于指针的地址的可允许范围的范围信息相关联。例如,这类指针可被称作“胖指针”。可提供一组有界指针存储元件以用于这类有界指针的存储。在指令组内提供可使用这类有界指针来操作的指令,同时还支持执行指令的能力(替代地,使用在通用寄存器内的数据值来提供指针)将是有益的。
技术实现思路
在一个示例配置中,提供了一种装置,该装置包括:一组有界指针存储元件,每个有界指针存储元件用于存储具有相关联的范围信息的指针,在使用该指针时,该相关联的范围信息指示地址的可允许范围;一组数据寄存器,用于存储数据值;处理电路,用于执行指令序列;以及控制存储元件,用于存储当前指令上下文;处理电路响应于该序列中指定用于所需要的指针的指针参考的至少一个指令的执行,其中指针参考在值的至少第一子集内:当当前指令上下文标识默认状态时,使用指针参考来标识数据寄存器中其所存储的数据值形成所需要的指针的一个数据寄存器;当当前指令上下文标识有界指针状态时,使用指针参考来标识有界指针存储元件中其所存储指针形成所需要的指针的一个有界指针存储元件。在另一示例配置中,提供了一种控制装置内的指令执行行为的方法,该装置具有一组有界指针存储元件,每个有界指针存储元件用于存储具有相关联的范围信息的指针,在使用该指针时,该相关联的范围信息指示地址的可允许范围,并且该装置具有一组数据寄存器,该组数据寄存器用于存储数据值,该方法包括:在控制存储元件内存储当前指令上下文;在执行指定用于所需要的指针的指针参考的至少一个指令时,其中指针参考在值的至少第一子集内:当当前指令上下文标识默认状态时,使用指针参考来标识数据寄存器中其所存储的数据值形成所需要的指针的一个数据寄存器;当当前指令上下文标识有界指针状态时,使用指针参考来标识有界指针存储元件中其所存储的指针形成所需要的指针的一个有界指针存储元件。在又一示例配置中,提供了一种装置,该装置包括:一组有界指针存储装置,每个有界指针存储装置用于存储具有相关联的范围信息的指针,在使用该指针时,该相关联的范围信息指示地址的可允许范围;一组数据寄存器装置,用于存储数据值;处理装置,用于执行指令序列;以及控制存储装置,用于存储当前指令上下文;处理装置响应于该序列中指定用于所需要的指针的指针参考的至少一指令的执行,其中指针参考在值的至少第一子集内:当当前指令上下文标识默认状态时,使用指针参考来标识数据寄存器装置中其所存储的数据值形成所需要的指针的一个数据寄存器装置;当当前指令上下文标识有界指针状态时,使用指针参考来标识有界指针存储装置中其所存储的指针形成所需要的指针的一个有界指针存储装置。附图说明仅通过示例的方式,参考附图中示出的实施例来进一步描述本技术,其中:图1是根据一个实施例的装置的框图;图2示出了指令类型的示例,针对这些指令类型,若尝试设置或访问该组有界指针存储元件中的指针值,则触发错误,其中该指针值被用于指定由相关联的范围信息指示的范围之外的地址;图3示意性地示出了根据一个实施例的可以在指令组内提供的不同类型的指令;图4A及4B示出了根据一个实施例的加载指令的行为如何根据当前指令上下文而进行改变;图5是示出根据一个实施例的可被执行以在不同的指令上下文状态之间切换的过程的流程图;图6A及6B是示出根据一个实施例的如何使用分支指令来在容量状态和默认状态之间转换的图示;图7是示出根据替代实施例的用于在指令上下文状态之间切换的机制的流程图;图8是提供使用图7的方法的技术的一个特定示例的图示;图9示出了另一加载指令,该加载指令可在一个实施例中提供,并且总是从容量寄存器获得与当前指令上下文无关的指针;以及图10A及10B示出了根据一个实施例的可被提供的相对状态行为指令。具体实施方式在参考附图讨论实施例之前,提供实施例的如下描述。一些处理装置可支持有界指针的使用。例如,指针本身可指向或用于确定将被访问的数据值或将被执行的指令的地址。然而,指针还可具有相关联的范围信息,当使用指针时,该相关联的范围信息指示地址的可允许范围。例如,这对于确保根据指针所确定的地址保持在某些界限内从而保持行为的安全性或功能正确性为有用的。例如,对于基于容量的架构的关注逐渐增加,其中,针对给定过程定义某些容量,并且若存在尝试执行所定义的容量之外的操作,则可能触发错误。有界指针的范围信息可以是针对这类架构所定义的容量信息的一部分。替代地,可能存在允许定义有界指针的非基于容量的架构。因此,装置可具有至少一个有界指针存储元件,该有界指针存储元件存储具有相关联的范围信息的指针,在使用指针时,该相关联的范围信息指示地址的可允许范围。例如,每个有界指针存储元件可以是寄存器或堆栈存储器上的位置。可使用某些指令来参考这样的有界指针存储元件以便获得指针,随后该指针可用于导出在指令的操作期间所需要的存储器中的地址。例如,通过向指针值添加偏移,指针可直接用于标识存储器地址,或可用于导出存储器地址。然而,还期望提供这样的指令,该指令不参考这样的有界指针而是以默认方式获得它们的指针,例如,参考存储在通用寄存器中的数据值。考虑前面基于容量的架构的示例,这将使得指令组能够用于执行容量未知代码(例如,其中,从通用寄存器中的数据值导出指针),同时还支持容量已知代码的执行,其中从前面提及的有界指针存储元件的内容导出指针。然而,在现代处理系统中,对指令组空间具有显著的压力,这显著限制了在指令组中可以指定的指令的数目。在一个实施例中,提供了一种装置,该装置具有一组有界指针存储元件,每个有界指针存储元件用于存储具有相关联的范围信息的指针,在使用该指针时,该相关联的范围信息指示地址的可允许范围,并且该装置还包括一组数据寄存器以用于存储数据值。还提供了存储当前指令上下文的控制存储元件。处理电路用于执行指令序列,并且响应于序列中指定用于所需要的指针的指针参考的至少一个指令的执行,其中该指针参考在值的至少第一子集内,以根据当前指令上下文来改变该指令的执行行为。具体地,当当前指令上下文标识默认状态时,处理电路使用由指令指定的指针参考来标识数据寄存器中其所存储的数据值形成所需要的指针的一个数据寄存器。然而,若前指令上下文替代地标识有界指针状态,则处理电路使用指针参考来标识有界指针存储元件中其所存储的指针形成所需要的指针的一个有界指针存储元件。因此,通过此方法,同一指令可被布置为根据当前指令上下文来不同地动作,并且具体地,使用指针参考来标识所需要的指针的方式系取决于当前指令上下文。通过此方式,这可以使得同一指令组能够用于容量未知代码及容量已知代码二者,同时考虑到对前面提及的对指令组空间的压力。在一个实施例中,可采取上述行为而不考虑指针参考的值。因此,每当当前指令上下文标识默认状态时,数据寄存器都本文档来自技高网...
用于控制指令执行行为的装置及方法

【技术保护点】
一种装置,包括:一组有界指针存储元件,每个有界指针存储元件用于存储具有相关联的范围信息的指针,当使用所述指针时,所述相关联的范围信息指示地址的可允许范围;一组数据寄存器,该组数据寄存器用于存储数据值;处理电路,所述处理电路用于执行指令序列;以及控制存储元件,所述控制存储元件用于存储当前指令上下文;所述处理电路响应于所述序列中指定用于所需要的指针的指针参考的至少一个指令的执行,其中,所述指针参考在值的至少第一子集内:当所述当前指令上下文标识默认状态时,使用所述指针参考来标识所述数据寄存器中其所存储的数据值形成所述所需要的指针的一个数据寄存器;当所述当前指令上下文标识有界指针状态时,使用所述指针参考来标识所述有界指针存储元件中其所存储指针形成所述所需要的指针的一个有界指针存储元件。

【技术特征摘要】
【国外来华专利技术】2015.08.27 GB 1515256.41.一种装置,包括:一组有界指针存储元件,每个有界指针存储元件用于存储具有相关联的范围信息的指针,当使用所述指针时,所述相关联的范围信息指示地址的可允许范围;一组数据寄存器,该组数据寄存器用于存储数据值;处理电路,所述处理电路用于执行指令序列;以及控制存储元件,所述控制存储元件用于存储当前指令上下文;所述处理电路响应于所述序列中指定用于所需要的指针的指针参考的至少一个指令的执行,其中,所述指针参考在值的至少第一子集内:当所述当前指令上下文标识默认状态时,使用所述指针参考来标识所述数据寄存器中其所存储的数据值形成所述所需要的指针的一个数据寄存器;当所述当前指令上下文标识有界指针状态时,使用所述指针参考来标识所述有界指针存储元件中其所存储指针形成所述所需要的指针的一个有界指针存储元件。2.根据权利要求1所述的装置,其中,所述处理电路还响应于所述序列中指定用于所需要的指针的指针参考的所述至少一个指令的执行,从所述所需要的指针确定地址,当所述当前指令上下文标识所述有界指针状态时,执行界限检查操作以检查所确定的地址在所述地址的可允许范围内,所述地址的可允许范围由用于所述有界指针存储元件中的所述一个有界指针存储元件的相关联的范围信息来指示。3.根据权利要求2所述的装置,其中,所述处理电路被布置为当所述当前指令上下文标识所述默认状态时,执行默认界限检查操作以检查所确定的地址在地址的默认可允许范围内。4.根据权利要求3所述的装置,还包括默认范围存储元件以存储指示所述默认可允许范围的范围信息。5.根据权利要求2到4中的任一项所述的装置,其中,当执行所述界限检查操作时,所述处理电路考虑在所确定的地址处访问的数据值的大小,以便确保所有所述数据值都在所述地址的可允许范围内。6.根据任一前述权利要求所述的装置,其中:所述处理电路响应于所述序列中的至少一个另外的指令的执行来更新所述控制存储元件中所存储的所述当前指令上下文。7.根据权利要求6所述的装置,其中:所述有界指针存储元件中的至少一个包括指定指令上下文值的目的地指令上下文字段;所述至少一个另外的指令是分支指令,所述分支指令具有所述有界指针存储元件中的所述至少一个有界指针存储元件中的一个,如所指定的有界指针存储元件;并且所述处理电路响应于执行所述分支指令来通过将来自所述所指定的有界指针存储元件的所述指令上下文值存储在所述控制存储元件中来更新所述当前指令上下文。8.根据权利要求7所述的装置,还包括有界程序计数器存储元件,所述有界程序计数器存储元件用于存储程序计数器指针,所述程序计数器指针具有指示从所述程序计数器指针确定的程序计数器的可允许范围的相关联的范围信息,并且所述处理电路还响应于所述分支指令的执行,来使用所述指针及所述指定的有界指针存储元件的相关联的范围信息来更新所述有界程序计数器存储元件。9.根据权利要求7或8所述的装置,其中:所述分支指令可以由所述处理电路在所述默认状态以及所述有界指针状态二者中执行,以允许在所述默认状态与所述有界指针状态之间切换。10.根据权利要求9所述的装置,其中:该组有界指针存储元件包括有界链路存储元件,所述有界链路存储元件的指针用于标识返回地址,所述有界链路存储元件还标识返回指令上下文;所述指令指定所述有界链路存储元件并且由所述处理电路执行以从较早的分支返回,并且通过将所述有界链路存储元件中标识的所述返回指令上下文存储在所述控制存储元件中来更新所述当前指令上下文。11.根据权利要求6所述的装置,其中:所述至少一个另外的指令包括更新指令,以将由所述更新指令指定的更新值写入所述控制存储元件以便更新所述当前指令上下文。12.根据权利要求11所述的装置,其中,所述更新指令标识所述数据寄存器中其所存储的数据值被用于更新所述当前指令上下文的一个数据寄存器。13.根据权利要求11所述的装置,其中,所述更新指令指定用于更新所述当前指令上下文的立即值。14.根据任一前述权利要求所述的装置,其中,所述序列中指定用于所需要的指针的指针参考的所述至少一个指令是加载指令和存储指令中的至少一个。15.根据任一前述权利要求所述的装置,其中,所述处理电路被布置为执行来自指令组的指令,所述指令组包括指令的第一子集和指令的第二子集,所述指令的第一子集的执行行为与所述当前指令上下文无关,并且所述指令的第二子集的执行行为取决于所述当前指令上下文,所述第二子集包括所述序列中指定用于所需要的指针的指针参考的所述至少一个指令。16.根据权利要求15所述的装置,其中,所述指...

【专利技术属性】
技术研发人员:格雷姆·彼得·巴尔内斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1