用于完全虚拟化的地址空间变换方法和设备技术

技术编号:7758897 阅读:133 留言:0更新日期:2012-09-14 00:30
一种用于完全虚拟化的虚拟机和虚拟机监视器的地址空间变换设备包括:向该虚拟机分配的虚拟机页表,使得该虚拟机具有第一虚拟地址空间;向该虚拟机监视器分配的虚拟机监视器页表,使得该虚拟机监视器具有与该第一虚拟地址空间分离的第二虚拟地址空间;MMU(存储管理单元),指示虚拟机页表和虚拟机监视器页表之一,该页表指示要对于虚拟机和虚拟机监视器之间的地址空间变换而改变的地址空间;和地址空间管理器,通过使用在该第一虚拟地址空间和该第二虚拟地址空间两者上反射的共享页面,来进行该地址空间变换。

【技术实现步骤摘要】

本专利技术涉及用于完全虚拟化的地址空间变换方法和设备;并更具体地,涉及当使用不支持虚拟化的硬件对系统进行虚拟化时能够快速变换地址空间的、用于完全虚拟化的地址空间变换方法和设备。
技术介绍
图I是用于解释具有软件基础的传统地址空间变换方法的图。參考图1,传统地址空间变换方案将虚拟机10和虚拟机监视器20的地址空间分配到相同地址空间。这是因为虚拟机10和虚拟机监视器20之间的上下文变换次数、以及用于上下文变换的成本与虚拟化的系统的性能成比例。換言之,为了提升虚拟化的系统的性能,优选的是,使得虚拟机10和虚拟机监视器20之间的上下文变换次数以及用于上下文变 换的成本最小化。然而,尽管这样的基于软件的地址变换方法对于提升系统的性能是有效的,但是这引起虚拟机的地址空间压缩的问题。即,这促使虚拟机中操作的客户(guest)操作系统的内核应识别不可使用的硬件所提供的所有虚拟地址空间。这样的基于软件的地址空间变换方法的问题可通过使用一般操作系统没有使用的0-4KB空间来解決。然而,这样的方案也引起以下问题,即,不可能使得虚拟机监视器具有各种功能,因为虚拟机的尺寸限于4KB。图2是解释传统的基于硬件的地址空间变换方法的图。图2中所示传统的基于硬件的地址空间变换方法主要使用硬件制造商所提供的虚拟化方案。根据该方法,地址空间压缩的问题可通过在操作时虚拟机30使用虚拟地址空间、而虚拟机监视器40使用物理地址空间来解決。然而,这样的基于硬件的地址空间变换方法具有的问题在于,其必须使用支持虚拟化的硬件制造商所提供的硬件,并且其不能在使用ARM(高级RISC机器)计算架构的硬件中使用。其间,在完全虚拟化方案中,虚拟机没有识别虚拟机监视器,并使用硬件所提供的所有地址空间。由于此,虚拟机监视器需要与虚拟机的地址空间不同的额外地址空间,并所以,提供附加地址空间用于虚拟机监视器。然而,在这样的完全虚拟化方案中,在虚拟机和虚拟机监视器之间的上下文变换的情况下可发生开销。
技术实现思路
考虑到以上情况,本专利技术的目的在于提供一种能够解决地址空间压缩的问题、并且即使当使用诸如ARM计算架构的不支持虚拟化的硬件时也能够快速执行地址变换的、用于完全虚拟化的地址空间变换方法和设备。根据本专利技术的第一方面,提供了一种用于完全虚拟化的虚拟机和虚拟机监视器的地址空间变换设备,该设备包括向该虚拟机分配的虚拟机页表,使得该虚拟机具有第一虚拟地址空间;向该虚拟机监视器分配的虚拟机监视器页表,使得该虚拟机监视器具有与该第一虚拟地址空间分离的第二虚拟地址空间;MMU (存储管理単元),指示虚拟机页表和虚拟机监视器页表之一,该页表指示要对于虚拟机和虚拟机监视器之间的地址空间变换而改变的地址空间;和地址空间管理器,通过使用在该第一虚拟地址空间和该第二虚拟地址空间两者上反射的共享页面,来进行该地址空间变换。根据本专利技术的第一方面,提供了一种用于完全虚拟化的虚拟机和虚拟机监视器的地址空间变换方法,该方法包括向该虚拟机提供虚拟机页表,使得该虚拟机具有第一虚拟地址空间;向该虚拟机监视器提供虚拟机监视器页表,使得该虚拟机监视器具有与该第一虚拟地址空间分离的第二虚拟地址空间;在MMU (存储管理単元)处指示虚拟机页表和虚拟机监视器页表之一,该页表指示要对于虚拟机和虚拟机监视器之间的地址空间变换而改变的地址空间;和在地址空间管理器处通过使用在该第一虚拟地址空间和该第二虚拟地址空间两者上反射的共享页面,来进行地址空间变换。附图说明根据结合附图给出的实施例的以下描述,本专利技术的目的和特征将变得明显,其中图I是用于解释具有软件基础的传统的地址空间变换方法的图;图2是解释传统的基于硬件的地址空间变换方法的图;图3是示出了在根据本专利技术实施例的用于完全虚拟化的地址变换处理中使用的地址空间的图;和图4是示出了在根据本专利技术实施例的用于完全虚拟化的地址变换处理中的ASID (地址空间标识符)分配关系的图。具体实施例方式其后,将參考形成本专利技术一部分的附图来描述本专利技术的实施例。图3是示出了在根据本专利技术实施例的用于完全虚拟化的地址变换处理中使用的地址空间的图。如图3中所示,虚拟机110和虚拟机监视器120独立具有分离地址空间。为了使得虚拟机Iio和虚拟机监视器120独立具有分离地址空间,分别向虚拟机110和虚拟机监视器120分配分离页表,该分离页表被划分为虚拟机页表130和虚拟机监视器页表140。作为用于地址空间变换的硬件组件的存储管理単元(MM) 150选择性地指示代表要改变的地址空间的页表,并改变ASID (地址空间标识符)151中存储的值,以便进行地址空间的变换。这样的地址空间的变换通过地址空间管理器160的共享页面161进行,并且 将该共享页面同时反射到两个地址空间。当变换地址空间时,MM 150的ASID 151总计(come to)具有ASID值N作为缺省,该值由虚拟机监视器120使用。当ASID 151的值是匪150的TLB(变换后备缓冲器(Translation Look-aside Buffer)) 153中存在的条目之中的N时,通过页表移动(pagetable walk)仅将TLB 153中存储的PTE (页表条目)用作有效的。換言之,如果在开始进入虚拟机监视器120的时候将MMU 150的ASID 151设置为N,则虚拟化系统的某一硬件在进行页表移动的时候,在MMU 150的TLB 153上写入其ASID为N的用于虚拟化监视器的PTE141。其后,当从虚拟机110变换到虚拟机监视器120吋,将不发生用于地址空间的变换的页表移动。所以,可使得成本最小化。虚拟机的ASID值N由地址空间管理器160的ASID管理器163保持,并且当进入虚拟机监视器120时虚拟机110所使用的ASID值M也被保持。当从虚拟机监视器120变换到虚拟机110时,将相反应用上面解释的处理。图4是示出了在根据本专利技术实施例的用于完全虚拟化的地址变换处理中的ASID (地址空间标识符)分配关系的图。详细来说,图4示出了虚拟机监视器120、客户操作系统内核170、和客户操作系统处理180之间的ASID分配关系。 一般来说,使用ASID的客户操作系统内核具有“全局”属性,井向客户操作系统处理分配ASID值用于每ー应用。然而,根据本专利技术的实施例,向虚拟机监视器120分配ー个ASID值。向虚拟机110分配从系统提供的ASID值之中的除了向虚拟机监视器120分配的ASID值之外的ASID值。换言之,向虚拟机110中操作的客户操作系统内核170分配全局属性,向虚拟机监视器120分配ASID值N,并且向在其他虚拟机中操作的客户操作系统处理 180 分配除了 ASID N 之外的 ASID 值(例如,ASID O、ASID I、ASID 2、......ASIDM)。例如,在ASID的管理中,可使用用于在完全虚拟化中提供特权(privileged)指令的一般方法。如上面解释的,根据本专利技术的实施例,可能解决地址空间压缩的问题,并且即使当使用诸如ARM计算架构的不支持虚拟化的硬件时也可能快速执行地址变换。而且,可使得用于虚拟化的地址空间变换的成本最小化。尽管已针对实施例而示出和描述了本专利技术,但是本领域技术人员将理解的是,可进行各种改变和修改本文档来自技高网
...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:高广源金康好吴守哲
申请(专利权)人:韩国电子通信研究院
类型:发明
国别省市:

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

1