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.一种装置,包括:处理电路,所述处理电路具有相关联的指令集架构,并且被布置为执行包括由所述指令集架构定义的指令的软件;以及控制电路,所述控制电路用于根据由所述指令集架构定义的约束来控制所述处理电路的操作;所述指令集架构定义了默认恢复点约束,所述默认恢复点约束用于确定在处理指令流中的意外变化之后从其恢复指令执行的恢复点;并且所述控制电路响应于从在所述处理电路上执行的所述软件导出的信息来检测恢复点松弛条件,并且响应于所述恢复点松弛条件来允许确定所述恢复点不受所述默认恢复点约束的约束。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。