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

文档序号:6454696阅读:168来源:国知局
专利名称:用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置的制作方法
技术领域
本发明涉及具有安全模式和用户模式的系统中的安全语境切换。具体地, 本发明涉及用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方 法和装置,其中对处理器和存储器系统几乎未进行改变。
背景技术
本申请要求2006年5月1日提交的临时申请号No.60〃96,433的优先权, 此处以引证的方式并入其全部内容。
片上系统(SOC)可包括具有数据缓存和指令缓存和虚拟寻址能力的处 理器,例如单片机(MCU)。在一些应用中,片上系统可能需要在安全模式下 操作。在处理器是工业标准设计的情况下,应在对处理器本身几乎不进行改 变的条件下实现安全操作,由此避免对程序员的模型进行改变并确保二进制 兼容性。
在这些条件下确保处理器的安全涉及控制用户模式和安全模式之间的转 换。在用户模式中,不能访问各种安全资源和存储器区域。在安全模式中, 可访问安全资源和存储器区域。在这些条件下确保处理器的安全意味着认为 处理器所提供的保护状态对于系统的安全要求是不充分的。
由于认为处理器包括用于提供地址翻译的指令缓存和数据缓存以及存储 器管理单元,因此对状态转换的控制还要求应对地址翻译逻辑的误用的措施。 存储器管理单元、以及其中配置了虚拟到物理映射的翻译表条目被认为是非 安全资源。
因此,在包括处理器和存储器管理单元的处理系统中需要用于控制用户 模式和安全模式之间的语境切换的方法和装置。

发明内容
根据本发明的第一个方面,提供了一种用于在包括处理器和存储器管理 单元的处理系统中控制安全模式和用户模式之间的语境切换的方法。该方法 包括以下步骤监控所述存储器管理单元以检测对包括安全模式入口指令的 入口点地址的非缓存访问;响应于所述入口点地址的检测验证所述安全模式 入口指令是由所述处理器执行的;以及响应于验证所述安全模式入口指令是 由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。
所述处理系统还可包括指令缓存、数据缓存、或其两者。各个缓存包括 多条缓存线,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全 缓存线。所述方法还可包括根据操作模式和缓存的被访问的线中的安全位的 状态而控制对各个缓存的缓存线的访问。
根据本发明的第二个方面,提供了一种用于在包括处理器和存储器管理 单元的处理系统中控制用户模式和安全模式之间的语境切换的安全模式控制 器。该安全模式控制器包括地址跟踪单元,其被配置为通过所述存储器管 理单元检测对包含安全模式入口指令的入口点地址的非缓存访问,以及响应 于所述入口点地址的检测来提供所述安全模式入口指令是由所述处理器执行 的验证;以及安全状态机,其被配置为响应于验证所述安全模式入口指令是 由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。 根据本发明的第三个方面,提供了一种用于在包括处理器、虚拟存储器
管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之 间的语境切换的方法。该方法包括以下步骤定义包含安全模式入口指令的
入口点地址;在所述虚拟存储器管理单元的物理指令地址总线上检测所述入 口点地址;存储与所述物理入口点地址相对应的虚拟入口点地址;将所述处
理器的执行阶段地址与所存储的虚拟入口点地址进行比较;以及如果所述执
行阶段地址与所述虚拟入口点地址匹配,则启动从所述用户模式到所述安全
模式的语境切换。


