CN101088078A - 虚拟化中图形地址的一步地址转换 - Google Patents

虚拟化中图形地址的一步地址转换 Download PDF

Info

Publication number
CN101088078A
CN101088078A CNA2005800448642A CN200580044864A CN101088078A CN 101088078 A CN101088078 A CN 101088078A CN A2005800448642 A CNA2005800448642 A CN A2005800448642A CN 200580044864 A CN200580044864 A CN 200580044864A CN 101088078 A CN101088078 A CN 101088078A
Authority
CN
China
Prior art keywords
address
graphics
graphics memory
host
translation
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
CNA2005800448642A
Other languages
English (en)
Other versions
CN101088078B (zh
Inventor
M·戈德史密斯
K·潘萨
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN101088078A publication Critical patent/CN101088078A/zh
Application granted granted Critical
Publication of CN101088078B publication Critical patent/CN101088078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/10Providing a specific technical effect
    • G06F2212/1016Performance 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/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Abstract

在一些实施例中,一种系统和方法包括:为分派给支持虚拟化的系统中虚拟机的输入/输出(I/O)装置,接收对图形存储器地址的请求,并在图形存储器转换表中安装物理访客图形存储器地址到主机物理存储器地址转换。

Description

虚拟化中图形地址的一步地址转换
背景技术
图形装置可要求邻接的存储范围存储图形数据。图形数据可包括例如三维数据以及在个人计算机中例如由图形子系统所用的指令。使用图形转换表可以使邻接的图形存储器与物理存储器相关。但是,物理存储器可能并不邻接。
在一些方面,虚拟化是在同一主机硬件上操作一个或多个访客操作系统(OS)的技术,其方法是:将主机硬件-软件接口的多个拷贝提供给每个访客OS。在支持虚拟化的系统中,用于访客的存储器地址可与主机物理存储器地址相关。物理主机存储器可备份物理访客存储器。
而且,在具有图形装置和支持虚拟化的系统中,可能需要提供两种存储器地址转换。一种转换是将图形地址映射到物理访客地址,第二种转换是将物理访客地址转换成物理主机地址。
因此,在技术上需要提供一种系统和方法,以在支持虚拟化的环境中有效地转换图形地址。
附图说明
图1是按照本发明一些实施例的计算机系统框图;
图2是按照本发明一些实施例的图形转换表的示范图;
图3是按照本发明一些实施例的虚拟机的示范图;
图4是按照本发明一些实施例的在虚拟机上物理存储器映射的示范图;
图5是包括两种转换的存储器转换的流程图;
图6是按照本发明一些实施例的包括一种转换操作的示范存储器转换方案;
图7是按照本发明一些实施例的过程的示范流程图;以及
图8是按照本发明一些实施例的逻辑存储器映射的示范图,示出访客图形存储器地址到主机物理地址转换。
具体实施方式
图1是一个示范框图,示出可用于本发明一些实施例中的计算机系统的物理硬件,总体用参考编号100表示。计算机系统100包括处理器105。处理器105表示任何类型体系结构的中央处理单元。本发明的一些实施例可以用具有多个处理器的计算机系统来实现。计算机系统100包括芯片组110,该芯片组具有若干控制电路和若干接口电路,以允许处理器105存取系统存储器115、系统总线150(例如外围部件互连(PCI)Express总线)以及图形装置160。
若干外围部件互连(PCI Express)装置1551到155n都连接到Express总线150,如由PCI专题组(PCI-SIG)在“PCI Express BaseSpecification,Version 1.0”(2002年7月)中所定义的。PCI Express装置1551到155n是输入/输出(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。存储器可以是随机存取存储器(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产生对系统存储器的直接参考,因此该空间的邻接视图是必要的。但是,由于对系统存储器是例如以随机4K页面动态分配的,因此可能需要提供一种地址映射机构,将随机4K页面映射到单个邻接的物理地址空间中。
图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、若干访客虚拟机VM03100和VM13101以及虚拟机监控器(VMM)330。VM03100和VM13101中的每个在本文中可相对于物理主机硬件305称为访客。在一些实施例中,物理主机硬件305可包括类似于图1所示系统100的计算机系统和/或其部件。物理主机硬件305在本文中也可称为主机。
应理解,在不背离和/或改变本发明各种实施例范围的前提下,在主机305中包括的特定物理主机硬件可改变,和可对系统100的改变一样,如结合图1讨论所述的。
在一些实施例中,物理主机硬件305可包括处理器、存储器、各种I/O装置(例如键盘、监控器、USB控制器、网络控制器等)以及图形装置。
在系统300中示出两个虚拟机VM03100和VM13101。应理解,系统300中可包括或支持更多或更少的虚拟机。VM03100和VM13101示为包括类似的部件。例如,VM03100具有若干地址315、访客OSG1320以及与其关联的部件325。以类似方式,VM13101具有若干地址317、访客OS G2 322以及虚拟部件327。所属领域的技术人员应理解,在由系统300所支持的虚拟机之间可能存在功能上的区别。
在一些实施例中,VMM 300提供硬件-软件接口给VM03100和VM13101中的每个。硬件-软件接口的每个实例可将主机305的有效复制品,包括处理、存储器、指令以及其其它资源(例如存储器和I/O装置),提供到系统300所连接的或支持的虚拟机。在一些实施例中,访客OS G1 320和访客OS G2 322可同时操作,部分由于每个访客OS都在其自己的虚拟机中操作。
在支持虚拟化的系统中,访客存储器地址需被转换或映射到主机物理地址,因为物理访客存储器地址(Pg)是一个虚拟存储器地址,它实际上位于物理主机地址(Ph)上。就是说,由于访客的资源,包括存储器,都是主机的硬件或整个硬件环境的虚拟化,所以必须建立一种相关性,以使访客存储器地址(Pg)与物理主机地址(Ph)相关联。
因此,在虚拟化的系统或支持虚拟化的系统中,可能需要将虚拟的访客机的图形地址转换成实际的物理主机地址位置。按照本发明的一些实施例,提供了一种在支持虚拟化的环境中有效转换图形地址的方法和系统。
在支持虚拟化的计算系统中,访客存储器地址Pg可以由物理主机地址Ph备份(即位于物理主机地址Ph)。图4示出在支持虚拟化的系统中映射到主机存储器的访客OS存储器。如图所示,访客G1地址空间410为128MB,且访客G1地址空间405为256 MB。用于访客OS G1(Pg1)和访客OS G2(Pg2)的物理存储器地址空间示为分别映射到主机物理地址空间(Ph1)和(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装置,使用来自物理主机硬件330的主存储器125的主机物理地址(815)到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中。至此,如在以上讨论的一些软件实现实施例中,不需改变或修改访客OS,因为访客到主机的映射(即转换)功能不取决于OS驱动器。如在以上讨论的一些软件实施例中,提供了一种安全措施,因为访客OS驱动器不能建立GTT以映射来自其它VMM的物理存储器的条目(即访客OSS不能探听另一VM的存储器的活动)。
因此,可以提供单个转换操作以将访客图形存储器地址转换成主机物理地址。用这种方式,可以减少在支持虚拟化的系统中的I/O装置例如图形装置所需的转换次数和频率。
按照上述公开,图形存储器转换表可用来将访客图形孔径地址映射到主机物理地址。因此,就可减少或不再需要单独的DMA重新映射及其关联的硬件成本和/或改变来将访客地址转换成主机地址。此外,在一些实施例中,实现或包括本文公开的转换功能的硬件和/或软件(例如芯片组)可被通用化,并用于支持虚拟化的系统中。
在本发明的一些实施例中,除了以上公开的重新映射方法外,图形可包括至少一种芯片组地址重新映射方法。例如,可包括I/O存储器管理单元(未示出)。
本文所述的几个实施例完全是为了说明的目的。本文所述的各种特征不需要全部一起使用,任何一个或多个这些特征可以合并到单个实施例中。所以,所属领域的技术人员从说明书中会理解,用各种修改和改变也可实现其它实施例。

Claims (28)

1.一种方法,包括:
为分派给支持虚拟化的系统中虚拟机的输入/输出(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装置包括图形装置。
CN2005800448642A 2004-12-29 2005-12-29 虚拟化中图形地址的一步地址转换的方法和系统 Active CN101088078B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/025,126 US9058292B2 (en) 2004-12-29 2004-12-29 System and method for one step address translation of graphics addresses in virtualization
US11/025,126 2004-12-29
PCT/US2005/047683 WO2006072101A2 (en) 2004-12-29 2005-12-29 One step address translation of graphics addresses in virtualization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2010101671128A Division CN101923520B (zh) 2004-12-29 2005-12-29 虚拟化中图形地址的一步地址转换

Publications (2)

Publication Number Publication Date
CN101088078A true CN101088078A (zh) 2007-12-12
CN101088078B CN101088078B (zh) 2010-06-09

Family

ID=36481388

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2005800448642A Active CN101088078B (zh) 2004-12-29 2005-12-29 虚拟化中图形地址的一步地址转换的方法和系统
CN2010101671128A Expired - Fee Related CN101923520B (zh) 2004-12-29 2005-12-29 虚拟化中图形地址的一步地址转换

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2010101671128A Expired - Fee Related CN101923520B (zh) 2004-12-29 2005-12-29 虚拟化中图形地址的一步地址转换

Country Status (7)

Country Link
US (4) US9058292B2 (zh)
EP (3) EP3605342A1 (zh)
JP (1) JP5006798B2 (zh)
KR (2) KR100955111B1 (zh)
CN (2) CN101088078B (zh)
TW (1) TWI300541B (zh)
WO (1) WO2006072101A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016149935A1 (en) * 2015-03-26 2016-09-29 Intel Corporation Computing methods and apparatuses with graphics and system memory conflict check
CN106796528A (zh) * 2014-07-25 2017-05-31 英特尔公司 实现运行提前运行时访客指令转换/解码过程和其中从指令序列中的访客分支的目标预取访客代码的预取过程的系统转换器
CN109690505A (zh) * 2016-09-26 2019-04-26 英特尔公司 用于针对虚拟化输入/输出实施方式的混合层地址映射的设备和方法
US11281481B2 (en) 2014-07-25 2022-03-22 Intel Corporation Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US8200796B1 (en) * 2005-05-05 2012-06-12 Digital Display Innovations, Llc Graphics display system for multiple remote terminals
US11733958B2 (en) 2005-05-05 2023-08-22 Iii Holdings 1, Llc Wireless mesh-enabled system, host device, and method for use therewith
US8019883B1 (en) 2005-05-05 2011-09-13 Digital Display Innovations, Llc WiFi peripheral mode display system
US7499057B2 (en) * 2005-09-09 2009-03-03 Microsoft Corporation Address translation in an integrated graphics environment
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
KR100889602B1 (ko) * 2006-12-05 2009-03-20 한국전자통신연구원 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치
US7685401B2 (en) * 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
US20080229053A1 (en) * 2007-03-13 2008-09-18 Edoardo Campini Expanding memory support for a processor using virtualization
US8893126B2 (en) * 2008-02-01 2014-11-18 International Business Machines Corporation Binding a process to a special purpose processing element having characteristics of a processor
US8087269B2 (en) 2008-02-07 2012-01-03 Checkpoint Systems, Inc. Cable wrap security device
US20110102443A1 (en) * 2009-11-04 2011-05-05 Microsoft Corporation Virtualized GPU in a Virtual Machine Environment
KR101620058B1 (ko) 2009-11-23 2016-05-24 삼성전자주식회사 가상 머신 간 화면 전환 장치 및 방법
WO2013091185A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Gpu accelerated address translation for graphics virtualization
WO2013095579A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Indexed page address translation to reduce memory footprint in virtualized environments
TWI510056B (zh) * 2011-12-27 2015-11-21 Hon Hai Prec Ind Co Ltd 3d成像模組及3d成像方法
CN102567217B (zh) * 2012-01-04 2014-12-24 北京航空航天大学 一种面向mips平台的内存虚拟化方法
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US9448831B2 (en) 2013-07-01 2016-09-20 Intel Corporation Efficient graphics virtualization with address ballooning
US8719374B1 (en) 2013-09-19 2014-05-06 Farelogix, Inc. Accessing large data stores over a communications network
US9792222B2 (en) 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
WO2016074166A1 (en) * 2014-11-12 2016-05-19 Intel Corporation Live migration of virtual machines from/to host computers with graphics virtualization
DE112014002771T5 (de) * 2014-12-24 2016-10-13 Intel Corporation Hybrid-on-Demand-Grafikübersetzungstabellen-Shadowing
KR101672119B1 (ko) * 2015-02-16 2016-11-04 (주) 퓨전데이타 가상화 환경에서 고화질 영상 출력을 위한 서버장치 및 방법
US10621692B2 (en) 2015-06-26 2020-04-14 Intel Corporation Apparatus and method to improve the scalability of graphics processor unit (GPU) virtualization
US10055242B2 (en) 2015-10-16 2018-08-21 Microsoft Technology Licensing, Llc Virtualizing audio decoding hardware
US10853118B2 (en) * 2015-12-21 2020-12-01 Intel Corporation Apparatus and method for pattern-driven page table shadowing for graphics virtualization
EP3188014B1 (en) * 2015-12-29 2022-07-13 Dassault Systèmes Management of a plurality of graphic cards
JP7058658B2 (ja) * 2016-12-27 2022-04-22 深▲せん▼前海達闥雲端智能科技有限公司 映像表示方法、装置、電子機器及びコンピュータプログラム製品
WO2018119709A1 (zh) * 2016-12-27 2018-07-05 深圳前海达闼云端智能科技有限公司 用于多操作系统的内存访问方法、装置和电子设备
EP3355188B1 (en) 2017-01-31 2021-08-25 OpenSynergy GmbH Instrument display on a car dashboard by checking frames of a gui by a realtime os
US10733112B2 (en) 2017-06-16 2020-08-04 Alibaba Group Holding Limited Method and apparatus for hardware virtualization
US11469953B2 (en) 2017-09-27 2022-10-11 Intel Corporation Interworking of legacy appliances in virtualized networks
CN111133417A (zh) * 2017-10-24 2020-05-08 英特尔公司 硬件辅助的虚拟交换机
CN110874258B (zh) * 2018-08-31 2023-05-26 阿里巴巴集团控股有限公司 物理机变更方法、装置
US11228561B2 (en) * 2019-04-23 2022-01-18 Red Hat, Inc. Safe MAC programming support for vNIC
US10872458B1 (en) * 2019-09-06 2020-12-22 Apple Inc. Graphics surface addressing

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5454536A (en) * 1977-10-08 1979-04-28 Fujitsu Ltd Data processor
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPS608971A (ja) * 1983-06-29 1985-01-17 Toshiba Corp 中央処理装置
JPH0658650B2 (ja) * 1986-03-14 1994-08-03 株式会社日立製作所 仮想計算機システム
US5577231A (en) * 1994-12-06 1996-11-19 International Business Machines Corporation Storage access authorization controls in a computer system using dynamic translation of large addresses
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
US6249853B1 (en) * 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US5933158A (en) * 1997-09-09 1999-08-03 Compaq Computer Corporation Use of a link bit to fetch entries of a graphic address remapping table
US6112285A (en) * 1997-09-23 2000-08-29 Silicon Graphics, Inc. Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6362826B1 (en) * 1999-01-15 2002-03-26 Intel Corporation Method and apparatus for implementing dynamic display memory
US6370633B2 (en) * 1999-02-09 2002-04-09 Intel Corporation Converting non-contiguous memory into contiguous memory for a graphics processor
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
US6970992B2 (en) * 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6628294B1 (en) * 1999-12-31 2003-09-30 Intel Corporation Prefetching of virtual-to-physical address translation for display data
DE60135347D1 (de) 2000-07-14 2008-09-25 Irdeto Access Bv Architektur zur gesicherten paketbasierten datenverteilung
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US7953588B2 (en) * 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US7069413B1 (en) * 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor
US7243208B2 (en) * 2003-08-13 2007-07-10 Renesas Technology Corp. Data processor and IP module for data processor
US7334108B1 (en) * 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7213125B2 (en) * 2004-07-31 2007-05-01 Hewlett-Packard Development Company, L.P. Method for patching virtually aliased pages by a virtual-machine monitor
US20060112212A1 (en) * 2004-11-23 2006-05-25 Hob Gmbh & Co. Kg Virtual machine computer system for running guest operating system on a central processing means virtualized by a host system using region ID virtual memory option
US7243209B2 (en) 2005-01-27 2007-07-10 International Business Machines Corporation Apparatus and method for speeding up access time of a large register file with wrap capability

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796528A (zh) * 2014-07-25 2017-05-31 英特尔公司 实现运行提前运行时访客指令转换/解码过程和其中从指令序列中的访客分支的目标预取访客代码的预取过程的系统转换器
CN106796528B (zh) * 2014-07-25 2021-08-24 英特尔公司 用于选择包括指令序列的指令的系统和方法
US11281481B2 (en) 2014-07-25 2022-03-22 Intel Corporation Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture
WO2016149935A1 (en) * 2015-03-26 2016-09-29 Intel Corporation Computing methods and apparatuses with graphics and system memory conflict check
US10242422B2 (en) 2015-03-26 2019-03-26 Intel Corporation Computing methods and apparatuses with graphics and system memory conflict check
CN109690505A (zh) * 2016-09-26 2019-04-26 英特尔公司 用于针对虚拟化输入/输出实施方式的混合层地址映射的设备和方法
CN109690505B (zh) * 2016-09-26 2023-08-08 英特尔公司 用于针对虚拟化输入/输出实施方式的混合层地址映射的设备和方法

Also Published As

Publication number Publication date
US20190213138A1 (en) 2019-07-11
KR20070086791A (ko) 2007-08-27
US10133674B2 (en) 2018-11-20
WO2006072101A2 (en) 2006-07-06
WO2006072101A3 (en) 2006-11-23
EP1839158A2 (en) 2007-10-03
JP5006798B2 (ja) 2012-08-22
KR100955111B1 (ko) 2010-04-28
CN101088078B (zh) 2010-06-09
JP2008527508A (ja) 2008-07-24
US10671541B2 (en) 2020-06-02
US20200356490A1 (en) 2020-11-12
KR20090007494A (ko) 2009-01-16
CN101923520B (zh) 2012-11-28
TWI300541B (en) 2008-09-01
TW200634662A (en) 2006-10-01
US9058292B2 (en) 2015-06-16
EP3073385A1 (en) 2016-09-28
US20060139360A1 (en) 2006-06-29
US20150301945A1 (en) 2015-10-22
CN101923520A (zh) 2010-12-22
US11023385B2 (en) 2021-06-01
EP3605342A1 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
CN101088078B (zh) 虚拟化中图形地址的一步地址转换的方法和系统
US9817770B2 (en) Memory address re-mapping of graphics data
US20190155637A1 (en) Resource Access Method Applied to Computer and Computer
US6880022B1 (en) Transparent memory address remapping
CN111190752B (zh) 虚拟机共享内核内存的方法及装置
CN100570562C (zh) 显卡、应用该显卡的虚拟机系统及显示处理方法
CN103034524A (zh) 半虚拟化的虚拟gpu
JPH06508952A (ja) メモリ管理方法
JPWO2016067429A1 (ja) 仮想計算機システムの制御方法及び仮想計算機システム
US20200201758A1 (en) Virtualized input/output device local memory management
JP2022541059A (ja) ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間
CN117453352A (zh) 一种Xen下的设备直通方法

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