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

用于标签保护的存储器系统的随机标签设定指令技术方案

技术编号:26045212 阅读:30 留言:0更新日期:2020-10-23 21:25
一种装置具有:处理电路(4);存储器存取电路(15),该存储器存取电路针对具有相关联的地址标签的标签检查目标地址执行保护标签检查,保护标签检查包括将地址标签与存储在存储器系统中的保护标签进行比较,保护标签与具有一个或多个存储器位置的区块相关联,这一个或多个存储器位置包括由目标地址所标识的寻址位置;以及指令译码器(6),该指令译码器响应于指定标签设定目标地址的随机标签设定指令,控制处理电路(4)将与标签设定目标地址相关联的地址标签设定为从一组候选标签值中随机选择的随机标签值。

【技术实现步骤摘要】
【国外来华专利技术】用于标签保护的存储器系统的随机标签设定指令
技术介绍
要由数据处理装置执行的软件通常可以高级编程语言来编写,并且然后根据要执行该软件的装置所支持的指令集架构而被编译为代码。例如,软件可最初以较高级语言(诸如Java、C或C++)来编写,并且然后被编译为本地支持的指令集架构(诸如x86或)。一些较高级编程语言(诸如Java)被认为是存储器安全语言,因为这些语言包括用于检查有关存储器存取的某些错误的运行时错误检测检查。相比之下,存储器不安全语言(诸如C及C++)不包括此种运行时错误检查。使用存储器不安全语言的持久盛行意味着在根据给定指令集架构的编译代码中,可能存在大量的有关存储器的错误,这些错误可能容易被攻击者或其他恶意方利用。这些错误可包括:·界限违例,其中由代码所供应的数组索引在数组的合法界限之外;·释放后使用错误,其中在存储器位置已被解除分配或释放之后对该存储器位置进行存取;·返回后使用,其中对与函数内所使用的变量(诸如堆栈上的值)相关的地址的存储器存取在从函数返回之后进行;·范围外使用错误,其中变量是在宣告它们的范围之外被存取的;以及·初始化前使用错误,其中在变量被初始化之前对与变量相关联的存储器地址进行存取。这些仅是有关存储器的错误的一些示例,其可能导致无法预测的行为和可能为攻击者提供利用的途径。因此可能期望的是,在由给定处理装置所支持的指令集架构内提供用于辅助某些类别的存储器错误的运行时检测的架构支持。
技术实现思路
至少一些示例提供了一种装置,包括:处理电路;存储器存取电路,该存储器存取电路针对具有相关联的地址标签的标签检查目标地址执行保护标签检查,保护标签检查包括将地址标签与存储在存储器系统中的保护标签进行比较,保护标签与具有一个或多个存储器位置的区块相关联,这一个或多个存储器位置包括由目标地址所标识的寻址位置;以及指令译码器,该指令译码器响应于指定标签设定目标地址的随机标签设定指令,控制处理电路以将与标签设定目标地址相关联的地址标签设定为从一组候选标签值中随机选择的随机标签值。至少一些示例提供了一种方法,包括:针对具有相关联的地址标签的标签检查目标地址执行保护标签检查,保护标签检查包括将地址标签与存储在存储器系统中的保护标签进行比较,保护标签与具有一个或多个存储器位置的区块相关联,这一个或多个存储器位置包括由目标地址所标识的寻址位置;并且响应于对指定标签设定目标地址的随机标签设定指令的译码,将与标签设定目标地址相关联的地址标签设定为从一组候选标签值中随机选择的随机标签值。至少一些示例提供了一种计算机程序,该计算机程序用于控制主机数据处理装置以提供用于执行目标程序代码的指令的指令执行环境,该计算机程序包括:存储器存取程序逻辑,该存储器存取程序逻辑针对具有相关联的地址标签的标签检查目标地址执行保护标签检查,保护标签检查包括将地址标签与存储在存储器系统中的保护标签进行比较,保护标签与具有一个或多个存储器位置的区块相关联,这一个或多个存储器位置包括由目标地址所标识的寻址位置;及标签设定程序逻辑,该标签设定程序逻辑响应于指定标签设定目标地址的随机标签设定指令,将与标签设定目标地址相关联的地址标签设定为从一组候选标签值中随机选择的随机标签值。一种存储介质可存储上述计算机程序。该存储介质可以是非暂态存储介质。附图说明本公开技术的另外的方面、特征及优点将从结合附图阅读的示例的以下描述中显而易见,在附图中:图1示意性示出了数据处理装置的示例;图2示出了包括检查地址标签是否与保护标签匹配的标签保护的存储器存取操作的示例;图3是示出执行标签保护的存储器存取操作的方法的流程图;图4示出了随机标签设定指令的第一示例;图5示出了随机标签设定指令的第二示例,其中防止一组候选标签值的至少一个排除值被选择作为要分配到给定地址的地址标签的随机标签值;图6示出了用于指示至少一些排除值的随机选择状态信息的第一示例;图7示出了标签值排除指令的示例,该标签值排除指令用于将在随机选择状态信息中的位字段的位更新为指示从输入地址的地址标签提取的标签值要从随后的随机标签值选择中排除;图8至图10示出了用于从一组候选值选择随机标签值而同时排除至少一个排除值被选择的示例硬件实现方式;图11示出了随机选择状态信息的第二示例,该随机选择状态信息指定了候选标签值子集的值和指示是否排除这些值中的每一者的对应位字段;图12示出了用于用随机选择值填充候选标签值子集的随机标签选择指令的示例;图13示出了标签值排除指令的第二示例,该标签值排除指令用于基于输入地址的地址标签来确定是否应排除由随机选择状态信息所指示的候选标签值子集中的任意候选标签值;图14示出了随机标签设定指令的另一示例,该随机标签设定指令用于基于图11所示的随机选择状态信息将与给定地址相关联的标签值更新为随机选择值;图15示出了处理随机标签设定指令的方法;以及图16示出了支持随机标签设定指令的模拟器的示例。具体实施方式一种用于防止上文讨论的那些类型的某些存储器使用错误的方法可以是提供存储在存储器系统中的与一个或多个存储器位置的区块相关联的保护标签。当基于标识在存储器系统中的特定寻址位置的目标地址请求标签保护的存储器存取操作时,可执行保护标签检查。在保护标签检查中,存储器存取电路可将与目标地址相关的地址标签与存储在存储器系统中的与包括由目标地址所标识的寻址位置的一个或多个存储器位置的区块相关联的保护标签进行比较。在一些示例中,存储器存取电路可生成在保护标签与地址标签之间是否检测到匹配的指示。该指示可用于控制是否允许存储器存取成功,或随后的操作是否可以成功,或者只在允许存储器存取如常继续时报告。这可在以下情况有用:例如,基于存储器不安全语言(诸如C或C++)编译代码的编译程序可在初始化存储器区域时,将存储器中期望存取代码的区块的保护标签设定为特定值,并且可将对应的地址标签值与指向这些区块的目标地址相关联。如若发生存储器使用错误,并且例如在已初始化的有效范围的范围之外或延伸出该范围的界限之外使用地址指针,则很可能的是与寻址位置相关联的保护标签可能不匹配与目标地址相关的地址标签,并且在此情况下,可触发错误处理响应或错误报告机制。所采取的特定响应可取决于正在执行的软件的特定需求或取决于架构的特定微架构实现方式。因此,即使高级语言不具有用于执行运行时错误检查以便防止存储器存取错误的手段,用于编译代码的指令集架构(ISA)仍可包括用于执行此种检查的架构特征。在下文讨论的技术中,数据处理装置可具有指令译码器,该指令译码器支持指定标签设定目标地址的随机标签设定指令。响应于随机标签设定指令,指令译码器控制处理电路以将与标签设定目标地址相关的地址标签设定为从一组候选标签值中随机选出的随机标签值。出于多种原因,此形式的指令可以是有用的。实践中,为了限制存储用于存储器位置的每个区块的保护标签的存储开销,每个保护标签中本文档来自技高网...

