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

控制存储器访问中的守卫标签检查制造技术

技术编号:25317061 阅读:18 留言:0更新日期:2020-08-18 22:33
一种设备,该设备包括地址转换电路,该地址转换电路用以根据所存储的虚拟地址与物理地址之间的页表映射来执行虚拟地址到物理地址的转换。所存储的页表映射包括标签守卫控制信息。该设备包括存储器访问电路,该存储器访问电路响应于目标物理地址而执行标签守卫的存储器访问,该标签守卫的存储器访问包括守卫标签检查,该守卫标签检查将以下二者进行比较:与目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的守卫标签,所述区块包括由目标物理地址标识的寻址位置。存储器访问电路被布置为根据标签守卫控制信息,响应于目标物理地址而对寻址位置执行非标签守卫的存储器访问,而不执行守卫标签检查。

【技术实现步骤摘要】
【国外来华专利技术】控制存储器访问中的守卫标签检查
本技术涉及数据处理领域。
技术介绍
将由数据处理设备执行的软件通常可以利用高级程序语言来编写,然后根据其上将执行该软件的设备所支持的指令集架构编译成代码。例如,软件最初可以利用更高级的语言(例如,Java、C、或C++)来编写,然后编译成本地支持的指令集架构(例如,x86或)。因为一些更高级的程序语言(例如,Java)包括用于检查与存储器访问相关的某些错误的运行时错误检测检查,所以这些程序语言被认为是存储器安全的语言。相比之下,存储器不安全的语言(例如,C和C++)并未包括这样的运行时错误检查。使用存储器不安全的语言的持续流行意味着在根据给定指令集架构的编译代码中,可能存在大量与存储器相关的错误,而可能容易受到攻击者或其他恶意方的攻击。这样的错误可能包括:·边界违反,其中代码所供应的数组索引超出数组的合法边界;·释放后使用错误,其中在存储器位置已解分配或已释放之后访问存储器位置;·返回后使用,其中在从函数返回之后,对函数内使用的变量(例如,堆栈上的值)相关联的地址进行存储器访问;·使用超出范围错误,其中变量在声明范围之外被访问;以及·初始化前使用错误,其中在初始化变量之前访问与该变量相关联的存储器地址。这些只是可能导致无法预测的行为并且可能为攻击者提供利用的途径的与存储器相关的错误的一些示例,因此期望在给定处理设备所支持的指令集架构内提供架构支持,以协助对某些类别的存储器错误的运行时检测。
技术实现思路
至少一些示例提供一种设备,包括:地址转换电路,该地址转换电路用以根据所存储的虚拟地址与物理地址之间的页表映射来执行虚拟地址到物理地址的转换,其中,所存储的页表映射包括标签守卫控制信息;以及存储器访问电路,该存储器访问电路用以响应于目标物理地址而执行标签守卫的存储器访问,该标签守卫的存储器访问包括守卫标签检查,该守卫标签检查将以下二者进行比较:与目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的守卫标签,该区块包括由目标物理地址标识的寻址位置,其中,存储器访问电路被布置为根据标签守卫控制信息来响应于目标物理地址而针对寻址位置执行非标签守卫的存储器访问,而不执行守卫标签检查。至少一些示例提供一种方法,包括:根据所存储的虚拟地址与物理地址之间的页表映射来执行虚拟地址到物理地址的转换,其中,所存储的页表映射包括标签守卫控制信息;并且根据标签守卫控制信息,来执行以下各项中的一者:响应于目标物理地址而执行标签守卫的存储器访问,该标签守卫的存储器访问包括守卫标签检查,该守卫标签检查将以下二者进行比较:与目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的守卫标签,该区块包括由目标物理地址标识的寻址位置;以及响应于目标物理地址而针对寻址位置执行非标签守卫的存储器访问,而不执行守卫标签检查。至少一些示例提供一种用于控制主机数据处理设备以提供供执行目标程序代码的指令执行的指令执行环境的计算机程序,包括:地址转换程序逻辑,该地址转换逻辑用以根据所存储的虚拟地址与物理地址之间的页表映射来执行虚拟地址到物理地址的转换,其中,所存储的页表映射包括标签守卫控制信息;以及存储器访问程序逻辑,该存储器访问程序逻辑用以响应于目标物理地址而执行标签守卫的存储器访问,该标签守卫的存储器访问包括守卫标签检查,该守卫标签检查将以下二者进行比较:与目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的守卫标签,该区块包括由目标物理地址标识的寻址位置,其中,存储器访问程序逻辑被布置为根据标签守卫控制信息,响应于目标物理地址而针对寻址位置执行非标签守卫的存储器访问,而不执行守卫标签检查。存储介质可以存储有上述计算机程序。存储介质可以是非暂态存储介质。附图说明仅通过示例的方式,并参考所附附图中图示出的实施例来进一步描述本技术,在附图中:图1示意性地图示出数据处理设备的示例;图2示出了包括检查地址标签是否与守卫标签匹配的标签守卫的存储器访问操作的示例;图3是示出了执行标签守卫的存储器访问操作的方法的流程图;图4示意性地图示出可以执行地址转换与守卫标签检查的示例系统;图5A、图5B、和图5C示出了包括标签守卫控制信息的示例页表条目;图6是示出了在一个示例中存储器被分配时如何设定页表位的流程图;图7是示出了在一个示例中根据页表条目中的标签守卫控制信息而实行对守卫标签检查的控制的流程图;并且图8示出了支持地址转换逻辑的模拟器的示例。具体实施方式至少一些实施例提供一种设备,包括:地址转换电路,该地址转换电路用以根据所存储的虚拟地址与物理地址之间的页表映射来执行虚拟地址到物理地址的转换,其中,所存储的页表映射包括标签守卫控制信息;以及存储器访问电路,该存储器访问电路用以响应于目标物理地址而执行标签守卫的存储器访问,该标签守卫的存储器访问包括守卫标签检查,该守卫标签检查将以下二者进行比较:与目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的寻址位置,该区块包括由目标物理地址标识的守卫标签,其中,存储器访问电路被布置为根据标签守卫控制信息来响应于目标物理地址而对寻址位置执行非标签守卫的存储器访问,而不执行守卫标签检查。用于防止上述类型的某些存储器使用错误的一种方式可以提供存储在存储器系统中的与一个或更多个存储器位置的区块相关联的守卫标签。当基于标识存储器系统中的特定寻址位置的目标地址来请求标签守卫的存储器访问时,存储器访问电路可以将以下二者进行比较:与目标地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储在存储器系统中的守卫标签,该区块包括由目标地址标识的寻址位置。存储器访问电路可以生成是否在守卫标签与地址标签之间检测到匹配的指示。此指示可以用于控制是否允许存储器访问成功或者控制后续操作是否能够成功,或者可以仅当允许存储器访问正常继续时被报告。这可能有用,例如,基于存储器不安全的语言(例如,C或C++)编译代码的编译器可以在初始化存储器区域时设定代码预期访问特定值的存储器区块的守卫标签,并且可以将相应地址标签值与指向那些区块的目标地址相关联。如果发生存储器使用错误(例如,地址指针在范围之外使用,或者延伸到初始化的有效范围的边界之外),则与寻址位置相关联的守卫标签很可能无法匹配与目标地址相关联的地址标签,然后在此情况下,是否检测到匹配的指示可以用于触发一些错误处理响应或错误报告机制。所采取的特定响应可以取决于所执行的软件的特定需求或架构的特定微架构实现。因此,即使高级语言没有用于执行运行时错误检查的手段来防止存储器访问错误,但用于所编译代码的ISA可以包括用于执行这样的检查的架构特征。然而,检查这样的守卫标签可能在执行守卫标签检查时导致一本文档来自技高网...

