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

用于确定从其恢复指令执行的恢复点的装置和方法制造方法及图纸

技术编号:19634736 阅读:34 留言:0更新日期:2018-12-01 15:31
本公开涉及用于确定从其恢复指令执行的恢复点的装置和方法。提供了用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点的装置和方法。该装置包括:处理电路,具有相关联的指令集架构,并且被布置为执行包括由指令集架构定义的指令的软件;以及控制电路,用于根据由指令集架构定义的约束来控制处理电路的操作。指令集架构定义了用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点的默认恢复点约束。控制电路响应于从在处理电路上执行的软件导出的信息来检测恢复点松弛条件,并且响应于该恢复点松弛条件来允许确定恢复点不受默认恢复点约束的约束。

Devices and methods for determining recovery points from which recovery instructions are executed

The present disclosure relates to devices and methods for determining recovery points from which recovery instructions are executed. An apparatus and method for determining a recovery point from which a recovery instruction is executed after handling an unexpected change in the instruction stream are provided. The device includes: a processing circuit with an associated instruction set architecture, and is arranged to execute software including instructions defined by the instruction set architecture; and a control circuit for controlling the operation of the processing circuit according to constraints defined by the instruction set architecture. Instruction Set Architecture defines default recovery point constraints for determining recovery points from which recovery instructions are executed after handling unexpected changes in the instruction stream. The control circuit detects the recovery point relaxation condition in response to the information derived from the software executed on the processing circuit, and in response to the recovery point relaxation condition allows the determination of the recovery point that is not constrained by the default recovery point.