【技术保护点】
1.一种装置,包括:/n处理电路;/n存储器存取电路,该存储器存取电路针对具有相关联的地址标签的标签检查目标地址执行保护标签检查,所述保护标签检查包括将所述地址标签与存储在存储器系统中的保护标签进行比较,所述保护标签与具有一个或多个存储器位置的区块相关联,所述一个或多个存储器位置包括由所述目标地址所标识的寻址位置;以及/n指令译码器,该指令译码器响应于指定标签设定目标地址的随机标签设定指令,控制所述处理电路以将与所述标签设定目标地址相关联的地址标签设定为从一组候选标签值中随机选择的随机标签值。/n

【技术特征摘要】
【国外来华专利技术】20180320 GB 1804411.51.一种装置,包括:
处理电路;
存储器存取电路,该存储器存取电路针对具有相关联的地址标签的标签检查目标地址执行保护标签检查,所述保护标签检查包括将所述地址标签与存储在存储器系统中的保护标签进行比较,所述保护标签与具有一个或多个存储器位置的区块相关联,所述一个或多个存储器位置包括由所述目标地址所标识的寻址位置;以及
指令译码器,该指令译码器响应于指定标签设定目标地址的随机标签设定指令,控制所述处理电路以将与所述标签设定目标地址相关联的地址标签设定为从一组候选标签值中随机选择的随机标签值。


