CN101520753B - 数据处理设备和控制虚拟机对安全存储器的访问的方法 - Google Patents

数据处理设备和控制虚拟机对安全存储器的访问的方法 Download PDF

Info

Publication number
CN101520753B
CN101520753B CN2009101179751A CN200910117975A CN101520753B CN 101520753 B CN101520753 B CN 101520753B CN 2009101179751 A CN2009101179751 A CN 2009101179751A CN 200910117975 A CN200910117975 A CN 200910117975A CN 101520753 B CN101520753 B CN 101520753B
Authority
CN
China
Prior art keywords
security
access
address
virtual machine
request
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
CN2009101179751A
Other languages
English (en)
Other versions
CN101520753A (zh
Inventor
D·H·曼塞尔
R·R·格里森思怀特
S·D·比尔斯
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 CN101520753A publication Critical patent/CN101520753A/zh
Application granted granted Critical
Publication of CN101520753B publication Critical patent/CN101520753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights

Landscapes

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

Abstract

本发明涉及数据处理设备和控制虚拟机对安全存储器的访问的方法。处理电路执行管理程序软件以支持多个虚拟机在处理电路上的执行。提供存储器系统用于存储数据,存储器系统包括安全存储器和非安全存储器,安全存储器仅可经由安全访问请求访问。地址转换电路响应于访问请求,执行地址转换过程以识别存储器中的物理地址,并使指定该物理地址的修改的访问请求发布到存储器系统。可信虚拟机标识符由该软件管理,如果信任当前虚拟机访问安全存储器,则该软件设置可信虚拟机标识符。响应于由当前虚拟机发布的访问请求,只有当可信虚拟机标识符被设置,地址转换电路才能使修改的访问请求作为指定安全存储器内的物理地址的安全访问请求被发布。

Description

数据处理设备和控制虚拟机对安全存储器的访问的方法
技术领域
本发明涉及一种数据处理设备以及用于控制由在该数据处理设备的处理电路上执行的虚拟机对安全存储器的访问的方法。
背景技术
在典型的虚拟化环境中,诸如处理器内核的处理装置被布置成执行管理程序(hypervisor)软件,该管理程序软件支持多个虚拟机在该处理装置上的执行。每个虚拟机将典型地具有一个或多个在特定操作系统上运行的应用程序,其中该管理程序软件用作虚拟机和底层硬件之间的接口层以使得能够为虚拟机提供适当的硬件支持。经由管理程序软件层,每个虚拟机获得了其所处于的系统的特定视图(view),因此获得了该系统的可用硬件资源的特定视图。每个虚拟机独立于系统上的其它虚拟机进行操作,并且实际上不必知道其它虚拟机的存在。
因而,在示例性系统中,所执行的一个虚拟机可能运行特定的操作系统例如Microsoft Windows,而另一个执行的虚拟机运行不同的操作系统例如Linux。
不管有没有使用虚拟化技术,在许多情况下与一个应用程序相关联的数据是敏感数据,该敏感数据不应被运行在数据处理设备的装置上的其它应用程序可访问。在这种情形下显然重要的是,确保这种敏感数据安全,使得它不能被可加载到该数据处理设备上的其它应用程序访问,所述其它应用程序例如为试图访问该敏感数据而加载到该数据处理设备上的黑客应用程序。
传统地,操作系统开发人员的任务是确保该操作系统提供足够的安全性以确保一个应用程序的敏感数据不能被在该操作系统控制下运行的其它应用程序访问。然而,随着系统变得更加复杂,通常的趋势是操作系统变得更大更复杂,在这种情形下确保操作系统自身内足够的安全性就变得日益困难。为了试图减轻对操作系统安全性的依赖,已知的是提供一种其中数据处理设备被分成两个截然不同的域或世界的系统,这些域提供一种用于处理硬件级安全性的机制。例如在共同受让的共同待决的美国专利申请号10/714,561号中描述了这种系统,该申请的内容在此并入以供参考,该申请描述了一种具有安全域和非安全域的系统。在该系统中,非安全域和安全域实际上建立分离的世界,其中安全域提供通过硬件强制边界与其它执行空间分开的可信执行空间,而同样地非安全域提供不可信(non-trusted)执行空间。
在这种安全系统中,存储器系统通常被分成安全存储器和非安全存储器。在非安全域中运行的任何应用程序不能访问安全存储器。然而,当处于安全域中时其通常可以访问安全存储器和非安全存储器。
当试图采用之前提到的虚拟化技术将这种基于硬件的安全性并入到数据处理设备中时,该处理电路可以被布置成当处于非安全域中时执行多个非安全虚拟机,每个非安全虚拟机可以被给予其自己的非安全存储器地址空间的视图。该处理电路然后可以进入安全域以便执行管理程序软件,并且如果需要的话,实际上可以在安全域内的安全操作系统的控制下执行一个或多个安全应用程序。该管理程序通过对地址转换机制进行控制来维持多个非安全虚拟机的分离,该地址转换机制用来生成物理地址以便访问存储器系统。由于这是从安全域进行管理的,所以非安全虚拟机不能修改该地址转换机制。
为了使得还能够提供多个安全虚拟机,必要的是实施一种这样的系统:其中管理程序在安全域的级别之上的附加特权级操作,从而使得该管理程序能够对各个安全虚拟机的地址转换机制进行与用于非安全虚拟机的相同级别的控制。然而,这种方案将要求在已被提供以支持安全域和非安全域的那些级别之上的附加特权级,并且这个附加级的复杂性在许多实施方式中被认为是不可接受的。
然而,若不以上述方式修改系统,就不可能虚拟化多个安全操作系统,即在安全域中运行多个虚拟机。尤其是,由于在安全域中在管理程序软件和在安全域中执行的任何其它软件之间不存在特权级区别,所以如果建立多个安全虚拟机,则对一个安全虚拟机而言就可能修改由管理程序软件放置在适当位置(put in place)的地址转换机制,并且通过这个过程可以访问其它虚拟机之一的安全数据。
因而,在未给管理程序提供附加特权级的系统中,任何虚拟机必须被布置成在非安全域中执行,但结果其将不能访问安全存储器。
因而,希望提供一种允许执行多个虚拟机的机制,这些虚拟机在管理程序软件控制的条件下可以访问安全存储器而不要求给管理程序软件提供附加特权级。
发明内容
从第一方面来看,本发明提供一种数据处理设备,该设备包括:处理电路,其用于执行管理程序软件以支持多个虚拟机在该处理电路上的执行;存储器系统,其用于存储数据以供该处理电路访问,该存储器系统包括用于存储安全数据的安全存储器和用于存储非安全数据的非安全存储器,所述安全存储器仅可经由安全访问请求访问;地址转换电路,其响应于由在该处理电路上执行的当前虚拟机所发布的并且指定虚拟地址的访问请求,执行地址转换过程以识别所述存储器中的物理地址,并使得指定该物理地址的修改的访问请求发布到该存储器系统,其中所述物理地址含有当前虚拟机试图访问的数据;和用于存储由该管理程序软件管理的可信虚拟机标识符的储存器,该管理程序软件被布置成如果将信任当前虚拟机来访问该安全存储器则设置该可信虚拟机标识符;响应于由当前虚拟机发布的访问请求,只有当可信虚拟机标识符被设置,则该地址转换电路才能使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布。
依据本发明,提供储存器以存储由管理程序软件管理的可信虚拟机标识符,该管理程序软件依赖于在处理电路上执行的当前虚拟机设置可信虚拟机标识符,以便识别该当前虚拟机是否可信。然后,地址转换电路在执行地址转换过程时参考该可信虚拟机标识符,并且只有当可信虚拟机标识符被设置,才能使由地址转换过程所修改的访问请求指定安全存储器内的物理地址。
因而,本发明允许管理程序软件支持多个虚拟机,这些虚拟机中的至少一些可以访问安全存储器。因此本发明允许多个可信虚拟机在同一处理电路上共存。
该管理程序软件通常被布置成对地址转换电路执行的地址转换过程进行控制,因而能够把每个这种可信虚拟机限制到安全存储器空间的子集,从而确保该多个可信虚拟机的分离。
因此,就具有安全域和非安全域的系统的先前示例来说,所有的虚拟机可以在非安全域中执行,但通过使用由在安全域中执行的管理程序软件管理的可信虚拟机标识符,那些虚拟机中的某些虚拟机可以被认为是可信虚拟机,允许它们发布可被地址转换电路映射到安全存储器地址空间的访问请求。
该地址转换电路可以各种方式布置。然而,在一个实施例中该地址转换电路被布置成通过执行依赖于第一级页表的虚拟地址到中间地址转换以及依赖于第二级页表的中间地址到物理地址转换来执行地址转换,至少该第二级页表由管理程序软件管理。通过确保管理程序软件管理第二级页表,于是管理程序软件可以确保在处理电路上执行的各个虚拟机的分离。在一个实施例中,可为每个虚拟机提供第二级页表。类似地,可以逐个虚拟机地指定第一级页表,并且实际上在某些实施例中将为在特定虚拟机内运行的不同应用程序提供单独的第一级页表。
第一级页表可以用各种方式进行管理,但在一个实施例中第一级页表由当前虚拟机管理。因而,当前执行的虚拟机可以控制其自己的一个(或多个)第一级页表,并且因此可以管理如何把虚拟地址映射到中间地址,但是管理程序软件依赖于第二级页表管理中间地址到物理地址转换,从而确保每个虚拟机被给予其自己的物理存储器的视图。
可以众多方式布置地址转换过程以考虑到可信虚拟机标识符。在一个实施例中,该数据处理设备进一步包括:页表标识符储存器,其用于识别第一级页表和第二级页表,并且如果可信虚拟机标识符被设置,则该页表标识符储存器被布置成识别非安全第二级页表和安全第二级页表。当响应于由当前虚拟机发布的访问请求而执行地址转换时,地址转换电路使用指定的虚拟地址来访问第一级页表中的描述符,该描述符提供产生对应的中间地址所需的信息,所述描述符进一步提供第一级安全性值。如果可信虚拟机标识符被设置,则第一级安全性值被用来确定当执行中间地址到物理地址转换时是使用非安全第二级页表还是使用安全第二级页表。在一个实施例中,非安全第二级页表将仅允许中间地址被映射到非安全存储器内的物理地址,而安全第二级页表将额外地允许中间地址在某些条件下被映射到安全存储器内的物理地址。
在这些实施例中,如果可信虚拟机标识符被设置以识别当前虚拟机为可信虚拟机,则从第一级页表的相关描述符中获得的第一级安全性值被用来确定当执行中间地址到物理地址转换时是使用非安全第二级页表还是使用安全第二级页表。因此,当前虚拟机通过其对第一级页表的管理可以识别其想把某些访问当作非安全访问还是安全访问。如果这些访问经由第一级安全性被标记为是非安全的,则第二级地址转换将使用非安全第二级页表来进行。然而,如果该访问被标记为安全的,并且可信虚拟机标识符被设置,则当执行第二级地址转换时使用安全第二级页表。
应当注意,第二级页表可以被放置在安全存储器(因为管理程序软件可以访问安全存储器)或非安全存储器中。由于管理程序软件管理第二级地址转换,所以即使这些第二级页表被放置在非安全存储器中,管理程序仍可以确保它们不能被任何虚拟机访问。然而,把第二级页表放置在安全存储器中本质上更加安全,因为在这种情况下即使映射条目中存在错误,其原则上允许一个或多个虚拟机对这些表的访问,鉴于安全存储器的安全状态,这种访问仍会被制止。不过,安全存储器通常是相对有限的资源,因此实际上这些页表的位置选择将在提高安全性和空间之间权衡。
在一个实施例中,如果可信虚拟机标识符未被设置,则当执行中间地址到物理地址转换时使用非安全第二级页表,而不管第一级安全性值,并且该地址转换电路使该修改的访问请求作为指定非安全存储器内的物理地址的非安全访问请求被发布。因此,如果可信虚拟机标识符未被设置,则第一级安全性值被忽略,因而这就确保不给非可信虚拟机提供任何访问安全存储器的机制。
在一个实施例中,如果在执行中间地址到物理地址转换时使用安全第二级页表,则该地址转换电路使用产生的中间地址来访问安全第二级页表中的描述符,该描述符提供产生对应的物理地址所需的信息,所述描述符进一步提供第二级安全性值。该第二级安全性值然后被用来确定地址转换电路是把安全存储器内的物理地址还是把非安全存储器内的物理地址生成为对应的物理地址。因此,如果可信虚拟机标识符被设置,则该地址转换电路使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布,第一级安全性值使得在执行中间地址到物理地址转换时使用安全第二级页表,并且第二级安全性值使该地址转换电路把安全存储器内的物理地址生成为对应的物理地址。
通过这种方案,只有当第一级安全性值和第二级安全性值都指示该访问是对安全存储器的访问,并且可信虚拟机标识符由管理程序软件设置时,实际上才允许该访问关于安全存储器进行。如果第一级安全性值或第二级安全性值把该访问标记为非安全,则相反该访问将被映射到非安全物理地址空间中的地址。
虽然在上述的实施例中使用非安全第二级页表和安全第二级页表,但是在可选实施例中不要求这两个单独的第二级页表。事实上,在一个实施例中,当响应于由当前虚拟机发布的访问请求而执行地址转换时,地址转换电路使用指定的虚拟地址来访问第一级页表中的描述符,该描述符提供产生对应的中间地址所需的信息,所述描述符进一步提供第一级安全性值;并且该地址转换电路进一步使用产生的中间地址来访问第二级页表中的描述符,该描述符提供产生对应的物理地址所需的信息,所述描述符进一步提供第二级安全性值。如果可信虚拟机标识符被设置,则在第一级安全性值和第二级安全性值都把该访问识别为安全的情况下,该地址转换电路使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布。
依据这个实施例,第一级安全性值未被用来在不同的第二级页表中进行选择,相反与从第二级页表中读取的第二级安全性值结合使用以确定是否要继续对安全存储器进行访问。特别地,只有当第一级安全性值和第二级安全性值都识别该访问为安全的,并且可信虚拟机标识符由管理程序软件设置时,地址转换电路才输出指定安全存储器内的物理地址的安全访问请求。
在一个实施例中,如果可信虚拟机标识符被设置,则在第一级安全性值和第二级安全性值都把该访问识别为非安全的情况下,该地址转换电路使该修改的访问请求作为指定非安全存储器内的物理地址的非安全访问请求被发布。
此外,在一个实施例中,如果可信虚拟机标识符被设置,则在第一级安全性值和第二级安全性值不同的情况下,该地址转换电路使该访问请求被放弃(abort)。
在可选实施例中,地址转换电路可以被布置成如果第一级安全性值将该访问标记为安全的而第二级安全性值将该访问标记为非安全的则使该访问请求指向非安全存储器。在该可选实施例中,假设第二级映射比第一级映射更可能正确,即第二级映射描述硬件期望的并且管理程序已允许的访问类型。
在一个实施例中,如果可信虚拟机标识符未被设置,则该地址转换电路使该修改的访问请求作为指定非安全存储器内的物理地址的非安全访问请求被发布,而不管第一级安全性值和第二级安全性值。通过这种方案,可以看出管理程序软件保持对任何虚拟机是否能够访问安全存储器的最终控制。
在一个实施例中,该处理电路当执行该管理程序软件时在安全域中执行,该安全存储器可从安全域访问;并且该处理电路当执行多个虚拟机中的任一个时在非安全域中执行,默认情况下安全存储器不可从非安全域访问,除了在可信虚拟机标识符被管理程序软件设置用于当前虚拟机的情况下,在此情况下地址转换电路能使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布。
如果在这种实施例中访问请求由处理电路在安全域中执行时发布,则该地址转换电路被布置成基于指定的虚拟地址执行依赖于由管理程序软件管理的安全页表的虚拟地址到物理地址转换。因此,在这种实施例中,在安全域中发布的访问请求可以由依赖于安全页表的从虚拟到物理地址的单级地址转换来管理。然而,任何虚拟机将被保留在非安全域中,并且由这些虚拟机发布的访问请求将经历如之前讨论的两级地址转换过程。
从第二方面来看,本发明提供了一种控制由在处理电路上执行的虚拟机对安全存储器的访问的方法,该处理电路执行管理程序软件以支持多个虚拟机在该处理电路上的执行,且存储器系统被提供用于存储数据以供该处理电路访问,该存储器系统包括用于存储安全数据的所述安全存储器和用于存储非安全数据的非安全存储器,所述安全存储器仅可经由安全访问请求访问,该方法包括以下步骤:把由管理程序软件管理的可信虚拟机标识符存储在处理电路可访问的储存器中,如果将信任当前虚拟机访问该安全存储器,则该管理程序软件设置该可信虚拟机标识符;响应于由在该处理电路上执行的当前虚拟机所发布的并且指定虚拟地址的访问请求,执行地址转换过程以识别所述存储器中的物理地址,所述物理地址含有当前虚拟机试图访问的数据;和把指定所述物理地址的修改的访问请求发布给存储器系统,只有当可信虚拟机标识符被设置,该修改的访问请求才能作为指定安全存储器内的物理地址的所述安全访问请求被发布。
从第三方面来看,本发明提供了一种数据处理设备,该数据处理设备包括:处理装置,其用于执行管理程序软件以支持多个虚拟机在该处理装置上的执行;存储器装置,其用于存储数据以供该处理装置访问,该存储器装置包括用于存储安全数据的安全存储器装置和用于存储非安全数据的非安全存储器装置,所述安全存储器装置仅可经由安全访问请求访问;地址转换装置,其响应于由在该处理装置上执行的当前虚拟机所发布的并且指定虚拟地址的访问请求,执行地址转换过程以识别所述存储器装置中的物理地址,并使指定该物理地址的修改的访问请求被发布到该存储器装置,其中所述物理地址含有当前虚拟机试图访问的数据;和用于存储由该管理程序软件管理的可信虚拟机标识符的储存器装置,该管理程序软件被布置成如果将信任当前虚拟机访问该安全存储器装置则设置该可信虚拟机标识符;响应于由当前虚拟机发布的访问请求,只有当可信虚拟机标识符被设置,该地址转换装置才能使该修改的访问请求作为指定安全存储器装置内的物理地址的所述安全访问请求被发布。
附图说明
参考附图中所示的实施例,仅以举例的形式进一步描述本发明,其中:
图1是示意性地图解说明其中可采用本发明的实施例的虚拟化环境的示图;
图2示意性地图解说明在非安全域和安全域中操作的不同程序;
图3是依据本发明的一个实施例的数据处理设备的框图;
图4示意性地图解说明在本发明的若干实施例中所使用的页表;
图5A-5C示意性地图解说明依据本发明的第一实施例所采用的地址转换过程;
图6是图解说明依据本发明的第一实施例的地址转换过程的流程图;
图7A示意性地图解说明依据本发明的可选实施例的地址转换过程;
图7B是图解说明依据本发明的第二实施例的假设可信虚拟机标识符被设置时如何处理访问请求的表格;和
图8是图解说明依据本发明的第二实施例的地址转换过程的流程图。
具体实施方式
图1是示意性地图解说明其中可采用本发明的实施例的虚拟化环境的示图。诸如处理器内核的处理器硬件10被布置成执行管理程序软件20,以便支持在处理器硬件上执行多个虚拟机30,40。尽管在图1中仅示出了两个虚拟机30,40,但要明白可提供两个以上虚拟机用于在相同的处理器硬件10上执行。
每个虚拟机30,40具有在特定操作系统36,46上运行的一个或多个应用程序32,34,42,44。经由管理程序软件20,每个虚拟机30,40被提供有其驻留的系统的特定视图,并且因此例如获得了该系统的可用硬件资源的特定视图。每个虚拟机30,40典型地独立于在处理器硬件10上执行的任何其它虚拟机进行操作,并且实际上不必知道其它虚拟机的存在。
依据本发明的一个实施例,处理器硬件10驻留于其上的数据处理设备具有多个域,该数据处理设备的装置(包括处理器硬件10)可以在这些域中操作。在一个特定实施例中,所述多个域包括安全域和非安全域,并且预定访问权与每个域相关联。尤其是,当装置在非安全域中操作时,该装置仅可以访问与该非安全域相关联的非安全数据。因此,当在非安全域中操作时,它不可能访问与安全域有关的安全数据。与安全域相关联的预定访问权可以采用各种形式,但典型地将允许在安全域中操作的装置访问安全域的安全数据和非安全域的非安全数据。
数据处理设备的存储器系统将提供用于存储安全数据的安全存储器和用于存储非安全数据的非安全存储器,其中安全存储器仅可经由安全访问请求来访问。安全存储器和非安全存储器不需要被提供为物理上分离的存储器装置,相反存储器系统内的每个存储器装置可以被布置成含有一个或多个用于存储安全数据的安全区域以及一个或多个用于存储非安全数据的非安全区域,因而存储器系统的整个物理存储器地址空间可以被划分以提供若干安全存储器区域和若干非安全存储器区域。
在支持这种安全域和非安全域的系统内,可以在安全域或非安全域中操作的每个装置被典型地布置成执行监控代码以便从一个域转换到另一个域。就以这种方式布置的处理器内核的示例来说,这种处理器内核的操作被详细地描述于之前提到的共同待决的美国专利申请号10/714,561中。提供图2以指示这种处理器内核的操作的概观,读者可参考上述的美国专利申请以了解更多细节。
图2示意性地图解说明在具有安全域和非安全域的处理系统上运行的各种程序。该系统设有至少部分以监控模式执行的监控程序120。监控程序120负责管理安全域和非安全域之间在任一方向上的所有变化。从处理器内核的外部来看,监控模式总是安全的并且监控程序处于安全存储器中。
在非安全域内,提供了非安全操作系统110和与非安全操作系统110协同执行的多个非安全应用程序112,114。在安全域中,提供安全核心程序100并且可以认为该安全核心程序100形成安全操作系统。典型地,这种安全核心程序100将被设计成只提供那些对必须在安全域中提供的处理活动必不可少的功能,使得安全核心100可以尽可能地小且简单,因为这倾向于使其更加安全。多个安全应用程序103,104被示为与安全核心100结合执行。
图2图解说明在处理器内核中从安全域到非安全域的转换,但没有考虑处理器内核自身可在如图1所示的虚拟化环境中操作的情形,在该情形下多个虚拟机可共存。这种虚拟化技术可以被容易地用在非安全域中,使得多个非安全虚拟机可以被执行,每个非安全虚拟机可以被给予其自己的非安全存储器地址空间的视图。处理器内核然后可以使用监控程序120来进入安全域以便执行管理程序软件,并且如果需要的话,实际上可以在安全域内的安全操作系统100的控制下附加地执行所述一个或多个安全应用程序102,104。
然而,使用图2的布置,不可能虚拟化多个安全操作系统,即在安全域中运行多个虚拟机。这是由于如下事实:在安全域中管理程序软件和任何在安全域中执行的其它软件之间不存在特权级区别。因而,如果建立多个安全虚拟机,则对一个安全虚拟机而言就可能修改由管理程序软件放置在适当位置的地址转换机制,并且通过这个过程可以访问其它虚拟机之一的安全数据。
因而,在本发明的实施例中,当使用虚拟化环境来提供在处理器硬件10上执行的多个虚拟机时,所有的虚拟机都被布置成在非安全域中执行。然而,通过使用本发明的实施例的技术,那些虚拟机中的某些虚拟机可以被允许在管理程序软件的控制下访问安全存储器,如将参照剩余图更详细讨论的。
图3是依据本发明的一个实施例的数据处理设备的框图。中央处理单元(CPU)200包括处理器内核205,该处理器内核205可以执行管理程序软件以支持多个虚拟机在处理器内核205上的执行。
处理器内核205经由存储器管理单元(MMU)230而耦合到系统总线250,MMU 230被布置成管理由处理器内核205发布的访问请求以对该数据处理设备的存储器系统260内的位置进行访问。因而,由内核205发布并指定虚拟地址的任何访问请求都将被传送到MMU 230,该MMU负责执行预定的访问控制功能,更具体地是负责确定与该虚拟地址对应的物理地址,并且负责解析访问许可权以及确定区域属性。为了使MMU 230能够执行这些功能,MMU可以访问在存储器系统260内提供的一个或多个页表270。
图4示意性地图解说明页表的示例。如图4所示,页表300含有多个描述符,每个描述符为存储器的特定区域提供地址映射信息、访问许可权、区域属性以及任何其它所需信息,例如与该描述符有关的存储器区域的大小。访问许可权将指定关联的存储器区域是只读、只写、读/写还是不能访问,而区域属性将识别对该区域的访问是否可高速缓存的、可缓冲的等等。地址映射信息将识别如何转换输入地址以形成输出地址。
在本发明的一个实施例中,由MMU 230参照页表270所执行的地址转换是两级过程,其中虚拟地址首先依赖于在第一级页表的相关描述符内提供的地址映射被转换成中间地址,然后依赖于在第二级页表的相关描述符内提供的地址映射从中间地址转换到物理地址。
还如图4所示,页表300内的每个描述符310可以被提供安全性值,其在本文中也被称为非安全(NS)位值(bit value)。从第一级页表的相关描述符中获得的NS位值在本文中被称为第一级NS位值,而从第二级页表的相关描述符中获得的NS位值在本文中被称为第二级NS位值。如稍后将更详细讨论的,当MMU 230决定如何在存储器系统260内把虚拟地址映射到物理地址时,MMU 230使用这些NS位值。
回到图3,可以看到MMU 230含有一个或多个表格后备缓冲器(tablelookaside buffer,TLB)240,由MMU 230从页表270中检索的信息可以被本地存储在该表格后备缓冲器中以在处理访问请求时提高MMU的性能。如本领域的技术人员也会明白的,还可以提供宏TLB用于对在TLB240中存储的信息的子集进行高速缓存,这进一步提高了MMU 230的性能。
CPU 200内部件的操作由若干控制寄存器210控制。为了描述本发明的实施例,特别关注某些控制寄存器。首先,一个或多个控制寄存器将指定页表指针220,当确定在处理由处理器内核205发布的访问请求时应当参考存储器260内的哪些页表270时,MMU 230使用这些页表指针220。假定在本发明的实施例中当处理虚拟地址到物理地址的转换过程时第一级页表和第二级页表都被MMU参考,页表指针220将包括指向第一级页表的页表指针和指向第二级页表的单独的页表指针。实际的页表指针将取决于当前由处理器内核205执行的虚拟机。
在一个实施例中,第一级页表可以由每个虚拟机管理,并且实际上任何特定虚拟机可以建立用于在该虚拟机上运行的不同应用程序的单独的第一级页表。因此,在控制器寄存器210内提供的第一级页表指针将由处理器内核205依赖于当前运行的虚拟机并且可能依赖于在该虚拟机内运行的特定应用程序来设置。
相比而言,第二级页表由管理程序软件20管理。该管理程序软件可为每个虚拟机提供单独的第二级页表,并且因此在控制器寄存器210内提供的实际的第二级页表指针将由运行在处理器内核205上的管理程序软件设置,这取决于当前执行的虚拟机。
除了页表指针220之外,在处理器内核205上执行的管理程序软件还能设置控制寄存器210内的可信虚拟机(VM)位215,如果可信VM位被设置,则这就指示信任当前执行的虚拟机访问安全存储器。如稍后将更详细讨论的,只有当可信VM位由管理程序软件设置时,MMU 230才能使用来自第一级页表和第二级页表的NS位值,以便响应于由处理器内核205发布的特定访问请求确定是产生安全存储器内的物理地址还是非安全存储器内的物理地址。如果可信VM位未被设置,则NS位值信息将被忽略,并且由当前虚拟机发布的任何访问请求都将被映射到非安全存储器内的物理地址。
因而,当MMU 230接收到访问请求时,它参照该一个或多个TLB结构240确定该TLB当前是否为含有由访问请求所指定的虚拟地址的存储器区域存储来自第一级页表和第二级页表的描述符信息。如果否,则控制寄存器210内的页表指针信息220被MMU 230用来访问存储器260内的相关第一和/或第二级页表270以便检索所需的描述符,使得那些描述符可以被存储器在TLB 240内并被MMU 230用来处理访问请求。
MMU 230可以用若干方式来布置以把来自第一级和第二级页表的描述符存储在一个或多个TLB结构240内。例如,在一个实施例中,可以认为MMU 230包括两个单独的MMU,每个MMU有其自己的TLB,第一MMU执行虚拟到中间地址转换,而第二MMU执行中间到物理地址转换。可选地,可提供单个合并的MMU和相关的TLB结构用于执行所需的两级地址转换过程。在共同受让的美国专利7,171,539中讨论了布置MMU的方式的更多细节,该专利的全部内容在此并入以供参考。
图5A示意性地图解说明在可信VM位215未被设置的情形中MMU 230对于由在非安全域中的处理器内核205上执行的虚拟机发布的访问请求所执行的地址转换。如图5A所示,一个或多个虚拟地址空间350可以被在虚拟机上执行的应用程序使用,并且例如单独的虚拟地址空间可与由该虚拟机执行的每个应用程序相关联。对于每个这种虚拟地址空间,虚拟机可建立单独的第一级页表。参考相关的第一级页表,MMU 230能执行从虚拟地址空间350到非安全中间地址空间355的地址转换352,这个地址转换实际上由虚拟机通过虚拟机对第一级页表的管理来控制。
此后,MMU 230参考由管理程序控制的第二级页表以便执行中间地址到物理地址转换357。由于可信VM位未被设置,所以在第一级页表或第二级页表中指定的任何NS位值被忽略,相反第二级地址转换357总是产生非安全物理地址空间360内的物理地址。由于第二级页表由管理程序管理,所以对于虚拟机而言不可能改变第二级地址转换,因而可以保证响应于这种访问请求仅可以发布非安全物理地址。
图5B图解说明如果可信VM位被设置则MMU 230如何执行地址转换。如图5B所示,MMU再次参考相关的第一级页表,但到中间地址空间的映射取决于第一级页表的相关描述符中的NS位的值。如果NS位被设置,以指示虚拟机认为访问请求是非安全访问请求,则当地址转换354产生非安全中间地址空间370内的中间地址时,接着参考非安全第二级页表以提供从非安全中间地址空间370到非安全物理地址空间360的映射372。这个第二级地址转换然后以与关于图5A所讨论的相同方式继续进行。
然而,如果第一级页表的相关描述符中的NS位是清零(clear),指示虚拟机认为访问请求是安全访问请求,则当地址转换356产生安全中间地址空间375内的中间地址时,接着参考安全第二级页表用于第二级地址转换过程,该安全第二级页表提供从安全中间地址空间375到物理地址空间360,380的映射377,379。如图5B所示,该第二级地址转换可能产生安全物理地址空间380或非安全物理地址空间360中的物理地址,这取决于第二级页表的相关描述符中的NS位值。尤其是,如果在第二级页表描述符中NS位被设置,指示管理程序认为该访问是非安全访问,则MMU 230将产生非安全物理地址空间360内的物理地址。然而,如果NS位是清零,指示管理程序认为该访问是安全的,则MMU 230将产生安全物理地址空间380内的物理地址。
在一个实施例中,当可信VM位被设置时所用的非安全第二级页表是与当可信VM位未被设置时所用的第二级页表相同的页表。因此这允许可信虚拟机以与图2的在安全域中运行的软件可以访问在非安全域中运行的非安全应用程序的数据的方式相类似的方式访问非安全虚拟机的存储器空间,从而减少为使得被设计用于操作在安全域中的安全软件能够在可信虚拟机(如之前讨论的,其实际上将运行在非安全域中)中正确操作而可能另外所需要的变化。
图5C提供对于由在安全域中执行时的处理器内核205发布的任何访问请求(例如可能的情况是由管理程序软件发布的任何访问请求或者来自在安全域中运行的任何其它软件的任何访问请求)MMU 230如何管理地址转换的图解说明。图5C说明了管理程序/监控模式地址转换。在这种情况下,安全页表被用来提供安全虚拟地址空间390中的虚拟地址到物理地址的直接映射392,394,该物理地址可能是在非安全物理地址空间360或者安全物理地址空间380中,这取决于在安全页表的相关描述符中存储的NS位值。安全页表将典型地由管理程序管理,因而可以认为这种转换是由管理程序软件控制的。要明白,这种机制因此是一种完全标准的地址转换机制,例如其会被提供用于在处理装置的安全域中运行的安全应用程序诸如图2所示的程序,例如其中不存在虚拟化的系统。
图6是图解说明依据本发明的第一实施例执行的地址转换过程(如之前关于图5A和5B所讨论的)的流程图。在步骤400,MMU 230等待访问请求,并且在接收到访问请求时,MMU执行查找程序以便获得在第一级页表的相关描述符(这个相关描述符在本文中被称为第一描述符)中存储的访问信息。显然如果该信息已被高速缓存在TLB 240内,则将不需要真正执行第一级页表中的查找,相反可以直接从TLB获得该信息。
在步骤410,然后确定第一描述符中的NS位是否是清零,并且如果是,则接着在步骤415确定是否对当前虚拟机设置可信VM位215。只有当第一描述符中的NS位是清零而且可信VM位被设置,处理器才继续前进到步骤420,在步骤420在安全第二级页表的相关描述符(在本文中被称为第二描述符)中执行进一步的查找。再则,如果该信息已被高速缓存在TLB 240内,则将不需要真正执行第二级页表中的查找。此后,确定第二描述符中的NS位是否是清零,并且如果是,则MMU 230产生物理地址,使得在步骤430能够执行对安全存储器的访问。
如果第一描述符中的NS位不是清零,或者可信VM位未被设置,则步骤410/415会分支至步骤435,在步骤435关于非安全第二级页表执行第二级地址转换,并且然后检阅在该非安全第二级页表中的相关描述符以获得必要的访问信息。再则,如果该信息已被高速缓存在TLB 240内,则将不需要真正执行第二级页表中的查找。此后产生非安全地址空间中的地址以使得在步骤440能够执行对非安全存储器的访问。
类似地,如果在步骤425确定第二描述符中的NS位不是清零,则再次产生非安全存储器中的物理地址并且该过程将继续前进到步骤440,在步骤440将执行对非安全存储器的访问。
图7A图解说明可选实施例,其中未提供单独的非安全和安全第二级页表,相反使用单个第二级页表。如图7A所示,第一级地址转换再次涉及参考相关虚拟地址空间350的第一级页表以便执行虚拟到中间地址转换502,并且在这个实施例中来自第一级页表的相关描述符的NS位值连同中间地址一起被转发以用于第二级地址转换过程。第二级地址转换过程涉及参考中间地址空间500的第二级页表以识别所需的中间到物理地址转换504,506。尤其是,根据第一级页表和第二级页表中的NS位值以及可信VM位的设置,MMU 230将确定是产生非安全物理地址空间360内的物理地址还是产生安全物理地址空间380内的物理地址。特别地,只有当可信VM位被设置并且来自第一级页表和第二级页表的描述符的NS位值都是清零(指示安全访问)时,MMU才会产生安全物理地址空间380内的物理地址。
图7B是图解说明假设可信VM位被设置,MMU如何根据第一描述符和第二描述符中的NS位值产生物理地址的表格。可以看出,如果这两个NS位值都把该访问识别为安全的,则将产生允许对安全存储器的访问的物理地址。类似地,如果这两个NS位值都把该访问识别为非安全的,则将产生识别非安全物理地址空间360中的地址的物理地址。
在一个实施例中,如果第一描述符的NS位值不匹配第二描述符的NS位值,则放弃该访问。然而,在一个实施例中,如果第一描述符的NS位值把该访问标记为安全而第二描述符的NS位值把该访问标记为非安全的,则与第二级页表相关联的NS位值将被当作决定性的(definitive)值,并且将产生非安全物理地址空间360中的物理地址。因此,由于管理程序软件控制第二级页表,所以如果管理程序软件指示该访问应当被当作非安全的,则即使(由虚拟机控制的)第一级页表中的相关NS位值识别该访问为安全的,也将把该访问作为非安全的处理。
图8是图解说明MMU当采用图7A和7B的可选实施例时的操作的流程图。在步骤510,等待接收访问请求,并且在接收到访问请求后,在步骤515参照第一级页表执行查找以便从第一描述符获得必要的访问信息。此后,在步骤520也执行第二级页表中的查找以从第二描述符中获得必要的访问信息。尽管步骤515和520被顺序地示出,但它们可以被并行执行。如同关于图6所描述的第一实施例一样,如果必要的信息已被高速缓存在TLB 240中,则不需要执行关于第一和/或第二级页表的访问。
在步骤525,确定可信VM位是否被设置。如果它未被设置,则将产生非安全物理地址空间中的物理地址并且在步骤545将执行对非安全存储器的访问。
然而,如果可信VM位被设置,则在步骤530确定第一和第二描述符的NS位是否匹配。如果它们不匹配,则依据一个实施例,在步骤550放弃该访问。然而,假设NS位匹配,则在步骤535确定这两个NS位是否都是清零(即这两个NS位都把该访问识别为安全的)。如果这两个NS位都是清零,则产生安全物理地址空间中的物理地址,并且在步骤540执行对安全存储器的访问。否则,该过程从步骤535分支到步骤545,并利用由MMU230产生的非安全物理地址空间中的物理地址来执行对非安全存储器的访问。
根据本发明的实施例的上述描述,要明白,这些实施例允许多个虚拟机在处理器上执行,其中通过设置由管理程序软件管理的可信VM位,那些虚拟机中的个体虚拟机被允许在管理程序软件的控制下访问安全存储器。在具有安全域和非安全域的系统中,所有的虚拟机可以在非安全域中被执行,但通过使用由在安全域中执行的管理程序软件管理的可信VM位,那些虚拟机中的某些虚拟机可以被认为是可信虚拟机,它们被允许发布可被映射到安全存储器地址空间中的访问请求,从而允许在管理程序软件的控制下由那些虚拟机对安全存储器进行受控访问。
因而,通过使用本发明的实施例的技术,可能提供多个可信虚拟机,它们可以被允许访问存储器仿佛它们在安全域中操作,即使事实上它们在非安全域中操作。由于可信虚拟机在非安全域中操作,所以它们没有与在安全域中真正操作的应用程序(诸如,在图2所示的安全核心100上执行的安全应用程序102,104)相关联的安全特权级,但在管理程序控制下被允许以与安全应用程序102,104访问安全存储器的方式相类似的方式访问安全存储器。
通过这种方案,管理程序软件可能以类似方式把多个安全操作系统虚拟化成非安全操作系统。因而,在一个实施例中,虚拟化诸如图2所示的多个安全和非安全操作系统对将是可能的。
虽然本文描述了特定实施例,但要明白本发明不限于此并且在该发明的范围内可进行许多修改和添加。例如,在不偏离该发明的范围的情况下,所附从属权利要求的特征可以与独立权利要求的特征进行各种组合。

Claims (14)

1.一种数据处理设备,包括:
处理电路,其用于执行管理程序软件以支持多个虚拟机在该处理电路上的执行;
存储器系统,其用于存储数据以供该处理电路访问,该存储器系统包括用于存储安全数据的安全存储器和用于存储非安全数据的非安全存储器,所述安全存储器仅可经由安全访问请求访问;
地址转换电路,其响应于由在该处理电路上执行的当前虚拟机所发布的并且指定虚拟地址的访问请求,执行地址转换过程以识别所述存储器系统中的物理地址,并使指定该物理地址的修改的访问请求被发布到该存储器系统,其中所述物理地址含有所述当前虚拟机试图访问的数据;和
用于存储由该管理程序软件管理的可信虚拟机标识符的储存器,该管理程序软件被布置成如果将信任所述当前虚拟机访问该安全存储器则设置该可信虚拟机标识符;
响应于由所述当前虚拟机发布的访问请求,只有当所述可信虚拟机标识符被设置,该地址转换电路才能使该修改的访问请求作为指定所述安全存储器内的物理地址的所述安全访问请求被发布。
2.如权利要求1所述的数据处理设备,其中该地址转换电路被布置成通过执行依赖于第一级页表的虚拟地址到中间地址转换以及依赖于第二级页表的中间地址到物理地址转换来执行地址转换,至少该第二级页表由所述管理程序软件管理。
3.如权利要求2所述的数据处理设备,其中该第一级页表由所述当前虚拟机管理。
4.如权利要求2所述的数据处理设备,进一步包括:
页表标识符储存器,其用于识别第一级页表和第二级页表;
如果可信虚拟机标识符被设置,则该页表标识符储存器被布置成识别非安全第二级页表和安全第二级页表;
当响应于由当前虚拟机发布的访问请求而执行地址转换时,地址转换电路使用指定的虚拟地址来访问第一级页表中的描述符,该描述符提供产生对应的中间地址所需的信息,所述描述符进一步提供第一级安全性值;
如果可信虚拟机标识符被设置,则第一级安全性值被用来确定在执行中间地址到物理地址转换时是使用非安全第二级页表还是使用安全第二级页表。
5.如权利要求4所述的数据处理设备,其中如果可信虚拟机标识符未被设置,则当执行中间地址到物理地址转换时使用非安全第二级页表,而不管第一级安全性值,并且该地址转换电路使该修改的访问请求作为指定非安全存储器内的物理地址的非安全访问请求被发布。
6.如权利要求4中所述的数据处理设备,其中:
如果在执行中间地址到物理地址转换时使用安全第二级页表,则该地址转换电路使用产生的中间地址来访问安全第二级页表中的描述符,所述的安全第二级页表中的描述符提供产生对应的物理地址所需的信息,所述的安全第二级页表中的描述符进一步提供第二级安全性值;
该第二级安全性值被用来确定地址转换电路是把安全存储器内的物理地址还是把非安全存储器内的物理地址生成为对应的物理地址;
由此如果可信虚拟机标识符被设置,则该地址转换电路使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布,第一级安全性值使得在执行中间地址到物理地址转换时使用安全第二级页表,而第二级安全性值使该地址转换电路把安全存储器内的物理地址生成为对应的物理地址。
7.如权利要求2中所述的数据处理设备,其中:
当响应于由当前虚拟机发布的访问请求而执行地址转换时,地址转换电路使用指定的虚拟地址来访问第一级页表中的描述符,该描述符提供产生对应的中间地址所需的信息,所述描述符进一步提供第一级安全性值;并且该地址转换电路进一步使用产生的中间地址来访问第二级页表中的描述符,所述的第二级页表中的描述符提供产生对应的物理地址所需的信息,所述的第二级页表中的描述符进一步提供第二级安全性值;
如果可信虚拟机标识符被设置,则在第一级安全性值和第二级安全性值都把由当前虚拟机发布的访问请求所请求的访问识别为安全的情况下,该地址转换电路使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布。
8.如权利要求7中所述的数据处理设备,其中如果可信虚拟机标识符被设置,则在第一级安全性值和第二级安全性值都把由当前虚拟机发布的访问请求所请求的访问识别为非安全的情况下,该地址转换电路使该修改的访问请求作为指定非安全存储器内的物理地址的非安全访问请求被发布。
9.如权利要求7中所述的数据处理设备,其中如果可信虚拟机标识符被设置,则在第一级安全性值和第二级安全性值不同的情况下,该地址转换电路使由当前虚拟机发布的访问请求被放弃。
10.如权利要求7中所述的数据处理设备,其中如果可信虚拟机标识符未被设置,则该地址转换电路使该修改的访问请求作为指定非安全存储器内的物理地址的非安全访问请求被发布,而不管第一级安全性值和第二级安全性值。
11.如权利要求1中所述的数据处理设备,其中:
该处理电路当执行该管理程序软件时在安全域中执行,该安全存储器可从安全域访问;并且
该处理电路当执行所述多个虚拟机中的任一个时在非安全域中执行,默认情况下安全存储器不可从非安全域访问,除了在可信虚拟机标识符被管理程序软件设置用于当前虚拟机的情况,在此情况下地址转换电路能使该修改的访问请求作为指定安全存储器内的物理地址的所述安全访问请求被发布。
12.如权利要求11中所述的数据处理设备,其中如果访问请求由处理电路在安全域中执行时发布,则该地址转换电路被布置成基于指定的虚拟地址执行依赖于由管理程序软件管理的安全页表的虚拟地址到物理地址转换。
13.一种控制由在处理电路上执行的虚拟机对安全存储器的访问的方法,该处理电路执行管理程序软件以支持多个虚拟机在该处理电路上的执行,并且提供存储器系统用于存储数据以供该处理电路访问,该存储器系统包括用于存储安全数据的所述安全存储器和用于存储非安全数据的非安全存储器,所述安全存储器仅可经由安全访问请求访问,该方法包括以下步骤:
把由管理程序软件管理的可信虚拟机标识符存储在该处理电路可访问的储存器中,如果将信任当前虚拟机访问该安全存储器,则该管理程序软件设置该可信虚拟机标识符;
响应于由在该处理电路上执行的当前虚拟机所发布的并且指定虚拟地址的访问请求,执行地址转换过程以识别所述存储器系统中的物理地址,所述物理地址含有所述当前虚拟机试图访问的数据;和
把指定所述物理地址的修改的访问请求发布给存储器系统,只有当可信虚拟机标识符被设置,该修改的访问请求才能作为指定安全存储器内的物理地址的所述安全访问请求被发布。
14.一种数据处理设备,包括:
处理装置,其用于执行管理程序软件以支持多个虚拟机在该处理装置上的执行;
第一存储器装置,其用于存储数据以供该处理装置访问,该第一存储器装置包括用于存储安全数据的安全存储器装置和用于存储非安全数据的非安全存储器装置,所述安全存储器装置仅可经由安全访问请求访问;
地址转换装置,其响应于由在该处理装置上执行的当前虚拟机所发布的并且指定虚拟地址的访问请求,执行地址转换过程以识别所述第一存储器装置中的物理地址,并使指定该物理地址的修改的访问请求被发布到该第一存储器装置,其中所述物理地址含有当前虚拟机试图访问的数据;和
用于存储由该管理程序软件管理的可信虚拟机标识符的储存器装置,该管理程序软件管理被布置成如果将信任该当前虚拟机访问该安全存储器装置则设置该可信虚拟机标识符;
响应于由该当前虚拟机发布的访问请求,只有当可信虚拟机标识符被设置,该地址转换装置才能使该修改的访问请求作为指定该安全存储器装置内的物理地址的所述安全访问请求被发布。
CN2009101179751A 2008-02-29 2009-02-27 数据处理设备和控制虚拟机对安全存储器的访问的方法 Active CN101520753B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0803830.9A GB2460393B (en) 2008-02-29 2008-02-29 A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
GB0803830.9 2008-02-29

Publications (2)

Publication Number Publication Date
CN101520753A CN101520753A (zh) 2009-09-02
CN101520753B true CN101520753B (zh) 2013-03-20

Family

ID=39315772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101179751A Active CN101520753B (zh) 2008-02-29 2009-02-27 数据处理设备和控制虚拟机对安全存储器的访问的方法

Country Status (4)

Country Link
US (1) US8418175B2 (zh)
JP (1) JP5234794B2 (zh)
CN (1) CN101520753B (zh)
GB (1) GB2460393B (zh)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464252B2 (en) * 2009-02-27 2013-06-11 Red Hat, Inc. Per process virtual machines
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
US20110202740A1 (en) * 2010-02-17 2011-08-18 Arm Limited Storing secure page table data in secure and non-secure regions of memory
US8694755B1 (en) * 2010-03-17 2014-04-08 Ambarella, Inc. Virtual memory management for real-time embedded devices
US8812400B2 (en) 2010-07-09 2014-08-19 Hewlett-Packard Development Company, L.P. Managing a memory segment using a memory virtual appliance
CN101950274B (zh) * 2010-07-14 2012-06-20 北京北大众志微系统科技有限责任公司 一种管态维护且目态共享的数据访问装置及方法
US20130187931A1 (en) * 2010-10-05 2013-07-25 Tao Zhao System and method for multiple native software applications user interface composition
CN102571698B (zh) * 2010-12-17 2017-03-22 中国移动通信集团公司 一种虚拟机访问权限的控制方法、系统及装置
JP6255336B2 (ja) * 2011-04-29 2017-12-27 中天安泰(北京)信息技▲術▼有限公司Antaios (Beijing) Information Technology Co., Ltd. 安全なデータ格納方法およびデバイス
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
WO2013009300A1 (en) * 2011-07-12 2013-01-17 Hewlett-Packard Development Company, L.P. Tracing operations in a cloud system
US9141559B2 (en) 2012-01-04 2015-09-22 Intel Corporation Increasing virtual-memory efficiencies
US8719546B2 (en) * 2012-01-04 2014-05-06 Intel Corporation Substitute virtualized-memory page tables
WO2013103340A1 (en) * 2012-01-04 2013-07-11 Intel Corporation Substitute virtualized-memory page tables
WO2013126852A2 (en) * 2012-02-24 2013-08-29 Missing Link Electronics, Inc. Partitioning systems operating in multiple domains
KR101671457B1 (ko) 2012-04-18 2016-11-01 구글 인코포레이티드 보안 요소를 갖지 않는 지불 거래들의 처리
EP2672672A1 (en) * 2012-06-07 2013-12-11 Alcatel-Lucent Secure data processing
US9047090B2 (en) 2012-08-07 2015-06-02 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
US10275267B1 (en) * 2012-10-22 2019-04-30 Amazon Technologies, Inc. Trust-based resource allocation
KR101954733B1 (ko) 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
KR102051816B1 (ko) * 2013-02-05 2019-12-04 에이알엠 리미티드 메모리 보호 유닛들을 사용한 가상화 지원 게스트 오퍼레이팅 시스템
US9396011B2 (en) 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
US8959576B2 (en) 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
GB2515047B (en) * 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
US9530000B2 (en) * 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
US10061940B2 (en) 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
GB2517493A (en) * 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
US20150113594A1 (en) * 2013-10-18 2015-04-23 Vixs Systems, Inc. Processing system with virtual clients and methods for use therewith
US10114760B2 (en) * 2014-01-14 2018-10-30 Nvidia Corporation Method and system for implementing multi-stage translation of virtual addresses
US20150254145A1 (en) * 2014-03-07 2015-09-10 Microsoft Corporation Operating system/hypervisor efficiencies for sub-divided privilege levels
WO2015139195A1 (en) * 2014-03-18 2015-09-24 Dalian University Of Technology Countering attacks on cache
US10558584B2 (en) * 2014-06-23 2020-02-11 Intel Corporation Employing intermediary structures for facilitating access to secure memory
GB2536201B (en) 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Handling address translation requests
US10013360B2 (en) * 2015-03-04 2018-07-03 Cavium, Inc. Managing reuse information with multiple translation stages
GB2536880B (en) * 2015-03-24 2021-07-28 Advanced Risc Mach Ltd Memory management
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
US10691476B2 (en) * 2015-06-27 2020-06-23 Mcafee, Llc Protection of sensitive data
KR102130744B1 (ko) 2015-07-21 2020-07-06 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10558582B2 (en) * 2015-10-02 2020-02-11 Intel Corporation Technologies for execute only transactional memory
KR102429906B1 (ko) * 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
GB2545170B (en) * 2015-12-02 2020-01-08 Imagination Tech Ltd GPU virtualisation
GB2546731B (en) * 2016-01-20 2019-02-20 Advanced Risc Mach Ltd Recording set indicator
GB2546742B (en) * 2016-01-26 2019-12-11 Advanced Risc Mach Ltd Memory address translation management
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
US10089247B2 (en) * 2016-09-30 2018-10-02 Intel Corporation System and method for coupling a host device to secure and non-secure devices
US10394454B2 (en) * 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
KR102545959B1 (ko) * 2017-01-26 2023-06-22 셈퍼 포티스 솔루션즈 엘엘씨 멀티 테넌트 클라우드에서의 다중 단일 레벨의 보안(msls)
US10866909B2 (en) * 2017-06-26 2020-12-15 Intel Corporation Technologies for protecting virtual machine memory
WO2019005975A1 (en) * 2017-06-28 2019-01-03 Nvidia Corporation TYPE OF MEMORY THAT CAN BE HANGED WHILE INACCESSIBLE BY SPECULATIVE INSTRUCTIONS
US20190087217A1 (en) * 2017-09-19 2019-03-21 Microsoft Technology Licensing, Llc Hypervisor memory cache invalidation
US10929308B2 (en) * 2017-11-22 2021-02-23 Arm Limited Performing maintenance operations
GB2570692B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
US10761855B2 (en) 2018-05-02 2020-09-01 Micron Technology, Inc. Securing conditional speculative instruction execution
US11275587B2 (en) * 2018-05-02 2022-03-15 Micron Technology, Inc. Static identifications in object-based memory access
CN108830114B (zh) * 2018-05-23 2020-07-07 广东高云半导体科技股份有限公司 非易失性存储器的数据处理方法与装置、存储介质
GB2576528B (en) * 2018-08-22 2021-06-23 Advanced Risc Mach Ltd Performing address translation on predicted virtual memory address
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
GB2578099B (en) * 2018-10-15 2021-05-12 Advanced Risc Mach Ltd Memory access control
US10534730B1 (en) * 2018-12-20 2020-01-14 Ati Technologies Ulc Storing microcode for a virtual function in a trusted memory region
US11373013B2 (en) * 2018-12-28 2022-06-28 Intel Corporation Technologies for filtering memory access transactions received from one or more I/O devices
GB2580968B (en) 2019-02-01 2021-08-04 Advanced Risc Mach Ltd Lookup circuitry for secure and non-secure storage
GB2582736B (en) * 2019-02-01 2022-02-16 Arm Ip Ltd Template-based registration
US11487906B2 (en) 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11403409B2 (en) * 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11176054B2 (en) * 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US11347869B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11283800B2 (en) * 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11640361B2 (en) * 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11308215B2 (en) * 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
GB2593485B (en) * 2020-03-24 2022-06-15 Advanced Risc Mach Ltd Apparatus and method using plurality of physical address spaces
CN112099904B (zh) * 2020-08-25 2024-05-17 海光信息技术股份有限公司 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器
CN112612574B (zh) * 2020-12-18 2023-09-26 海光信息技术股份有限公司 输入输出设备的内存访问管理单元、系统及地址转换方法
CN113886288A (zh) * 2021-09-29 2022-01-04 南方科技大学 基于arm架构的资源访问控制方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2396930A (en) * 2002-11-18 2004-07-07 Advanced Risc Mach Ltd Managing access to secure and non-secure memory with descriptor tables
CN1700136A (zh) * 2004-05-20 2005-11-23 英特尔公司 处理器扩展和软件验证
CN1794131A (zh) * 2004-12-21 2006-06-28 微软公司 诸如虚拟机或硬化操作系统中的计算机安全管理

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
JP3874603B2 (ja) 2000-11-21 2007-01-31 株式会社日立製作所 計算機システムの共有メモリ構築方法
JP2002182560A (ja) 2000-12-12 2002-06-26 Hitachi Ltd 暗号処理機能を備えた情報サーバ装置
US20030079103A1 (en) * 2001-10-24 2003-04-24 Morrow Michael W. Apparatus and method to perform address translation
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
GB2395313B (en) 2002-11-18 2005-11-23 Advanced Risc Mach Ltd Task following between multiple operating systems
GB2411027B (en) * 2002-11-18 2006-03-15 Advanced Risc Mach Ltd Control of access to a memory by a device
AU2003274383A1 (en) 2002-11-18 2004-06-15 Arm Limited Processor switching between secure and non-secure modes
US7171539B2 (en) * 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
JP2006120089A (ja) 2004-10-25 2006-05-11 Ntt Docomo Inc データ管理システム及びデータ管理方法
US20060112212A1 (en) * 2004-11-23 2006-05-25 Hob Gmbh & Co. Kg Virtual machine computer system for running guest operating system on a central processing means virtualized by a host system using region ID virtual memory option
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7428626B2 (en) * 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US20070061535A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Processing unit enclosed operating system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2396930A (en) * 2002-11-18 2004-07-07 Advanced Risc Mach Ltd Managing access to secure and non-secure memory with descriptor tables
CN1700136A (zh) * 2004-05-20 2005-11-23 英特尔公司 处理器扩展和软件验证
CN1794131A (zh) * 2004-12-21 2006-06-28 微软公司 诸如虚拟机或硬化操作系统中的计算机安全管理

Also Published As

Publication number Publication date
GB0803830D0 (en) 2008-04-09
GB2460393B (en) 2012-03-28
GB2460393A (en) 2009-12-02
US20090222816A1 (en) 2009-09-03
JP2009211698A (ja) 2009-09-17
CN101520753A (zh) 2009-09-02
JP5234794B2 (ja) 2013-07-10
US8418175B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
CN101520753B (zh) 数据处理设备和控制虚拟机对安全存储器的访问的方法
CN103842976B (zh) 具有保护模式以防止i/o装置进行存储器访问的输入/输出存储器管理单元
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
US7222221B1 (en) Maintaining coherency of derived data in a computer system
CN105393229B (zh) 虚拟机中的页面错误注入
US8024506B1 (en) Maintaining address translations during the software-based processing of instructions
JP5914145B2 (ja) メモリ保護回路、処理装置、およびメモリ保護方法
US8225071B2 (en) Accessing multiple page tables in a computer system
EP2537097B1 (en) Storing secure mode page table data in secure and non-secure regions of memory
US9298639B2 (en) Controlling access to groups of memory pages in a virtualized environment
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
US9218302B2 (en) Page table management
US20040064668A1 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
JP2007183952A (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
EP3264317B1 (en) Permission control for contingent memory access program instruction
WO2017131914A1 (en) Sharing a guest physical address space among virtualized contexts
JP7002455B2 (ja) メモリアドレス変換管理
US10127064B2 (en) Read-only VM function chaining for secure hypervisor access
EP4272081A1 (en) Migrating pages of memory accessible by input-output devices
CN112585590A (zh) 存储器访问控制
US10489304B2 (en) Memory address translation
US20160259310A1 (en) Initialising control data for a device
EP0389886A2 (en) Ring reduction logic mechanism
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