为了更好地理解本发明,描述了以引证的方式在此并入的附图,在附图中 图1是根据本发明实施方式的包括控制用户模式和安全模式之间的语境
切换的系统的框图2是根据本发明实施方式的控制用户模式和安全模式之间的语境切换
的过程的流程图3是示出了图1的安全状态机的状态的状态图;以及 图4是根据本发明实施方式的用于控制缓存访问的逻辑的示意性框图。
具体实施例方式
处理系统可在单一芯片上或在集成电路上实现,并通常被称为片上系统 (SOC)。处理系统可包括处理器、指令缓存、数据缓存、以及虚拟存储器管 理单元(MMU)。存储器管理单元可通过接口连接到虚拟指令地址总线、虚 拟数据地址总线、物理指令地址总线和物理数据地址总线。处理系统还可包 括片上存储器、外部接口以及其他片上资源。
处理系统的地址空间中的物理地址(被称为"入口点地址")专用作到安 全状态的入口点。只要假设入口点地址的内容(即安全模式入口指令)固定 于硬件(例如ROM)中或不能由用户状态中所执行的代码改变,该入口点地 址就可位于处理器存储器空间中的任意位置。从程序员的观点考虑,无论何 时处理器的指令控制流重新指向入口点地址,则进入安全状态。安全状态与 安全操作模式或安全模式相对应,并且用户状态与用户操作模式或用户模式 (非安全模式)相对应。
可通过以下方式控制到安全模式的转换。当无论何时物理指令地址总线 上的监控逻辑检测到入口点地址时,存储处理器的读取阶段的相应虚拟入口 点地址,并且设定所述地址的有效标记。并行地,将虚拟入口点地址提供给 用于产生处理器的执行阶段的虚拟指令地址的流水线跟随器。将执行阶段地址和所存储的虚拟入口点地址进行比较,并考虑有效标记。
如果入口点地址处存储的指令进入处理器流水线并到达执行阶段,来自 水线跟随器的执行阶段地址与所存储的虚拟入口点地址匹配。如果有效标记 也设定在此处,则模式切换到安全状态,或者,切换到某种在前的特权状态, 例如激活入口状态。流水线跟随器可考虑来自处理器的附加信息,例如"指 令被执行"标记。这将确保仅在安全模式入口指令由处理器执行时发生到安 全状态的语境切换。
在从用户模式转换到安全模式或任何在前的特权状态之后,自动地清除 有效标记。如果处理器异常结束或在读取阶段和执行阶段之间中断,也可能 需要清除有效标记。因此,仅仅是产生安全模式入口指令的物理地址和虚拟 地址的指令访问序列触发了到安全模式的状态转换。在缓存了指令流的情况 下,仅在如果从存储器读取与入口点地址相对应的缓存线时,发生状态转换。 如果安全模式入口指令已经存在于指令缓存中,则阻挡状态转换。此操作是 基于存储器管理单元和翻译表是非安全资源的假设。由此,非安全代码可以 预设与任意虚拟地址(例如入口点地址)相对应的缓存线,或者将所存储的 入口点地址重新指向非安全物理地址。
下面参照图1,示出了根据本发明实施方式的处理系统10的框图。处理 系统IO包括通过虚拟指令地址总线16和虚拟数据地址总线18耦合到存储器 管理单元(MMU)14的核心处理器12。核心处理器12可以是单片机(MCU)、 微处理器、或任何其他数字处理器。当使用虚拟寻址时,存储器管理单元14 可包括虚拟到物理地址翻译表。存储器管理单元14的输出耦合到物理指令地 址总线20和物理数据地址总线22。在不使用虚拟寻址的实施方式中,存储器 管理单元14可以是常规的存储器控制器。
处理系统IO还包括耦合到虚拟指令地址总线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上未检测到入口点地址,则在步骤IOO阻挡到安全模式的语 境切换。此外,如果执行阶段地址与所存储的虚拟入口点地址不匹配(歩骤 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)安全状态。
在离开安全模式之后,在缓存配置中,在入口点地址开始的代码仍驻留 在指令缓存中。结果,如果没有附加措施则不能够重新进入安全状态。具体 地,附加的控制位将允许盖写安全状态以进行指令缓存维护操作。由此,启 动入口点之后的代码以执行清空入口点缓存线的缓存维护操作。
至此已描述了本发明的至少一个实施方式的多个方面,可理解的是各种 替换、修改、以及改进对于本领域技术人员是明显的。这种替换、修改、以 及改进旨在成为本公开的一部分,并且旨在落入本发明的精神和范围内。因 此,上述说明和附图仅作为示例来描述。
权利要求
1、一种用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,该方法包括以下步骤监控所述存储器管理单元以检测对包括安全模式入口指令的入口点地址的非缓存访问;响应于所述入口点地址的检测验证所述安全模式入口指令是由所述处理器执行的;以及响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。
2、 根据权利要求1所述的方法,其中所述存储器管理单元包括具有虚拟 指令地址总线和物理指令地址总线的虚拟存储器管理单元,并且其中所述监 控所述存储器管理单元的步骤包括在所述物理指令地址总线上检测所述入口 点地址,并存储与所述物理入口点地址相对应的虚拟入口点地址。
3、 根据权利要求2所述的方法,其中所述验证的步骤包括确定所述处理 器的执行阶段地址是否与所存储的虚拟入口点地址匹配,由此验证所述安全 模式入口指令是由所述处理器执行的。
4、 根据权利要求3所述的方法,该方法还包括响应于在所述物理指令地 址总线上检测到所述入口点地址而设定有效位,并且当由所述处理器执行所 述安全模式入口指令时确定是否设定了所述有效位。
5、 根据权利要求1所述的方法,其中所述处理系统还包括包含多条缓存 线的指令缓存,各条缓存线具有包含安全位的标志以标识安全缓存线或非安 全缓存线,该方法还包括根据操作模式和所述指令缓存的被访问的线中的所 述安全位的状态而控制对所述指令缓存的缓存线的访问。
6、 根据权利要求1所述的方法,其中所述处理系统还包括包含多条缓存 线的数据缓存,各条缓存线具有包含安全位的标志以标识安全缓存线或非安 全缓存线,该方法还包括根据操作模式和所述数据缓存的被访问的线中的所述安全位的状态而控制对所述数据缓存的缓存线的访问。
7、 根据权利要求6所述的方法,该方法还包括响应于所述数据缓存中的 缓存丢失,在所述用户模式中向安全存储器空间写入所述数据缓存的安全缓 存线。
8、 一种用于在包括处理器和存储器管理单元的处理系统中控制用户模式和安全模式之间的语境切换的安全模式控制器,该安全模式控制器包括地址跟踪单元,其被配置为通过所述存储器管理单元检测对包含安全模 式入口指令的入口点地址的非缓存访问,以及响应于所述入口点地址的检测来验证所述安全模式入口指令是由所述处理器执行的;以及安全状态机,其被配置为响应于验证所述安全模式入口指令是由所述处 理器执行的,来启动从所述用户模式到所述安全模式的语境切换。
9、 根据权利要求8所述的安全模式控制器,其中所述存储器管理单元包 括具有虚拟指令地址总线和物理指令地址总线的虚拟存储器管理单元,并且 其中所述地址跟踪单元被配置为在所述物理指令地址总线上检测所述入口点 地址,并存储与所述物理入口点地址相对应的虚拟入口点地址。
10、 根据权利要求9所述的安全模式控制器,其中所述地址跟踪单元被 配置为确定所述处理器的执行阶段地址是否与所存储的虚拟入口点地址匹 配,由此验证所述安全模式入口指令是由所述处理器执行的。
11、 根据权利要求10所述的安全模式控制器,其中所述地址跟踪单元被 配置为响应于在所述物理指令地址总线上检测到所述入口点地址而设定有效 位,并当由所述处理器执行所述安全模式入口指令时确定是否设定了所述有 效位。
12、 根据权利要求8所述的安全模式控制器,其中所述处理系统还包括 包含多条缓存线的指令缓存,各条缓存线具有包含安全位的标志以标识安全 缓存线或非安全缓存线,该方法还包括根据操作模式和所述指令缓存的被访 问的线中的所述安全位的状态而控制对所述指令缓存的缓存线的访问。
13、 根据权利要求8所述的安全模式控制器,其中所述处理系统还包括包含多条缓存线的数据缓存,各条缓存线具有包含安全位的标志以标识安全 缓存线或非安全缓存线,该方法还包括根据操作模式和所述数据缓存的被访 问的线中的所述安全位的状态而控制对所述数据缓存的缓存线的访问。
14、 根据权利要求13所述的安全模式控制器,其中所述数据缓存控制器 响应于所述用户模式中缓存丢失而在所述用户模式中使安全缓存线向安全存 储器空间回写。
15、 一种用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据 缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,该方法包括以下步骤定义包含安全模式入口指令的入口点地址;在所述虚拟存储器管理单元的物理指令地址总线上检测所述入口点地址; 存储与所述物理入口点地址相对应的虚拟入口点地址; 将所述处理器的执行阶段地址与所存储的虚拟入口点地址进行比较;以及 如果所述执行阶段地址与所述虚拟入口点地址匹配,则启动从所述用户 模式到所述安全模式的语境切换。
16、 根据权利要求15所述的方法,该方法还包括响应于在所述物理指令 地址总线上检测到所述入口点地址而设定有效位,并当由所述处理器执行所 述安全模式入口指令时确定是否设定了所述有效位。
17、 根据权利要求15所述的方法,其中所述指令缓存包括多条缓存线, 各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,该方 法还包括根据操作模式和所述指令缓存的被访问的线中的所述安全位的状态 而控制对所述指令缓存的缓存线的访问。
18、 根据权利要求15所述的方法,其中所述数据缓存包括多条缓存线, 各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,该方 法还包括根据操作模式和所述数据缓存的被访问的线中的所述安全位的状态 而控制对所述数据缓存的缓存线的访问。
全文摘要
本发明提供了一种用于在包括处理器和存储器管理单元的处理系统中控制安全和用户模式之间的语境切换的方法和安全模式控制器。该方法包括以下步骤监控所述存储器管理单元以检测对包括安全模式入口指令的入口点地址的非缓存访问;响应于所述入口点地址的检测验证所述安全模式入口指令是由所述处理器执行的;以及响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。指令缓存和数据缓存的各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线。
文档编号G06F21/00GK101438290SQ200780015842
公开日2009年5月20日 申请日期2007年5月1日 优先权日2006年5月1日
发明者约尔格·C·施韦姆勒宁 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1