专利名称:虚拟化中图形地址的一步地址转换的制作方法
技术领域:
本发明涉及虚拟化中图形地址的一步地址转换。
背景技术:
图形装置可要求邻接的存储范围存储图形数据。图形数据可包括例如三维数据以 及在个人计算机中例如由图形子系统所用的指令。使用图形转换表可以使邻接的图形存储 器与物理存储器相关。但是,物理存储器可能并不邻接。在一些方面,虚拟化是在同一主机硬件上操作一个或多个访客操作系统(OS)的 技术,其方法是将主机硬件-软件接口的多个拷贝提供给每个访客Os。在支持虚拟化的 系统中,用于访客的存储器地址可与主机物理存储器地址相关。物理主机存储器可支持物 理访客存储器。而且,在具有图形装置和支持虚拟化的系统中,可能需要提供两种存储器地址转 换。一种转换是将图形地址映射到物理访客地址,第二种转换是将物理访客地址转换成物 理主机地址。因此,在技术上需要提供一种系统和方法,以在支持虚拟化的环境中有效地转换 图形地址。
发明内容
在第一实施例中,本发明提供了一种方法,包括为分派给支持虚拟化的系统中虚拟机的输入/输出装置,接收对访客图形存储器 地址的请求;以及将由物理访客图形存储器地址转换成的主机物理存储器地址安装在图形存储器 转换表中。在第二实施例中,本发明提供了一种系统,包括输入/输出装置,分派给支持虚拟化的系统中的虚拟机;图形存储器转换表,使物理访客图形存储器地址与主机物理地址相关联;图形存储器单元;存储器,与所述图形存储器单元相关联并存储指令;以及用于将由物理访客图形存储器地址转换成的主机物理存储器地址安装在所述图 形存储器转换表中的部件。在第三实施例中,本发明提供了一种系统,包括输入/输出装置,分派给支持虚拟化的系统中的虚拟机;存储器,存储图形存储器转换表,所述转换表使物理访客图形存储器地址与主机
4物理地址相关联;图形存储器单元,存储指令;以及用于将由物理访客图形存储器地址转换成的主机物理存储器地址安装在所述图 形存储器转换表中的部件。
图1是按照本发明一些实施例的计算机系统框图;图2是按照本发明一些实施例的图形转换表的示范图;图3是按照本发明一些实施例的虚拟机的示范图;图4是按照本发明一些实施例的在虚拟机上物理存储器映射的示范图;图5是包括两种转换的存储器转换的流程图;图6是按照本发明一些实施例的包括一种转换操作的示范存储器转换方案;图7是按照本发明一些实施例的过程的示范流程图;以及图8是按照本发明一些实施例的逻辑存储器映射的示范图,示出访客图形存储器 地址到主机物理地址转换。
具体实施例方式图1是一个示范框图,示出可用于本发明一些实施例中的计算机系统的物理硬 件,总体用参考编号100表示。计算机系统100包括处理器105。处理器105表示任何类 型体系结构的中央处理单元。本发明的一些实施例可以用具有多个处理器的计算机系统来 实现。计算机系统100包括芯片组110,该芯片组具有若干控制电路和若干接口电路,以允 许处理器105存取系统存储器115、系统总线150 (例如外围部件互连(PCI)Express总线) 以及图形装置160。若干外围部件互连(PCI Express)装置到155n都连接到Express总线150, 如由 PCI 专题组(PCI-SIG)在"PCI Express BaseSpecification,Version 1.0” (2002 年 7月)中所定义的。PCI Express装置1551到155 是输入/输出(I/O)硬件装置,诸如盘 控制器/卡、局域网控制器/卡等。在一些实施例中,芯片组110可具有一个或多个总线控制器(例如PCI Express 总线)、图形控制器、CPU控制器以及存储器控制器,以控制在诸如总线150、图形装置160、 系统存储器115、处理器105等各种部件之间的数据存取。应理解,在不背离或改变本发明各种实施例范围的前提下,计算机系统100可包 括其它的、附加的、或比图1所示那些更少的部件。系统存储器115表示用于存储信息的一个或多个机构。例如,系统存储器115可包 括非易失性或易失性存储器。在一些实施例中,系统存储器115包括图形存储器单元118、 图形孔径(aperture) 120以及主存储器125。主存储器125可包括操作系统(OS) 130、存储 器管理器135、图形存储器转换表140以及为其它信息诸如其它程序和数据分配的附加主 存储器145。图形装置160可以是内插式装置或集成到计算机系统100中。在一些实施例中, 图形装置160包括图形处理器165和图形本机存储器170。存储器可以是随机存取存储器
5(RAM)(例如扩展数据输出动态随机存取存储器(EDO)、同步图形随机存取存储器(SGRAM)、 视频随机存取存储器(VRAM))。包括存储器是因为视频卡必须能够在任何时候都记住完整 的屏幕图像,并保存图形程序的本机拷贝,以及像三角形等图形对象和纹理。注意,本发明 的一些实施例也适用于没有本机存储器的图形装置和I/O装置。图形处理器160执行图形功能,诸如3-D渲染操作、绘图等等。图形处理器165可 存取其自己的图形本机存储器160。图形装置160可经由加速图形端口(AGP)175耦接到芯 片组110。AGP 175提供高速总线,用于将数据直接从系统存储器115移到图形装置160。 可对系统存储器115进行直接引用。由于对系统存储器115的直接引用,系统存储器115 的邻接视图可能对于在图形装置160和系统存储器115之间的信息有效传递是必要的。在一些实施例中,图形装置160可经由PCIExpress总线150耦接到芯片组。在一些实施例中,系统存储器115的范围被保留用于包括图形孔径120的图形存 储器单元118。图形孔径120提供由AGP 175使用的存储器地址范围,用于图形信息,例如 3D特征和纹理。但是,由于系统存储器115对于图形数据是动态分配的,因此需要提供一个 图形映射表机构,以将系统存储器115的随机分段映射到单个邻接的物理空间中用于图形 孔径120。图形存储器转换表,诸如图形地址重新映射表(GART)或图形转换表(GTT),可用 来提供系统存储器中分散页面的物理邻接视图,供直接存储器存取(DMA)传递。有了 AGP 175,主存储器具体用于高级三维特征,诸如纹理、α缓冲器和Z缓冲器。如上所述,由于AGP 产生对系统存储器的直接引用,因此该空间的邻接视图是必要的。但是,由于对系统存储器 是例如以随机4Κ页面动态分配的,因此可能需要提供一种地址映射机构,将随机4Κ页面映 射到单个邻接的物理地址空间中。图2示出示范图形存储器转换表映射,总体用参考编号200表示。在一些实施例 中,系统存储器115包括主存储器125,125具有的地址范围从地址零(0)到其顶部。图形 孔径120可具有的地址范围从主存储器125的顶部开始。图形孔径120是虚拟存储器,并 映射到主存储器125的物理地址空间中。图形孔径120是系统存储器115的一部分,它由操作系统130分配,供图形装置 160使用。图形装置160可以存取保留的图形孔径120,以存储纹理数据、前缓冲器数据或 其它图形数据,用于更快的图形数据处理。图形孔径120中的每个地址Pa都有一个映射到 主存储器125的物理地址空间Pg中的对应条目。操作系统130分配在(系统存储器115的)主存储器125中任何地方发现的页面, 并将它们分派给图形装置160。所以图形装置160备有图形孔径120的连续块,其中从图 形孔径120地址Pa指向主存储器125中对应地址Pg的引用存储在图形存储器转换表140 中,作为页面表条目(PTE)。在一些方面,虚拟化就是在同一本地硬件上操作一个或多个访客操作系统(OS) 的技术,其方法是将主机硬件-软件接口的多个拷贝提供给每个访客Os。本地硬件可称为 主机。多个访客OS甚至可同时运行。在虚拟化环境中,管理由图形装置或子系统使用的存 储器更为复杂,因为由于主机硬件的虚拟化,需要将访客存储器地址转换成物理主机地址。图3示出支持虚拟化的示范系统300。系统300包括物理主机硬件305、若干访客 虚拟机VMtl 310。和VM1 SlO1以及虚拟机监控器(VMM) 330。VM0 310。和VM1 310:中的每个在本文中可相对于物理主机硬件305称为访客。在一些实施例中,物理主机硬件305可包 括类似于图1所示系统100的计算机系统和/或其部件。物理主机硬件305在本文中也可 称为主机。应理解,在不背离和/或改变本发明各种实施例范围的前提下,在主机305中包括 的特定物理主机硬件可改变,和可对系统100的改变一样,如结合图1讨论所述的。在一些实施例中,物理主机硬件305可包括处理器、存储器、各种I/O装置(例如 键盘、监控器、USB控制器、网络控制器等)以及图形装置。在系统300中示出两个虚拟机VMtl 310。和VM1 310lo应理解,系统300中可包括 或支持更多或更少的虚拟机。VM0 SlOc^nVM1 31(^示为包括类似的部件。例如,VMtl 310(1具 有若干地址315、访客OS G1320以及与其关联的部件325。以类似方式,VM1 SlO1具有若干 地址317、访客OS G2 322以及虚拟部件327。所属领域的技术人员应理解,在由系统300 所支持的虚拟机之间可能存在功能上的区别。在一些实施例中,VMM 300提供硬件-软件接口给VMtl SlOc^nVM1 310工中的每个。 硬件-软件接口的每个实例可将主机305的有效复制品,包括处理、存储器、指令以及其其 它资源(例如存储器和I/O装置),提供到系统300所连接的或支持的虚拟机。在一些实施 例中,访客OS Gl 320和访客OS G2 322可同时操作,部分由于每个访客OS都在其自己的 虚拟机中操作。在支持虚拟化的系统中,访客存储器地址需被转换或映射到主机物理地址,因为 物理访客存储器地址(Pg)是一个虚拟存储器地址,它实际上位于物理主机地址(Ph)上。就 是说,由于访客的资源,包括存储器,都是主机的硬件或整个硬件环境的虚拟化,所以必须 建立一种相关性,以使访客存储器地址(Pg)与物理主机地址(Ph)相关联。因此,在虚拟化的系统或支持虚拟化的系统中,可能需要将虚拟的访客机的图形 地址转换成实际的物理主机地址位置。按照本发明的一些实施例,提供了一种在支持虚拟 化的环境中有效转换图形地址的方法和系统。在支持虚拟化的计算系统中,访客存储器地址Pg可以由物理主机地址Ph支持 (即位于物理主机地址Ph)。图4示出在支持虚拟化的系统中映射到主机存储器的访客OS 存储器。如图所示,访客Gl地址空间410为128MB,且访客G2地址空间405为256MB。用 于访客OS Gl (Pgl)和访客OS G2 (Pg2)的物理存储器地址空间示为分别映射到主机物理地址 空间(Phl)和(Ph2)。例如,访客存储器地址415映射到主机地址420,而访客地址425映射 到 430。应理解,图4所示的地址位置和大小是作为示例提供的,不一定是实际的存储器 地址。而且,图4所示的示范存储器不表示或暗示对本公开的任何限制。应理解,虽然对本公开的各种实施例和方面是在分派给虚拟机且其存储器地址与 物理主机地址相关联的图形装置的环境中进行讨论的,但本公开的各种方面和实施例可包 括其它类型的装置。就是说,本公开的各种方面和实施例可包括除图形装置外的装置、系统 以及子系统。例如,具有本机处理器和本机存储器并形成虚拟机或支持虚拟化的系统的一 部分的I/O装置也可受益于本公开的系统和方法。举例来说,具有处理器和本机存储器的 虚拟机I/O装置,类似于但不一定是图形装置或图形子系统,其存储器地址可用于和/或包 括本公开的一些方面。
图5提供了两步转换过程500的图示,该过程用于将图形装置的图形孔径地址 (Pa)映射到物理访客地址(Pg),该地址(Pg)由位于主机系统主存储器中的实际物理主机 存储器地址(Ph)支持。例如,图形孔径地址(Pa)由芯片组110转换成访客物理地址(Pg)。 芯片组110使用图形存储器转换表机构诸如GTT和页面表条目(PTE)将图形孔径地址(Pa) 映射到物理访客地址(Pg)。但是,访客物理地址(Pg)必须仍与主机物理地址(Ph)相关联, 因为主机物理硬件才是实际物理存储器位置所在的地方。DMA重新映射操作机构510提供 从物理访客地址(Pg)到物理主机地址(Ph)的转换。DMA重新映射机构510可以用硬件或 软件实现。按照本发明的一些实施例,图6提供了在单个过程或操作中将访客虚拟机的图形 存储器(例如孔径)地址(Pa)映射到物理主机地址(Ph)的过程605的示范图。按操作 605,提供了图形转换表,它可使用PTE将访客图形存储器地址(Pa)映射到物理主机地址 (Ph)。在一些实施例中,图形存储器转换表可以是GART或GTT。而且图形存储器转换表 可在芯片组中实现,例如图1所示的芯片组110。图7是按照本发明一些实施例的过程700的示范流程图。可结合图7参阅图8,以 便对图7及其讨论有更好的理解。图8是逻辑存储器映射的示范图,总体用参考编号800 表示,图中示出访客图形存储器地址(Pa)到主机物理地址(Ph)转换,由图形存储器转换表 810中的PTE而使其容易进行。图形存储器转换表810 (例如GTT)用来使访客图形存储器 地址(Pa)805到主机物理地址(Ph)815的转换或映射容易进行。DMA重新映射可使转换容 易进行。在操作705,在支持虚拟化的系统中,为分派给虚拟机(即访客)的图形装置(或 其它I/O装置)进行对存储器的请求。在操作710,提供访客图形存储器地址(Pa)到主机物理地址(Ph)的转换或映射。 主机物理地址Ph是物理主机硬件410的系统存储器中物理存储器的实际地址位置。使用 DMA重新映射技术可将访客图形存储器地址(Pa)映射到GTT 810中的主机物理地址(Ph)。 图形装置,更一般地说是包括处理器和由虚拟化分派或支持的本机存储器的I/O装置,使 用主机物理地址(815)对来自物理主机硬件330的主存储器125的数据作直接存储器存取 (DMA)。在本发明的一些实施例中,使用图形存储器转换表810将访客图形存储器地址 (Pa)映射到主机物理地址(Ph)的过程可以用软件实现。在本发明的一些实施例中,使用图 形存储器转换表810将访客图形存储器地址(Pa)映射到主机物理地址(Ph)的过程可以用 硬件实现。硬件机构可使用芯片组硬件中的页面表转换逻辑。关于一些包括使用图形存储器转换表810将访客图形存储器地址(Pa)映射到主 机物理地址(Ph)的过程的软件实现方案的实施例,访客OS驱动器和VMM(例如330)协同 管理图形存储器转换表的条目。访客OS驱动器将物理主机地址(Ph)直接提供到图形存储 器转换表。在图形存储器转换表中安装主机物理地址(Ph)之前,访客OS驱动器向VMM询 问有效的物理主机地址。响应于访客OS的询问,VMM提供有效的(例如可用的)主机物理 地址(Ph)。就是说,VMM仅返回一个有效的主机物理地址,供访客OS使用。访客OS驱动器 则将该有效的物理主机地址(Ph)安装在GTT中。
在一些软件实现的实施例中,访客OS驱动器和VMM协同管理图形存储器转换表的 条目,其中访客OS驱动器知道访客到主机的映射。图形存储器转换表810对于访客OS可 为只读的。因此,访客OS只能从GTT 810读出。在这些实施例中,访客OS驱动器可试图将 访客图形存储器地址写入GTT 810。VMM可提供一种服务,使物理主机地址有效,之后再将 有效的物理主机地址(Ph)输入到图形存储器转换表。就是说,VMM使物理主机地址有效, 并将有效的物理主机地址输入到图形存储器转换表中。VMM使物理主机地址有效并将其输 入到GTT 810中可提供一种安全等级,以防止一个访客OS存取例如由另一访客OS需要的 物理主机地址。在一些软件实现的本发明实施例中,将物理主机存储器写入或安装到GTT 810中 可作为一部分批处理过程来完成。因此,系统资源开销可以被分摊。在一些软件实现的本发明实施例中,VMM建立在图形存储器转换表GTT 810中使 用的页面表。在这些实施例中,访客OS不知道访客到主机的映射功能或其中的过程。访客 OS驱动器想对GTT 810的任何写入都由VMM(例如330)捕获。VMM将访客图形存储器地址 (Pa)转换成对应的物理主机地址(Ph),并将该对应的主机物理地址(Ph)安装在图形存储 器转换表中。在这些实施例中,不需要改变、改编或修改访客OS驱动器来适应访客到主机 的转换,因为OS驱动器不转换GTT或向其作条目。此外,访客OS不能存取或监控其它VM 的物理主机地址。在本发明的一些实施例中,过程700的功能用硬件实现。地址解码器或其它硬件 装置可用来检测对GT 810的写入。在检测到访客OS驱动器试图写入GTT时,硬件可进行询 问,以确定有效的物理主机地址,并将有效的物理主机地址条目安装到GTT中。至此,如在 以上讨论的一些软件实现实施例中,不需改变或修改访客0S,因为访客到主机的映射(即 转换)功能不取决于OS驱动器。如在以上讨论的一些软件实施例中,提供了一种安全措施, 因为访客OS驱动器不能建立GTT以映射来自其它VMM的物理存储器的条目(即访客OSS 不能探听另一 VM的存储器的活动)。因此,可以提供单个转换操作以将访客图形存储器地址转换成主机物理地址。用 这种方式,可以减少在支持虚拟化的系统中的I/O装置例如图形装置所需的转换次数和频率。按照上述公开,图形存储器转换表可用来将访客图形孔径地址映射到主机物理地 址。因此,就可减少或不再需要单独的DMA重新映射及其关联的硬件成本和/或改变来将 访客地址转换成主机地址。此外,在一些实施例中,实现或包括本文公开的转换功能的硬件 和/或软件(例如芯片组)可被通用化,并用于支持虚拟化的系统中。在本发明的一些实施例中,除了以上公开的重新映射方法外,图形可包括至少一 种芯片组地址重新映射方法。例如,可包括I/O存储器管理单元(未示出)。本文所述的几个实施例完全是为了说明的目的。本文所述的各种特征不需要全部 一起使用,任何一个或多个这些特征可以合并到单个实施例中。所以,所属领域的技术人员 从说明书中会理解,用各种修改和改变也可实现其它实施例。
权利要求
一种方法,包括为分派给支持虚拟化的系统中虚拟机的输入/输出(I/O)装置,接收对访客图形存储器地址的请求;以及在图形存储器转换表中安装物理访客图形存储器地址到主机物理存储器地址转换。
2.如权利要求1所述的方法,其中所述图形存储器转换表包括以下至少一项图形转 换表和图形地址重新映射表。
3.如权利要求1所述的方法,其中所述I/O装置包括图形装置。
4.如权利要求1所述的方法,其中所述I/O装置包括处理器或控制器。
5.如权利要求4所述的方法,其中所述I/O装置包括与其所述处理器和所述控制器相 关联的局部存储器。
6.如权利要求1所述的方法,其中所述转换表包括至少一种附加芯片组地址重新映射方法。
7.如权利要求1所述的方法,还包括以批量操作执行所述安装。
8.如权利要求1所述的方法,其中访客操作系统(OS)驱动器使主机地址输入到所述图 形存储器转换表中容易进行。
9.如权利要求1所述的方法,其中虚拟机监控器(VMM)使主机地址输入到所述图形存 储器转换表中容易进行。
10.如权利要求9所述的方法,其中访客操作系统(OS)驱动器调用所述VMM,以便在所 述转换表中安装所述转换。
11.如权利要求9所述的方法,其中所述VMM俘获对所述图形转换表的更新。
12.如权利要求9所述的方法,还包括由所述VMM使至少所述主机物理地址的可用性和 分派有效。
13.如权利要求9所述的方法,其中所述图形存储器转换表对于访客OS驱动器是只读的。
14.如权利要求1所述的方法,其中芯片组内的硬件机构使所述安装容易进行。
15.如权利要求14所述的方法,所述芯片组内的地址解码器使其容易进行。
16.一种系统,包括输入/输出(I/O)装置,分派给支持虚拟化的系统中的虚拟机; 图形存储器转换表,使物理访客图形存储器地址与主机物理地址相关联; 图形存储器单元;以及存储器,与所述图形存储器单元相关联并存储指令,所述指令在由机器执行时导致以 下结果在所述图形存储器转换表中安装物理访客图形存储器地址到主机物理存储器地址转换。
17.如权利要求16所述的系统,其中所述图形存储器转换表包括以下至少一项图形 转换表和图形地址重新映射表。
18.如权利要求16所述的系统,其中所述I/O装置包括图形装置。
19.如权利要求16所述的系统,其中所述I/O装置包括处理器或控制器。
20.如权利要求19所述的系统,其中所述I/O装置包括与其所述处理器或所述控制器相关联的局部存储器。
21.如权利要求16所述的系统,还包括虚拟机监控器(VMM),以使主机地址输入到所述 图形存储器转换表中容易进行。
22.如权利要求21所述的系统,其中所述VMM使至少所述主机物理地址的可用性和分 派有效。
23.如权利要求21所述的系统,其中所述图形存储器转换表对于访客OS驱动器是只读的。
24.如权利要求16所述的系统,还包括访客操作系统(OS)驱动器,以使主机地址输入 到所述图形存储器转换表中容易进行。
25.如权利要求16所述的系统,其中所述安装以批量操作执行。
26.一种系统,包括输入/输出(I/O)装置,分派给支持虚拟化的系统中的虚拟机; 存储器,存储图形存储器转换表,所述转换表使物理访客图形存储器地址与主机物理 地址相关联;以及图形存储器单元,存储指令,所述指令在由机器执行时导致以下结果在所述图形存储器转换表中安装物理访客图形存储器地址到主机物理存储器地址转换。
27.如权利要求26所述的系统,其中所述图形存储器转换表包括以下至少一项图形 转换表和图形地址重新映射表。
28.如权利要求26所述的系统,其中所述I/O装置包括图形装置。
全文摘要
本发明的名称是“虚拟化中图形地址的一步地址转换”。在一些实施例中,一种系统和方法包括为分派给支持虚拟化的系统中虚拟机的输入/输出(I/O)装置,接收对图形存储器地址的请求,并在图形存储器转换表中安装物理访客图形存储器地址到主机物理存储器地址转换。
文档编号G06F12/10GK101923520SQ20101016711
公开日2010年12月22日 申请日期2005年12月29日 优先权日2004年12月29日
发明者K·潘萨, M·戈德史密斯 申请人:英特尔公司