当前位置: 首页 > 专利查询>辉达公司专利>正文

半虚拟化的虚拟GPU制造技术

技术编号:8562880 阅读:404 留言:0更新日期:2013-04-11 04:31
本发明专利技术的一个实施例提出一种计算机系统,包括初级处理单元,耦合到初级处理单元并且经由多个通道可访问的二级处理单元,在初级处理单元上执行的多个客户虚拟机,其中每个客户虚拟机包括与二级处理单元相关联的驱动程序,以及特权虚拟机,其在初级处理单元上执行并配置为将包括在多个通道中的不同通道组分配给包括在多个客户虚拟机中的每个驱动程序,其中分配给包括在第一客户虚拟机中的第一驱动程序的第一通道组使第一驱动程序能够访问二级处理单元并且通过直接访问二级处理单元通道而不与包括在多个客户虚拟机中的任意其他驱动程序相冲突且具有最小的性能开销。

【技术实现步骤摘要】
半虚拟化的虚拟GPU
本专利技术总地涉及虚拟化计算机架构,并且,更具体地,涉及一种半虚拟化的虚拟 GPU。
技术介绍
计算机虚拟化是一种涉及将物理计算机器平台封装到在硬件计算平台或者“主 机”上在虚拟化软件的控制下执行的虚拟机中的技术。虚拟机既具有虚拟系统硬件又具有 客户操作系统软件。在典型的虚拟化系统中,系统中所包括的任何物理硬件资源经由仿真 模块呈现给虚拟机。仿真模块允许设计用于单个用途的设备功能性扩至允许多个用途的模 型。例如,为了虚拟机与硬件输入设备交互,诸如鼠标,需要提供呈现鼠标操作的软件仿真 模块。虚拟机然后经由软件仿真模块与鼠标交互。对于使用通用接口和低性能需要的简单设备,诸如鼠标或者键盘,软件仿真模块 是有效的。然而,在虚拟化系统中经由软件仿真模型访问具有更综合接口和更高性能需要 的更复杂的设备,诸如图形处理单元(GPU),产生两个主要的问题。第一,因为GPU是高度繁 复的处理单元,提供综合的而且呈现GPU所提供的大范围的功能性的软件仿真模块是非常 困难的任务。因此,当前缺乏试图呈现GPU的所有功能性的软件仿真模块,以致就算真的存 在,消耗GPU的、运行在虚拟机中的应用也运行不佳。第二,因为GPU接口更复杂并且性能 严格,提取的低效率经常生成瓶颈和低效率。一个用于上面描述的低效率的解决方案是为执行在主机上的每个虚拟机提供独 立的GPU。但是,这样的解决方案实现起来非常昂贵并且不可扩展。因此,这样的解决方案 不能在各种需要从虚拟机访问GPU的用户中有效地实现。因此,本领域中需要一种用于在多个顾客或者虚拟机中有效地共享单个GPU而没 有必要扩展硬件的系统和方法。
技术实现思路
本专利技术的一个实施例提出一种计算机系统,包括初级处理单元,耦合到初级处理 单元并且经由多个可指派接口可访问的二级处理单元,在初级处理单元上执行的多个客户 虚拟机,其中每个客户虚拟机包括与二级处理单元相关联的驱动程序,以及特权虚拟机,其 在初级处理单元上执行并配置为将包括在多个可指派接口中的不同可指派接口组分配给 包括在多个客户虚拟机中的每个驱动程序,其中分配给包括在第一客户虚拟机中的第一驱 动程序的第一可指派接口组使第一驱动程序能够访问二级处理单元而不与包括在多个客 户虚拟机中的任意其他驱动程序相冲突。这里所描述的技术的一个优点是在客户虚拟机中执行的客户GPU驱动程序能经 由所分配的一组接口直接利用GPU的处理能力的至少一部分。因为对于建立和控制对客户 虚拟机的访问,虚拟化层执行最小干预,所以这样的直接访问提升了多客户虚拟机竞争访 问GPU的系统的性能。附图说明因此,可以详细地理解本专利技术的上述特征,并且可以参考实施例得到对上面所简 要概括的本专利技术的更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附 图仅用于示意本专利技术的典型实施例,由于本专利技术可以具有其他等效的实施例,因此附图不 应被认为是对本专利技术范围的限制。图1是示意出配置为实现本专利技术的一个或多个方面的计算机系统的框图2是示意出根据本专利技术的一个实施例的在图1中的计算机系统中执行的虚拟化 计算环境的框图3是根据本专利技术的一个实施例的图2的特权VM和客户VM的更详细的视图4是根据本专利技术的一个实施例的图2的特权VM和客户VM与图1的GPU之间的 交互的概念上的示意图;以及图5A和图5B是根据本专利技术的一个实施例的用于使客户VM能够以半虚拟化的方 式访问GPU的方法步骤的流程图。具体实施方式在下面的描述中,将阐述大量的细节以提供对本专利技术更为彻底的理解。然而,对于 本领域技术人员来说显而易见地是,缺少这些具体细节的一个或多个也可以实践本专利技术。 在其他实例中,没有描述公知的特征,以免对本专利技术造成混淆。图1是示意出配置为实现本专利技术一个或多个方面的计算机系统100的框图。计算 机系统100包括中央处理器(CPU) 102以及经由互连路径进行通信的系统存储器104,该互 连路径可包括存储器桥105。存储器桥105例如可以是北桥芯片,其经由总线或者其它的通 信路径106 (例如超传输链路)与I/O (输入/输出)桥107相连。I/O桥107例如可以是 南桥芯片,其从一个或多个用户输入设备108 (例如,键盘,鼠标)接收用户输入,并且将该输 入经由路径106和存储器桥105转发给CPU 102。GPU 112经由总线或者其它的通信路径 113 (例如,PCI Express,加速图形端口,或者超传输链路)耦合至存储器桥105 ;在一个实 施例中,GPU 112为图形子系统,其向显示设备110 (例如,常规的基于CRT或者IXD的监视 器)递送像素。系统磁盘114也连接到I/O桥107。开关116提供了 I/O桥107与诸如网 络适配器118和不同的插卡(add-1n card) 120和121的其他组件之间的连接。其它组件 (未明确的示出),包括USB或者其它端口连接、⑶驱动器、DVD驱动器、胶片录制设备等等, 其也可以连接到I/O桥107。图1中将各组件互连的通信路径可以使用任何适宜的协议来 实现,诸如PCI (外围组件互连)、PC1-Express、AGP (加速图形端口)、超传输或者任何其它 总线或者点对点通信协议,并且如本领域中公知的,不同设备之间的连接可使用不同协议。在一个实施例中,GPU 112包含被优化用于图形和视频处理的电路,例如包括视频 输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,GPU 112包含被优化用于通 用目的处理的电路,同时保留底层(underlying)的计算架构,本文将进行更为详细的描述。 在另一个实施例中,GPU 112可以与一个或多个其他系统元件集成,诸如存储器桥105、CPU 102以及I/O桥107,以形成片上系统(SoC)。应该理解,本文所示系统是示例性的,可以对其进行变形和修改。可根据需要修改连接拓扑,包括桥的数目和布置、CPU 102的数目以及GPU112的数目。例如,在一些实施例中,系统存储器104直接连接到CPU 102而不是通过桥,其他设备经由存储器桥105以及 CPU 102与系统存储器104通信。在其他替代拓扑中,GPU 112连接到I/O桥107或直接连接到CPU102,而不是连接到存储器桥105。在又一些实施例中,I/O桥107和存储器桥105 可被集成到单个芯片中。大量的实施例可包括两个或更多个CPU102以及两个或更多个GPU 112。本文所示的特定组件是可选的;例如,可以支持任意数目的插卡或外围设备。在一些实施例中,开关116被去掉,网络适配器118和插卡120、121直接连接到I/O桥107。在一个实施例中,GPU 112包括一个或多个并行处理单元(PPU)(未示出),其中每个均耦合至本地并行处理(PP)存储器(也未示出)。通常,GPU包括U个PPU,其中U彡I。 PPU和并行处理存储器可使用一个或多个集成电路设备来实现,该集成电路设备诸如可编程处理器、专用集成电路(ASIC)或存储器设备,或以任何其他技术上可行的方式来实现。在一些实施例中,GPU 112中的一些或所有PI3U是具有渲染管线的图形处理器,其可以配置为执行与下述各项相关的各种任务由CPU 102和/或系统存储器104经由存储器桥本文档来自技高网
...

