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

用于控制指令集中改变的设备与方法技术

技术编号:23154459 阅读:61 留言:0更新日期:2020-01-18 15:29
本文提供了一种用于控制指令集改变的设备与方法。该设备具有用于执行指令集的指令的处理电路,该处理电路经被布置以在能力域中操作,该能力域包含用以限制由该处理电路在执行指令时执行的操作的能力。程序计数器能力存储单元用于存储由处理电路使用以判定程序计数器值的程序计数器能力。处理电路被布置以采用基于能力的机制来改变指令集。特别地,响应于执行用于将所识别的能力加载到程序计数器能力存储单元中的至少一种类型的指令,该处理电路被布置以调用基于能力的机制,以对所识别的能力执行能力检查操作,并且若通过该能力检查操作,则使指令集由来自所识别的能力的指令集识别符字段来识别。这提供了允许改变指令集的受控机制,由此减轻无意或恶意尝试改变指令集的风险。

Equipment and method for controlling changes in instruction set

【技术实现步骤摘要】
【国外来华专利技术】用于控制指令集中改变的设备与方法
本技术涉及数据处理领域。
技术介绍
基于能力(capability)的架构越来越受到关注,其中某些能力针对给定过程定义,且若尝试进行定义能力之外的操作,则可能触发错误。这些能力可采取各种形式,但一种类型的能力是有界指针(也可被称为“胖指针(fatpointer)”)。当设备的处理电路经布置以执行一系列指令时,能力可用以限制由处理电路在执行这些指令时执行的操作。例如,通过此类方法,可能通过确保内存存取关于与某些能力相关的范围和权限信息而受限来有效监视由处理电路进行的内存存取。此类方法可用以不仅限制在内存中存取的数据,也用以限制可撷取指令以用于执行的地址范围。一些处理器可能能够执行来自不同指令集的指令,并且由此可维持控制信息以识别当前指令集,其中在决定切换操作以执行不同指令集时改变控制信息。然而,在基于能力的架构内,改变指令集的能力可潜在地破坏可经由使用能力而获得的一些安全性益处。特别地,改变指令集改变了从内存提取的指令数据的解释,并因此可改变在内存中保存的只读代码的解释。将期望减轻无意或恶意尝试改变基于能力的系统内的指令集的可能性。
技术实现思路
在第一示例配置中,提供了一种设备,包含:处理电路,用以执行指令集的指令,该处理电路经布置以在能力域中操作,该能力域包含用以限制由处理电路在执行所述指令时执行的操作的能力;以及程序计数器能力存储单元,用以存储由处理电路使用以判定程序计数器值的程序计数器能力;该处理电路经布置以采用基于能力的机制来改变指令集,响应于执行用以将所识别的能力加载到程序计数器能力存储单元中的至少一种类型的指令,该处理电路经布置以调用基于能力的机制以对所识别的能力执行能力检查操作,并且若通过该能力检查操作,则使指令集由来自所识别的能力的指令集识别符字段来识别。在另一示例配置中,提供了一种控制设备内的指令集改变的方法,该设备具有用以执行当前指令集的指令的处理电路,该处理电路经布置以在能力域中操作,该能力域包含用以限制由该处理电路在执行所述指令时执行的操作的能力,该方法包含:在程序计数器能力存储单元中存储由处理电路使用以判定程序计数器值的程序计数器能力;布置该处理电路以响应于执行用以将所识别的能力加载到程序计数器能力存储单元中的至少一种类型的指令,调用基于能力的机制以控制当前指令集的改变,该基于能力的机制包含:对所识别的能力执行能力检查操作;以及若通过该能力检查操作,则使指令集由来自所识别的能力的指令集识别符字段来识别。在另一示例配置中,提供了一种设备,包含:处理装置,用于执行指令集的指令,该处理装置用于在能力域中操作,该能力域包含用以限制由处理装置在执行指令时执行的操作;以及程序计数器能力存储单元装置,用以存储由处理装置使用以判定程序计数器值的程序计数器能力;该处理装置采用基于能力的机制来改变指令集,响应于执行用以将所识别的能力加载到程序计数器能力存储单元中的至少一种类型的指令,该处理装置用于调用基于能力的机制以便对所识别的能力执行能力检查操作,并且若通过该能力检查操作,则使指令集由来自所识别的能力的指令集识别符字段来识别。在又一示例配置中,提供了一种虚拟机计算机程序,该虚拟机计算机程序包含程序指令,该程序指令用以控制主数据处理设备以提供对应于上文所论述的第一示例配置的设备的指令执行环境。在一个实施例中,可提供一种计算机可读取存储介质以用于存储虚拟机计算机程序。附图说明本技术将仅以举例方式参考在附图中所图示的本技术的实施例进一步描述,在附图中:图1是根据一个实施例的设备的框图;图2图示了若尝试设定或存取一组有界指针存储单元内的指针值则可能触发错误的指令类型的实例,其中该指针值用于指定在由相关范围信息所指示的范围之外的地址;图3图示了根据一个实施例的与有界指针相关联的卷标位的使用;图4示意性图示了根据一个实施例的指令集识别符字段可如何结合在能力内;图5是根据一个实施例的图示经执行以用以实施基于能力的机制来控制指令集改变的步骤的流程图;图6是根据一个实施例提供在将能力加载到程序计数器能力存储单元中之前执行能力检查的情况下用于控制指令集改变的基于能力的机制的更多细节的流程图;图7是根据一个实施例提供在将能力加载到程序计数器能力存储单元中之后执行能力检查的情况下用于控制指令集改变的基于能力的机制的更多细节的流程图;图8是根据一个实施例的图示在能力检查操作期间执行的步骤的流程图;图9A及图9B图示了用于当执行分支指令以将能力加载到程序计数器能力存储单元中时使用指令集识别符字段信息的两种替代方法;图10是图示在一些实施例中也可用于允许指令集改变的基于异常的机制的流程图;以及图11图示了可使用的虚拟机实施方式。具体实施方式在参考附图论述实施例之前,提供了实施例的以下描述。如先前提及,基于能力的架构越来越受关注,其中某些能力针对给定过程定义,且若尝试进行定义能力之外的操作,则可能触发错误。可定义各种类型的能力,但一种类型的能力是有界指针(其在一个实施例中结合指针值与相关范围及权限信息)。采用此基于能力的架构的设备将通常具有存储单元(本文也称为有界指针存储单元,或更一般为能力存储单元),这些存储单元用于存储能力。存储单元可以是寄存器(本文也称为有界指针寄存器或能力寄存器)及/或可以是在通用内存中的内存位置,例如在堆栈内存上的位置。某些指令可用于引用此等存储单元以便存取所需能力,并取决于能力而执行操作。例如,考虑到有界指针,执行此类指令可使该有界指针被撷取,并且使有界指针中的指针值随后被用以导出在执行该指令期间所需的内存中的地址。指针值可直接用于识别内存地址,或可用于导出该内存地址,例如,通过向指针值增加偏移。若内存地址是在由范围信息指定的范围内且满足在权限信息中指定的任何权限,则将允许进行该操作。因此,当使用有界指针时,例如,指针值本身可指向或用于判定待存取的数据值的地址或待提取以用于执行的指令。然而,范围及权限信息可随后被引用以例如确保所存取的任何地址是在可允许范围内,并且出于所允许的目的而存取。此可用来例如确保根据指针判定的地址保留在特定边界内以维持行为的安全性或功能正确性。通过此方法,可能有效监视由处理电路进行的内存存取。然而,在支持多个指令集的使用的系统中,则改变指令集的能力可潜在地规避经由使用这些能力而提供的一些保护。特别地,一旦已改变指令集的指示,从内存提取的指令数据的解释将为不同的。因此,尽管基于能力的架构可限制可提取指令的地址范围,改变指令集的无意或恶意尝试可使处理电路如由基于能力的架构的限制所允许地合理提取第一指令集的指令,但使处理电路随后试图根据第二指令集解释所提取的指令,从而潜在地实现处理器的不期望的操作行为。本文所述的实施例试图提供一种用于改变指令集的受控机制,以试图减少无意或恶意尝试改变指令集的能力。在一个实施例中,设备具有用于执行指令集的指令的处理本文档来自技高网...

