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

数据处理装置和数据处理方法制造方法及图纸

技术编号:11556716 阅读:123 留言:0更新日期:2015-06-04 12:19
处理电路可在安全域和次安全域中操作。响应于来自处理电路执行的后台处理的最初异常,异常控制电路在触发异常处理程序之前,执行来自寄存器第一子集的数据的状态保存,而异常处理程序负责执行来自寄存器第二子集的数据的状态保存。响应于导致从安全域转换到次安全域的第一异常,异常控制电路在触发异常处理程序之前,执行来自寄存器第二子集的数据的附加状态保存,其中后台处理在次安全域中。响应于导致从安全域转换到次安全域的末尾连锁异常,在不执行附加状态保存的情况下,触发异常处理程序。

【技术实现步骤摘要】
【国外来华专利技术】数据处理装置和数据处理方法
本专利技术涉及数据处理领域,并且特别涉及具有安全域和次安全域的数据处理。
技术介绍
很多数据处理系统及架构提供了隔离并保护敏感数据和代码部分不被无权的人或进程访问的方法。虽然能够提供安全是重要的,但是在与该保护相关联的性能和电路面积中存在开销。在诸如微控制器之类的小型系统中,将这些开销保持较低是非常重要的,从而可能需要在安全等级与性能之间做出折衷。英国剑桥的用其Trustzone结构提供了保持数据和代码安全的一个方法,其中存在安全状态和非安全状态,并且软件处理器被用于在状态之间进行转换,该软件处理器保护安全侧的安全。虽然该方法提供了很高的安全度,但是需要以软件处理器形式的相当大的软件干预来改变安全状态,这既降低了系统的性能,又增加了为安全软件开发外部应用程序接口API所需的工作量,因为所有通话必须通过软件处理器来代理。类似地,虽然在安全域中发生但需要在非安全域中处理的异常也需要通过安全异常处理器来代理,这允许安全状态在控制转到非安全异常处理器之前得到保护。
技术实现思路
从第一方面来看,本专利技术提供了一种数据处理装置,包括:处理电路,用于响应于程序代码而执行数据处理操作,处理电路包括用于控制异常处理的异常控制电路;多个寄存器,用于存储数据,寄存器包括寄存器的第一子集和寄存器的第二子集;以及数据存储设备,用于存储数据,数据存储设备包括多个区域,区域包括安全区域和次安全区域,其中安全区域用于存储当在安全域中操作时可被处理电路访问而当在次安全域中操作时不可被处理电路访问的数据;其中:响应于来自由处理电路执行的后台处理的最初异常,异常控制电路被配置为在触发处理电路执行对应于异常的异常处理程序之前,执行来自寄存器的第一子集的数据的状态保存,其中异常处理程序负责执行来自寄存器的第二子集的数据的状态保存;响应于导致从安全域转换到次安全域的第一异常,异常控制电路被配置为在触发处理电路执行次安全域中的异常处理程序之前,执行来自寄存器的第二子集的数据的附加状态保存,其中后台处理由处理电路在安全域中执行;并且响应于导致从安全域转换到次安全域的末尾连锁异常,异常控制电路被配置为触发处理电路在不执行附加状态保存的情况下,执行异常处理程序,末尾连锁异常在第一异常被处理之后并在返回后台处理之前被处理。当在后台处理期间发生异常时,后台处理可将数据值放置于寄存器中,从而允许这些数据值在异常结束时被保留及恢复,该系统可执行对数据的从寄存器到数据存储设备的状态保存。如上所述,对于一些系统,在所获得的安全性等级和处理性能之间获得折衷是重要的。当响应于异常而执行状态保存时也是如此。由于性能原因,在第一子集和第二子集中执行对寄存器中的数据的状态保存可能是有用的。对来自第一子集的数据的状态保存可由硬件中的异常控制电路在触发异常处理程序之前执行。相反,异常处理程序(即,软件)可负责执行对来自寄存器的第二子集的数据的状态保存。但是,从安全性角度来看,寄存器的第二子集的状态保存在异常处理程序的控制之下有时可能是有问题的。如果在安全域中执行的后台处理之后,异常导致从安全域转换到次安全域,则次安全异常处理程序可通过安全后台代码获取对位于寄存器的第二子集中的安全数据的访问。为了防止该安全性破坏,如果在后台处理在安全域的情况下,发生导致从安全域转换到次安全域的第一异常,则异常控制电路在触发次安全域中的异常处理程序之前,执行对来自寄存器的第二子集的数据的附加状态保存。通过提供用于将寄存器的第二子集的状态保存在硬件中的机制,次安全异常处理软件不必执行可能包含安全数据的寄存器第二子集的状态保存。但是,在硬件中执行附加状态保存导致在开始异常处理程序之前的更长延迟。在先前异常结束的时刻,可能有另一异常等待处理。在这种情况下,处理电路在返回后台处理之前服务另一异常,该后台处理在先前异常之前正在被执行。这种情况被称为“末尾连锁”,并且另一异常被称为“末尾连锁”异常。在后台处理在安全域的情况下,为了降低附加状态保存的性能影响,对于导致从安全域转换到次安全域的第一异常执行附加状态保存。对于导致从安全域转换到次安全域的后续末尾连锁异常,不需要重复附加状态保存,因为后台处理所需的数据值已响应于第一异常而被保存。因此,在很多情况下,可在不执行附加状态保存的情况下,触发末尾连锁异常的异常处理程序。因此,当响应于异常而执行状态保存时,本技术可获得在安全性和性能之间改善的平衡。本专利技术的硬件机制使得次安全异常能够有效处理,而不需要通过安全异常处理器来代理。响应于导致从安全域转换到次安全域的第一异常,异常控制电路可在触发处理电路执行异常处理程序之前清除寄存器第一子集和寄存器第二子集。这意味着次安全域中的异常处理程序不能访问在安全域中时被放置于寄存器中的任意数据。此外,在一个实施例中,响应于所述第一异常,数据处理装置可被配置为在异常控制电路触发处理电路执行异常处理程序之前,保证寄存器第一子集不包含安全数据。存在很多方法实现这一目的。例如,硬件或软件均可保证寄存器第一子集被清除,使得这些寄存器不包含任意安全数据。或者,可以是寄存器第一子集可被设计为在处理电路被触发执行异常处理程序之前只包含非安全数据的情况,在这种情况下,可不必清除寄存器第一子集。在本申请中,术语“调用者寄存器”和“被调用者寄存器”可被用于分别指示寄存器的第一子集和第二子集。虽然异常处理程序负责执行对来自寄存器第二子集(被调用者寄存器)的数据的状态保存,但是异常处理程序可不必实际执行来自第二子集的数据的状态保存。例如,如果异常控制电路已经执行了第二子集寄存器的附加状态保存,则异常处理程序可省去这些寄存器的状态保存。或者,更简单的是,异常处理程序一直执行来自被调用者寄存器的数据的状态保存,即使附加状态保存已被硬件执行。因为寄存器可能已被硬件清除,所以异常处理程序可能无论如何也不能访问被调用者寄存器中的数据值,与软件将被清除的数据值保存到数据存储设备并稍后恢复被清除的数据相关联的开销可小于用于使异常处理程序能够检测硬件是否已经执行了附加状态保存的机制所导致的开销。对于寄存器第一子集(调用者寄存器)和寄存器第二子集(被调用者寄存器),寄存器第一子集可包括0个寄存器,使得所有寄存器都在第二子集中。在这种情况下,对于多数异常没有状态保存将被异常控制电路执行,而异常处理程序负责第二子集中的所有寄存器的保存。但是,响应于导致从第二安全域转换到次安全域的第一异常,附加状态保存可使用异常控制电路将第二子集(所有寄存器)保存在硬件中,以防止被次安全域中的异常处理程序访问该数据。触发附加状态保存的第一异常可以是在处理正在执行后台处理时发生的最初异常。或者,第一异常自身可以是在最初异常之后而在返回后台处理之前被处理的末尾连锁异常。在本申请中,术语“后台处理”被用于指示被具有更高优先级的异常打断的处理。如果异常处理程序自身被更高优先级异常打断,则被打断的异常处理程序对于抢占异常可变为“后台处理”,并且随后抢占异常将在被打断之前触发对异常处理程序正在使用的数据的状态保存。响应于导致从次安全域转换到安全域的末尾连锁异常,异常控制电路可在不将附加状态保存中所保存的数据恢复到寄存器第二子集的情况下,控制处理电路触发异常处理程序。在不存本文档来自技高网...
数据处理装置和数据处理方法

【技术保护点】
一种数据处理装置,包括:处理电路,所述处理电路用于响应于程序代码而执行数据处理操作,所述处理电路包括用于控制异常处理的异常控制电路;多个寄存器,所述寄存器用于存储数据,所述寄存器包括寄存器的第一子集和寄存器的第二子集;以及数据存储设备,所述数据存储设备用于存储数据,所述数据存储设备包括多个区域,所述区域包括安全区域和次安全区域,其中所述安全区域用于存储当在安全域中操作时可被处理电路访问而当在次安全域中操作时不可被处理电路访问的数据;其中:响应于来自由所述处理电路执行的后台处理的最初异常,所述异常控制电路被配置为在触发所述处理电路执行对应于所述异常的异常处理程序之前,执行来自所述寄存器的第一子集的数据的状态保存,其中所述异常处理程序负责执行来自所述寄存器的第二子集的数据的状态保存;响应于导致从所述安全域转换到所述次安全域的第一异常,所述异常控制电路被配置为在触发所述处理电路执行所述次安全域中的异常处理程序之前,执行来自所述寄存器的第二子集的数据的附加状态保存,其中所述后台处理由所述处理电路在所述安全域中执行;并且响应于导致从所述安全域转换到所述次安全域的末尾连锁异常,所述异常控制电路被配置为触发所述处理电路在不执行所述附加状态保存的情况下,执行所述异常处理程序,所述末尾连锁异常在所述第一异常被处理之后并在返回后台处理之前被处理。...

【技术特征摘要】
【国外来华专利技术】2012.10.01 GB 1217531.1;2012.11.19 US 13/680,2981.一种数据处理装置,包括:处理电路,所述处理电路用于响应于程序代码而执行数据处理操作,所述处理电路包括用于控制异常处理的异常控制电路;多个寄存器,所述寄存器用于存储数据,所述寄存器包括寄存器的第一子集和寄存器的第二子集;以及数据存储设备,所述数据存储设备用于存储数据,所述数据存储设备包括多个区域,所述区域包括安全区域和次安全区域,其中所述安全区域用于存储当在安全域中操作时可被处理电路访问而当在次安全域中操作时不可被处理电路访问的数据;其中:响应于来自由所述处理电路执行的后台处理的最初异常,所述异常控制电路被配置为在触发所述处理电路执行对应于所述异常的异常处理程序之前,执行来自所述寄存器的第一子集的数据的状态保存,其中所述异常处理程序负责执行来自所述寄存器的第二子集的数据的状态保存;响应于导致从所述安全域转换到所述次安全域的第一异常,所述异常控制电路被配置为在触发所述处理电路执行所述次安全域中的异常处理程序之前,执行来自所述寄存器的第二子集的数据的附加状态保存,其中所述后台处理由所述处理电路在所述安全域中执行;并且响应于导致从所述安全域转换到所述次安全域的末尾连锁异常,所述异常控制电路被配置为触发所述处理电路在不执行所述附加状态保存的情况下,执行所述异常处理程序,所述末尾连锁异常在所述第一异常被处理之后并在返回后台处理之前被处理。2.如权利要求1所述的数据处理装置,其中响应于所述第一异常,所述异常控制电路被配置为在触发所述处理电路执行所述异常处理程序之前,清除所述寄存器的第一子集和所述寄存器的第二子集。3.如权利要求1和2中的任一项所述的数据处理装置,其中如果所述异常控制电路在触发所述处理电路执行所述异常处理程序之前已执行所述附加状态保存,则所述异常处理程序不执行所述寄存器的第二子集的状态保存。4.如权利要求1和2中的任一项所述的数据处理装置,其中如果所述异常控制电路在触发所述处理电路执行所述异常处理程序之前已执行所述附加状态保存,则所述异常处理程序也执行所述寄存器的第二子集的状态保存。5.如权利要求1所述的数据处理装置,其中所述第一异常包括所述最初异常。6.如权利要求1所述的数据处理装置,其中所述第一异常包括在所述最初异常被处理之后而返回所述后台处理之前被处理的末尾连锁异常。7.如权利要求1所述的数据处理装置,其中响应于导致从所述次安全域转换到所述安全域的末尾连锁异常,所述异常控制电路被配置为在不恢复在附加状态保存中被保存到所述寄存器的第二子集的数据的情况下,控制所述处理电路触发异常处理程序。8.如权利要求1所述的数据处理装置,其中当进入导致从所述安全域转换到所述次安全域的新异常时,所述异常控制电路被配置为基于状态保存状态值来确定是否在触发所述异常处理程序之前执行所述附加状态保存。9.如权利要求8所述的数据处理装置,其中所述状态保存状态值指示所述附加状态保存是否需要在处理所述次安全域中的末尾连锁异常之前被处理。10.如权利要求8和9中的任一项所述的数据处理装置,其中所述状态保存状态值指示在停止所述后台处理与进入所述新异常之间是否在所述次安全域中至少有一个异常已被处理。11.如权利要求10所述的数据处理装置,其中当进入所述新异常时,所述异常控制电路被配置为执行所述附加状态保存,如果:(a)所述后台处理在所述安全域中被执行;并且(b)所述状态保存状态值指示在停止所述后台处理与进入所述新异常之间在所述次安全域中没有异常已经被处理。12.如权利要求11所述的数据处理装置,其中所述异常控制电路被配置为设置指示所述后台处理是在所述安全域中还是在所述次安全域中被执行的安全性域值。13.如权利要求8所述的数据处理装置,其中所述异常控制电路被配置为在进入所述次安全域时将所述状态保存状态值设置为固定值,并在进入所述安全域时将所述状态保存状态值设置为可变值。14.如权利要求13所述的数据处理装置,其中当从所述次安全域中的异常返回时,所述异常控制电路被配置为检查所述状态保存状态值是否仍具有所述固定值,并且如果所述状态保存状态值不具有所述固定值,则触发错误。15.如权利要求8所述的数据处理装置,其中所述状态保存状态值具有可变值;并且当从所述次安全域中的异常返回时,所述异常控制电路被配置为与所述状态保存状态值无关来控制异常处理。16.如权利要求8所述的数据处理装置,其中所述状态保存状态值指示当在末尾连锁异常之间进行切换时,在域之间的最近转换是否是从所述次安全域到所述安全域。17.如权利要求8所述的数据处理装...

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

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

1