【技术保护点】
一种计算机系统,包括:初级处理单元;二级处理单元,其耦合到所述初级处理单元并且经由多个通道可访问;多个客户虚拟机,其在所述初级处理单元上执行,其中每个客户虚拟机包括与所述二级处理单元相关联的驱动程序;以及特权虚拟机,其在所述初级处理单元上执行并且配置为将包括在所述多个通道中的不同通道组分配给包括在所述多个客户虚拟机中的每个所述驱动程序,其中分配给包括在第一客户虚拟机中的第一驱动程序的第一通道组使所述第一驱动程序能够访问所述二级处理单元而不与包括在所述多个客户虚拟机中的任意其他驱动程序相冲突并且免受其影响。

【技术特征摘要】
2011.10.10 US 13/270,0821.一种计算机系统,包括 初级处理单元; 二级处理单元,其耦合到所述初级处理单元并且经由多个通道可访问; 多个客户虚拟机,其在所述初级处理单元上执行,其中每个客户虚拟机包括与所述二级处理单元相关联的驱动程序;以及 特权虚拟机,其在所述初级处理单元上执行并且配置为将包括在所述多个通道中的不同通道组分配给包括在所述多个客户虚拟机中的每个所述驱动程序,其中分配给包括在第一客户虚拟机中的第一驱动程序的第一通道组使所述第一驱动程序能够访问所述二级处理单元而不与包括在所述多个客户虚拟机中的任意其他驱动程序相冲突并且免受其影响。2.根据权利要求1所述的计算机系统,其中每个客户虚拟机包括配置为经由远程过程调用与所述特权虚拟机通信的代理资源管理器。3.根据权利要求2所述的计算机系统,其中所述第一客户虚拟机包括第一代理资源管理器,其配置为 发送请求到所述特权虚拟机,以为所述第一驱动程序建立对所述二级处理单元的访问,以及 从所述特权虚拟机接收所述第一通道组已经分配给所述第一驱动程序的通信, 其中所述特权虚拟机将与所述第一通道组相关联的一个或多个控制寄存器映射到所述第一驱动程序可访问的存储空间的一部分,其中每个控制寄存器与所述第一通道组中的不同通道相关联,并且所述第一通道组中的每个通道基于与所述通道相关联的关联控制寄存器的内容来用命令填充。4.根据权利要求3所述的计算机系统,其中所述第一驱动程序通过将一个或多个命令写到命...

【专利技术属性】
技术研发人员:威廉·J·厄尔凯文·J·克兰楚施萨蒂亚·基兰·保普瑞克里斯托弗·W·约翰逊
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1