CN102792286B - 虚拟化处理系统中的地址映射 - Google Patents

虚拟化处理系统中的地址映射 Download PDF

Info

Publication number
CN102792286B
CN102792286B CN201180012866.9A CN201180012866A CN102792286B CN 102792286 B CN102792286 B CN 102792286B CN 201180012866 A CN201180012866 A CN 201180012866A CN 102792286 B CN102792286 B CN 102792286B
Authority
CN
China
Prior art keywords
identifier
search key
entry
virtual
operating system
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
CN201180012866.9A
Other languages
English (en)
Other versions
CN102792286A (zh
Inventor
乌维·达诺夫斯基
斯蒂芬·迪斯特尔霍斯特
塞巴斯蒂安·比米勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN102792286A publication Critical patent/CN102792286A/zh
Application granted granted Critical
Publication of CN102792286B publication Critical patent/CN102792286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/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/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
    • 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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/152Virtualized environment, e.g. logically partitioned system

Landscapes

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

Abstract

一种处理系统实现由管理程序管理的多个虚拟机。每个虚拟机提供用于执行一个或多个相应的客户机操作系统(OS)的环境。每个客户机OS以及管理程序本身具有使用相应的“WorldID”来标识的相关的地址空间。此外,每个虚拟机和管理程序可管理使用相应的“ASID”来标识的多个较低级的地址空间。处理系统的地址转换逻辑将当前地址空间上下文的WorldID和ASID转换成具有比原始标识符少的位的相应的WorldID和ASID搜索关键字。产生的WorldID和ASID搜索关键字用于执行一个或多个TLB查找以获得与由WorldID/ASID组合所代表的特定地址空间有关的地址映射信息。

Description

虚拟化处理系统中的地址映射
技术领域
本公开通常涉及存储器管理,尤其是涉及虚拟到物理存储器地址转换。
背景技术
处理系统一般利用虚拟处理方案,使得在相应的虚拟地址空间中的虚拟地址通过使用页表和转换后备缓冲区(TLB)来映射到存储器位置和输入/输出(IO)接口的物理地址。由于可在处理系统内实现的不同虚拟地址的数量和由于在所实现的虚拟机当中提供有效隔离的需要,处理器虚拟化的出现复杂化了这个虚拟到物理地址映射。处理系统可使用代表相应的虚拟地址空间的标识符来支持TLB标记。这些标识符常常具有数十位,且处理这个规模的搜索所需的TLB命中逻辑实现起来惊人地复杂。常规虚拟化处理系统因此常常以在软件控制下维持和实现这些地址映射所需的相当大的开销为代价而利用基于软件的地址映射。
附图说明
通过参考附图,本公开可被更好地理解,且其很多特征和优点对本领域技术人员来说变得明显。在不同图中相同的参考符号的使用指示相似或相同的部件。
图1是示出根据本公开的至少一个实施方案的具有基于硬件的存储器映射的虚拟化处理系统的图示。
图2是示出根据本公开的至少一个实施方案的用于从相队长的地址空间标识符产生相对短的搜索关键字的搜索关键字表的示例性实现的图示。
图3是示出根据本公开的至少一个实施方案的用于在虚拟化处理系统中的地址转换的示例性方法的流程图。
图4是示出根据本公开的至少一个实施方案的使用基于地址空间标识符的搜索关键字的示例性TLB查找的图示。
具体实施方式
图1-4示出用于在虚拟化处理环境中的虚拟到物理地址转换的示例性技术。在至少一个实施方案中,处理系统具有一个或多个处理器,其实现由管理程序(也称为虚拟机管理器或VMM)管理的多个虚拟机。每个虚拟机为一个或多个虚拟处理器提供安全和隔离的硬件-仿真环境,其中每个虚拟处理器执行相应的客户机操作系统(OS)。每个客户机OS/虚拟处理器以及管理程序本身具有相关的地址空间。此外,每个虚拟机和管理程序可管理多个较低级的地址空间,例如与在虚拟机的客户机OS的控制下执行的特定软件应用相关的地址空间。每个客户机OS通常使用在本文称为“WorldID”的特定标识符来识别,且由客户机OS管理的较低级的地址空间使用在本文称为“地址空间标识符”或“ASID”的特定标识符来识别。一般,WorldID和ASID在长度上是数十位,且因此可能太大而不能直接由TLB命中逻辑使用。因此,在至少一个实施方案中,在下面描述的处理系统的地址转换逻辑将与处理系统的当前虚拟地址空间上下文相关的WorldID和ASID转换成具有比原始标识符更少的位且因此需要较不复杂的TLB命中逻辑的相应的WorldID和ASID搜索关键字。因而产生的WorldID搜索关键字和ASID搜索关键字被缓存并用于执行一个或多个TLB查找,以获得与WorldID/ASID组合所代表的特定地址空间有关的地址映射信息。地址映射信息接着用于将与存储器访问请求相关的虚拟地址转换成相应的物理地址。
图1示出根据本公开的至少一个实施方案的实现基于硬件的虚拟到物理地址映射的虚拟化处理系统100。在所示实施例中,处理系统100包括一个或多个处理器102和存储器子系统104。处理器102包括一个或多个处理器核心106、高速缓冲存储器子系统108和存储器管理单元(MMU)110。存储器子系统104经由一个或多个总线、纵横开关或其组合连接到处理器核心106和高速缓冲存储器子系统108。存储器子系统104可包括系统存储器、外部高速缓冲存储器、输入/输出(I/O)设备、以及在处理系统100的总地址空间内被分配了一个或多个物理地址的其它部件。在一个实施方案中,可基于定义处理器102的功能的一组寄存器传输级(RTL)或Verilog指令来设计处理器102的一些或所有部件,这些指令被合成以产生处理设备的电气和电子设计。
处理系统100配置成支持虚拟化,以便通过执行虚拟化软件或虚拟化固件来实现一个或多个基于软件的虚拟机,该虚拟化软件或虚拟化固件实现控制多个客户机操作系统(OS)的实现的管理程序112(也称为虚拟机管理器或VMM)。管理程序112通过拦截或模拟某些操作例如页表的改变来给每个客户机OS提供对处理器系统100的处理硬件114的完全控制的外观,以便确保每个客户机OS的操作和有关应用的安全分离。因此,客户机OS和由客户机OS控制的任何相应的应用的执行被称为“虚拟机”。图1示出一个实施例,其中管理程序112管理四个虚拟机:虚拟机116、117、118和119(也分别称为VM1、VM2、VM3和VM4)。为了说明的容易,每个虚拟机116被描绘为支持单个OS。虚拟机116使用应用122和123(AS1和AS2)执行客户机OS121,虚拟机117使用应用125(AS3)执行客户机OS124,虚拟机118执行客户机OS126,以及虚拟机119使用应用128和129(AS4和AS5)执行客户机OS127。在其它实现中,每个虚拟机可支持多个客户机操作系统。
虚拟化的共同目标是允许单个处理设备运行多个操作系统,同时维持在操作系统和其相关的软件应用之间的安全的、资源保证的隔离。为了实现这个隔离,不同的虚拟地址空间用于不同的客户机操作系统/虚拟机,以便控制客户机OS被允许访问的特定存储器位置。每个客户机OS相对于存储器子系统104在其自己的“世界”中操作,因此每个客户机OS被分配了在本文称为“WorldID”的唯一的标识符。此外,隔离在给定OS环境内的应用常常是有利的,且因此每个客户机OS可将不同的虚拟地址空间分配给由客户机OS支持的特定功能,例如客户机OS的某些核心操作或由客户机OS支持的软件应用。为了说明,应用122和123每个可在由客户机OS121分配的分开的地址空间中操作;或客户机OS121可对应用122和123实现相同的地址空间。处理系统100使在本文称为“地址空间标识符”或“ASID”的唯一标识符与客户机OS所管理的每个虚拟地址空间相关。因此,特定WorldID和特定ASID的组合识别相应的页表或页表集,其用于将与特定的WorldID和ASID相关的应用或OS所产生的虚拟地址转换成相应的物理地址。
为了说明的容易,描述了一种实施方案,其中MMU110被配置成提供这个虚拟到物理地址转换,并以其它方式便于在不同的虚拟机116-119内发起的存储器访问请求。然而,在其它实施方案中,本文所述的地址转换技术可由处理系统100的其它部件实现。例如,所公开的地址转换技术可由高速缓冲存储器子系统108的TLB逻辑111或由指令高速缓冲存储器(未示出)的TLB逻辑实现。
在一个实施方案中,MMU110包括一个或多个页表130、转换后备缓冲区(TLB)132、一组搜索关键字表134和136以及硬件控制器138。每个页表130存储表示在特定的虚拟地址空间的虚拟地址和相应的物理地址之间的映射的信息。TLB132缓存最近由处理系统100使用的虚拟到物理地址映射。搜索关键字表134和136用于从在虚拟机116-119中使用的WorldID和ASID产生对TLB132的TLB命中逻辑的搜索关键字。
硬件控制器138操作来管理对存储器子系统104的访问。当虚拟机试图访问存储器映射的位置时,管理程序112发起用于由MMU110处理的存储器访问请求140,以便制定所请求的存储器访问操作142。存储器访问请求140一般包括在讨论中的存储器位置的虚拟地址,并包括发起存储器访问的虚拟机的WorldID或与所述WorldID相关。此外,存储器访问请求140还包括ASID或与ASID相关,ASID与发起存储器访问的应用或功能相关。在一个实施方案中,在基于x86的结构中存在的控制寄存器CR3用于存储给定的处理器核心的当前ASID,且因此ASID可包括例如存储在控制寄存器CR3中的位的一部分或全部。WorldID或WorldID和ASID的组合识别与使用存储器访问请求140提供的虚拟地址相关的特定虚拟地址空间。因此,硬件控制器138使用WorldID和ASID来识别特定的虚拟到物理地址转换,以用于将虚拟地址转换到相应的物理地址。硬件控制器138执行所指示的地址转换,并接着将因而产生的物理地址提交到存储器子系统104作为存储器访问操作142的部分,以便指示存储器子系统104访问所指示的存储器位置。
如所提到的,每个页表130相应于特定的虚拟地址空间,以便提供在虚拟地址空间的虚拟地址和相应的物理地址之间的特定映射。因为在直接访问页表130时有相对高的时延,硬件控制器138利用TLB132来缓存最近使用的虚拟到物理映射。在对存储器访问请求140执行虚拟到物理地址转换中,硬件控制器138首先检查TLB132以确定TLB132是否已经包含存储器访问请求140所需的特定的虚拟到物理映射。在一个实施方案中,硬件控制器138使用TLB标记和TLB命中逻辑来识别相应的虚拟地址空间的映射信息是否在TLB132的条目内。如所提到的,使用存储器访问请求140提交的WorldID和ASID识别与虚拟地址相关的唯一虚拟地址空间,该虚拟地址转换成相应的物理地址。然而,这些值常常是数十位长,且因此如果被直接用作TLB132的标记阵列的搜索关键字则将需要相当复杂的TLB命中逻辑。因此,在至少一个实施方案中,硬件控制器138使用搜索关键字表134和136来将使用存储器访问请求140提交的WorldID和ASID转换成可接着由TLB132的TLB命中逻辑使用的较小的搜索关键字。在一个示例性实现中,通过使用搜索关键字表134和136,WorldID可从16位值转换成2位WorldID搜索关键字,且ASID可从36位值转换成3位ASID搜索关键字。
在最初将WorldID和ASID分别转换成相应的WorldID搜索关键字和ASID搜索关键字之后,硬件控制器138缓存因而产生的WorldID和ASID搜索关键字,并继续使用这些缓存的搜索关键字用于TLB查找,直到由于上下文变化而存在对WorldID或ASID中的一个或两个的更新,例如当在管理程序112的执行和客户机OS的执行之间切换时,或例如当客户机OS在一个应用的执行到另一应用的执行之间切换时通过更新控制寄存器CR3中的ASID来切换应用级地址空间时。因此,由硬件控制器138利用来将WorldID和ASID转换到WorldID和ASID搜索关键字的映射逻辑仅需要在对WorldID或ASID的每次更新时运行一次。
图2示出搜索关键字表134和136的示例性实现。搜索关键字表134(在本文称为“WorldID表134”)包括全相联高速缓冲存储器或具有2X个条目的其它数据结构,其中X是在因而产生的WorldID搜索关键字201中的位的数量。在所示实施例中,WorldID表134具有4(22)个条目,从而导致2位WorldID搜索关键字201的产生。WorldID表134的每个条目与相应的进程(例如,在图2的实施例中的0-3)相关,且每个条目包括配置成存储相应的WorldID的WorldID字段202。每个条目还可包括各种状态字段,例如存储指示相应的条目是否是有效条目的有效位的有效字段203,以及存储至少最近使用最少(LRU)或最近使用最多(MRU)的信息的字段,等等。
搜索关键字表136(在本文称为“ASID表136”)包括组相联高速缓冲存储器或具有X个索引的其它数据结构,每个索引与WorldID表134的相应进程相关,且每个索引包括一组2Y个条目,其中Y是在因而产生的ASID搜索关键字211中的位的数量。在所述实施例中,ASID表136具有8(23)个条目,因此导致3位ASID搜索关键字211的产生。ASID表136的每个条目与相应的进程(例如,图2的实施例1的0-7)相关,且每个条目包括配置成存储相应的ASID的ASID字段204。每个条目还可包括各种状态字段,例如存储指示相应的条目是否是有效条目的有效位的有效字段205,以及存储LRU或MRU信息的字段,等等。
在一个实施方案中,WorldID搜索关键字201和ASID搜索关键字211的确定包括两步骤过程。为了确定相应于WorldID的WorldID搜索关键字201,硬件控制器138搜索WorldID表134以确定是否存在存储WorldID的匹配条目。如果这样的条目在WorldID表134中找到,则WorldID搜索关键字201被设置到找到的条目的进程。为了说明,如果WorldID表134的第三个条目(进程=2)存储匹配的WorldID,则WorldID搜索关键字201将被设置到第三个条目的进程;即,10b(2)。在识别出WorldID搜索关键字201之后,硬件控制器138通过使用WorldID表134中的匹配条目的进程来确定相应于ASID的ASID搜索关键字211,以识别将被搜索的ASID表的相应索引。使用前面的实施例,WorldID表134的匹配条目的进程是索引=2,因此硬件控制器138将搜索ASID表136的(索引0-3中的)索引2,以确定索引2中的条目0-7中的任一个是否存储与存储器访问请求相关的ASID。如果这样的条目在ASID表136的所指示的索引中找到,则ASID搜索关键字211被设置到条目的进程。为了说明,如果ASID表136的第四个条目(进程=3)存储匹配的ASID,则ASID搜索关键字211将被设置到011b(3)。
图3示出根据本公开的至少一个实施方案的用于使用图2的WorldID表134和ASID表136来确定WorldID和ASID搜索关键字的硬件控制器138的操作的示例性方法300。方法300在块302响应于对地址空间上下文的更新而开始。该更新可包括在当前ASID、当前WorldID或两者中的变化。为了说明,当上下文切换出现在管理程序112和客户机OS之间或客户机OS之间时,WorldID和ASID被更新以反映新的地址空间。类似地,在当前执行的客户机OS切换地址空间时(例如,当在应用之间切换时),ASID被更新。在基于x86的处理器结构中,控制寄存器CR3常常用作指向与当前的虚拟地址空间相关的特定页表的页目录基址寄存器(PDBR),且因此存储在控制寄存器CR3中的位的某个部分或全部可用作ASID。因此,对在使用中的当前ASID的更新可被探测为对存储在控制寄存器CR3中的值的更新。
在块304,硬件控制器138使用命中逻辑来搜索WorldID表134以找到存储WorldID的条目。在没有找到存储同一WorldID的条目的情况下,在块306,硬件控制器138为与存储器访问请求相关的WorldID分配在WorldID表134中的条目。条目的分配可包括分配未使用的条目或收回当前使用的条目。待收回的条目可被选择为例如最近使用最少的条目。在WorldID表134中所分配的条目接着被填充有在块302接收的WorldID,且适当的状态标记被设置。在块308,WorldID搜索关键字被设置到在块306分配的在WorldID表134中的条目的进程。在块310,相应于WorldID表134的所分配的条目的ASID表136的索引的条目被刷新,且索引的条目被选择并填充有在块302接收的ASID。
返回到块304,在WorldID表134的匹配条目被找到的情况下,在块312,硬件控制器138将WorldID关键字201设置到匹配条目的进程。在块314,硬件控制器138选择与WorldID表134的匹配条目相关的ASID表136的索引,且在块316,硬件控制器138搜索ASID表136的选定索引的条目集合以找到存储在块302接收的ASID的匹配条目。
在没有找到选定进程的匹配条目的情况下,在块318,硬件控制器138通过选择未使用的条目或通过收回在使用中的条目来分配ASID表136的选定索引的条目以存储ASID。在块320,硬件控制器138将ASID搜索关键字设置到在块318分配的条目的进程。在块322,硬件控制器138刷新TLB表132的匹配通过块302-322的过程确定的WorldID和ASID搜索关键字的任何条目。返回到块316,在找到选定进程的匹配条目的情况下,在块324,硬件控制器138将ASID搜索关键字211设置到匹配条目的进程。
在设置了当前的WorldID和ASID搜索关键字之后,在块326,硬件控制器138可利用WorldID和ASID搜索关键字来通过页穿行用页转换信息填充TLB132的相应条目,并执行针对虚拟到物理存储器地址转换的TLB查找,直到下一地址空间上下文变化,此时对更新的WorldID/ASID开始方法300的下一重复。
图4示出根据本公开的至少一个实施方案的使用WorldID搜索关键字201和ASID搜索关键字211的TLB查找的示例性实现。在所示实施例中,TLB132包括表或包含多个条目的其它数据结构,每个条目具有配置成存储相应的虚拟页编号的虚拟页编号(VPN)字段401和物理页编号(PPN)字段402。每个条目进一步与配置成存储相应的WorldID搜索关键字的WorldID标记字段403、配置成存储相应的ASID搜索关键字的ASID标记字段404、以及配置成存储全局位的全局地址字段405相关,当全局位被设置时指示相关的映射对相应的虚拟机是全局的(也就是说,对虚拟机内的所有地址空间是全局的)。为了执行TLB查找,硬件控制器138使用TLB命中逻辑来搜索TLB132的条目以找到匹配WorldID搜索关键字201和正被处理并匹配ASID搜索关键字或具有全局位设置的存储器访问请求的虚拟存储器地址的VPN的条目。如果TLB132中的条目满足这些搜索条件(即:匹配的WorldID搜索关键字AND匹配的VPN和(匹配的ASID搜索关键字OR全局位设置)的每个,硬件控制器138使用存储在条目的PPN字段402中的物理页编号(PPN_X)来将存储器访问请求的虚拟地址转换成相应的物理地址。该转换一般通过将物理页编号连接到从虚拟地址的某个部分或全部确定的页偏移来实现,以便产生物理地址。
本公开的另一方面包括存储代表一组指令的数据的计算机可读存储器,当所述指令被执行时适合于便于硬件的设计以实现上面描述的虚拟到物理地址转换技术。因此,实现上述技术的设备可体现在例如布置在配置成存储软件(例如,计算机可读程序代码)的计算机可用(例如,可读)介质中的软件中。程序代码导致本公开的实施方案的实现,包括本文公开的系统和方法的制造。例如,这可通过使用通用编程语言(例如C或C++)、硬件描述语言(HDL)(包括Verilog、Verilog-A、HDL、VHDL、AlteraHDL(AHDL))等、或其它可用的编程和/或语义捕获工具(例如电路捕获工具)来完成。程序代码可以布置在任何已知的计算机可用介质(包括半导体、磁盘、光盘(例如CD-ROM、DVD-ROM))中。应理解,由上述系统和技术完成的功能和/或提供的结构可以被表示在核心(例如GPU核心)中,该核心体现在程序代码中并可转换成硬件作为集成电路的生产的部分。
从本文公开的本公开的说明书和实践的考虑中,本公开的其它实施方案、使用和优点将对本领域技术人员是明显的。说明书和附图应被认为是仅仅是示例性的,且本公开的范围相应地被规定为仅由下面的权利要求及其等效形式限制。

Claims (18)

1.在包括实现多个虚拟机的一个或多个处理器的系统中,一种处理方法包括:
使用第一搜索关键字和第二搜索关键字来执行转换后备缓冲区查找,所述第一搜索关键字代表操作系统的第一标识符,所述操作系统与所述多个虚拟机中的相应虚拟机联合而被执行,所述第一搜索关键字具有比所述第一标识符少的位,并且所述第二搜索关键字代表由所述操作系统管理的虚拟地址空间的第二标识符,所述第二搜索关键字具有比所述第二标识符少的位。
2.如权利要求1所述的处理方法,还包括:
基于所述第一标识符来访问第一表,所述第一表包括多个条目,每个条目与相应的进程相关并配置成存储由虚拟机执行的操作系统的标识符;以及
基于存储所述第一标识符的所述第一表的选定条目的第一进程来确定所述第一搜索关键字。
3.如权利要求2所述的处理方法,还包括:
基于所述第一进程来确定第二表的多个索引的选定索引,并基于所述第二标识符来访问所述选定索引,所述第二表的每个条目具有相应的进程并配置成存储由相应的操作系统管理的虚拟地址空间的标识符;以及
基于存储第二标识符的所述选定索引的选定条目的第二进程来确定所述第二搜索关键字。
4.如权利要求3所述的处理方法,其中所述第一搜索关键字由所述第一进程确定,而所述第二搜索关键字由所述第二进程确定。
5.如权利要求3所述的处理方法,还包括:
将所述第一标识符存储到所述第一表的所述选定条目;以及
刷新所述第二表的所述选定索引的条目,并将所述第二标识符存储到所述选定索引的所述选定条目。
6.如权利要求1所述的处理方法,其中执行所述转换后备缓冲区查找包括:
访问转换后备缓冲区以识别具有所述第一搜索关键字和具有所述第二标识符或组全局位中的至少一个的转换后备缓冲区的选定条目;以及
基于存储在所述转换后备缓冲区的所述选定条目中的页编号来产生物理地址。
7.在包括实现多个虚拟机的一个或多个处理器的系统中,一种处理系统包括:
装置,用于使用第一搜索关键字和第二搜索关键字来执行转换后备缓冲区查找,所述第一搜索关键字代表操作系统的第一标识符,所述操作系统与所述多个虚拟机中的相应虚拟机联合而被执行,所述第一搜索关键字具有比所述第一标识符少的位,并且所述第二搜索关键字代表由所述操作系统管理的虚拟地址空间的第二标识符,所述第二搜索关键字具有比所述第二标识符少的位。
8.在包括实现多个虚拟机的一个或多个处理器的系统中,一种处理方法包括:
确定与所述多个虚拟机中的选定虚拟机联合而被执行的操作系统的第一标识符,并确定由所述操作系统管理的虚拟地址空间的第二标识符;
基于所述第一标识符来访问第一表,所述第一表包括多个条目,每个条目具有相应的进程并配置成存储与所述系统的相应虚拟机联合的操作系统的标识符;
基于存储所述第一标识符的所述第一表的选定条目的第一进程来确定第一搜索关键字;
基于所述第一进程来确定第二表的多个索引的选定索引,并基于所述第二标识符来访问所述选定索引,所述第二表的每个条目具有相应的进程并配置成存储由相应的虚拟机的操作系统管理的虚拟地址空间的标识符;以及
基于存储所述第二标识符的所述选定索引的选定条目的第二进程来确定第二搜索关键字。
9.如权利要求8所述的处理方法,还包括:
使用所述第一搜索关键字和所述第二搜索关键字来执行转换后备缓冲区查找,以确定页偏移;以及
基于所述页偏移和所述虚拟地址来产生物理地址。
10.如权利要求9所述的处理方法,其中执行转换后备缓冲区查找包括:
访问所述转换后备缓冲区以识别具有所述第一搜索关键字和具有所述第二标识符或组全局位中的至少一个的转换后备缓冲区的选定条目。
11.如权利要求8所述的处理方法,其中所述第一搜索关键字具有比所述第一标识符少的位,而所述第二搜索关键字具有比所述第二标识符少的位。
12.在包括实现多个虚拟机的一个或多个处理器的系统中,一种处理系统包括:
装置,用于确定与所述多个虚拟机中的选定虚拟机联合而被执行的操作系统的第一标识符,并确定由所述操作系统管理的虚拟地址空间的第二标识符;
装置,用于基于所述第一标识符来访问第一表,所述第一表包括多个条目,每个条目具有相应的进程并配置成存储与所述系统的相应虚拟机联合的操作系统的标识符;
装置,用于基于存储所述第一标识符的所述第一表的选定条目的第一进程来确定第一搜索关键字;
装置,用于基于所述第一进程来确定第二表的多个索引的选定索引,并基于所述第二标识符来访问所述选定索引,所述第二表的每个条目具有相应的进程并配置成存储由相应的虚拟机的操作系统管理的虚拟地址空间的标识符;以及
装置,用于基于存储所述第二标识符的所述选定索引的选定条目的第二进程来确定第二搜索关键字。
13.一种处理系统,包括:
转换后备缓冲区;以及
硬件控制器,其使用第一搜索关键字和第二搜索关键字来执行转换后备缓冲区查找,所述第一搜索关键字代表操作系统的第一标识符,所述操作系统与用所述处理系统实现的多个虚拟机中的虚拟机联合而被执行,所述第一搜索关键字具有比所述第一标识符少的位,并且所述第二搜索关键字代表由所述操作系统管理的虚拟地址空间的第二标识,所述第二搜索关键字具有比所述第二标识符少的位。
14.如权利要求13所述的处理系统,还包括:
包括多个条目的第一表,每个条目具有相应的进程并配置成存储由相应的虚拟机执行的操作系统的标识符;以及
其中所述硬件控制器基于存储所述第一标识符的所述第一表的选定条目的第一进程来确定所述第一搜索关键字。
15.如权利要求14所述的处理系统,还包括:
包括多个索引的第二表,每个索引与所述第一表的相应条目相关,且每个索引包括多个条目,所述第二表的每个条目具有相应的进程并配置成存储由相应的虚拟机的操作系统管理的虚拟地址空间的标识符;以及
其中所述硬件控制器基于所述第一进程来确定所述多个索引中的选定索引并且基于存储所述第二标识符的所述选定索引的选定条目的第二进程来确定所述第二搜索关键字。
16.如权利要求15所述的处理系统,其中所述第一搜索关键字是所述第一进程,而所述第二搜索关键字是所述第二进程。
17.如权利要求15所述的处理系统,其中所述硬件控制器还:
将所述第一标识符存储到所述第一表的所述选定条目;
刷新所述选定索引的条目;以及
将所述第二标识符存储到所述选定索引的所述选定条目。
18.如权利要求13所述的处理系统,其中所述硬件控制器通过访问转换后备缓冲区以识别具有所述第一搜索关键字和具有所述第二标识符或组全局位中的至少一个的转换后备缓冲区的选定条目来执行所述转换后备缓冲区查找,且所述硬件控制器还基于存储在所述转换后备缓冲区的所述选定条目中的页编号来产生物理地址。
CN201180012866.9A 2010-03-16 2011-03-16 虚拟化处理系统中的地址映射 Active CN102792286B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/724,912 US8386749B2 (en) 2010-03-16 2010-03-16 Address mapping in virtualized processing system
US12/724,912 2010-03-16
PCT/US2011/028636 WO2011116070A1 (en) 2010-03-16 2011-03-16 Address mapping in virtualized processing system

Publications (2)

Publication Number Publication Date
CN102792286A CN102792286A (zh) 2012-11-21
CN102792286B true CN102792286B (zh) 2016-05-11

Family

ID=44260789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180012866.9A Active CN102792286B (zh) 2010-03-16 2011-03-16 虚拟化处理系统中的地址映射

Country Status (6)

Country Link
US (1) US8386749B2 (zh)
EP (1) EP2548124B1 (zh)
JP (1) JP5680179B2 (zh)
KR (1) KR101746734B1 (zh)
CN (1) CN102792286B (zh)
WO (1) WO2011116070A1 (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839275B1 (en) 2011-06-06 2014-09-16 Proximal Data, Inc. Method for intercepting input/output requests and responses
KR20130050156A (ko) * 2011-11-07 2013-05-15 한국전자통신연구원 가상 주소 공간 전환 장치
US9672583B2 (en) 2011-12-21 2017-06-06 Intel Corporation GPU accelerated address translation for graphics virtualization
CN102662869B (zh) * 2012-04-01 2015-08-26 龙芯中科技术有限公司 虚拟机中的内存访问方法和装置及查找器
US9442859B1 (en) 2012-06-17 2016-09-13 Samsung Electronics Co., Ltd. Method for asynchronous population of data caches used with mass storage devices
US9104552B1 (en) 2012-06-23 2015-08-11 Samsung Electronics Co., Ltd. Method for the use of shadow ghost lists to prevent excessive wear on FLASH based cache devices
US8504757B1 (en) 2012-09-16 2013-08-06 Proximal Data, Inc. Method for translating virtual storage device addresses to physical storage device addresses in a proprietary virtualization hypervisor
US10037228B2 (en) * 2012-10-25 2018-07-31 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US10310973B2 (en) * 2012-10-25 2019-06-04 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US10169091B2 (en) 2012-10-25 2019-01-01 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US9075789B2 (en) 2012-12-11 2015-07-07 General Dynamics C4 Systems, Inc. Methods and apparatus for interleaving priorities of a plurality of virtual processors
US20140168227A1 (en) * 2012-12-13 2014-06-19 Nvidia Corporation System and method for versioning buffer states and graphics processing unit incorporating the same
US9459877B2 (en) 2012-12-21 2016-10-04 Advanced Micro Devices, Inc. Nested speculative regions for a synchronization facility
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
CN104239238B (zh) * 2013-06-21 2018-01-19 格芯公司 用于管理转换旁视缓冲的方法和装置
US9208103B2 (en) * 2013-09-26 2015-12-08 Cavium, Inc. Translation bypass in multi-stage address translation
KR102168169B1 (ko) 2014-01-07 2020-10-20 삼성전자주식회사 비휘발성 메모리 시스템의 메모리 맵핑 방법 및 이를 제공하는 시스템
CN103778018B (zh) * 2014-01-16 2018-05-04 深圳艾迪宝智能系统有限公司 一种用于pcie虚拟化管理的方法
US9075945B1 (en) * 2014-06-27 2015-07-07 Google Inc. Method for implementing efficient entropy decoder by using high level synthesis
US10089238B2 (en) 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US9612970B2 (en) 2014-07-17 2017-04-04 Qualcomm Incorporated Method and apparatus for flexible cache partitioning by sets and ways into component caches
EP2997478B1 (en) * 2014-07-21 2019-03-13 VIA Alliance Semiconductor Co., Ltd. Efficient address translation caching in processor that supports large number of different address spaces
US10180908B2 (en) 2015-05-13 2019-01-15 Qualcomm Incorporated Method and apparatus for virtualized control of a shared system cache
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
KR102473665B1 (ko) 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
US10297003B2 (en) * 2015-09-21 2019-05-21 Qualcomm Incorporated Efficient saving and restoring of context information for context switches
US11379385B2 (en) 2016-04-16 2022-07-05 Vmware, Inc. Techniques for protecting memory pages of a virtual computing instance
US10592267B2 (en) 2016-05-17 2020-03-17 Vmware, Inc. Tree structure for storing monitored memory page data
US10430223B2 (en) * 2016-05-17 2019-10-01 Vmware, Inc. Selective monitoring of writes to protected memory pages through page table switching
CN107463425B (zh) * 2016-06-03 2021-03-05 阿里巴巴集团控股有限公司 获取Java虚拟机的运行状态的方法和装置
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
KR102511451B1 (ko) * 2016-11-09 2023-03-17 삼성전자주식회사 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
US11106596B2 (en) * 2016-12-23 2021-08-31 Advanced Micro Devices, Inc. Configurable skewed associativity in a translation lookaside buffer
KR102439466B1 (ko) * 2017-03-27 2022-09-02 엘지전자 주식회사 단말기 및 그 제어 방법
CN108664523B (zh) * 2017-03-31 2021-08-13 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
US10754790B2 (en) * 2018-04-26 2020-08-25 Qualcomm Incorporated Translation of virtual addresses to physical addresses using translation lookaside buffer information
US11113422B2 (en) 2018-08-03 2021-09-07 Micron Technology, Inc. Data protection in computer processors
US11074198B2 (en) * 2018-09-18 2021-07-27 Micron Technology, Inc. Key management in computer processors
US10761996B2 (en) * 2018-09-28 2020-09-01 Intel Corporation Apparatus and method for secure memory access using trust domains
US10691592B2 (en) * 2018-10-30 2020-06-23 Micron Technology, Inc. Error-checking in namespaces on storage devices using a namespace table and metadata
US10846239B2 (en) * 2018-11-29 2020-11-24 Marvell Asia Pte, Ltd. Managing translation lookaside buffer entries based on associativity and page size
US11108671B2 (en) 2019-01-21 2021-08-31 Rankin Labs, Llc Systems and methods for processing network traffic using dynamic memory
WO2020214757A1 (en) * 2019-04-17 2020-10-22 John Rankin Virtual memory pool within a network which is accessible from multiple platforms
US11729184B2 (en) 2019-05-28 2023-08-15 Rankin Labs, Llc Detecting covertly stored payloads of data within a network
US11055166B2 (en) 2019-05-28 2021-07-06 Rankin Labs, Llc Covertly storing a payload of data within a network
WO2020243244A1 (en) 2019-05-28 2020-12-03 John Rankin Supporting a virtual memory area at a remote computing machine
US11516048B2 (en) 2019-12-18 2022-11-29 Rankin Labs, Llc Distribution of data over a network with interconnected rings

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129071A (en) * 1988-04-06 1992-07-07 Hitachi, Ltd. Address translation apparatus in virtual machine system using a space identifier field for discriminating datoff (dynamic address translation off) virtual machines
CN101667958A (zh) * 2008-09-01 2010-03-10 华为技术有限公司 选择哈希函数的方法、存储及查找路由表的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6057449A (ja) * 1983-09-09 1985-04-03 Hitachi Ltd 仮想計算機システムのアドレス変換方式
US20040117587A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corp. Hardware managed virtual-to-physical address translation mechanism
JP2009146344A (ja) * 2007-12-18 2009-07-02 Hitachi Ltd 計算機仮想化装置のtlb仮想化方法および計算機仮想化プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129071A (en) * 1988-04-06 1992-07-07 Hitachi, Ltd. Address translation apparatus in virtual machine system using a space identifier field for discriminating datoff (dynamic address translation off) virtual machines
CN101667958A (zh) * 2008-09-01 2010-03-10 华为技术有限公司 选择哈希函数的方法、存储及查找路由表的方法及装置

Also Published As

Publication number Publication date
KR101746734B1 (ko) 2017-06-13
EP2548124B1 (en) 2020-02-12
US8386749B2 (en) 2013-02-26
US20110231630A1 (en) 2011-09-22
EP2548124A1 (en) 2013-01-23
CN102792286A (zh) 2012-11-21
KR20130048191A (ko) 2013-05-09
JP2013522775A (ja) 2013-06-13
JP5680179B2 (ja) 2015-03-04
WO2011116070A1 (en) 2011-09-22

Similar Documents

Publication Publication Date Title
CN102792286B (zh) 虚拟化处理系统中的地址映射
JP6081672B2 (ja) 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング
CN102473139B (zh) 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
CN105760312B (zh) 用于实现微页表的装置、方法和系统
KR101729503B1 (ko) 계층 변환 테이블 제어
CN105814548B (zh) 具有使用不同编索引方案的主高速缓存器和溢出高速缓存器的高速缓存器系统
KR20160124792A (ko) 기억된 어드레스 변환의 무효화
US11422944B2 (en) Address translation technologies
US20180101480A1 (en) Apparatus and method for maintaining address translation data within an address translation cache
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
TW201003396A (en) Microprocessor, method and computer program product that perform speculative tablewalks
CN108463810A (zh) 存储器地址变换管理
WO2023064609A1 (en) Translation tagging for address translation caching

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