组合的虚拟图形设备的制作方法

文档序号:6484802阅读:220来源:国知局
组合的虚拟图形设备的制作方法
【专利摘要】系统包括具有组合的虚拟图形设备的客户图形子系统,该组合的虚拟图形设备组合了基础的仿真虚拟图形设备和物理图形设备的虚拟功能用于支持虚拟机迁移。该系统中的VMM可以向客户展示单个组合的虚拟PCIe图形设备,该设备组合了对虚拟图形设备和虚拟功能的访问,并且在客户OS中为图形加速在虚拟图形设备和虚拟功能之间进行切换而无须触发PnP事件。作为对切换的响应,客户图形堆栈和应用可以重绘它们的窗口以提供一致的用户体验。
【专利说明】组合的虚拟图形设备
【背景技术】
[0001]虚拟化使具有硬件和软件支持虚拟化的单一主机能够呈现该主机的抽象,以使得该主机的基础硬件表现为一个或多个独立运行的虚拟机。因此每个虚拟机可以像自包含的平台一样工作。虚拟化技术可用于允许多个客户操作系统和/或其他客户软件在多个虚拟机上共存且表面上同时地且表面上独立地运行,而实际上在相同的硬件平台物理运行。虚拟机可以模仿主机的硬件或者可替换地完全呈现不同的硬件抽象。
[0002]虚拟化系统可以包括用于控制对主机的访问的虚拟机监视器(VMM)。在一些实施例中,可以利用任何其他的VM控制逻辑。VMM可以向在虚拟机中运行的客户软件提供一组资源(例如处理器、存储器、IO设备)。VMM可以将物理主机的一些或者全部部件映射到虚拟机中,并且可以创建对虚拟机可用的虚拟部件(例如虚拟IO设备),其在VMM中以软件仿真。VMM可以使用硬件虚拟化架构的特征来向虚拟机提供服务并且向运行在主机上的多个虚拟机之间提供保护。
[0003]在虚拟化计算环境中,虚拟机既可以通过“动态迁移”也可以通过保存和恢复VM的状态而从一个物理平台迁移到另一个物理平台。在对VM呈现的所有平台资源均是虚拟的情况下,VMM可以转换所有这些资源的状态。在已将物理图形设备功能(例如,单根IO虚拟化(SR-1OV)能力设备的虚拟功能或者映射有输入/输出存储器管理模块(IOMMU)支持的专用设备)的接口提供给VM的情况下,可以抑制迁移过程。在一种情况下,迁移的目标平台可以没有可供客户OS使用的硬件图形设备。在另一种情况下,目标平台上的图形硬件可以与源不同。在目标处的兼容硬件可用的情况下,VMM可以不转换所有的相关设备状态信息。通过图形虚拟化和VM迁移,当基于硬件的图形设备变得可用并且被虚拟机监视器(VMM)分配给VM时,客户OS可能需要支持基于硬件的图形设备的动态变化。一些操作系统可能不支持动态即插即用的图形设备。
【专利附图】

