CN106959881B - 发送数据的方法和装置 - Google Patents

发送数据的方法和装置 Download PDF

Info

Publication number
CN106959881B
CN106959881B CN201610014018.6A CN201610014018A CN106959881B CN 106959881 B CN106959881 B CN 106959881B CN 201610014018 A CN201610014018 A CN 201610014018A CN 106959881 B CN106959881 B CN 106959881B
Authority
CN
China
Prior art keywords
memory
host
data
physical address
virtual machine
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.)
Active
Application number
CN201610014018.6A
Other languages
English (en)
Other versions
CN106959881A (zh
Inventor
董兴水
杨继尚
钟国城
程宝传
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610014018.6A priority Critical patent/CN106959881B/zh
Publication of CN106959881A publication Critical patent/CN106959881A/zh
Application granted granted Critical
Publication of CN106959881B publication Critical patent/CN106959881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本发明实施例提供了一种发送数据的方法和装置。发送数据主机获取图像处理器GPU的显卡内存在虚拟机的内存中的第一物理地址,根据第一物理地址确定GPU的显卡内存在主机的CPU的内存中的第二物理地址,并根据第二物理地址读取显卡内存中存储的需要发送给客户端的第一数据,然后向客户端发送第一数据。其中,GPU集成在网关的中央处理器CPU中,GPU可以被分配给主机上运行的虚拟机。这样可以避免在虚拟机内部增加额外的程序,从而能够简化发送数据的方法。

Description

发送数据的方法和装置
技术领域
本发明涉及通信领域,并且更具体地,涉及一种发送数据的方法和装置。
背景技术
在通信系统中,通信设备之间可以进行数据传输。例如,主机可以通过服务器虚拟化生成大量的独立的虚拟机(virtual machine,VM),并将其数据通过专有的虚拟桌面协议发送给客户端,以在客户端的终端设备显示所述虚拟机的桌面操作系统(即虚拟桌面),实现主机和需要显示虚拟机的虚拟桌面的客户端的终端设备之间的数据传输。
在主机集成虚拟化、网络功能虚拟化(network-function virtualization,NFV)等场景中,现有技术中主机可以将图形处理器(graphics processing unit,GPU)分配给虚拟机来实现主机和客户端之间的数据传输。例如,在虚拟机上预先安装截获数据的后台服务程序,通过虚拟机获取传输所需的数据,并在主机上增加外设扩展设备,将从虚拟机获取的数据传输至主机,主机获取数据后便可以向客户端发送数据,这样便可以实现主机和客户端之间的数据传输。为了实现上述方案,还需要为外设扩展设备增加驱动程序,将虚拟机获取的数据通过该驱动程序的读写接口发送给主机。可见,这种数据传输的方法需要在主机上增加一个外设扩展设备,还需要在虚拟机上安装外设扩展设备的驱动程序和后台服务程序。在云网关等应用场景中,虚拟机的操作系统大多不再是定制的桌面操作系统,虚拟机的操作系统不唯一,操作系统的模式也不固定。这样,不同的虚拟机所需的驱动程序和后台服务程序也不尽相同,这种发送数据的方法需要对虚拟机内部进行改动,实现起来非常复杂。
发明内容
本发明实施例提供一种发送数据的方法和装置,可以避免在虚拟机中增加额外的程序,能够简化发送数据的方法。
第一方面,提供了发送数据的方法,所述方法应用于主机中,所述主机的图像处理器GPU集成在所述主机的中央处理器CPU中,所述GPU被分配给所述主机上运行的虚拟机,所述方法包括:所述主机获取所述GPU的显卡内存在所述虚拟机的内存中的第一物理地址,所述第一物理地址用于指示所述GPU的显卡内存在虚拟机的内存中的位置;所述主机根据所述第一物理地址确定所述GPU的显卡内存在所述主机的CPU的内存中的第二物理地址,所述第二物理地址用于指示所述GPU的显卡内存在所述主机的CPU的内存中的位置;所述主机根据所述第二物理地址读取所述显卡内存中存储的需要发送给客户端的第一数据;所述主机向所述客户端发送所述第一数据。
本发明实施例在将GPU分配给虚拟机后,主机可以根据GPU的显卡内存在虚拟机内存中的地址得到显卡内存在主机内存中的地址,并根据在主机内存中的地址读取并向客户端发送数据,这样可以避免在虚拟机内部增加额外的程序,从而能够简化发送数据的方法。
结合第一方面,在第一方面的一种实现方式中,所述主机获取所述GPU的显卡内存在所述虚拟机的内存中的第一物理地址包括:所述主机读取所述主机的操作系统的文件,得到外设组件互连标准PCI配置空间的寄存器的指示信息,其中,所述指示信息用于指示所述寄存器的地址;所述主机根据所述指示信息读取所述寄存器,得到所述第一物理地址。
本发明实施例中获取显卡内存在虚拟机的内存中的地址,并读取和发送数据都可以在主机上执行,这里的主机可以为网关,也可以为网关的主机。这样,在主机和客户端发送数据时,可以无需在虚拟机内部增加驱动程序和后台服务程序,能够减少增加程序带来的复杂度,还可以避免在主机的集成计算机应用程序(application,APP)的能力有限时,无法实现主机和客户端的数据传输。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述方法还包括:所述主机读取所述CPU的内存,得到所述第一物理地址和所述第二物理地址之间的映射关系;其中,所述主机根据所述第一物理地址确定第二物理地址包括:所述主机根据所述第一物理地址和所述映射关系确定所述第二物理地址。
本发明实施例中主机可以通过多种不同的方法得到显卡内存在主机的CPU的内存中位置。例如,主机可以根据显卡内存在虚拟机中的物理地址,以及显卡内存在虚拟机与主机的物理地址的映射关系,得到显卡内存在主机的CPU的内存中物理地址。
本发明实施例中,GPU集成在主机的中央处理器CPU,GPU可以共享CPU的内存。GPU分配给虚拟机,那么GPU的显卡内存可以用于存储虚拟机的相关信息。这样,主机可以通过读取主机操作系统的文件,得到的信息可以为虚拟机的信息。例如,外设组件互连标准(Peripheral Component Interconnection,PCI)配置空间中有一系列的寄存器,主机可以通过读取PCI配置空间中的寄存器得到显卡内存在虚拟机内存的物理地址。
本发明实施例中主机读取CPU的内存可以通过主机和内存之间的内存总线进行数据的读写操作。CPU内存中可以保存映射关系的对应表,主机可以通过查询表格得到与第一物理地址对应的第二物理地址。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述方法还包括:所述主机将所述CPU的内存的预留地址空间分配给所述虚拟机,作为所述虚拟机的内存;所述主机根据所述虚拟机的内存在所述CPU的内存中的位置和所述第一物理地址修改所述映射关系;所述主机将所述映射关系保存在所述CPU的内存中。
本发明实施例中,在获取显卡内存在虚拟机的物理地址后,要通过显卡内存在主机的物理地址和显卡内存在虚拟机的物理地址之间的映射关系,得到显卡内存在主机的物理地址,首先要在系统启动时为虚拟机在CPU的内存中预留出一块地址空间,并根据该地址空间修改CPU内核中显卡内存在虚拟机和主机二者的物理地址之间的映射关系。这样,在后续系统运行时,主机可以根据映射关系和已获取的显卡内存在虚拟机的物理地址,得到显卡内存在主机的物理地址,从而主机可以根据该地址读取数据等。另外,当系统出现问题时,也可以通过系统引导盘来引导系统,找出故障并排除故障。这时,也可以在系统引导盘中引导主机为虚拟机预留CPU内存,并修改映射关系。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述主机向所述客户端发送所述第一数据包括:所述主机对所述显卡内存进行分片,得到多个内存分片,每个内存分片存储所述第一数据的一个分片数据;
所述主机获取一个内存分片,读取所述内存分片中的分片数据,计算所述分片数据的校验和;所述主机比较所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和是否相同;当所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和不相同时,所述主机向所述客户端发送更新消息,所述更新消息中携带所述分片数据或所述分片数据与所述前一分片数据的变化值。
在本发明的一个实施例中,当第一数据的格式符合客户端可识别的数据格式时,主机可以直接向客户端发送从GPU的显卡内存在主机的物理地址读取的第一数据。当第一数据的格式不符合客户端可识别的数据格式时,主机可以在发送数据之前对第一数据进行扫描和格式转化,并向客户端发送转化后的数据。
本发明实施例可以用于多种网络协议,在本发明的一个实施例中,以虚拟网络计算机(Virtual Network Computing,VNC)协议为例进行示例性说明。例如,网关可以向客户端发送VNC图像缓存更新消息,其中,VNC图像缓存更新消息包括第一数据或进行格式转化后的数据。
第二方面,提供了用于发送数据的的装置,所述装置为主机,所述主机的图像处理器GPU集成在所述主机的中央处理器CPU中,所述GPU被分配给所述主机上运行的虚拟机,所述装置包括:第一获取单元,用于获取所述GPU的显卡内存在虚拟机的内存中的第一物理地址,所述第一物理地址用于指示所述GPU的显卡内存在所述虚拟机的内存中的位置;确定单元,用于根据所述第一获取单元获取的所述第一物理地址确定所述GPU的显卡内存在所述主机的CPU的内存中的第二物理地址,所述第二物理地址用于指示所述GPU的显卡内存在所述主机的CPU的内存中的位置;读取单元,用于根据所述确定单元确定的所述第二物理地址读取所述显卡内存中存储的需要发送给客户端的第一数据;发送单元,用于向所述客户端发送所述第一数据。
结合第二方面,在第二方面的一种实现方式中,所述第一获取单元具体用于读取所述主机的操作系统的文件,得到外设组件互连标准PCI配置空间的寄存器的指示信息,并根据所述指示信息读取所述寄存器得到所述第一物理地址,其中,所述指示信息用于指示所述寄存器的地址。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述装置还包括:第二获取单元,用于读取所述CPU的内存,得到所述第一物理地址和所述第二物理地址之间的映射关系;其中,所述确定单元具体用于根据所述第一物理地址和所述映射关系确定所述第二物理地址。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述装置还包括:分配单元,用于将所述CPU的内存的预留地址空间分配给虚拟机,作为所述虚拟机的内存;修改单元,用于根据所述虚拟机的内存在所述CPU的内存中的位置和所述第一物理地址修改所述映射关系;保存单元,用于将所述映射关系保存在所述CPU的内存中。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述发送单元具体用于所述显卡内存进行分片,得到多个内存分片,每个内存分片存储所述第一数据的一个分片数据;获取一个内存分片,读取所述内存分片中的分片数据,计算所述分片数据的校验和;比较所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和是否相同;当所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和不相同时,向所述客户端发送更新消息,所述更新消息中携带所述分片数据或所述分片数据与所述前一分片数据的变化值。
本发明实施例中用于发送数据的装置中各个设备和/或器件的功能可以参照第一方面发送数据的方法的步骤,为避免重复,在此不再赘述。
本发明实施例中用于发送数据的装置中各个技术方案的有益效果也可以参照第一方面发送数据的方法的有益效果,为避免重复,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1是本发明一个实施例的通信系统的结构示意图。
图2是本发明一个实施例的发送数据的方法的示意性流程图。
图3是本发明另一实施例的发送数据的方法的示意性流程图。
图4是本发明一个实施例的发送数据的装置的框图。
图5是本发明另一实施例的发送数据的装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
在对实施例的技术方案进行描述之前,首先对本申请中涉及到的两个基本概念“主机”和“虚拟机”做简单的介绍。
主机(host)作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,host可能是虚拟机监控器(virtual machinemonitor,VMM)。或者,有时VMM和1个特权虚拟机配合,两者结合组成host。其中,虚拟硬件平台向其上运行的各个虚拟机提供各种硬件资源,如提供虚拟CPU、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应host的一个文件或者一个逻辑块设备。虚拟机则运行在host为其准备的虚拟硬件平台上,host上可以运行一个或多个虚拟机。
虚拟机指通过虚拟机软件在一台物理计算机上模拟出的一台或者多台虚拟的计算机。对于在虚拟机中运行的应用程序而言,这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。
图1是本发明一个实施例的通信系统的结构示意图。
图1的通信系统包括网络101、控制器102、主机103和客户端104。网络101可以为广域网(wide area network,WAN)、城域网(metropolitan-area network,MAN)、局域网(local area network,LAN)、因特网(Internet)等网络。
本发明实施例中的执行主体主机可以为网关,也可以为服务器等。在本发明的一个实施例中,以主机103为网关(Gateway)进行示例性说明,网关可以认为是一个网络连接到另一个网络的“关口”。网关又称网间连接器、协议转换器。默认网关在网络层上可以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络的互连。网关既可以用于广域网互连,也可以用于局域网互连。网关可以为充当转换重任的计算机系统或设备。网关可以使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,此时网关可以认为是一个翻译器。本发明实施例中的网关可以为路由器、防火墙、网络交换机等,网关可以用于车辆、商业、小区楼宇等。
网关可以包括主机和虚拟机,本发明实施例的全部流程可以在网关的主机上执行。
控制器102可以用于管理主机103(例如,主机为网关),主机的数量可以为多个,控制器可以管理海量的主机。控制器102可以部署在网络101所在的公有云中,并通过网络来连接各种被管理的网关。控制器102还可以支持客户端104的管理员对主机103进行远程管理访问。
在现有技术中,可以通过在CPU上集成物理GPU,将GPU分配给主机上运行的虚拟机使用,但是,这种方法需要为虚拟机添加额外的驱动程序和后台服务程序,这样需要改动虚拟机内部的程序,实现起来非常复杂。
本发明实施例的发送数据的方法不再需要对虚拟机内部程序进行改动,而仅通过对主机中的底层软件进行改动,便可以实现主机和客户端之间的数据传输,这样可以减少在虚拟机上集成额外程序带来的复杂性,从而能够简化数据传输的过程。
本发明实施例中,GPU被分配给虚拟机即为GPU透传(pass through)主机。透传指的是将物理上连接到主机并由主机操作系统管理的显卡从主机“解绑”,“挂接”到虚拟机上,由虚拟机操作系统管理。这样,显卡就好像在物理上是连接到虚拟机的。
本发明实施例的发送数据的方法可以用于云计算、桌面云、云网关等应用场景中,网关向客户端发送数据可以在客户端的终端设备显示包括所传输的数据的虚拟桌面。举个例子,在云网关的应用场景中,当网关的主机的操作系统为Linux时,由于音频视频数据的容量大,主机上已集成的Linux操作系统可能不支持在客户端显示音频视频等虚拟桌面的数据,即客户端无法通过主机的操作系统在客户端上显示音频视频,此时,主机可以将GPU分配给虚拟机,并可在虚拟机上装载通用的可显示音频视频的操作系统。例如,可以在虚拟机上装载通用的Windows操作系统或Linux操作系统,以使虚拟机在客户端显示包括音频视频的虚拟桌面。
图2是本发明一个实施例的发送数据的方法的示意性流程图。图2的发送数据的方法可以用于图1中的主机103中,主机的图像处理器GPU集成在主机的中央处理器CPU中,所述GPU可以分配给主机上运行的虚拟机,由所述虚拟机使用。下面介绍图2的发送数据的方法。
201,主机获取GPU的显卡内存在虚拟机的内存中的第一物理地址,第一物理地址用于指示GPU的显卡内存在虚拟机的内存中的位置。
202,主机根据第一物理地址确定GPU的显卡内存在主机的CPU的内存中的第二物理地址,第二物理地址用于指示GPU的显卡内存在主机的CPU的内存中的位置。
203,主机根据第二物理地址读取所述显卡内存中存储的需要发送给客户端的第一数据。
204,主机向客户端发送所述第一数据。
本发明实施例在将GPU分配给虚拟机后,主机可以根据GPU的显卡内存在虚拟机内存中的地址得到显卡内存在主机内存中的地址,并根据在主机内存中的地址读取并向客户端发送数据,这样可以避免在虚拟机内部增加额外的程序,从而能够简化发送数据的方法。
在存储器中以字节为单位存储信息,为正确地存放或读取信息,为每一个字节单元分配一个唯一的存储器地址,称为物理地址(physical address),或者叫作实际地址或绝对地址。物理地址可以从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。物理地址可以用二进制数来表示。例如,CPU的内存为8G,将CPU的内存分为八个分区,则每个分区的内存空间为1G,分别用二进制数0000至0111分别表示内存中每个分区的物理地址。当主机将CPU的内存中前2G分配给虚拟机时,虚拟机的内存的物理地址可以为0000至0001。本发明实施例中的物理地址可以用来指示显卡内存在主机内存或虚拟机内存中的位置。
本发明实施例中,对发送数据的方法所使用的网络协议不做限定。例如,当网络使用VNC协议进行数据传输时,VNC基本上可以由两部分组成:一部分是本地客户端的应用程序(VNC viewer),另外一部分是主机端的应用程序(VNC server)。VNC viewer是一种远程控制的软件,远端的主机开启VNC server后,本地VNC viewer可以远程接入运行VNCserver的计算机并显示主机的环境。当网络使用VNC协议进行数据传输时,VNC客户端可以通过浏览器或VNC viewer连接至主机上的VNC server,为数据传输提供通道,这样才能实现VNC客户端和主机之间数据的传输,在客户端显示虚拟桌面。
应理解,GPU集成在主机的CPU,GPU的显卡内存可以共享主机CPU的内存。虚拟机的内存可以为主机的CPU的内存的一部分,GPU被分配给主机上运行的虚拟机,那么GPU的显卡内存可以为虚拟机的内存的一部分。
本发明实施例的发送数据的方法和装置对通信系统的使用平台不受限制。例如,本发明实施例的发送数据的方法和装置可以用于英特尔(Intel)公司的X86平台,也可以用于国际商业机器公司(international business machines corporation,IBM)公司的PowerPC系列,也可以用于无内部互锁流水级的微处理器(microprocessor withoutinterlocked piped stages,MIPS)平台等。
下面结合图3的具体例子详细说明本发明的发送数据的方法。
图3是本发明另一实施例的发送数据的方法的示意性流程图,为图2所示方法的具体实现。图3的发送数据的方法可以由主机(例如,网关)执行。
301,获取显卡内存的地址。
其中,图2中的步骤201和202实现了步骤301的功能。
图像缓冲存储器(frame buffer)简称图像缓存或显卡内存。当本发明实施例中所要获取的数据为音频、视频或图像等数据时,显卡内存的地址可以为存储视频图形阵列(video graphics array,VGA)数据的存储器的地址。
在本发明实施例中,主机CPU上集成GPU,主机将GPU分配给虚拟机,虚拟机可以使用CPU内部集成的物理GPU对显卡内存中的数据进行处理并将其输出并显示到客户端的外设显示器上。这样,通过采用物理GPU而非虚拟化底层软件上的模拟GPU进行数据传输并显示虚拟桌面,可以加快数据传输的速度,并能够提高虚拟桌面的显示质量和显示效果。
主机可以获取显卡内存在主机的CPU的内存中的物理地址。例如,主机可以获取VGA显示输出的显卡内存在CPU内存中的物理地址。在主机的CPU中集成GPU,GPU可以看做是一个集成图形设备(integrated graphics device,IGD)。IGD集成在主机的CPU的内部,IGD本身不带有显卡内存,可以共享主机的CPU内存来作为显卡内存使用。这里,VGA显示输出的显卡内存的地址即为IGD共享的CPU内存的地址,主机首先需要获取显卡内存在主机的CPU内存中的物理地址。
在本发明的一个实施例中,当主机系统为Linux系统时,主机通过查看CPU手册,可以得到CPU内存中存在一块用于VGA显示输出的显卡内存,该显卡内存可以用于存储图形数据。主机可以读取操作系统的文件并得到PCI配置空间的内容,例如,PCI配置空间的寄存器的地址。PCI配置空间的寄存器中可以存储VGA的显卡内存的地址,进而主机可以通过读取寄存器得到VGA的显卡内存的地址。在Intel的X86平台中,本发明实施例中的寄存器可以为共享显卡内存的地址(base of data stolen memory,BDSM)和显卡内存映射表的地址(base of GTT stolen memory,BGSM),其中,GTT为显卡内存映射表(graphicstranslation tables)。
由于本发明实施例中的GPU集成在CPU上,主机的操作系统认为GPU为外设组件,因此这里的寄存器可以为PCI配置空间的寄存器。
本发明实施例中,主机可以通过下列方式获取GPU的显卡内存在虚拟机的内存中的第一物理地址:主机读取主机的操作系统的文件,得到外设组件互连标准PCI配置空间的寄存器的指示信息,并根据指示信息读取寄存器得到第一物理地址。其中,指示信息用于指示寄存器的地址。
寄存器可以包括数据寄存器、地址寄存器、通用目的寄存器、浮点寄存器等。其中,地址寄存器可以保存有存储器地址。本发明实施例中的寄存器属于地址寄存器,保存有显卡内存的地址。因此,主机根据指示信息读取寄存器时得到的可以是显卡内存的地址。在本发明的一个实施例中,GPU是被分配是虚拟机的,所以,上述方法得到的VGA的显卡内存的物理地址可以为用来指示显卡内存在虚拟机的内存中的物理地址。
本发明发送数据的上述流程可以在网关的主机上执行,所以,在上述方法得到显卡内存在虚拟机的内存中的物理地址(例如,第一物理地址)后需要将其转化为显卡内存在主机的CPU的内存中的物理地址(例如,第二物理地址)。例如,主机可以预先设定显卡内存在主机的内存中的第二物理地址和在虚拟机的内存中的第一物理地址之间的映射关系,在上述读取到显卡内存在虚拟机的内存中的第一物理地址后,根据映射关系可以得到显卡内存在主机的内存中的第二物理地址。再如,主机可以预先修改内存映射代码,使得显卡内存在主机的内存中第二物理地址和在虚拟机的内存中的第一物理地址相同,这样在网关得到显卡内存在虚拟机的的内存中第一物理地址之后,可以直接将第一物理地址视为显卡内存在主机的内存中的第二物理地址。
在本发明的一个实施例中,主机可以在系统启动或系统引导的时候,通过下列方法限定显卡内存在主机的内存中的物理地址和在虚拟机的内存中的物理地址之间的映射关系。例如,在主机的操作系统启动或引导时,通过多重操作系统启动管理器(grandunified bootloader,GRUB)向系统传入内核引导参数,使得系统在主机的物理CPU内存中预留一块地址空间。GPU被分配给虚拟机,在快速仿真器(quick emulator,QEMU)启动时,主机可以打开主机操作系统提供的内存映射设备(例如,dev/mem)进行内存映射,并将预留的CPU内存中的地址空间分配给虚拟机。例如,主机进行内存映射时可以修改CPU内存中的内存映射的代码,以使得无需进行内存映射,即实现虚拟机使用的内存地址空间与物理CPU内存中预留地址空间相同,这样,显卡内存在虚拟机的的内存中物理地址和显卡内存在主机的内存中的物理地址可以是相同的。再如,主机可以通过修改CPU内存中的内存映射的代码,使得显卡内存在虚拟机的内存中的物理地址和显卡内存在主机的内存中的物理地址存在一定的映射关系,主机可以根据该映射关系和已经获取得到的显卡内存在虚拟机的内存中的物理地址得到显卡内存在主机的内存中的物理地址。
下面举例来说明主机修改映射关系的方法。例如,主机的CPU的内存为8G,主机可以将CPU的内存中前2G分配给虚拟机,即主机可以预留前2G的内存给虚拟机。当显卡内存为虚拟机的内存的前128M时,可以认为显卡内存在虚拟机的内存中的物理地址和显卡内存在主机的内存中的物理地址是相同的,均为CPU的前128M的内存,所以,此时显卡内存在虚拟机的内存中的物理地址和显卡内存在主机的内存中的物理地址二者之间的映射关系为0-128M映射到0-128M。
再如,当主机的CPU的内存为8G,主机可以将CPU的内存中最后2G分配给虚拟机,即主机可以预留6G至8G的内存给虚拟机。当显卡内存为虚拟机的内存的前128M时,显卡内存在虚拟机的内存中的物理地址为0至128M,显卡内存在主机的CPU的内存中的物理地址为6G至6G+128M,所以,此时显卡内存在虚拟机的内存中的物理地址和显卡内存在主机的内存中的物理地址二者之间的映射关系为0至128M映射到6G至6G+128M。
现有技术中,虚拟机可以捕获图形数据并将数据传输至主机再发送给客户端,但这一方法需要为虚拟机添加后台服务程序以使得虚拟机捕获图形数据,并且需要在主机上增加一个模拟的外设PCI设备,并在虚拟机上添加额外的驱动程序。这样,主机可以作为一个平台提供给客户端使用,但是,客户端安装的虚拟机的种类可能很多,为不同的虚拟机提供不同新增程序的复杂性就会很大,而且需要预先约定连接客户端的虚拟机必须要安装的软件,对主机集成APP的能力就会有所限制。
本发明实施例中利用主机获取存储数据的显卡内存的地址,并在主机上完成数据传输,这样相比在虚拟机上增加程序来实现数据传输,能够简化数据传输的方法。
另外,本发明实施例中CPU上集成物理GPU,利用物理GPU而非模拟GPU在将数据存储在GPU的显卡内存之前,对需要传输的数据进行处理,在需要进行数据传输时从GPU的显卡内存读取数据并发送数据,以在客户端的终端设备显示虚拟桌面,这样可以避免模拟GPU性能差而输出数据信号差的缺陷,从而能够提高虚拟桌面的显示质量。
302,对所述显卡内存进行分片,得到多个内存分片,每个内存分片存储第一数据的一个分片数据。
当虚拟机内部显示数据发生变化时,VGA显卡内存中的数据也会发生变化。当虚拟桌面客户端显示设备连接到QEMU时,主机可以按照一定的频率对显卡内存中的数据(即第一数据)进行扫描。其中,显卡内存中的数据即用来显示一个图像的数据。所述扫描,是指每隔一定时间久读取一次所述显卡内存中的数据。
在本发明的一个实施例中,在扫描之前,主机可以首先对预留地址空间的内存中的数据进行分片处理得到多个分片数据,并可以对每一片数据分别进行扫描。其中,主机对显卡内存中的数据进行分片可以是主机对显卡内存进行分片,得到多个内存分片,将每个内存分片中存储的数据作为一个分片数据。在本发明的另一个实施例中,主机也可以直接对预留地址空间的内存中的数据进行扫描,而不分片,本发明实施例对此不做限制。当不分片直接扫描时,可以从步骤302将流程直接进行到步骤304,判当前图像的校验和与上一图像的校验和是否相同。
当对预留地址空间的内存中存储的数据进行分片处理后,主机可以逐一对每个分片数据进行处理。此时可以判断主机中是否还存在未处理的分片数据。当预留地址空间中不再存在未处理的当前图像的分片数据时,对当前图像的数据的传输结束。下一图像的数据进行传输时,可以循环执行本方法从步骤301到步骤306的流程。
303,获取内存分片,读取所述内存分片中的分片数据,计算所述分片数据的校验和。
在扫描过程中,对于每个内存分片,主机读取所述内存分片中的分片数据,计算该分片数据的校验和。所述分片数据的校验和即为所述分片数据对应的分片图像的校验和。
本发明实施例中可以将每一帧图像的数据分为多片,每个分片数据对应一个分片图像,主机可以通过比较每前后两帧分片图像对应的分片数据的校验和,来决定是否对发送当前分片数据。具体来说,主机发送一个内存分片中的分片数据的过程中,记录该内存分片与该分片数据的校验和的对应关系,当所述主机再次扫描到所述内存分片中新的分片数据时,所述主机比较所述新的分片数据的校验和和所述记录的校验和,当所述新的分片数据的校验和与所述记录的校验和不一致时,所述主机发送所述新的分片数据,否则,不发送所述分片数据。
本发明实施例中的校验和可以为循环冗余校验码(cyclic redundancy check,CRC),也可以是消息摘要算法5(message-digest algorithm 5,MD5)校验和。
304,比较所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和是否相同。
在步骤303得到内存分片中的分片数据对应的校验和(即当前需要显示的分片图像的校验和)之后,主机可以比较该内存分片中的分片数据的校验和与从所述内存分片中读出的上一个分片数据的校验和(即通过所述内存分片发送的上一个分片图像的校验和)是否相同。
当校验和相同时,表示所述内存分片中的分片数据对应的图像与通过该内存分片发送的上一图像相同,数据未发生变化。流程进行到步骤303,主机继续获取下一个内存分片。
当检验和不同时,表示所述内存分片中的分片数据对应的图像与通过该内存分片发送的上一图像不同,整个数据发生改变。流程进行到步骤305。
305,将所述内存分片中的分片数据转化为客户端支持的格式。
当检验和不同时,表示该内存分片中的分片数据对应的图像与通过所述内存分片发送的上一图像不同,此时需要将数据的变化发送给客户端,以使得客户端能够在虚拟桌面显示变化后的数据。在本发明的一个实施例中,可以将变化后的数据由当前格式转化为客户端支持的格式,或者,将数据的变化值从当前格式转化为客户端支持的格式。
306,向客户端发送更新消息。
在一个内存分片中的当前分片数据与所述内存分片传输的前一分片数据有变化时,可以向客户端发送更新消息,所述更新消息中携带客户端支持的格式的所述分片数据或所述分片数据与所述前一分片数据的变化值,这样,客户端可以在收到更新消息后,更新虚拟桌面显示的内容。
在本发明的一个实施例中,可以不执行步骤302对显卡内存进行分片这一步骤,而直接对分配给虚拟机的整块显卡内存进行扫描以读取数据,同样可以通过比较整个显卡内存中的当前帧图像的数据的校验和以及通过所述显卡内存发送的前一帧图像的数据的校验和确定当前帧图像和前一帧图像是否相同,当当前帧图像与前一帧图像不同时,将当前帧图像的数据,或者当前帧图像的数据与前一帧图像的数据的变化值发送给客户端。
在本发明的一个实施例中,对显卡内存进行分片处理可以仅计算和传输与内存分配片发送的上一分片数据的校验和有变化的分片数据,从而能够减小发送数据所需的带宽,降低流量需求,进而在客户端终端设备需要显示虚拟桌面的场景中,能够快速显示虚拟桌面,提高虚拟桌面的显示质量。
在本发明的一个实施例中,第一数据可以为客户端支持的格式的变化后的数据或数据的变化值。步骤305为可选步骤。当主机根据第二物理地址读取的显卡内存中存储的需要发送给客户端的第一数据的格式为客户端可以识别的格式时,主机可以在读取显卡内存中存储的数据后,直接发送给客户端。当主机根据第二物理地址读取的显卡内存中存储的需要发送给客户端的第一数据的格式不是客户端可以识别的格式时,主机可以在读取显卡内存中存储的数据后,对读取的数据进行扫描、格式转化为客户端可以识别的数据,再发送给客户端。
在本发明的一个实施例中,通过步骤305可以将原始的显卡内存中存储的数据转化为不同格式的输出数据,从而能够满足客户端对不同格式的需求。
在本发明的一个实施例中,主机可以通过上述方法向客户端发送数据,这样客户端可以实现远程查看虚拟桌面,并通过主机与控制器相结合,实现远程控制虚拟桌面。
上文结合图2和图3详细介绍了本发明实施例的发送数据的方法,下面结合图4和图5详细说明根据本发明实施例的发送数据的装置。
图4是本发明一个实施例的发送数据的装置的框图。图4的装置10可以为主机。图像处理器GPU集成在主机的中央处理器CPU中,GPU被分配给主机上运行的虚拟机。装置10可以包括第一获取单元11、确定单元12、读取单元13和发送单元14。
第一获取单元11用于获取GPU的显卡内存在虚拟机的内存中的第一物理地址,其中,第一物理地址用于指示GPU的显卡内存在虚拟机的内存中的位置。
确定单元12用于根据第一获取单元获取的第一物理地址确定GPU的显卡内存在主机的CPU的内存中的第二物理地址,其中,第二物理地址用于指示GPU的显卡内存在所述主机的CPU的内存中的位置。
读取单元13用于根据确定单元确定的第二物理地址读取显卡内存中存储的需要发送给客户端的第一数据。
发送单元14用于向客户端发送第一数据。
在一个实施方式中,所述第一获取单元具体用于读取所述主机的操作系统的文件,得到外设组件互连标准PCI配置空间的寄存器的指示信息,并根据所述指示信息读取所述寄存器得到所述第一物理地址,其中,所述指示信息用于指示所述寄存器的地址。
在一个实施方式中,所述装置还包括:
第二获取单元,用于读取所述CPU的内存,得到所述第一物理地址和所述第二物理地址之间的映射关系;
其中,所述确定单元12具体用于根据所述第一物理地址和所述映射关系确定所述第二物理地。
在另一个实施方式中,所述装置还包括:
分配单元,用于将所述CPU的内存的预留地址空间分配给所述虚拟机,作为所述虚拟机的内存;
修改单元,用于根据所述虚拟机的内存在所述CPU的内存中的位置和所述第一物理地址修改所述映射关系;
保存单元,用于将所述映射关系保存在所述CPU的内存中。
在另一个实施方式中,所述发送单元具体用于对所述显卡内存进行分片,得到多个内存分片,每个内存分片存储所述第一数据的一个分片数据;获取一个内存分片,读取所述内存分片中的分片数据,计算所述分片数据的校验和;比较所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和是否相同;当所述分片数据的校验和与从所述内存分片中读出的前一分片数据的校验和不相同时,向所述客户端发送更新消息,所述更新消息中携带所述分片数据或所述分片数据与所述前一分片数据的变化值。
本发明实施例在将GPU分配给虚拟机后,主机可以根据GPU的显卡内存在虚拟机内存中的地址得到显卡内存在主机内存中的地址,并根据在主机内存中的地址读取并向客户端发送数据,这样可以避免在虚拟机内部增加额外的程序,从而能够简化发送数据的方法。
根据本发明实施例的发送数据的装置10可对应于本发明实施例发送数据的方法,并且,该装置10中的各个单元/模块和上述其他操作和/或功能分别为了实现图2和图3中主机执行的所示方法的相应流程,为了简洁,在此不再赘述。
图5是本发明另一实施例的发送数据的装置的框图。图5的装置20可以为主机。装置20可以包括处理器21、存储器22和发射机23。装置20的各个组件通过总线系统24耦合在一起,其中总线系统24除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统24。存储器22可以包括只读存储器和随机存取存储器,并向处理器21提供指令和数据。存储器22的一部分还可以包括非易失性随机存取存储器。处理器21可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。
上述本发明实施例揭示的方法可以应用于处理器21和发射机23中,或者由处理器21和发射机23实现。在实现过程中,上述方法实施例图2中主机执行的各步骤可以通过处理器21和发射机23中的硬件的集成逻辑电路或者软件形式的指令完成。处理器21可以读取存储器22中的信息,结合其硬件完成方法实施例的步骤。
具体地,装置20的CPU上集成GPU,GPU被分配给装置20上运行的虚拟机。处理器21可以获取GPU的显卡内存在虚拟机的内存中的第一物理地址。其中,第一物理地址用于指示GPU的显卡内存在虚拟机的内存中的位置。处理器21还可以根据第一物理地址确定GPU的显卡内存在主机的CPU内存中的第二物理地址并根据第二物理地址读取显卡内存中存储的需要发送给客户端的第一数据。
发射机23可以向客户端发送第一数据。
本发明实施例在将GPU分配给虚拟机后,主机可以根据GPU的显卡内存在虚拟机内存中的地址得到显卡内存在主机内存中的地址,并根据在主机内存中的地址读取并向客户端发送数据,这样可以避免在虚拟机内部增加额外的程序,从而能够简化发送数据的方法。
根据本发明实施例的发送数据的装置20可对应于本发明实施例发送数据的方法,并且,该装置20中的各个器件的操作和上述其他操作和/或功能分别为了实现图2和图3中主机执行的所示方法的相应流程,为了简洁,在此不再赘述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。

Claims (10)

1.一种发送数据的方法,其特征在于,所述方法应用于主机中,所述主机的图像处理器GPU集成在所述主机的中央处理器CPU中,所述GPU被分配给所述主机上运行的虚拟机,所述方法包括:
所述主机获取所述GPU的显卡内存在虚拟机的内存中的第一物理地址,所述第一物理地址用于指示所述GPU的显卡内存在所述虚拟机的内存中的位置;
所述主机根据所述第一物理地址确定所述GPU的显卡内存在所述主机的CPU的内存中的第二物理地址,所述第二物理地址用于指示所述GPU的显卡内存在所述主机的CPU的内存中的位置;
所述主机根据所述第二物理地址读取所述显卡内存中存储的需要发送给客户端的第一数据;
所述主机向所述客户端发送所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述主机获取所述GPU的显卡内存在所述虚拟机的内存中的第一物理地址包括:
所述主机读取所述主机的操作系统的文件,得到外设组件互连标准PCI配置空间的寄存器的指示信息,其中,所述指示信息用于指示所述寄存器的地址;
所述主机根据所述指示信息读取所述寄存器,得到所述第一物理地址。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述主机读取所述CPU的内存,得到所述第一物理地址和所述第二物理地址之间的映射关系;
其中,所述主机根据所述第一物理地址确定所述GPU的显卡内存在所述主机的CPU的内存中的第二物理地址包括:
所述主机根据所述第一物理地址和所述映射关系确定所述第二物理地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述主机将所述CPU的内存的预留地址空间分配给所述虚拟机,作为所述虚拟机的内存;
所述主机根据所述虚拟机的内存在所述CPU的内存中的位置和所述第一物理地址修改所述映射关系;
所述主机将所述映射关系保存在所述CPU的内存中。
5.根据权利要求1或2所述的方法,其特征在于,所述主机向所述客户端发送所述第一数据包括:
所述主机对所述显卡内存进行分片,得到多个内存分片,每个内存分片存储所述第一数据的一个分片数据;
所述主机获取所述多个内存分片中的一个内存分片,读取所述内存分片中的分片数据,计算所述分片数据的校验和;
所述主机比较所述分片数据的校验和与从所述内存分片的前一内存分片中读出的前一分片数据的校验和是否相同;
当所述分片数据的校验和与所述前一分片数据的校验和不相同时,所述主机向所述客户端发送更新消息,所述更新消息中携带所述分片数据或所述分片数据与所述前一分片数据的变化值。
6.一种发送数据的装置,其特征在于,所述装置为主机,所述主机的图像处理器GPU集成在所述主机的中央处理器CPU中,所述GPU被分配给所述主机上运行的虚拟机,所述装置包括:
第一获取单元,用于获取所述GPU的显卡内存在虚拟机的内存中的第一物理地址,所述第一物理地址用于指示所述GPU的显卡内存在所述虚拟机的内存中的位置;
确定单元,用于根据所述第一获取单元获取的所述第一物理地址确定所述GPU的显卡内存在所述主机的CPU的内存中的第二物理地址,所述第二物理地址用于指示所述GPU的显卡内存在所述主机的CPU的内存中的位置;
读取单元,用于根据所述确定单元确定的所述第二物理地址读取所述显卡内存中存储的需要发送给客户端的第一数据;
发送单元,用于向所述客户端发送所述第一数据。
7.根据权利要求6所述的装置,其特征在于,所述第一获取单元具体用于读取所述主机的操作系统的文件,得到外设组件互连标准PCI配置空间的寄存器的指示信息,并根据所述指示信息读取所述寄存器得到所述第一物理地址,其中,所述指示信息用于指示所述寄存器的地址。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于读取所述CPU的内存,得到所述第一物理地址和所述第二物理地址之间的映射关系;
其中,所述确定单元具体用于根据所述第一物理地址和所述映射关系确定所述第二物理地址。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
分配单元,用于将所述CPU的内存的预留地址空间分配给所述虚拟机,作为所述虚拟机的内存;
修改单元,用于根据所述虚拟机的内存在所述CPU的内存中的位置和所述第一物理地址修改所述映射关系;
保存单元,用于将所述映射关系保存在所述CPU的内存中。
10.根据权利要求6或7所述的装置,其特征在于,所述发送单元具体用于对所述显卡内存进行分片,得到多个内存分片,每个内存分片存储所述第一数据的一个分片数据;获取所述多个内存分片中的一个内存分片,读取所述内存分片中的分片数据,计算所述分片数据的校验和;比较所述分片数据的校验和与从所述内存分片的前一内存分片中读出的前一分片数据的校验和是否相同;当所述分片数据的校验和与所述前一分片数据的校验和不相同时,向所述客户端发送更新消息,所述更新消息中携带所述分片数据或所述分片数据与所述前一分片数据的变化值。
CN201610014018.6A 2016-01-08 2016-01-08 发送数据的方法和装置 Active CN106959881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610014018.6A CN106959881B (zh) 2016-01-08 2016-01-08 发送数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610014018.6A CN106959881B (zh) 2016-01-08 2016-01-08 发送数据的方法和装置

Publications (2)

Publication Number Publication Date
CN106959881A CN106959881A (zh) 2017-07-18
CN106959881B true CN106959881B (zh) 2021-06-22

Family

ID=59480417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610014018.6A Active CN106959881B (zh) 2016-01-08 2016-01-08 发送数据的方法和装置

Country Status (1)

Country Link
CN (1) CN106959881B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109343922B (zh) * 2018-09-17 2022-01-11 广东微云科技股份有限公司 一种gpu虚拟化画面显示的方法及装置
CN112415907B (zh) * 2020-11-26 2022-03-29 珠海格力电器股份有限公司 楼宇设备的异地调试控制方法、装置和计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241445A (zh) * 2007-02-08 2008-08-13 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
CN101605084A (zh) * 2009-06-29 2009-12-16 北京航空航天大学 基于虚拟机的虚拟网络报文处理方法和系统
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法
CN102521015A (zh) * 2011-12-08 2012-06-27 华中科技大学 嵌入式平台下的设备虚拟化方法
CN102609361A (zh) * 2012-01-16 2012-07-25 北京邮电大学 虚拟机存储数据迁移方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241445A (zh) * 2007-02-08 2008-08-13 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法
CN101605084A (zh) * 2009-06-29 2009-12-16 北京航空航天大学 基于虚拟机的虚拟网络报文处理方法和系统
CN102521015A (zh) * 2011-12-08 2012-06-27 华中科技大学 嵌入式平台下的设备虚拟化方法
CN102609361A (zh) * 2012-01-16 2012-07-25 北京邮电大学 虚拟机存储数据迁移方法和装置

Also Published As

Publication number Publication date
CN106959881A (zh) 2017-07-18

Similar Documents

Publication Publication Date Title
US7739417B2 (en) Method, apparatus and system for seamlessly sharing a graphics card amongst virtual machines
US10686755B2 (en) Assigning IP addresses and configuration parameters in hyper-converged infrastructure
CN111240631A (zh) 基于AMD显卡虚拟化传输Linux虚拟机屏幕画面的方法及系统
EP2849080A1 (en) Image display method and device
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
US7039692B2 (en) Method and apparatus for maintaining profiles for terminals in a configurable data processing system
US20200210213A1 (en) Display method of multi-application based on android system, and terminal device
CN112698942B (zh) 一种人工智能服务系统、主控装置和从控装置
CN115309511B (zh) 基于Xen的数据交互方法、装置、存储介质以及电子设备
US20210014331A1 (en) Information processing apparatus and information processing system
CN106959881B (zh) 发送数据的方法和装置
US8468551B2 (en) Hypervisor-based data transfer
CN111045781A (zh) 一种云平台创建镜像的方法、装置和存储介质
CN116257320B (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
CN108733602B (zh) 数据处理
US11425219B1 (en) Smart stream capture
CN117130571A (zh) 基于多核异构系统的显示方法、设备、芯片、存储介质
CN109656674B (zh) 一种计算机设备、虚拟化芯片及数据传输方法
CN113660123B (zh) 虚拟交换机升级方法、装置、电子设备以及存储介质
CN113296838A (zh) 云服务器管理方法、提供数据服务的方法及装置
CN109857440A (zh) 固件更新方法、服务器以及客户端
CN115482144B (zh) 图形渲染加速设备、系统及方法
CN116501446B (zh) Kubernetes集群部署方法及系统、电子设备
KR101974974B1 (ko) 컨테이너 기술 기반의 시스템 전환 장치 및 방법
CN115118719B (zh) 一种云桌面的摄像头设备连接的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant