CN101438290B - 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置 - Google Patents
用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置 Download PDFInfo
- Publication number
- CN101438290B CN101438290B CN2007800158422A CN200780015842A CN101438290B CN 101438290 B CN101438290 B CN 101438290B CN 2007800158422 A CN2007800158422 A CN 2007800158422A CN 200780015842 A CN200780015842 A CN 200780015842A CN 101438290 B CN101438290 B CN 101438290B
- Authority
- CN
- China
- Prior art keywords
- cache
- virtual
- processor
- entry point
- safe mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种用于在包括处理器和存储器管理单元的处理系统中控制安全和用户模式之间的语境切换的方法和安全模式控制器。该方法包括以下步骤:监控所述存储器管理单元以检测对包括安全模式入口指令的入口点地址的非缓存访问;响应于所述入口点地址的检测验证所述安全模式入口指令是由所述处理器执行的;以及响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。指令缓存和数据缓存的各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线。
Description
技术领域
本发明涉及具有安全模式和用户模式的系统中的安全语境切换。具体地,本发明涉及用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置,其中对处理器和存储器系统几乎未进行改变。
背景技术
本申请要求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中的流水线操作的处理器状态信号。安全状态机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,通过监控处理器状态线来通过处理器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)安全状态。
在离开安全模式之后,在缓存配置中,在入口点地址开始的代码仍驻留在指令缓存中。结果,如果没有附加措施则不能够重新进入安全状态。具体地,附加的控制位将允许盖写安全状态以进行指令缓存维护操作。由此,启动入口点之后的代码以执行清空入口点缓存线的缓存维护操作。
至此已描述了本发明的至少一个实施方式的多个方面,可理解的是各种替换、修改、以及改进对于本领域技术人员是明显的。这种替换、修改、以及改进旨在成为本公开的一部分,并且旨在落入本发明的精神和范围内。因此,上述说明和附图仅作为示例来描述。
Claims (20)
1.一种用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,其中,所述存储器管理单元具有虚拟指令地址总线和物理指令地址总线,该方法包括以下步骤:
监控所述存储器管理单元,以于所述物理指令地址总线上检测对包括安全模式入口指令的物理入口点地址的非缓存访问;
存储虚拟指令地址总线上的虚拟入口点地址,所述虚拟入口点地址与所述物理入口点地址相对应;
响应于所述物理入口点地址的检测,验证所述安全模式入口指令是由所述处理器执行的,其中包含确定所述处理器的执行阶段地址是否与所存储的虚拟入口点地址匹配;以及
响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。
2.根据权利要求1所述用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,包含产生所述处理器执行阶段的虚拟指令地址,以及
其中,确定所述处理器的执行阶段地址是否与所存储的虚拟入口点地址匹配的所述步骤包含,确定所述处理器执行阶段的虚拟指令地址与所存储的虚拟入口点地址相匹配。
3.根据权利要求1所述用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,,其中所述处理器包含具有读取阶段与所述执行阶段的流水线,以及
存储虚拟指令地址总线上的虚拟入口点地址的所述步骤包含,当在所述物理指令地址总线上检测到所述物理入口点地址时,储存所述处理器读取阶段的虚拟入口点地址。
4.根据权利要求1所述用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,该方法还包括响应于在所述物理指令地址总线上检测到所述入口点地址而设定有效位,并且当由所述处理器执行所述安全模式入口指令时确定是否设定了所述有效位。
5.根据权利要求1所述用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,其中所述处理系统还包括包含多条缓存线的指令缓存,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,该方法还包括根据操作模式和所述指令缓存的被访问的线中的所述安全位的状态而控制对所述指令缓存的缓存线的访问。
6.根据权利要求1所述用于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,其中所述处理系统还包括包含多条缓存线的数据缓存,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,该方法还包括根据操作模式和所述数据缓存的被访问的线中的所述安全位的状态而控制对所述数据缓存的缓存线的访问。
7.根据权利要求6所述于在包括处理器和存储器管理单元的处理系统中控制安全模式和用户模式之间的语境切换的方法,该方法还包括响应于所述数据缓存中的缓存丢失,在所述用户模式中向安全存储器空间写入所述数据缓存的安全缓存线。
8.一种用于在包括处理器和存储器管理单元的处理系统中控制用户模式和安全模式之间的语境切换的安全模式控制器,其中,所述存储器管理单元包含虚拟存储器管理单元,所述虚拟存储器管理单元具有虚拟指令地址总线和物理指令地址总线,该安全模式控制器包括:
地址跟踪单元,其被配置为通过所述存储器管理单元检测对包含安全模式入口指令的物理入口点地址的非缓存访问,包含于所述存储器管理单元的物理指令地址总线上检测所述物理入口点地址,并且存储所述存储器管理单元的虚拟指令地址总线上的虚拟入口点地址,所述虚拟入口点地址与所述物理入口点地址相对应,以及响应于所述入口点地址的检测来验证所述安全模式入口指令是由所述处理器执行的,包含确定所述处理器的执行阶段地址是否与所存储的虚拟入口点地址匹配;以及
安全状态机,其被配置为响应于验证所述安全模式入口指令是由所述处理器执行的,来启动从所述用户模式到所述安全模式的语境切换。
9.根据权利要求8所述的安全模式控制器,其中所述处理器包含流水线,
所述安全模式控制器包含流水线跟随器,以产生所述处理器执行阶段的虚拟指令地址,以及
所述地址跟踪单元藉由确定所述存储器执行阶段的所述虚拟指令地址是否与所存储的虚拟入口点地址相匹配,从而确定所述处理器的执行阶段地址是否与所存储的虚拟入口点地址相匹配。
10.根据权利要求8所述的安全模式控制器,其中所述处理器包含具有读取阶段与所述执行阶段的流水线,以及
其中,当在所述物理指令地址总线上检测到所述物理入口点地址时,所述地址跟踪单元储存所述处理器读取阶段的虚拟入口点地址,藉此所述地址跟踪单元存储所述虚拟入口点地址。
11.根据权利要求10所述的安全模式控制器,其中所述地址跟踪单元被配置为响应于在所述物理指令地址总线上检测到所述入口点地址而设定有效位,并当由所述处理器执行所述安全模式入口指令时确定是否设定了所述有效位。
12.根据权利要求8所述的安全模式控制器,其中所述处理系统还包括包含多条缓存线的指令缓存,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,所述安全模式控制器还包括根据操作模式和所述指令缓存的被访问的线中的所述安全位的状态而控制对所述指令缓存的缓存线的访问。
13.根据权利要求8所述的安全模式控制器,其中所述处理系统还包括包含多条缓存线的数据缓存,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,所述安全模式控制器还包括根据操作模式和所述数据缓存的被访问的线中的所述安全位的状态而控制对所述数据缓存的缓存线的访问。
14.根据权利要求13所述的安全模式控制器,其中数据缓存控制器响应于所述用户模式中缓存丢失而在所述用户模式中使安全缓存线向安全存储器空间回写。
15.一种用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,该方法包括以下步骤:
定义包含安全模式入口指令的物理入口点地址;
在所述虚拟存储器管理单元的物理指令地址总线上检测所述物理入口点地址;
存储与所述物理入口点地址相对应的虚拟入口点地址,所述虚拟入口点地址位于所述虚拟存储器管理单元上的虚拟指令地址总线上;
将所述处理器的执行阶段地址与所存储的虚拟入口点地址进行比较;以及
如果所述执行阶段地址与所述虚拟入口点地址匹配,则启动从所述用户模式到所述安全模式的语境切换。
16.根据权利要求15所述用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,该方法还包括响应于在所述物理指令地址总线上检测到所述入口点地址而设定有效位,并当由所述处理器执行所述安全模式入口指令时确定是否设定了所述有效位。
17.根据权利要求15所述用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,其中所述指令缓存包括多条缓存线,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,该方法还包括根据操作模式和所述指令缓存的被访问的线中的所述安全位的状态而控制对所述指令缓存的缓存线的访问。
18.根据权利要求15所述用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,其中所述数据缓存包括多条缓存线,各条缓存线具有包含安全位的标志以标识安全缓存线或非安全缓存线,该方法还包括根据操作模式和所述数据缓存的被访问的线中的所述安全位的状态而控制对所述数据缓存的缓存线的访问。
19.根据权利要求15所述用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,包含产生所述处理器执行阶段的虚拟指令地址,以及
其中,将所述处理器的执行阶段地址与所存储的虚拟入口点地址进行比较的所述步骤包含,将所述处理器执行阶段的虚拟指令地址与所存储的虚拟入口点地址进行比较。
20.根据权利要求15所述用于在包括处理器、虚拟存储器管理单元、指令缓存以及数据缓存的处理系统中控制用户模式和安全模式之间的语境切换的方法,其中所述处理器包含具有读取阶段与所述执行阶段的流水线,以及
存储与所述物理入口点地址相对应的虚拟入口点地址的所述步骤包含,当在所述物理指令地址总线上检测到所述物理入口点地址时,储存所述处理器读取阶段的虚拟入口点地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79643306P | 2006-05-01 | 2006-05-01 | |
US60/796,433 | 2006-05-01 | ||
PCT/US2007/010515 WO2007130386A2 (en) | 2006-05-01 | 2007-05-01 | Method and apparatus for secure context switching in a system including a processor and cached virtual memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101438290A CN101438290A (zh) | 2009-05-20 |
CN101438290B true CN101438290B (zh) | 2011-10-05 |
Family
ID=38668247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800158422A Active CN101438290B (zh) | 2006-05-01 | 2007-05-01 | 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7971018B2 (zh) |
EP (1) | EP2013809B1 (zh) |
CN (1) | CN101438290B (zh) |
WO (1) | WO2007130386A2 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621607B2 (en) * | 2006-05-18 | 2013-12-31 | Vmware, Inc. | Computational system including mechanisms for tracking taint |
GB2449454B (en) * | 2007-05-22 | 2011-08-24 | Advanced Risc Mach Ltd | Control data modification within a cache memory |
US8738926B2 (en) | 2008-01-10 | 2014-05-27 | Intel Mobile Communications GmbH | Data processing system, method for executing a cryptographic algorithm and method for preparing execution of a cryptographic algorithm |
CN101452397B (zh) * | 2008-11-27 | 2012-08-22 | 上海交通大学 | 虚拟化环境中的强制访问控制方法及装置 |
US8868925B2 (en) * | 2008-12-09 | 2014-10-21 | Nvidia Corporation | Method and apparatus for the secure processing of confidential content within a virtual machine of a processor |
US8266448B2 (en) * | 2008-12-09 | 2012-09-11 | Nvidia Corporation | Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content |
US8719593B2 (en) * | 2009-05-20 | 2014-05-06 | Harris Corporation | Secure processing device with keystream cache and related methods |
US8219772B2 (en) * | 2009-07-02 | 2012-07-10 | Stmicroelectronics (Research & Development) Limited | Loading secure code into a memory |
US20110072168A1 (en) * | 2009-09-24 | 2011-03-24 | Hongxiao Zhao | Data transfer system with different operating modes |
US8527667B2 (en) * | 2009-09-24 | 2013-09-03 | Maishi Electronic (Shanghai) Ltd | Apparatuses and methods for transferring data |
US8402280B1 (en) | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
GB2482701C (en) * | 2010-08-11 | 2018-12-26 | Advanced Risc Mach Ltd | Illegal mode change handling |
JPWO2012102002A1 (ja) * | 2011-01-24 | 2014-06-30 | パナソニック株式会社 | 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路 |
CN102736983B (zh) * | 2011-04-14 | 2016-05-25 | 上海华虹集成电路有限责任公司 | 控制智能卡flash空间大小的方法 |
US8943330B2 (en) | 2011-05-10 | 2015-01-27 | Qualcomm Incorporated | Apparatus and method for hardware-based secure data processing using buffer memory address range rules |
KR101658070B1 (ko) * | 2012-01-26 | 2016-09-22 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 연속 월드 스위치 보안을 갖는 데이터 센터 |
US9183399B2 (en) | 2013-02-14 | 2015-11-10 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
US20160224098A1 (en) * | 2015-01-30 | 2016-08-04 | Alexander Gendler | Communicating via a mailbox interface of a processor |
GB2539199B (en) | 2015-06-08 | 2018-05-23 | Arm Ip Ltd | Apparatus and methods for transitioning between a secure area and a less-secure area |
CN105677581A (zh) * | 2016-01-05 | 2016-06-15 | 上海斐讯数据通信技术有限公司 | 一种内存访问装置和方法 |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US10838733B2 (en) | 2017-04-18 | 2020-11-17 | International Business Machines Corporation | Register context restoration based on rename register recovery |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10545766B2 (en) | 2017-04-18 | 2020-01-28 | International Business Machines Corporation | Register restoration using transactional memory register snapshots |
US10740108B2 (en) | 2017-04-18 | 2020-08-11 | International Business Machines Corporation | Management of store queue based on restoration operation |
US10649785B2 (en) | 2017-04-18 | 2020-05-12 | International Business Machines Corporation | Tracking changes to memory via check and recovery |
US10564977B2 (en) | 2017-04-18 | 2020-02-18 | International Business Machines Corporation | Selective register allocation |
US10572265B2 (en) | 2017-04-18 | 2020-02-25 | International Business Machines Corporation | Selecting register restoration or register reloading |
US10540184B2 (en) | 2017-04-18 | 2020-01-21 | International Business Machines Corporation | Coalescing store instructions for restoration |
US10489382B2 (en) * | 2017-04-18 | 2019-11-26 | International Business Machines Corporation | Register restoration invalidation based on a context switch |
US10552164B2 (en) | 2017-04-18 | 2020-02-04 | International Business Machines Corporation | Sharing snapshots between restoration and recovery |
US20190102324A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Cache behavior for secure memory repartitioning systems |
US11741196B2 (en) | 2018-11-15 | 2023-08-29 | The Research Foundation For The State University Of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838987A (en) * | 1995-10-06 | 1998-11-17 | National Semiconductor Corporation | Processor for eliminating external isochronous subsystems |
KR19980032776A (ko) * | 1996-10-16 | 1998-07-25 | 가나이 츠토무 | 데이타 프로세서 및 데이타 처리시스템 |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
JP4423206B2 (ja) * | 2002-11-18 | 2010-03-03 | エイアールエム リミテッド | 安全モードと非安全モードとを切り換えるプロセッサ |
US7363491B2 (en) * | 2004-03-31 | 2008-04-22 | Intel Corporation | Resource management in security enhanced processors |
EP1612638B1 (en) * | 2004-07-01 | 2011-03-09 | Texas Instruments Incorporated | Method and system of verifying proper execution of a secure mode entry sequence |
JP4356686B2 (ja) * | 2005-12-01 | 2009-11-04 | ソニー株式会社 | メモリ装置及びメモリ制御方法 |
US7650479B2 (en) * | 2006-09-20 | 2010-01-19 | Arm Limited | Maintaining cache coherency for secure and non-secure data access requests |
-
2007
- 2007-05-01 CN CN2007800158422A patent/CN101438290B/zh active Active
- 2007-05-01 EP EP07776547.7A patent/EP2013809B1/en active Active
- 2007-05-01 US US11/799,392 patent/US7971018B2/en active Active
- 2007-05-01 WO PCT/US2007/010515 patent/WO2007130386A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2013809B1 (en) | 2018-11-21 |
CN101438290A (zh) | 2009-05-20 |
WO2007130386A2 (en) | 2007-11-15 |
WO2007130386A3 (en) | 2008-04-10 |
EP2013809A2 (en) | 2009-01-14 |
US20070260838A1 (en) | 2007-11-08 |
US7971018B2 (en) | 2011-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101438290B (zh) | 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置 | |
TWI705353B (zh) | 用於容許安全通訊之積體電路、方法及製造物件 | |
TW508493B (en) | Microprocessor having improved memory management unit and cache memory | |
JP6306578B2 (ja) | メモリ保護装置及び保護方法 | |
KR101015456B1 (ko) | 디바이스에 의한 메모리로의 억세스 제어 | |
JP4447471B2 (ja) | 安全処理システムにおける例外タイプ | |
CN102804153B (zh) | 在安全与非安全存储器区域内存储安全模式页表数据 | |
US6397301B1 (en) | Preventing access to secure area of a cache | |
US9626303B2 (en) | Data processing apparatus and address space protection method | |
US8131942B2 (en) | Control data modification within a cache memory | |
US20070220276A1 (en) | Managing access to content in a data processing apparatus | |
US8392726B2 (en) | Protection of memory areas | |
JP2004171569A (ja) | データ処理装置内のメモリへアクセスするための技術 | |
KR20040093472A (ko) | 영역-입도 하드웨어-제어 메모리 암호화를 제공하기 위한시스템 및 방법 | |
JP2004288155A (ja) | メモリへのアクセスを管理するための装置および方法 | |
CN102103552A (zh) | 安全高速缓存存储器架构 | |
JP2006506753A (ja) | 安全ドメインおよび非安全ドメインを有するシステム内での仮想−物理メモリアドレスマッピング | |
JP2004171563A (ja) | データ処理装置内のメモリへアクセスするための技術 | |
KR20130036189A (ko) | 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한 | |
JP2004171566A (ja) | サスペンドされたオペレーティングシステムへデータ処理リクエストを送る方法 | |
KR20050086673A (ko) | 보안모드와 비보안모드 사이의 프로세서 전환 | |
WO2008112629A1 (en) | Policy-based direct memory access control | |
CN109313693B (zh) | 针对偶发存储器访问程序指令的许可控制 | |
JP4391832B2 (ja) | コンパートメント化されたセキュリティのための入出力許可ビットマップ | |
US7716453B2 (en) | Descriptor-based memory management unit and method for memory management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |