[发明专利]数据处理装置和数据处理方法有效
申请号: | 201380049898.5 | 申请日: | 2013-08-07 |
公开(公告)号: | CN104685508B | 公开(公告)日: | 2017-09-29 |
发明(设计)人: | 托马斯·克里斯托弗·乔洛卡特 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F9/38;G06F9/46;G06F9/48 |
代理公司: | 北京东方亿思知识产权代理有限责任公司11258 | 代理人: | 李晓冬 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 全域 数据处理 装置 中的 异常 处理 | ||
技术领域
本发明涉及数据处理领域,并且特别涉及具有安全域和次安全域的数据处理。
背景技术
很多数据处理系统及架构提供了隔离并保护敏感数据和代码部分不被无权的人或进程访问的方法。虽然能够提供安全是重要的,但是在与该保护相关联的性能和电路面积中存在开销。
在诸如微控制器之类的小型系统中,将这些开销保持较低是非常重要的,从而可能需要在安全等级与性能之间做出折衷。
英国剑桥的用其Trustzone结构提供了保持数据和代码安全的一个方法,其中存在安全状态和非安全状态,并且软件处理器被用于在状态之间进行转换,该软件处理器保护安全侧的安全。虽然该方法提供了很高的安全度,但是需要以软件处理器形式的相当大的软件干预来改变安全状态,这既降低了系统的性能,又增加了为安全软件开发外部应用程序接口API所需的工作量,因为所有通话必须通过软件处理器来代理。类似地,虽然在安全域中发生但需要在非安全域中处理的异常也需要通过安全异常处理器来代理,这允许安全状态在控制转到非安全异常处理器之前得到保护。
发明内容
从第一方面来看,本发明提供了一种数据处理装置,包括:
处理电路,用于响应于程序代码而执行数据处理操作,处理电路包括用于控制异常处理的异常控制电路;
多个寄存器,用于存储数据,寄存器包括寄存器的第一子集和寄存器的第二子集;以及
数据存储设备,用于存储数据,数据存储设备包括多个区域,区域包括安全区域和次安全区域,其中安全区域用于存储当在安全域中操作时可被处理电路访问而当在次安全域中操作时不可被处理电路访问的数据;其中:
响应于来自由处理电路执行的后台处理的最初异常,异常控制电路被配置为在触发处理电路执行对应于异常的异常处理程序之前,执行来自寄存器的第一子集的数据的状态保存,其中异常处理程序负责执行来自寄存器的第二子集的数据的状态保存;
响应于导致从安全域转换到次安全域的第一异常,异常控制电路被配置为在触发处理电路执行次安全域中的异常处理程序之前,执行来自寄存器的第二子集的数据的附加状态保存,其中后台处理由处理电路在安全域中执行;并且
响应于导致从安全域转换到次安全域的末尾连锁异常,异常控制电路被配置为触发处理电路在不执行附加状态保存的情况下,执行异常处理程序,末尾连锁异常在第一异常被处理之后并在返回后台处理之前被处理。
当在后台处理期间发生异常时,后台处理可将数据值放置于寄存器中,从而允许这些数据值在异常结束时被保留及恢复,该系统可执行对数据的从寄存器到数据存储设备的状态保存。如上所述,对于一些系统,在所获得的安全性等级和处理性能之间获得折衷是重要的。当响应于异常而执行状态保存时也是如此。
由于性能原因,在第一子集和第二子集中执行对寄存器中的数据的状态保存可能是有用的。对来自第一子集的数据的状态保存可由硬件中的异常控制电路在触发异常处理程序之前执行。相反,异常处理程序(即,软件)可负责执行对来自寄存器的第二子集的数据的状态保存。
但是,从安全性角度来看,寄存器的第二子集的状态保存在异常处理程序的控制之下有时可能是有问题的。如果在安全域中执行的后台处理之后,异常导致从安全域转换到次安全域,则次安全异常处理程序可通过安全后台代码获取对位于寄存器的第二子集中的安全数据的访问。
为了防止该安全性破坏,如果在后台处理在安全域的情况下,发生导致从安全域转换到次安全域的第一异常,则异常控制电路在触发次安全域中的异常处理程序之前,执行对来自寄存器的第二子集的数据的附加状态保存。通过提供用于将寄存器的第二子集的状态保存在硬件中的机制,次安全异常处理软件不必执行可能包含安全数据的寄存器第二子集的状态保存。
但是,在硬件中执行附加状态保存导致在开始异常处理程序之前的更长延迟。在先前异常结束的时刻,可能有另一异常等待处理。在这种情况下,处理电路在返回后台处理之前服务另一异常,该后台处理在先前异常之前正在被执行。这种情况被称为“末尾连锁”,并且另一异常被称为“末尾连锁”异常。在后台处理在安全域的情况下,为了降低附加状态保存的性能影响,对于导致从安全域转换到次安全域的第一异常执行附加状态保存。对于导致从安全域转换到次安全域的后续末尾连锁异常,不需要重复附加状态保存,因为后台处理所需的数据值已响应于第一异常而被保存。因此,在很多情况下,可在不执行附加状态保存的情况下,触发末尾连锁异常的异常处理程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380049898.5/2.html,转载请声明来源钻瓜专利网。