在多操作系统中共享显示卡的方法和计算机系统的制作方法

文档序号:6614020阅读:163来源:国知局
专利名称:在多操作系统中共享显示卡的方法和计算机系统的制作方法
技术领域
本发明涉及一种显示卡设备的共享技术,具体涉及一种在多操作系统中共 享显示卡的方法和计算机系统。
背景技术
使用虚拟化技术可以在同 一硬件平台上同时运行多个客户操作系统
(GOS, Guest Operation System )。多个客户操作系统的显示内容可以通过一 张显示卡设备输出至外部的显示装置进行显示,也就是说,多操作系统通过共 享显示卡设备来实现各自的显示。
虚拟化领域的传统技术是让客户操作系统都使用虛拟显示卡,只有一个宿 主操作系统使用物理显示卡设备。这种方法的缺点是客户操作系统的显示性能 特别差,并且很多加速特性都不支持。
新的技术可以让客户操作系统直接使用物理显示卡设备,但其代价是只有 一个客户操作系统可以有显示输出,其他操作系统无法通过显示卡来输出。
为了解决这种问题,开始逐渐出现了 一些多客户操作系统都直接操作物理 显示卡设备,但是通过某种方式使之可以串行操作的技术。这些技术中较典型 的实现方法是显存分离+寄存器模拟方式。让各OS使用不同的显存资源, 并且各OS都有自己的一套模拟寄存器,当某个OS需要在前台显示时,则将 其寄存器值写入真实设备,以实现对该OS的显示。
上述方法的缺点在于由于当今显示卡寄存器非常复杂,要模拟所有寄存 器十分困难,工程化难度大。后台OS在使用模拟的寄存器时,如杲模拟不当, 便会导致显示卡出错,甚至导致系统崩溃。

发明内容
本发明实施例的目的是提供一种在多操作系统中共享显示卡的方法和计
5算机系统,在不需要模拟显示卡寄存器的情况下,实现多操作系统共享显示卡。 为了实现上述目的,本发明的一个实施例提供一种在多操作系统中共享显
示卡的方法,所述多操作系统包含有至少二个客户操作系统和一对应关系表, 所述对应关系表用于显示每一所述客户操作系统对应的显示控制寄存器组,所 述至少两个客户操作系统属于第 一类客户操作系统,所述第 一类客户操作系统
是直接访问显示卡的客户操作系统,所述方法包括
检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述 至少二个客户操作系统中的 一个客户操作系统;
调用所述对应关系表,确定所述第 一客户操作系统所对应的第 一显示控制
寄存器组,所述第一显示控制寄存器组中包含有显示模式参数;
控制所述第一显示控制寄存器组与显示输出端口连接;
根据所述显示模式参数对所述第 一客户操作系统进行显示。
本发明的实施例还提供了一种计算机系统,包括 至少两个客户操作系统;
虚拟机管理器,每一所述至少两个客户操作系统与所述虛拟机管理器连
接;
至少两个显示控制寄存器组,所述至少两个显示控制寄存器组与所述至少 两个客户搡作系统间存在对应关系,每一所述至少两个显示控制寄存器组与所
述至少两个客户4喿作系统中的 一个客户操作系统相连; 至少一个显示输出端口;
处理单元,用于在检测到有第一客户操作系统需要被显示时,使所述第一 客户操作系统与至少 一个所述至少一个显示输出端口连接,所述第 一客户操作 系统属于所述至少二个客户操作系统中的一个客户操作系统;
其中,通过所述至少一个所述至少一个显示输出端口对所述第一客户操作 系统进行显示。
本发明的 一个或多个实施例至少具有以下有益效果
通过预先为各客户操作系统配置显示控制寄存器组,从而在显示客户操作 系统时,根据该才喿作系统对应的显示控制寄存器组,对其进行显示输出。避免 了现有技术需要对显示卡寄存器进行模拟所带来的困难;同时,通过在切换之
6前,保存与当前所显示的客户操作系统相关的显示输出设置参数,在重新切换 回该客户操作系统时,通过加载事先保存的显示输出设置参数,可以实现快速、 方便的显示。


