虚拟化处理系统中的地址映射技术方案

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

【技术实现步骤摘要】
【国外来华专利技术】
本公开通常涉及存储器管理,尤其是涉及虚拟到物理存储器地址转换。
技术介绍
处理系统一般利用虚拟处理方案,使得在相应的虚拟地址空间中的虚拟地址通过使用页表和转换后备缓冲区(TLB)来映射到存储器位置和输入/输出(IO)接口的物理地址。由于可在处理系统内实现的不同虚拟地址的数量和由于在所实现的虚拟机当中提供有效隔离的需要,处理器虚拟化的出现复杂化了这个虚拟到物理地址映射。处理系统可使用代表相应的虚拟地址空间的标识符来支持TLB标记。这些标识符常常具有数十位,且处理这个规模的搜索所需的TLB命中逻辑实现起来惊人地复杂。常规虚拟化处理系统因此常常以在软件控制下维持和实现这些地址映射所需的相当大的开销为代价而利用基于软件的地址映射。 附图说明通过参考附图,本公开可被更好地理解,且其很多特征和优点对本领域技术人员来说变得明显。在不同图中相同的参考符号的使用指示相似或相同的部件。图I是示出根据本公开的至少一个实施方案的具有基于硬件的存储器映射的虚拟化处理系统的图示。图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查找,以获得与WorldlD/ASID组合所代表的特定地址空间有关的地址映射信息。地址映射信息接着用于将与存储器访问请求相关的虚拟地址转换成相应的物理地址。图I示出根据本公开的至少一个实施方案的实现基于硬件的虚拟到物理地址映射的虚拟化处理系统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控制的任何相应的应用的执行被称为“虚拟机”。图I示出一个实施例,其中管理程序112管理四个虚拟机虚拟机116、117、118和119 (也分别称为VMl、VM2、VM3和VM4)。为了说明的容易,每个虚拟机116被描绘为支持单个OS。虚拟机116使用应用122和123 (ASl和AS2)执行客户机OS 121,虚拟机117使用应用125 (AS3)执行客户机OS124,虚拟机118执行客户机OS 126,以及虚拟机119使用应用128和129 (AS4和AS5)执行客户机OS 127。在其它实现中,每个虚拟机可支持多个客户机操作系统。虚拟化的共同目标是允许单个处理设备运行多个操作系统,同时维持在操作系统和其相关的软件应用之间的安全的、资源保证的隔离。为了实现这个隔离,不同的虚拟地址空间用于不同的客户机操作系统/虚拟机,以便控制客户机OS被允许访问的特定存储器位置。每个客户机OS相对于存储器子系统104在其自己的“世界”中操作,因此每个客户机OS被分配了在本文称为“WorldID”的唯一的标识符。此外,隔离在给定OS环境内的应用常常是有利的,且因此每个客户机OS可将不同的虚拟地址空间分配给由客户机OS支持的特定功能,例如客户机OS的某些核心操作或由客户机OS支持的软件应用。为了说明,应用122和123每个可在由客户机OS 121分配的分开的地址空间中操作;或客户机OS 121可对应用122和123实现相同的地址空间。处理系统100使在本文称为“地址空间标识符”或“ASID”的唯一标识符与客户机OS所管理的每个虚拟地址空间相关。因此,特定WorldID和特定ASID的组合识别相应的页表或页表集,其用于将与特定的WorldID和ASID相关的应用或OS所产生的虚拟地址转换成相应的物理地址。为了说明的容易,描述了一种实施方案,其中MMU 110被配置成提供这个虚拟到物理地址转换,并以其它方式便于在不同的虚拟机116-119内发起的存储器访问请求。然而,在其它实施方案中,本文所述的地址转换技术可由处理系统100的其它部件实现。例如,所公开的地址转换技术可由高速缓冲存储器子系统108的TLB逻辑111或由指令高速缓冲存储器(未示出)的TLB逻辑实现。在一个实施方案中,MMU 110包括一个或多个页表130、转换后备缓冲区(TLB)132、一组搜索关键字表134和136以及硬件控制器138。每个页表130存储表示在特定的虚拟地址空间的虚拟地址和相应的物理地址之间的映射的信息。TLB 132缓存最近由处理系统100使用的虚拟到物理地址映射。搜索关键字表134和136用于从在虚拟机116-119中使用的WorldID和ASID产生对TLB 132的TLB命中逻辑的搜索关键字。硬件控制器138操作来管理对存储器子系统104的访问。当虚拟机试图访问存储器映射的位置时,管理程序112发起用于由MMU 110处理的存储本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:乌维·达诺夫斯基斯蒂芬·迪斯特尔霍斯特塞巴斯蒂安·比米勒
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1