CN104798061A - 在虚拟化环境中控制对存储器页面组的访问 - Google Patents

在虚拟化环境中控制对存储器页面组的访问 Download PDF

Info

Publication number
CN104798061A
CN104798061A CN201380059931.2A CN201380059931A CN104798061A CN 104798061 A CN104798061 A CN 104798061A CN 201380059931 A CN201380059931 A CN 201380059931A CN 104798061 A CN104798061 A CN 104798061A
Authority
CN
China
Prior art keywords
page
bit
virtual machine
paging structure
strolled
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.)
Granted
Application number
CN201380059931.2A
Other languages
English (en)
Other versions
CN104798061B (zh
Inventor
B·刘
R·苏德
K-L·曾
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104798061A publication Critical patent/CN104798061A/zh
Application granted granted Critical
Publication of CN104798061B publication Critical patent/CN104798061B/zh
Expired - Fee Related 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/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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

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

Abstract

公开了用于在虚拟化环境中控制对多组存储器页面的访问的木发明的各实施例。在一个实施例中,处理器包括虚拟化单元和存储器管理单元。虚拟化单元把对处理器的控制传递给虚拟机。响应于在虚拟机上执行被存储在第一页面上的指令的尝试,至少部分地基于在对应于分页结构中的第一页面的叶级条目中设置的比特和对应于每一级的分页结构中的第一页面的每一条目中设置的相应比特,存储器管理单元执行通过分页结构的页面漫步,以便查找第一页面并且允许无需退出虚拟机就访问第一页面。

Description

在虚拟化环境中控制对存储器页面组的访问
背景
1.领域
本公开内容涉及信息处理的领域,且尤其涉及存储器管理和保护的领域。
2.相关领域的描述
可以通过使用读、写和执行(execute)页面表中的比特来控制对信息处理系统中的存储器的内容的访问。在虚拟化环境中,可以通过把不同的页面表组用于不同的虚拟机来提供存储器的多个视图,以使得虚拟机监视器可以给不同的客户软件提供和强加不同的访问权限。
附图简述
作为示例而非限制在附图中阐释本发明。
图1阐释一种系统,其中可以根据本发明的一个实施例在虚拟化环境中控制对各组存储器页面的访问。
图2和图3阐释根据本发明的一个实施例用于在虚拟化环境中控制对各组存储器页面的访问的方法。
详细描述
描述了用于在虚拟化环境中控制对存储器页面组的访问的本发明的各实施例。在本描述中,可以陈述诸如处理器和系统配置之类的众多特定细节,以便提供对本发明的更透彻的理解。然而,本领域中的技术人员应明白,无需这样的特定细节就可以实践本发明。另外,没有详细示出一些众所周知的结构、电路和其他特征,以免不必要地模糊本发明。
在下列描述中,对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等等的引用表示这样描述的本发明的(多个)实施例可以包括具体的特征、结构或特性,但是多于一个实施例可以包括且并非每一实施例必定包括这些具体的特征、结构或特性。进一步,一些实施例可以拥有针对其他实施例所描述的特征中的一些、全部,或者没有这些特征。
而且,可以使用术语“比特”、“标志”、“字段”、“条目”等等来描述寄存器、表、数据库或其他数据结构中的任何类型的存储位置,无论是以硬件还是软件实现,但不预期把本发明的各实施例限制在任何具体类型的存储位置或在任何具体的存储位置内的比特或其他元素的数量。可以使用术语“清除”来表示存储或以另外方式引起逻辑的值0被存储在存储位置中,且可以用术语“设置”来表示存储或以另外方式引起逻辑值1、全为1或某种其他所指定的值被存储在存储位置中;然而,这些术语不旨在把本发明的各实施例限制在任何具体的逻辑约定,这是由于在本发明的各实施例内可以使用任何逻辑约定。
如权利要求中所使用的,除非另外指出,否则,使用顺序的形容词“第一”、“第二”、“第三”等等来描述元素仅仅表示提及元素的具体实例或类似元素的不同实例,且不旨在暗示这样描述的元素必须遵守具体的序列,无论是时间上、空间上、分级上还是以任何其他方式。
如背景部分所描述的,可以使用读、写和执行页面表中的比特来控制对存储器页面的访问。在虚拟化环境中,通过把不同的页面表组用于不同的虚拟机,可以提供存储器的多个视图,以使得虚拟机监视器(VMM)可以给不同的客户软件提供和强加不同的访问权限。
然而,在这些视图之间的切换可能要求把对处理器的控制从客户软件传递到VMM。本发明的各实施例提供数据页面的可存取性,以便无需引起VM退出就在虚拟机内改变。
图1阐释系统100,系统100是本发明的一个实施例可以在其中出现和/或操作的信息处理系统。系统100可以表示任何类型的信息处理系统,例如服务器、台式计算机、便携式计算机、机顶盒、手持式设备或嵌入式控制系统。系统100包括处理器110和系统存储器120,系统存储器120可以是动态随机存取存储器或处理器110可读的任何其他类型的介质。实施本发明的系统可以包括任何数量的这些组件和任何其他组件或其他元素中的每一种,例如信息存储设备、外围设备和输入/输出设备。任何系统实施例中的组件或其他元素中的任何或全部可以通过任何数量的总线、点对点或其他有线或无线接口来连接、耦合或以另外方式相互通信。
处理器110可以表示集成在单个衬底上或封装在单个封装内的一个或多个处理器,其中的每一个都可以包括以任何组合的多个线程和/或多个执行核。被表示为处理器110的每一处理器可以是任何类型的处理器,包括通用微处理器,例如英特尔Core处理器系列、英特尔Atom处理器系列、或来自英特尔公司的其他处理器系列、或来自另一公司的另一处理器、或专用处理器或微控制器。处理器110可以包括指令单元111、执行单元112、处理存储113、接口单元114、处理器控制单元115和存储器管理单元(MMU)130。处理器110也可以包括图1中未示出的任何其他电路、结构或逻辑和/或在图1中其他地方示出或描述的任何电路、结构或逻辑。
指令单元111可以表示任何电路、结构或其他硬件,例如用于提取、接收、解码和/或调度指令的指令解码器。可以在本发明的范围内使用任何指令格式;例如,指令可以包括操作码和一个或多个操作数,其中操作码可以被解码成一个或多个微指令或微操作以供由执行单元112执行。
执行单元112可以包括任何电路、结构或其他硬件,例如运算单元、逻辑单元、浮点单元、移位器等等,用于处理数据和执行指令、微指令和/或微操作。
处理存储113可以表示在处理器110内的可用于任何目的的任何类型的存储;例如,它可以包括任何数量的数据寄存器、指令寄存器、状态寄存器、配置寄存器、控制寄存器、其他可编程或硬编码寄存器或寄存器堆、或任何其他存储结构。
接口单元114可以表示任何电路、结构或其他硬件,例如总线单元、消息收发单元或任何其他单元、端口或接口,以便允许处理器110与系统100中的其他组件通过任何类型的总线、点对点或其他连接直接地或通过诸如存储器控制器或总线桥之类的任何其他组件通信。
处理器控制单元115可以包括任何逻辑、微代码、电路或其他硬件,以便控制处理器110的各单元和其他元素的操作以及在处理器110内、进入处理器110和离开处理器110的数据传输。例如,通过引起处理器110执行由指令单元111接收到的指令和从由指令单元111接收到的指令导出的微指令或微操作,处理器控制单元115可以引起处理器110执行或参与本发明方法的各实施例的执行,例如下面描述的方法实施例。
虚拟化单元116可以被包括在处理器控制单元115中,且可以包括任何逻辑、微代码、电路或其他硬件,以便允许、辅助或支持在处理器110上运行的虚拟机(每一个都是“VM”)当中共享和/或分配资源,并且把控制从拥有对资源的直接控制的VMM或其他控制程序传递给在虚拟机内运行的软件程序或模块(“客户”)(“VM进入”)、把控制传递回去给VMM(“VM退出”)以及在VM当中传递控制。虚拟机控制结构(“VMCS”)或其他数据结构可以用来为每一VM存储状态、控制和其他信息。
处理器110也包括MMU 130以便管理处理器110的存储器空间。存储器管理逻辑支持使用虚拟存储器来提供软件,包括在VM中运行的客户软件,且具有用于存储和访问代码和数据的地址空间,该地址空间大于系统中的物理内存(例如系统存储器120)的地址空间。处理器110的虚拟存储器空间可以仅受到在处理器上运行的软件可用的地址比特的数量的限制,而处理器110的物理内存空间还受到系统存储器120的大小的限制。MMU 130支持诸如分页之类的存储器管理方案,以便根据需要向系统存储器120交换或从系统存储器120交换执行软件的代码和数据。作为这种方案的一部分,软件可以以未转换地址访问处理器的虚拟存储器空间,该未转换地址由处理器转换成已转换地址,处理器可以使用已转换地址来访问处理器的物理内存空间。
相应地,MMU 130可以包括一个或多个存储位置131、转换单元132和转换后备缓冲器(“TLB”)135。转换单元132包括可以被表示为转换阶段133的逻辑、电路或其他硬件,以便执行地址转换,例如根据诸如分页之类的任何已知的存储器管理技术在一系列阶段中把虚拟、逻辑、线性或其他未转换地址转换成物理地址或其他已转换地址。为了执行这些地址转换,转换阶段133是指被存储在处理器110、系统存储器120、图1中未示出的系统100中的任何其他存储位置和/或这些位置的任何组合中的一种或多种多数据结构。这些数据结构可以包括根据本发明的各实施例修改的遵循奔腾处理器系列的架构的页面目录和页面表以及/或被存储在TLB135的表。
存储位置131可以是被用来存储指向由转换单元132使用的数据结构的指针的任何寄存器或其他存储位置。在一个实施例中,存储位置131可以是CR3寄存器中被称为PML4基的那部分,根据奔腾处理器系列的架构,这用来存储页面映射级4基地址。
在一个实施例中,一个或多个转换阶段133接收由要由处理器100执行的指令提供的线性地址。转换阶段133把该线性地址的各部分用作进入到分层表(包括页面表)的索引,以便执行页面漫步。页面表包含多个条目,每一条目包括用于存储器120中的页面的基地址的字段,例如,根据奔腾处理器系列的扩展64位内存技术的页面表条目的比特39:12。在本发明的范围内可以使用任何页面大小(例如,4千字节)。因此,由程序用来访问系统存储器120的线性地址可以被转换成由处理器100用来访问系统存储器120的物理地址。
线性地址和相应的物理地址可以被存储在TLB 135中,以使得供将来使用相同的线性地址访问的适当的物理地址可以出现在TLB 135中,且不要求另一页面漫步。在适当的时候,例如在上下文切换时,通常可以由操作系统刷新TLB 135的内容。
在虚拟机环境中,VMM可以需要拥有对MMU 130的资源的最终控制,以便保护一个客户的存储器空间不会被另一客户使用。因此,在一个实施例中,虚拟化单元116可以包括一逻辑,用于如果客户发出旨在改变存储位置131或TLB 135的内容或以另外方式修改MMU 130的操作的指令,则引起VM退出。然后,VMM可以维护MMU 130以及多组分页或其他数据结构(例如,每VM一组),以便提供系统110的正确操作,以使得每一虚拟机看起来是向操作系统提供对其存储器管理资源的完全控制。
在一些实施例中,MMU 130可以包括支持虚拟机的逻辑、电路或其他硬件。例如,转换阶段133可以用于使用如上所述由存储位置131的内容指向的数据结构来把线性地址转换成物理地址。如果为客户执行这种转换,则线性地址被称为客户线性地址,所得到的物理地址被称为客户物理地址(“GPA”),且需要额外的转换来把GPA转换成主机物理地址(“HPA”)。这些额外的转换可以使用一系列扩展转换阶段134,使用额外的数据结构,例如或者包括扩展或嵌套的页面表。在这一实施例中,可以由在虚拟机上运行的OS维护客户的转换数据结构,同时由VMM维护主机的转换数据结构。这些额外的转换可以由VM进入启用且由VM退出禁用。
通常,转换数据结构中的条目包括地址或地址的一部分,由转换单元132将该地址的一部分与未转换地址的一部分组合起来以便指向连续转换数据结构的条目(即,用于下一阶段的转换数据结构)。然而,用于最后阶段的转换数据结构中的条目可以是或者可以包括存储器120中的位置的物理地址。在支持虚拟机的实施例中,在将来自数据结构的条目中的地址用作指向下一阶段的指针之前,它可能要经历额外的转换。作为示例,当不在虚拟机内操作时,一个实施例可以使用页面表来把线性地址转换成物理地址。当在虚拟机内操作时,可以使用这些相同的页面表,但是在每一页面表之间以及在最后的页面表之后,使用一组扩展(或嵌套)页面表来执行额外的转换,以便把页面表条目从GPA转换成HPA。在转换之后,GPA及其相应的HPA可以被存储在TLB 135中,使得不要求另一页面漫步。可以用页面表、扩展(或嵌套)页面表和/或MMU 130所使用的任何其他数据结构来实现本发明的各实施例。在此所使用的“扩展页面表”意味着包括“嵌套页面表”以及用于支持虚拟机的额外的转换的任何其他类型的数据结构。
在使用扩展页面表的一个实施例中,把指向第一扩展页面表的指针是存储在VMCS中。转换阶段133的第一阶段把这一指针与GPA的第一部分(例如,64位地址的比特38:30)组合起来以便在第一扩展页面表中查找条目。这一条目包括HPA,HPA是指向第二扩展页面表的指针。转换阶段133的第二阶段把这一指针与GPA的第二部分(例如,64位地址的比特29:21)组合起来以便在第二扩展页面表中查找条目。这一条目包括HPA,HPA是指向第三扩展页面表的指针。转换阶段133的第三阶段把这一指针与GPA的第三部分(例如,64位地址的比特20:12)组合起来以便在第三扩展页面表中查找条目。这一条目包括已转换地址。
在一个实施例中,条目的格式中的字段或比特可以被用来定义访问权限。例如,读权限位(例如,比特0或R比特)可以被用来指示是否准许读,写权限位(例如,比特1或W比特)可以被用来指示是否准许写,且执行权限位(例如,比特2或X比特)可以被用来指示是否准许执行。如果这些比特中的任何的值指示不准许访问,那么,将报告错误。对于每一阶段或级的页面漫步(包括通过页面表和扩展页面表的页面漫步),可以逻辑上组合这些类型的权限,以使得最严格的权限适用。
然而,对尝试访问它们的所有不同指令页面来说,读权限和写权限可以不相同。因此,本发明的各实施例提供指令页面的分组,以使得可以向不同的指令页面组给予对不同的数据页面组的不同访问权限,且无需引起VM退出就可以在虚拟机内强加这些不同的访问权限。在一些实施例中,被用来定义或标识不同的组的比特或字段可以是根据已知的分页格式被忽略、未使用或以另外方式可用的比特或字段。例如,在奔腾处理器系列的扩展页面表(EPT)格式中,比特[63:52]可供使用。然而,本发明的各实施例不限于使用这些特定的比特;可以使用任何比特。
作为示例,对第一组页面(组A)中的数据的访问可以被分类成三种类别。可以总是允许来自第二组(组U)中的页面的指令(例如,可信代码)。可以从不允许来自第三组(组V)中的页面的指令(例如,不可信代码)。来自第四组(组W)中的页面的指令要求在VM退出之后做出的根据情况不同的决定。然而,无需VM退出就可以由存储器管理单元130处理来自组U和V的指令的访问。
本发明的各实施例可以被用来就控制写访问(使用如下面所描述的W比特)、读访问(根据并行方法使用R比特)或两者,而无需VM退出。例如,一组数据页面可以被定义为组A,存储操作系统内核代码的一组页面可以被定义为组U,存储用户驱动程序的一组页面可以被定义为组V,一个实施例可以提供无需VM退出就能控制的访问权,以使得组U拥有写访问权和读访问权且组V拥有读访问权但不拥有写访问权。
对于被包括在组A中的页面,在访问它以便得到数据时,可以设置其EPT分页结构的叶(leaf)(例如,最后)级条目中的比特52。也可以清除比特1(写权限位),以便指示该页面受到保护不能进行写访问;然而,它仍然可以无需VM退出就是可写的,这取决于在此描述的其他比特的设置。可以设置比特0(读权限位),以便指示该页面是可读的。在一个实施例中,如果没有设置读权限位,那么,不管在此描述的其他比特的设置如何,该页面是不可写的(没有VM退出)。
对于要在组U中包括的页面,在来自该页面的指令尝试访问数据时,可以设置所有级的其EPT页面结构中的比特52,以使得来自所有级的比特52的逻辑与为‘1’,且可以在至少一级中清除比特58,以使得来自所有级的比特52的逻辑与为‘0’。对于要在组V中包括的页面,在来自该页面的指令尝试访问数据时,可以在一个级中清除比特52,以使得来自所有级的比特52的逻辑与为‘0’,并且可以在所有级中设置比特58,以使得来自所有级的比特58的逻辑与为‘1’。对于要在组W中包括的页面,在来自该页面的指令尝试访问数据时,可以清除至少一级中的比特58和至少一级中的比特52,以使得来自每一级的比特58的逻辑与为‘0’,且来自每一级的比特52的逻辑与也为‘0’。
然后,例如,在指令试图向组A中的页面写数据时,即使W比特是‘0’,MMU130的页面漫步也不自动地引起VM退出。替代地,基于到该数据页面的叶级条目的比特52和到该指令页面的每一级的条目的比特52和58,MMU 130判断是自动允许、自动不允许所尝试的访问还是引起VM退出。由于数据页面的比特52是‘1’,来自该指令页面的每一EPT级的比特52的逻辑与和来自该指令页面的每一EPT级的比特58的逻辑与被用来判断该指令页面是处于组U、组V还是组W。如果该指令页面处于组U,则无需VM退出就允许该访问。如果该指令页面处于组V,则无需VM退出就拒绝该访问,且可以跳过该指令。如果该指令页面处于组W,则引起VM退出,其中,原因可能是EPT违规。
也可以使用其他比特定义其他数据页面组和对应于那些数据页面的指令页面组。例如,可以使用比特53(如上面针对比特52所描述的)来定义数据页面组B,并且可以使用比特53和59(如上面分别针对比特52和58所描述的)来为组B数据页面定义指令页面组X、组Y和组Z。在一个实施例中,六组不同的数据页面(把比特57:52中的一个用于每一组数据页面,且把比特57:52中的一个和比特63:58中的一个用于每一组相应的指令页面)。来自不同的组的指令页面可以重叠。例如,页面可以处于组U和组X,在这种情况中无需VM退出就可以访问来自组A和组B中的页面的数据。
在一些实施例中,可以定义附加的数据页面组。例如,被称为F1、E1、D1、C1、B1和A1的六个数据页面组可以分别把比特[57:52]用于各数据页面,并把比特[57:52]和[63:58]用于它们的相应指令页面,并且,被称为F2、E2、D2、C2、B2和A2的额外的六个数据页面组也可以分别把比特[57:52]用于各数据页面并把比特[57:52]和[63:58]用于它们的相应指令页面。由于前六组使用与后六组相同的比特,使用了两种不同的EPT结构(例如,EPT1用于F1、E1、D1、C1、B1和A1;以及EPT2用于F2、E2、D2、C2、B2和A2;其中,图1把EPT1示出为EPT121并把EPT2示出为EPT122),并且,可以使用EPT视图切换来在两种不同的EPT结构之间切换。通过使用例如到数据页面的叶级条目的比特[63:58]来形成用作EPT数量的整数,本发明的各实施例允许无需VM退出就发生的这种视图切换。例如,用于EPT1的EPT数量可以是‘1’且用于EPT2的EPT数量可以是‘2’。然后,在EPT1中,到A1、B1、C1、D1、E1或F1中的数据页面的叶级条目将会清除比特[63:58],指示不需要视图切换,但到A2、B2、C2、D2、E2或F2的数据页面的叶级条目将把值‘2’存储在比特[63:58]中,以便引起到EPT2的视图切换。然后,在EPT2中,到A2、B2、C2、D2、E2或F2中的数据页面的叶级条目将清除比特[63:58],以便指示不需要视图切换,但到A1、B1、C1、D1、E1或F1中的数据页面的叶级条目将把值‘1’存储在比特[63:58]中,以便引起到EPT1的视图切换。因此,无需VM退出就可以执行适应更多数量的数据页面组的视图切换。通过在EPT格式中用于本发明的各实施例的比特的数量,可以确定能够以适应有和没有视图切换的情况的数据页面组的数量。可以用CPU ID指令查找和/或在处理存储113的存储位置(例如型号特定寄存器117)中查找可供软件在EPT分页结构的条目格式中使用的比特的数量。软件(例如,VMM)可以使用可用的比特中的全部或一些来实现本发明的一个实施例,且可以把一些或全部用于另一目的。因此,可以把新的字段(例如,字段128)添加到VMCS(例如,VMCS 123),以便指示要用来实现本发明的一个实施例的比特的数量,以及它们在EPT分页结构条目格式中的位置。出于本描述的目的,这些比特可以被称为页面组字段。
在一些实施例中,除了数据访问之外或者代替数据访问,以上所描述的技术也可以用于指令提取(在并行方法中使用X比特)。因此,各实施例可以允许区分在用于指令提取、数据写和/或数据读的EPT数量之间有区别。例如,在把各种技术应用到指令提取和数据写的一个实施例中,EPT数量,例如如上所述在比特[63:58]中,可以是指要切换为用于指令提取或数据写的EPT结构。因此,可以使用比特[57:52]中的任何一个或多个来区分。
此外,为了允许视图切换,可以提供指向新的EPT结构的指针。在一些实施例中,出于这一目的,可以把新的字段添加到VMCS(例如,VMCS 123)。可以使用新的字段(例如,字段129)来指向系统存储器中的数据结构(例如,EPTP表125),以便把EPT数量例如从如上所述的比特[63:58](例如EPT数量126)链接到指向相应的EPT结构的指针(例如,EPTP 127)。
图2和图3阐释根据本发明的一个实施例用于在虚拟化环境中控制对存储器页面组的访问的方法200和300。尽管本发明的方法实施例不限于此方面,但可以对图1的元素进行引用,以便帮助描述图2和图3的方法实施例。可以由在VM外操作的VMM执行方法200,以便准备无需引起VM退出就在VM内执行方法300。方法200包括设立四组不同的数据页面(例如,A1、B1、A2和B2)(两种不同的分页结构(例如,EPT1和EPT2)中每一种分页结构有两组数据页面)以及用于每一组数据页面的两组不同的指令页面(例如,U1/V1/W1用于A1,X1/Y1/Z1用于B1,U2/V2/W2用于A2,且X2/Y2/Z2用于B2)。然而,在本发明的范围内可以使用任何数量的每一组和任何数量的分页结构。
在方法200的框210中,用多个比特来编程处理器,以便用于控制对存储器页面组的访问。在框212,通过把第一组值存储在第一分页结构(例如,EPT1)中它们的页面组字段中,来定义控制对其的访问的第一组页面(例如,A1)。在框214,通过把第二组值存储在第一分页结构(例如,EPT1)中的它们的页面组字段中,来定义控制对其的访问的第二组页面(例如,B1)。在框216,通过把第三组值存储在第二分页结构(例如,EPT2)中的它们的页面组字段中,来定义控制对其的访问的第三组页面(例如,A2)。在框218,通过把第四组值存储在第二分页结构(例如,EPT2)中它们的页面组字段中,来定义控制对其的访问的第四组页面(例如,B2)。
在框220,通过把第五组值存储在第一分页结构(例如EPT1)中它们的页面组字段中,来定义用于访问A1的第一组指令页面(例如,U1)。在框222,通过把第六组值存储在第一分页结构(例如EPT1)中它们的页面组字段中,来定义用于访问A1的第二组指令页面(例如,V1)。在框224,通过把第七组值存储在第一分页结构(例如EPT1)中它们的页面组字段中,来定义用于访问A1的第三组指令页面(例如,W1)。
在框230,通过把第八组值存储在第一分页结构(例如EPT1)中它们的页面组字段中,来定义用于访问B1的第四组指令页面(例如,X1)。在框232,通过把第九组值存储在第一分页结构(例如EPT1)中它们的页面组字段中,来定义用于访问B1的第五组指令页面(例如,Y1)。在框234,通过把第十组值存储在在第一分页结构(例如EPT1)中它们的页面组字段中,来定义用于访问B1的第六组指令页面(例如,Z1)。
在框240,通过把第十一组值存储在第二分页结构(例如EPT2)中它们的页面组字段中,来定义用于访问A2的第七组指令页面(例如,U2)。在框242,通过把第十二组值存储在第二分页结构(例如EPT2)中它们的页面组字段中,来定义用于访问A2的第八组指令页面(例如,V2)。在框244,通过把第十三组值存储在第二分页结构(例如EPT2)中它们的页面组字段中,来定义用于访问A2的第九组指令页面(例如,W2)。
在框250,通过把第十四组值存储在第二分页结构(例如EPT2)中它们的页面组字段中,来定义用于访问B2的第十组指令页面(例如,X2)。在框252,通过把第十五组值存储在第二分页结构(例如EPT2)中它们的页面组字段中,来定义用于访问B2的第十一组指令页面(例如,Y2)。在框254,通过把第十六组值存储在第二分页结构(例如EPT2)中它们的页面组字段中,来定义用于访问B2的第十二组指令页面(例如,Z2)。
在框260,把表存储在存储器中,以便把EPT数量链接到EPT指针。在框262,把指向该表的指针存储在VMCS中。
在方法300的框310中,发起在VM中执行指令。方法300全部都可以无需引起VM退出就执行,直到框390。该指令来自第一存储器页面(“指令页面”)且指令尝试把数据写入到第二存储器页面(“数据页面”)。
在框中312,执行包括通过活跃EPT结构(例如,EPT1)的漫步的页面漫步,以便查找系统存储器中的数据页面的物理地址。在框中314,确定在至少一级的EPT1中该数据页面的执行权限位是‘0’。在框中316,确定在至少一级的EPT1中该数据页面的写权限位是‘0’。在框中318,判断在所有级的EPT1中该数据页面的读权限位是否为‘1’。若是,则方法300在框320继续;若不是,则方法300跳到框390,引起VM退出。
在框中320,判断用于该数据页面的EPT1中的叶级条目的比特[63:58]的逻辑或是否为“1”。若是,则它意味着应执行视图切换,且方法300在框322继续。若不是,则方法300跳到框330。
在框中322,在VMCS中查找指向EPTP表的指针。在框中324,EPTP表被用来查找对应于被存储在该数据页面的比特[63:58]中的EPT数量的EPTP。在框326中,执行到新的EPT结构(EPT2)的视图切换。
在框中330,判断用于该数据页面的EPT2中的叶级条目中的比特[57:52]中的任何是否为‘1’(例如,比特52)。若是,则方法300在框332继续。若不是,则方法300跳到框390,进行VM退出。
在框中332,判断用于该指令页面的所有级的EPT2中的每一条目的比特[57:52]中的一个的逻辑与是否为“1”,其中,所检查的比特位置是在框330被发现为‘1’的比特位置。若是,则在框334,无需VM退出就允许访问,并且由VM执行该指令。若不是,那么,在框336,判断用于该指令页面的所有级的EPT2中的每一条目的比特[63:58]中的一个的逻辑与是否为“1”,其中,所检查的比特位置是对应于在框330被发现为‘1’的比特位置的比特位置(例如,指令的比特58对应于数据的比特52)。若是,则在框338,无需VM退出就拒绝访问,跳过该指令,且发起由VM执行下一指令。若不是,则在框390,发起VM退出。
在本发明的各种实施例中,可以按不同的次序执行图2和图3中所阐释的方法,且可以组合或省略所阐释的框,且可以带有额外的框,或者带有重新排序、组合、省略或额外的框的组合。
可以在被存储在机器可读介质上的数据中实施本发明的各实施例,其中该数据表示可用来制造处理器100的全部或部分的设计或其他信息。
因而,已经描述了用于控制对存储器页面组的访问的本发明的各实施例。尽管已经描述并在附图中示出了某些实施例,但应理解,这样的实施例仅仅说明而不是限制广泛的本发明,且这本发明不限于所示出和描述的特定的构造和配置,这是由于本领域的普通技术人员可以在研究本公开内容之后看出各种其他修改。在诸如本领域的发展迅速且不容易预见进一步进展的技术领域中,在不偏离本公开内容的原理或所附权利要求的范围的前提下,可以在配置和细节方面容易地修改所公开的实施例,通过允许技术进步来促进这一点。

Claims (20)

1.一种处理器,包括:
虚拟化单元,其把所述对处理器的控制传递给虚拟机;
存储器管理单元,其响应于对在所述虚拟机上执行被存储在第一页面上的第一指令的第一尝试,至少部分地基于在对应于所述第一分页结构中的第二页面的第一叶级条目中设置的第一比特和在对应于所述第一分页结构的每一级中的所述第一页面的每一条目中设置的相应第二比特,来执行通过第一分页结构的第一页面漫步,以便查找第二页面以及允许在无需退出所述虚拟机的情况下访问所述第二页面。
2.如权利要求1所述的处理器,其特征在于,所述存储器管理单元也响应于对在所述虚拟机上执行被存储在第三页面上的第二指令的第二尝试,至少部分地基于在对应于所述第一分页结构中的所述第二页面中的所述第一叶级条目中设置的所述第一比特和在对应于所述第一分页结构的每一级中的所述第三页面的每一条目中设置的相应第三比特,来执行通过所述第一分页结构的第二页面漫步,以便查找所述第二页面以及拒绝在无需退出所述虚拟机的情况下访问所述第二页面。
3.如权利要求2所述的处理器,其特征在于,所述存储器管理单元也响应于对在所述虚拟机上执行被存储在第四页面上的第三指令的第三尝试,至少部分地基于在对应于所述第一分页结构中的第五页面的第二叶级条目中设置的第四比特和在对应于所述第一分页结构的每一级中的所述第四页面的每一条目中设置的相应第五比特,来执行通过所述第一分页结构的第三页面漫步,以便查找第五页面并且允许无需退出所述虚拟机就访问所述第五页面。
4.如权利要求3所述的处理器,其特征在于,所述存储器管理单元也响应于对在所述虚拟机上执行被存储在第六页面上的第四指令的第四尝试,至少部分地基于在对应于所述第一分页结构中的所述第五页面的所述第二叶级条目中设置的所述第四比特和在对应于所述第一分页结构的每一级中的所述第六页面的每一条目中设置的相应第六比特,来执行通过所述第一分页结构的第四页面漫步,以便查找所述第五页面并且并拒绝在无需退出所述虚拟机的情况下访问第五页面。
5.如权利要求4所述的处理器,其特征在于,所述存储器管理单元也响应于对在所述虚拟机上执行被存储在第七页面上的第五指令的第五尝试,至少部分地基于在对应于所述第一分页结构中的第八页面的第三叶级条目中的一组比特的逻辑或为‘1’,来执行通过所述第一分页结构的第五页面漫步,以便查找所述第八页面,并且在无需退出所述虚拟机的情况下执行到第二分页结构的视图切换。
6.如权利要求5所述的处理器,其特征在于,所述第一组的比特不包括所述第一比特或所述第四比特。
7.如权利要求6所述的处理器,其特征在于,进一步包括用于指示所述多个比特在所述组中的存储位置。
8.一种方法,包括:
进入虚拟机;
响应于对在所述虚拟机中执行被存储在第一页面上的第一指令的第一尝试,执行通过第一分页结构的第一页面漫步;
通过所述第一页面漫步查找第二页面;
确定设置了对应于所述第一分页结构中的所述第二页面的第一叶级条目中的第一比特;
确定设置了对应于所述第一分页结构的每一级中的所述第一页面的每一条目中的相应第二比特;以及
允许在无需退出所述虚拟机的情况下访问所述第二页面。
9.如权利要求8所述的方法,其特征在于,进一步包括,在进入所述虚拟机之后:
响应于对在所述虚拟机中执行被存储在第三页面上的第二指令的第二尝试,执行通过所述第一分页结构的第二页面漫步;
通过所述第二页面漫步查找所述第二页面;
确定设置了对应于所述第一分页结构中的所述第二页面的第一叶级条目中的第三比特;
确定设置了对应于所述第一分页结构的每一级中的所述第三页面的每一条目中的相应第四比特;以及
拒绝在无需退出所述虚拟机的情况下访问所述第二页面。
10.如权利要求9所述的方法,其特征在于,进一步包括,在进入所述虚拟机之后:
响应于对在所述虚拟机中执行被存储在第四页面上的第三指令的第三尝试,执行通过所述第一分页结构的第三页面漫步;
通过所述第三页面漫步查找第五页面;
确定设置了对应于所述第一分页结构中的所述第五页面的第二叶级条目中的第五比特;
确定对应于所述第一分页结构的每一级中的所述第四页面的每一条目中的相应第六比特;以及
允许在无需退出所述虚拟机的情况下访问所述第五页面。
11.如权利要求10所述的方法,其特征在于,进一步包括,在进入所述虚拟机之后:
响应于对在所述虚拟机中执行被存储在第六页面上的第四指令的第四尝试,执行通过所述第一分页结构的第四页面漫步;
通过所述第四页面漫步查找所述第五页面;
确定对应于所述第一分页结构中的所述第五页面的所述第二叶级条目中的第七比特;
确定设置了对应于所述第一分页结构的每一级中的所述第六页面的每一条目中的相应第八比特;以及
拒绝在无需退出所述虚拟机的情况下访问所述第五页面。
12.如权利要求11所述的方法,其特征在于,进一步包括,在进入所述虚拟机之后:
响应于对在所述虚拟机中执行被存储在第七页面上的第五指令的第五尝试,执行通过所述第一分页结构的第五页面漫步;
通过所述第五页面漫步查找第八页面;
对在对应于所述第八页面的第三叶级条目中的一组比特执行逻辑或;
确定所述逻辑或的结果为‘1’;以及
在无需退出所述虚拟机的情况下执行到第二分页结构的视图切换。
13.如权利要求12所述的方法,其特征在于,所述第一组比特不包括所述第一比特或所述第四比特。
14.如权利要求13所述的方法,其特征在于,进一步包括借助于该组中的多个比特编程用于所述虚拟机的控制结构。
15.如权利要求14所述的方法,其特征在于,进一步包括在用于所述虚拟机的控制结构中查找指向表的指针,所述表存储指向所述第二分页结构的指针。
16.如权利要求15所述的方法,其特征在于,进一步包括使用被存储在所述一组比特中的值来查找指向所述第二分页结构的所述指针。
17.如权利要求8所述的方法,其特征在于,进一步包括确定清除了对应于所述第一分页结构的每一级中的所述第二页面的每一条目中的写权限位。
18.如权利要求9所述的方法,其特征在于,进一步包括,在进入所述虚拟机之后:
响应于对在所述虚拟机中执行被存储在第四页面上的第三指令的第三尝试,执行通过所述第一分页结构的第三页面漫步;
通过所述第三页面漫步查找所述第二页面;
确定设置了对应于所述第一分页结构中的所述第二页面的第三叶级条目的第五比特;
确定清除了对应于至少一级的所述第一分页结构中的所述第四页面的第四条目中的相应第六比特;
确定清除了对应于所述第一分页结构中的至少一级的所述第四页面的第五条目中的相应第七比特;以及
退出所述虚拟机以便判断是否允许访问所述第二页面。
19.一种系统,包括:
存储器,其存储第一分页结构;以及
处理器,其包括:
虚拟化单元,其把对所述处理器的控制传递给虚拟机;
存储器管理单元,其响应于对在所述虚拟机上执行被存储在第一页面上的第一指令的第一尝试,至少部分地基于在对应于所述第一分页结构中的第二页面的第一叶级条目中设置的第一比特和在对应于所述第一分页结构的每一级中的所述第一页面的每一条目中设置的相应第二比特,执行通过所述第一分页结构的第一页面漫步,以便查找第二页面并且允许在无需退出所述虚拟机的情况下访问所述第二页面。
20.如权利要求19所述的系统,其特征在于:
所述存储器也存储第二分页结构;以及
所述存储器管理单元也响应于在所述虚拟机上执行被存储在第三页面上的第二指令的第二尝试,至少部分地基于对应于所述第一分页结构中的所述第二页面的第二叶级条目中的一组比特的逻辑或为‘1’,执行通过所述第一分页结构的第二页面漫步,以便查找所述第二页面并且在无需退出所述虚拟机的情况下执行到所述第二分页结构的视图切换。
CN201380059931.2A 2012-12-17 2013-06-17 在虚拟化环境中控制对存储器页面组的访问 Expired - Fee Related CN104798061B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/716,447 US9098427B2 (en) 2012-12-17 2012-12-17 Controlling access to groups of memory pages in a virtualized environment
US13/716,447 2012-12-17
PCT/US2013/046186 WO2014098979A1 (en) 2012-12-17 2013-06-17 Controlling access to groups of memory pages in a virtualized environment

Publications (2)

Publication Number Publication Date
CN104798061A true CN104798061A (zh) 2015-07-22
CN104798061B CN104798061B (zh) 2018-03-30

Family

ID=50932339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380059931.2A Expired - Fee Related CN104798061B (zh) 2012-12-17 2013-06-17 在虚拟化环境中控制对存储器页面组的访问

Country Status (4)

Country Link
US (2) US9098427B2 (zh)
CN (1) CN104798061B (zh)
GB (1) GB2523280B (zh)
WO (1) WO2014098979A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027752A (zh) * 2015-09-16 2018-05-11 佳能株式会社 信息处理装置、用于信息处理装置的控制方法、和程序

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098427B2 (en) 2012-12-17 2015-08-04 Intel Corporation Controlling access to groups of memory pages in a virtualized environment
US9529609B2 (en) * 2013-12-10 2016-12-27 Vmware, Inc. Tracking guest memory characteristics for memory scheduling
US9547510B2 (en) * 2013-12-10 2017-01-17 Vmware, Inc. Tracking guest memory characteristics for memory scheduling
US9619401B2 (en) * 2015-02-20 2017-04-11 Wisconsin Alumni Research Foundation Efficient memory management system for computers supporting virtual machines
US9600190B2 (en) * 2015-02-27 2017-03-21 Red Hat Israel, Ltd. Virtual machine functions for multiple privileged pages
US9569247B2 (en) * 2015-03-31 2017-02-14 Red Hat Israel, Ltd. Range based virtual machine functions
US10713195B2 (en) * 2016-01-15 2020-07-14 Intel Corporation Interrupts between virtual machines
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10713177B2 (en) * 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US20180095892A1 (en) * 2016-10-01 2018-04-05 Intel Corporation Processors, methods, systems, and instructions to determine page group identifiers, and optionally page group metadata, associated with logical memory addresses
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102671A1 (en) * 2003-11-06 2005-05-12 Intel Corporation Efficient virtual machine communication via virtual machine queues
US20060259732A1 (en) * 2005-05-12 2006-11-16 Microsoft Corporation Enhanced shadow page table algorithms
US20090172341A1 (en) * 2007-12-31 2009-07-02 Durham David M Using a memory address translation structure to manage protected micro-contexts
US20110131388A1 (en) * 2003-03-25 2011-06-02 Vmware, Inc. Accessing multiple page tables in a computer system
US20120265963A1 (en) * 2008-01-15 2012-10-18 Vmware, Inc. Large-page optimization in virtual memory paging systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356665B2 (en) * 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
US8332594B2 (en) * 2010-06-28 2012-12-11 International Business Machines Corporation Memory management computer
US9098427B2 (en) 2012-12-17 2015-08-04 Intel Corporation Controlling access to groups of memory pages in a virtualized environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131388A1 (en) * 2003-03-25 2011-06-02 Vmware, Inc. Accessing multiple page tables in a computer system
US20050102671A1 (en) * 2003-11-06 2005-05-12 Intel Corporation Efficient virtual machine communication via virtual machine queues
US20060259732A1 (en) * 2005-05-12 2006-11-16 Microsoft Corporation Enhanced shadow page table algorithms
US20090172341A1 (en) * 2007-12-31 2009-07-02 Durham David M Using a memory address translation structure to manage protected micro-contexts
US20120265963A1 (en) * 2008-01-15 2012-10-18 Vmware, Inc. Large-page optimization in virtual memory paging systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027752A (zh) * 2015-09-16 2018-05-11 佳能株式会社 信息处理装置、用于信息处理装置的控制方法、和程序
CN108027752B (zh) * 2015-09-16 2021-10-29 佳能株式会社 信息处理装置、用于信息处理装置的控制方法、和程序
US11397603B2 (en) 2015-09-16 2022-07-26 Canon Kabushiki Kaisha Information processing apparatus, control method therefor, and program

Also Published As

Publication number Publication date
CN104798061B (zh) 2018-03-30
US9098427B2 (en) 2015-08-04
GB2523280A (en) 2015-08-19
WO2014098979A1 (en) 2014-06-26
US20140173169A1 (en) 2014-06-19
US20150301947A1 (en) 2015-10-22
US9298639B2 (en) 2016-03-29
GB2523280B (en) 2020-06-10
GB201509633D0 (en) 2015-07-15

Similar Documents

Publication Publication Date Title
CN104798061A (zh) 在虚拟化环境中控制对存储器页面组的访问
CN102473139B (zh) 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
CN101236529B (zh) 用于访问分区系统中的存储器的方法和设备
CN101203838B (zh) 直接存储器存取转换的地址窗口支持
CN101520753B (zh) 数据处理设备和控制虚拟机对安全存储器的访问的方法
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
CN101751284B (zh) 一种分布式虚拟机监控器的i/o资源调度方法
CN100397368C (zh) 无效存储器,清除缓冲区表项
CN102906719B (zh) 输入/输出地址到存储器地址的转换
EP2510444B1 (en) Hierarchical translation tables control
CN102906692B (zh) 修改适配器功能参数的指令的方法和系统
EP2619671B1 (en) Debugging of a data processing apparatus
CN102906716A (zh) 依据适配器的多个地址空间
CN104685479A (zh) 客户虚拟机内的虚拟输入/输出存储器管理单元
CN101261577A (zh) 微处理器以及在微处理器中存储数据的方法
CN102947808A (zh) 用于适配器函数的转换格式的运行时确定
CN102906704A (zh) 控制处理适配器中断请求的速率
CN103080912A (zh) 用于微处理器系统的存储器管理单元、微处理器系统及管理存储器的方法
CN102906702A (zh) 对适配器的地址空间的访客端访问
CN109416640B (zh) 孔径访问处理器、方法、系统和指令
CN102906720A (zh) 启用/禁用计算环境的适配器
CN104969199A (zh) 实施黑名单分页结构指示值的处理器、方法,以及系统
MX2012014858A (es) Instrucciones de bloque/almacena/almacena para comuncar con adaptadores.
CN108959110A (zh) 管理员模式执行保护
CN101620573B (zh) X86体系结构内存管理单元虚拟化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180330

Termination date: 20210617