【技术保护点】
1.一种设备,包含:/n处理电路,用于执行指令集的指令,所述处理电路被布置以在能力域中操作,该能力域包含用以限制由所述处理电路在执行所述指令时执行的操作;以及/n程序计数器能力存储单元,用于存储由所述处理电路使用以判定程序计数器值的程序计数器能力;/n所述处理电路被布置以采用基于能力的机制来改变所述指令集,响应于执行用于将所识别的能力加载到所述程序计数器能力存储单元中的至少一种类型的指令,所述处理电路被布置以调用所述基于能力的机制,以便对所识别的能力执行能力检查操作,并且如果通过所述能力检查操作,则使所述指令集由来自所识别的能力的指令集识别符字段来识别。/n

【技术特征摘要】
【国外来华专利技术】20170615 GB 1709511.81.一种设备,包含:
处理电路,用于执行指令集的指令,所述处理电路被布置以在能力域中操作,该能力域包含用以限制由所述处理电路在执行所述指令时执行的操作;以及
程序计数器能力存储单元,用于存储由所述处理电路使用以判定程序计数器值的程序计数器能力;
所述处理电路被布置以采用基于能力的机制来改变所述指令集,响应于执行用于将所识别的能力加载到所述程序计数器能力存储单元中的至少一种类型的指令,所述处理电路被布置以调用所述基于能力的机制,以便对所识别的能力执行能力检查操作,并且如果通过所述能力检查操作,则使所述指令集由来自所识别的能力的指令集识别符字段来识别。


