CN101241445B - 虚拟机***及其访问显卡的方法 - Google Patents

虚拟机***及其访问显卡的方法 Download PDF

Info

Publication number
CN101241445B
CN101241445B CN2007100637537A CN200710063753A CN101241445B CN 101241445 B CN101241445 B CN 101241445B CN 2007100637537 A CN2007100637537 A CN 2007100637537A CN 200710063753 A CN200710063753 A CN 200710063753A CN 101241445 B CN101241445 B CN 101241445B
Authority
CN
China
Prior art keywords
video card
gos
resource
frame buffer
control register
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
CN2007100637537A
Other languages
English (en)
Other versions
CN101241445A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN2007100637537A priority Critical patent/CN101241445B/zh
Priority to US12/025,287 priority patent/US7739417B2/en
Publication of CN101241445A publication Critical patent/CN101241445A/zh
Application granted granted Critical
Publication of CN101241445B publication Critical patent/CN101241445B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明公开了一种虚拟机***及其显卡访问方法,其中虚拟机***,包括虚拟机监视器、服务操作***和至少一个客户操作***,还包括:资源转换模块,用于根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将MMIO映射到显卡的物理MMIO,并将处理后的数据发送到显卡;帧缓存分配模块,用于将显卡的帧缓存资源分成多块,分别分配给对应的GOS;所述资源转换表记录有SOS和GOS对显卡资源配置的对应关系;所述GOS为显卡分配的帧缓存MMIO资源为帧缓存分配模块给其分配的帧缓存。本发明的虚拟机***和方法既可通过该资源转换表访问真实显卡,又解决了多GOS共同访问真实显卡时带来的显示混乱问题,同时还能进行显示切换。

Description

虚拟机***及其访问显卡的方法
技术领域
本发明涉及计算机虚拟技术领域,特别是一种虚拟机***及其显卡访问方法。
背景技术
随着计算机***的发展,虚拟化技术在计算机领域得到广泛应用。现代计算机已经具有能力来利用虚拟化技术支持多个虚拟机,并在每个虚拟机上各自运行单独的操作***。
在虚拟机***中,各操作***都需要对硬件进行访问,其中对显卡的访问相对来说是一个比较复杂的的问题,对显卡的不同使用方法是影响用户体验的一个重要因素。目前,VMWare、Virtual PC等主流虚拟化技术所采用的方案大同小异,都是为客户操作***(Guest Operation System,GOS)提供一个虚拟化了的显卡。该虚拟显卡是一个通用的显卡,只能实现基本的显示功能,与真实的显卡差别很大。
图1为现有技术的虚拟机***的示意图。该虚拟机***包括虚拟机监视器(Virtual Monitor Machine,VMM)、服务操作***(Service Operation System,SOS)和至少一个GOS。SOS启动时,扫描PCI总线,发现真实显卡,获取真实显卡信息,为真实显卡分配资源(IRQ、IO、MMIO),SOS通过真实显卡驱动对显卡进行访问。
SOS包含一个设备模型(Device Module,DM),DM为每个GOS提供一个虚拟显卡。GOS启动时,扫描虚拟PCI总线,发现虚拟显卡,获取虚拟显卡信息,为虚拟显卡分配资源(IRQ、IO、MMIO)。GOS通过虚拟显卡的驱动访问虚拟显卡时,通过VMM将访问数据发送到DM;DM对访问数据进行转换后,发送到真实显卡驱动;真实显卡驱动对接收到的数据进行处理后发送到显卡。
该虚拟机***包括至少一个GOS,当GOS为多个时,各个GOS操作***都是通过SOS使用显卡。所以,除了SOS可以看到真实显卡,并利用真实显卡的驱动访问显卡外,每个GOS看到的都是由DM提供的虚拟显卡,利用虚拟显卡驱动对显卡进行访问,这样,显卡的硬件加速特性无法被用户使用,甚至不支持3D动画的功能,影响了显示性能,用户在显卡上的感受也大打折扣。
发明内容
本发明的目的在于提供一种虚拟机***及其访问显卡的方法,其中多个虚拟操作***共享一个真实的物理显卡,使每个GOS都拥有接近于真实显卡的性能和特性。
为了实现上述目的,本发明提供了一种虚拟机***,包括虚拟机监视器VMM、服务操作***SOS和至少一个客户操作***GOS,其中,所述VMM中包括通信模块,所述SOS中包括设备模型DM,所述虚拟机***还包括:
资源转换模块,用于根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将MMIO映射到显卡的物理MMIO,并将处理后的数据发送到显卡;
帧缓存分配模块,用于将显卡的帧缓存资源分成多块,分别分配给对应的GOS;
所述资源转换表记录有SOS和GOS对显卡资源配置的对应关系;
所述GOS为显卡分配的帧缓存MMIO资源为帧缓存分配模块给其分配的帧缓存。
上述的虚拟机***,其中,所述资源转换模块还用于将接收到的显卡的IRQ转换成GOS的中断号后发送给对应GOS。
上述的虚拟机***,其中,所述资源转换表包括SOS和GOS分别对显卡资源配置后的IO对应关系、IRQ对应关系和MMIO对应关系。
上述的虚拟机***,其中,所述VMM运行在高端内存,所述GOS运行在低端内存。
上述的虚拟机***,其中,还包括:
寄存器访问控制模块,用于设置显卡的显示起始地址寄存器的值为当前处于前台的GOS对应的帧缓存的起始地址,同时将当前处于前台操作***的对显卡控制寄存器的访问发送到显卡控制寄存器,并将其他操作***的对显卡控制寄存器的访问发送到寄存器模拟保存模块;
寄存器模拟保存模块,用于根据GOS对显卡控制寄存器的访问和显卡控制寄存器的处理流程模拟显卡控制寄存器的变化,并保存显卡控制寄存器的值。
上述的虚拟机***,其中,所述寄存器访问控制模块还用于在切换发生时,将切换到前台的第一GOS对应的显卡控制寄存器的模拟值恢复到显卡控制寄存器后,将该第一GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,同时修改显卡的显示起始地址寄存器的值为分配给该第一GOS的帧缓存的起始地址。
为了更好的实现上述目的,本发明还提供了一种虚拟机***访问显卡的方法,其中,包括:
帧缓存分配步骤,将显卡的帧缓存资源分成多块,分别分配给对应的GOS;
显卡帧缓存访问处理步骤,VMM根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将MMIO映射到显卡的物理MMIO后发送到显卡;
所述资源转换表记录有SOS和GOS对显卡资源配置的对应关系;
所述GOS为显卡分配的帧缓存MMIO资源为帧缓存分配模块给其分配的帧缓存。
上述的方法,其中,还包括:
显卡控制寄存器访问处理步骤,VMM将处于前台的GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,并将其他GOS的对显卡控制寄存器的访问根据真实显卡控制寄存器的处理流程进行模拟并保存。
上述的方法,其中,还包括:
显示切换步骤,设置显卡的显示起始地址寄存器的值为当前处于前台的GOS对应的帧缓存的起始地址,在切换发生时,将切换到前台的第一GOS对应的显卡控制寄存器的模拟值恢复到显卡控制寄存器后,将该第一GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,同时修改显卡的显示起始地址寄存器的值为分配给该第一GOS的帧缓存的起始地址。
上述的方法,其中,还包括将接收到的显卡的IRQ转换成GOS的中断号后发送给对应GOS的步骤。
上述的方法,其中,所述资源转换表包括SOS和GOS分别对显卡资源配置后的IO对应关系、IRQ对应关系和MMIO对应关系。
本发明的虚拟机***和方法具有以下的有益效果:
通过使用资源转换表来记录SOS和GOS对显卡资源配置的对应关系,同时将显卡的帧缓存分成多块分配给GOS,这样在多个GOS共同访问显卡时,既可通过该资源转换表访问真实显卡,又解决了多GOS共同访问真实显卡时带来的显示混乱问题;
同时,本发明将处于前台的GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,而拦截并模拟其他GOS的对显卡控制寄存器的访问,这样可以支持多个GOS显示模式不同的情形,同时在切换发生时,将显卡的显示起始地址寄存器的值修改为分配给处于前台的GOS的帧缓存的起始地址,有效的解决了显示切换的问题。
附图说明
图1为现有的虚拟机***的结构示意图;
图2为GOS能看到真实显卡,并通过真实显卡驱动访问显卡的虚拟机***的结构示意图;
图3为本发明的虚拟机***的结构示意图;
图4为本发明的虚拟机***的显卡访问方法的流程示意图。
具体实施方式
以下将结合附图对本发明进行详细描述。
本发明需要提供一种虚拟机***及其显卡访问方法,其中多个虚拟操作***共享一个真实的物理显卡,使每个GOS都拥有接近于真实显卡的性能和特性,因此首先需要虚拟机***中的每个OS都能访问到真实的显卡。
因此本发明首先需要提供一个每个OS都能访问到真实的显卡的虚拟机***及其显卡访问方法。
如图2所示,为GOS能看到真实显卡,并通过真实显卡驱动访问显卡的虚拟机***的结构示意图,包括虚拟机监视器VMM、服务操作***SOS、至少一个客户操作***GOS和显卡,其中:
VMM中设置有通信模块,该通信模块用于VMM和SOS及各个GOS之间的通信;
SOS中设置有用于获取显卡信息的DM;
GOS通过通信模块访问DM,获取显卡信息,对显卡进行资源配置,并将资源配置信息通过通信模块发送到DM,所述GOS还包括显卡驱动,用于将GOS的显卡帧缓存访问数据发送到VMM;
所述SOS中的DM还用于获取SOS对显卡的资源配置信息和GOS对显卡的资源配置信息,并根据SOS对显卡的资源配置信息和GOS对显卡的资源配置信息生成资源转换表发送到VMM;
所述VMM中还包括资源转换模块,用于保存资源转换表,并根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址转换或将MMIO映射到显卡的物理MMIO,并将处理后的数据发送到显卡。
进一步,所述资源转换模块将VMM接收到的显卡的IRQ转换成GOS的中断号后发送给GOS;所述GOS通过显卡驱动处理由VMM发送过来的显卡的IRQ。
该资源转换表的数目与GOS的数目一致。
同时,SOS的显卡驱动直接访问显卡,但不具备显卡加速特性,也不修改物理显卡的寄存器的值。
其中,在通信模块中,VMM通过中断或事件通道(Event Channel)与SOS和GOS通信,SOS通过hypercall与VMM通信,GOS通过vmcall与VMM通信。
由于GOS对显卡的资源配置可能与SOS对显卡的资源配置不一致,GOS若要对显卡直接进行访问,就需要先进行资源转换,这一工作由资源转换模块来完成,如下所述:
来自于GOS的显卡帧缓存访问数据到达VMM时,资源转换模块在资源转换表中查找资源转换关系,将GOS的IO请求地址转化成显卡的真实IO地址,同时把GOS对显卡分配的MMIO映射到显卡的物理MMIO上,并把VMM接收到的显卡的IRQ转换成GOS的中断号后发送给GOS。
资源转换表是在对显卡的资源配置过程中产生的,如下所述:
SOS启动,扫描PCI总线,获取显卡信息,为显卡分配资源(IRQ、IO、MMIO);GOS启动,扫描虚拟PCI总线,发现由DM提供的真实显卡,获取显卡信息,为显卡分配资源(IRQ、IO、MMIO);GOS对显卡的资源分配由DM负责解析,DM根据SOS对显卡的资源配置信息和GOS对显卡的资源配置信息生成资源转换表发送到VMM。该资源转换表中包括SOS和GOS分别对显卡分配的IO的对应关系、IRQ的对应关系和MMIO的对应关系。
这样,通过DM和VMM的协助,GOS可以直接访问到显卡硬件,同时,SOS按照原来的单一***的方式访问显卡硬件。
同时,为保证直接存储器访问(DMA),让VMM运行在高端内存,GOS运行在低端内存。这样GOS的物理内存地址与机器的内存地址一致,GOS不需要修改就能满足DMA的需要,并且由于SOS是修改过的***,也可以满足DMA的需要。本领域的普通技术人员应该容易理解,GOS也可以不运行在低端内存,特别是同时运行多个GOS时,可以通过在VMM中拦截DMA指令,修改内存地址来解决DMA问题,或者直接修改GOS中关于内存的处理。
GOS能看到真实显卡,并通过真实显卡驱动访问显卡的虚拟机***的显卡访问方法包括如下步骤:
步骤11,GOS的显卡帧缓存访问数据通过显卡驱动发送到VMM;
步骤12,VMM根据预先配置的资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将MMIO映射到显卡的物理MMIO;
步骤13,VMM将处理后的数据发送到显卡;
步骤14,VMM接收显卡的IRQ,并根据资源转换表将该IRQ转换成GOS的中断号后发送给GOS。
其中,资源转换表中包括SOS和GOS分别对显卡分配的IO的对应关系、IRQ的对应关系和MMIO的对应关系。
其中,资源转换表的配置过程为:
SOS获取显卡信息,为显卡分配资源;
GOS通过SOS中的DM获取显卡信息,为显卡分配资源;
DM根据SOS对显卡的资源配置信息和GOS对显卡的资源配置信息生成资源转换表发送到MM。
在实现了虚拟机***的所有OS都能直接访问到真实显卡之后,本发明的虚拟机***还包括:
帧缓存分配模块,用于将显卡的帧缓存资源分成多块,分别分配给对应的GOS;
同时,GOS启动,扫描虚拟PCI总线,发现由DM提供的真实显卡,获取显卡信息,然而在为显卡分配资源时,对于帧缓存MMIO资源,其只能获得帧缓存分配模块预先给其分配的帧缓存。
该帧缓存分配模块可以通过利用DM实现,也可以通过在VMM中另外设置独立的模块而实现。
通过以上的处理,本发明的虚拟机***中的每个GOS都能分配到到不同的帧缓存,因此每个GOS都是访问的不同的帧缓存,有效地解决了多个GOS共享同一个显卡时存在的显示混乱的问题。
同时,由于存在多个OS,因此必然存在OS切换显示的问题,同时还可能存在每个OS的显示模式不同的问题,因此本发明的虚拟机***在图2所示虚拟机***的基础上增加了显示切换判断模块、寄存器访问控制模块及寄存器模拟保存模块,如图3所示,其中:
显示切换判断模块,用于判断获取了焦点的操作***,或者说是处于前台的操作***,所谓获得了焦点或处于前台的操作***即拥有了输入设备(如键盘、鼠标)的操作***;
寄存器访问控制模块,用于根据显示切换判断模块的判断结果将获取了焦点的操作***的对显卡控制寄存器的访问发送到显卡控制寄存器,并将其他操作***的对显卡控制寄存器的访问发送到寄存器模拟保存模块;
寄存器模拟保存模块,与GOS对应,用于根据GOS的对显卡控制寄存器的访问和显卡控制寄存器的处理流程模拟显卡控制寄存器的变化,并保存显卡控制寄存器的值。
这样可以防止处于后台的GOS动态修改显示起始地址寄存器,导致显示混乱的问题。
同时,在GOS发生切换时,所述寄存器访问控制模块还用于将寄存器模拟保存模块中保存的该切换到前台的GOS对应的显卡控制寄存器的模拟值恢复到显卡控制寄存器后才将获取了焦点的操作***的对显卡控制寄存器的访问发送到显卡控制寄存器,同时修改显卡的显示起始地址寄存器的值为分配给该切换到前台的GOS的帧缓存的起始地址,这样该切换到前台的GOS的桌面即可显示到显示器。
该寄存器模拟保存模块可以模拟保存显卡所有控制寄存器,然而,在实际运用的时候,模拟显示模式寄存器即可。
本发明的虚拟机***的显卡访问方法如图4所示,包括如下步骤:
帧缓存分配步骤,将显卡的帧缓存资源分成多块,分别分配给对应的GOS;
显卡帧缓存访问处理步骤,VMM根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将MMIO映射到显卡的物理MMIO后发送到显卡;
显卡控制寄存器访问处理步骤,VMM将处于前台的GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,并将其他GOS的对显卡控制寄存器的访问进行模拟并保存;
显示切换步骤,设置显卡的显示起始地址寄存器的值为当前处于前台的GOS对应的帧缓存的起始地址,GOS发生切换时,VMM将切换到前台的GOS对应的显卡控制寄存器的模拟值恢复到显卡控制寄存器,同时将显卡的显示起始地址寄存器的值修改为分配给该切换到前台的GOS的帧缓存的起始地址后返回显卡控制寄存器访问处理步骤;
GOS启动,扫描虚拟PCI总线,发现由DM提供的真实显卡,获取显卡信息,然而在为显卡分配资源时,对于帧缓存MMIO资源,其只能获得帧缓存分配模块预先给其分配的帧缓存。
显卡帧缓存访问处理步骤中还包括根据资源转换表将显卡发送的IRQ转换成GOS的中断号后发送给对应的GOS的操作。
下面对各个步骤进行进一步详细描述。
显卡帧缓存访问处理步骤具体包括:
步骤S41,GOS的显卡帧缓存访问数据通过显卡驱动发送到VMM;
步骤S42,VMM根据预先配置的资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将MMIO映射到显卡的物理MMIO;
步骤S43,VMM将处理后的数据发送到显卡;
步骤S44,VMM接收显卡的IRQ,并根据资源转换表将该IRQ转换成GOS的中断号后发送给GOS。
显卡控制寄存器访问处理步骤具体包括:
步骤S51,VMM判断处于前台的操作***;
步骤S52,VMM拦截所有GOS对显卡控制寄存器的访问;
步骤S53,将处于前台的GOS对显卡控制寄存器的访问设置为有效,并发送到显卡控制寄存器;
步骤S54,VMM将其他GOS对显卡控制寄存器的访问按照实际显卡控制寄存器的处理过程进行模拟并保存。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种虚拟机***,包括虚拟机监视器VMM、服务操作***SOS和至少一个客户操作***GOS,其中,所述VMM中包括通信模块,所述SOS中包括设备模型DM,其特征在于,所述虚拟机***还包括:
资源转换模块,用于根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将内存映射输入输出MMIO映射到显卡的物理MMIO,并将处理后的数据发送到显卡,还用于将接收到的显卡的IRQ转换成GOS的中断号后发送给对应GOS;
帧缓存分配模块,用于在虚拟机***包括多个GOS时,将显卡的帧缓存资源分成多块,分别分配给对应的GOS;
所述资源转换表记录有SOS和GOS对显卡资源配置的对应关系,所述对应关系包括SOS和GOS分别对显卡资源配置后的IO对应关系、IRQ对应关系和MMIO对应关系;
所述GOS为显卡分配的帧缓存资源为帧缓存分配模块给其分配的帧缓存;
所述SOS为显卡分配的IO资源、MMIO资源和IRQ资源为显卡的真实IO、MMIO和IRQ。
2.如权利要求1所述的***,其特征在于,所述VMM运行在高端内存,所述GOS运行在低端内存。
3.根据权利要求1或2所述的虚拟机***,其特征在于,在虚拟机***包括多个GOS时,所述虚拟机***还包括:
寄存器访问控制模块,用于设置显卡的显示起始地址寄存器的值为当前处于前台的GOS对应的帧缓存的起始地址,同时将当前处于前台的客户操作***的对显卡控制寄存器的访问发送到显卡控制寄存器,并将其他的客户操作***的对显卡控制寄存器的访问发送到寄存器模拟保存模块;
寄存器模拟保存模块,用于根据GOS对显卡控制寄存器的访问和显卡控制寄存器的处理流程模拟显卡控制寄存器的变化,并保存显卡控制寄存器的信。
4.根据权利要求3所述的虚拟机***,其特征在于,所述寄存器访问控制模块还用于在切换发生时,将寄存器模拟保存模块中保存的切换到前台的第一GOS对应的显卡控制寄存器的模拟值恢复到显卡控制寄存器后,将该第一GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,同时修改显卡的显示起始地址寄存器的值为分配给该第一GOS的帧缓存的起始地址。
5.一种虚拟机***访问显卡的方法,其特征在于,包括:
帧缓存分配步骤,将显卡的帧缓存资源分成多块,分别分配给对应的客户操作***GOS;
显卡帧缓存访问处理步骤,虚拟机监视器VMM根据资源转换表对来自GOS的显卡帧缓存访问数据进行IO地址地转换或将内存映射输入输出MMIO映射到显卡的物理MMIO后发送到显卡;
虚拟机监视器将接收到的显卡的IRQ转换成GOS的中断号后发送给对应GOS;
所述资源转换表记录有服务操作***SOS和GOS对显卡资源配置的对应关系,所述对应关系包括SOS和GOS分别对显卡资源配置后的IO对应关系、IRQ对应关系和MMIO对应关系;
所述GOS为显卡分配的帧缓存资源为帧缓存分配模块给其分配的帧缓存;
所述SOS为显卡分配的IO资源、MMIO资源和IRQ资源为显卡的真实IO、MMIO和IRQ。
6.根据权利要求5所述的方法,其特征在于,还包括:
显卡控制寄存器访问处理步骤,VMM将处于前台的GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,并将其他GOS的对显卡控制寄存器的访问根据真实显卡控制寄存器的处理流程进行模拟并保存。
7.根据权利要求6所述的方法,其特征在于,还包括:
显示切换步骤,设置显卡的显示起始地址寄存器的值为当前处于前台的GOS对应的帧缓存的起始地址,在切换发生时,将显卡控制寄存器访问处理步骤中保存的切换到前台的第一GOS对应的显卡控制寄存器的模拟值恢复到显卡控制寄存器后,将该第一GOS的对显卡控制寄存器的访问发送到显卡控制寄存器,同时修改显卡的显示起始地址寄存器的值为分配给该第一GOS的帧缓存的起始地址。
CN2007100637537A 2007-02-08 2007-02-08 虚拟机***及其访问显卡的方法 Active CN101241445B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2007100637537A CN101241445B (zh) 2007-02-08 2007-02-08 虚拟机***及其访问显卡的方法
US12/025,287 US7739417B2 (en) 2007-02-08 2008-02-04 Method, apparatus and system for seamlessly sharing a graphics card amongst virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100637537A CN101241445B (zh) 2007-02-08 2007-02-08 虚拟机***及其访问显卡的方法