【附图说明】
[0004]本文描述的发明是通过示例的方式而不是限制的方式在附图中示出。为了简单和清楚地说明,附图中图示的元件不一定是按照比例绘制的。例如为了清楚起见,一些元件的尺寸相对于其他元件被扩大了。此外,在认为合适的情况下,附图中重复出现的参考标记指示相应的或者类似的元件。
[0005]图1是根据本发明的实施例的示例性虚拟机环境的高层次结构的示意图。
[0006]图2是装置的实施例的示意图。
[0007]图3是根据本发明的一些实施例的流程图。
[0008]图4A和4B是根据本发明的一些实施例的示意流程图。
【具体实施方式】
[0009]下面的说明中所描述的技术提供一种支持组合的虚拟图形装置的使用模型。在一个实施例中,该组合的虚拟图形装置可以在虚拟机环境中实现。在另一个实施例中,该组合的虚拟图形功能可以在基于处理器的计算系统中实现。该技术的实现并不限于在计算系统中;出于相似的目的,它可以由任何运行环境使用,例如任何其他数字/电子装置或者系统。在下面的描述中,提出了大量具体的细节以便提供对本发明的更加透彻的理解,所述细节例如是逻辑实现、操作码、指定操作数的方式、资源分区/共享/复制实现、系统部件的类型和相互关系、以及逻辑分区/集成选择。然而,没有这些具体的细节本发明也可以实践。在其他实例中,为了不模糊本发明,没有详细示出控制结构和全软件指令序列。
[0010]本说明书中提到的“一个实施例”、“实施例”、“示例实施例”等,表明所描述的实施例可以包括特定的特征、结构或者特性,但是每个实施例可以不必包括所述特定特征、结构或者特性。此外,这些短语不一定指代相同的实施例。进一步地,当描述与实施例有关的特定特征、结构或者特性时,一般认为,结合其他实施例实现这样的特征、结构或者特性属于本领域技术人员的知识范围内,而无论其是否被明确描述。
[0011]本发明的实施例可以在硬件、固件、软件、或它们的任意组合中被实现。本发明的实施例也可实现为存储在机器可读介质上的可以由一个或多个处理器读取并执行的指令。机器可读介质可以包括存储或传输机器(例如计算设备)可读形式的信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、电、光、声或其他形式的传播信号(例如载波、红外信号、数字信号等)和其他。
[0012]下面的描述可以包括例如第一、第二等仅用于描述性目的而不被解释为限制的术语。
[0013]图1是虚拟机环境100的一个实施例的框图。在这个实施例中,基于处理器的平台116可以运行VMM114。该VMM虽然以软件实现,但可以仿真和输出到更高级别软件的虚拟机接口。这种更高级别软件可以包括标准OS、实时OS、或者可以是具备有限操作系统功能的精简环境,并且可能不包括在某些实施例中的标准OS内可用的OS设备。可替代地,例如,VMMl 14可以运行在另一个VMM之内或者使用另一个VMM的服务。在一些实施例中,VMM可以在例如硬件、软件、固件或者各种技术的组合中被实现。在至少一个实施例中,VMM的一个或多个部件可以在一个或多个虚拟机上执行,并且VMM的一个或多个部件可以在如图1所述的平台硬件上执行。在平台硬件上直接执行的VMM部件在本文中称为VMM的主机部件。在另一个实施例中,VMM114的示例可以包括混合式虚拟机监视器、主机虚拟机监视器或者管理程序虚拟机监视器。
[0014]平台硬件116可以是个人计算机(PC)、服务器、大型机、例如个人数字助理(PDA)、平板电脑、智能手机或者任何其他智能设备的手持式设备、互联网协议设备、数码相机、便携式计算机、例如上网本或笔记本电脑的手持式PC、或者例如微控制器的嵌入式应用、数字信号处理器(DSP)、片上系统(SoC)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或者其他基于处理器的系统。
[0015]平台硬件116至少包括处理器118和存储器120。处理器118可以是有能力执行程序的任何类型的处理器,例如微处理器、数字信号处理器、微控制器或者类似物。该处理器可以包括在实施例中执行的微码、可编程逻辑或者硬编码逻辑。虽然图1仅示出一个这样的处理器118,但在实施例的系统中可以有一个或多个处理器。此外,处理器118可以包括多个内核、支持多线程或者类似物。处理器118可以包括微码、可编程逻辑或者硬编码逻辑以执行本文所描述的各种实施例相关联的操作。
[0016]在各种实施例中,存储器120可以包括硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、以及任何其他类型的易失性存储器设备或者非易失性存储器设备、或者上述设备的组合、或者任何其他类型的由处理器118可读的机器介质。存储器120可以存储用于进行程序执行和其他方法实施例的指令和/或数据。在一些实施例中,本发明的一些元件可以在以平台芯片组或者系统的一个或多个存储器控制器为例的其他系统部件中被实现。
[0017]VMMl 14可以向客户软件呈现一个或多个虚拟机的抽象。VMMl 14可以向不同的VM呈现物理平台的相同或不同的抽象。图1的实施例示出了两个虚拟机102和112。在每个虚拟机上运行的客户软件(例如,客户软件103和113)可以包括客户OS (例如客户0S104或者106)和各种客户软件应用108和110。客户软件103和113可以访问运行客户软件103和113的虚拟机之内的物理资源(例如,处理器寄存器、存储器和I/O设备)以执行其他功能。例如,根据在虚拟机102和112中呈现的处理器和平台的架构,客户软件103和113可以访问所有的寄存器、高速缓存、结构、I/O设备、存储器和类似物。
[0018]在一个实施例中,处理器118可以控制虚拟机102和112的操作。在一个实施例中,响应于虚拟机102在其虚拟地址空间引用存储器单元,可以由VMM114中的存储器管理模块(未示出)生成到主机116的物理存储器(机器物理存储器)中的实际地址的引用,这可以在硬件(有时并入到处理器118)和软件(例如,在主机的操作系统中)中实现。在图1的实施例中,平台硬件116可以进一步包括一个或多个I/O设备122。平台硬件116可以进一步包括一个或多个可以用于执行一个或多个图形功能的图形控制或者设备124 ;在一些实施例中,平台硬件116可以包括任何其他物理图形设备。
[0019]图2示出根据一个实施例的可以在虚拟机环境中实现的组合的虚拟图形装置的示例。参照图2所示,虚拟机环境200可以包括虚拟机监视器(VMM)220和平台210。平台210可以包括例如处理器118、存储器120、输入/输出设备122、图形设备124的硬件;然而,在一些实施例中,平台210可以包括任何其他平台硬件设备。在一个实施例中,在平台210中的处理器可以是能够执行软件指令的任何类型的处理器,例如复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集组合的处理器、或者任何其他处理器设备,例如数字信号处理器、微处理器、数字信号处理器或者微控制器、或者类似物。平台210中的处理器可以包括用于执行与本文所描述的各种实施例相关联的操作的微码、可编程逻辑或硬编码逻辑。在一个实施例中,在平台210中可以有一个或多个处理器,并且一个或多个处理器可以包括多线程、多内核或类似物。
[0020]实施例并不限于计算系统。本发明的替代实施例能够被用于任何形状因数的设备,例如手持设备和嵌入式应用。平台210可以包括手持设备、便携式计算机、机顶盒、或任何其他基于处理器的系统的硬件平台。手持设备的一些示例可以包括蜂窝电话、智能电话、平板电脑、互联网协议设备、数码相机、个人数字助理(PDA)、或者以上网本或笔记本电脑为例的手持PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统(SoC)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或者任何其他系统。
[0021]参照图2,在一个实施例中,VMM220可以向其他软件呈现一个或多个VM或虚拟系统(未示出)的抽象。在一个实施例中,VMM220可以使在环境200中的硬件资源分配到在VM或者虚拟系统中执行的一个或多个并发的操作系统会话。客户平台250上的每个VM可以作为自包含的平台,运行其自己的“客户操作系统”(由VMM作为主机的操作系统(O S ))和其他软件,统称为客户软件。在实施例中,客户平台250可以控制各种事件并且可能能够访问各种硬件资源。运行在客户平台250的每个虚拟机上的客户软件可以包括客户OS或者客户内核230以及在客户用户240上的各种客户软件应用242。VMM220可以在硬件、软件、固件、或者其组合中实现。在一个实施例中,客户平台250可以作为客户图形子系统。
[0022]参照图2,在实施例中,平台210可以包括物理图形设备212。在一个实施例中,物理图形设备212可以支持例如SR-1OV或任何其他标准的硬件虚拟化标准,并且VMM220可以将物理图形设备212的一个或多个虚拟功能214分配给客户0S230。在图2的实施例中,VMM220可以向客户0S230展示组合的虚拟图形设备(CVGD) 222。在一个实施例中,组合的虚拟图形设备222可以组合基础的仿真视频图形阵列(VGA)设备224、例如仿真虚拟图形处理单元(VGPU)226的虚拟图形设备、以及物理图形设备212的虚拟功能(VF)214,以通过VGA224提供软件仿真的VGA功能,并且通过设备212的VGPU226和VF214中的一个提供图形能力。在另一个实施例中,组合的虚拟图形设备222可以向VM呈现为可以组合对VGPU226和VF214的访问的单一快速外围部件互连(PCIe)图形设备。例如,为了图形加速和/或提供给VM的其他图形能力,组合的虚拟图形设备222可以在VGPU226和VF214之间切换。
[0023]由VMM220提供的VGA224可以增强图形设备212的虚拟功能214。在一个实施例中,VGA224可以在例如引导过程(VF驱动程序被加载之前)和/或诊断输出的期间被使用。在一些实施例中,VMM220可以在组合的虚拟图形设备222中向客户0S230提供超级VGA以支持例如改进的图形能力。在一个实施例中,对于没有VF214的平台,VMM220可以通过软件仿真(例如VGPU226)或者主机图形硬件加速以实现例如图形和/或介质渲染能力的仿真图形处理能力。VMM220可以在同一组合的虚拟图形设备222中的基础仿真VGPU226和VF214之间动态切换,而不会触发例如在客户0S230中的即插即用(PnP)事件。
[0024]在一个实施例中,VMM220可以向客户0S230展示用于组合的虚拟图形设备222的PCIe配置空间。PCIe配置空间可以独立于使用哪个基础图形设备。例如,VMM220可以不管例如是否使用仿真图形设备VGPU226或VF214或者虚拟功能来自哪个图形硬件,而为组合的虚拟图形设备222维护相同的PCIe配置空间。VMM220可以进一步维护从组合的虚拟图形PCIe配置空间(例如对客户OS可见)到活跃的基础设备的映射。配置空间可以具有过量提供的数量的和/或尺寸的基址寄存器(BAR)以涵盖一个或多个基础设备的配置。
[0025]在一个实施例中,PCIe配置空间可以包括一个或多个寄存器和/或字段。例如,虚拟图形PCIe配置空间可以包括例如供应商身份(VID)、设备ID (DID)或者类似物的数据字段。在另一个实施例中,虚拟图形PCIe配置空间可以包括可以作为该配置空间中的控制寄存器集的一部分的例如BARO和BARl到BAR5的基址寄存器(BAR)。例如,BAR可以包括存储器映射I/O (MMIO)寄存器、或者I/O寄存器、或者存储器区域。在另一个实施例中,对于虚拟设备,VMM可以在PCIe配置寄存器中存储例如虚拟供应商和/或设备ID的信息;和/或可以存储可被驱动程序用于配置一个BAR中的MMIO寄存器中的当前情况的任何信息。在一个实施例中,VID/DID可以在配置空间中但不在BARO或者任何其他BAR中;在一些实施例中,VID和/或DID可以在任何其他寄存器中。
[0026]在一个实施例中,VID可以是独立于基础硬件的供应商ID,可以不会在例如VF214(或图形设备212)的硬件的插入/撤销时发生改变。DID可以是具有独立于基础硬件的ID值的虚拟设备ID (DID),并且在例如VF214的硬件的插入/撤销时保持不变。在另一个实施例中,BARO可以映射到可以用于识别基础图形设备的一个或多个VMM仿真存储器映射I/
O(丽10)寄存器。在一个实施例中,BARO可以包括两个寄存器HW VID和HW DID ;在一些实施例中,BARO可以包括一个或多个寄存器。HW VID寄存器可以存储基础图形设备的供应商ID,基础图形设备可以是仿真图形设备226或者VF214。HW DID寄存器可以存储基础图形设备的设备ID,基础图形设备可以是仿真图形设备226或者VF214。在一些实施例中,供应商ID、设备ID和BARO可以不映射到例如物理功能(PF)和/或虚拟功能(VF)的单根I/O虚拟化(SR-1OV)图形硬件。在另一个实施例中,虚拟图形PCIe配置空间可以具有一个或多个例如BARl到BAR5的寄存器,该寄存器可以在数量和/或尺寸上被过量提供,以涵盖一个或多个仿真图形设备和/或一个或多个支持的VF实现;在一些实施例中,可以提供不同数量的冗余寄存器。VMM220可以动态地将冗余BARl到BAR5映射到当前活跃的基础图形设备(例如活跃的仿真图形设备226或者VF214)的寄存器。
[0027]在一个实施例中,VMM220可以不管是否使用仿真图形设备226或VF214或者虚拟功能来自哪个图形硬件,而维护相同的PCIe配置空间。VMM220可以维护从虚拟图形PCI配置空间(对客户OS可见)到活跃的基础图形设备的映射。
[0028]参照图2,客户0S230可以包括客户图形驱动程序232。VMM220可以为客户图形驱动程序232提供检测由组合的虚拟PCIe图形设备222展示的活跃的基础设备的方式。在实施例中,客户图形驱动程序232可以具有包装器插件(wrapper-plugin)结构。基础设备VGPU226和VF214中的每个可以被客户图形驱动程序232的相应插件管理。例如,客户图形驱动程序232可以包括用于VGPU226的驱动程序插件236和用于VF214的插件238。每个用于基础图形设备的驱动程序插件可以知道基础图形设备的BAR映射。在实施例中,包装器234可以检测由组合的虚拟图形设备222展示的活跃的基础图形设备并且选择与检测到的基础设备匹配的合适插件。包装器234可以确定用于当前活跃的基础设备的插件,和/或可以切换至新的插件以作为VMM220切换基础图形设备的响应。包装器234可以进一步向客户0S230和/或图形堆栈244提供一组一个或多个标准图形设备驱动程序接口(DDI ),并且将这些接口映射到当前活跃的插件以运行。例如,OS可以定义对图形堆栈的标准接口,例如Windows的DirectX ;然而,一些实施例可以使用任何标准接口。
[0029]例如,作为对由VMM220切换基础图形设备的响应,包装器234可以利用通知和屏幕重绘以提供用户体验。在一个实施例中,作为对VM迁移的响应,包装器234可以将基础图形设备的切换通知给客户0S230和图形堆栈244。例如,包装器234可以通过驱动程序调用的超时向客户0S230和图形堆栈244通知切换,例如在Windows Vista中。在另一个实施例中,包装器234可以从客户0S230给出可以重新初始化图形设备的恢复序列的提示。在另一个实施例中,客户图形驱动程序232可以调用用于活跃的基础设备的插件作为对来自包装器234的提示的响应。在另一个实施例中,作为对在VM迁移时基础图形设备切换的通知的响应,图形堆栈244和/或例如242的客户用户界面(UI)应用可以重绘它们的窗口。在一个实施例中,客户0S230和图形堆栈244可以支持图形硬件复位和/或图形堆栈244和/或Π应用242的自动重绘。在图2的实施例中,客户用户界面240可以进一步包括可以用于初始化和/或管理VM迁移的VM工具246,例如参照图4A和4B。[0030]虽然图2示出了 VGPU226和VF214,但在一些实施例中,由VMM220实现的组合的虚拟图形设备可以涵盖一个或多个基于基础硬件和/或软件的设备,并且VMM220可以在多个基础设备之间切换作为对设备变为可用或者不可用的响应。虽然图2示出了组合的虚拟图形设备的实施例,但在一些实施例中,VMM220可以在任何其他基础设备之间切换以基于基础设备的可用性而向客户提供组合的虚拟设备。
[0031]图3是根据本发明的实施例的图示出方法的实施例的流程图。在实施例中,图3的流程可以涉及客户启动。在方框302中,VMM可以分配例如VF或者仿真图形设备的基础图形设备给客户OS。在方框304中,VMM可以为客户配置虚拟PCIe图形设备。例如,VMM可以通过已为客户OS分配的基础图形设备提供组合的虚拟PCIe图形设备。在方框304中,VMM可以将组合的虚拟PCIe图形设备的BAR映射到在方框302中分配的基础图形设备的资源。在一个实施例中,在方框306中,客户OS可以使用由组合的虚拟PCIe图形设备展示的仿真VGA来在启动过程中进行显示。在方框308中,客户OS可以检测组合的虚拟图形PCIe设备,并且为检测到的虚拟图形设备加载例如234的图形驱动程序包装器。在方框310中,客户包装器驱动程序可以通过虚拟PCIe配置空间寄存器或者例如BARO的仿真MMIO寄存器中的信息检测哪个基础图形设备是活跃的。在方框310中,客户包装器驱动程序可以为检测到的活跃的基础图形设备(例如仿真图形设备226或者VF214)加载相应的驱动程序插件,和/或可以由加载的驱动程序插件初始化活跃的基础图形设备。
[0032]图4A是根据本发明的实施例的图示出方法的实施例的流程图。在实施例中,图4A的流程可以涉及客户的迁移源平台为VM迁移所准备的操作。在方框402中,在客户VM中的例如246的VM工具模块可以向客户图形驱动程序包装器通知即将到来的VM迁移。在方框404中,客户图形驱动程序包装器可以在组合的虚拟图形PCIe设备上执行PCIe功能级别的复位(FLR),并且可以忽略随后的对例如VGPU226的仿真图形设备和例如VF设备214的虚拟VF PCIe设备的访问。在一个实施例中,作为对FLR的响应,客户可以做好对VM迁移的准备以作为对完成FLR的响应。
[0033]图4B是根据本发明的实施例的图示出方法的实施例的流程图。在实施例中,图4B的流程可以涉及可由客户的迁移目标平台执行的用于VM迁移的操作。在方框406中,作为对VM迁移的响应,例如从第一 VM到第二 VM,VMM可以向客户提供组合的虚拟PCIe图形设备(例如在根据方框404提到的FLR的复位状态中)。例如,以VM将要迁移到的目标平台和/或VMM配置为基础,组合的虚拟PCIe设备可以具有例如VGPU226的仿真图形或者例如214的VF作为其基础设备。在方框408中,客户图形驱动程序包装器可以继续忽略对组合的虚拟PCIe设备的访问。在方框410中,VM工具模块可以通知客户图形驱动程序包装器图形硬件已经改变并且做好再次使用的准备。
[0034]在方框412中,客户图形驱动程序包装器可以通过PCIe配置空间和/或例如BARO的仿真MMIO寄存器中的信息检测基础图形设备,并且为检测到的基础图形设备加载相应的驱动程序插件。客户图形驱动程序包装器可以利用加载的驱动程序插件来初始化新检测到的基础图形设备。在方框414中,客户图形驱动程序插件可以发起客户VM中的图形堆栈的复位,并且图形堆栈和客户UI应用可以响应所述复位而重绘它们的窗口或者表示。在方框416中,客户图形驱动程序和客户堆栈可以恢复正常操作。
[0035]虽然图3、4A和/或4B的图示出的流程包括一系列的过程,但在一些实施例中的流程可以使用不同的顺序执行图示出的过程。在另一个实施例中,图3、4A和/或4B的流程可以支持动态迁移和/或saveVM/loadVM类型的迁移。在另一个实施例中,图3、4A和/或4B的流程可以不需要客户OS和图形设备驱动程序模型的热插/拔能力。虽然图3、4A和/或4B的流程可以用于一个或多个基础图形设备/功能间的迁移,但在一些实施例中,该流程可以用于实现VMM中的任何其他设备/功能的即插即用支持。一些实施例可以展示组合的虚拟图形设备,其随着基础设备的变化而改变其行为以实现VMM中的图形设备即插即用支持。在一个实施例中,组合的虚拟图形设备可以展示对于所有VMM实现是标准化的接口,并且客户OS图形设备驱动程序可以独立于任何特定的VMM实现。在另一个实施例中,由VMM实现的组合的虚拟图形设备可以涵盖一个或多个以硬件、软件、固件和/或它们的组合为基础的基础设备,并且当这些基础设备变为可用或者不可用时可以在它们之间切换。在另一个实施例中,组合的虚拟图形设备可以展示对所有VMM实现是标准的PCIe接口。在又一个实施例中,客户OS中的包装器插件图形设备驱动程序结构可以在基础设备改变其行为时切换到新的插件模块。包装器和插件之间的接口可以对每个客户OS类型来说都是标准的,并且可以不依赖于任何VMM实现。在组合的虚拟图形设备中,一个或多个基础图形设备/功能可以被组合到单个PCIe设备中。组合的虚拟图形设备可以由VMM实现,但是可以向客户OS展示对所有VMM实现都是标准的PCIe接口。在客户OS中的包装器插件图形设备驱动程序中,可以检测到基础PCIe图形设备中的行为改变,并且可以切换到合适的插件。
[0036]虽然已经参照实施例描述了本发明的某些特征,但该描述并不意图被解释为限制意义。对本发明所属领域的技术人员来说显而易见的是,对本发明实施例的各种修改以及本发明的其他实施例都被视为落在本发明的精神和范围之内。
【权利要求】
1.一种系统,包括: 平台硬件; 客户虚拟机;以及 虚拟机监视器,用于将以下中的一个分配给所述客户虚拟机:在所述虚拟机监视器中仿真的虚拟设备和在所述平台硬件中的物理设备的虚拟功能,并且将组合的虚拟设备通过分配的设备展示给所述客户虚拟机。
2.如权利要求1所述的系统,进一步包括: 客户驱动程序,用于检测所述仿真虚拟设备和所述虚拟功能中的哪一个对所述组合的虚拟设备来说是活跃的,并且用于选择与活跃的设备匹配的插件。
3.如权利要求2所述的系统,进一步包括: 用于向所述客户驱动程序通知虚拟机迁移的虚拟机工具模块。
4.如权利要求1所述的系统,其中,所述虚拟机监视器进一步独立于分配的设备接口将用于所述组合的虚拟机的配置空间展示给所述客户虚拟机。
5.如权利要求4所述的系统,其中,所述虚拟机监视器进一步维护从所述配置空间到所述活跃的设备的映射。
6.如权利要求4所述的系统,其中,所述虚拟机监视器进一步在所述配置空间中提供一个或多个字段来涵盖所述仿真虚拟设备和所述虚拟功能。
7.如权利要求1所述的`系统,其中,所述仿真虚拟设备包括用于实现仿真图形处理能力的仿真虚拟图形设备。
8.如权利要求2所述的系统,其中,所述客户驱动程序包括包装器插件结构,其中,所述包装器用于确定与所述活跃的设备相应的插件。
9.如权利要求1所述的系统,其中,所述虚拟机监视器进一步在所述组合的虚拟设备中的所述仿真虚拟设备和所述物理设备的所述虚拟功能之间切换,而无须在所述客户虚拟机的客户操作系统中触发即插即用事件。
10.一种方法,包括: 通过仿真虚拟图形设备和主机中的物理图形设备的虚拟功能中的一个提供组合的虚拟图形设备;并且 向客户展示所述组合的虚拟图形设备。
11.如权利要求10所述的方法,进一步包括: 在所述仿真虚拟图形设备和虚拟功能设备之间切换,而无须从所述客户的客户操作系统中热插/拔。
12.如权利要求10所述的方法,进一步包括: 展示用于所述组合的虚拟图形设备的PCIe配置空间,其与所述仿真虚拟图形设备和所述虚拟功能中的哪个对于所述组合的虚拟图形设备而言是活跃的无关。
13.如权利要求12所述的方法,其中,所述PCIe配置空间包括一个或多个字段,所述字段映射到所述仿真虚拟图形设备和所述虚拟功能中活跃的那一个。
14.如权利要求10所述的方法,进一步包括: 响应于在所述仿真虚拟图形设备和所述虚拟功能之间的切换,确定与切换到的设备相应的插件驱动程序;并且对所述仿真虚拟图形设备和所述虚拟功能中切换到的那一个进行初始化。
15.如权利要求10所述的方法,进一步包括: 执行在所述组合的虚拟设备中所述仿真虚拟图形设备和所述虚拟功能之间的切换,无须在所述客户虚拟机的客户操作系统中触发即插即用事件。
16.一种包含指令的机器可读介质,当被处理系统执行时,所述指令致使所述处理系统用于: 将主机中的物理图形设备的虚拟功能和仿真虚拟图形设备中的一个分配给客户;并且 向所述客户展示PCIe图形设备的虚拟模型,所述PCIe设备通过分配的设备而具有图形能力。
17.如权利要求16所述的机器可读介质,进一步包括多个指令,响应于被执行,所述指令会使计算设备用于: 检测所述虚拟功能和所述仿真虚拟图形设备中的哪一个对于所述虚拟PCIe图形设备来说是活跃的;并且 选择与检测出的活跃设备匹配的插件。
18.如权利要求16所述的机器可读介质,进一步包括多个指令,响应于被执行,所述指令会使计算设备用于: 向所述客户展示所述虚拟PCIe图形设备的PCIe配置空间,其中,所述PCIe配置空间独立于所述分配的设备来涵盖所述虚拟功能和所述仿真虚拟图形设备的配置。`
19.如权利要求16所述的机器可读介质,进一步包括多个指令,响应于被执行,所述指令会使计算设备用于: 响应于所述客户中的虚拟机迁移,在所述虚拟PCIe图形设备上执行PCIe功能级别的复位来忽略对所述虚拟功能和所述仿真虚拟图形设备的访问。
20.如权利要求19所述的机器可读介质,进一步包括多个指令,响应于被执行,所述指令会使计算设备用于: 基于所述迁移,在作为所述虚拟PCIe图形设备基础的所述虚拟功能和所述物理图形设备之间进行切换。
【文档编号】G06F9/06GK103608769SQ201180071680
【公开日】2014年2月26日 申请日期:2011年11月23日 优先权日:2011年4月18日
【发明者】S·岑, R·斯里尼瓦桑, D·J·考珀思韦特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1