2.根据权利要求1所述的设备,其中,所述处理电路被布置以在将所识别的能力加载到所述程序计数器能力存储单元中之前对所识别的能力执行所述能力检查操作。


3.根据权利要求1所述的设备,其中,所述处理电路被布置以在将所识别的能力加载到所述程序计数器能力存储单元中之后对所识别的能力执行所述能力检查操作。


4.根据前述权利要求中任一项所述的设备,其中,所述处理电路被布置以响应于检测到所述能力检查操作未通过而采取异常。


5.根据权利要求4所述的设备,其中,所述处理电路被布置以设定标记来识别所述能力检查操作的未通过,设定该标记使得在执行下一个指令时采取所述异常。


6.根据前述权利要求中任一项所述的设备,其中:
所述处理电路被布置以通过执行指定所识别的能力的分支指令来调用所述基于能力的机制。


7.根据权利要求6所述的设备,进一步包含:
一个或多个能力存储单元,可存取至所述处理电路并且被布置以存储用于限制由所述处理电路在执行所述指令时执行的操作的能力;
其中,所述分支指令将所述一个或多个能力存储单元之一指定为源操作数,所指定的能力存储单元含有所识别的能力。


8.根据权利要求6或权利要求7所述的设备,其中:
所述分支指令包含返回指令,该返回指令被执行以将形成所识别的能力的返回地址能力加载到所述程序计数器能力存储单元中。


9.根据前述权利要求中任一项所述的设备,其中:
所述处理电路被布置以当执行所述能力检查操作时检查与所识别的能力相关的有效标记,以便防止通过所述能力检查操作,除非所识别的能力为有效能力。


10.根据前述权利要求中任一项所述的设备,其中:
所识别的能力包含一个或多个权限标记,该权限标记用以识别与所识别的能力相关的一个或多个权限的状态;以及
所述处理电路被布置以当执行所述能力检查操作时检查所述一个或多个权限标记,以便防止通过所述能力检查操作,除非至少一个权限处于预定状态。


11.根据权利要求10所述的设备,其中,所述至少一个权限包含可执行权限,根据防止使用所识别的能力从内存提取指令的任何覆写控制信息,该可执行权限用于识别当用作所述程序计数器能力时是否允许所识别的能力用于从内存提取指令,并且所述预定状态为设定状态,该设定状态指示允许所识别的能力用于从内存提取指令。


12.根据权利要求10或权利要求11所述的设备,其中,所述至少一个权限包含可修改权限,该可修改权限用于识别...

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

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

1