Publications (2)

Publication Number Publication Date
CN101241445A CN101241445A (zh) 2008-08-13
CN101241445B true CN101241445B (zh) 2011-07-27

Family

ID=39733936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100637537A Active CN101241445B (zh) 2007-02-08 2007-02-08 虚拟机***及其访问显卡的方法

Country Status (2)

Country Link
US (1) US7739417B2 (zh)
CN (1) CN101241445B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077376A (zh) * 2016-12-07 2017-08-18 深圳前海达闼云端智能科技有限公司 帧缓存实现方法、装置、电子设备和计算机程序产品

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176765B2 (en) * 2006-09-25 2015-11-03 Lenovo (Beijing) Limited Virtual machine system and a method for sharing a graphics card amongst virtual machines
CN101464843B (zh) * 2007-12-17 2011-05-25 联想(北京)有限公司 在多操作***中共享显示卡的方法和计算机***
CN101477510B (zh) * 2008-01-02 2011-07-27 联想(北京)有限公司 在多操作***中共享显示卡的方法和计算机***
TW200943223A (en) * 2008-02-27 2009-10-16 Ncomputing Inc 3D graphics acceleration in remote multi-user environment
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US8527679B2 (en) * 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US20100115510A1 (en) * 2008-11-03 2010-05-06 Dell Products, Lp Virtual graphics device and methods thereof
CN101739289B (zh) * 2008-11-13 2013-06-19 北京闪联云视信息技术有限公司 一种在Linux虚拟机中设置显示模式的方法及装置
CN101751283B (zh) * 2008-12-18 2016-06-01 联想(北京)有限公司 虚拟机监视器,虚拟机***及客户操作***状态获取方法
US20120098841A1 (en) * 2009-07-15 2012-04-26 Emerson Theodore F Shared Video Management Subsystem
CN102096594B (zh) * 2009-12-14 2014-04-23 联想(北京)有限公司 使用内存中***资源的方法及装置
US8739177B2 (en) * 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
CN102097080B (zh) * 2010-12-27 2015-06-17 华为技术有限公司 显示驱动处理方法、装置和***
JP5724421B2 (ja) * 2011-02-04 2015-05-27 富士通株式会社 情報処理装置
CA2876380C (en) 2011-06-13 2021-03-16 Lynx Software Technologies Inc. Systems and methods of secure domain isolation
JP5809362B2 (ja) * 2011-08-30 2015-11-10 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 仮想トラステッドランタイムbiosとの通信
CN102436363B (zh) * 2011-08-30 2014-09-17 北京数码大方科技股份有限公司 自动设置显卡参数的方法及装置
CN102981597B (zh) * 2011-09-05 2016-03-30 联想(北京)有限公司 可配置***设备的控制方法及便携终端
US8745745B2 (en) 2012-06-26 2014-06-03 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9007383B2 (en) 2012-12-05 2015-04-14 Vysoká {hacek over (s)}kola bá{hacek over (n)}ská—Technická Univerzita Ostrava Creating presentations by capturing content of a simulated second monitor
US9158569B2 (en) * 2013-02-11 2015-10-13 Nvidia Corporation Virtual interrupt delivery from a graphics processing unit (GPU) of a computing system without hardware support therefor
US9092767B1 (en) * 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US9983893B2 (en) 2013-10-01 2018-05-29 Red Hat Israel, Ltd. Handling memory-mapped input-output (MMIO) based instructions using fast access addresses
US9916173B2 (en) * 2013-11-25 2018-03-13 Red Hat Israel, Ltd. Facilitating execution of MMIO based instructions
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
CN106255955B (zh) * 2014-03-19 2021-07-27 英特尔公司 多操作***装置的访问隔离
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
US9213840B2 (en) 2014-05-15 2015-12-15 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
WO2015176029A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features
CN103984591B (zh) * 2014-05-15 2015-04-29 中国人民解放军国防科学技术大学 计算机虚拟化***的PCI设备INTx中断投递方法
WO2015176048A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Aspects of hardware virtualization, hypervisors, code detection
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
CN105550002B (zh) * 2015-12-28 2020-02-07 北京元心科技有限公司 基于***切换的界面显示方法和智能终端
CN105677315B (zh) * 2015-12-28 2020-02-07 北京元心科技有限公司 多操作***的界面显示方法及智能终端
CN106959881B (zh) * 2016-01-08 2021-06-22 华为技术有限公司 发送数据的方法和装置
US9846610B2 (en) 2016-02-08 2017-12-19 Red Hat Israel, Ltd. Page fault-based fast memory-mapped I/O for virtual machines
CN105872711B (zh) * 2016-04-21 2019-07-26 北京元心科技有限公司 多***切换时的切换动画显示方法及装置
CN108874544A (zh) * 2018-06-11 2018-11-23 郑州云海信息技术有限公司 一种gpu服务器io资源分配的方法及***
CN108762894A (zh) * 2018-06-21 2018-11-06 郑州云海信息技术有限公司 一种虚拟机显示方法和装置
WO2020107427A1 (en) * 2018-11-30 2020-06-04 Intel Corporation Apparatus and method for a virtualized display
CN111857853B (zh) * 2020-07-29 2023-05-02 中科方德软件有限公司 一种双***无缝切换方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064464A2 (en) * 2003-12-18 2005-07-14 Intel Corporation Virtual network interface
CN1700171A (zh) * 2004-04-30 2005-11-23 微软公司 提供从虚拟环境对硬件的直接访问
CN1716205A (zh) * 2004-06-30 2006-01-04 微软公司 用于初始化单个虚拟机内多个虚拟处理器的***和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065630B1 (en) * 2003-08-27 2006-06-20 Nvidia Corporation Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
US7849327B2 (en) * 2005-01-19 2010-12-07 Leung Hin L Technique to virtualize processor input/output resources
US7613847B2 (en) * 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
US9176765B2 (en) 2006-09-25 2015-11-03 Lenovo (Beijing) Limited Virtual machine system and a method for sharing a graphics card amongst virtual machines
CN101477510B (zh) 2008-01-02 2011-07-27 联想(北京)有限公司 在多操作***中共享显示卡的方法和计算机***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064464A2 (en) * 2003-12-18 2005-07-14 Intel Corporation Virtual network interface
CN1700171A (zh) * 2004-04-30 2005-11-23 微软公司 提供从虚拟环境对硬件的直接访问
CN1716205A (zh) * 2004-06-30 2006-01-04 微软公司 用于初始化单个虚拟机内多个虚拟处理器的***和方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077376A (zh) * 2016-12-07 2017-08-18 深圳前海达闼云端智能科技有限公司 帧缓存实现方法、装置、电子设备和计算机程序产品