2.根据权利要求1所述的装置,其中响应于所述随机标签设定指令,所述指令译码器被配置为:控制所述处理电路以防止所述一组候选标签值的至少一个排除值被选择作为所述随机标签值,并且从所述候选标签值的剩余子集随机选择所述随机标签值。


3.根据权利要求2所述的装置,其中所述至少一个排除标签值包括由所述随机标签设定指令所指定的至少一个寄存器所标识的一个或多个排除标签值。


4.根据权利要求2和3中任一项所述的装置,其中所述至少一个排除标签值包括与下述地址标签相对应的标签值:该地址标签与在所述随机标签设定指令的源寄存器或目的地寄存器中所指定的地址相关联。


5.根据权利要求2和3中任一项所述的装置,其中所述随机标签设定指令指定存储随机选择状态信息的至少一个源寄存器;
所述随机选择状态信息包括位字段,所述位字段包括对应于所述一组候选标签值的至少一子集的多个位,所述位字段的每个位指示对应的候选标签值是否为所述至少一个排除标签值中的一者。


6.根据权利要求5所述的装置,其中所述指令译码器响应于指定标签排除目标地址和用于存储所述随机选择状态信息的所述位字段的目的地寄存器的标签值排除指令,控制所述处理电路以将所述位字段中对应于与所述标签排除目标地址相关联的地址标签的位更新为指示对应的标签值是所述至少一个排除标签值中的一者。


7.根据权利要求5和6中任一项所述的装置,其中所述位字段包括对应于整个所述一组候选标签值的位。


8.根据权利要求5和6中任一项所述的装置,其中所述位字段包括对应于候选标签值适当子集的位,并且所述随机选择状态信息还包括所述候选标签值适当子集的标签值。


9.根据权利要求8所述的装置,其中所述候选标签值适当子集的标签值与所述位字段在同一寄存器中被指定。


10.根据权利要求8和9中任一项所述的装置,其中所述指令译码器响应于指定用于存储所述随机选择状态信息的标签值的目的地寄存器的随机标签选择指令,控制所述处理电路以从所述一组候选标签值中随机选择所述候选标签值适当子集,并且将所选择的所述候选标签值适当子集的标签值写入所述目的地寄存器。


11.根据权利要求2至10中任一项所述的装置,其中所述至少一个排除标签值包括由存储在配置寄存器中的配置数据所标识的一个或多个排除标签值。


12.根据权利要求2至11中任一项所述的装置,其中所述至少一个排除标签值包括一个或多个由硬件定义的排除标签值。


13.根据权利要求2至12中任一项所述的装置,其中所述至少一个排除标签值包括最多N个排除标签值,并且,响应于所述随机标签设定指令,所述指令译码器被配置为控制所述处理电路以:
随机选择所述一组候选标签值的至少N+1个标签值;
将所选择的标签值中的每一者与所述至少一个排除标签值进行比较;以及
将所选择的标签值中与所述至少一个排除标签值中的所有排除标签值都不匹配的一个标签值选择作为所述随机标签值,以设定给与所述标签设定目标地址相关的地址标签。


14.根据权利要求2至12中任一项所述的装置,其中所述至少一个排除标签值包括预定排除标签值和由所述随机标签设定指令...

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

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

1