【技术实现步骤摘要】
用于确定从其恢复指令执行的恢复点的装置和方法
本技术涉及用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点的装置和方法。
技术介绍
在设计现代数据处理系统时,总体目标是提高性能和/或降低能量消耗,同时维持关于在处理器上执行的软件的正确操作。“正确操作”通常与提高性能和低能量消耗的其他目标不一致,但这是必要的。指令集架构(ISA)是处理器的对于编程器或编译器编写器可见的一部分,并且ISA用作软件和硬件之间的界限。ISA通常被定义为使得可以使用由ISA定义的指令集中的指令来编写任何软件,并且因此,由ISA指定的要求和约束需要确保可以编写的任何软件的正确操作在处理器上执行。由ISA定义的约束之一是用于确定在指令流中的意外变化之后从其恢复指令执行的恢复点的默认约束。例如,各种故障或中断可能导致软件的执行被暂时停止同时执行一个或多个异常例程,然后需要确定在异常例程完成之后从何处开始恢复软件的执行。类似地,当确定存在分支错误预测时,可以触发分支重新引导(resteer)机制,并且也需要确定作为该分支重新引导的结果应从何处恢复指令执行。ISA将针对这些场景定义恢复点以确保可以编写的任意软件的正确执行行为在处理器上执行。然而,这些约束可能显著影响处理器在执行软件时试图获得性能和/或能量消耗改进的能力。
技术实现思路
在一个示例配置中,提供了一种装置,包括:处理电路,具有相关联的指令集架构,并且被布置为执行包括由指令集架构定义的指令的软件;以及控制电路,用于根据由指令集架构定义的约束来控制处理电路的操作;指令集架构定义了默认恢复点约束,该默认恢复点约束用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点;并且控制电路响应于从在处理电路上执行的软件导出的信息来检测恢复点松弛条件,并且响应于所述恢复点松弛条件来允许确定恢复点不受默认恢复点约束的约束。在另一示例配置中,提供了一种确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点的方法,该方法包括:在具有相关联的指令集架构的处理电路上执行软件,该软件包括由指令集架构定义的指令;根据由指令集架构定义的约束来控制处理电路的操作;在指令集架构内定义用于确定恢复点的默认恢复点约束;基于从在处理电路上执行的软件导出的信息来检测存在恢复点松弛条件;以及响应于检测到所述恢复点松弛条件,允许确定恢复点不受默认恢复点约束的约束。在又一示例配置中,提供了一种装置,包括:处理装置,用于执行包括由与处理装置相关联的指令集架构定义的指令的软件;以及控制装置,用于根据由指令集架构定义的约束来控制处理装置的操作;指令集架构定义了默认恢复点约束,该默认恢复点约束用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点;并且控制装置用于响应于从在处理装置上执行的软件导出的信息来检测恢复点松弛条件,并且响应于所述恢复点松弛条件来允许确定恢复点不受默认恢复点约束的约束。在又一示例配置中,提供了一种虚拟机计算机程序,包括程序指令来控制主机数据处理装置以提供与本文描述的装置相对应的指令执行环境。在进一步的示例配置中,可以提供存储这种虚拟机计算机程序的计算机可读存储介质。附图说明通过仅示例的方式,将参考如附图中示出的其实施例来进一步描述本技术,在附图中:图1是根据一个实施例的装置的框图;图2是示出根据一个实施例的图1的控制电路可以如何控制处理电路的操作以便在特定条件下松弛恢复点约束的流程图;图3A至3C示意性地示出了根据所描述的实施例可以用来确定其中存储器访问指令被认为是可以重复的情况的三种不同的机制;图4A示意性地示出了可以由针对示例代码序列的ISA的默认约束定义的恢复点,而图4B示意性地示出了根据一个实施例可以应用的松弛恢复点约束;图4C示出了根据一个实施例的如何根据图4B的松弛恢复点约束来处理转换中止;图5A和5B示出了针对包括分支指令的另一示例代码序列的默认恢复点约束和松弛恢复点约束,并且图5C是示出了根据一个实施例的在松弛恢复点约束存在的情况下如何实现分支重新引导的流程图;图6示出了根据一个实施例的在一个实施例中如何使用屏障(barrier)操作来标识在其中可以禁用危害检查功能的代码段;图7是示出根据一个实施例的可以如何处理可重复存储指令的流程图;图8示意性地示出了形成数据处理循环的指令序列,针对其可以应用所描述的实施例的技术。图9示意性地示出了根据一个实施例的可被添加到指令集架构以提供数据寿命指示的各种指令;图10是示出其中可以应用所描述的实施例的技术的乱序处理器的框图;图11A和11B是示意性地示出根据一个实施例的可以如何控制对转发路径和寄存器文件更新的使用的图示;以及图12示出了可以使用的虚拟机实现方式。具体实施方式在参考附图讨论实施例之前,提供实施例的以下描述。根据一个实施例,提供了一种装置,包括具有相关联的指令集架构的处理电路,以及控制处理电路的操作的控制电路。具体地,处理电路被布置为执行包括由指令集架构定义的指令的软件,并且控制电路据由指令集架构定义的约束来控制处理电路的操作。指令集架构定义了默认恢复点约束,该默认恢复点约束用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点。指令流的意外变化可能由于各种原因而产生,例如,由于检测到故障或中断,或者由于检测到分支重新引导条件。当发生故障或中断时,这通常会导致软件的执行停止,并且例如由操作系统执行异常例程以试图解决引起故障或中断的问题。在执行异常处理例程之后,可以恢复执行原始软件,并且默认恢复点约束将针对每个可能的故障/中断定义适当的恢复点。例如,这可以定义执行从发生故障/中断时正被执行的指令恢复,或者对于某些类型的故障/中断,可以标识应从下一指令恢复执行。类似地,在检测到分支重新引导条件时,例如,由于确定先前分支已经被错误预测(并且因此由分支预测确定的指令流是不正确的),默认恢复点约束将标识应从何处恢复执行代码,从而标识适用的恢复点。如前所述,ISA被定义为使得可以编写的任何软件使用由ISA定义的指令在处理器上执行,因此,默认恢复点约束以确保可以编写的任意代码的正确操作在处理器上执行的方式来定义。然而,根据本文描述的技术,提供了一种机制以使得软件能够向硬件指示何时不需要默认约束的刚性需求。具体地,在一个实施例中,控制电路响应于从在处理电路上执行的软件导出的信息来检测恢复点松弛条件。在检测到恢复点松弛条件时,控制电路然后允许确定恢复点不受默认恢复点约束的约束。这从而为处理电路提供了关于恢复点的选择的改善的灵活性,并因此增加了处理电路在执行软件时试图提高性能或降低能量消耗时具有的自由度。因此,可以看出,在所描述的实施例中,ISA允许软件通知硬件其中默认恢复点约束比其所需更加严格的情况,由此允许处理电路通过改善的灵活性实现更高效的处理以确定恢复点。在一个实施例中,当检测到恢复点松弛条件时,处理电路选择恢复点的自由度可以相对不受约束。然而,在替代实施例中,控制电路可被布置为使得根据松弛恢复点约束来确定恢复点,与默认恢复点约束相比,该松弛恢复点约束提供关于恢复点的选择的增加的灵活性。因此,在该实施例中,仍然定义了恢复点约束,即相对于由ISA定义的默认恢复点约束的松弛恢复点约束。在一个实施例中,处理电路被布置为保持本文档来自技高网...

【技术保护点】
1.一种装置,包括:处理电路,所述处理电路具有相关联的指令集架构,并且被布置为执行包括由所述指令集架构定义的指令的软件;以及控制电路,所述控制电路用于根据由所述指令集架构定义的约束来控制所述处理电路的操作;所述指令集架构定义了默认恢复点约束,所述默认恢复点约束用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点;并且所述控制电路响应于从在所述处理电路上执行的所述软件导出的信息来检测恢复点松弛条件,并且响应于所述恢复点松弛条件来允许确定所述恢复点不受所述默认恢复点约束的约束。

【技术特征摘要】
2017.04.12 US 15/485,5071.一种装置,包括:处理电路,所述处理电路具有相关联的指令集架构,并且被布置为执行包括由所述指令集架构定义的指令的软件;以及控制电路,所述控制电路用于根据由所述指令集架构定义的约束来控制所述处理电路的操作;所述指令集架构定义了默认恢复点约束,所述默认恢复点约束用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点;并且所述控制电路响应于从在所述处理电路上执行的所述软件导出的信息来检测恢复点松弛条件,并且响应于所述恢复点松弛条件来允许确定所述恢复点不受所述默认恢复点约束的约束。2.根据权利要求1所述的装置,其中,响应于所述恢复点松弛条件,所述控制电路被布置为使得根据松弛恢复点约束来确定所述恢复点,与所述默认恢复点约束相比,所述松弛恢复点约束关于恢复点的选择提供了增加的灵活性。3.根据权利要求1所述的装置,其中:所述处理电路被布置为保持正在由所述处理电路执行的所述软件内的所确定的执行点的执行状态,以使得在处理指令流中的所述异常变化之后,所确定的执行点中的一个被选为恢复指令执行的恢复点;并且在存在所述恢复点松弛条件的情况下,所述控制电路被布置为使得在其中所述执行状态被保持的每个所确定的执行点之间执行的指令的数目增加。4.根据权利要求1所述的装置,其中:所述软件包括一个或多个存储器访问指令,用于在存储器和所述处理电路可以访问的寄存器之间移动数据;并且在从正在所述处理电路上执行的所述软件导出的所述信息将所述存储器访问指令中的一个或多个标识为可重复的时,确定所述恢复点松弛条件。5.根据权利要求4所述的装置,其中,在存在所述恢复点松弛条件的情况下,所述恢复点对于被标识为可重复的存储器访问指令之前的所述软件中的执行点是可以设置的,而不管所述指令流中的意外变化是否是在该存储器访问指令之后的执行点处发生。6.根据权利要求4所述的装置,其中:所述指令集架构提供了被定义为可重复存储器访问指令的一个或多个存储器访问指令;并且在所述处理电路正在执行其中存储器访问指令是所述可重复存储器访问指令的所述软件内的代码段时确定所述恢复点松弛条件。7.根据权利要求4所述的装置,其中:包括恢复点松弛字段的控制存储装置,所述恢复点松弛字段的值是在在所述处理电路上执行的所述软件的控制下设置的;并且所述恢复点松弛条件是在所述处理电路正在执行包括至少一个存储器访问指令的代码段时确定的,并且所述恢复点松弛字段中的值被设置为标识所述至少一个存储器访问指令可重复的第一值。8.根据权利要求4所述的装置,其中:每个存储器访问指令指定虚拟地址,并且所述处理电路被布置为在执行每个存储器访问指令时参考存储器中的一个或多个页表条目来执行地址转换操作,以便针对所指定的虚拟地址标识将访问的相应的物理地址;并且所述恢复点松弛条件在所述处理电路正在执行包括至少一个存储器访问指令的代码段时被确定,并且在所述地址转换操作期间,至少一个页表条目内的软件控制字段标识访问与该页表条目相关联的存储器的区域的存储器访问指令是可重复的。9.根据权利要求4所述的装置,其中,所述处理电路被设置为对于包括被标识为可重复的多个存储器访问指令的代码段,避免针对这些多个存储器访问指令要访问的地址执行地址危害检查。10.根据权利要求9所述的装置,其中,在执行包括可重复的至少一个存储器访问指令的代码段之后,所述软件被布置为使得所述处理电路执行屏障操作以在执行不能由所述软件保证为可重复的后续存储器访问指令之前重新启用地址危害检查。11.根据权利要求4所述的装置,其中:被标识为可重复的所述存储器访问指令包括为了将来自一个或多个寄存器的数据存储到所述存储器而执行的至少一个存储指令;并且所述处理电路被布置为当在存在所述恢复点松弛条件的情况下执行代码段时,允许将由被标识为可重...

【专利技术属性】
技术研发人员:金·理查德·斯库特恩伯格
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1