图1为本发明第一实施例的计算机系统的结构示意图2为本发明第一实施例所述在多4喿作系统中共享显示卡的方法的流程
图3为本发明第二实施例的计算机系统的结构示意图; 图4为本发明第三实施例的计算机系统的结构示意图; 图5为本发明第四实施例的计算机系统的结构示意图。
具体实施例方式
本发明实施例的在多操作系统中共享显示卡的方法和计算机系统,利用显 示卡本身具有多个显示通道(Display Pipe)的特性,实现多个虚拟操:作系统 共享物理显示卡设备。更具体的,不是让多个虚拟操作系统使用虚拟显卡,而 是实现多个虛拟操作系统都使用物理显卡的问题。这里,所述显示通道是显示 卡中的一组显示控制寄存器组,其中保存有显示模式参数信息。所述显示模式 参数包括分辨率、刷新率、色深(ColorDepth)或显示内容所使用的显存信息 等。
下面结合附图对本发明不同的实施例进行进一步详细说明。 <第一实施例>
如图l所示,本发明第一实施例的计算机系统包括多个客户操作系统,如 客户操作系统201和202,还包括有虚拟机管理器100和显示卡000,其中, 客户操作系统201和202与所述虚拟机管理器连接。客户操作系统201和202 属于第一类客户操作系统,所述第一类客户操作系统直接访问显示卡的客户操 作系统。显示卡000中包括有显示控制寄存器组031和032,还包括一个显示 输出端口 010和一个选择寄存器020;虛拟机管理器100包括有切换控制程序 101;客户操作系统201和202分别包括有设备驱动单元2011和2021。
7预先为客户操作系统201和202配置与其对应的显示控制寄存器组。图1 中,客户操作系统201对应于显示控制寄存器组031,客户操作系统202对应 于显示控制寄存器组032。
设备驱动单元2011和2021,分别用于保存本客户梯:作系统对应的显示控 制寄存器组的配置信息,并为本客户操作系统提供对显示卡的访问,从而为本 客户操作系统操作显示卡提供服务。
处理单元IOI,用于在检测到有客户操作系统需要被显示时,使该客户操 作系统与显示输出端口 010连接。
这里,处理单元IOI,可以保存所述客户操作系统与所述显示控制寄存器 组的对应关系,并根据所述对应关系,确定将要显示的客户操作系统所对应的 显示控制寄存器组信息,通过修改选择寄存器020的值,为显示输出端口OIO 选择显示控制寄存器组。这里,所述处理单元IOI,可以设置在虚拟机管理器 100中,也可以设置在客户操作系统中。
所述选择寄存器020,用于通过保存所述处理单元101确定的将要显示的 客户操作系统对应的显示控制寄存器组信息,控制所述第一客户操作系统对应 的第一显示控制寄存器组与显示输出端口连接。
所述显示输出端口 010,用于根据所述选择寄存器020所保存的显示控制 寄存器组信息,确定相应的显示控制寄存器组,并根据该显示控制寄存器组中 的显示模式参数,对客户操作系统进行显示输出。
以下以将当前显示的客户操作系统从客户操作系统201切换到客户操作 系统202为例,说明本实施例所述在多操作系统中共享显示卡的方法。如图2 所示,该方法包括以下步骤
步骤21,检测到当前显示的操作系统需要从客户操作系统201切换到客 户才喿作系统202;
步骤22,调用对应关系表,确定客户操作系统202所对应的显示控寄存 器组032,所述对应关系表用于保存客户操作系统对应的显示控制寄存器组; 步骤23,控制显示控制寄存器组032与显示输出端口 010连接; 步骤24,根据显示控制寄存器组032中的显示模式参数对客户操作系统 202进行显示。
8从以上所述可以看出,通过利用显示卡本身具有的显示控制寄存器组,为 客户操作系统配置与其对应的显示控制寄存器组,从而可以才艮据该显示控制寄 存器组中的显示模式参数,对客户操作系统进行显示输出。从而,本实施例避 免了现有技术中需要模拟显卡寄存器所带来的缺点。
<第二实施例>
由于当前显示的客户操作系统可能配置了显示输出设置参数。这里,所述
显示输出设置参数是指显示输出端口的当前配置,可以包括显示输出端口启 用/禁用设置、显示输出端口的循环冗余码校验(CRC)设置、同步设置等参 数。在切换到另一客户操作系统之前,本实施例中对显示输出端口的上述显示 输出设置参数进行保存,以便于在切换回当前显示的客户操作系统时,能够简 便、快速的恢复上述配置。
本实施例以一种"显存分离+显示通道分离"的应用环境为例,进行说明。
如图3所示,本实施例的计算机系统与图l相比,其设备驱动单元2011 和2021分别包括有显存驱动单元2012和2022;处理单元101还包括有显示 输出设置单元102;所述显示输出端口 010还包括有显示内容获取单元2012。
本实施例中,通过修改客户操作系统的设备驱动,为客户操作系统分配独 立的显存资源。所述显存驱动单元2012和2022,分别用于用于保存关于本客 户操作系统的独立显存资源的配置信息,提供对所述独立的显存资源的访问。 所述显示内容获取单元2012,用于根据将要显示的客户操作系统的独立显存 资源的配置信息,从对应的显存中获取该客户操作系统的显示内容。从而,显 示输出端口 OIO便可以对该显示内容进行显示输出。
本实施例中,所述显示输出设置单元102,用于保存当前显示的客户操作 系统对应的显示输出设置参数和加载将要显示的客户操作系统所保存的显示 输出设置参数。
相应的,本实施例提供的在多操作系统中共享显示卡的方法,当前显示的 客户操作系统由客户操作系统201切换到202时,包括以下步骤
步骤41,预先为客户操作系统配置与其对应的显示控制寄存器组,并保 存所述客户操作系统与所述显示控制寄存器组的对应关系。
步骤42,预先为各客户操作系统分配独立的显存资源,并保存关于各客
9户操作系统的独立显存资源的配置信息。
步骤42,显示输出设置单元102保存当前显示的客户操作系统对应的显示输出设置参数。
步骤43,显示输出设置单元102加载事先保存的关于将要显示的客户操作系统的显示输出设置参数。
步骤43,处理单元101根据所述对应关系,确定将要显示的客户操作系统202所对应的显示控制寄存器组为显示控制寄存器组032.
步骤44,显示内容获取单元2012根据将要显示的客户操作系统202的独立显存资源的配置信息,从对应的显存中获取该客户操作系统的显示内容。
步骤45,在获取将要显示的客户操作系统202的显示内容后,显示输出端口 010便可以根据显示控制寄存器组032中的显示模式参数,对客户操作系统202进行显示输出。
<第三实施例>
显示卡设备中可能包括多个显示输出端口,在这种情况下,可以通过各个显示输出端口分别对不同的客户操作系统进行显示输出。
请参照图4,本实施例所述计算机系统的显示卡包括有两个显示输出端口显示输出端口 OIO和显示输出端口 011。对应于该两个显示输出端口的选择寄存器分别为选择寄存器020和021。
本实施例中,可以通过处理单元101对选择寄存器020和021进行配置,为各显示输出端口选择对应的显示控制寄存器组,从而可以实现通过显示卡的多个显示输出端口分别对多个将要显示的客户操作系统进行显示输出。
<第四实施例>
显示卡自身所具有的显示控制寄存器组的数量有限。当才喿作系统的数量多于显示控制寄存器组时,此时,还可以通过客户操作系统模拟显示卡,为其他客户操作系统提供虚拟显卡,实现其他客户操作系统对显卡的访问。
如图5所示,该图中有2个显示控制寄存器组,3个客户操作系统,其中,客户操作系统202包括有设备模拟单元2022,客户操作系统203包括有设备驱动单元2031,虚拟机管理器100包括有通信单元102。此时,可以通过通信单元102连接设备模拟单元2022和设备驱动单元2031。这里,所述客户操作系统203属于第二类客户操作系统,所述第二类客户操作系统通过所述第一类客户操作系统,如客户操作系统201或202,间接访问显示卡。
设备驱动单元2031将客户操作系统203访问显示卡的命令通过通信单元102发生给设备模拟单元2022。设备才莫拟单元2022,用于为客户操作系统203模拟显示卡,并通过设备驱动单元2021提供客户操作系统203对显示卡000的访问,从而实现通过客户操作系统202对客户操作系统203进行显示输出。
以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应^L为本发明的保护范围。
权利要求
1. 一种在多操作系统中共享显示卡的方法,所述多操作系统包含有至少二个客户操作系统和一对应关系表,所述对应关系表用于保存每一所述客户操作系统对应的显示控制寄存器组,所述至少两个客户操作系统属于第一类客户操作系统,所述第一类客户操作系统为直接访问显示卡的客户操作系统,其特征在于,所述方法包括检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述至少二个客户操作系统中的一个客户操作系统;调用所述对应关系表,确定所述第一客户操作系统所对应的第一显示控制寄存器组,所述第一显示控制寄存器组中包含有显示模式参数;控制所述第一显示控制寄存器组与显示输出端口连接;根据所述显示模式参数对所述第一客户操作系统进行显示。
2. 如权利要求1所述的方法,其特征在于,在所述根据所述显示模式参数对所述第 一客户操作系统进行显示之前还包括为第 一客户操作系统分配独立的显存资源,并保存所述第 一客户操作系统的独立显存资源的配置信息。
3. 如权利要求2所述的方法,其特征在于,所述根据所述显示模式参数对所述第 一客户操作系统进行显示包括根据将要显示的所述第一客户操作系统的独立显存资源的配置信息,从对应的显存中获取所述第 一客户操作系统的显示内容;根据将要显示的所述第 一客户操作系统所对应的所述第 一显示控制寄存器组中的显示模式参数,对所述第一客户操作系统的显示内容进行显示输出。
4. 如权利要求3所述的方法,其特征在于,所述方法还包括将为所述第 一客户操作系统所分配的显存资源信息保存在该第 一客户操作系统对应的所述第 一显示控制寄存器组中。
5. 如权利要求1所述的方法,其特征在于,所述多操作系统还包含有属于第二类客户操作系统的第二客户操作系统,所述第二类客户操作系统通过所述第 一类客户操作系统间接访问显示卡;在所述根据所述显示模式参数对所述第一客户操作系统进行显示后还包括所述第一客户操作系统为所述第二客户操作系统模拟显示卡,通过所述第一客户操作系统对所述第二客户操作系统进行显示输出。
6. 如权利要求1所述的方法,其特征在于,在所述根据所述显示模式参数对所述第 一客户操作系统进行显示之前还包括保存当前显示的客户操作系统对应的显示输出设置参数,加载预先为所述第 一客户操作系统所保存的显示输出设置参数。
7. 如权利要求1所述的方法,其特征在于,所述显示输出端口为一个或多个。
8. 如权利要求1所述的方法,其特征在于,所述显示模式参数包括分辨率、刷新率、色深或显示内容所使用的显存信息。
9. 一种计算机系统,其特征在于,包括至少两个客户操作系统,所述至少两个客户操作系统属于第 一类客户操作系统,所述第一类客户操作系统为直接访问显示卡的客户操作系统;虚拟机管理器,每一所述至少两个客户操作系统与所述虚拟机管理器连接;至少两个显示控制寄存器组,所述至少两个显示控制寄存器组与所述至少两个客户操作系统间存在对应关系,每一所述至少两个显示控制寄存器组与所述至少两个客户操作系统中的一个客户操作系统相连;至少一个显示输出端口;处理单元,用于在检测到有第一客户操作系统需要被显示时,使所述第一客户操作系统与至少一个所述至少一个显示输出端口连接,所述第一客户操作系统属于所述至少二个客户操作系统中的 一个客户操作系统;其中,通过所述至少一个所述至少一个显示输出端口对所述第一客户操作系统进行显示。
10. 如权利要求9所述的计算机系统,其特征在于,还包括选择寄存器,用于控制所述第一客户操作系统对应的第 一显示控制寄存器组与显示输出端口连接。
11. 如权利要求9所述的计算机系统,其特征在于,所述至少两个客户操作系统中分别设置有设备驱动单元,用于保存本客户操作系统对应的显示控制寄存器组的配置信息,并为本客户操作系统提供对显示卡的访问。
12. 如权利要求11所述的计算机系统,其特征在于,所述设备驱动单元还包括显存驱动单元,用于为第一客户操作系统分配独立的显存资源,并保存所述第 一客户才喿作系统的独立显存资源的配置信息。
13. 如权利要求12所述的计算机系统,其特征在于,所述显示输出端口用于根据将要显示的所述第一客户操作系统的独立显存资源的配置信息,从对应的显存中获取所述第 一客户操作系统的显示内容;根据将要显示的所述第一客户操作系统所对应的所述第一显示控制寄存器组中的显示模式参数,对所述第 一客户#:作系统的显示内容进行显示输出。
14. 如权利要求9所述的计算机系统,其特征在于,还包括属于第二类客户操作系统的第二客户操作系统,所述第二类客户操作系统通过所述第 一类客户操作系统间接访问显示卡;所述第一客户操作系统包括有设备模拟单元,用于为所述第二客户操作系统模拟显示卡,通过所述第一客户操作系统对所述第二客户操作系统进行显示输出。
15. 如权利要求9所述的计算机系统,其特征在于,所述处理单元还包括显示输出设置单元,用于在所述对所述第一客户操作系统进行显示之前,保存当前显示的客户操作系统对应的显示输出设置参数,加载预先为所述第一客户操作系统所保存的显示输出设置参数。
16. 如权利要求9所述的计算机系统,其特征在于,所述显示输出端口为一个或多个。
全文摘要
本发明提供了在多操作系统中共享显示卡的方法和计算机系统。其中,所述方法包括检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述至少二个客户操作系统中的一个客户操作系统;调用所述对应关系表,确定所述第一客户操作系统所对应的第一显示控制寄存器组,所述第一显示控制寄存器组中包含有显示模式参数;控制所述第一显示控制寄存器组与显示输出端口连接;根据所述显示模式参数对所述第一客户操作系统进行显示。按照本发明实施例所述的方法和计算机系统,在不需要模拟显示卡寄存器的情况下,可实现多操作系统共享显示卡设备并快速显示输出将要显示的客户操作系统。
文档编号G06F13/10GK101464843SQ20071017970
公开日2009年6月24日 申请日期2007年12月17日 优先权日2007年12月17日
发明者刘春梅, 刘永锋, 王碧波, 军 陈 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1