專利名稱:在多操作系統(tǒng)中共享顯示卡的方法和計算機系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種顯示卡設(shè)備的共享技術(shù),具體涉及一種在多操作系統(tǒng)中共
享顯示卡的方法和計算;f幾系統(tǒng)。
背景技術(shù):
使用虛擬化技術(shù)可以在同 一硬件平臺上同時運行多個客戶操作系統(tǒng) (GOS, Guest Operation System )。多個客戶操作系統(tǒng)的顯示內(nèi)容可以通過一 張顯示卡設(shè)備輸出至外部的顯示裝置進行顯示,也就是說,多操作系統(tǒng)通過共 享顯示卡設(shè)備來實現(xiàn)各自的顯示。
虛擬化領(lǐng)域的傳統(tǒng)技術(shù)是讓客戶操作系統(tǒng)都使用虛擬顯示卡,只有一個宿 主操作系統(tǒng)使用物理顯示卡設(shè)備。這種方法的缺點是客戶操作系統(tǒng)的顯示性能 特別差,并且很多加速特性都不支持。
新的技術(shù)可以讓客戶操作系統(tǒng)直接使用物理顯示卡設(shè)備,但其代價是只有 一個客戶操作系統(tǒng)可以有顯示輸出,其他操作系統(tǒng)無法通過顯示卡來輸出。
為了解決這種問題,開始逐漸出現(xiàn)了 一些多客戶操作系統(tǒng)都直接操作物理 顯示卡設(shè)備,但是通過某種方式使之可以串行操作的技術(shù)。這些技術(shù)中較典型 的實現(xiàn)方法是顯存分離+寄存器模擬方式。讓各OS使用不同的顯存資源, 并且各OS都有自己的一套模擬寄存器,當某個OS需要在前臺顯示時,則將 其寄存器值寫入真實設(shè)備,以實現(xiàn)對該OS的顯示。
上述方法的缺點在于由于各OS所使用的顯存資源是完全分離的,因此, 需要對各OS的顯示卡的設(shè)備驅(qū)動程序進行修改,修改工作量較大。同時,由 于當今顯示卡寄存器非常復雜,要模擬所有寄存器十分困難,工程化難度大。 后臺OS在使用模擬的寄存器時,如果模擬不當,便會導致顯示卡出錯,甚至 導致系統(tǒng)崩
發(fā)明內(nèi)容
本發(fā)明實施例的目的是提供一種在多操作系統(tǒng)中共享顯示卡的方法和計 算機系統(tǒng),無需修改所有操作系統(tǒng)的設(shè)備驅(qū)動程序,即可實現(xiàn)在多操作系統(tǒng)中 共享顯示卡。
為了實現(xiàn)上述目的,本發(fā)明的一個實施例提供一種在多操作系統(tǒng)中共享顯 示卡的方法,所述多操作系統(tǒng)包括一個主客戶操作系統(tǒng)和至少 一個次客戶操作
系統(tǒng),所述方法包括
檢測到有第一客戶操作系統(tǒng)需要被顯示,所述第一客戶操作系統(tǒng)屬于所述 主客戶操作系統(tǒng)和至少 一個次客戶操作系統(tǒng)中的一個客戶操作系統(tǒng);
對所述第一客戶操作系統(tǒng)進行判斷當所述第 一客戶操作系統(tǒng)是所述主客 戶操作系統(tǒng)時,為所述第一客戶操作系統(tǒng)分配顯示卡的所有顯示控制寄存器組 和所有顯存資源;當所述第一客戶操作系統(tǒng)是所述次客戶操作系統(tǒng)時,為所述 第一客戶操作系統(tǒng)分配一組顯示控制寄存器組和所有顯存資源中的部分顯存
資源;
控制為所述第 一客戶操作系統(tǒng)所分配的顯示控制寄存器組與顯示輸出端 口連接;
根據(jù)為所述第 一客戶操作系統(tǒng)所分配的顯存資源獲取所述第 一客戶操作 系統(tǒng)的顯示內(nèi)容;
根據(jù)與所述顯示輸出端口連接的顯示控制寄存器組中顯示模式參數(shù),對所 述顯示內(nèi)容進行顯示。
本發(fā)明的實施例還提供了一種計算機系統(tǒng),包括
一個主客戶操作系統(tǒng)和至少 一個次客戶操作系統(tǒng);
虛擬機管理器,每一所述一個主客戶操作系統(tǒng)和至少一個次客戶操作系統(tǒng) 與所述虛擬機管理器連接;
顯示卡,所述顯示卡包括至少兩個顯示控制寄存器組;
所述主客戶操作系統(tǒng)與顯示卡的所有顯示控制寄存器組和所有顯存資源 相對應,每一所述至少一個次客戶操作系統(tǒng)與顯示卡的其中一組顯示控制寄存 器組和部分顯存資源相對應;
顯示輸出端口;
6切換控制單元,在斥企測到有第一客戶"t喿作系統(tǒng)需要被顯示時,使所述第一 客戶操作系統(tǒng)與所述顯示輸出端口連接,所述第 一客戶操作系統(tǒng)屬于所述一個
主客戶操作系統(tǒng)和至少 一個次客戶操作系統(tǒng)中的 一個客戶操作系統(tǒng); 其中,通過所述顯示輸出端口對所述第 一客戶操作系統(tǒng)進行顯示。 本發(fā)明的 一個或多個實施例至少具有以下有益效果 只需修改次客戶操作系統(tǒng)的驅(qū)動程序,不需要修改主客戶操作系統(tǒng)的驅(qū)動 程序,并且,無需模擬或只需要模擬小部分顯示卡的寄存器,即可實現(xiàn)對顯示 卡的共享訪問操作;在切換當前顯示的客戶操作系統(tǒng)之前,對該客戶操作系統(tǒng) 相關(guān)的顯示模式參數(shù)、顯示輸出設(shè)置參數(shù)及顯存映射關(guān)系進行保存,以便于在 重新切換回該客戶操作系統(tǒng)時,筒便、快速的恢復該客戶操作系統(tǒng)的原先的顯 示狀態(tài);在顯示控制寄存器組的數(shù)目少于客戶操作系統(tǒng)時,通過客戶操作系統(tǒng) 模擬顯示卡,為其他客戶操作系統(tǒng)提供對顯示卡的訪問操作;當次客戶操作系 統(tǒng)在前臺顯示時,攔截并模擬其他客戶操作系統(tǒng)對該次客戶操作系統(tǒng)的顯示卡 資源的訪問操作,從而提供了次客戶操作系統(tǒng)顯示的可靠性。
圖1為本發(fā)明第一實施例的計算機系統(tǒng)的結(jié)構(gòu)示意圖2為本發(fā)明第一實施例所述在多操作系統(tǒng)中共享顯示卡的方法的流程
圖3為本發(fā)明第二實施例的計算機系統(tǒng)的結(jié)構(gòu)示意圖; 圖4為本發(fā)明第三實施例的計算機系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明實施例的在多操作系統(tǒng)中共享顯示卡的方法和計算機系統(tǒng),不是讓 多個虛擬操作系統(tǒng)使用虛擬顯卡,而是實現(xiàn)多個虛擬操作系統(tǒng)都使用物理顯 卡。
本發(fā)明實施例將客戶操作系統(tǒng)分為一個主客戶操作系統(tǒng)和至少一個次客 戶操作系統(tǒng)。主客戶操作系統(tǒng)使用顯示卡本身具有所有顯示通道(Display Pipe)和顯存資源,次客戶操作系統(tǒng)使用顯示卡的其中一個顯示通道和部分顯存資源,從而實現(xiàn)多個虛擬的客戶操作系統(tǒng)共享物理顯示卡設(shè)備。這里,所述 顯示通道是顯示卡中的一組顯示控制寄存器組,其中保存有顯示模式參數(shù)信息
所述顯示模式參數(shù)包括分辨率、刷新率、色深(Color Depth )、顯示內(nèi)容所使 用的顯存信息等。本發(fā)明實施例中顯示卡包括至少兩組顯示控制寄存器組。
下面結(jié)合附圖對本發(fā)明不同的實施例進行進一步詳細說明。
<第一實施例>
如圖1所示,本發(fā)明第 一 實施例的計算機系統(tǒng)包括一主客戶操作系統(tǒng)201 、 一次客戶操作系統(tǒng)202、虛擬機管理器100和顯示卡000。其中,主客戶操作 系統(tǒng)201包括設(shè)備驅(qū)動單元2011;次客戶才喿作系統(tǒng)202包括設(shè)備驅(qū)動單元 2021;主客戶操作系統(tǒng)201和次客戶操作系統(tǒng)202屬于第一類客戶操作系統(tǒng), 所述第 一類客戶操作系統(tǒng)為直接訪問顯示卡000的客戶操作系統(tǒng)。虛擬機管理 器100包括切換控制單元101和通信單元102;顯示卡000包括兩個顯示控制 寄存器組031和032,還包括有顯示輸出單元和顯存040。所述顯示輸出單元 具體包括一個顯示輸出端口 010和一個選擇寄存器020。各客戶操作系統(tǒng)運行 在虛擬機管理器100之上,所述通信單元102提供各客戶操作系統(tǒng)之間以及客 戶操作系統(tǒng)與硬件設(shè)備(如顯示卡)之間的通信。
這里,主客戶#:作系統(tǒng)201可以使用顯示卡的所有資源,包括所有的顯示 控制寄存器組和所有顯存資源,因此,對于主客戶操作系統(tǒng)201來說,無需修 改其顯示卡的設(shè)備驅(qū)動程序。次客戶操作系統(tǒng)202只使用顯示卡的其中一組顯 示控制寄存器組和部分顯存資源,因此,需要修改次客戶操作系統(tǒng)202的顯示 卡的設(shè)備驅(qū)動程序,為其配置相應的顯示控制寄存器組和顯存資源信息。
設(shè)備驅(qū)動單元2011,用于保存為本客戶操作系統(tǒng)配置的顯示卡的所有顯 示控制寄存器組和所有顯存資源的配置信息,并根據(jù)本客戶操作系統(tǒng)的所述配 置信息提供本客戶操作系統(tǒng)對顯示卡的訪問。這里,主客戶操作系統(tǒng)201可以 使用顯示控制寄存器組031和032,以及顯存040的所有資源。
設(shè)備驅(qū)動單元2021,用于保存為本客戶操作系統(tǒng)配置的顯示卡的一組顯 示控制寄存器組和部分顯存資源的配置信息,并根據(jù)本客戶操作系統(tǒng)的所述配 置信息提供本客戶操作系統(tǒng)對顯示卡的訪問。這里,次客戶操作系統(tǒng)202只能 使用顯示控制寄存器組032和顯存040中的顯存段0401。在顯存段0401的選取上,最好選擇顯存040中主客戶操作系統(tǒng)201使用較少,且即使使用也只是 用于存放顯示數(shù)據(jù)的部分。
切換控制單元101,用于保存為各客戶操作系統(tǒng)配置的顯存資源和顯示控
制寄存器組的全部或部分配置信息,并根據(jù)所述配置信息,確定將要顯示的客 戶操作系統(tǒng)的顯存資源和顯示控制寄存器組信息。這里,所述切換控制單元 101可以設(shè)置在虛擬機管理器100中,還可以設(shè)置在客戶操作系統(tǒng)中。
顯示輸出單元,用于根據(jù)所述切換控制單元101確定的顯存資源和顯示控 制寄存器組信息,分別獲取所述將要顯示的客戶操作系統(tǒng)的顯示內(nèi)容和顯示模 式參數(shù),并根據(jù)所述顯示模式參數(shù),對所述顯示內(nèi)容進行顯示輸出。 其中,顯示輸出單元具體包括選擇寄存器020和顯示輸出端口 010: 所述選擇寄存器020,用于保存所述切換控制單元101所確定的顯示控制 寄存器組信息;
所述顯示輸出端口 010,用于根據(jù)所述切換控制單元101所確定的顯存資 源,獲取所述將要顯示的客戶操作系統(tǒng)的顯示內(nèi)容;根據(jù)所述選擇寄存器020 保存的顯示控制寄存器組信息,獲取相應的顯示模式參數(shù),并根據(jù)所述顯示模 式參數(shù),對所述顯示內(nèi)容進行顯示輸出。
按照上述結(jié)構(gòu),各客戶操作系統(tǒng)通過各自的設(shè)備驅(qū)動單元訪問為其配置的 顯示卡的顯示控制寄存器組和顯存資源。當某個客戶操作系統(tǒng)要在前臺顯示 時,根據(jù)該客戶操作系統(tǒng)的顯示控制寄存器組的顯示模式參數(shù),對該客戶操作 系統(tǒng)進行顯示輸出。
由于用戶可能對當前顯示的客戶操作系統(tǒng)的顯示模式參數(shù)和/或顯示輸出 設(shè)置參數(shù)做了相應的配置,因此,在由顯示當前的客戶操作系統(tǒng)(如主客戶操 作系統(tǒng)201)切換到顯示另一客戶操作系統(tǒng)(如次客戶操作系統(tǒng)202)的過程 中,可以對上述配置進行保存,從而在重新切換回先前所顯示的客戶操作系統(tǒng) (如主客戶操作系統(tǒng)201)時,通過加載所保存的上述配置,即可簡便、快速 的恢復到先前的顯示狀態(tài)的目的。這里,所述顯示輸出設(shè)置參數(shù)是指顯示輸出 端口的當前配置,可以包括顯示輸出端口啟用/禁用設(shè)置、顯示輸出端口的 循環(huán)冗余碼校驗(CRC)設(shè)置、同步設(shè)置等參數(shù)。
為達到上述目的,如圖1所示,可以在切換控制單元101中增加顯示模式
9加載單元1011和顯示輸出i殳置加載單元1012。
其中,所述顯示模式加載單元1011,用于保存當前顯示的客戶操作系統(tǒng) 的顯示控制寄存器組中的顯示模式參數(shù),加載預先保存的所述將要顯示的客戶 操作系統(tǒng)的顯示模式參數(shù)。
所述顯示輸出設(shè)置加載單元1012,用于保存當前顯示的客戶操作系統(tǒng)對 應的顯示輸出設(shè)置參數(shù),加載預先保存的所述客戶操作系統(tǒng)對應的顯示輸出設(shè) 置參數(shù)。
這里,如果顯示卡000是通過顯存映射關(guān)系表來將顯存資源映射到實際的 物理內(nèi)存中,那么,如圖1所示,所述顯示卡000還可以包括顯存映射單元 050,所述切換控制單元101還可以包括顯存映射加載單元1013。通過顯存映 射加載單元1013對所述顯存映射單元050進行控制,為客戶操作系統(tǒng)選擇供 其使用的顯存資源。
其中,所述顯存映射單元050,用于保存顯存與物理內(nèi)存之間的映射關(guān)系;
所述顯存映射加載單元1013,用于保存所述顯存映射單元050中的當前 顯存映射關(guān)系,向所述顯存映射單元050加載預先保存的所述將要顯示的客戶 操作系統(tǒng)對應的顯存映射關(guān)系。
這里,還可以通過其他方式為客戶操作系統(tǒng)選擇供其使用的顯存資源,例 如,修改虛擬機管理器100中客戶操作系統(tǒng)的影子(shadow)頁表、擴展頁表 或者嵌套(Nested)頁表。
基于本實施例中圖1所示的計算機系統(tǒng),以下以將當前顯示的客戶操作系 統(tǒng)從主客戶操作系統(tǒng)201切換到次客戶操作系統(tǒng)202為例,說明本實施例所述 在多操作系統(tǒng)中共享顯示卡的方法。如圖2所示,該方法包括以下步驟
步驟20,預先為主客戶操作系統(tǒng)201配置顯示卡000的所有顯示控制寄 存器組和所有顯存資源,為次客戶操作系統(tǒng)202配置一組顯示控制寄存器組和 所有顯存資源中的部分顯存資源,并將各客戶操作系統(tǒng)的顯存資源和顯示控制 寄存器組的全部配置信息保存在對應關(guān)系表中,其中,各客戶操作系統(tǒng)根據(jù)其 所配置的顯存資源和顯示控制寄存器信息,對顯示卡進行訪問;
步驟21,檢測到當前顯示的操作系統(tǒng)需要從主客戶操作系統(tǒng)201切換到 次客戶操作系統(tǒng)202;步驟22,保存當前顯示的主客戶操作系統(tǒng)201的顯示控制寄存器組中的
顯示模式參數(shù);
步驟23,保存當前顯示的主客戶操作系統(tǒng)201對應的顯示輸出設(shè)置參數(shù); 步驟24,保存當前顯示的主客戶操作系統(tǒng)201對應的顯存映射關(guān)系; 步驟25,加載預先保存的所述將要顯示的次客戶操作系統(tǒng)202對應的顯 存映射關(guān)系;
步驟26,加載預先保存的所述將要顯示的次客戶操作系統(tǒng)202的顯示模 式參數(shù);
步驟27,加載預先保存的所述次客戶操作系統(tǒng)202對應的顯示輸出設(shè)置 參數(shù);
步驟28,調(diào)用所述對應關(guān)系表,確定將要顯示的次客戶操作系統(tǒng)202的 顯存資源和顯示控制寄存器組信息;根據(jù)所確定的顯存資源和顯示控制寄存器 組信息,分別獲取所述次客戶操作系統(tǒng)202的顯示內(nèi)容和顯示模式參數(shù),并根 據(jù)所述顯示模式參數(shù),對所述顯示內(nèi)容進行顯示輸出。
從以上所述可以看出,本實施例中只需修改次客戶操作系統(tǒng)的驅(qū)動程序, 不需要修改主客戶操作系統(tǒng)的驅(qū)動程序,并且,無需模擬或只需要模擬小部分 顯示卡的寄存器,即可實現(xiàn)對顯示卡的共享訪問操作。同時,在切換當前顯示 的客戶操作系統(tǒng)之前,對該客戶操作系統(tǒng)相關(guān)的顯示模式參數(shù)、顯示輸出設(shè)置 參數(shù)及顯存映射關(guān)系進行保存,以便于在重新切換回該客戶操作系統(tǒng)時,簡便、 快速的恢復該客戶操作系統(tǒng)的原先的顯示狀態(tài)。
<第二實施例>
由于主客戶操作系統(tǒng)可以使用顯示卡的所有資源,因此,當次客戶操作系 統(tǒng)在前臺顯示,主客戶操作系統(tǒng)在后臺運行時,主客戶操作系統(tǒng)可能對次客戶 操作系統(tǒng)當前正在使用的顯示卡資源進行訪問操作,從而可能破壞次客戶操作 系統(tǒng)的正常顯示。因此,本實施例中通過在虛擬機管理器中增加攔截模塊,對 上述訪問操作進行攔截,以保證次客戶操作系統(tǒng)的可靠顯示。
當主客戶操作系統(tǒng)在前臺顯示時,可以通過預先修改次客戶操作系統(tǒng)的驅(qū) 動程序,使得次客戶操作系統(tǒng)在后臺時不對顯存內(nèi)容或顯示控制寄存器組進行 更新操作,以避免對主客戶操作系統(tǒng)顯示內(nèi)容的破壞。
ii如圖3所示,本實施例所示的計算機系統(tǒng)中,所述虛擬機管理器IOO還包
括有攔截單元103,所述次客戶操作系統(tǒng)202還包括有設(shè)備模擬單元2022。
其中,所述攔截單元103,用于當次客戶操作系統(tǒng)202在前臺顯示時,攔 截其他客戶操作系統(tǒng)對次客戶操作系統(tǒng)202的顯存資源或顯示控制寄存器組 的訪問操作;所述設(shè)備模擬單元2022,用于為所述其他客戶操作系統(tǒng)模擬所 述攔截單元103所攔截的對顯示卡的訪問操作。
按照本實施例中的計算機系統(tǒng)的架構(gòu),本實施例也相應的提供一種操作系 統(tǒng)共享顯示卡的方法。與第一實施例中的所述方法相比,本實施例所述方法在 圖2所示步驟28之后還進一步增加了以下步驟
步驟29,當次客戶操作系統(tǒng)在后臺顯示時,該次客戶操作系統(tǒng)停止對其 顯存內(nèi)容或顯示控制寄存器組進行更新操作;當次客戶操作系統(tǒng)在前臺顯示 時,攔截其他客戶操作系統(tǒng)對該次客戶操作系統(tǒng)的顯存資源或顯示控制寄存器 組的訪問操作,并為所述其他客戶操作系統(tǒng)模擬所述訪問操作。
<第三實施例>
顯示卡自身所具有的顯示控制寄存器組的數(shù)量有限。當操作系統(tǒng)的數(shù)量多 于顯示控制寄存器組時,此時,還可以通過客戶操作系統(tǒng)模擬顯示卡,為其他 客戶操作系統(tǒng)提供虛擬顯卡,實現(xiàn)其他客戶操作系統(tǒng)對顯卡的訪問。
如圖4所示,該圖中有2個顯示控制寄存器組,3個客戶操作系統(tǒng)(主客 戶操作系統(tǒng)201、次客戶操作系統(tǒng)202和第二客戶操作系統(tǒng)203 )。其中,主客 戶操作系統(tǒng)201和次客戶操作系統(tǒng)202分別包括有設(shè)備模擬單元2011和2021 , 第二客戶操作系統(tǒng)203包括有第一設(shè)備驅(qū)動單元2031。虛擬機管理器100包 括有通信單元102。
這里,所述第二客戶操作系統(tǒng)203屬于第二類客戶操作系統(tǒng),所述第二類 客戶操作系統(tǒng)通過所述第一類客戶操作系統(tǒng),如主客戶操作系統(tǒng)201或次客戶 操作系統(tǒng)202,間接訪問顯示卡。
此時,第二客戶操作系統(tǒng)203的第一設(shè)備驅(qū)動單元2031可以通過通信單 元102連接設(shè)備模擬單元2022(或設(shè)備模擬單元2012 )和設(shè)備驅(qū)動單元2031。
設(shè)備驅(qū)動單元2031將第二客戶操作系統(tǒng)203訪問顯示卡000的命令通過 通信單元102發(fā)生給設(shè)備模擬單元2022 (或設(shè)備模擬單元2012 )。設(shè)備模擬單元2022 (或設(shè)備模擬單元2012),用于為第二客戶操作系統(tǒng)203模擬顯示卡, 并通過設(shè)備驅(qū)動單元2021 (或設(shè)備驅(qū)動單元2011 )為客戶才喿作系統(tǒng)203提供 對顯示卡OOO的訪問,從而實現(xiàn)通過次客戶操作系統(tǒng)202 (或主客戶操作系統(tǒng) 201 )對第二客戶操作系統(tǒng)203進行顯示輸出。
上述實施例都是以計算機系統(tǒng)包括一個次客戶操作系統(tǒng)為例進行說明。顯 然,在上述任一實施例中,都可以有多個次客戶操作系統(tǒng)。此時,為各次客戶 操作系統(tǒng)所配置的顯存資源可以相同也可以不同,為各次客戶操作系統(tǒng)配置的 顯示控制寄存器組也可以相同也可以不同。
以上所述是本發(fā)明的實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改 進和潤飾也應視為本發(fā)明的保護范圍。
權(quán)利要求
1. 一種在多操作系統(tǒng)中共享顯示卡的方法,其特征在于,所述多操作系統(tǒng)包括一個主客戶操作系統(tǒng)和至少一個次客戶操作系統(tǒng),所述方法包括檢測到有第一客戶操作系統(tǒng)需要被顯示,所述第一客戶操作系統(tǒng)屬于所述主客戶操作系統(tǒng)和至少一個次客戶操作系統(tǒng)中的一個客戶操作系統(tǒng);對所述第一客戶操作系統(tǒng)進行判斷當所述第一客戶操作系統(tǒng)是所述主客戶操作系統(tǒng)時,為所述第一客戶操作系統(tǒng)分配顯示卡的所有顯示控制寄存器組和所有顯存資源;當所述第一客戶操作系統(tǒng)是所述次客戶操作系統(tǒng)時,為所述第一客戶操作系統(tǒng)分配一組顯示控制寄存器組和所有顯存資源中的部分顯存資源;控制為所述第一客戶操作系統(tǒng)所分配的顯示控制寄存器組與顯示輸出端口連接;根據(jù)為所述第一客戶操作系統(tǒng)所分配的顯存資源,獲取所述第一客戶操作系統(tǒng)的顯示內(nèi)容;根據(jù)與所述顯示輸出端口連接的顯示控制寄存器組中顯示模式參數(shù),對所述顯示內(nèi)容進行顯示。
2. 如權(quán)利要求1所述的方法,其特征在于,所述當所述第一客戶操作系 統(tǒng)是所述次客戶操作系統(tǒng)時,為所述第一客戶操作系統(tǒng)分配一組顯示控制寄存 器組和所有顯存資源中的部分顯存資源,是根據(jù)所述次客戶操作系統(tǒng)的對顯示 效果的要求,為所述次客戶操作系統(tǒng)分配對應的顯示控制寄存器組和顯存資 源。
3. 如權(quán)利要求1所述的方法,其特征在于,在所述對所述第一顯示內(nèi)容 進行顯示之前還包括保存當前顯示的客戶操作系統(tǒng)的顯示控制寄存器組中的顯示模式參數(shù),加 載預先保存的所述第 一客戶操作系統(tǒng)的顯示模式參數(shù);保存當前顯示的客戶操作系統(tǒng)對應的顯示輸出設(shè)置參數(shù),加載預先保存的 所述第 一客戶操作系統(tǒng)對應的顯示輸出設(shè)置參數(shù)。
4. 如權(quán)利要求3所述的方法,其特征在于,在所述根據(jù)所述第一顯示控制寄存器組中顯示模式參數(shù),對所述第 一顯示內(nèi)容進行顯示之前還包括保存當前顯示的客戶操作系統(tǒng)對應的顯存映射關(guān)系,加載預先保存的所述 第 一客戶操作系統(tǒng)對應的顯存映射關(guān)系。
5. 如權(quán)利要求l所述的方法,其特征在于,所述方法還包括當次客戶操作系統(tǒng)在前臺顯示時,攔截所述次客戶操作系統(tǒng)外的其他客戶 操作系統(tǒng)對所述次客戶操作系統(tǒng)的顯存資源或顯示控制寄存器組的訪問操作, 并為所述其他客戶操作系統(tǒng)模擬所述訪問操作。
6. 如權(quán)利要求l所述的方法,其特征在于,所述方法還包括當次客戶操作系統(tǒng)在后臺顯示時,次客戶操作系統(tǒng)停止對其顯存內(nèi)容或顯示控制寄存器組進行更新操作。
7. —種計算機系統(tǒng),包括一個主客戶操作系統(tǒng)和至少 一個次客戶操作系統(tǒng);虛擬機管理器,每一所述一個主客戶操作系統(tǒng)和至少一個次客戶操作系統(tǒng) 與所述虛擬機管理器連接;顯示卡,所述顯示卡包括至少兩個顯示控制寄存器組;所述主客戶操作系統(tǒng)與顯示卡的所有顯示控制寄存器組和所有顯存資源 相對應,每一所述至少一個次客戶操作系統(tǒng)與顯示卡的其中 一組顯示控制寄存 器組和部分顯存資源相對應;顯示輸出端口;切換控制單元,在檢測到有第一客戶操作系統(tǒng)需要被顯示時,使所述第一 客戶操作系統(tǒng)與所述顯示輸出端口連接,所述第一客戶操作系統(tǒng)屬于所述一個 主客戶操作系統(tǒng)和至少 一個次客戶操作系統(tǒng)中的 一個客戶操作系統(tǒng);其中,通過所述顯示輸出端口對所述第一客戶操作系統(tǒng)進行顯示。
8. 如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,還包括選擇寄存器, 用于控制所述第一客戶操作系統(tǒng)對應的第一顯示控制寄存器組與顯示輸出端 口連接。
9. 如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,所述主客戶操作系統(tǒng) 和至少一個次客戶搡作系統(tǒng)中分別設(shè)置有設(shè)備驅(qū)動單元,用于保存本客戶操作系統(tǒng)對應的顯示控制寄存器組和顯存資源的配置信息,并為本客戶操作系統(tǒng)提供對顯示卡的訪問。
10.如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,所述切換控制單元包括顯示模式加載單元和顯示輸出設(shè)置加載單元;所述顯示模式加載單元,用于在對所述第 一客戶操作系統(tǒng)進行顯示之前, 保存當前顯示的客戶操作系統(tǒng)的顯示控制寄存器組中的顯示模式參數(shù),加載預先保存的所述第 一客戶操作系統(tǒng)的顯示模式參數(shù);所述顯示輸出設(shè)置加載單元,用于在對所述第一客戶操作系統(tǒng)進行顯示之 前,保存當前顯示的客戶操作系統(tǒng)對應的顯示輸出設(shè)置參數(shù),加載預先保存的 所述第 一客戶操作系統(tǒng)對應的顯示輸出設(shè)置參數(shù)。
11. 如權(quán)利要求IO所述的計算機系統(tǒng),其特征在于, 所述顯示卡還包括顯存映射單元,用于保存顯存與物理內(nèi)存之間的映射關(guān)系;所述切換控制單元還包括顯存映射加載單元,用于保存所述顯存映射單元 中的當前顯存映射關(guān)系,向所述顯存映射單元加載預先保存的所述第 一客戶操 作系統(tǒng)對應的顯存映射關(guān)系。
12. 如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,所述顯示輸出單元包 括選擇寄存器和顯示輸出端口;所述選擇寄存器,用于控制所述第 一客戶操作系統(tǒng)對應的第 一顯示控制寄 存器組與顯示輸出端口連接。
13. 如權(quán)利要求7所述的計算機系統(tǒng),其特征在于,所述虛擬機管理器還 包括攔截單元,所述次操作系統(tǒng)還包括有設(shè)備模擬單元;所述攔截單元,用于當次客戶操作系統(tǒng)在前臺顯示時,攔截所述次客戶操 作系統(tǒng)外的其他客戶操作系統(tǒng)對所述次客戶操作系統(tǒng)的顯存資源或顯示控制 寄存器組的訪問操作;所述設(shè)備模擬單元,用于為所述其他客戶操作系統(tǒng)模擬所述攔截單元所攔 截的對顯示卡的訪問操作。
全文摘要
本發(fā)明提供了在多操作系統(tǒng)中共享顯示卡的方法和計算機系統(tǒng)。其中,所述方法包括檢測到有第一客戶操作系統(tǒng)需要被顯示,所述第一客戶操作系統(tǒng)屬于所述主客戶操作系統(tǒng)和至少一個次客戶操作系統(tǒng)中的一個客戶操作系統(tǒng);對第一客戶操作系統(tǒng)進行判斷,根據(jù)第一客戶操作系統(tǒng)是主、次主客戶操作系統(tǒng),為其分配不同的相應的顯示控制寄存器組和顯存資源;控制第一客戶操作系統(tǒng)的顯示控制寄存器組與顯示輸出端口連接;根據(jù)第一客戶操作系統(tǒng)所分配的顯存資源獲取顯示內(nèi)容;根據(jù)與顯示輸出端口連接的顯示控制寄存器組中顯示模式參數(shù),對顯示內(nèi)容進行顯示。按照本發(fā)明,無需修改主客戶操作系統(tǒng)的驅(qū)動程序,即可實現(xiàn)在多操作系統(tǒng)中共享顯示卡。
文檔編號G06F15/167GK101477510SQ200810055938
公開日2009年7月8日 申請日期2008年1月2日 優(yōu)先權(quán)日2008年1月2日
發(fā)明者劉春梅, 劉永鋒, 王碧波, 軍 陳 申請人:聯(lián)想(北京)有限公司