国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      虛擬機(jī)系統(tǒng)及其顯卡訪問方法

      文檔序號:6558343閱讀:322來源:國知局
      專利名稱:虛擬機(jī)系統(tǒng)及其顯卡訪問方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計算機(jī)領(lǐng)域,特別是涉及一種虛擬機(jī)系統(tǒng)及其顯卡訪問方法。
      背景技術(shù)
      隨著計算機(jī)系統(tǒng)的發(fā)展,虛擬化技術(shù)在計算機(jī)領(lǐng)域得到廣泛應(yīng)用。現(xiàn)代計算機(jī)已經(jīng)具有能力來利用虛擬化技術(shù)支持多個虛擬機(jī),并在每個虛擬機(jī)上各自運(yùn)行單獨(dú)的操作系統(tǒng)。
      在虛擬機(jī)系統(tǒng)中,各操作系統(tǒng)都需要對硬件進(jìn)行訪問,其中對顯卡的訪問相對來說是一個比較復(fù)雜的的問題,對顯卡的不同使用方法是影響用戶體驗(yàn)的一個重要因素。目前,VMWare,Virtual PC以及Xen等主流虛擬化技術(shù)所采用的方案大同小異,都是為客戶操作系統(tǒng)(GOS)提供一個虛擬化了的顯卡。該虛擬顯卡是一個通用的顯卡,只能實(shí)現(xiàn)基本的顯示功能,與真實(shí)的顯卡差別很大。
      圖1為現(xiàn)有技術(shù)的虛擬機(jī)系統(tǒng)的示意圖。該虛擬機(jī)系統(tǒng)包括虛擬機(jī)監(jiān)視器(VMM)、服務(wù)操作系統(tǒng)(SOS)和至少一個GOS。SOS啟動時,掃描PCI總線,發(fā)現(xiàn)真實(shí)顯卡,獲取真實(shí)顯卡信息,為真實(shí)顯卡分配資源(IRQ、IO、MMIO),SOS通過真實(shí)顯卡驅(qū)動對顯卡進(jìn)行訪問。SOS包含一個設(shè)備模型(DM),DM為每個GOS提供一個虛擬顯卡。GOS啟動時,掃描虛擬PCI總線,發(fā)現(xiàn)虛擬顯卡,獲取虛擬顯卡信息,為虛擬顯卡分配資源(IRQ、IO、MMIO)。GOS通過虛擬顯卡的驅(qū)動訪問虛擬顯卡時,通過VMM將訪問數(shù)據(jù)發(fā)送到DM;DM對訪問數(shù)據(jù)進(jìn)行轉(zhuǎn)換后,發(fā)送到真實(shí)顯卡驅(qū)動;真實(shí)顯卡驅(qū)動對接收到的數(shù)據(jù)進(jìn)行處理后發(fā)送到顯卡。
      該虛擬機(jī)系統(tǒng)包括多個GOS,各個GOS操作系統(tǒng)都是通過SOS使用顯卡。所以,除了SOS可以看到真實(shí)顯卡,并利用真實(shí)顯卡的驅(qū)動訪問顯卡外,每個GOS看到的都是由DM提供的虛擬顯卡,利用虛擬顯卡驅(qū)動對顯卡進(jìn)行訪問,這樣,顯卡的硬件加速特性無法被用戶使用,甚至不支持3D動畫的功能,影響了顯示性能,用戶在顯卡上的感受也大打折扣。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種虛擬機(jī)系統(tǒng),在該虛擬機(jī)系統(tǒng)中的GOS能看到真實(shí)顯卡,并通過真實(shí)顯卡驅(qū)動訪問顯卡。
      本發(fā)明的另一目在于提供一種虛擬機(jī)系統(tǒng)顯卡訪問方法。
      本發(fā)明的虛擬機(jī)系統(tǒng),包括虛擬機(jī)監(jiān)視器(VMM)、服務(wù)操作系統(tǒng)(SOS)和至少一個客戶操作系統(tǒng)(GOS),其中所述VMM包括通信模塊,該通信模塊用于VMM和SOS及各個GOS之間的通信;所述SOS包括DM,該DM用于獲取顯卡信息;所述GOS通過通信模塊訪問DM,獲取顯卡信息,對顯卡進(jìn)行資源配置,并將資源配置信息通過通信模塊發(fā)送到DM,所述GOS還包括顯卡驅(qū)動,用于將GOS的顯卡訪問數(shù)據(jù)發(fā)送到VMM;所述SOS中的DM還用于獲取SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息,并根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM;所述VMM還包括資源轉(zhuǎn)換模塊,用于根據(jù)資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO,并將處理后的數(shù)據(jù)發(fā)送到顯卡。
      所述資源轉(zhuǎn)換模塊進(jìn)一步將VMM接收到的顯卡的IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS;所述GOS進(jìn)一步通過顯卡驅(qū)動處理由VMM發(fā)送過來的顯卡的IRQ。
      所述資源轉(zhuǎn)換表中包括SOS和GOS分別對顯卡分配的IO的對應(yīng)關(guān)系、IRQ的對應(yīng)關(guān)系和MMIO的對應(yīng)關(guān)系。
      所述VMM運(yùn)行在高端內(nèi)存,所述GOS運(yùn)行在低端內(nèi)存。
      進(jìn)一步,所述SOS還包括鍵盤切換模塊,所述VMM還包括切換模塊和訪問控制模塊,所述SOS和所述GOS還包括顯卡寄存器保存/恢復(fù)模塊,所述鍵盤切換模塊用于接收鍵盤輸入信號,判斷該信號是否為系統(tǒng)切換信號,并將系統(tǒng)切換信號對應(yīng)的切換信息通過通信模塊發(fā)送到切換模塊;所述切換模塊用于根據(jù)切換信息通過通信模塊發(fā)送顯卡寄存器保存/恢復(fù)信號到顯卡寄存器保存/恢復(fù)模塊,并且發(fā)送訪問控制信號到訪問控制模塊;所述訪問控制模塊用于根據(jù)訪問控制信號改變操作系統(tǒng)對顯卡的訪問權(quán)限;所述顯卡寄存器保存/恢復(fù)模塊用于根據(jù)顯卡寄存器保存/恢復(fù)信號對顯卡寄存器的值進(jìn)行保存或恢復(fù),并通過通信模塊發(fā)送顯卡寄存器保存成功信號或顯卡寄存器恢復(fù)成功信號到切換模塊。
      所述訪問控制模塊在接收到訪問控制信號時,若前后臺狀態(tài)改變的操作系統(tǒng)是GOS,發(fā)送相應(yīng)控制信號到資源轉(zhuǎn)換模塊,資源轉(zhuǎn)換模塊根據(jù)控制信號禁用后臺操作系統(tǒng)的資源轉(zhuǎn)換表并啟用前臺操作系統(tǒng)的資源轉(zhuǎn)換表。
      所述訪問控制模塊在接收到訪問控制信號時,若前后臺狀態(tài)改變的操作系統(tǒng)是SOS,發(fā)送相應(yīng)控制信號到SOS中的顯卡驅(qū)動,由該顯卡驅(qū)動打開或關(guān)閉SOS對顯卡的訪問權(quán)限。
      所述切換模塊根據(jù)切換信息判斷前后臺狀態(tài)改變的操作系統(tǒng),發(fā)送顯卡寄存器保存信號到切換到后臺的操作系統(tǒng)的顯卡寄存器保存/恢復(fù)模塊,發(fā)送顯卡寄存器恢復(fù)信號到切換到前臺的操作系統(tǒng)的顯卡寄存器保存/恢復(fù)模塊。
      進(jìn)一步,所述GOS和SOS還包括顯存保存/恢復(fù)模塊,所述切換模塊進(jìn)一步根據(jù)切換信息通過通信模塊發(fā)送顯存保存/恢復(fù)信號到顯存保存/恢復(fù)模塊;所述顯存保存/恢復(fù)模塊根據(jù)顯存保存/恢復(fù)信號對顯存的內(nèi)容進(jìn)行保存或恢復(fù)。
      所述切換模塊根據(jù)切換信息判斷前后臺狀態(tài)改變的操作系統(tǒng),發(fā)送顯存保存信號到切換到后臺的操作系統(tǒng)的顯存保存/恢復(fù)模塊,發(fā)送顯存恢復(fù)信號到切換到前臺的操作系統(tǒng)的顯存保存/恢復(fù)模塊。
      本發(fā)明的虛擬機(jī)系統(tǒng)顯卡訪問方法,包括以下步驟a)GOS的顯卡訪問數(shù)據(jù)通過顯卡驅(qū)動發(fā)送到VMM;b)VMM根據(jù)預(yù)先配置的資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO;c)VMM將處理后的數(shù)據(jù)發(fā)送到顯卡。
      進(jìn)一步,在步驟c)后還包括步驟d)VMM接收顯卡的IRQ,并根據(jù)資源轉(zhuǎn)換表將該IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS。
      所述資源轉(zhuǎn)換表的配置過程為1)SOS獲取顯卡信息,為顯卡分配資源;2)GOS通過SOS中的DM獲取顯卡信息,為顯卡分配資源;3)DM根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM。
      進(jìn)一步,在步驟a)之前還包括步驟前臺操作系統(tǒng)切換到后臺時,保存顯示模式,后臺操作系統(tǒng)切換到前臺時,恢復(fù)顯示模式。
      進(jìn)一步,在步驟a)之前還包括步驟前臺操作系統(tǒng)切換到后臺時,保存顯存的內(nèi)容,后臺操作系統(tǒng)切換到前臺時,恢復(fù)顯存的內(nèi)容。
      與現(xiàn)有技術(shù)相比,本發(fā)明的虛擬機(jī)系統(tǒng)及其顯卡訪問方法中,每個操作系統(tǒng)看到的都是真實(shí)顯卡,各個操作系統(tǒng)之間通過切換的方式使用顯卡,可以利用顯卡的硬件加速特性,保證了顯示性能。


      圖1為現(xiàn)有技術(shù)的虛擬機(jī)系統(tǒng)的示意圖;圖2為本發(fā)明虛擬機(jī)系統(tǒng)的示意圖;圖3為對圖2所示的虛擬機(jī)系統(tǒng)的改進(jìn)的示意圖;圖4為改進(jìn)的虛擬機(jī)系統(tǒng)中鍵盤切換模塊的處理流程圖;圖5為改進(jìn)的虛擬機(jī)系統(tǒng)中切換模塊的處理流程圖;圖6為改進(jìn)的虛擬機(jī)系統(tǒng)中寄存器保存/恢復(fù)模塊的處理流程圖;圖7為改進(jìn)的虛擬機(jī)系統(tǒng)中訪問控制模塊的處理流程圖。
      具體實(shí)施例方式
      以下將結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)描述。
      如圖2所示,本發(fā)明的虛擬機(jī)系統(tǒng)包括虛擬機(jī)監(jiān)視器(VMM)、服務(wù)操作系統(tǒng)(SOS)和至少一個客戶操作系統(tǒng)(GOS),其中所述VMM包括通信模塊,該通信模塊用于VMM和SOS及各個GOS之間的通信;
      所述SOS包括DM,該DM用于獲取顯卡信息;所述GOS通過通信模塊訪問DM,獲取顯卡信息,對顯卡進(jìn)行資源配置,并將資源配置信息通過通信模塊發(fā)送到DM,所述GOS還包括顯卡驅(qū)動,用于將GOS的顯卡訪問數(shù)據(jù)發(fā)送到VMM;所述SOS中的DM還用于獲取SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息,并根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM;所述VMM還包括資源轉(zhuǎn)換模塊,用于根據(jù)資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO,并將處理后的數(shù)據(jù)發(fā)送到顯卡。
      進(jìn)一步,所述資源轉(zhuǎn)換模塊將VMM接收到的顯卡的IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS;所述GOS通過顯卡驅(qū)動處理由VMM發(fā)送過來的顯卡的IRQ。
      在本發(fā)明中,為保證直接存儲器訪問(DMA),讓VMM運(yùn)行在高端內(nèi)存,GOS運(yùn)行在低端內(nèi)存。這樣GOS的物理內(nèi)存地址與機(jī)器的內(nèi)存地址一致,GOS不需要修改就能滿足DMA的需要,并且,SOS是修改過的系統(tǒng),也可以滿足DMA的需要。本領(lǐng)域的普通技術(shù)人員應(yīng)該容易理解,GOS也可以不運(yùn)行在低端內(nèi)存,特別是同時運(yùn)行多個GOS時,可以通過在VMM中攔截DMA指令,修改內(nèi)存地址來解決DMA問題,或者直接修改GOS中關(guān)于內(nèi)存的處理。
      其中,在通信模塊中,VMM通過中斷或事件通道(Event Channel)與SOS和GOS通信,SOS通過hypercall與VMM通信,GOS通過vmcall與VMM通信。
      由于GOS對顯卡的資源配置可能與SOS對顯卡的資源配置不一致,GOS若要對顯卡直接進(jìn)行訪問,就需要先進(jìn)行資源轉(zhuǎn)換,這一工作由資源轉(zhuǎn)換模塊來完成。來自于GOS的顯卡訪問數(shù)據(jù)到達(dá)VMM時,資源轉(zhuǎn)換模塊在資源轉(zhuǎn)換表中查找資源轉(zhuǎn)換關(guān)系,將GOS的IO請求地址轉(zhuǎn)化成顯卡的真實(shí)IO地址,同時把GOS對顯卡分配的MMIO映射到顯卡的物理MMIO上,并把VMM接收到的顯卡的IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS。
      資源轉(zhuǎn)換表是在對顯卡的資源配置過程中產(chǎn)生的。配置過程為SOS啟動,掃描PCI總線,獲取顯卡信息,為顯卡分配資源(IRQ、IO、MMIO);GOS啟動,掃描虛擬PCI總線,發(fā)現(xiàn)由DM提供的真實(shí)顯卡,獲取顯卡信息,為顯卡分配資源(IRQ、IO、MMIO);GOS對顯卡的資源分配由DM負(fù)責(zé)解析,DM根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM。該資源轉(zhuǎn)換表中包括SOS和GOS分別對顯卡分配的IO的對應(yīng)關(guān)系、IRQ的對應(yīng)關(guān)系和MMIO的對應(yīng)關(guān)系。
      這樣,通過DM和VMM的協(xié)助,GOS可以直接訪問到顯卡硬件,同時,SOS按照原來的單一系統(tǒng)的方式訪問顯卡硬件。
      圖2所示的虛擬機(jī)系統(tǒng),可能會出現(xiàn)多個操作系統(tǒng)同時寫屏幕的現(xiàn)象,后臺操作系統(tǒng)切換到前臺時,顯示模式也可能會改變,需要重新設(shè)置顯示模式,這些都給使用帶來了不便。有鑒于此,以下提出一種改進(jìn)方案。
      圖3是圖2所示的虛擬機(jī)系統(tǒng)的改進(jìn),在該虛擬機(jī)系統(tǒng)中,SOS進(jìn)一步包括鍵盤切換模塊,VMM進(jìn)一步包括切換模塊和訪問控制模塊,SOS和GOS進(jìn)一步包括顯卡寄存器保存/恢復(fù)模塊,其中所述鍵盤切換模塊用于接收鍵盤輸入信號,判斷該信號是否為系統(tǒng)切換信號,并將系統(tǒng)切換信號對應(yīng)的切換信息通過通信模塊發(fā)送到切換模塊;所述切換模塊用于根據(jù)切換信息通過通信模塊發(fā)送顯卡寄存器保存/恢復(fù)信號到顯卡寄存器保存/恢復(fù)模塊,并且發(fā)送訪問控制信號到訪問控制模塊;所述訪問控制模塊用于根據(jù)訪問控制信號改變操作系統(tǒng)對顯卡的訪問權(quán)限;所述顯卡寄存器保存/恢復(fù)模塊用于根據(jù)顯卡寄存器保存/恢復(fù)信號對顯卡寄存器的值進(jìn)行保存或恢復(fù),并通過通信模塊發(fā)送顯卡寄存器保存成功信號或顯卡寄存器恢復(fù)成功信號到切換模塊。
      下面分別對上述各模塊的處理流程進(jìn)行具體描述。
      如圖4所示,鍵盤切換模塊的處理流程為接收鍵盤輸入信號,鍵盤中斷處理程序判斷該信號是否為系統(tǒng)切換信號,若是,通過通信模塊發(fā)送對應(yīng)的切換信息到切換模塊,否則,進(jìn)行正常的輸入處理。
      如圖5所示,切換模塊的處理流程為接收來自鍵盤切換模塊的切換信息后,根據(jù)切換信息判斷前后臺狀態(tài)改變的操作系統(tǒng),發(fā)送顯卡寄存器保存信號到切換到后臺的操作系統(tǒng)的顯卡寄存器保存/恢復(fù)模塊,接收到顯卡寄存器保存成功信號后,發(fā)送訪問控制信號到訪問控制模塊,然后,發(fā)送顯卡寄存器恢復(fù)信號到切換到前臺的操作系統(tǒng)的顯卡寄存器保存/恢復(fù)模塊,并接收顯卡寄存器恢復(fù)成功信號。
      如圖6所示,顯卡寄存器保存/恢復(fù)模塊的處理流程為接收到顯卡寄存器保存/恢復(fù)信號后,判斷是否保存顯卡寄存器的值,若接收到顯卡寄存器保存信號,調(diào)用VGA BIOS服務(wù)對顯卡寄存器的值進(jìn)行保存,并通過通信模塊發(fā)送顯卡寄存器保存成功信號到切換模塊;若接收到顯卡寄存器恢復(fù)信號,調(diào)用VGA BIOS服務(wù)對顯卡寄存器的值進(jìn)行恢復(fù),并通過通信模塊發(fā)送顯卡寄存器恢復(fù)成功信號到切換模塊。
      如圖7所示,訪問控制模塊接收到訪問控制信號后,首先判斷前后臺狀態(tài)改變的操作系統(tǒng)是GOS還是SOS,對GOS和SOS執(zhí)行不同的處理。
      對于GOS,發(fā)送相應(yīng)控制信號到資源轉(zhuǎn)換模塊,資源轉(zhuǎn)換模塊根據(jù)控制信號禁用后臺操作系統(tǒng)的資源轉(zhuǎn)換表并啟用前臺操作系統(tǒng)的資源轉(zhuǎn)換表。對于SOS,發(fā)送相應(yīng)控制信號到SOS中的顯卡驅(qū)動,由該顯卡驅(qū)動打開或關(guān)閉SOS對顯卡的訪問權(quán)限。若所述SOS切換到前臺,該SOS的顯卡驅(qū)動打開其對顯卡的訪問權(quán)限,若所述SOS切換到后臺,該SOS的顯卡驅(qū)動關(guān)閉其對顯卡的訪問權(quán)限。
      改進(jìn)的虛擬機(jī)系統(tǒng)解決了多個操作系統(tǒng)切換使用顯卡的問題,即只有位于前臺的操作系統(tǒng)才能訪問顯卡,不會出現(xiàn)多個操作系統(tǒng)同時寫屏幕的情況。并且,通過顯卡寄存器的保存和恢復(fù),使得切換使用顯卡時各操作系統(tǒng)的顯示模式保持不變。
      但是,在系統(tǒng)切換后,如果沒有進(jìn)行屏幕刷新,由于顯存的內(nèi)容沒有更新,顯示器顯示的內(nèi)容為切換前的內(nèi)容。同顯卡寄存器的保存和恢復(fù)類似,通過顯存的保存和恢復(fù)可解決此問題。
      即在GOS中和SOS中,還可以進(jìn)一步包括顯存保存/恢復(fù)模塊,切換模塊發(fā)送顯存保存/恢復(fù)信號到顯存保存/恢復(fù)模塊,顯存保存/恢復(fù)模塊根據(jù)顯存保存/恢復(fù)信號對顯存的內(nèi)容進(jìn)行保存或恢復(fù)。切換模塊根據(jù)切換信息判斷前后臺狀態(tài)改變的操作系統(tǒng),發(fā)送顯存保存信號到切換到后臺的操作系統(tǒng)的顯存保存/恢復(fù)模塊,發(fā)送顯存恢復(fù)信號到切換到前臺的操作系統(tǒng)的顯存保存/恢復(fù)模塊。顯存保存/恢復(fù)模塊在接收到顯存保存信號時,對顯存的內(nèi)容進(jìn)行保存,在接收到顯存恢復(fù)信號時,對顯存的內(nèi)容進(jìn)行恢復(fù)。
      本發(fā)明的虛擬機(jī)系統(tǒng)顯卡訪問方法包括以下步驟a)GOS的顯卡訪問數(shù)據(jù)通過顯卡驅(qū)動發(fā)送到VMM;b)VMM根據(jù)預(yù)先配置的資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO;c)VMM將處理后的數(shù)據(jù)發(fā)送到顯卡。
      進(jìn)一步,在步驟c)后還包括步驟d)VMM接收顯卡的IRQ,并根據(jù)資源轉(zhuǎn)換表將該IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS。
      其中,所述資源轉(zhuǎn)換表中包括SOS和GOS分別對顯卡分配的IO的對應(yīng)關(guān)系、IRQ的對應(yīng)關(guān)系和MMIO的對應(yīng)關(guān)系。為保證DMA,讓VMM運(yùn)行在高端內(nèi)存,GOS運(yùn)行在低端內(nèi)存,前面已經(jīng)介紹到GOS也可以不運(yùn)行在低端內(nèi)存,特別是同時運(yùn)行多個GOS時,可以通過在VMM中攔截DMA指令,修改內(nèi)存地址來解決DMA問題,或者直接修改GOS中關(guān)于內(nèi)存的處理。
      所述資源轉(zhuǎn)換表的配置過程為1)SOS獲取顯卡信息,為顯卡分配資源;2)GOS通過SOS中的DM獲取顯卡信息,為顯卡分配資源;3)DM根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM。
      進(jìn)一步,在步驟a)之前,還包括步驟前臺操作系統(tǒng)切換到后臺時,保存顯示模式,后臺操作系統(tǒng)切換到前臺時,恢復(fù)顯示模式。
      進(jìn)一步,在步驟a)之前,還包括步驟前臺操作系統(tǒng)切換到后臺時,保存顯存的內(nèi)容,后臺操作系統(tǒng)切換到前臺時,恢復(fù)顯存的內(nèi)容。
      使用本發(fā)明的方法,前臺操作系統(tǒng)對顯卡的操作完全與獨(dú)立的操作系統(tǒng)對顯卡的操作相當(dāng),能用到顯卡的全部硬件加速特性。一個操作系統(tǒng)發(fā)生故障的時候,不會影響其它操作系統(tǒng)的顯示??梢酝ㄟ^切換,使其它操作系統(tǒng)獲得對顯卡的控制權(quán)。
      本發(fā)明的虛擬機(jī)系統(tǒng)及其顯卡使用方法,不再提供虛擬的顯卡類型,GOS可以看到真實(shí)的物理顯卡,顯示器顯示的內(nèi)容由VMM根據(jù)系統(tǒng)的切換控制,始終顯示切換到前臺的系統(tǒng)內(nèi)容,并可以使用硬件加速特性,保證了顯示性能。
      最后應(yīng)當(dāng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
      權(quán)利要求
      1.一種虛擬機(jī)系統(tǒng),包括虛擬機(jī)監(jiān)視器VMM、服務(wù)操作系統(tǒng)SOS和至少一個客戶操作系統(tǒng)GOS,其中,所述VMM包括通信模塊,該通信模塊用于VMM和SOS及各個GOS之間的通信;所述SOS包括設(shè)備模型DM,該DM用于獲取顯卡信息;其特征在于所述GOS通過通信模塊訪問DM,獲取顯卡信息,對顯卡進(jìn)行資源配置,并將資源配置信息通過通信模塊發(fā)送到DM,所述GOS還包括顯卡驅(qū)動,用于將GOS的顯卡訪問數(shù)據(jù)發(fā)送到VMM;所述SOS中的DM還用于獲取SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息,并根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM;所述VMM還包括資源轉(zhuǎn)換模塊,用于根據(jù)資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO,并將處理后的數(shù)據(jù)發(fā)送到顯卡。
      2.如權(quán)利要求1所述的系統(tǒng),其特征在于所述資源轉(zhuǎn)換模塊進(jìn)一步將VMM接收到的顯卡的IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS;所述GOS進(jìn)一步通過顯卡驅(qū)動處理由VMM發(fā)送過來的顯卡的IRQ。
      3.如權(quán)利要求1或2所述的系統(tǒng),其特征在于所述資源轉(zhuǎn)換表中包括SOS和GOS分別對顯卡分配的IO的對應(yīng)關(guān)系、IRQ的對應(yīng)關(guān)系和MMIO的對應(yīng)關(guān)系。
      4.如權(quán)利要求1或2所述的系統(tǒng),其特征在于所述VMM運(yùn)行在高端內(nèi)存,所述GOS運(yùn)行在低端內(nèi)存。
      5.如權(quán)利要求1或2所述的系統(tǒng),其特征在于所述SOS進(jìn)一步包括鍵盤切換模塊,所述VMM進(jìn)一步包括切換模塊和訪問控制模塊,所述SOS和所述GOS進(jìn)一步包括顯卡寄存器保存/恢復(fù)模塊,所述鍵盤切換模塊用于接收鍵盤輸入信號,判斷該信號是否為系統(tǒng)切換信號,并將系統(tǒng)切換信號對應(yīng)的切換信息通過通信模塊發(fā)送到切換模塊;所述切換模塊用于根據(jù)切換信息通過通信模塊發(fā)送顯卡寄存器保存/恢復(fù)信號到顯卡寄存器保存/恢復(fù)模塊,并且發(fā)送訪問控制信號到訪問控制模塊;所述訪問控制模塊用于根據(jù)訪問控制信號改變操作系統(tǒng)對顯卡的訪問權(quán)限;所述顯卡寄存器保存/恢復(fù)模塊用于根據(jù)顯卡寄存器保存/恢復(fù)信號對顯卡寄存器的值進(jìn)行保存或恢復(fù),并通過通信模塊發(fā)送顯卡寄存器保存成功信號或顯卡寄存器恢復(fù)成功信號到切換模塊。
      6.如權(quán)利要求5所述的系統(tǒng),其特征在于所述訪問控制模塊在接收到訪問控制信號時,若前后臺狀態(tài)改變的操作系統(tǒng)是GOS,發(fā)送相應(yīng)控制信號到資源轉(zhuǎn)換模塊,資源轉(zhuǎn)換模塊根據(jù)控制信號禁用后臺操作系統(tǒng)的資源轉(zhuǎn)換表并啟用前臺操作系統(tǒng)的資源轉(zhuǎn)換表。
      7.如權(quán)利要求5所述的系統(tǒng),其特征在于所述訪問控制模塊在接收到訪問控制信號時,若前后臺狀態(tài)改變的操作系統(tǒng)是SOS,發(fā)送相應(yīng)控制信號到SOS中的顯卡驅(qū)動,由該顯卡驅(qū)動打開或關(guān)閉SOS對顯卡的訪問權(quán)限。
      8.如權(quán)利要求5所述的系統(tǒng),其特征在于所述切換模塊根據(jù)切換信息判斷前后臺狀態(tài)改變的操作系統(tǒng),發(fā)送顯卡寄存器保存信號到切換到后臺的操作系統(tǒng)的顯卡寄存器保存/恢復(fù)模塊,發(fā)送顯卡寄存器恢復(fù)信號到切換到前臺的操作系統(tǒng)的顯卡寄存器保存/恢復(fù)模塊。
      9.如權(quán)利要求5所述的系統(tǒng),其特征在于所述GOS和SOS進(jìn)一步包括顯存保存/恢復(fù)模塊;所述切換模塊進(jìn)一步根據(jù)切換信息通過通信模塊發(fā)送顯存保存/恢復(fù)信號到顯存保存/恢復(fù)模塊;所述顯存保存/恢復(fù)模塊根據(jù)顯存保存/恢復(fù)信號對顯存的內(nèi)容進(jìn)行保存或恢復(fù)。
      10.如權(quán)利要求9所述的系統(tǒng),其特征在于所述切換模塊根據(jù)切換信息判斷前后臺狀態(tài)改變的操作系統(tǒng),發(fā)送顯存保存信號到切換到后臺的操作系統(tǒng)的顯存保存/恢復(fù)模塊,發(fā)送顯存恢復(fù)信號到切換到前臺的操作系統(tǒng)的顯存保存/恢復(fù)模塊。
      11.一種虛擬機(jī)系統(tǒng)顯卡訪問方法,其特征在于,包括以下步驟a)GOS的顯卡訪問數(shù)據(jù)通過顯卡驅(qū)動發(fā)送到VMM;b)VMM根據(jù)預(yù)先配置的資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO;c)VMM將處理后的數(shù)據(jù)發(fā)送到顯卡。
      12.如權(quán)利要求11所述的方法,其特征在于,在步驟c)后還包括步驟d)VMM接收顯卡的IRQ,并根據(jù)資源轉(zhuǎn)換表將該IRQ轉(zhuǎn)換成GOS的中斷號后發(fā)送給GOS。
      13.如權(quán)利要求11或12所述的方法,其特征在于所述資源轉(zhuǎn)換表中包括SOS和GOS分別對顯卡分配的IO的對應(yīng)關(guān)系、IRQ的對應(yīng)關(guān)系和MMIO的對應(yīng)關(guān)系。
      14.如權(quán)利要求11或12所述的方法,其特征在于所述VMM運(yùn)行在高端內(nèi)存,所述GOS運(yùn)行在低端內(nèi)存。
      15.如權(quán)利要求11或12所述的方法,其特征在于,所述資源轉(zhuǎn)換表的配置過程為1)SOS獲取顯卡信息,為顯卡分配資源;2)GOS通過SOS中的DM獲取顯卡信息,為顯卡分配資源;3)DM根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM。
      16.如權(quán)利要求11或12所述的方法,其特征在于,在步驟a)之前還包括步驟前臺操作系統(tǒng)切換到后臺時,保存顯示模式,后臺操作系統(tǒng)切換到前臺時,恢復(fù)顯示模式。
      17.如權(quán)利要求11或12所述的方法,其特征在于,在步驟a)之前還包括步驟前臺操作系統(tǒng)切換到后臺時,保存顯存的內(nèi)容,后臺操作系統(tǒng)切換到前臺時,恢復(fù)顯存的內(nèi)容。
      全文摘要
      本發(fā)明公開了一種虛擬機(jī)系統(tǒng)及其顯卡訪問方法。該系統(tǒng)包括VMM、SOS和至少一個GOS。GOS通過SOS中的DM獲取顯卡信息,對顯卡進(jìn)行資源配置,將資源配置信息發(fā)送到DM;DM根據(jù)SOS對顯卡的資源配置信息和GOS對顯卡的資源配置信息生成資源轉(zhuǎn)換表發(fā)送到VMM;VMM中的資源轉(zhuǎn)換模塊根據(jù)資源轉(zhuǎn)換表對來自GOS的顯卡訪問數(shù)據(jù)進(jìn)行IO地址地轉(zhuǎn)換或?qū)MIO映射到顯卡的物理MMIO,并將處理后的數(shù)據(jù)發(fā)送到顯卡。本發(fā)明的虛擬機(jī)系統(tǒng)及其顯卡訪問方法,每個操作系統(tǒng)看到的都是真實(shí)顯卡,各個操作系統(tǒng)之間通過切換的方式使用顯卡,可以利用顯卡的硬件加速特性,保證了顯示性能。
      文檔編號G06F3/14GK101059762SQ20061007639
      公開日2007年10月24日 申請日期2006年4月20日 優(yōu)先權(quán)日2006年4月20日
      發(fā)明者劉春梅, 劉永鋒, 陳軍 申請人:聯(lián)想(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1