首页> 中国专利> 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置

用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置

摘要

本发明提供了一种用于在包括处理器和存储器管理单元的处理系统中控制安全和用户模式之间的语境切换的方法和安全模式控制器。该方法包括以下步骤:监控所述存储器管理单元以检测对包括安全模式入口指令的入口点地址的非缓存访问;响应于所述入口点地址的检测验证所述安全模式入口指令是由所述处理器执行的;以及响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。指令缓存和数据缓存的各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线。

著录项

  • 公开/公告号CN101438290A

    专利类型发明专利

  • 公开/公告日2009-05-20

    原文格式PDF

  • 申请/专利权人 联发科技股份有限公司;

    申请/专利号CN200780015842.2

  • 发明设计人 约尔格·C·施韦姆勒宁;

    申请日2007-05-01

  • 分类号G06F21/00;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人任默闻

  • 地址 台湾省新竹科学工业园区新竹市笃行一路一号

  • 入库时间 2023-12-17 21:57:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-10-05

    授权

    授权

  • 2009-07-15

    实质审查的生效

    实质审查的生效

  • 2009-05-20

    公开

    公开

说明书

技术领域

本发明涉及具有安全模式和用户模式的系统中的安全语境切换。具体地,本发明涉及用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置,其中对处理器和存储器系统几乎未进行改变。

背景技术

本申请要求2006年5月1日提交的临时申请号No.60/796,433的优先权,此处以引证的方式并入其全部内容。

片上系统(SOC)可包括具有数据缓存和指令缓存和虚拟寻址能力的处理器,例如单片机(MCU)。在一些应用中,片上系统可能需要在安全模式下操作。在处理器是工业标准设计的情况下,应在对处理器本身几乎不进行改变的条件下实现安全操作,由此避免对程序员的模型进行改变并确保二进制兼容性。

在这些条件下确保处理器的安全涉及控制用户模式和安全模式之间的转换。在用户模式中,不能访问各种安全资源和存储器区域。在安全模式中,可访问安全资源和存储器区域。在这些条件下确保处理器的安全意味着认为处理器所提供的保护状态对于系统的安全要求是不充分的。

由于认为处理器包括用于提供地址翻译的指令缓存和数据缓存以及存储器管理单元,因此对状态转换的控制还要求应对地址翻译逻辑的误用的措施。存储器管理单元、以及其中配置了虚拟到物理映射的翻译表条目被认为是非安全资源。

因此,在包括处理器和存储器管理单元的处理系统中需要用于控制用户模式和安全模式之间的语境切换的方法和装置。

发明内容

根据本发明的第一个方面,提供了一种用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法。该方法包括以下步骤:监控所述存储器管理单元以检测对包括安全模式入口指令的入口点地址的非缓存访问;响应于所述入口点地址的检测验证所述安全模式入口指令是由所述处理器执行的;以及响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。

所述处理系统还可包括指令缓存、数据缓存、或其两者。各个缓存包括多条缓存线,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线。所述方法还可包括根据操作模式和缓存的被访问的线中的安全位的状态而控制对各个缓存的缓存线的访问。

根据本发明的第二个方面,提供了一种用于在包括处理器和存储器管理单元的处理系统中控制用户模式和安全模式之间的语境切换的安全模式控制器。该安全模式控制器包括:地址跟踪单元,其被配置为通过所述存储器管理单元检测对包含安全模式入口指令的入口点地址的非缓存访问,以及响应于所述入口点地址的检测来提供所述安全模式入口指令是由所述处理器执行的验证;以及安全状态机,其被配置为响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。

根据本发明的第三个方面,提供了一种用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法。该方法包括以下步骤:定义包含安全模式入口指令的入口点地址;在所述虚拟存储器管理单元的物理指令地址总线上检测所述入口点地址;存储与所述物理入口点地址相对应的虚拟入口点地址;将所述处理器的执行阶段地址与所存储的虚拟入口点地址进行比较;以及如果所述执行阶段地址与所述虚拟入口点地址匹配,则启动从所述用户模式到所述安全模式的语境切换。

附图说明

为了更好地理解本发明,描述了以引证的方式在此并入的附图,在附图中:

图1是根据本发明实施方式的包括控制用户模式和安全模式之间的语境切换的系统的框图;

图2是根据本发明实施方式的控制用户模式和安全模式之间的语境切换的过程的流程图;

图3是示出了图1的安全状态机的状态的状态图;以及

图4是根据本发明实施方式的用于控制缓存访问的逻辑的示意性框图。

具体实施方式

