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

数据处理设备和方法技术

技术编号:13764743 阅读:65 留言:0更新日期:2016-09-28 09:01
一种数据处理设备(2)具有内存属性单元(7),该内存属性单元具有储存区域(9),该储存区域用于储存属性数据以便藉由处理电路(4)控制对对应内存地址范围的存取。响应于目标内存地址,处理电路(4)可执行区域辨识操作以输出区域辨识值,该值辨识属性单元(7)的储存区域(9)中的何者对应于目标内存地址。区域辨识值可用于藉由数据处理设备(2)所执行的至少一些软件。此可用于迅速检查一系列地址的存取许可或用于决定如何更新内存属性单元。

【技术实现步骤摘要】
【国外来华专利技术】
本技术涉及数据处理领域。更具体地,本技术涉及一种具有内存属性单元的数据处理设备,该内存属性单元用于储存属性数据以便控制对内存的存取。
技术介绍
数据处理设备可具有内存属性单元(诸如内存保护单元),该内存属性单元用于储存属性数据以便藉由处理电路控制对对应内存地址范围的存取。当需要内存存取时,则内存属性单元查找对应于包括目标地址的地址范围的属性数据,且若存在命中,则基于属性数据决定是否容许读取或写入存取。附图说明图1示意性示出数据处理设备的实例;图2示出用于储存内存地址空间的对应地址范围的属性数据的内存属性单元;图3图示数据处理设备的更详细实例;图4图示与图3的实例一起使用的内存地址空间的实例;图5示出图3所示的处理设备的不同安全状态的实例;图6图示区域辨识指令的示例性编码;图7图示区域辨识指令的示例性结果;图8示出具有用于产生区域编号的逻辑的内存属性单元的实例,该区域编号辨识对应目标地址的区域;图9A图示藉由向预定缓存器写入目标地址触发区域辨识操作的实例;图9B图示在不同域中提供不同预定缓存器以便触发对于内存属性单元的区域辨识操作的实例;图10图示使用自较不安全域传递的地址的安全域中的函数的实例;图11图示可取决于自较不安全域传递的地址跨越哪些内存属性区域而发生的问题的实例;图12图示使用区域辨识操作检查可安全执行安全域中的函数的实例;图13图示可使用区域辨识操作加速新库的启动的实例;以及图14是示出执行区域辨识操作的方法的流程图。具体实施方式从一方面看,本技术提供一种数据处理设备,该数据处理设备包含:处理电路,被配置为执行数据处理;内存属性单元,包含多个储存区域,每一储存区域被配置为储存属性数据以便藉由处理电路控制对对应内存地址范围的存取;并且其中响应于目标内存地址,处理电路被配置为执行区域辨识操作以输出区域辨识值,该值用于辨识多个储存区域中的何者是由对应于包括所述目标内存地址的内存地址范围的内存属性单元所指示的对应储存区域,其中目标内存地址是实体地址并且区域辨识值适用于藉由数据处理设备所执行的至少一些软件。本技术认识到,在有些情形中处理电路执行区域辨识操作以输出区域辨识值是有用的,该值辨识内存属性单元的储存区域中的何者对应于指定目标地址,以便使得区域辨识值可用于由数据处理设备执行的至少一些软件。此为不寻常的,因为当在内存属性单元中查找目标内存地址时通常仅将获得属性数据本身。哪一储存区域映射至特定目标地址通常并不着重考虑,因为可在任一储存区域中置放给定地址的属性数据。然而,本技术认识到,区域辨识操作可帮助例如加速检查对于一系列地址的存取许可。在没有区域辨识操作情况下,检查容许对整个范围的地址的存取将需要检查对于该范围内的每一个别地址的许可。然而,通过使得区域辨识值可用于软件,检查哪一储存区域与该范围的起始地址及结束地址关联来查看两者是否皆与相同储存区域相关是可能的。若皆与相同储存区域相关,则对于整个范围的地址的存取许可为相同,且因此不必检查对于每一个别地址的许可,从而增加效能及减少功率消耗。即使起始地址与结束地址并不相同,区域辨识操作可用于决定存取许可变化的点,以便减少检查次数。如下文将论述,区域辨识操作亦可帮助在更新内存属性单元时引进新上下文、程序或库的属性。目标内存地址为实体地址,此意谓内存属性单元将连续目标内存地址映射至处理电路与内存之间边界处的连续内存地址(换言之,连续目标内存地址映射至输出到内存的连续地址)。在许多情况中,输出到内存的地址可为与对应目标地址相同的地址。然而,内存属性单元亦可能应用简单映射,诸如添加常数至自处理电路所接收的所有目标地址以产生输出到内存的地址,且此情况亦考虑使用实体目标地址。此与内存管理单元完全不同,该内存管理单元提供自处理器所指定的虚拟目标地址至输出到内存的实体地址的任意地址变换。在内存管理单元中,可将连续目标地址映射至输出到内存的非连续地址。本技术的区域辨识操作对于内存管理单元而言并不那么有用,因为通常在内存地址的页面粒度下实施地址变换,该页面粒度倾向于相对较小(例如,4K地址),且因此单个程序或程式可使用对应于许多不同页面的地址。此意谓区域辨识操作可用于减少如上文所论述的所需检查的量的可能性更小,因为通常起始地址及结束地址将对应于内存管理单元的不同页面,即便是起始地址及结束地址与相同程序相关。与此相反,在内存属性单元使用实体地址作为目标地址的情况下,对应于内存属性单元的单个储存区域的地址范围倾向于比内存管理单元的地址范围更大,且由单个程序所使用的地址范围的整体通常将对应于单个储存区域。因此,区域辨识操作发现起始地址及结束地址与相同储存区域关联的可能性更大,以允许减少如上文所论述的检查。可以不同方式触发区域辨识操作。举例而言,可提供专用区域辨识指令,该指令指定目标内存地址。程序设计师可在代码中包括区域辨识指令以触发处理电路执行区域辨识操作及输出区域辨识值。或者,可不存在专用区域辨识指令。实情为,可提供预定缓存器,当用目标内存地址写入时,该预定缓存器触发处理电路执行区域辨识操作以辨识与目标内存地址关联的区域。举例而言,通用储存或移动指令可用于将目标内存地址写入到预定缓存器中。区域辨识操作不必总是回传有效区域辨识值。可存在各种情形,其中可输出无效区域辨识值。举例而言,若存在以下情况,则可输出无效区域辨识值:(a)禁用内存属性单元;或(b)目标内存地址不对应于多个区域中的任何者;或(c)目标内存地址对应于多个区域中的两者或更多者;(d)目标内存地址对应于启用的多个区域中的两者或更多者;或(e)目标内存地址不对应于启用的多个区域中的任何者;或(f)当处理电路处于具有不充分安全特权的操作模式中时,执行区域辨识操作来决定区域辨识值。给定数据处理设备不必应用所有这些标准及可应用这些标准中的任一或更多者来侦测是否应输出无效区域辨识值。可以不同方式表示无效区域辨识值。在一个实例中,可使用预定值表示无效区域辨识值,该预定值并不表示内存属性单元的真实储存区域。举例而言,若使用0与正整数之间的数字表示内存属性单元的储存区域,则可使用负值(例如,-1)指示无效区域辨识值。或者,可使用无效旗标表示无效区域辨识值,该无效旗标与区域辨识值一起输出且被设置为一值,该值指示该关联的区域辨识值为无效的。在此情况中,则区域辨识值可具有一值(例如,零),该值原本将发送信号告知内存属性单元的真实区域,但该值由无效旗标指示为不表示有效区域。关于上文情况(f),在一些情形中,可能不希望与给定地址关联的储存区域变得可被用户或程序使用,因此若在处于具有不充分安全特权的状态下时执行区域辨识操作来决定区域辨识值,则可能会输出无效区域辨识值。在使用与区域辨识值一起输出的无效旗标表示无效值的情况中,将对应区域辨识值设置为预定值(例如,零)可用于防止具有不充分安全特权的程序自区域辨识值获得信息。举例而言,在具有安全状态及较不安全状态的系统中,可需要防止较不安全状态下的代码存取安全状态下所使用的关于内存属性单元的储存区域的信息,因为攻击者可使用此信息决定关于由安全状态所使用的地址映射的信息,该信息可用于辅助攻击。通过防止有效区域辨识值在较不本文档来自技高网...

【技术保护点】
一种数据处理设备,该数据处理设备包含:处理电路,被配置为执行数据处理;内存属性单元,包含多个储存区域,每一储存区域被配置为储存属性数据以便藉由所述处理电路控制对对应内存地址范围的存取;并且其中响应于目标内存地址,所述处理电路被配置为执行区域辨识操作以输出区域辨识值,该值用于辨识所述多个储存区域中的何者是由对应于包括所述目标内存地址的内存地址范围的所述内存属性单元所指示的对应储存区域,其中所述目标内存地址是实体地址并且所述区域辨识值适用于藉由所述数据处理设备所执行的至少一些软件。

【技术特征摘要】
【国外来华专利技术】2014.02.10 GB 1402241.21.一种数据处理设备,该数据处理设备包含:处理电路,被配置为执行数据处理;内存属性单元,包含多个储存区域,每一储存区域被配置为储存属性数据以便藉由所述处理电路控制对对应内存地址范围的存取;并且其中响应于目标内存地址,所述处理电路被配置为执行区域辨识操作以输出区域辨识值,该值用于辨识所述多个储存区域中的何者是由对应于包括所述目标内存地址的内存地址范围的所述内存属性单元所指示的对应储存区域,其中所述目标内存地址是实体地址并且所述区域辨识值适用于藉由所述数据处理设备所执行的至少一些软件。2.如权利要求1所述的数据处理设备,其中所述处理电路被配置为响应于指定所述目标内存地址的区域辨识指令执行所述区域辨识操作。3.如权利要求1所述的数据处理设备,其中所述处理电路被配置为响应于对预定缓存器写入值的指令执行所述区域辨识操作。4.如权利要求3所述的数据处理设备,其中写入到所述预定缓存器中的所述值是所述目标内存地址。5.如在前权利要求中的任一项所述的数据处理设备,其中所述处理电路被配置为在以下情况下输出无效区域辨识值:(a)禁用所述内存属性单元;或(b)所述目标内存地址不对应于所述多个区域中的任何者;或(c)所述目标内存地址对应于所述多个区域中的两者或多者;或(d)所述目标内存地址对应于启用的所述多个区域中的两者或多者;或(e)所述目标内存地址不对应于启用的所述多个区域中的任何者;或(f)当所述处理电路处于具有不充分安全特权的操作模式中时,执行所述区域辨识操作来决定所述区域辨识值。6.如权利要求5所述的数据处理设备,其中所述无效区域辨识值包
\t含预定值,该预定值并不表示所述多个储存区域之一。7.如权利要求5所述的数据处理设备,其中所述无效区域辨识值包含与有效性旗标关联的区域辨识值,该有效性旗标指示该区域辨识值是否有效。8.如任何在前的权利要求所述的数据处理设备,其中在所述区域辨识操作中,所述处理电路被配置为输出额外信息,该额外信息包含以下的至少一者:(a)储存于所述对应储存区域中的属性数据中的至少一些;(b)来源于储存于所述对应储存区域中的属性数据中的至少一些的信息;(c)安全状态的指示,该安全状态与所述对应储存区域的所述内存地址范围关联;(d)对应于所述对应储存区域的所述内存地址范围的所述起始地址的值;(e)对应于所述对应储存区域的所述内存地址范围的所述结束地址的值;以及(f)对应于起始对应储存区域的起始内存地址范围的大小的值。9.如任何在前的权利要求所述的数据处理设备,其中在起始区域辨识操作中,起始处理电路被配置为将起始区域辨识值写入到目的地缓存器的至少一部分中。10.如任何在前的权利要求所述的数据处理设备,其中所述区域辨识值包含所述对应储存区域的区域编号。11.如权利要求10所述的数据处理设备,其中在所述区域辨识操作中,所述处理电路被配置为控制所述内存属性单元基于所述多个储存区域中的何者为所述对应储存区域而产生所述区域编号。12.如权利要求10所述的数据处理设备,其中所述内存属性单元的每一储存区域被配置为储存该储存区域的该区域编号;并且在所述区域辨识操作中,所述处理电路被配置为控制所述内存属性单元自所述对应储存区域输出所述区域编号。13.如任何在前的权利要求所述的数据处理设备,其中所述内存属性单元为第一内存属性单元,该第一内存属性单元包含多个第一储存区域,每一第一储存区域被配置为储存第一属性数据以便控制对对应的第一内存地址范围的存取;所述数据处理设备包含第二内存属性单元,该第二内存属性单元包含多个第二储存区域,每一第二储存区域被配置为储存第二属性数据以便控制对对应第二内存地址范围的存取;并且在所述区域辨识操作中,所述处理电路被配置为输出第一区域辨识值和第二区域辨识值,所述第一区域辨识值用于辨识所述多个第一储存区域中的何者是由对应于包括所述目标内存地址的第一内存地址范围的所述第一内存属性单元所指示的对应第一储存区域,所述第二区域辨识值用于辨识所述多个第二储存区域中的何者是由对应于包括所述目标内存地址的第二内存地址范围的所述第二内...

【专利技术属性】
技术研发人员:托马斯·克里斯托弗·格罗卡特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

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

1