CN102804153B - 在安全与非安全存储器区域内存储安全模式页表数据 - Google Patents

在安全与非安全存储器区域内存储安全模式页表数据 Download PDF

Info

Publication number
CN102804153B
CN102804153B CN201180010180.6A CN201180010180A CN102804153B CN 102804153 B CN102804153 B CN 102804153B CN 201180010180 A CN201180010180 A CN 201180010180A CN 102804153 B CN102804153 B CN 102804153B
Authority
CN
China
Prior art keywords
secure
page table
memory
data
modes
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
Application number
CN201180010180.6A
Other languages
English (en)
Other versions
CN102804153A (zh
Inventor
理查德·罗伊·格里森思怀特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN102804153A publication Critical patent/CN102804153A/zh
Application granted granted Critical
Publication of CN102804153B publication Critical patent/CN102804153B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种数据处理设备(2)设置有操作在一个或多个安全模式(40)和一个或多个非安全模式(42)中的处理电路(8)。当操作在非安全模式中时,存储器的一个或多个区域是不可访问的。存储器管理单元(24)响应于页表数据而管理对包括安全存储器(22)和非安全存储器(6)的存储器的访问。当操作在安全模式中的一个中时,使用安全模式页表数据(36,38)。在安全模式页表数据的页表层次结构内的页表条目包括表安全字段(68,72),其指示由该页表条目所指向的另一页表是存储在安全存储器(22)内还是非安全存储器(6)内。如果与存储器访问相关联的页表中的任一者存储在非安全存储器(6)内,则用表属性位NST来标记该存储器访问,该表属性位NST指示该存储器访问应被视为是非安全的。

Description

在安全与非安全存储器区域内存储安全模式页表数据
技术领域
本发明涉及数据处理***。具体地,本发明涉及具有一个或多个安全操作模式和一个或多个非安全操作模式的并且当操作在安全模式中时利用安全模式页表数据来管理对存储器的访问的数据处理***。
背景技术
已知可提供一种具有一个或多个安全操作模式和一个或多个非安全操作模式的数据处理***,诸如,驻在英国剑桥的ARM有限公司所研发的信任区(TrustZone)体系架构的数据处理***。在这种***内的存储器(存储器地址空间)一般配有一个或多个安全区域和一个或多个非安全区域,该一个或多个安全区域在安全操作模式中为可访问而在非安全操作模式中为不可访问的,而该一个或多个非安全区域在安全操作模式和非安全操作模式中都是可被访问的。通过这种方式,诸如加密密钥、金融数据等之类的敏感数据可被存储在安全区域内,并且,仅能由执行在安全操作模式中的受信/安全应用程序访问。这种数据处理***还支持执行在非安全模式中的非安全应用程序,但其仅能对存储器之非安全区域进行访问。举例而言,这种***可用于数字版权管理,其中,诸如加密密钥之类的高敏感并秘密的信息可妥善存于存储器的安全区域内,并且,其仅能由执行在安全模式中的安全应用程序访问,同时该***还支持诸如媒体播放器或无关的应用程序之类的非安全应用程序,其执行在非安全模式中且使用存储器的的非安全区,而其本身不需直接访问存储器的安全区域内所保持的安全/秘密数据。
当操作在一个或多个安全模式中时,为了对存储器安全区域的访问进行管理,已知可提供安全模式页表数据,其由诸如存储器单元或存储器保护单元之类的存储器管理电路使用,从而控制/管理对存储器的访问。存储器管理单元例如可负责将安全模式中所生成的虚拟地址转译(translate)成物理地址。在安全模式中进行访问的存储器内的区域可包括安全区域和非安全区域。可能产生的问题是:用来管理对存储器的安全区域的访问的安全模式页表数据可能会遭受到未经授权的修改,例如安全模式中的应用程序将访问存储器的非安全区域而非如初始所意欲的那样访问存储器的安全区域。如此将危害***的安全。
为了处理此种问题,可将所有安全模式页表数据存储在存储器的安全区域内。通过这种方式,可保护安全模式页表数据,使之不会遭受到企图规避***安全的未经授权的修改。然而,此方法的一个问题是:安全模式页表数据的大小很大,并且,不利地消耗存储器的一个或多个安全区的大量存储器容量。因此,尽管诸如加密密钥、金融数据、安全程序指令码之类的安全数据本身的量相对较小,然而,仅为了存储安全模式页表数据,可能需要存储器的安全区具有大存储容量。
发明内容
从本发明的一个方面来看,其提供了一种用于处理数据的设备,所述设备包括:
存储器;
处理电路,该处理电路响应于一程序指令流而执行处理操作,所述处理电路具有多个操作模式,该多个操作模式包括一个或多个安全模式和一个或多个非安全模式,所述存储器包括:
(i)一个或多个安全区域,该安全区域在所述一个或多个安全模式中能被访问,而在所述一个或多个非安全模式中不能被访问;以及
(ii)一个或多个非安全区域,该非安全区域在所述一个或多个安全模式中能被访问,且在所述一个或多个非安全模式中能被访问。
存储器控制电路,存储器控制电路响应于页表数据而管理对所述存储器的访问;其中,
所述页表数据包括安全模式页表数据及非安全模式页表数据,当所述处理电路操作在所述一个或多个安全模式中时,使用该安全模式页表数据来管理对所述存储器的访问,而当所述处理电路操作在所述一个或多个非安全模式中时,使用该非安全模式页表数据来管理对所述存储器的访问;
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级处的第一层级页表包括页表条目,该页表条目指向所述层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;并且
所述第一层级页表的每个页表条目包括一表安全字段,该表安全字段指示由所述页表条目所指向的第二层级页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内。
本发明认识到,尽管一个或多个安全操作模式可能需求利用其本身的安全模式页表数据,然而,并非所有此等安全模式页表数据都与作为存储器的安全区域和/或存储敏感/秘密数据的存储器区域相关。因此,可能并非所有的安全模式页表数据都需要存储在存储器的安全区域内。用来管理对存储器的安全区域的访问的那一部分的安全模式页表数据可存储在存储器之安全区域内,而用来管理对存储器的非安全区域的访问的那另一部分的安全模式页表数据可存储在存储器的非安全区域内。为了支持并管理这一安全模式页表数据在存储器的安全区域和非安全区域之间的划分,在至少某些页表层级的页表内的每个页表条目包括表安全字段,其指示由该条目所指向的另一页表是存储在存储器的安全区域内还是非安全区域内。因此,当存储器控制电路(诸如,存储器管理单元或存储器保护单元)对层次结构式的安全模式页表数据进行访问时,可确定是否有任何进行该访问所用的安全模式页表数据存储在存储器的非安全区域内。将理解,上述第一层级页表和第二层级页表不需要为页表层次结构内的任何特定位置,特别是,不需要为层级1或层级2页表。
在本发明的某些具体实施例中,存储器控制电路被配置为执行页表行走操作,其中,访问递减通过层次结构中的页表层级的页表条目序列,以检索要管理的存储器访问操作的属性数据。在此页表行走期间,如果所访问的页表条目序列中任一页表条目所具有的表安全字段的值指示所访问的该页表条目序列中的一个页表条目存储在存储器的非安全区域内,则存储器控制电路可响应于该值而将正执行的存储器访问标识为非安全存储器访问操作。为了确保安全性,当操作在安全模式中时,如果存储器访问操作所涉及的相关页表数据中有任何数据存储在存储器的非安全区域内,则相关的存储器访问操作会被视为非安全存储器访问操作,即使该访问操作系由执行于安全模式中的程序启动。
在某些具体实施例中,存储器控制电路可通过将非安全表属性包括在与该存储器访问操作相关联的属性数据内,将该存储器访问操作标识为非安全存储器访问操作。此非安全表属性可与指示存储器访问源于安全模式内操作的另一不同属性分开。非安全表属性指示已使用存储在非安全存储器中的页表来管理该存储器访问操作。
当存储器控制电路将存储器访问操作标识为非安全存储器访问操作且该存储器访问操作系导向存储器的一个或多个安全区域时,则存储器可阻塞该存储器访问操作以作为响应。如果存储器访问操作是非安全的,例如已使用存储在非安全存储器中的页表条目来辅助管理该存储器访问操作,则允许访问该存储器的安全区域,对该存储器而言是不安全的。
处理电路可执行多个软件进程。这些软件进程中每一个可利用其自身的页表数据。或者,某些页表数据可被应用于多个进程,并且,可由全局属性将这些页表数据标识为用于来自这些多个软件进程中任一者的存储器访问。其它属性数据可为非全局属性,且可用于仅来自与该非全局属性数据连接的单独软件进程的存储器访问。
在支持全局和非全局属性数据的***上下文中,存储器管理电路被配置为如果经由作为与存储器访问相关联的一部分的页表行走而访问的页表条目序列中的任一页表条目存储在存储器的非安全区域内,则将属性数据强迫视为非全局属性数据。因此,如果与该存储器访问相关联的页表中任一者存储在存储器的非安全区域内,则存储器控制电路覆盖该页表数据内任何具有不同指示的信息,并迫使相关的属性数据作为非全局属性数据。如果准许使用与存储器的非安全区域相关的页表行走所生成的全局属性数据,将可能允许***的安全脆弱性。
将认识到,属性数据可为多种不同形式,例如,属性数据可指示哪些特权操作层级被允许来访问相关联数据(存储器页)、该相关联数据是否为只读、该相关联资料是否为可高速缓存的,等等。此可用于其中不执行地址转译的存储器保护单元(MPU)的上下文中。在属性数据提供存储器访问的虚拟存储器地址及与该存储器访问操作对应的该存储器内的物理存储器地址间的映射的情况下,本发明技术特别有效。为确保安全,保护这种映射是重要的。
本发明技术可用于其中一个或多个安全区域的存储容量小于一个或多个非安全区域的存储容量的具体实施例中。特别是当一个或多个非安全区域形成在独立集成电路内,该独立集成电路与其中形成有处理电路、存储器控制电路及一个或多个安全区域的集成电路分开。
本发明的具体实施例还可提供安全转译表基址寄存器,其被配置为存储基址地址值,其指向安全模式页表数据的层次结构的入口点。此安全转译表基址寄存器可包括安全字段,其指示是否所有的安全模式页表数据存储在一个或多个非安全区域中。
从本发明的另一方面来看,其提供了一种用于处理数据的设备,所述设备包括:
存储器部件,用以存储数据;
处理部件,用以响应于程序指令流而执行处理操作,所述处理部件具有多个操作模式,该多个操作模式包括一个或多个安全模式和一个或多个非安全模式,所述存储器部件包括:
(i)一个或多个安全区域,该安全区域在所述一个或多个安全模式中是能被访问的,而在所述一个或多个非安全模式中是不能被访问的;以及
(ii)一个或多个非安全区域,该非安全区域在所述一个或多个安全模式中是能被访问的,并且在所述一个或多个非安全模式中是能被访问的;
存储器控制部件,用于响应于页表数据而管理对所述存储器部件的访问;其中,
所述页表数据包括安全模式页表数据和非安全模式页表数据,当所述处理部件操作在所述一个或多个安全模式中时,使用该安全模式页表数据来管理对所述存储器部件的访问,而当所述处理部件操作在所述一个或多个非安全模式中时,使用该非安全模式页表数据来管理对所述存储器部件的访问;
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级处的第一层级页表包括页表条目,该页表条目指向所述页表层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;并且
所述第一层级页表的每个页表条目包括表安全字段,该表安全字段指示由所述页表条目所指向的第二层次结构页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内。
从本发明的又一方面来看,提供了一种管理对存储器的访问的方法,该存储器与处理电路相关联,该处理电路具有多个操作模式,该多个操作模式包括一个或多个安全模式和一个或多个非安全模式,所述存储器包括一个或多个安全区域和一个或多个非安全区域,该一个或多个安全区域在所述一个或多个安全模式中为能被访问的而在所述一个或多个非安全模式中为不能被访问的,而该一个或多个非安全区域在所述一个或多个安全模式中为能被访问的且在所述一个或多个非安全模式中为能被访问的,所述方法包括以下步骤:
当所述处理电路操作在所述一个或多个安全模式中时,响应于安全模式页表数据而管理对所述存储器的访问;以及
当所述处理电路操作在所述一个或多个非安全模式中时,响应于非安全模式页表数据而管理对所述存储器的访问;其中,
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级的第一层级页表包括页表条目,该页表条目指向所述页表层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;并且
所述第一层级页表的每个页表条目包括表安全字段,该表安全字段指示由所述页表条目所指向的第二层级页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内。
从本发明的再一方面来看,提供了一种用于处理数据的设备,所述设备包括:
存储器;
处理电路,该处理电路其响应于程序指令而执行处理操作,所述处理电路具有多个操作模式,该多个操作模式包括一个或多个安全模式和一个或多个非安全模式,所述存储器包括:
(i)一个或多个安全区域,该安全区域在所述一个或多个安全模式中是能被访问的,而在所述一个或多个非安全模式中是不能被访问的;以及
(ii)一个或多个非安全区域,该非安全区域在所述一个或多个安全模式中是能被访问的,且在所述一个或多个非安全模式中是能被访问的;
存储器控制电路,该存储器控制电路响应于页表数据而管理对所述存储器的访问;其中,
所述存储器控制电路被配置,使得当操作在所述一个或多个安全模式中的一个且所述存储器控制电路接收到信号,该信号指示已使用存储在所述一个或多个非安全区域内的页表数据来管理针对操作在所述一个或多个安全模式之一中的存储器访问请求的访问时,则所述存储器控制电路会以如同所述存储器访问发生在当操作在所述一个或多个非安全模式中时的方式来处理所述存储器访问。
附图说明
现将仅通过示例并参照附图来描述发明的实施例,其中:
图1示意性地示出了数据处理***,该数据处理***具有处理电路、存储器管理电路以及包括安全区域和非安全区域二者的存储器;
图2示意性地示出了图1的处理电路的操作模式,该操作模式包括一个或多个安全模式和一个或多个非安全模式;
图3示意性地示出了页表行走,该页表行进遍历安全模式页表数据以检索用于管理操作在安全模式中的存储器访问的属性数据;
图4示意性地示出了页表条目,该页表条目包括表安全字段和全局/非全局属性字段;
图5是示意性地示出了用于通过使用存储在转译后备缓冲器内的属性数据或经由页表行走来访问属性数据从而管理存储器访问操作的处理的流程图;
图6是示意性地示出了作为页表行走的一部分所执行的处理的流程图,该处理响应于在该页表行走期间所访问的不同的页表条目内的表安全字段数据而控制恢复后的属性数据;
图7是示意性地示出了安全存储器电路的操作的流程图,该安全存储器电路响应于存储器访问请求而基于与该存储器访问请求相关联的表属性和安全模式属性来允许或阻塞该存储器访问请求;
图8是示意性地示出了与存储器访问请求相关联的一些处理的流程图;以及
图9示意性地示出了虚拟机实现方式。
具体实施方式
图1示意性地示出了数据处理***2,其包括片上***(system-on-chip)集成电路4和单独的非安全存储器集成电路6。片上***集成电路4包括处理器8形式的处理电路,其响应于指令管线10中接收到的程序指令I而控制指令译码器12,以产生控制信号来配置并控制包括寄存器组14、乘法器16、移位器18及加法器20的数据路径。处理器8在程序指令I的控制下执行数据处理操作。这些数据处理操作包括存储器访问操作,其试图自***的存储器地址空间内的存储器地址读取数据或于其中写入数据。并非所有存储器地址空间可与能够存储数据值的真实的物理存储器相关联,例如,某些地址空间可能无法使用。存储器地址空间中某部分系对应于配置在片上***集成电路4内的安全存储器22,而存储器地址空间中某部分系对应于非安全存储器6。因此,安全存储器22提供存储器的一个或多个安全区域,而非安全存储器6提供存储器的一个或多个非安全区域。在片上***集成电路4内还配置存储器管理单元24(其为存储器控制电路的一种形式)、外部存储器接口26和高速缓存28。
处理器8使用虚拟地址来产生存储器访问。高速缓存28使用这些虚拟地址来存储经高速缓存的数据值(其可为数据和指令二者)。如果发生高速缓存未命中(cachemiss),则要访问的数据值必须读取自安全存储器22和非安全存储器6二者中的一者。存储器管理单元24执行虚拟地址至物理地址的转换,因为安全存储器22和非安全存储器6二者是物理寻址装置。存储器管理单元24包括转译后备缓冲器30,其包括存储器的当前访问页的属性数据。如果进行访问的虚拟地址无法对应至转译后备缓冲器30内的条目之一,则必需对页表数据执行完全访问(fullaccess),即执行页表行走。
处理器8操作在一个或多个安全模式和一个或多个非安全模式中。当操作在安全模式中时,由从处理器5提供给存储器管理单元24的安全模式信号S指示此模式。提供二组页表数据。安全模式页表数据系用于当操作在安全模式之一时。非安全模式页表数据系用于当操作在非安全模式之一时。两个转译表基址寄存器32系配置于存储器管理单元24内,且分别提供指针于安全模式页表数据的开始处和非安全模式页表数据的开始处。可通过以下程序执行页表行走:读取相关的转译表基址寄存器值以找出合适页表数据组的初始地址,接着使用其层次结构形式以惯常被称作页表行走的方式来访问此页表数据。此页表行走将在下文进一步讨论及说明。
由图1可知,非安全模式页表数据34存储在非安全存储器6内。安全模式页表数据分成两部分来存储。第一部分的安全模式页表数据36系存储在安全存储器22内,而第二部分的安全模式页表数据38系存储在非安全存储器6内。将第二部分的安全模式页表数据38存储在非安全存储器6内可节省安全存储器22的存储容量而可用于其它目的,且在片上安全存储器22较小的情况下,使得整个***仍具有完整的安全模式页表数据组存储在安全存储器22及非安全存储器6内。
存储在安全存储器22内的第一部分的安全模式页表数据36一般会是与存储安全敏感数据的存储器区有关的页表数据,该安全敏感数据被正确地存储而仅能由执行在安全模式之一中的程序来访问。当操作在安全模式中以进行访问时,第二部分的安全模式页表数据38与不存储敏感数据的存储器区有关,在此区中,允许此第二部分的安全模式页表数据38存储在非安全存储器6内不会因此引入安全脆弱性。
图2示意性地示出了图1的处理器8的操作模式。这些模式包括一个或多个安全模式40、一个或多个非安全模式42和监控模式44,提供这些模式以允许在安全模式40之一及非安全模式42之一这二者间进行转换。本领域技术人员将认识到,一个或多个安全模式可包括与不同特权层级相关的模式,但其皆为安全模式,例如,安全用户模式和安全特权模式。同样的,在非安全模式42内可提供不同特权层级的模式,例如,非安全用户模式和非安全特权模式。当操作在安全模式时,处理器8使用安全模式页表数据来管理其存储器访问。当操作在非安全模式时,处理器8使用非安全模式页表数据来管理其存储器访问。监控模式44使用安全模式页表数据。这些操作模式为硬件模式,这是因为数据处理***2内的硬件依据目前的操作模式提供不同层级的资源访问,资源例如是存储器区、控制寄存器等。
图3示意性地示出了通过安全模式页表数据的一页表行走操作。安全模式页表数据包括配置在层级层次结构中的多个页表46、48、50、52、54、56、58。在层次结构中的最高层级处,存在包括四个条目的页表46。此为层级0。页表48至58中每一个包括512个页表条目。每个页表48至58的大小惯常为4kB,即每个页表条目为64位。
应用于安全模式中的转译表基址寄存器32指向页表46的起始地址。当管理与虚拟地址对应的存储器访问时,虚拟地址内的位字段接着被用来提供索引值,以用于选择页表46内的页表条目66之一。在实例中,虚拟地址VA最高的前二个有效位[31:30]提供索引,以用于标识页表46内四个页表条目中的一者。此页表条目66包括20位字段(NextTablePtr<31:12>),其与虚拟地址VA的接下来的9个位[29:21]组合以提供指针给层级1表内的下一个页表条目70(最低的多个有效位假设为零)。页表条目70还包括20位字段(NextTablePtr<31:12>),其与虚拟地址VA的另9个位[20:12]结合以提供一指针给层级2表内的下一页表条目74。页表条目74持有物理地址的前20个位[31:12],其与虚拟地址VA的最低的12个位[11:0]组合以经由转译形成完整物理地址PA[31:0]。将认识到,较大的虚拟地址(例如,48位的虚拟地址)可能需要更多层级的页表行走。页表条目66还包括其它属性位,包括表安全字段68,其指示由该页表条目66指到的页表50系存储在存储器的非安全区域内或该存储器的安全区域内。此表安全字段是NSTable位。当它被设置时,被指到的下一页表存储在存储器的非安全区域内(且该总线访问应视为非安全的)。
在图3所示的实例中,层级0页表46指到层级1页表50,层级1页表50也存储在存储器的安全区。页表条目70包括其自身的表安全字段72,其指示页表条目70指到的下一页表56系存储于存储器的安全区域内或存储器的非安全区域内。页表条目70还可包括额外的属性位。
在此实例中,安全页表的页表层次结构的层级2中的页表56系存储于存储器的非安全区域内。这系由将页表条目70内的表安全字段72被设置(NSTable=1)来指示,即指示下一所指页表系存储在非安全区域内。
将注意到,表安全字段(即,NSTable位)与页表行走内要访问的下一页表相关联。因此,当在存储在安全区的页表与存储在非安全区的页表间移动时,用于指示此改变的表安全字段系存储在安全区域内,而因此能确保不会遭遇恶意窜改。
在页表行走的每一级处,一部分的虚拟地址系用作为索引值以选择页表条目,以用于转译该部分虚拟地址并访问指针,该指针指向用于该转译中的下一页表。与完整页表行走相关联的页表条目66、70及74中至少一页表条目,包括存储器管理单元24所用的与该存储器访问相关联的存储器属性。这些属性包括(诸如):由该页表行走所提供的从虚拟至物理位扯的转译是全局转译(globaltranslation)以可用于所有进程,或为非全局转译(non-globaltranslation),其仅可用于当前触发该页面行走的进程。其它进一步的属性可包括:相关页表是否是只读、可高速缓存、仅供特权模式等,这些是本领域技术人员所熟知的属性。
图4示意性图示图3的页表46至52中的一者内的页表条目78。位于层2的页表条目可与物理地址PA[31:12]的20位相同,以取代NextTablePtr<31:12>字段。此页表条目78位于相关页表内的位置处,该位置系由虚拟地址当中的九位来索引指示(即,标识其在页表内的位置以被选择来访问)。用作为索引的虚拟地址的九位将视与页表(包括前述的页表条目78)相关联的页表层次结构内的层级而定。页表条目78包括表安全字段80,其存储用以指示页表条目78内由NextTablePtr<31:12>字段所指向的页表存储在存储器的非安全区域内或存储器的安全区域内的一位。页表条目78还包括字段82,其指示页表条目是全局页表条目(其提供可用于所有进程的属性数据)或非全局页表条目(其提供仅用于当前触发页表行走的进程的属性数据)。其它属性84系存储在页表条目78内,这些属性可指示可高速缓存性(cacheability)、只读状态等。
将认识到,页表层次结构内其后接有较低层级页表条目的每一页表条目78,将包括表安全字段80。层次结构的层级2中的最低层级的页表不会指到任何下一页表,因此不需包括表安全字段。全局属性82及其它属性84仅需配置于页表行走所遍历的页表46至58中的一者中,而不需被存于每一页表中。全局属性及其它属性84一般存储在层次结构中的最低层级(此具体实施例中相当于层级2)处,而因此将能提供最佳的控制粒度来特征化并控制存储器属性。位于页表层次结构内较高层级处的存储器属性可用于提供较粗粒度的差异等级以区别不同区域的存储器的属性。
本领域技术人员将认识到,当页表层次结构越往下走时,存储器地址空间内的层级粒度会变小。因此,层次结构内每一层级处的页表数目一般将增加。如果整个存储器地址空间系映射至最细的粒度等级,则将具有大量的页表资料。可能并非全部的存储器地址空间皆系映射至满粒度等级,且在存储器较高层级处的地址空间可标记为不可用或具有默认存储器属性。
图5是处理流程图,其示出了说明由存储器管理单元24在安全模式操作下执行存储器访问的处理(当在安全模式操作时,存储器访问应依据总线的信号所指示而视为安全,至少直到发生NSTable值为“1”为止)。在步骤86,存储器管理单元等待数据访问发生。当数据访问发生,则必需访问安全存储器22或非安全存储器6。这会需要将处理器8所产生的虚拟地址转译为物理地址,以用于安全存储器22和非安全存储器6。在步骤88,在转译后备缓冲器30中进行查询,以确定针对该要访问的虚拟地址是否存在地址匹配。如果欲访问的虚拟存储器页先前已访问过,则很可能相关的转译数据(即存储器属性数据,诸如虚拟至物理地址转译数据、可高速缓存性状态、只读状态等)将被存储于转译后备缓冲器30内,并且,如果真是如此,则发生地址匹配。如果在步骤88存在地址匹配,则处理进行至步骤90。将认识到,在步骤88可能存在数个地址匹配以对应不同的进程标识符(ASID)。在步骤90,可通过其存储于转译后备缓冲器30内的进程标识符来区别各个地址匹配,且将针对匹配当前进程的条目(如果有的话)返回命中。如果在步骤88不存在地址匹配,则需要页表行走,并在步骤92依据相关图3和4的前述方法执行该页表行走。
在步骤92的页表行走之后,在步骤94将新的页表数据(包括NST位)存储于转译后备缓冲器30内。步骤96接着使用物理地址发送存储器访问至安全存储器22或非安全存储器6,该物理地址系利用所获得的转译数据所产生,该转译数据是与若干信号一起获得的,该等信号指示处理器8当前处于安全操作模式中,还指示是否已使用页表数据(其至少包括存储于非安全存储器6内的某些页表数据)进行了存储器访问。
如果步骤88确定转译后备缓冲器30内存在对要访问的虚拟地址的匹配,则步骤90确定当前由处理器8执行的进程是否与转译后备缓冲器30内具有匹配地址(步骤88)的每个条目所关联的进程相匹配。如果存在该匹配,则步骤98选择相关的转译后备缓冲器条目以供使用,并进行至步骤96。如果步骤90不存在该匹配,则处理进行至步骤100,步骤100确定经过步骤88的地址匹配的转译后备缓冲器条目是否被标记为全局条目以可用于所有进程。如果该相关条目被标记为全局条目,则处理再次进行至步骤98。如果该条目未被标记为全局条目,则处理进行至步骤92以执行一页表行走。
将认识到,图5的处理是示出了顺序的处理。在实践中,存储器管理单元24可以不同的次序和/或平行等级来操作。然而,图5的流程图示出了对所执行的整体处理及控制层级的一个观点。还将认识到,此处理的某些部分或全部可于软件中执行。
图6示出了当执行页表行走时对关联存储器访问的表安全状态(NST位)的设定所进行的控制(此表安全状态最终被返回至图1的访问控制电路128)。此表安全状态(NST位)指示是否有任何存储在存储器非安全区的安全页表在页表行走通过安全模式页表数据期间被使用。在步骤102,处理等待安全页表行走被请求。当该行走被请求时,步骤104将表安全状态的初始值设定为“0”。步骤106随后确定转译表基址寄存器(其存储指到安全模式页表数据的层级0页表46的指针)是否指示所有的安全模式页表数据存储在存储器的非安全区域内。TTBR32提供专用于此目的的位。如果步骤106确定所有的安全模式页表数据存储在非安全存储器中,则步骤108将NST位设定为“1”,即处理器应将访问视为非安全。如果步骤106确定并非所有的安全模式页表数据存储在存储器的非安全区域内,则绕过步骤108。
在步骤110,与正执行的存储器访问相关联的一部分的虚拟地址被用以索引指示层级0处的页表46,该页表存储在安全存储22内。接着读取此层级处的页表条目66,且步骤112确定表安全字段68是否指示页表条目66所指的层级1页表50系存储在非安全存储器内。如果页表50被指示其存储在非安全存储器6内,则步骤114会将表安全状态NST设定为“1”。如果在步骤112读取的表安全字段68并未设定,则绕过步骤114,而处理进行至步骤116,其中执行层次结构的下一层级(即层级1)内的表安全字段的检查,且如果页表条目70内的表安全字段72指示下一页表56存储在非安全存储器内,则将表安全状态设定为“1”。在此例中,由于层级2为层次结构中的最低层级,因此其不需要关于较低层级的表安全字段。
如果在页表行走期间访问的页表46、50或56的任一者存储在非安全存储器内,则与存储器访问相关联的表安全状态NST将由步骤104所设定的初始值“0”,在步骤108、114或118的任一者中改变成设定为“1”。存储器管理单元24在其页表行走(在硬件控制下执行)期间确定NST位的设定,且因此安全被确定。
步骤122确定表安全状态NST是否等于“1”。如果表属性位NST确实等于“1”,则步骤124迫使TLB条目被标记为非全局条目,使得经返回且存储在转译后备缓冲器30中的属性数据将仅用于当前进程,无论该属性数据于安全模式页表数据本身内的标记形式为何。在步骤126,存储器属性数据及NST位与S位(指示***是否在安全模式)被返回至转译后备缓冲器30,且还用于形成并控制针对安全存储器22或非安全存储器6中的一个的存储器访问。
图7是流程图,其示出了与安全存储器22相关联的处理,该处理是由与安全存储器相关联的访问控制电路128所执行。在步骤130,访问控制电路128接收存储器访问请求。步骤132确定该存储器访问请求是否伴随信号S,信号S指示产生该存储器访问请求的处理器8操作在安全模式40中的一个。存储器访问请求还与表属性位NST相关联,表属性位NST指示用于产生该存储器访问请求的页表的任一者是否存储于存储器的非安全区域内。步骤132的确定确保:在步骤134,如果S位指示处理器8系在安全模式(即S等于0)且表属性位为「0」用以指示未使用任何非安全模式页表来产生存储器访问请求,则数据访问控制电路128将仅传递及允许存储器访问至安全存储器22。还可依据标准技术进一步对访问的权限等级进行设限。如果存储器访问请求无法通过这些组合的测试,则处理进行至步骤136。步骤136确定访问是否为读取。如果访问为读取,则步骤138针对该读取返回全部0值(另一替代方式为,触发异常,使得操作***可处理适当的响应)。如果访问并非为读取,则步骤140阻塞写入操作。
回到图1,可见安全模式页表数据的第一部分36系存储于安全存储器22内。安全模式页表数据的第二部分38系存储在非安全存储器6内。非安全存储器6配置在单独集成电路中,且其具有比安全存储器22还大的存储容量。安全模式页表数据的第一部分36可为与还存储在安全存储器22内且包括敏感数据的页面相关的页表数据,而安全模式页表数据的第二部分38会与存储于非安全存储器6内且包括非敏感数据的页面相关。安全存储器22内的有限的存储容量不耗用在存储安全模式页表数据的第二部分38,安全模式页表数据的第二部分38另外可存储在非安全存储器6内。安全模式页表数据被标记以指示是否部分的安全模式页表数据系存储在非安全存储器6,如此可允许行使控制,以使存储器访问可与表属性位NST相关联,该表属性位NST指示与该存储器访问相关联的任何页表数据是否存储在非安全存储器6内,尽管其形成部分的安全模式页表数据。通过这种方式,安全模式页表数据的第一部分36可安全地保存在安全存储器22内,其中可确保不会遭遇恶意窜改,且表属性位NST可在硬件控制下产生,如此其可以如下方式来指示其涉及存储在非安全存储器6内的页表数据:其可由存储器管理单元24通过仅参考安全模式页表数据36的第一部分而检测到,且其不会因恶意窜改安全模式页表数据的第二部分38而被修改。
将认识到,前述技术允许使用既有软件,且不需感知NSTable位及相关机制的存在或操纵。前述技术还允许部分页表数据的重用,例如,非安全存储器映射外设和非安全共享库码。
图8是流程图,其示意性地示出了与存储器访问请求相关联的某些处理。在步骤142,处理等待接收到存储器访问请求。此存储器访问请求可为加载(load)指令、储存(store)指令、取指令操作等的结果。存储器访问可访问随机访问存储器、只读存储器等内的一部分存储器,或可访问至存储器地址空间内的存储器映射外设。这些替代方案是本领域技术人员所熟知的。当在步骤142接收到存储器访问请求时,处理进行至步骤144,其中,在转译后备缓冲器30中执行查询,以确定转译后备缓冲器30内是否存在对应于与存储器访问请求相关联的虚拟地址的条目。将认识到,转译后备缓冲器30可对应于转译后备缓冲器层次结构,诸如,包括微转译后备缓冲器(用于快速访问至最近使用的转译)和较大型转译后备缓冲器(其上存储有大量的先前使用的转译)。将认识到,转译后备缓冲器除了存储用以允许从虚拟地址转译至物理地址的数据外,还存储更多其它数据,诸如存储有许可数据、NST位数据、安全模式数据、处理标识符(ASID)、指示转译系全局或非全局的数据,等等。当确定虚拟地址具有相应数据存储在转译后备缓冲器内时所执行的匹配,其不仅考虑到虚拟地址的位,还可匹配安全位S,安全位S指示存储器请求是否源自安全模式或非安全模式。转译后备缓冲器内用于条目的NST位还可被读取,且如果其被设置,则例如,标记为全局条目的条目可降级至非全局条目(即,仅应用至具有所标识的匹配进程的单一进程)。
如果步骤144确定转译后备缓冲器不具有匹配条目,则处理进行至步骤146,其中执行在安全模式页表数据或非安全模式页表数据中的相关者中的页表行走。此页表行走可参照前述相关图3、图5和图6的说明。如果微处理器系在安全模式中,则页表行走访问将标记为安全,至少直到看见NSTable=1值出现。在步骤148,确定页面是否成功地映射至物理存储器。如果不存在成功映射,则处理进行至步骤150,其中触发异常处理。如果映射成功,则处理进行至步骤152,其中将物理地址转译数据、NST位及其它访问许可位存储在转译后备缓冲器内以供后续使用。
如果步骤144确定在转译后备缓冲器中存在匹配,则处理进行至步骤154,其中,从转译后备缓冲器读取匹配数据。此匹配数据包括物理地址转译数据、访问许可及NST位。接在步骤152及154之后,处理进行至步骤156,其中,确定获取的访问许可数据是否指示允许存储器访问。例如,一部分存储器可被标记为仅当操作在特权模式中时可访问,且处理器当前可处在用户模式中,因此不应允许进行访问。如果恢复的访问许可不允许进行访问,则处理进行至步骤150,其中,再次触发异常处理。如果访问许可指示允许进行访问,则处理进行至步骤158,其中,使用物理地址转译数据和存储器访问的原始虚拟地址来形成物理地址。步骤160确定NST位是否设定为0,以及安全位S是否指示存储器访问源自安全模式中执行的进程。如果并未同时符合两个条件,则处理进行至步骤162,其中,尝试作为使用全物理地址的非安全访问而执行存储器访问。如果同时满足步骤160的两个条件,则处理进行至步骤164,其中,尝试如同使用全物理地址的安全访问般来执行存储器访问。在步骤162及164之后,步骤166确定物理地址是否对应于安全存储器区域或安全外设。如果物理地址不对应于安全存储器或安全外设,则处理进行至步骤168,其中,执行存储器访问(不论是读取还是写入)。如果步骤166确定地址系对应于安全存储器区域或安全外设,则步骤170使用访问控制电路128来确定事务处理是否安全,也就是NST位是否具有零值。如果事务处理安全,则处理再次进行至步骤168,以执行访问动作。如果事务处理不安全,则处理进行至步骤172,其中,如果访问为写入操作,则阻塞该写入操作,或者如果访问为读取操作,则返回零值。
图9示出了可使用的虚拟机实现方式。尽管前述的具体实施例是在用以操作支持相关技术的特定处理硬件的设备及方法架构下实现本发明的,然而,还可提供所谓的硬件装置的虚拟机实现方式。这些虚拟机实现方式在主机处理器530上执行,主机处理器530一般会执行支持虚拟机程序的主机操作***520。通常,需要以适当速度运行的大功率处理器来提供虚拟机实现方式,然而此方式在某些情况下是适合的,诸如,当需求执行另一处理器所属的本地程序代码以达到兼容或重用目的时。虚拟机程序510能够执行应用程序(或操作***)500以提供和由真实硬件装置执行程序时相同的结果。因此,可使用虚拟机程序510,从应用程序500内部执行程序指令(包括前述的存储器访问的控制)。

Claims (18)

1.一种用于处理数据的设备,所述设备包括:
存储器;
处理电路,该处理电路响应于程序指令而执行处理操作,所述处理电路具有多个操作模式,该多个操作模式包括一个或多个安全模式和一个或多个非安全模式,所述存储器包括:
(iii)一个或多个安全区域,该安全区域在所述一个或多个安全模式中能被访问,而在所述一个或多个非安全模式中不能被访问;以及
(iv)一个或多个非安全区域,该非安全区域在所述一个或多个安全模式中能被访问,且在所述一个或多个非安全模式中能被访问;
存储器控制电路,该存储器控制电路响应于页表数据而管理对所述存储器的访问;其中,
所述页表数据包括安全模式页表数据及非安全模式页表数据,当所述处理电路操作在所述一个或多个安全模式中时,使用该安全模式页表数据来管理对所述存储器的访问,而当所述处理电路操作在所述一个或多个非安全模式中时,使用该非安全模式页表数据来管理对所述存储器的访问;
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级处的第一层级页表包括页表条目,该页表条目指向所述层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;并且
所述第一层级页表的每个页表条目包括表安全字段,该表安全字段指示由所述页表条目所指向的第二层级页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内,
其中,所述页表数据提供与经受存储器访问操作的存储器地址相关联的属性数据,所述处理电路被配置为执行多个软件进程,且用于所述存储器地址的所述属性数据是用于来自所述多个软件进程中任一者的存储器访问的全局属性数据,或者是用于来自单个软件进程的存储器访问的非全局属性数据,并且,所述存储器控制电路被配置为执行页表行走操作,在所述页表行走操作中,访问递减通过所述层次结构中的所述页表层级的页表条目序列,以检索要管理的存储器访问操作的属性数据,并且,如果所述页表条目序列中的任一页表条目所具有的所述表安全字段的值指示所述页表条目序列中的一个页表条目存储在所述一个或多个非安全区域内,则所述存储器控制电路被配置成将所述属性数据视为如同非全局属性数据一般。
2.如权利要求1所述的设备,其中,如果所述页表条目序列中任一页表条目所具有的所述表安全字段的值指示所述页表条目序列中的一个页表条目存储在所述一个或多个非安全区域内,则所述存储器控制电路还将所述存储器访问操作标识为非安全存储器访问操作。
3.如权利要求2所述的设备,其中,所述存储器控制电路通过将非安全表属性包括在为所述存储器访问操作所检索到的所述属性数据内,将所述存储器访问操作标识为非安全存储器访问操作。
4.如权利要求2或3所述的设备,其中,如果所述存储器控制电路将所述存储器访问操作标识为非安全存储器访问操作,且所述存储器访问操作针对所述一个或多个安全区域,则所述存储器阻塞所述存储器访问操作。
5.如权利要求1所述的设备,其中,所述页表数据提供与经受存储器访问操作的存储器地址相关联的属性数据,所述属性数据提供在所述存储器访问操作的虚拟存储器地址与所述存储器内的物理存储器地址间的映射。
6.如权利要求1所述的设备,其中,所述一个或多个安全区域的总存储容量小于所述一个或多个非安全区域的总存储容量。
7.如权利要求1所述的设备,其中,所述一个或多个非安全区域中的至少一些区域形成在第一集成电路内,并且,所述处理电路、所述存储器控制电路和所述一个或多个安全区域形成在与所述第一集成电路分开的第二集成电路内。
8.如权利要求1所述的设备,包括安全转译表基址寄存器,该安全转译表基址寄存器被配置为存储基址地址值,该基址地址值指向所述安全模式页表数据的所述层次结构的入口点,并且,所述安全转译表基址寄存器被配置为存储安全字段,该安全字段指示是否所有的所述安全模式页表数据都存储在所述一个或多个非安全区域中。
9.一种用于处理数据的设备,所述设备包括:
存储器部件,用以储存数据;
处理部件,用以响应于程序指令流而执行处理操作,所述处理部件具有多个操作模式,该多个操作模式包括一个或多个安全模式及一个或多个非安全模式,所述存储器部件包括:
(i)一个或多个安全区域,该安全区域在所述一个或多个安全模式中是能被访问的,而在所述一个或多个非安全模式中是不能被访问的;以及
(ii)一个或多个非安全区域,该非安全区域在所述一个或多个安全模式中是能被访问的,并且在所述一个或多个非安全模式中是能被访问的;
存储器控制部件,用于响应于页表数据而管理对所述存储器部件的访问;其中,
所述页表数据包括安全模式页表数据和非安全模式页表数据,当所述处理部件操作在所述一个或多个安全模式中时,使用该安全模式页表数据来管理对所述存储器部件的访问,而当所述处理部件操作在所述一个或多个非安全模式中时,使用该非安全模式页表数据来管理对所述存储器部件的访问;
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级处的第一层级页表包括页表条目,该页表条目指向所述层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;并且
所述第一层级页表的每个页表条目包括表安全字段,该表安全字段指示由所述页表条目所指向的第二层级页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内,
其中,所述页表数据提供与经受存储器访问操作的存储器地址相关联的属性数据,所述处理部件被配置为执行多个软件进程,且用于所述存储器地址的所述属性数据是用于来自所述多个软件进程中任一者的存储器访问的全局属性数据,或者是用于来自单个软件进程的存储器访问的非全局属性数据,并且,所述存储器控制部件被配置为执行页表行走操作,在所述页表行走操作中,访问递减通过所述层次结构中的所述页表层级的页表条目序列,以检索要管理的存储器访问操作的属性数据,并且,如果所述页表条目序列中的任一页表条目所具有的所述表安全字段的值指示所述页表条目序列中的一个页表条目存储在所述一个或多个非安全区域内,则所述存储器控制部件被配置成将所述属性数据视为如同非全局属性数据一般。
10.一种管理对存储器的访问的方法,该存储器与处理电路相关联,该处理电路具有多个操作模式,该多个操作模式包括一个或多个安全模式和一个或多个非安全模式,所述存储器包括一个或多个安全区域和一个或多个非安全区域,该一个或多个安全区域在所述一个或多个安全模式中是能被访问的而在所述一个或多个非安全模式中是不能被访问的,该一个或多个非安全区域在所述一个或多个安全模式中是能被访问的且在所述一个或多个非安全模式中是能被访问的,所述方法包括以下步骤:
当所述处理电路操作在所述一个或多个安全模式中时,响应于安全模式页表数据而管理对所述存储器的访问;以及
当所述处理电路操作在所述一个或多个非安全模式中时,响应于非安全模式页表数据而管理对所述存储器的访问;其中,
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级处的第一层级页表包括页表条目,该页表条目指向所述层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;并且
所述第一层级页表的每个页表条目包括表安全字段,该表安全字段指示由所述页表条目所指向的第二层级页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内,
其中,所述页表数据提供与经受存储器访问操作的存储器地址相关联的属性数据,所述处理电路执行多个软件进程,并且,用于所述存储器地址的所述属性数据是用于来自所述多个软件进程中的任一者的存储器访问的全局属性数据,或为用于来自单个软件进程的存储器访问的非全局属性数据,并且,执行页表行走操作,在所述页表行走操作中,访问递减通过所述层次结构中的所述页表层级的页表条目序列,以检索要管理的存储器访问操作的属性数据,并且,如果所述页表条目序列中的任一页表条目所具有的所述表安全字段的值指示所述页表条目序列中的一个页表条目存储在所述一个或多个非安全区域内,则将所述属性数据视为如同非全局属性数据一般。
11.如权利要求10所述的方法,其中,如果所述页表条目序列中的任一页表条目所具有的所述表安全字段的值指示所述页表条目序列中的一个页表条目存储在所述一个或多个非安全区域内,则还将所述存储器访问操作标识为非安全存储器访问操作。
12.如权利要求11所述的方法,包括通过将非安全表属性包括在用于所述存储器访问操作所检索到的所述属性数据内,将所述存储器访问操作标识为非安全存储器访问操作。
13.如权利要求11或12所述的方法,其中,如果所述存储器访问操作被标识为非安全存储器访问操作且所述存储器访问操作针对所述一个或多个安全区域,则所述存储器阻塞所述存储器访问操作。
14.如权利要求10所述的方法,其中,所述页表数据提供与经受存储器访问操作的存储器地址相关联的属性数据,所述属性数据提供在所述存储器访问操作的虚拟存储器地址与所述存储器内的物理存储器地址间的映射。
15.如权利要求10所述的方法,其中,所述一个或多个安全区域的总存储容量小于所述一个或多个非安全区域的总存储容量。
16.如权利要求10所述的方法,其中,所述一个或多个非安全区域中的至少一些区域形成在第一集成电路内,并且,所述处理电路和所述一个或多个安全区域形成在与所述第一集成电路分开的第二集成电路内。
17.如权利要求10所述的方法,其中,安全转译表基址寄存器存储基址地址值,该基址地址值指向所述安全模式页表数据的所述层次结构的入口点,并且,所述安全转译表基址寄存器存储安全字段,该安全字段指示是否所有的所述安全模式页表数据存储在所述一个或多个非安全区域中。
18.一种用于处理数据的设备,所述设备包括:
存储器;
处理电路,该处理电路响应于程序指令而执行处理操作,所述处理电路具有多个操作模式,该多个操作模式包括一个或多个安全模式以及一个或多个非安全模式,所述存储器包括:
(iii)一个或多个安全区域,该安全区域在所述一个或多个安全模式中是能被访问的,而在所述一个或多个非安全模式中是不能被访问的;以及
(iv)一个或多个非安全区域,该非安全区域在所述一个或多个安全模式中是能被访问的,且在所述一个或多个非安全模式中是能被访问的;
存储器控制电路,该存储器控制电路响应于页表数据而管理对所述存储器的访问;其中,
所述页表数据包括安全模式页表数据及非安全模式页表数据,当所述处理电路操作在所述一个或多个安全模式中时,使用该安全模式页表数据来管理对所述存储器的访问,而当所述处理电路操作在所述一个或多个非安全模式中时,使用该非安全模式页表数据来管理对所述存储器的访问;
所述安全模式页表数据包括页表层次结构,该页表层次结构具有相关联的页表层级,该页表层级被配置,使得在第一页表层级处的第一层级页表包括页表条目,该页表条目指向所述层次结构中比所述第一页表层级低的第二页表层级处的各自第二层级页表;
所述第一层级页表的每个页表条目包括表安全字段,该表安全字段指示由所述页表条目所指向的第二层级页表是存储在所述一个或多个安全区域内还是所述一个或多个非安全区域内;并且
所述存储器控制电路被配置,使得当操作在所述一个或多个安全模式中的一个且所述存储器控制电路接收到信号时,该信号指示已使用存储在所述一个或多个非安全区域内的页表数据来管理针对操作在所述一个或多个安全模式之一中的存储器访问请求的访问,则所述存储器控制电路以如同所述存储器访问发生在当操作在所述一个或多个非安全模式中时的方式来处理所述存储器访问,
其中,所述页表数据提供与经受存储器访问操作的存储器地址相关联的属性数据,所述处理电路被配置为执行多个软件进程,且用于所述存储器地址的所述属性数据是用于来自所述多个软件进程中任一者的存储器访问的全局属性数据,或者是用于来自单个软件进程的存储器访问的非全局属性数据,并且,所述存储器控制电路被配置为执行页表行走操作,在所述页表行走操作中,访问递减通过所述层次结构中的所述页表层级的页表条目序列,以检索要管理的存储器访问操作的属性数据,并且,如果所述页表条目序列中的任一页表条目所具有的所述表安全字段的值指示所述页表条目序列中的一个页表条目存储在所述一个或多个非安全区域内,则所述存储器控制电路被配置成将所述属性数据视为如同非全局属性数据一般。
CN201180010180.6A 2010-02-17 2011-02-14 在安全与非安全存储器区域内存储安全模式页表数据 Active CN102804153B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/656,849 US20110202740A1 (en) 2010-02-17 2010-02-17 Storing secure page table data in secure and non-secure regions of memory
US12/656,849 2010-02-17
PCT/GB2011/050270 WO2011101660A2 (en) 2010-02-17 2011-02-14 Storing secure mode page table data in secure and non-secure regions of memory

Publications (2)

Publication Number Publication Date
CN102804153A CN102804153A (zh) 2012-11-28
CN102804153B true CN102804153B (zh) 2016-05-25

Family

ID=43902882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180010180.6A Active CN102804153B (zh) 2010-02-17 2011-02-14 在安全与非安全存储器区域内存储安全模式页表数据

Country Status (9)

Country Link
US (1) US20110202740A1 (zh)
EP (1) EP2537097B1 (zh)
JP (1) JP5581403B2 (zh)
KR (1) KR101801022B1 (zh)
CN (1) CN102804153B (zh)
IL (1) IL220529A (zh)
MY (1) MY156029A (zh)
TW (1) TWI506439B (zh)
WO (1) WO2011101660A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12066953B2 (en) 2015-03-02 2024-08-20 Arm Limited Handling address translation requests

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694755B1 (en) * 2010-03-17 2014-04-08 Ambarella, Inc. Virtual memory management for real-time embedded devices
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
KR102051816B1 (ko) * 2013-02-05 2019-12-04 에이알엠 리미티드 메모리 보호 유닛들을 사용한 가상화 지원 게스트 오퍼레이팅 시스템
US8959576B2 (en) 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
KR101753866B1 (ko) * 2013-05-10 2017-07-04 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 메모리 액세스의 가속
CN103532938B (zh) * 2013-09-29 2016-09-21 东莞宇龙通信科技有限公司 应用数据保护的方法和***
US9864861B2 (en) * 2014-03-27 2018-01-09 Intel Corporation Object oriented marshaling scheme for calls to a secure region
JP6188633B2 (ja) * 2014-05-26 2017-08-30 Kddi株式会社 コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
JP6181004B2 (ja) 2014-06-20 2017-08-16 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6584823B2 (ja) * 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
US10558584B2 (en) * 2014-06-23 2020-02-11 Intel Corporation Employing intermediary structures for facilitating access to secure memory
GB2529248A (en) * 2014-08-15 2016-02-17 Advanced Risc Mach Ltd Performance monitoring in a data processing apparatus capable of executing instructions at a plurality of privilege levels
US9703720B2 (en) 2014-12-23 2017-07-11 Intel Corporation Method and apparatus to allow secure guest access to extended page tables
US9948618B2 (en) * 2015-02-05 2018-04-17 Western Digital Technologies, Inc. Secure stream buffer on network attached storage
US10102391B2 (en) * 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
CN106933751B (zh) * 2015-12-29 2019-12-24 澜起科技股份有限公司 用于保护动态随机访问存储器的方法和设备
GB2546742B (en) * 2016-01-26 2019-12-11 Advanced Risc Mach Ltd Memory address translation management
US10628315B2 (en) * 2017-09-28 2020-04-21 Intel Corporation Secure memory repartitioning technologies
CN108154032B (zh) * 2017-11-16 2021-07-30 中国科学院软件研究所 具有内存完整性保障功能的计算机***信任根构建方法
US11082231B2 (en) * 2017-12-29 2021-08-03 Intel Corporation Indirection directories for cryptographic memory protection
CN109840411B (zh) * 2018-02-27 2021-01-08 中国科学院计算技术研究所 一种应用的保护方法及***
US11392496B2 (en) 2018-02-28 2022-07-19 Sony Corporation Memory management system, memory management method, and information processing apparatus with reduced power consumption
US11487906B2 (en) * 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11088846B2 (en) * 2019-03-28 2021-08-10 Intel Corporation Key rotating trees with split counters for efficient hardware replay protection
CN111143900B (zh) * 2019-12-24 2023-09-26 海光信息技术(苏州)有限公司 数据处理、访问控制方法、***、器件、设备、存储介质
CN113344764B (zh) * 2021-05-11 2024-04-19 中天恒星(上海)科技有限公司 安全图形处理器、处理器芯片、显示卡、装置、方法及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004046738A2 (en) * 2002-11-18 2004-06-03 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
CN1723448A (zh) * 2002-11-18 2006-01-18 Arm有限公司 用于保护以防恶意程序的安全存储器
CN101520753A (zh) * 2008-02-29 2009-09-02 Arm有限公司 数据处理设备和控制虚拟机对安全存储器的访问的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804766B1 (en) * 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
JP2000276405A (ja) * 1999-01-19 2000-10-06 Matsushita Electric Ind Co Ltd アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US7426644B1 (en) * 2001-12-05 2008-09-16 Advanced Micro Devices, Inc. System and method for handling device accesses to a memory providing increased memory access security
US7130977B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Controlling access to a control register of a microprocessor
GB2396713B (en) * 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
US7363491B2 (en) * 2004-03-31 2008-04-22 Intel Corporation Resource management in security enhanced processors
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
US8352705B2 (en) * 2008-01-15 2013-01-08 Vmware, Inc. Large-page optimization in virtual memory paging systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004046738A2 (en) * 2002-11-18 2004-06-03 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
CN1723448A (zh) * 2002-11-18 2006-01-18 Arm有限公司 用于保护以防恶意程序的安全存储器
CN101520753A (zh) * 2008-02-29 2009-09-02 Arm有限公司 数据处理设备和控制虚拟机对安全存储器的访问的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12066953B2 (en) 2015-03-02 2024-08-20 Arm Limited Handling address translation requests

Also Published As

Publication number Publication date
IL220529A0 (en) 2012-08-30
EP2537097B1 (en) 2020-05-27
JP5581403B2 (ja) 2014-08-27
US20110202740A1 (en) 2011-08-18
WO2011101660A3 (en) 2011-12-08
EP2537097A2 (en) 2012-12-26
JP2013522702A (ja) 2013-06-13
CN102804153A (zh) 2012-11-28
TW201205285A (en) 2012-02-01
MY156029A (en) 2015-12-31
KR20130001240A (ko) 2013-01-03
WO2011101660A2 (en) 2011-08-25
IL220529A (en) 2016-06-30
KR101801022B1 (ko) 2017-11-24
TWI506439B (zh) 2015-11-01

Similar Documents

Publication Publication Date Title
CN102804153B (zh) 在安全与非安全存储器区域内存储安全模式页表数据
US8296538B2 (en) Storing secure mode page table data in secure and non-secure regions of memory
US7401358B1 (en) Method of controlling access to control registers of a microprocessor
US7673345B2 (en) Providing extended memory protection
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
US7689733B2 (en) Method and apparatus for policy-based direct memory access control
US7130977B1 (en) Controlling access to a control register of a microprocessor
US20060036830A1 (en) Method for monitoring access to virtual memory pages
CN109002706A (zh) 一种基于用户级页表的进程内数据隔离保护方法和***
US7082507B1 (en) Method of controlling access to an address translation data structure of a computer system
US6785790B1 (en) Method and apparatus for storing and retrieving security attributes
EP3881189B1 (en) An apparatus and method for controlling memory accesses
CN115357527A (zh) 用于仅执行事务存储器的技术
US20230236925A1 (en) Tag checking apparatus and method
TW202141284A (zh) 使用複數個實體位址空間的裝置及方法
US12067263B2 (en) Controlling memory access in a data processing systems with multiple subsystems
TW202137008A (zh) 使用複數個實體位址空間的裝置及方法
US20240202139A1 (en) Technique for constraining access to memory using capabilities
US10990538B2 (en) Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device
GB2579614A (en) Page table isolation method

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