Also Published As

Publication number Publication date
US7739417B2 (en) 2010-06-15
CN101241445A (zh) 2008-08-13
US20080215770A1 (en) 2008-09-04

Similar Documents

Publication Publication Date Title
CN101241445B (zh) 虚拟机***及其访问显卡的方法
US8924959B2 (en) Switching hardware devices in virtual machine systems using resource converting relationships
CN100464302C (zh) 虚拟机***及其显卡访问方法
CN100570562C (zh) 显卡、应用该显卡的虚拟机***及显示处理方法
KR100955111B1 (ko) 그래픽 어드레스 변환 방법 및 시스템
US20060184938A1 (en) Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
CN100561438C (zh) 一种虚拟机***及其显卡使用方法
CN106406977A (zh) 一种gpu虚拟化实现***及方法
CN100568180C (zh) 一种虚拟机***及其显卡访问方法
CN102103517A (zh) 高效嵌套虚拟化
US11204790B2 (en) Display method for use in multi-operating systems and electronic device
CN104636186A (zh) 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
CN105786589A (zh) 一种云渲染***、服务器及方法
US10754679B2 (en) Method and apparatus for handling network I/O device virtualization
US11055154B2 (en) Screen-shooting method and device for guest operating system in computer apparatus
CN101470633A (zh) 一种虚拟机监视器、虚拟机***及其内存处理方法
US20220050795A1 (en) Data processing method, apparatus, and device
CN101464843B (zh) 在多操作***中共享显示卡的方法和计算机***
CN102193816B (zh) 一种设备分配方法及***
CN106598696A (zh) 一种虚拟机之间数据交互的方法及装置
KR960704275A (ko) 컴퓨터 구조
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine
JPH04311233A (ja) アドレス変換装置
CN117592039B (zh) 一种灵活管理的硬件虚拟化***及方法
WO2024093546A1 (zh) 虚拟机的图像显示方法及装置

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