处理系统可在单一芯片上或在集成电路上实现,并通常被称为片上系统(SOC)。处理系统可包括处理器、指令缓存、数据缓存、以及虚拟存储器管理单元(MMU)。存储器管理单元可通过接口连接到虚拟指令地址总线、虚拟数据地址总线、物理指令地址总线和物理数据地址总线。处理系统还可包括片上存储器、外部接口以及其他片上资源。

处理系统的地址空间中的物理地址(被称为“入口点地址”)专用作到安全状态的入口点。只要假设入口点地址的内容(即安全模式入口指令)固定于硬件(例如ROM)中或不能由用户状态中所执行的代码改变,该入口点地址就可位于处理器存储器空间中的任意位置。从程序员的观点考虑,无论何时处理器的指令控制流重新指向入口点地址,则进入安全状态。安全状态与安全操作模式或安全模式相对应,并且用户状态与用户操作模式或用户模式(非安全模式)相对应。

可通过以下方式控制到安全模式的转换。当无论何时物理指令地址总线上的监控逻辑检测到入口点地址时,存储处理器的读取阶段的相应虚拟入口点地址,并且设定所述地址的有效标记。并行地,将虚拟入口点地址提供给用于产生处理器的执行阶段的虚拟指令地址的流水线跟随器。将执行阶段地址和所存储的虚拟入口点地址进行比较,并考虑有效标记。

如果入口点地址处存储的指令进入处理器流水线并到达执行阶段,来自水线跟随器的执行阶段地址与所存储的虚拟入口点地址匹配。如果有效标记也设定在此处,则模式切换到安全状态,或者,切换到某种在前的特权状态,例如激活入口状态。流水线跟随器可考虑来自处理器的附加信息,例如“指令被执行”标记。这将确保仅在安全模式入口指令由处理器执行时发生到安全状态的语境切换。

在从用户模式转换到安全模式或任何在前的特权状态之后,自动地清除有效标记。如果处理器异常结束或在读取阶段和执行阶段之间中断,也可能需要清除有效标记。因此,仅仅是产生安全模式入口指令的物理地址和虚拟地址的指令访问序列触发了到安全模式的状态转换。在缓存了指令流的情况下,仅在如果从存储器读取与入口点地址相对应的缓存线时,发生状态转换。如果安全模式入口指令已经存在于指令缓存中,则阻挡状态转换。此操作是基于存储器管理单元和翻译表是非安全资源的假设。由此,非安全代码可以预设与任意虚拟地址(例如入口点地址)相对应的缓存线,或者将所存储的入口点地址重新指向非安全物理地址。

下面参照图1,示出了根据本发明实施方式的处理系统10的框图。处理系统10包括通过虚拟指令地址总线16和虚拟数据地址总线18耦合到存储器管理单元(MMU)14的核心处理器12。核心处理器12可以是单片机(MCU)、微处理器、或任何其他数字处理器。当使用虚拟寻址时,存储器管理单元14可包括虚拟到物理地址翻译表。存储器管理单元14的输出耦合到物理指令地址总线20和物理数据地址总线22。在不使用虚拟寻址的实施方式中,存储器管理单元14可以是常规的存储器控制器。

处理系统10还包括耦合到虚拟指令地址总线16的指令缓存(I缓存)30和耦合到虚拟数据地址总线18的数据缓存(D缓存)32。如本领域公知的,指令缓存30和数据缓存32是相对较小且高速的存储器,其利用经常作为存储器访问模式的特性的空间和/或时间局部性的优势以增强处理器性能。指令缓存控制器34控制指令缓存30,而数据缓存控制器36控制数据缓存32。指令缓存30、指令缓存控制器34、数据缓存32以及数据缓存控制器36可根据以下描述的本发明的方面进行修改。

存储器管理单元14在虚拟指令地址总线16上接收虚拟指令地址,并在物理指令地址总线20上输出物理指令地址。存储器管理单元14还在虚拟数据地址总线18上接收虚拟数据地址,并在物理数据地址总线22上输出物理数据地址。物理指令地址总线20和物理数据地址总线22耦合到非安全(用户)存储器40、安全存储器42以及安全资源44。非安全存储器40和安全存储器42可以是不同的存储器或可以是同一存储器的不同区域。安全存储器42和安全资源44是处理系统10的片上组件。非安全存储器40可以是片上、片下、或片上和片下的组合。在一些实施方式中,安全存储器42是专用存储器地址空间,即处理器的存储器地址空间的子集。

处理系统10还包括用于控制用户模式和安全模式之间的语境切换的安全模式控制器60。安全模式控制器60包括如下所述的用于监控核心处理器12和存储器管理单元14的操作的地址跟踪单元62,以及用于定义处理系统的操作模式的安全状态机64。地址跟踪单元62监控虚拟指令地址总线16和物理指令地址总线20,并从处理器12接收允许监控处理器12中的流水线操作的处理器状态信号66。安全状态机64包括包含处理系统10的当前操作模式的安全模式寄存器68。如下所述,安全状态机64的安全模式输出70允许访问安全存储器42和安全资源44,并控制访问指令缓存30和数据缓存32。安全模式控制器60还包括用于定义安全模式控制器60的操作参数的一个或更多个配置寄存器(未示出)。

为了允许在安全模式和用户模式下对指令缓存30和数据缓存32进行有效访问,在指令缓存30和数据缓存32的各条缓存线中提供标志扩展。标志扩展指示缓存线是安全的还是非安全的,并用于各个缓存的操作。下面描述标志扩展的操作。

图2示出了根据本发明实施方式的由安全模式控制器60进行的操作的流程图。如上所述,入口点地址被指定为安全模式入口指令的地址。在物理指令地址总线20上检测到入口点地址指示进入安全模式的尝试。在步骤100,地址跟踪单元62监控物理指令地址总线20。当在地址总线20上检测到物理入口点地址时,在虚拟指令地址总线16上检测到相应的虚拟入口点地址,并且在步骤102存储该虚拟入口点地址。由此知道了与物理入口点地址相对应的虚拟入口点地址。另外,在步骤102设定与虚拟入口点地址相关的有效标记。在步骤104,通过监控处理器状态线66来通过处理器12的流水线跟踪虚拟入口点地址。根据处理器流水线的深度和可能发生的任何流水线停顿,可确定虚拟入口点地址应当何时到达流水线的执行阶段。在步骤106,将执行阶段地址与所存储的虚拟入口点地址进行比较。如果地址匹配,在步骤108测试有效标记。如果也设定了有效标记,在步骤110启动到安全模式的语境切换,并且在步骤112清除有效标记。

图2的实施方式要求:(1)经由物理指令地址总线20对存储器中的入口点地址进行非缓存访问,以及(2)处理器12在入口点地址处实际执行安全模式入口指令。由此,如果安全模式入口指令位于指令缓存30中并且在物理指令地址总线20上未检测到入口点地址,则在步骤100阻挡到安全模式的语境切换。此外,如果执行阶段地址与所存储的虚拟入口点地址不匹配(步骤106)或者如果当安全模式入口指令到达处理器的执行阶段时未设定有效标记(步骤108),则阻挡到安全模式的语境切换。

图3示出了安全状态机64的状态。当前状态定义了执行代码的访问特权。如上所述,通过(1)将经认证的代码写入到安全模式寄存器68,或(2)安全模式控制器60识别出处理器指令流流进或流出安全程序空间,来触发状态转换。通过触发的组合硬件/软件途径使得安全入口处理程序能够在启动安全模式之前检查系统完整性。

在成功认证之后,引导-ROM移交对具有安全初始化特权的引导程序的控制。该代码负责初始化安全系统并且由此具有配置安全资料和访问任何片上机密的特权。

参照图3,描述了从处理器角度的各个状态的访问资料。在安全初始化状态150中,所有内部系统RAM是可用的,并且没有限制。可访问所有受保护的数据条目,其中可包括用于存储私用数据的熔断器或其他设备。安全配置寄存器和安全模式寄存器68是可写入访问的。安全模式控制器60被禁止并且不跟踪处理器指令。向安全模式寄存器68写入“0”的操作将转换到用户模式152。

在用户模式152中,不可访问任何受保护的条目。如果已配置了安全RAM片段,则不可访问安全系统RAM片段。安全配置寄存器和安全模式寄存器68是只读的。安全程序空间的入口页是可读和可执行的。如果执行了安全模式入口指令,则安全模式控制器60可启动到安全模式的语境切换。如果进行了配置,则任何对缓存的处理器访问仅命中非安全标志条目。安全侵害可触发异常或复位。

安全模式入口状态154与用户模式相同,但安全模式寄存器68是可写入访问的。如果进行了配置,则任何对缓存的处理器指令访问仅命中安全标志条目。向安全模式寄存器68写入“1”的操作将启动安全模式。

在安全模式156中,所有内部系统RAM是可用的。可访问所有受保护的条目。安全配置寄存器和安全模式寄存器68是可写入访问的。仅仅如果安全程序存储器被明确激活为可写入访问时,才可对其进行重写。对写保护的侵害可触发异常或复位。执行安全程序空间之外的代码可触发异常或复位。如果进行了配置,则任何对缓存的处理器访问仅命中安全标志条目。向安全模式寄存器68写入“0”的操作将转换到安全退出状态158。

在安全退出状态158中,处理器具有与在用户模式152中相同的特权,并且不能访问安全存储器。如果执行了安全程序存储器之外的代码,则状态机切换到用户模式152。

如以上所指出的,指令缓存30和数据缓存32可被配置用于用户模式和安全模式中的有效操作。如同常规技术中的那样,各条缓存线包括标志和数据。图4示意性示出了指令缓存30的单一标志200和数据缓存32的单一标志202。可理解的是各个缓存包括多条缓存线,其中缓存线的数量取决于缓存容量。如图4所示,指令缓存标志200包括安全位210,并且数据缓存标志202包括安全位212。安全位210和212将各个缓存中的各条缓存线标识为安全的或非安全的。可在安全模式中的线填充操作中设定指令缓存30或数据缓存32的特定线的安全位。用户模式中的线填充操作不设定安全位。在用户模式和安全模式中的操作中使用安全位,以确定是否允许对缓存线的访问。

在用户模式中,当安全位清除时处理器12可访问指令缓存30或数据缓存32中的任何缓存线,但对设定了安全位的缓存线的访问被阻挡。在用户模式中缓存丢失的情况下,可用另一非安全缓存线替代已清除了安全位的缓存线。在用户模式中,即使不能在用户模式中读取缓存线,设定了“重写”位的安全缓存线也可写入到安全存储器空间。重写位指示所述缓存线已被修改。

在安全模式中,处理器12可访问指令缓存30或数据缓存32中的设定了安全位的任何缓存线。在缓存丢失的情况下,用来自存储器的另一缓存线替代缓存线,并且设定安全位。被替代的缓存线可以是安全缓存线或非安全缓存线。在安全模式中,处理器12被阻止访问指令缓存30中的任何非安全缓存线。由此,处理器12不能访问非安全指令。对非安全数据的访问取决于安全模式控制器60的配置。在一个实施方式中,处理器12被阻止访问数据缓存32中的非安全数据。在另一实施方式中,处理器12被允许访问数据缓存32中的非安全数据,并且在相应的数据缓存32线中未设定安全位。在该实施方式中,在安全模式中有效地忽略数据缓存32中的安全位。

再次参照图4,基于WB缓存线驱逐信号,逻辑门220允许在用户模式下向安全存储器空间回写安全数据缓存线。响应于非安全D-访问信号,为了在安全模式下的非安全数据访问,逻辑门230和232允许安全位超驰(override)。响应于非安全I维护信号,在由处理器12进行的非安全维护操作中,逻辑门240和242允许指令缓存30中的安全位超驰。

如果缓存了指令流,则由上述过程在与入口点地址相对应的初始缓存线填充中控制到安全模式的状态转换。所有随后的指令缓存命中考虑到安全状态,并将仅产生先前在安全状态下读取的指令缓存线。由此,在安全状态下成功地执行入口点缓存线之后,非安全用户代码不能预设缓存线。

一旦在安全模式中,所有指令或数据缓存访问都考虑到安全状态。这意味着在缓存丢失的情况下,缓存线被标记为安全的,并且仅仅安全缓存线产生缓存命中。由于这样将保持安全状态中读取的缓存数据的完整性和保密性,所以在安全状态和非安全状态之间的语境切换中不需要缓存维护操作。这样改善了要求这种完整性和保密性的应用程序的性能。

如果缓存了数据,安全模式为缓存逻辑定义附加的命中标准。该命中标准不是基于安全状态顶部的地址映射,这将要求对存储器管理单元14进行修改。这意味着需要用于将数据引入安全状态的机制以避免可能导致性能损失的诸如清空缓存线或整个数据缓存的缓存维护操作。该机制是配置控制位允许在缓存的数据访问上盖写(overwrite)安全状态。

在离开安全模式之后,在缓存配置中,在入口点地址开始的代码仍驻留在指令缓存中。结果,如果没有附加措施则不能够重新进入安全状态。具体地,附加的控制位将允许盖写安全状态以进行指令缓存维护操作。由此,启动入口点之后的代码以执行清空入口点缓存线的缓存维护操作。

至此已描述了本发明的至少一个实施方式的多个方面,可理解的是各种替换、修改、以及改进对于本领域技术人员是明显的。这种替换、修改、以及改进旨在成为本公开的一部分,并且旨在落入本发明的精神和范围内。因此,上述说明和附图仅作为示例来描述。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号