【技术保护点】
1.一种设备,包括:/n地址转换电路,所述地址转换电路用以根据所存储的虚拟地址与物理地址之间的页表映射来执行所述虚拟地址到所述物理地址的转换,其中,所存储的页表映射包括标签守卫控制信息;以及/n存储器访问电路,所述存储器访问电路用以响应于目标物理地址而执行标签守卫的存储器访问,所述标签守卫的存储器访问包括守卫标签检查,所述守卫标签检查将以下二者进行比较:与所述目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的守卫标签,所述区块包括由所述目标物理地址标识的寻址位置,/n其中,所述存储器访问电路被布置为根据所述标签守卫控制信息,响应于所述目标物理地址而对所述寻址位置执行非标签守卫的存储器访问,而不执行所述守卫标签检查。/n

【技术特征摘要】
【国外来华专利技术】20180202 GB 1801748.31.一种设备,包括:
地址转换电路,所述地址转换电路用以根据所存储的虚拟地址与物理地址之间的页表映射来执行所述虚拟地址到所述物理地址的转换,其中,所存储的页表映射包括标签守卫控制信息;以及
存储器访问电路,所述存储器访问电路用以响应于目标物理地址而执行标签守卫的存储器访问,所述标签守卫的存储器访问包括守卫标签检查,所述守卫标签检查将以下二者进行比较:与所述目标物理地址相关联的地址标签、与一个或更多个存储器位置构成的区块相关联地存储的守卫标签,所述区块包括由所述目标物理地址标识的寻址位置,
其中,所述存储器访问电路被布置为根据所述标签守卫控制信息,响应于所述目标物理地址而对所述寻址位置执行非标签守卫的存储器访问,而不执行所述守卫标签检查。


2.如权利要求1所述的设备,其中,所存储的页表映射包括用于每一页表条目的标签守卫控制位,并且所述存储器访问电路响应于所述标签守卫控制位具有第一预定值,而对所述寻址位置执行所述标签守卫的存储器访问,并且所述存储器访问电路响应于所述标签守卫控制位具有第二预定值,而对所述寻址位置执行所述非标签守卫的存储器访问。


3.如权利要求1所述的设备,其中,所存储的页表映射包括用于每一页表条目的多个标签守卫控制位,并且所述存储器访问电路响应于所述多个标签守卫控制位中的至少一者具有第一预定值,而对所述寻址位置执行所述标签守卫的存储器访问,并且所述存储器访问电路响应于所述标签守卫控制位具有第二预定值,而对所述寻址位置执行所述非标签守卫的存储器访问。


4.如权利要求3所述的设备,其中,用于每一页表条目的多个标签守卫控制位指定根据所述存储器访问的类型的检查规则。


5.如权利要求4所述的设备,其中,用于每一页表条目的多个标签守卫控制位定义的标签检查规则被布置为应用于以下各项中的至少一者:
对所述寻址位置的数据访问;
对所述寻址位置的指令提取;以及
使用从所述寻址位置提取的指令进行的数据访问。


6.如权利要求4或5所述的设备,其中,用于每一页表条目的多个标签守卫控制位定义的标签检查规则对于加载操作与对于存储操作是不同的。


7.如权利要求4-...

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

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

1