用于对来宾虚拟机的硬件资源进行虚拟化的专用虚拟机的制作方法_2

文档序号:8417524阅读:来源:国知局
每一个来宾VM 18包括操作系统(0/S) 24和一个或多个应用程序(APPL) 26。在一个实施例 中,操作系统24可以是在个人计算机中使用的Windows?操作系统。应当注意的是,不同 的来宾VM 18可以运行不同类型的操作系统24。
[0021] 操作系统24被示出为包括图形"伪驱动器"(PSEUD0 DRV) 28,其经由虚拟机间(VM 间)通信信道30可操作地耦合到渲染VM 16。使用来宾VM 18中的第一 VM间(V到V)信 道接口(V-V) 31和渲染VM 16中的第二VM间信道接口 33来实现VM间通信信道30 (下面 分别将它们称作"客户端型"和"服务器型")。在这一方面,操作系统24被专门修改以在诸 如图1中所示的虚拟化计算系统等的虚拟化计算系统中运行。在非虚拟化设置中,操作系 统通常包括图形驱动器,该图形驱动器可操作地直接耦合到诸如GPU等的图形处理电路, 从而以相对低的等级控制图形操作的执行(例如,对参数和操作码进行编程、对操作的状 态和完成进行监控等)。相比之下,伪驱动器28主要用于经由VM间通信信道30在应用程 序26与渲染VM 16之间仅传递图形命令、响应和数据(统称为"图形信息")。通过渲染VM 16和GPU 20来对图形命令进行实际处理,如下所述。
[0022] 渲染VM 16是向来宾VM 18提供图形处理能力的专用VM。向渲染VM 16指派对 GPU 20的直接"直通"访问32,这意味着本地驱动器(NTV DRV) 34如在传统的非虚拟化设 置中一样控制GPU 20并且与GPU 20直接进行通信,而无需管理程序12提供虚拟化。由于 渲染VM 16的特殊目的的属性,渲染VM 16采用没有来宾VM 18的操作系统26那么实用的 操作系统36。例如,操作系统36可能不能支持传统的文件系统或丰富的用户界面,并且操 作系统36可能仅支持有限的存储并且提供很少或不提供用户扩展性。在一个实施例中,操 作系统36可以是所谓的"嵌入式"或"实时"操作系统,用于各种专用计算设备的类型包括 本领域中众所周知的蜂窝电话。在一个实施例中,操作系统36可以是嵌入式操作系统的 Windows嵌入式簇的成员。
[0023] 操作系统36被示出为包括VM间信道接口 33,每一个VM间信道接口 33可操作地 耦合到相应的VM间通信信道30和本地驱动器34。在操作中,每一个VM间信道接口 33与 其相应的VM间信道接口 31互补地操作,从而实现经由VM间通信信道30在本地驱动器34 与应用程序26之间传递图形信息。
[0024] 在图1中,管理程序12和VM 14-18被示出为与硬件10分离,这是为了描述的目 的的典型且有用的描绘。应当理解的是,这些软件实现组件在其运行期间实际上包括主处 理电路。因此,当执行管理程序的指令时,管理程序12例如包括硬件10的主处理电路。类 似的描述可应用于VM 14-18。
[0025] 图1的布置可能特别适合于与具有图形密集工作量的应用程序26 (例如,视频游 戏)一起使用。在该情况下,它可以是个人设备,例如,台式机、控制台、或移动平台。但是, 布置也可以用于服务器型计算设备,例如,针对在服务器上执行的应用程序提供渲染图形 的远程显示的服务器。
[0026] 在现有系统中,已知的是在控制VM内提供图形驱动器以向来宾VM提供对图形硬 件的共享访问(例如,使用与VM间信道30类似的VM间信道)。这种控制VM可以采用Linux 操作系统,并且利用该Linux操作系统,开源图形驱动器根据所谓的OpenGL应用编程界面 (API)操作。相比之下,来宾VM可以使用其他操作系统,例如,Windows?簇的可以使用 称作DirectX的专有簇的不同图形API的操作系统,该图形API的一个版本被称作Direct 3D或"D3D",并且用于三维图形渲染。在这些类型的系统中,必须采用称作Wine的转换程 序以在D3D与OpenGL API之间转换。因为并非D3D提供的所有图形功能都在OpenGL中可 用,因此这些系统中的图形性能通常低于针对图形硬件使用本地D3D驱动器的非虚拟化系 统。
[0027] 图1的结构的优点之一是能够针对GPU 20使用本地驱动器34(例如,D3D驱动 器),然而,驱动器可能不与控制VM 14的操作系统(例如,Linux)兼容。本地驱动器34被 置于专用渲染VM 16中,该专用渲染VM 16使用兼容的操作系统(例如,Windows),并且控 制VM 14建立VM间通信信道30以使得能够在来宾VM 18与共享的本地驱动器34之间传递 图形信息(例如,D3D功能调用和数据)。还向本地驱动器34提供对GPU 20的直通访问, 如上所述。使用基于Linux的控制VM 14不会影响图形性能,这是因为它不像使用OpenGL 和Wine的现有系统中一样直接参与图形处理。
[0028] 图2 (a)至图2 (c)从用户的角度提供了对计算机系统的操作的简化描述。具体地, 其中的每一个表示图形显示设备(例如,LCD显示器)在操作期间的屏幕。图2(a)示出了 用于由控制VM 14执行的系统控制程序的形成用户界面的一部分的控制屏幕40。屏幕40 尤其由用户使用以选择来宾VM 18中的哪一个是"聚焦的",即,具有出现在显示设备上的 图形输出并且接受来自用户输入设备(键盘、鼠标等)的输入。控制屏幕40可以具有区域 42,诸如图标、下拉菜单等的控制特征可以位于该区域42中和/或可以从该区域42激活诸 如图标、下拉菜单等的控制特征。它还可以包括表示正在运行的VM (在该情况下,针对两个 来宾VM 18-1和18-2)的相应图标44 (44-1和44-2)。用户通过激活相应的图标44来选择 聚焦(focus)。如图所示,激活图标44-1使来宾VM 18-1的屏幕46-1被显示(图2(b)), 而激活图标44-2使来宾VM 18-2的屏幕46-2被显示(图2(c))。在所示的示例中,屏幕 46-1包括位于来宾VM 18-1的桌面背景上的两个窗口 48、50,而屏幕46-2显示了针对来宾 VM 18-2的一个大窗口 52。通过在图2(b)和图2(c)的状态中的任意一个下的显不,可以 仅使用键盘(例如,通过表示系统级控制命令的一系列键)或使用鼠标(通过使鼠标来到 屏幕边缘以使控制屏幕或工具栏出现)来完成用于改变聚焦的用户命令。
[0029] 图3示出了被垂直布置以反映相对于图1的应用程序26和GPU20的功能位置的 参与图形处理的组件集。在上部位置,伪驱动器28面对应用26。每一个伪驱动器28与客 户端型VM间接口 31进行通信,客户端型VM间接口 31进而经由相应的VM间通信信道30 与服务器型VM间接口 33进行通信。每一个服务器型VM间接口 33与控制GPU 20的操作 的本地驱动器34进行通信。
[0030] 图4是示出了图1的计算机的相关操作(具体地,渲染VM 16的图形相关操作) 的简化流程图。在60,渲染VM 16经由VM间通信信道30从来宾VM 18的应用程序26接收 图形信息。图形信息符合图形处理单元20支持的图形API,例如,上述D3D图形API。如上 所述,渲染VM 16采用针对VM间通信信道30的服务器型VM间接口 33。使用VM间通信信 道30的传输消息来发送图形信息。
[0031] 在62,服务器型VM间接口 33向本地驱动器34传递接收的图形信息。
[0032] 在64,本地驱动器34使用接收的图形信息控制图形处理单元20的操作以执行图 形渲染操作。该控制可以具有以下形式:对参数和操作码进行编程
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1