CN104239238A - 用于管理转换旁视缓冲的方法和装置 - Google Patents

用于管理转换旁视缓冲的方法和装置 Download PDF

Info

Publication number
CN104239238A
CN104239238A CN201310250683.1A CN201310250683A CN104239238A CN 104239238 A CN104239238 A CN 104239238A CN 201310250683 A CN201310250683 A CN 201310250683A CN 104239238 A CN104239238 A CN 104239238A
Authority
CN
China
Prior art keywords
tlb
guest
conversion table
virtual machine
physical addresses
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
CN201310250683.1A
Other languages
English (en)
Other versions
CN104239238B (zh
Inventor
常晓涛
戈弋
H·弗兰克
王鲲
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310250683.1A priority Critical patent/CN104239238B/zh
Priority to US14/306,790 priority patent/US9355042B2/en
Publication of CN104239238A publication Critical patent/CN104239238A/zh
Application granted granted Critical
Publication of CN104239238B publication Critical patent/CN104239238B/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/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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • 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

Landscapes

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

Abstract

本发明涉及用于管理转换旁视缓冲的方法和装置。根据本发明的实施例,TLB未命中所引起的一系列操作不再需要管理器的干预。相反,当发生TLB未命中时,硬件直接向虚拟机发出中断。以此方式,可以借助于硬件级别的辅助转换表来高效地管理TLB。这样,可以极大地降低系统开销,提高系统性能。公开了分别与支持虚拟化的系统中的硬件、管理器和虚拟机相关联的方法和装置。

Description

用于管理转换旁视缓冲的方法和装置
技术领域
本发明的实施例总体上涉及计算机体系结构,更具体地,涉及用于管理转换旁视缓冲(TLB)的方法和装置。
背景技术
地址映射机制被广泛使用于现代计算机体系结构中。在系统中,上层应用所使用的存储器地址是虚拟地址(Virtual Address,VA)。操作系统(Operating System,OS)负责将应用所指定的VA映射到存储器的物理地址(Physical Address,PA),以便执行对存储器资源的真实访问。随着虚拟化(virtualization)等技术的发展,地址映射可能需要执行多次地址转换。具体而言,虚拟化允许多个OS在单个物理机器上并发地运行,并且由此引入了一个称为管理器或超级管理程序(hypervisor)的软件层,用于控制客户(guest)OS对系统的物理资源的访问。此时,地址映射包括两次地址转换。首先,客户OS将客户应用所指定的客户虚拟地址(Guest Virtual Address,GVA)转换为客户物理地址(Guest Physical Address,GPA)。接下来,管理器将GPA转换为主机物理地址(Host Physical Address,HPA),它是实际的存储器物理地址。
为了加速地址转换,绝大多数现代计算机处理器配备有转换旁视缓冲(Translation Lookaside Buffer,TLB)。TLB是页表的高速缓存,用于存储页表中的部分条目。在进行地址转换时,TLB首先被访问。如果包含所请求虚拟地址的页表条目存在于TLB中(称为TLB命中),则可以实现快速的地址转换。反之,如果包含所请求虚拟地址的页表条目不在TLB中(TLB未命中),则需要在页表中查询对应的条目,并且将该条目写入TLB中。
一般而言,存在两种TLB管理机制,即,硬件管理机制和软件管理机制。相对于传统的硬件管理机制而言,软件管理的TLB可以实现较大的灵活性,因此已得到越来越多的应用。然而,在传统的软件管理TLB中,由于客户OS无法访问存储于硬件中的TLB,因此管理器必须维护一个影子(shadow)TLB。而且,由TLB未命中所引起的各种操作都需要由管理器来处理。在此期间,可能需要在用户模式和特权模式之间执行一次或多次切换。这种软件管理机制将会导致显著的开销,严重地影响系统的总体性能。
因此,本领域中需要一种以更为高效和有效的方式来实现TLB软件管理的方法和装置。
发明内容
鉴于现有技术中存在的上述问题以及其他潜在问题,本发明提供在支持虚拟化的系统中管理TLB的方法和装置。
在本发明的第一方面,提供一种在支持虚拟化的系统中管理转换旁视缓冲TLB的方法。该方法包括:利用存储器访问指令所指定的客户虚拟地址来查询所述TLB,所述存储器访问指令接收自运行于所述系统中的虚拟机;响应于在所述TLB中未命中所述客户虚拟地址,向所述虚拟机发出中断以使所述虚拟机处理所述未命中;以及根据所述虚拟机对所述未命中的所述处理的结果,利用辅助转换表来管理所述TLB,所述辅助转换表的条目将客户物理地址映射为所述系统中的主机物理地址。
在本发明的第二方面,提供一种在支持虚拟化的系统中管理转换旁视缓冲TLB的方法。该方法包括:接收来自所述系统的硬件的中断,所述中断由在辅助转换表中未命中客户物理地址而引起,所述客户物理地址根据运行于所述系统中的虚拟机所发出的存储器访问指令而被确定;确定与所述客户物理地址相对应的所述系统中的主机物理地址;以及响应于所述存储器访问指令涉及针对存储器空间的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目。
在本发明的第三方面,提供一种在支持虚拟化的系统中管理转换旁视缓冲TLB的由硬件实现的装置。该装置包括:TLB查询单元,被配置为利用存储器访问指令所指定的客户虚拟地址来查询所述TLB,所述存储器访问指令接收自运行于所述系统中的虚拟机;第一中断发出单元,被配置为响应于在所述TLB中未命中所述客户虚拟地址,向所述虚拟机发出中断以使所述虚拟机处理所述未命中;以及TLB管理单元,被配置为根据所述虚拟机对所述未命中的所述处理的结果,利用辅助转换表来管理所述TLB,所述辅助转换表的条目将客户物理地址映射为所述系统中的主机物理地址。
在本发明的第四方面,提供一种在支持虚拟化的系统中管理转换旁视缓冲TLB的装置。该装置包括:中断接收单元,被配置为接收来自所述系统的硬件的中断,所述中断由在辅助转换表中未命中客户物理地址而引起,所述客户物理地址根据运行于所述系统中的虚拟机所发出的存储器访问指令而被确定;地址转换单元,被配置为确定与所述客户物理地址相对应的所述系统中的主机物理地址;以及转换表写入单元,被配置为响应于所述存储器访问指令涉及针对存储器空间的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目。
通过下文描述将会理解,根据本发明的实施例,TLB未命中所引起的一系列操作不再需要管理器的干预。相反,当发生TLB未命中时,硬件直接向虚拟机(更具体地,虚拟机的操作系统)发出中断。以此方式,可以借助于硬件级别的辅助转换表来高效地管理TLB。这样,可以极大地降低系统开销,提高系统性能。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显其中:
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的示意性框图;
图2示出了根据支持虚拟化的系统200的示意性框图;
图3示出了根据本发明示例性实施例的辅助转换表的工作原理的框图;
图4示出了根据本发明示例性实施例的用于管理TLB的方法400的示意性流程图;
图5示出了根据本发明示例性实施例的用于管理TLB的方法500的示意性流程图;
图6示出了根据本发明示例性实施例的用于管理TLB的方法600的示意性流程图;
图7示出了根据本发明示例性实施例的用于管理TLB的装置700的示意性框图;
图8示出了根据本发明示例性实施例的用于管理TLB的装置800的示意性框图;以及
图9示出了根据本发明示例性实施例的用于管理TLB的装置900的示意性框图。
贯穿所有附图,相同或相似的标号被用来表示相同或相似的元素。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是-但不限于-电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括-但不限于-电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
下面参考附图详细描述根据本发明的示例性实施例。图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括-但不限于-操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管未在图中示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
下面参考图2,其示出了一个支持虚拟化的系统200的示意性框图。如图所示,支持虚拟化的系统200允许运行多个虚拟机(VirtualMachine,VM)201。在每个虚拟机201上,可以运行有多个客户应用202。客户应用202由虚拟机201的客户操作系统203托管,客户OS203亦可称为监督器(supervisor)。系统100还包括管理器204,它是一个软件层,负责管理虚拟机201对系统200的物理硬件205的访问。虚拟机201上的应用202和客户OS203均无权直接访问硬件205。换言之,虚拟机201对硬件205的所有访问必须经由管理器204来实现。
在传统的软件管理TLB中,TLB被维护在硬件205中(称为“硬件TLB”)。硬件TLB中的每个条目将VM201中的客户虚拟地址(GVA)映射为系统中的主机物理地址(HPA)。VM201无权直接访问TLB。另外,每个VM201的客户OS203具有自己的TLB,该TLB由管理器204维护,称为“影子TLB”。影子TLB存储有客户OS203可见的所有TLB条目,每个条目将GVA映射为特定于虚拟机的客户物理地址(GPA)。
根据传统的软件TLB管理机制,当客户应用203执行存储器访问指令时,硬件205根据客户应用203所指定的GVA查询硬件TLB。如果发生硬件TLB未命中,则硬件205向管理器204发出一个中断,例如陷入(trap)消息。作为响应,管理器204首先在影子TLB中执行查询。如果在影子TLB中找到了对应的有效TLB条目,则从客户OS203的角度看并没有发生TLB未命中。此时,管理器204根据影子TLB中的相应条目确定与GVA对应的GPA,并且继而确定与GPA对应的HPA。最后,向TLB写入将GVA映射为HPA的条目。
另一方面,如果管理器204在影子TLB中没有找到相应的条目,则从客户OS203的角度看,发生了TLB未命中。此时,管理器204向VM201的客户OS203发出中断,并且将控制交给客户OS203。作为响应,客户OS203查询页表以确定与GVA对应的GPA。此后,客户OS203发出TLB写指令(例如,“tlbwe”指令)以用于向TLB写入将GVA映射为GPA的条目。由于客户OS203无权访问物理层205,因此硬件205再次向管理器204发出中断,使得管理器204向影子TLB写入将GVA映射为GPA的条目以供将来使用。从客户OS203的角度看,TLB写入被成功地执行。
根据上述传统管理机制,TLB访问、特别是TLB未命中所导致的一系列操作需要管理器204的干预。而且,控制在管理器204与客户OS203之间的转移将会引起特权模式与用户模式的切换。这些都将带来可观的系统开销,严重影响系统的性能和效率。定量地说,管理器204响应于TLB未命中而执行的开销占系统总开销的比例可以多达70%。
不同于上述传统TLB软件管理机制,根据本发明的实施例,提供一种辅助转换表,例如可以称为“逻辑向实际地址转换”(Logicalto Real Address Translation,LRAT)表。LRAT表中的每个条目将GPA映射为HPA。根据本发明的实施例,辅助转换表可以存储在硬件205中。根据本发明的实施例,存储于硬件205中的辅助转换表的每个条目可以特定于一个VM201。例如,每个辅助转换表条目可以具有一个字段用于存储VM201的标识信息。另一方面,一个客户OS203可以对应于辅助转换表中的一个或多个条目。另外,根据本发明的实施例,辅助转换表可以由管理器204来维护和管理。例如,管理器204可以具有一个专用的模块来管理辅助转换表。相应地,管理器204不再需要维护传统软件管理机制中的影子TLB。
应当理解,本发明的范围并不限于利用表(table)的形式来实现辅助性地址转换。相反,在此所称的“辅助转换表”可以被实现为图、树等各种其他数据结构。而且在实现中,辅助转换表可被实现为各种形式,例如包括但不限于以下一个或多个:纯文本、结构化文本、数据库文件,等等。
根据本发明的实施例,硬件205可以被配置为如下操作。首先,硬件205可以利用存储器访问指令所指定的客户虚拟地址来查询所述TLB,该存储器访问指令接收自运行于所述系统中的虚拟机201。继而,响应于在TLB中未命中该客户虚拟地址,硬件205向虚拟机201发出中断以使虚拟机201处理所述未命中。接下来,硬件205可以根据虚拟机201对未命中的处理结果,利用辅助转换表来管理TLB。如上所述,TLB中的每个条目将GPA映射为HPA。
现在将详细描述本发明的若干实施例。继续参考图2,在操作中,当客户应用202执行存储器访问指令时,硬件205利用客户应用202所指定的GVA来查询TLB。如果找到相应的有效条目(TLB命中),则可以继续执行指令。如果在TLB中没找相应的有效条目(TLB未命中),则硬件205直接向客户应用202所驻留的VM201发出中断。该中断例如可以由VM201的客户OS203接收。注意,不同于传统的软件管理TLB,硬件205在发生TLB未命中时没有向管理器204发出任何中断或者异常。
响应于来自硬件205的中断,VM201的客户OS203可以查询页表以确定与GVA相对应的GPA。此后,客户OS203发出TLB写入指令,以尝试向TLB写入将GVA映射为GPA的条目。然而,如上所述,TLB中所保存的是将GVA映射为HPA的条目。因此,硬件205不会直接向TLB写入来自客户OS203的将GVA映射为GPA的条目。相反,根据本发明的实施例,硬件205可以利用GPA和VM201的标识查询辅助转换表。如果在辅助转换表中找到了与该VM201的GPA相关联的条目,则硬件205根据辅助转换表中的条目确定与GPA对应的HPA。由此,硬件205可以生成将GVA映射为HPA的条目并且将其写入TLB。
另一方面,如果硬件205在辅助转换表中没有找到与GPA相关联的条目(由于辅助转换的容量可以非常大,因此这种情况很少发生),则硬件205向管理器204发出中断。作为响应,管理器204确定客户OS203所指定的GPA对应的HPA。因为管理器204控制整个系统的运行,因此这是可以做到的。继而,管理器204生成将GPA映射为HPA的条目,并且将所生成的条目写入辅助转换表。此后,VM201的TLB写入指令继续执行。这时,由于辅助转换表已被管理器204更新,因此硬件205可以通过对辅助转换表表的查询而确定与GPA相对应的HPA。由此,硬件205可以生成将GVA映射为HPA的条目,并且将所生成的条目写入TLB。
下面参考图3描述一个具体示例。在图3所示的示例中,辅助转换表301可以包括如下字段:有效位、大小、客户物理地址GPA(例如,可以表示为客户物理页号GPN)、逻辑分区标识LPID(即,VM标识符)以及主机物理地址HPA(例如,可以被表示为主机物理页号HPN)。注意,图3所示的辅助转换表的格式仅仅是示例性的,并非意在限制本发明的范围。根据本发明的实施例,辅助转换表可以包括任何备选的或附加的字段。
在操作中,当VM201的客户OS203尝试向TLB写入将GVA映射为GPA的条目时,硬件205利用GPA和该VM201的标识符(LPID)查询辅助转换表301。响应于在辅助转换表中查询到了相应的条目,硬件205自动地生成将GVA映射为HPA的条目302(在此例中,该条目还包括虚拟机标识LPID),并且将条目302写入TLB303。上述过程对于VM201及其客户OS203而言是透明的,而且无需管理器204的干预。
可以看到,根据本发明的实施例,无需再由管理器维护一个专门的影子TLB。而且,在TLB未命中发生时,硬件直接向VM201的客户OS203发出中断,以便确定与GVA对应的GPA。接下来,响应于来自客户OS的TLB写入请求,硬件205自动地利用GPA查询辅助转换表。在辅助转换表命中的情况下,TLB未命中的处理完全无需管理器的任何干预。管理器所需完成的工作仅仅是维护辅助转换表。由此,可以显著降低系统开销,提高系统的总体性能。实验表明:与传统的软件TLB管理机制相比,根据本发明的实施例可以将系统性能提升200%以上。
另外,本发明的实施例还支持虚拟化系统中的输入/输出(I/O)设备访问。如已知的,在支持虚拟化的系统中,可以通过存储器映射I/O(Memory Mapping I/O,MMIO)来实现虚拟机对I/O设备的访问。I/O设备的地址被放置在存储器空间中。当客户应用试图访问I/O设备时,它可以像访问存储器一样发出存储器访问指令。在针对I/O设备访问的存储器访问指令中,所指定的GVA不是存储器空间中的有效地址,而是代表所要访问的I/O设备的地址。
当客户应用访问I/O设备时,硬件将利用GVA来查询硬件TLB。如已知的,与I/O设备相关联的地址永远不会被写入TLB中。因此,此时必然发生TLB未命中。在传统的软件管理TLB中,如上所述,硬件将会向管理器发出中断。管理器可以根据GVA判断出客户应用的访问目标不是访问存储器而是I/O设备,并且相应地启动I/O处理过程。然而,根据本发明的实施例,当发生TLB未命中时硬件无需再向管理器发出中断,因而也就无法触发管理器来处理针对I/O设备的访问。
根据本发明的实施例,存在多种可行的方式来解决这一问题。例如,在某些实施例中,管理器204可以仍然保留影子TLB。在发生TLB未命中时,硬件205可以判断该TLB未命中属于指令TLB未命中还是数据TLB未命中。由于I/O访问所引起的TLB未命中全部属于数据TLB未命中,因此当发生数据TLB未命中时,管理器204可以按照传统方式借助于影子TLB来进行处理。另一方面,如果发生的是指令TLB未命中,则可以按照上文描述的实施例借助于辅助转换表来进行处理而无需影子TLB。
为了进一步提高系统性能,根据某些备选实施例,当发生TLB未命中时,硬件205向VM201而不是管理器204发出中断。如上所述,VM201的客户OS203查询页表以确定与GVA对应的GPA,并且尝试执行TLB写入指令。该操作将导致硬件205对辅助转换表的查询。根据本发明的实施例,与I/O设备相关联的GPA始终不会被写入辅助转换表。因此,将会发生辅助转换表未命中。在这种情况下,硬件205向管理器204发出中断。相应地,管理器204可以确定与GPA对应的HPA。而且,管理器204还可以根据目标地址来确定当前存储器访问命令是涉及针对存储器空间的访问还是针对I/O设备的访问。如果管理器204确定当前存储器访问指令确实涉及针对存储器空间的访问,则管理器204按照上文描述的方式向TLB写入将GVA映射为HPA的条目。
如果管理器204确定当前存储器访问指令涉及针对I/O设备而不是存储器空间的访问,则管理器204向TLB写入经过修改的条目。具体而言,将GVA映射为HPA的条目被写入TLB,但是针对所写入条目的所有访问均被禁止。例如,这可以通过将针对该条目的所有访问权限设置为“无”来实现。此后,管理器204返回并且TLB写入指令继续执行。此时,硬件205将确定TLB中存在包含OS203所指定的GVA的条目,但是该条目被禁止访问。在这种情况下,根据本发明的实施例,硬件205向控制器204发出中断以指示数据存储异常(data storage exception)。响应于该中断,管理器204接收到了客户OS203所指定的地址,并且可以据此确定实际的访问目标是I/O设备。相应地,管理器204可以执行所需I/O处理。
备选地,根据某些其他实施例,可以利用硬件级别的寄存器映射机制来支持MMIO。如已知的,当数据TLB未命中发生时,硬件在产生中断的同时将引起未命中的存储器访问指令的上下文记录在一个硬件寄存器中,例如数据异常地址寄存器(Data ExceptionAddress Register,DEAR)或其他任何适当的寄存器。这里所说的“上下文”例如包括导致异常的地址。根据本发明的实施例,可以在硬件中建立一个存储上下文的复本寄存器。该复本寄存器特定于VM201或者客户OS203。当发生TLB未命中时,相关联的上下文被存储在相关的寄存器(例如,DEAR)中并且被拷贝到复本寄存器中。
根据这些实施例,当由于I/O访问而导致TLB未命中发生时,硬件205向VM201发出中断,并且该TLB未命中的上下文被拷贝在复本寄存器中。此后,当VM201尝试执行TLB写入时,将会导致辅助转换表未命中,从而将控制转移给管理器204。此时,管理器204可以访问特定于客户OS203的复本寄存器,以获得存储器指令的上下文。注意,尽管此时主寄存器(例如,DEAR)的内容可能随着系统的运行而发生变化,但是特定于OS203的复本寄存器所保存的内容仍然是由I/O访问引起的TLB未命中的上下文。以此方式,管理器204可以基于获取的上下文来调用的有关过程来执行I/O处理。
下面参考图4,其示出了根据本发明示例性实施例的用于TLB管理的方法400的流程图。可以理解,方法400可由支持虚拟化的系统中的底层硬件设备来执行,例如上文参考图2所描述的硬件205。
如图所示,方法400开始之后,在步骤S401,接收来自运行于系统中的虚拟机的存储器访问指令。接下来,在步骤S402,利用由该存储器访问指令所指定的客户虚拟地址(GVA)查询TLB。如果在TLB中命中该GVA,则方法400进行到步骤S403,在此向虚拟机发出中断以使虚拟机处理未命中。可选地,还可以将该存储器访问指令的上下文存储在特定于虚拟机的寄存器中,以用于潜在的MMIO处理。
此后,在步骤S404-S408,硬件根据虚拟机的未命中处理的结果而利用辅助转换表来管理TLB。如上所述,虚拟机对未命中的处理可以包括查询页表以确定与所述客户虚拟地址对应的客户物理地址;以及发出用于向所述TLB写入将所述客户虚拟地址映射为所述客户物理地址的条目的TLB写入指令。相应地,根据某些实施例,在步骤S404处接收来自虚拟机的TLB写入指令,该TLB写入指令用于向TLB写入将GVA映射为GPA的条目。接下来,在步骤S405,利用GPA查询辅助转换表。如果命中,则在步骤S406确定与GPA对应的HPA,并且在步骤S407向TLB写入将GVA映射为HPA的条目。如果在步骤S405确定在辅助转换表中未命中GPA,则在步骤S408向系统的管理器发出中断,以使管理器更新如上文所述那样更新辅助转换表。当辅助转换表由管理器更新之后,硬件返回步骤S404继续执行来自虚拟机的TLB写入指令。
另一方面,如果在步骤S402确定TLB命中,则可以可选地确定TLB中包含该GVA的条目是否被禁止访问(未示出)。如果该条目被禁止访问(表明当前的存储器访问指令实际上涉及针对I/O设备的访问),则可以向系统的管理器发出指示数据存储异常的中断,以便管理器执行相应的I/O处理。
接下来参考图5,其示出了根据本发明示例性实施例的用于TLB管理的方法500的流程图。可以理解,方法500可由支持虚拟化的系统中的管理器来执行,例如上文参考图2所描述的管理器204。
如图5所示,在步骤S501,接收来自系统的硬件的中断。如上所述,该中断是由于在辅助转换表未命中一个GPA而引起的,该GPA根据虚拟机所发出的存储器访问指令而被确定(与该指令所指定的GVA相对应)。响应于接收到中断,在步骤S502,确定与GPA相对应的HPA。可以理解,管理器控制整个系统的运行,因此知道GPA与HPA之间的对应关系。方法500继而进行到步骤S503,在此,对于涉及存储器空间访问的存储器访问指令,向辅助转换表写入将GPA映射为HPA的条目从而更新辅助性转换表。
另一方面,在支持MMIO的系统中,如果管理器确定存储器访问指令涉及针对I/O设备的访问,则方法503可以进行到可选的步骤S504,在此处理针对I/O设备的访问。根据某些实施例,步骤S504的处理包括:向辅助转换表写入将GPA映射为HPA的条目,并且禁止对所写入的所述条目的访问。备选地,可以访问特定于虚拟机的寄存器(例如,上文描述的复本寄存器GDEAR),以获得存储器访问指令的上下文。而后,可以基于所获取的上下文来执行针对I/O设备的访问。
参考图6,其示出了根据本发明示例性实施例的用于TLB管理的方法600的流程图。可以理解,方法600可由支持虚拟化的系统中的虚拟机来执行。更具体地,方法600可以由虚拟机的客户OS执行,例如上文参考图2所描述的客户OS203。
方法600开始之后,在步骤S601,发出存储器访问指令。该存储器访问指令可以指定特定于VM的GVA。接下来,在步骤S602,从硬件接收由于在TLB中未命中GVA而引起的中断。响应于该中断,在步骤S603,响应于中断而处理TLB未命中。特别地,根据本发明的实施例,步骤S603处的处理可以包括:通过查询页表来确定与GVA对应的HPA,并且发出TLB写入指令,该TLB写入指令用于向TLB写入将GVA映射为GPA的条目。可以理解,硬件不会实际将这样的条目写入,而是借助于辅助地址转换表生成将GVA映射为HPA的条目,并且将其写入TLB。
下面参考图7,其示出了根据本发明示例性实施例的用于TLB管理的装置700的框图。装置700例如由被实现为驻留于系统中的硬件,并且可被配置为执行上文描述的方法400。特别地,根据某些实施例,装置700可以被实现为专用集成电路、通用集成电路、现场可编程门阵列或者其他任何适当的由硬件实现的装置。下文将要描述的装置700所包括的各个单元可以被实现为相应的硬件模块。
如图7所示,根据本发明的实施例,装置700包括:TLB查询单元701,被配置为利用存储器访问指令所指定的客户虚拟地址来查询所述TLB,该虚拟机访问指令接收自系统中的虚拟机;第一中断发出单元702,被配置为响应于在所述TLB中未命中所述客户虚拟地址,向所述虚拟机发出中断以使所述虚拟机处理所述未命中;以及TLB管理单元703,被配置为根据所述虚拟机对所述未命中的所述处理的结果,利用辅助转换表来管理所述TLB,所述辅助转换表的条目将客户物理地址映射为所述系统中的主机物理地址。
根据某些实施例,装置700还可以包括:TLB写入指令接收单元,被配置为接收来自所述虚拟机的TLB写入指令,所述TLB写入指令用于向所述TLB写入将所述客户虚拟地址映射为客户物理地址的条目;转换表查询单元,被配置为利用所述客户物理地址查询辅助转换表;地址转换单元,被配置为响应于在所述辅助转换表中命中所述客户物理地址,确定与所述客户物理地址对应的主机物理地址;以及TLB写入单元,被配置为向所述TLB写入将所述客户虚拟地址映射为所述主机物理地址的条目。
根据某些实施例,装置700还可以包括:第二中断发出单元,被配置为响应于在所述辅助转换表中未命中所述客户物理地址,向所述系统的管理器发出中断以使所述管理器更新所述辅助转换表。
根据某些实施例,装置700还可以包括:第三中断发出单元,被配置为响应于在所述TLB中命中所述客户虚拟地址并且包含所述客户虚拟地址的条目被禁止访问,向所述系统的管理器发出指示数据存储异常的中断。
根据某些实施例,装置700还可以包括:上下文存储单元,被配置为响应于在所述TLB中未命中所述客户虚拟地址,将所述存储器访问指令的上下文存储在特定于所述虚拟机的寄存器中。
现在参考图8,其示出了根据本发明示例性实施例的用于TLB管理的装置800的框图。装置800例如驻留于系统中的管理器,并且可被配置为执行上文描述的方法500。如图所示,根据本发明的实施例,装置800包括:中断接收单元801,被配置为接收来自所述系统的硬件的中断,所述中断由在辅助转换表中未命中客户物理地址而引起,所述客户物理地址根据运行于所述系统中的虚拟机所发出的存储器访问指令而被确定;地址转换单元802,被配置为确定与所述客户物理地址相对应的所述系统中的主机物理地址;以及转换表写入单元803,被配置为响应于所述存储器访问指令涉及针对存储器空间的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目。
根据某些实施例,装置800还可以包括:被配置为响应于所述存储器访问指令涉及针对输入/输出设备的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目的单元;以及被配置为禁止对所写入的所述条目的访问的单元。
根据某些实施例,装置800还可以包括:被配置为响应于所述存储器访问指令涉及针对输入/输出设备的访问,访问特定于所述虚拟机的寄存器以获得所述存储器访问指令的上下文的单元;以及被配置为基于获取的所述上下文来执行针对所述输入/输出设备的所述访问的单元。
参考图9,其示出了根据本发明示例性实施例的用于TLB管理的装置900的框图。装置900例如驻留于系统中的虚拟机,并且可被配置为执行上文描述的方法600。如图所示,根据本发明的实施例,装置900包括:指令发出单元901,被配置为发出存储器访问指令,所述存储器访问指令指定客户虚拟地址;中断接收单元902,被配置为接收来自所述系统的硬件的中断,所述中断由在所述TLB中未命中所述客户虚拟地址而引起;以及TLB未命中处理单元903,被配置为响应于所述中断,处理所述TLB的所述未命中。
根据某些实施例,TLB未命中处理单元903可以包括:页表查询单元,被配置为查询页表以确定与所述客户虚拟地址对应的客户物理地址;以及TLB写入指令发出单元,被配置为发出用于向所述TLB写入将所述客户虚拟地址映射为所述客户物理地址的条目的TLB写入指令。
为清晰起见,图7到图9中没有示出装置所包含的可选单元或者子单元。然而应当理解,上文所描述的所有特征和操作分别适用于装置700到900,故在此不再赘述。而且,各装置中的单元或子单元的划分不是限制性的而是示例性的,旨在从逻辑上描述其主要功能或操作。一个单元的功能可以由多个单元来实现;反之,多个单元亦可由一个单元来实现。本发明的范围在此方面不受限制。而且,上文描述的装置800和900中所包含的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。
上文已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文公开的各实施例。

Claims (18)

1.一种在支持虚拟化的系统中的硬件处管理转换旁视缓冲TLB的方法,所述方法包括:
利用存储器访问指令所指定的客户虚拟地址来查询所述TLB,所述存储器访问指令接收自运行于所述系统中的虚拟机;
响应于在所述TLB中未命中所述客户虚拟地址,向所述虚拟机发出中断以使所述虚拟机处理所述未命中;以及
根据所述虚拟机对所述未命中的所述处理的结果,利用辅助转换表来管理所述TLB,所述辅助转换表的条目将客户物理地址映射为所述系统中的主机物理地址。
2.根据权利要求1所述的方法,其中利用辅助转换表来管理所述TLB包括:
接收来自所述虚拟机的TLB写入指令,所述TLB写入指令用于向所述TLB写入将所述客户虚拟地址映射为客户物理地址的条目;
利用所述客户物理地址查询辅助转换表;
响应于在所述辅助转换表中命中所述客户物理地址,确定与所述客户物理地址对应的主机物理地址;以及
向所述TLB写入将所述客户虚拟地址映射为所述主机物理地址的条目。
3.根据权利要求2所述的方法,其中利用辅助转换表来管理所述TLB还包括:
响应于在所述辅助转换表中未命中所述客户物理地址,向所述系统的管理器发出中断以使所述管理器更新所述辅助转换表。
4.根据权利要求1到3任一项所述的方法,还包括:
响应于在所述TLB中命中所述客户虚拟地址并且包含所述客户虚拟地址的条目被禁止访问,向所述系统的管理器发出指示数据存储异常的中断。
5.根据权利要求1到3任一项所述的方法,还包括:
响应于在所述TLB中未命中所述客户虚拟地址,将所述存储器访问指令的上下文存储在特定于所述虚拟机的寄存器中。
6.根据权利要求1到3任一项所述的方法,其中所述虚拟机对所述未命中的所述处理的所述结果包括来自所述虚拟机的TLB写入指令,所述TLB写入指令用于向所述TLB写入将所述客户虚拟地址映射为客户物理地址的条目,所述客户物理地址是所述虚拟机通过查询页表确定的。
7.一种在支持虚拟化的系统中的管理器处管理转换旁视缓冲TLB的方法,所述方法包括:
接收来自所述系统的硬件的中断,所述中断由在辅助转换表中未命中客户物理地址而引起,所述客户物理地址根据运行于所述系统中的虚拟机所发出的存储器访问指令而被确定;
确定与所述客户物理地址相对应的所述系统中的主机物理地址;以及
响应于所述存储器访问指令涉及针对存储器空间的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目。
8.根据权利要求7所述的方法,还包括:
响应于所述存储器访问指令涉及针对输入/输出设备的访问,
向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目;以及
禁止对所写入的所述条目的访问。
9.根据权利要求7所述的方法,还包括:
响应于所述存储器访问指令涉及针对输入/输出设备的访问,
访问特定于所述虚拟机的寄存器,以获得所述存储器访问指令的上下文;以及
基于获取的所述上下文来执行针对所述输入/输出设备的所述访问。
10.一种在支持虚拟化的系统中的硬件处管理转换旁视缓冲TLB的装置,所述装置由硬件实现并且包括:
TLB查询单元,被配置为利用存储器访问指令所指定的客户虚拟地址来查询所述TLB,所述存储器访问指令接收自运行于所述系统中的虚拟机;
第一中断发出单元,被配置为响应于在所述TLB中未命中所述客户虚拟地址,向所述虚拟机发出中断以使所述虚拟机处理所述未命中;以及
TLB管理单元,被配置为根据所述虚拟机对所述未命中的所述处理的结果,利用辅助转换表来管理所述TLB,所述辅助转换表的条目将客户物理地址映射为所述系统中的主机物理地址。
11.根据权利要求10所述的装置,还包括:
TLB写入指令接收单元,被配置为接收来自所述虚拟机的TLB写入指令,所述TLB写入指令用于向所述TLB写入将所述客户虚拟地址映射为客户物理地址的条目;
转换表查询单元,被配置为利用所述客户物理地址查询辅助转换表;
地址转换单元,被配置为响应于在所述辅助转换表中命中所述客户物理地址,确定与所述客户物理地址对应的主机物理地址;以及
TLB写入单元,被配置为向所述TLB写入将所述客户虚拟地址映射为所述主机物理地址的条目。
12.根据权利要求11所述的装置,还包括:
第二中断发出单元,被配置为响应于在所述辅助转换表中未命中所述客户物理地址,向所述系统的管理器发出中断以使所述管理器更新所述辅助转换表。
13.根据权利要求10到12任一项所述的装置,还包括:
第三中断发出单元,被配置为响应于在所述TLB中命中所述客户虚拟地址并且包含所述客户虚拟地址的条目被禁止访问,向所述系统的管理器发出指示数据存储异常的中断。
14.根据权利要求10到12任一项所述的装置,还包括:
上下文存储单元,被配置为响应于在所述TLB中未命中所述客户虚拟地址,将所述存储器访问指令的上下文存储在特定于所述虚拟机的寄存器中。
15.根据权利要求10到12任一项所述的装置,其中所述虚拟机对所述未命中的所述处理的所述结果包括来自所述虚拟机的TLB写入指令,所述TLB写入指令用于向所述TLB写入将所述客户虚拟地址映射为客户物理地址的条目,所述客户物理地址是所述虚拟机通过查询页表确定的。
16.一种在支持虚拟化的系统中的管理器处管理转换旁视缓冲TLB的装置,所述装置包括:
中断接收单元,被配置为接收来自所述系统的硬件的中断,所述中断由在辅助转换表中未命中客户物理地址而引起,所述客户物理地址根据运行于所述系统中的虚拟机所发出的存储器访问指令而被确定;
地址转换单元,被配置为确定与所述客户物理地址相对应的所述系统中的主机物理地址;以及
转换表写入单元,被配置为响应于所述存储器访问指令涉及针对存储器空间的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目。
17.根据权利要求16所述的装置,还包括:
被配置为响应于所述存储器访问指令涉及针对输入/输出设备的访问,向所述辅助转换表写入将所述客户物理地址映射为所述主机物理地址的条目的单元;以及
被配置为禁止对所写入的所述条目的访问的单元。
18.根据权利要求16所述的装置,还包括:
被配置为响应于所述存储器访问指令涉及针对输入/输出设备的访问,访问特定于所述虚拟机的寄存器以获得所述存储器访问指令的上下文的单元;以及
被配置为基于获取的所述上下文来执行针对所述输入/输出设备的所述访问的单元。
CN201310250683.1A 2013-06-21 2013-06-21 用于管理转换旁视缓冲的方法和装置 Expired - Fee Related CN104239238B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310250683.1A CN104239238B (zh) 2013-06-21 2013-06-21 用于管理转换旁视缓冲的方法和装置
US14/306,790 US9355042B2 (en) 2013-06-21 2014-06-17 Managing a translation lookaside buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310250683.1A CN104239238B (zh) 2013-06-21 2013-06-21 用于管理转换旁视缓冲的方法和装置

Publications (2)

Publication Number Publication Date
CN104239238A true CN104239238A (zh) 2014-12-24
CN104239238B CN104239238B (zh) 2018-01-19

Family

ID=52111926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310250683.1A Expired - Fee Related CN104239238B (zh) 2013-06-21 2013-06-21 用于管理转换旁视缓冲的方法和装置

Country Status (2)

Country Link
US (1) US9355042B2 (zh)
CN (1) CN104239238B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016154789A1 (zh) * 2015-03-27 2016-10-06 华为技术有限公司 数据处理方法、内存管理单元及内存控制设备
CN107209723A (zh) * 2015-02-03 2017-09-26 英特尔公司 用于虚拟化的细粒度地址重新映射
CN108132894A (zh) * 2017-12-23 2018-06-08 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法
CN110196757A (zh) * 2019-05-31 2019-09-03 龙芯中科技术有限公司 虚拟机的tlb填写方法、装置及存储介质
CN110419025A (zh) * 2017-03-14 2019-11-05 华为技术有限公司 用于管理动态随机存取存储器(dram)的系统和方法
CN110908931A (zh) * 2016-08-26 2020-03-24 中科寒武纪科技股份有限公司 Tlb模块的更新方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983893B2 (en) 2013-10-01 2018-05-29 Red Hat Israel, Ltd. Handling memory-mapped input-output (MMIO) based instructions using fast access addresses
US9916173B2 (en) * 2013-11-25 2018-03-13 Red Hat Israel, Ltd. Facilitating execution of MMIO based instructions
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
US9959214B1 (en) * 2015-12-29 2018-05-01 Amazon Technologies, Inc. Emulated translation unit using a management processor
US9846610B2 (en) 2016-02-08 2017-12-19 Red Hat Israel, Ltd. Page fault-based fast memory-mapped I/O for virtual machines
US10042691B2 (en) * 2016-04-26 2018-08-07 International Business Machines Corporation Operation of a multi-slice processor implementing exception handling in a nested translation environment
US10866909B2 (en) * 2017-06-26 2020-12-15 Intel Corporation Technologies for protecting virtual machine memory
US10706493B2 (en) * 2017-12-29 2020-07-07 Intel Corporation Apparatus and method for display virtualization using mapping between virtual and physical display planes
CN113490924A (zh) 2019-02-22 2021-10-08 英特尔公司 用于运行时处理器验证的ept和影子页表之间的动态切换
US10929301B1 (en) * 2019-08-22 2021-02-23 Micron Technology, Inc. Hierarchical memory systems
US11169928B2 (en) * 2019-08-22 2021-11-09 Micron Technology, Inc. Hierarchical memory systems to process data access requests received via an input/output device
US20220318139A1 (en) * 2021-03-30 2022-10-06 Microsoft Technology Licensing, Llc Processor supporting translation lookaside buffer (tlb) modification instruction for updating hardware-managed tlb and related methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567217A (zh) * 2012-01-04 2012-07-11 北京航空航天大学 一种面向mips平台的内存虚拟化方法
CN102792272A (zh) * 2010-02-05 2012-11-21 超威半导体公司 配置成虚拟化客户本地中断控制器的处理器
CN102792286A (zh) * 2010-03-16 2012-11-21 超威半导体公司 虚拟化处理系统中的地址映射
US20130007408A1 (en) * 2008-08-27 2013-01-03 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668304B1 (en) * 2000-01-18 2003-12-23 International Business Machines Corporation Transaction support on logical disks
US7111145B1 (en) * 2003-03-25 2006-09-19 Vmware, Inc. TLB miss fault handler and method for accessing multiple page tables
US8296547B2 (en) 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007408A1 (en) * 2008-08-27 2013-01-03 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
CN102792272A (zh) * 2010-02-05 2012-11-21 超威半导体公司 配置成虚拟化客户本地中断控制器的处理器
CN102792286A (zh) * 2010-03-16 2012-11-21 超威半导体公司 虚拟化处理系统中的地址映射
CN102567217A (zh) * 2012-01-04 2012-07-11 北京航空航天大学 一种面向mips平台的内存虚拟化方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209723A (zh) * 2015-02-03 2017-09-26 英特尔公司 用于虚拟化的细粒度地址重新映射
CN107209723B (zh) * 2015-02-03 2021-12-10 英特尔公司 用于虚拟化的细粒度地址重新映射
WO2016154789A1 (zh) * 2015-03-27 2016-10-06 华为技术有限公司 数据处理方法、内存管理单元及内存控制设备
CN107209724A (zh) * 2015-03-27 2017-09-26 华为技术有限公司 数据处理方法、内存管理单元及内存控制设备
JP2018503903A (ja) * 2015-03-27 2018-02-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド データ処理方法、メモリ管理ユニット、およびメモリ制御デバイス
US10353824B2 (en) 2015-03-27 2019-07-16 Huawei Technologies Co., Ltd. Data processing method, memory management unit, and memory control device
CN107209724B (zh) * 2015-03-27 2020-02-14 华为技术有限公司 数据处理方法、内存管理单元及内存控制设备
CN110908931A (zh) * 2016-08-26 2020-03-24 中科寒武纪科技股份有限公司 Tlb模块的更新方法
CN110419025A (zh) * 2017-03-14 2019-11-05 华为技术有限公司 用于管理动态随机存取存储器(dram)的系统和方法
CN108132894A (zh) * 2017-12-23 2018-06-08 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法
CN110196757A (zh) * 2019-05-31 2019-09-03 龙芯中科技术有限公司 虚拟机的tlb填写方法、装置及存储介质
CN110196757B (zh) * 2019-05-31 2021-08-03 龙芯中科技术股份有限公司 虚拟机的tlb填写方法、装置及存储介质

Also Published As

Publication number Publication date
US9355042B2 (en) 2016-05-31
CN104239238B (zh) 2018-01-19
US20140379956A1 (en) 2014-12-25

Similar Documents

Publication Publication Date Title
CN104239238A (zh) 用于管理转换旁视缓冲的方法和装置
US8661181B2 (en) Memory protection unit in a virtual processing environment
ES2878147T3 (es) Gestión de un procesamiento asociado con utilidades arquitectónicas seleccionadas
US9665499B2 (en) System supporting multiple partitions with differing translation formats
US20140108701A1 (en) Memory protection unit in a virtual processing environment
US8688953B2 (en) Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
JP5214670B2 (ja) マルチプロセッサ仮想マシン環境においてアドレス変換をサポートする方法及び装置
US8832352B2 (en) Hypervisor-driven protection of data from virtual machine clones
US7631147B2 (en) Efficient flushing of translation lookaside buffers in a multiprocessor environment
US8438363B1 (en) Optimization of paging cache protection in virtual environment
US8775715B2 (en) Protection of data from virtual machine clones via paravirtualization
US20110167422A1 (en) Virtualization apparatus
US20060224815A1 (en) Virtualizing memory management unit resources
US20130227248A1 (en) System and method for supporting finer-grained copy-on-write page sizes
US20190188028A1 (en) Paravirtualized access for device assignment by bar extension
WO2013119211A1 (en) A method and apparatus for supporting address translation in a multiprocessor virtual machine environment using tracking data to eliminate interprocessor interrupts
US20180004675A1 (en) Application execution enclave memory method and apparatus
US7506096B1 (en) Memory segment emulation model for virtual machine
US20160246732A1 (en) Translation lookaside buffer for guest physical addresses in a virtual machine
US10558486B2 (en) Memory address translation management
US11543988B1 (en) Preserving large pages of memory across live migrations of workloads
CN116266160A (zh) 为可信域设置访客物理地址映射属性的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171123

Address after: Grand Cayman, Cayman Islands

Applicant after: GLOBALFOUNDRIES INC.

Address before: American New York

Applicant before: Core USA second LLC

Effective date of registration: 20171123

Address after: American New York

Applicant after: Core USA second LLC

Address before: New York grams of Armand

Applicant before: International Business Machines Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180119

Termination date: 20210621

CF01 Termination of patent right due to non-payment of annual fee