用于在数据处理器的不同操作域之间切换的安全机制的制作方法_3

文档序号:8435869阅读:来源:国知局
换至与存储所述程序指令 的所述数据存储器的所述区域对应的域;及
[0064] 若所述程序指令不包括所述防护指令,则产生安全违规指示。
[0065] 本发明的第三方面提供一种数据处理设备,该设备包括:
[0066] 处理装置,用于响应于程序指令而执行数据处理操作,所述处理装置具有多个具 有不同安全等级的操作域,所述操作域包括安全域及另一不同安全域,其中,当在所述安全 域中操作时,所述处理装置能够存取在所述另一不同安全域内无法存取的至少一些数据; [0067] 数据存储装置,用于存储数据及指令,所述数据存储装置包括多个区域,每一区域 与所述多个操作域中的一个对应,并且所述数据存储装置包括至少一个安全区域和安全性 较低的区域,所述至少一个安全区域用于存储敏感数据,所述敏感数据能够由在所述安全 域内操作的所述数据处理装置所存取,但无法由在所述另一不同安全域内操作的所述数据 处理装置所存取,所述安全性较低的区域用于存储敏感性较低的数据;
[0068] 所述处理装置用于:
[0069] 针对待执行的程序指令,验证存储所述程序指令的所述数据存储装置的区域与所 述处理装置的当前操作域对应;及
[0070] 响应于侦测到所述程序指令存储在所述数据存储装置的与所述处理装置的当前 操作域不对应的区域中;
[0071] 验证所述程序指令包括防护指令;及
[0072] 若所述程序指令包括所述防护指令,则将所述操作域切换至与存储所述程序指令 的所述数据存储装置的所述区域对应的域;及
[0073] 若所述程序指令不包括所述防护指令,则产生安全违规指示。
【附图说明】
[0074] 本发明将仅以实例的方式通过参考附图所示的本发明实施例而进行进一步描述, 其中:
[0075] 图1示出表明在现有技术中切换域的指令流;
[0076] 图2示出根据本发明实施例的数据处理设备;
[0077] 图3示出处理域的三种不同安全等级;
[0078] 图4示出根据本发明实施例的内存保护单元;
[0079] 图5示出根据本发明实施例的内存地址空间的分段;
[0080] 图6示出指令如何可与具有多种长度的指令失准;
[0081] 图7示出了在公共域及私用域中执行,并在该两者之间切换的代码;
[0082] 图8示出表示根据本发明实施例的方法中的步骤的流程图;
[0083] 图9示出不同操作域的实例;及
[0084] 图10示出表示内存属性检查流程的流程图。
【具体实施方式】
[0085] 图2示出了根据本发明实施例的数据处理设备10,该数据处理设备例如可以为微 控制器。该数据处理设备包括用于处理指令的处理电路20及用于存储由处理电路20处理 的数据并且也用于存储处理电路20执行的程序代码的数据存储器30。
[0086] 程序代码可为已编译码,或程序代码可为由编译程序(未示出)在处理设备上编 译的代码。程序代码由程序指令形成,该程序指令控制处理电路20以执行不同任务。
[0087] 在此实施例中,处理电路20采用管线形式,该管线具有指令提取阶段22、指令译 码阶段24及指令运行时间26。如将理解,此图为简化视图,且可能存在进一步的阶段,诸 如,寄存器更名阶段。处理电路将具有操作域,该操作域为安全域的域或安全性较低的域, 在此实施例中,这通常由存储有正在被执行的代码的数据存储器区域的安全等级而确定。 [0088] 数据存储器30具有两个具有不同安全性的区域,即安全区域32及安全性较低的 区域34。当正在执行存储在安全性较低的区域34中的代码时,存储在安全性较低的区域 34中的代码无法存取存储在安全区域32中的数据。然而,当处理电路20在安全性较低的 域中操作时,安全区域32中所存储的指令则可由处理电路20的提取阶段22被提取,因为 指令对软件不可见,因此,允许跨域存取指令。
[0089] 尽管数据存储器示出为单个块,但在众多情况下,数据存储器由具有不同阶层的 多种类型的数据存储器形成,例如,不同等级的高速缓存及主存储器。这些存储器中的每一 个将在安全区域或安全性较低的区域中存储数据。
[0090] 数据处理设备10亦具有内存保护单元MPU40,该内存保护单元MPU40控制该段 的存取许可。尽管此控制可如图所示经由中央内存保护单元来完成,但在其他实施例中,此 控制可通过处理设备内的电路而以更为分散的方式来完成,该电路监视存储有当前正在被 执行的代码的区域,及依据此监视而控制对内存的不同区域的存取。
[0091] 在此实施例中,MPU具有两个区段,一个区段控制对存储在数据存储器30中的指 令的存取,一个区段控制对数据的存取。如前所述,从正在安全性较低的域中执行的处理电 路对存储在安全部分中的指令进行指令提取是允许的。
[0092] 在此实施例中,有寄存器组50,该寄存器组50具有数据处理期间使用的通用寄存 器。这些通用寄存器包括程序计数器PC以及例如用于存储分支指令的返回地址的链接寄 存器的具有特定功能的其他寄存器,其中,该程序计数器PC指示哪一指令为下一待执行的 指令。
[0093] 寄存器组50中亦有数据寄存器以用于存储正在被处理的数据值。或者,在一些实 施例中,寄存器并非用于存储数据值,且值被存储在堆栈上并经由存储在寄存器之一中的 堆栈指针间接存取。此举显著节省面积,但却影响性能。
[0094] 如前所述,在此实施例中,处理电路20执行所在的域通常根据存储有当前正在被 执行的代码的区域确定。由此,存储在安全数据存储器32中的安全程序代码通常在安全域 中被执行。执行域由处理电路20所设定的域标志44所指示,并由MPU40所存取以确定存 取许可。
[0095]当处理电路20提取指令以用于执行,且域标志指示该指令来自并非处理电路当 前执行所在的域时,处理电路20将执行检查以验证该指令是否为防护指令。处理电路将通 过对比防护指令的已知操作码检查此被提取指令的操作码来执行此检查。如若此指令为防 护指令,此指令然后将经译码及执行,且此指令将控制处理电路以更新域标志44,以将域切 换至与从其提取该防护指令的内存区域对应的域。由此,例如在处理电路20当前正在安全 性较低的域中操作且一分支经执行使得防护指令自内存的安全区域32中被提取时,处理 电路将切换为在该安全域中执行。
[0096] 防护指令位于进入安全区域的允许登录点,且在防护指令之后被执行的代码可包 括安全检查例程以验证对安全域的调用是否有效,此验证可涉及检查密码,或检查所提供 的其他函数自变量的有效性。
[0097] 如若所提取的指令并非防护指令且来自具有不同于当前操作域的域的安全区域, 则将产生安全违规指示。此过程的形式可以为产生异常,然后执行故障处理例程。
[0098] 图3非常示意性地示出三个处理域,即安全性最低的域、安全域以及安全性最高 的域。在这些域的每一个中,执行程序代码及可依据域而从数据存储器存取不同等级的安 全数据。对数据的存取许可是依据执行域的安全等级及存储该数据的内存区域的安全等级 而给予。在此实施例中,任何域间切换皆经由防护指令而得以执行,该防护指令在此实例中 示出为PG。尽管在一些情况下,仅在从安全性较低的域切换至安全性较高的域时需要防护 指令,但如果对称执行此切换需求使得自安全性较高的区域到达安全性较低的区域时也通 过防护指令执行转换而实现系统则更有效。由此,当调用位于不同安全域中的例程时,通过 提取位于该例程头部的防护指令即完成此调用。
[0099] 应注意,尽管在此实施例中,该三个域如图所示具有不同的安全等级,但在一些实 施例中,这些域中至少两个域可以为具有相同安全等级但彼此隔离的同级域。由此,安全域 及安全性最高的域实际上可为安全1及安全2,在这两个安全域内的处理操作可存取安全 性最低的内存区域中的数据及存取与它们自身的域对应的内存安全区域,但无法存取它们 的同级域。
[0100] 图4更详尽地示出图2的内存保护单元40。内存保护单元MPU40控制自处理电 路20对数据存储器30的存取,及确保仅有具有适当属性的数据存储器30的区域可经存 取。
[0101] 在此实施例中,数据存取及指令存取在不同端口处接收,并可被并行处理。比较器 41及42分别将数据存取地址及指令存取与自配置寄存器43检索的区域地址进行比较。配 置寄存器43存储数据存储器30的不同区域的细节。亦即它们存储区域地址、区域大小及 区域属性。这些属性将指示安全等级或区域,不管区域是只读区域还是只写区域,及其他此 类事项。因此,一旦比较器已确定存取指向哪一内存区域,属性检查块45将使用配置寄存 器43中所存储的该区域的属性以确定是否允许该存取。属性检查块45可存取域标志44, 使得它们在确定是否应允许存取时可确定处理电路20的当前操作域的安全等级。如若数 据存取被确定为有效存取,则内存可被存取,如若并非有效存取,将产生故障。
[0102] 就此而言,当对处于一内存区域内的指令进行指令存取且该区域与由域标志44 所指示的域不对应时,属性检查则将确定此存取,并在返回此指令时通过信号将此存取发 送至处理电路20。
[0103] 处理电路响应于此信号将检查已返回的指令是否为防护指令。如若该指令是防护 指令,则域标志44将经更新至与从其提取该指令的数据存储器30的区域的域对应的域;如 若该指令不是防护指令,则由处理电路20产生安全违规指示。
[0104] 由于域间切换仅在侦测到防护指令时被允许,因此务必不得存在可会被分支到仿 真此防护指令的疏忽编码。在仅有一指令大小且因此可足以简化的指令集中具有防护指令 的唯一操作码,该唯一操作码不由任何其他指令所使用。然而
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1