專(zhuān)利名稱(chēng):顯卡、應(yīng)用該顯卡的虛擬機(jī)系統(tǒng)及顯示處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬機(jī)技術(shù),特別是一種顯卡、應(yīng)用該顯卡的虛擬機(jī)系統(tǒng)及 顯示處理方法。
技術(shù)背景目前,虛擬化技術(shù)中對(duì)設(shè)備的使用有幾種方式, 一種是該設(shè)備被獨(dú)占, 一種是該設(shè)備以共享的方式訪問(wèn),但共享的方式訪問(wèn)設(shè)備時(shí),必須為多個(gè)系 統(tǒng)提供一個(gè)虛擬的設(shè)備平臺(tái),然后由某個(gè)主機(jī)系統(tǒng)或服務(wù)系統(tǒng)再來(lái)訪問(wèn)真實(shí) 的設(shè)備;此外,還可以以某種方式使設(shè)備在不同系統(tǒng)間轉(zhuǎn)移,但這種時(shí)候設(shè) 備是不共享的。對(duì)于顯卡這樣的設(shè)備,目前的處理方式要么給一個(gè)系統(tǒng)獨(dú)占,其它系統(tǒng) 沒(méi)有顯示,要么多個(gè)系統(tǒng)共享,每個(gè)系統(tǒng)使用虛擬化的顯卡,通常虛擬出來(lái) 的顯卡與真實(shí)的物理顯卡不一致,為了實(shí)現(xiàn)方便在功能上有很多縮減,如不 支持2D或3D等功能,導(dǎo)致虛擬機(jī)不能用到顯卡的全部硬件加速特性,而此 時(shí)真實(shí)的顯卡只能由主機(jī)系統(tǒng)或服務(wù)系統(tǒng)訪問(wèn),這樣虛擬系統(tǒng)就不能完全利 用顯卡的全部特性,而顯卡又不可能作為一種切換的設(shè)備使用。 發(fā)明內(nèi)容本發(fā)明的目的在于提供一種顯卡、應(yīng)用該顯卡的虛擬機(jī)系統(tǒng)及顯示處理 方法,使得虛擬機(jī)系統(tǒng)中的操作系統(tǒng)都能訪問(wèn)到真實(shí)的顯卡。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種顯卡,包括可劃分為多個(gè)部分的圖形轉(zhuǎn)換表模塊,用于保存與一個(gè)或多個(gè)操作系統(tǒng) 對(duì)應(yīng)的圖形轉(zhuǎn)換表;可劃分為多個(gè)部分的幀緩存模塊,分配給一個(gè)或多個(gè)操作系統(tǒng);可劃分為多個(gè)部分的MMIO/IO模塊,包括與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的 顯卡邏輯接口所要用到的全部寄存器;調(diào)度模塊,用于調(diào)度對(duì)應(yīng)不同操作系統(tǒng)的顯卡邏輯接口所對(duì)應(yīng)的顯示功
能的硬件處理;圖形處理單元,用于根據(jù)調(diào)度結(jié)果操作與被調(diào)度到的顯卡邏輯接口對(duì)應(yīng) 的圖形轉(zhuǎn)換表、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。 上述的顯卡,其中,還包括虛擬機(jī)指示模塊,用于從虛擬機(jī)監(jiān)視器獲取一指令,所述指令指示哪個(gè) 操作系統(tǒng)獲取了焦點(diǎn);所述調(diào)度模塊具體用于根據(jù)所述虛擬機(jī)指示模塊和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口。上述的顯卡,其中,所述圖形顯示控制模塊用于將獲取了焦點(diǎn)的操作系 統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。上述的顯卡,其中,還包括資源分配記錄模塊,由虛擬機(jī)監(jiān)視器或操作系統(tǒng)訪問(wèn),用于保存顯卡資 源的分配情況。上述的顯卡,其中,所述資源分配記錄模塊具體用于保存各個(gè)操作系統(tǒng) 對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息。上述的顯卡,其中,所述資源分配記錄模塊具體用于保存各個(gè)操作系統(tǒng) 對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息,還用于保存顯 卡中尚未使用的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息,提供 給操作系統(tǒng)自行分配。上述的顯卡,其中,所述資源分配記錄模塊具體為PCI/PCI-E配置空間,與操作系統(tǒng)個(gè)數(shù)一致且相對(duì)應(yīng),用于保存每個(gè)操作 系統(tǒng)對(duì)應(yīng)的顯卡MMIO、圖形轉(zhuǎn)換表和幀緩存的大小以及資源地址范圍。為了更好的實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種虛擬機(jī)系統(tǒng),包括一顯卡,其中,所述顯卡包括可劃分為多個(gè)部分的圖形轉(zhuǎn)換表模塊,用于保存與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的圖形轉(zhuǎn)換表;可劃分為多個(gè)部分的幀緩存模塊,分配給一個(gè)或多個(gè)操作系統(tǒng);. 可劃分為多個(gè)部分的MMIO/IO模塊,包括與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的顯卡邏輯接口所要用到的全部寄存器;調(diào)度模塊,用于調(diào)度對(duì)應(yīng)不同操作系統(tǒng)的顯卡邏輯接口所對(duì)應(yīng)的顯示功 能的硬件處理;圖形處理單元,用于根據(jù)調(diào)度結(jié)果操作與被調(diào)度到的顯卡邏輯接口對(duì)應(yīng) 的圖形轉(zhuǎn)換表、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示; 所述虛擬機(jī)系統(tǒng)還包括地址映射建立模塊,用于建立操作系統(tǒng)為MMIO/IO空間、圖形轉(zhuǎn)換表空 間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間的映射關(guān)系;虛擬機(jī)通信模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將上述顯卡中分配給操作 系統(tǒng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀緩存空間通知對(duì)應(yīng)的操作系統(tǒng), 并用于截獲操作系統(tǒng)的顯卡驅(qū)動(dòng)模塊對(duì)顯卡的操作,根據(jù)地址映射建立模塊 中建立的映射關(guān)系轉(zhuǎn)換地址后發(fā)送給顯卡。上述的虛擬機(jī)系統(tǒng),其中,所述顯卡還包括虛擬機(jī)指示模塊,用于從虛擬機(jī)監(jiān)視器獲取一指令,所述指令指示哪個(gè) 操作系統(tǒng)獲取了焦點(diǎn);所述調(diào)度模塊具體用于根據(jù)所述虛擬機(jī)指示模塊和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口。上述的虛擬機(jī)系統(tǒng),其中,所述圖形顯示控制模塊用于將獲取了焦點(diǎn)的 操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。上述的虛擬機(jī)系統(tǒng),其中,所述顯卡還包括資源分配記錄模塊,由虛擬機(jī)監(jiān)視器或操作系統(tǒng)訪問(wèn),用于保存顯卡資 源的分配情況;所述虛擬機(jī)通信模塊具體從資源分配記錄模塊獲取分配給操作系統(tǒng)的 MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀緩存空間。上述的虛擬機(jī)系統(tǒng),其中,所述資源分配記錄模塊具體用于保存各個(gè)操 作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息。上述的虛擬機(jī)系統(tǒng),其中,所述資源分配記錄模塊具體用于保存各個(gè)操 作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息,還用于
保存顯卡中尚未使用的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息,提供給操作系統(tǒng)自行分配。上述的虛擬機(jī)系統(tǒng),其中,所述資源分配記錄模塊具體為PCI/PCI-E配置空間,與操作系統(tǒng)個(gè)數(shù)一致且相對(duì)應(yīng),用于保存每個(gè)操作 系統(tǒng)對(duì)應(yīng)的顯卡MMIO、圖形轉(zhuǎn)換表和幀緩存的大小以及資源地址范圍。為了更好的實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種顯示處理方法,其中, 包括顯卡資源分配通知步驟,虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí), 虛擬機(jī)通信模塊將顯卡中對(duì)應(yīng)該操作系統(tǒng)的邏輯接口的MMIO/IO空間、圖形 轉(zhuǎn)換表空間、幀緩存空間的大小通知對(duì)應(yīng)的操作系統(tǒng);所述顯卡中的MMI0/10 空間、圖形轉(zhuǎn)換表空間、幀緩存空間被分配給一個(gè)或多個(gè)操作系統(tǒng);資源映射建立步驟,操作系統(tǒng)獲得MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀 緩存空間大小后,為其分配地址范圍,并由虛擬機(jī)監(jiān)視器建立操作系統(tǒng)為 MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資 源之間的映射關(guān)系;圖形處理單元計(jì)算處理步驟,圖形處理單元處理被調(diào)度到的顯卡邏輯接口 對(duì)應(yīng)的圖形轉(zhuǎn)換表、幀緩存及寄存器;顯示輸出步驟,將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。 上述的顯示處理方法,其中,獲取了焦點(diǎn)的操作系統(tǒng)被優(yōu)先調(diào)度。 上述的顯示處理方法,其中,所述顯示輸出步驟中,將獲取了焦點(diǎn)的操 作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。上述的顯示處理方法,其中,所述顯卡資源分配通知步驟具體為 虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器攔截操作 系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),將顯卡中分配給對(duì)應(yīng)操作系統(tǒng)的MMIO/IO空 間、GTT空間、幀緩存空間的大小通知操作系統(tǒng)。上述的顯示處理方法,其中,所述顯卡資源分配通知步驟具體為 虛擬機(jī)啟動(dòng)后,操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器攔截操作系 統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),并獲取顯卡中尚未使用的MMIO/IO空間、GTT 空間和幀緩存空間的信息提供給操作系統(tǒng),由操作系統(tǒng)決定自己對(duì)應(yīng)的邏輯
接口可以使用的資源大小。上述的顯示處理方法,其中,所述顯卡資源分配通知步驟具體為 虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器攔截操作系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),并獲取操作系統(tǒng)對(duì)應(yīng)的PCI/PCI-E配置空間中的MMIO/IO空間、GTT空間和幀緩存空間的信息提供給操作系統(tǒng)。本發(fā)明的顯卡、應(yīng)用該顯卡的虛擬機(jī)系統(tǒng)及顯示處理方法,通過(guò)將圖形 轉(zhuǎn)換表模塊、幀緩存模塊和MMIO/IO模塊分成幾個(gè)部分,分別配置給不同的 操作系統(tǒng)的邏輯接口,這樣對(duì)應(yīng)的操作系統(tǒng)獲得一套獨(dú)占的資源,都能訪問(wèn) 到真實(shí)的顯卡。
圖1為本發(fā)明的顯卡的結(jié)構(gòu)示意圖; 圖2為本發(fā)明的虛擬機(jī)系統(tǒng)的顯示處理方法的流程圖。
具體實(shí)施方式
本發(fā)明的顯卡、應(yīng)用該顯卡的虛擬機(jī)系統(tǒng)及顯示處理方法中,通過(guò)將現(xiàn) 有顯卡中的幀緩存分為幾個(gè)部分,分別提供給虛擬機(jī)系統(tǒng)中的多個(gè)操作系統(tǒng), 為每個(gè)操作系統(tǒng)提供獨(dú)占的邏輯顯卡接口 。下面結(jié)合不同的實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明?!吹谝粚?shí)施例〉在本發(fā)明的第一實(shí)施例中,各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、GTT (Graphic Translation Table,圖形轉(zhuǎn)換表)空間和幀緩存空間被預(yù)先分配并保 存,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器把預(yù)先分配給各個(gè)操作系 統(tǒng)的MMIO/IO空間、GTT空間、幀緩存空間的大小通知對(duì)應(yīng)的操作系統(tǒng)。本發(fā)明的第一實(shí)施例中,顯卡如圖l所示,包括PCI/PCI-E配置空間、虛 擬機(jī)指示模塊、調(diào)度模塊、資源分配保存模塊、GPU、 MMIO/IO模塊、GTT 模塊、幀緩存模塊(Frame Buffer)和圖形顯示控制模塊,GTT模塊,幀緩存模塊資源可以在系統(tǒng)主存中,其中PCI/PCI-E配置空間,用于保存顯卡MMIO、 GTT和幀緩存的大小以及資源地址范圍;在本發(fā)明的第一實(shí)施例中,PCI/PCI-E配置空間為一個(gè);MMIO/IO模塊,分成多個(gè)部分,每個(gè)部分包括與各操作系統(tǒng)對(duì)應(yīng)的顯卡 邏輯接口所要用到的全部寄存器(如顯示模式寄存器、控制寄存器、狀態(tài)寄 存器等);在此,每個(gè)操作系統(tǒng)對(duì)應(yīng)的部分在結(jié)構(gòu)方面相同;GTT模塊,分成多個(gè)部分,用于保存與各個(gè)操作系統(tǒng)對(duì)應(yīng)的GTT,該GTT 用于保存幀緩存地址和物理內(nèi)存地址之間的映射關(guān)系;在此,應(yīng)當(dāng)進(jìn)行說(shuō)明的是,上述的GTT (圖形轉(zhuǎn)換表)只是業(yè)界對(duì)實(shí)現(xiàn) 該功能的軟件模塊或硬件模塊的其中一種叫法,還存在其他的名稱(chēng),如GART (Graphics Address Remapping Table,顯卡地址重新分配表)等,但為了方便 描述,在本發(fā)明中統(tǒng)一將其命名為GTT。幀緩存模塊,分成多個(gè)部分,以分配給相應(yīng)的操作系統(tǒng);其中,GTT模塊和幀緩存模塊中的各個(gè)部分的大小對(duì)應(yīng)于各操作系統(tǒng)可 以不同,各操作系統(tǒng)被分配到的幀緩存可以不同。資源分配記錄模塊,由虛擬機(jī)監(jiān)視器或操作系統(tǒng)訪問(wèn),用于保存各個(gè)操 作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、GTT空間和幀緩存空間的信息;虛擬機(jī)指示模塊,用于接收VMM發(fā)送的指示哪個(gè)操作系統(tǒng)獲取了焦點(diǎn)的指令;調(diào)度模塊,用于根據(jù)虛擬機(jī)指示模塊發(fā)送的指令和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口,并從資源分配記錄模塊獲取被調(diào)度到的邏輯接口對(duì)應(yīng)的 MMIO空間、GTT空間和幀緩存空間信息發(fā)送給GPU (Grapic Processing Unit, 圖形處理單元);GPU,用于根據(jù)調(diào)度模塊發(fā)送的被調(diào)度到的邏輯接口的信息操作對(duì)應(yīng)的 GTT、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi) 容發(fā)送到顯示器進(jìn)行顯示。本發(fā)明的虛擬機(jī)操作系統(tǒng)包括上述的顯卡;操作系統(tǒng)焦點(diǎn)獲取通知模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將獲取了焦點(diǎn) 的操作系統(tǒng)通知虛擬機(jī)指示模塊;地址映射建立模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于建立操作系統(tǒng)為 MMIO/IO空間、GTT空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間
的映射關(guān)系;虛擬機(jī)通信模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將上述顯卡中分配給操作系統(tǒng)的MMIO/IO空間、GTT空間、幀緩存空間通知對(duì)應(yīng)的操作系統(tǒng),并用于 截獲操作系統(tǒng)的顯卡驅(qū)動(dòng)模塊對(duì)顯卡的操作,根據(jù)地址映射建立模塊中建立 的映射關(guān)系轉(zhuǎn)換地址后發(fā)送給顯卡,MMIO和顯存的操作根據(jù)地址映射建立 模塊中建立的映射關(guān)系建立虛擬機(jī)監(jiān)視器中的頁(yè)表。。這樣,對(duì)應(yīng)的操作系 統(tǒng)獲得一套獨(dú)占的資源,相當(dāng)于獲得了 一個(gè)邏輯的顯卡接口 。下面結(jié)合附圖對(duì)本發(fā)明的虛擬機(jī)的顯示處理方法進(jìn)行詳細(xì)的說(shuō)明。 如圖2所示,本發(fā)明的虛擬機(jī)的顯示處理方法包括如下步驟 PCI/PCI-E資源分配步驟,系統(tǒng)啟動(dòng)時(shí),虛擬機(jī)監(jiān)視器或host OS從顯卡 的PCI/PCI-E配置空間讀出MMIO/IO的大小,GTT的大小,F(xiàn)B的大小,并為顯 卡分配這些資源的地址范圍后重新寫(xiě)入顯卡的PCI/PCI-E配置空間;顯卡資源分配通知步驟,虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí), 虛擬機(jī)監(jiān)視器攔截操作系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),虛擬機(jī)通信模塊將顯卡 中分配給各個(gè)操作系統(tǒng)的MMIO/IO空間、GTT空間、幀緩存空間的大小通知對(duì)應(yīng)的操作系統(tǒng),使每個(gè)啟動(dòng)的操作系統(tǒng)獲得一套獨(dú)占的資源;資源映射建立步驟,操作系統(tǒng)獲得MMIO/IO空間、GTT空間、幀緩存空 間大小后,為其分配地址范圍,地址映射建立模塊建立操作系統(tǒng)為MMI0/10 空間、GTT空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間的映射關(guān) 系;GPU計(jì)算處理步驟,GPU根據(jù)被調(diào)度到的邏輯接口的信息(即相應(yīng)的寄 存器內(nèi)容和命令)處理該邏輯接口對(duì)應(yīng)的GTT和幀緩存;被調(diào)度到的邏輯接 口與調(diào)度策略和該邏輯接口對(duì)應(yīng)的操作系統(tǒng)是否獲取了焦點(diǎn)有關(guān),獲得了焦 點(diǎn)的操作系統(tǒng)具有更高的優(yōu)先權(quán)。如果不需要GPU參與的顯示內(nèi)容,則由操 作系統(tǒng)操作相應(yīng)的GTT和FB,而不需要進(jìn)行調(diào)度,這種情況下,多個(gè)操作系 統(tǒng)可以同時(shí)并行進(jìn)行。顯示輸出步驟,將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。 射
所謂獲得了焦點(diǎn)的操作系統(tǒng)為擁有了輸入設(shè)備(如鍵盤(pán)、鼠標(biāo))的操作 系統(tǒng);同時(shí),GPU計(jì)算處理步驟中優(yōu)先處理了獲得了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的顯示命令后,才處理其他操作系統(tǒng)對(duì)應(yīng)的顯示命令,然而由于圖形顯示控制模 塊的控制,只有獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容才會(huì)被發(fā)送到顯示器進(jìn)行顯示。GPU計(jì)算處理步驟中,GPU首先獲取被調(diào)度到的邏輯接口對(duì)應(yīng)的 MMIO/IO在顯卡內(nèi)部的基地址,并根據(jù)該基地址所對(duì)應(yīng)的寄存器來(lái)進(jìn)行運(yùn)算, 并操作相應(yīng)的GTT和幀緩存?!吹诙?shí)施例〉在本發(fā)明的第二實(shí)施例中,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視 器將顯卡中尚未使用的MMIO/IO空間、GTT空間和幀緩存空間的信息提供給 操作系統(tǒng),由操作系統(tǒng)自行選擇空間。本發(fā)明的第二實(shí)施例中,顯卡包括PCI/PCI-E配置空間、虛擬機(jī)指示模塊、 調(diào)度模塊、資源分配保存模塊、GPU、 MMIO/IO模塊、GTT模塊、幀緩存模 塊和圖形顯示控制模塊,GTT模塊,幀緩存模塊資源可以在系統(tǒng)主存中,其中PCI/PCI-E配置空間,用于保存顯卡MMIO、 GTT (Grapic TranslationTable,圖形轉(zhuǎn)換表)和幀緩存的大小以及資源地址范圍;在本發(fā)明的第二實(shí) 施例中,PCI/PCI-E配置空間為一個(gè);當(dāng)然,也可以用PCI/PCI-E配置空間配合一些寄存器來(lái)保存這些內(nèi)容。MMIO/IO模塊,分成多個(gè)部分,每個(gè)部分包括與各操作系統(tǒng)對(duì)應(yīng)的顯卡 邏輯接口所要用到的全部寄存器(如顯示模式寄存器、控制寄存器、狀態(tài)寄 存器等);在此,每個(gè)操作系統(tǒng)對(duì)應(yīng)的部分在結(jié)構(gòu)方面相同;GTT模塊,分成多個(gè)部分,用于保存與各個(gè)操作系統(tǒng)對(duì)應(yīng)的GTT,該GTT用于保存幀緩存地址和物理內(nèi)存地址之間的映射關(guān)系;幀緩存模塊,分成多個(gè)部分,以分配給相應(yīng)的操作系統(tǒng);其中,GTT模塊和幀緩存模塊中的各個(gè)部分的大小對(duì)應(yīng)于各操作系統(tǒng)可以不同,各操作系統(tǒng)被分配到的幀緩存可以不同。
資源分配記錄模塊,由虛擬機(jī)監(jiān)視器或操作系統(tǒng)訪問(wèn),用于保存各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、GTT空間和幀緩存空間的信息;同時(shí)還用于保 存顯卡中尚未使用的MMIOAO空間、GTT空間和幀緩存空間的信息,并將顯 卡中尚未使用的MMIO/IO空間、GTT空間和幀緩存空間的信息提供給尚未與 顯卡建立連接的操作系統(tǒng),由尚未與顯卡建立連接的操作系統(tǒng)決定自己對(duì)應(yīng) 的邏輯接口可以使用的資源大??;虛擬機(jī)指示模塊,用于接收VMM發(fā)送的指示哪個(gè)操作系統(tǒng)獲取了焦點(diǎn)的指令;調(diào)度模塊,用于根據(jù)虛擬機(jī)指示模塊發(fā)送的指令和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口,并從資源分配記錄模塊獲取被調(diào)度到的邏輯接口對(duì)應(yīng)的 MMIO空間、GTT空間和幀緩存空間信息發(fā)送給GPU (GrapicProcessingUnit, 圖形處理單元);GPU,用于根據(jù)調(diào)度模塊發(fā)送的被調(diào)度到的邏輯接口的信息操作對(duì)應(yīng)的 GTT、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi) 容發(fā)送到顯示器進(jìn)行顯示。本發(fā)明的第二實(shí)施例中的虛擬機(jī)操作系統(tǒng)包括 上述的顯卡;操作系統(tǒng)焦點(diǎn)獲取通知模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將獲取了焦點(diǎn) 的操作系統(tǒng)通知虛擬機(jī)指示模塊;地址映射建立模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于建立操作系統(tǒng)為 MMIO/IO空間、GTT空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間 的映射關(guān)系;在此,操作系統(tǒng)首先從資源分配記錄模塊中獲取顯卡中尚未使 用的MMIO/IO空間、GTT空間和幀緩存空間的信息,并決定自己對(duì)應(yīng)的顯卡 邏輯接口使用的資源的大?。惶摂M機(jī)通信模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將上述顯卡中尚未分配給 操作系統(tǒng)的MMIO/IO空間、GTT空間、幀緩存空間通知操作系統(tǒng),并用于截 獲操作系統(tǒng)的顯卡驅(qū)動(dòng)模塊對(duì)顯卡的操作,根據(jù)地址映射建立模塊中建立的 映射關(guān)系轉(zhuǎn)換地址后發(fā)送給顯卡,MMIO和顯存的操作根據(jù)地址映射建立模
塊中建立的映射關(guān)系建立虛擬機(jī)監(jiān)視器中的頁(yè)表。這樣,對(duì)應(yīng)的操作系統(tǒng)獲 得一套獨(dú)占的資源,相當(dāng)于獲得了 一個(gè)邏輯的顯卡接口 。 本發(fā)明的虛擬機(jī)的顯示處理方法包括如下步驟PCI/PCI-E資源分配步驟,系統(tǒng)啟動(dòng)時(shí),虛擬機(jī)監(jiān)視器或host OS從顯卡 的PCI/PCI-E配置空間讀出MMIO/IO的大小,GTT的大小,F(xiàn)B的大小,并為顯 卡分配這些資源的地址范圍后重新寫(xiě)入顯卡的PCI/PCI-E配置空間;顯卡資源分配通知步驟,虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí), 虛擬機(jī)監(jiān)視器攔截操作系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),并獲取資源分配記錄模 塊中記錄的顯卡中尚未使用的MMIO/IO空間、GTT空間和幀緩存空間的信息提供給操作系統(tǒng),由操作系統(tǒng)決定自己對(duì)應(yīng)的邏輯接口可以使用的資源大小;資源映射建立步驟,操作系統(tǒng)決定MMIO/IO空間、GTT空間、幀緩存空 間大小后,為其分配地址范圍,地址映射建立模塊建立操作系統(tǒng)為MMI0/10 空間、GTT空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間的映射關(guān) 系;GPU計(jì)算處理步驟,GPU根據(jù)被調(diào)度到的邏輯接口的信息(即相應(yīng)的寄 存器內(nèi)容和命令)處理該邏輯接口對(duì)應(yīng)的GTT和幀緩存;被調(diào)度到的邏輯接 口與調(diào)度策略和該邏輯接口對(duì)應(yīng)的操作系統(tǒng)是否獲取了焦點(diǎn)有關(guān),獲得了焦 點(diǎn)的操作系統(tǒng)具有更高的優(yōu)先權(quán)。如果不需要GPU參與的顯示內(nèi)容,則由操 作系統(tǒng)操作相應(yīng)的GTT和FB,而不需要進(jìn)行調(diào)度,這種情況下,多個(gè)操作系 統(tǒng)可以同時(shí)并行進(jìn)行。顯示輸出步驟,將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到 顯示器進(jìn)行顯示。其中所謂獲得了焦點(diǎn)的操作系統(tǒng)為擁有了輸入設(shè)備(如鍵盤(pán)、鼠標(biāo))的操作 系統(tǒng);同時(shí),GPU計(jì)算處理步驟中優(yōu)先處理了獲得了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的顯 示命令后,才處理其他操作系統(tǒng)對(duì)應(yīng)的顯示命令,然而由于圖形顯示控制模 塊的控制,只有獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容才會(huì)被發(fā)送到 顯示器進(jìn)行顯示。 GPU計(jì)算處理步驟中,GPU首先獲取被調(diào)度到的邏輯接口對(duì)應(yīng)的 MMIO/IO在顯卡內(nèi)的基地址,并根據(jù)該基地址所對(duì)應(yīng)的寄存器來(lái)進(jìn)行運(yùn)算, 并操作相應(yīng)的GTT和幀緩存。<第三實(shí)施例>在本發(fā)明的第三實(shí)施例中,各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、GTT空 間和幀緩存空間被預(yù)先分配并保存在多個(gè)與操作系統(tǒng)對(duì)應(yīng)的PCI/PCI-E配置 空間中,每個(gè)操作系統(tǒng)的邏輯接口與一個(gè)PCI/PCI-E配置空間相對(duì)應(yīng)。本發(fā)明的第三實(shí)施例中,顯卡包括PCI/PCI-E配置空間、虛擬機(jī)指示模塊、 調(diào)度模塊、GPU、 MMIO/IO模塊、GTT模塊、幀緩存模塊和圖形顯示控制模 塊,GTT模塊,幀緩存模塊資源可以在系統(tǒng)主存中,其中PCI/PCI-E配置空間,包括多個(gè),與操作系統(tǒng)相對(duì)應(yīng),用于保存每個(gè)操作 系統(tǒng)對(duì)應(yīng)的顯卡MMIO、 GTT (Grapic Translation Table,圖形轉(zhuǎn)換表)和幀緩存的大小以及資源地址范圍;MMIO/IO模塊,分成多個(gè)部分,每個(gè)部分包括與各操作系統(tǒng)對(duì)應(yīng)的顯卡 邏輯接口所要用到的全部寄存器(如顯示模式寄存器、控制寄存器、狀態(tài)寄 存器等);在此,每個(gè)操作系統(tǒng)對(duì)應(yīng)的部分在結(jié)構(gòu)方面相同;GTT模塊,分成多個(gè)部分,用于保存與各個(gè)操作系統(tǒng)對(duì)應(yīng)的GTT,該GTT 用于保存幀緩存地址和物理內(nèi)存地址之間的映射關(guān)系;幀緩存模塊,分成多個(gè)部分,以分配給相應(yīng)的操作系統(tǒng);其中,GTT模塊和幀緩存模塊中的各個(gè)部分的大小對(duì)應(yīng)于各操作系統(tǒng)可 以不同,各操作系統(tǒng)被分配到的幀緩存可以不同。虛擬機(jī)指示模塊,用于接收VMM發(fā)送的指示哪個(gè)操作系統(tǒng)獲取了焦點(diǎn)的指令;調(diào)度模塊,用于根據(jù)虛擬機(jī)指示模塊發(fā)送的指令和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口,并把被調(diào)度到的邏輯接口對(duì)應(yīng)的MMIO空間、GTT空間 和幀緩存空間信息發(fā)送給GPU (Grapic Processing Unit,圖形處理單元);GPU,用于根據(jù)調(diào)度模塊發(fā)送的被調(diào)度到的邏輯接口的信息操作對(duì)應(yīng)的 GTT、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)
容發(fā)送到顯示器進(jìn)行顯示。本發(fā)明的第三實(shí)施例中的虛擬機(jī)操作系統(tǒng)包括 上述的顯卡;操作系統(tǒng)焦點(diǎn)獲取通知模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將獲取了焦點(diǎn) 的操作系統(tǒng)通知虛擬機(jī)指示模塊;地址映射建立模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于建立操作系統(tǒng)為MMIO/IO空間、GTT空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間 的映射關(guān)系;在此,操作系統(tǒng)從PCI/PCI-E配置空間中獲取與操作系統(tǒng)對(duì)應(yīng)的 的顯卡MMIO、 GTT (Grapic Translation Table,圖形轉(zhuǎn)換表)和幀緩存的大 小并分配資源地址范圍,由地址映射建立模塊建立映射關(guān)系。虛擬機(jī)通信模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將上述顯卡中分配給操作 系統(tǒng)的MMIO/IO空間、GTT空間、幀緩存空間通知對(duì)應(yīng)的操作系統(tǒng),并用于 截獲操作系統(tǒng)的顯卡驅(qū)動(dòng)模塊對(duì)顯卡的操作,根據(jù)地址映射建立模塊中建立 的映射關(guān)系轉(zhuǎn)換地址后發(fā)送給顯卡,MMIO和顯存的操作根據(jù)地址映射建立 模塊中建立的映射關(guān)系建立虛擬機(jī)監(jiān)視器中的頁(yè)表。這樣,對(duì)應(yīng)的操作系統(tǒng) 獲得一套獨(dú)占的資源,相當(dāng)于獲得了 一個(gè)邏輯的顯卡接口 。本發(fā)明第三實(shí)施例的虛擬機(jī)的顯示處理方法包括如下歩驟-PCI/PCI-E資源分配步驟,系統(tǒng)啟動(dòng)時(shí),虛擬機(jī)監(jiān)視器或host OS為多個(gè) 操作系統(tǒng)設(shè)置對(duì)應(yīng)的PCI/PCI-E配置空間,并從對(duì)應(yīng)的PCI/PCI-E配置空間讀出 MMIO/IO的大小,GTT的大小,F(xiàn)B的大小,并為顯卡分配這些資源的地址范 圍后重新寫(xiě)入對(duì)應(yīng)的PCI/PCI-E配置空間;顯卡資源分配通知步驟,虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí), 虛擬機(jī)監(jiān)視器攔截操作系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),并獲取對(duì)應(yīng)的PCI/PCI-E 配置空間中的MMIO/IO空間、GTT空間和幀緩存空間的信息提供給操作系統(tǒng);資源映射建立步驟,操作系統(tǒng)獲得MMIO/IO空間、GTT空間、幀緩存空 間大小后,為其分配地址范圍,地址映射建立模塊建立操作系統(tǒng)為MMI0/10 空間、GTT空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間的映射關(guān) 系;GPU計(jì)算處理步驟,GPU根據(jù)被調(diào)度到的邏輯接口的信息(即相應(yīng)的寄
存器內(nèi)容和命令)處理該邏輯接口對(duì)應(yīng)的GTT和幀緩存;被調(diào)度到的邏輯接口與調(diào)度策略和該邏輯接口對(duì)應(yīng)的操作系統(tǒng)是否獲取了焦點(diǎn)有關(guān),獲得了焦點(diǎn)的操作系統(tǒng)具有更高的優(yōu)先權(quán)。如果不需要GPU參與的顯示內(nèi)容,則由操作系統(tǒng)操作相應(yīng)的GTT和FB,而不需要進(jìn)行調(diào)度,這種情況下,多個(gè)操作系統(tǒng)可以同時(shí)并行進(jìn)行。顯示輸出步驟,將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。 其中所謂獲得了焦點(diǎn)的操作系統(tǒng)為擁有了輸入設(shè)備(如鍵盤(pán)、鼠標(biāo))的操作 系統(tǒng);同時(shí),GPU計(jì)算處理步驟中優(yōu)先處理了獲得了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的顯 示命令后,才處理其他操作系統(tǒng)對(duì)應(yīng)的顯示命令,然而由于圖形顯示控制模 塊的控制,只有獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容才會(huì)被發(fā)送到 顯示器進(jìn)行顯示。GPU計(jì)算處理步驟中,GPU首先獲取被調(diào)度到的邏輯接口對(duì)應(yīng)的 MMIO/IO在顯卡內(nèi)的基地址,并根據(jù)該基地址所對(duì)應(yīng)的寄存器來(lái)進(jìn)行運(yùn)算, 并操作相應(yīng)的GTT和幀緩存。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普 通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn) 飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1. 一種顯卡,其特征在于,包括可劃分為多個(gè)部分的圖形轉(zhuǎn)換表模塊,用于保存與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的圖形轉(zhuǎn)換表;可劃分為多個(gè)部分的幀緩存模塊,分配給一個(gè)或多個(gè)操作系統(tǒng);可劃分為多個(gè)部分的MMIO/IO模塊,包括與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的顯卡邏輯接口所要用到的全部寄存器;調(diào)度模塊,用于調(diào)度對(duì)應(yīng)不同操作系統(tǒng)的顯卡邏輯接口所對(duì)應(yīng)的顯示功能的硬件處理;圖形處理單元,用于根據(jù)調(diào)度結(jié)果操作與被調(diào)度到的顯卡邏輯接口對(duì)應(yīng)的圖形轉(zhuǎn)換表、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。
2. 根據(jù)權(quán)利要求1所述的顯卡,其特征在于,還包括 虛擬機(jī)指示模塊,用于從虛擬機(jī)監(jiān)視器獲取一指令,所述指令指示哪個(gè)操作系統(tǒng)獲取了焦點(diǎn);所述調(diào)度模塊具體用于根據(jù)所述虛擬機(jī)指示模塊和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口。
3. 根據(jù)權(quán)利要求2所述的顯卡,其特征在于,所述圖形顯示控制模塊用 于將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。
4. 根據(jù)權(quán)利要求2所述的顯卡,其特征在于,還包括 資源分配記錄模塊,由虛擬機(jī)監(jiān)視器或操作系統(tǒng)訪問(wèn),用于保存顯卡資源的分配情況。
5. 根據(jù)權(quán)利要求4所述的顯卡,其特征在于,所述資源分配記錄模塊具 體用于保存各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空間的信息。
6. 根據(jù)權(quán)利要求4所述的顯卡,其特征在于,所述資源分配記錄模塊具 體用于保存各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和幀緩存空 間的信息,還用于保存顯卡中尚未使用的MMIO/IO空間、圖形轉(zhuǎn)換表空間和 幀緩存空間的信息,提供給操作系統(tǒng)自行分配。
7. 根據(jù)權(quán)利要求4所述的顯卡,其特征在于,所述資源分配記錄模塊具體為PCI/PCI-E配置空間,與操作系統(tǒng)個(gè)數(shù)一致且相對(duì)應(yīng),用于保存每個(gè)操作 系統(tǒng)對(duì)應(yīng)的顯卡MMIO、圖形轉(zhuǎn)換表和幀緩存的大小以及資源地址范圍。
8. —種虛擬機(jī)系統(tǒng),包括一顯卡,其特征在于,所述顯卡包括可劃分為多個(gè)部分的圖形轉(zhuǎn)換表模塊,用于保存與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的圖形轉(zhuǎn)換表;可劃分為多個(gè)部分的幀緩存模塊,分配給一個(gè)或多個(gè)操作系統(tǒng); 可劃分為多個(gè)部分的MMIO/IO模塊,包括與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的顯卡邏輯接口所要用到的全部寄存器;調(diào)度模塊,用于調(diào)度對(duì)應(yīng)不同操作系統(tǒng)的顯卡邏輯接口所對(duì)應(yīng)的顯示功能的硬件處理;圖形處理單元,用于根據(jù)調(diào)度結(jié)果操作與被調(diào)度到的顯卡邏輯接口對(duì)應(yīng) 的圖形轉(zhuǎn)換表、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示; 所述虛擬機(jī)系統(tǒng)還包括地址映射建立模塊,用于建立操作系統(tǒng)為MMIO/IO空間、圖形轉(zhuǎn)換表空 間、幀緩存空間分配的地址范圍和顯卡真實(shí)資源之間的映射關(guān)系;虛擬機(jī)通信模塊,設(shè)置于虛擬機(jī)監(jiān)視器,用于將上述顯卡中分配給操作 系統(tǒng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀緩存空間通知對(duì)應(yīng)的操作系統(tǒng), 并用于截獲操作系統(tǒng)的顯卡驅(qū)動(dòng)模塊對(duì)顯卡的操作,根據(jù)地址映射建立模塊 中建立的映射關(guān)系轉(zhuǎn)換地址后發(fā)送給顯卡。
9. 根據(jù)權(quán)利要求8所述的虛擬機(jī)系統(tǒng),其特征在于,所述顯卡還包括 虛擬機(jī)指示模塊,用于從虛擬機(jī)監(jiān)視器獲取一指令,所述指令指示哪個(gè)操作系統(tǒng)獲取了焦點(diǎn);所述調(diào)度模塊具體用于根據(jù)所述虛擬機(jī)指示模塊和預(yù)定的調(diào)度策略確定 調(diào)度到的邏輯接口。
10. 根據(jù)權(quán)利要求9所述的虛擬機(jī)系統(tǒng),其特征在于,所述圖形顯示控 制模塊用于將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn) 行顯示。
11. 根據(jù)權(quán)利要求9所述的虛擬機(jī)系統(tǒng),其特征在于,所述顯卡還包括: 資源分配記錄模塊,由虛擬機(jī)監(jiān)視器或操作系統(tǒng)訪問(wèn),用于保存顯卡資源的分配情況;所述虛擬機(jī)通信模塊具體從資源分配記錄模塊獲取分配給操作系統(tǒng)的 MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀緩存空間。
12. 根據(jù)權(quán)利要求ll所述的虛擬機(jī)系統(tǒng),其特征在于,所述資源分配記 錄模塊具體用于保存各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和 幀緩存空間的信息。
13. 根據(jù)權(quán)利要求11所述的虛擬機(jī)系統(tǒng),其特征在于,所述資源分配記 錄模塊具體用于保存各個(gè)操作系統(tǒng)對(duì)應(yīng)的MMIO/IO空間、圖形轉(zhuǎn)換表空間和 幀緩存空間的信息,還用于保存顯卡中尚未使用的 MMIO/IO空間、圖形轉(zhuǎn)換 表空間和幀緩存空間的信息,提供給操作系統(tǒng)自行分配。
14. 根據(jù)權(quán)利要求11所述的虛擬機(jī)系統(tǒng),其特征在于,所述資源分配記 錄模塊具體為PCI/PCI-E配置空間,與操作系統(tǒng)個(gè)數(shù)一致且相對(duì)應(yīng),用于保存每個(gè)操作 系統(tǒng)對(duì)應(yīng)的顯卡MMIO、圖形轉(zhuǎn)換表和幀緩存的大小以及資源地址范圍。
15. —種顯示處理方法,其特征在于,包括顯卡資源分配通知步驟,虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)通信模塊將顯卡中對(duì)應(yīng)該操作系統(tǒng)的邏輯接口的MMIO/IO空間、圖形 轉(zhuǎn)換表空間、幀緩存空間的大小通知對(duì)應(yīng)的操作系統(tǒng);所述顯卡中的MMI0/10 空間、圖形轉(zhuǎn)換表空間、幀緩存空間被分配給一個(gè)或多個(gè)操作系統(tǒng);資源映射建立步驟,操作系統(tǒng)獲得MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀 緩存空間大小后,為其分配地址范圍,并由虛擬機(jī)監(jiān)視器建立操作系統(tǒng)為 MMIO/IO空間、圖形轉(zhuǎn)換表空間、幀緩存空間分配的地址范圍和顯卡真實(shí)資 源之間的映射關(guān)系;圖形處理單元計(jì)算處理步驟,圖形處理單元處理被調(diào)度到的顯卡邏輯接 口對(duì)應(yīng)的圖形轉(zhuǎn)換表、幀緩存及寄存器; 顯示輸出步驟,將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。
16. 根據(jù)權(quán)利要求15所述的顯示處理方法,其特征在于,獲取了焦點(diǎn)的 操作系統(tǒng)對(duì)應(yīng)的邏輯接口被優(yōu)先調(diào)度。
17. 根據(jù)權(quán)利要求15所述的顯示處理方法,其特征在于,所述顯示輸出 步驟中,將獲取了焦點(diǎn)的操作系統(tǒng)對(duì)應(yīng)的幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行 顯示。
18. 根據(jù)權(quán)利要求15、 16或17所述的顯示處理方法,其特征在于,所 述顯卡資源分配通知步驟具體為虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器攔截操作 系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),將顯卡中分配給對(duì)應(yīng)操作系統(tǒng)的MMIO/IO空 間、GTT空間、幀緩存空間的大小通知操作系統(tǒng)。
19. 根據(jù)權(quán)利要求15、 16或17所述的顯示處理方法,其特征在于,所 述顯卡資源分配通知步驟具體為虛擬機(jī)啟動(dòng)后,操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器攔截操作系 統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),并獲取顯卡中尚未使用的MMIO/IO空間、GTT 空間和幀緩存空間的信息提供給操作系統(tǒng),由操作系統(tǒng)決定自己對(duì)應(yīng)的邏輯 接口可以使用的資源大小。
20. 根據(jù)權(quán)利要求15、 16或17所述的顯示處理方法,其特征在于,所述顯卡資源分配通知步驟具體為虛擬機(jī)啟動(dòng)后,當(dāng)操作系統(tǒng)對(duì)顯卡進(jìn)行配置時(shí),虛擬機(jī)監(jiān)視器攔截操作 系統(tǒng)對(duì)顯卡設(shè)備的配置訪問(wèn),并獲取操作系統(tǒng)對(duì)應(yīng)的PCI/PCI-E配置空間中 的MMIO/IO空間、GTT空間和幀緩存空間的信息提供給操作系統(tǒng)。
全文摘要
本發(fā)明公開(kāi)了一種顯卡、應(yīng)用該顯卡的虛擬機(jī)系統(tǒng)及顯示處理方法,其中該顯卡包括可劃分為多個(gè)部分的圖形轉(zhuǎn)換表模塊,用于保存與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的圖形轉(zhuǎn)換表;可劃分為多個(gè)部分的幀緩存模塊,分配給一個(gè)或多個(gè)操作系統(tǒng);可劃分為多個(gè)部分的MMIO/IO模塊,包括與一個(gè)或多個(gè)操作系統(tǒng)對(duì)應(yīng)的顯卡邏輯接口的全部寄存器;調(diào)度模塊,用于調(diào)度對(duì)應(yīng)不同操作系統(tǒng)的顯卡邏輯接口所對(duì)應(yīng)的顯示功能的硬件處理;圖形處理單元,用于根據(jù)調(diào)度結(jié)果操作與被調(diào)度到的顯卡邏輯接口對(duì)應(yīng)的圖形轉(zhuǎn)換表、幀緩存及相應(yīng)的寄存器;圖形顯示控制模塊,用于將幀緩存中的內(nèi)容發(fā)送到顯示器進(jìn)行顯示。通過(guò)應(yīng)用本發(fā)明,虛擬機(jī)系統(tǒng)中的操作系統(tǒng)都能訪問(wèn)真實(shí)的顯卡。
文檔編號(hào)G06F9/455GK101211270SQ200610171619
公開(kāi)日2008年7月2日 申請(qǐng)日期2006年12月31日 優(yōu)先權(quán)日2006年12月31日
發(fā)明者劉春梅 申請(qǐng)人:聯(lián)想(北京)有限公司