欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

組合的虛擬圖形設(shè)備的制作方法

文檔序號(hào):6484802閱讀:259來源:國(guó)知局
組合的虛擬圖形設(shè)備的制作方法
【專利摘要】系統(tǒng)包括具有組合的虛擬圖形設(shè)備的客戶圖形子系統(tǒng),該組合的虛擬圖形設(shè)備組合了基礎(chǔ)的仿真虛擬圖形設(shè)備和物理圖形設(shè)備的虛擬功能用于支持虛擬機(jī)遷移。該系統(tǒng)中的VMM可以向客戶展示單個(gè)組合的虛擬PCIe圖形設(shè)備,該設(shè)備組合了對(duì)虛擬圖形設(shè)備和虛擬功能的訪問,并且在客戶OS中為圖形加速在虛擬圖形設(shè)備和虛擬功能之間進(jìn)行切換而無須觸發(fā)PnP事件。作為對(duì)切換的響應(yīng),客戶圖形堆棧和應(yīng)用可以重繪它們的窗口以提供一致的用戶體驗(yàn)。
【專利說明】組合的虛擬圖形設(shè)備
【背景技術(shù)】
[0001]虛擬化使具有硬件和軟件支持虛擬化的單一主機(jī)能夠呈現(xiàn)該主機(jī)的抽象,以使得該主機(jī)的基礎(chǔ)硬件表現(xiàn)為一個(gè)或多個(gè)獨(dú)立運(yùn)行的虛擬機(jī)。因此每個(gè)虛擬機(jī)可以像自包含的平臺(tái)一樣工作。虛擬化技術(shù)可用于允許多個(gè)客戶操作系統(tǒng)和/或其他客戶軟件在多個(gè)虛擬機(jī)上共存且表面上同時(shí)地且表面上獨(dú)立地運(yùn)行,而實(shí)際上在相同的硬件平臺(tái)物理運(yùn)行。虛擬機(jī)可以模仿主機(jī)的硬件或者可替換地完全呈現(xiàn)不同的硬件抽象。
[0002]虛擬化系統(tǒng)可以包括用于控制對(duì)主機(jī)的訪問的虛擬機(jī)監(jiān)視器(VMM)。在一些實(shí)施例中,可以利用任何其他的VM控制邏輯。VMM可以向在虛擬機(jī)中運(yùn)行的客戶軟件提供一組資源(例如處理器、存儲(chǔ)器、IO設(shè)備)。VMM可以將物理主機(jī)的一些或者全部部件映射到虛擬機(jī)中,并且可以創(chuàng)建對(duì)虛擬機(jī)可用的虛擬部件(例如虛擬IO設(shè)備),其在VMM中以軟件仿真。VMM可以使用硬件虛擬化架構(gòu)的特征來向虛擬機(jī)提供服務(wù)并且向運(yùn)行在主機(jī)上的多個(gè)虛擬機(jī)之間提供保護(hù)。
[0003]在虛擬化計(jì)算環(huán)境中,虛擬機(jī)既可以通過“動(dòng)態(tài)遷移”也可以通過保存和恢復(fù)VM的狀態(tài)而從一個(gè)物理平臺(tái)遷移到另一個(gè)物理平臺(tái)。在對(duì)VM呈現(xiàn)的所有平臺(tái)資源均是虛擬的情況下,VMM可以轉(zhuǎn)換所有這些資源的狀態(tài)。在已將物理圖形設(shè)備功能(例如,單根IO虛擬化(SR-1OV)能力設(shè)備的虛擬功能或者映射有輸入/輸出存儲(chǔ)器管理模塊(IOMMU)支持的專用設(shè)備)的接口提供給VM的情況下,可以抑制遷移過程。在一種情況下,遷移的目標(biāo)平臺(tái)可以沒有可供客戶OS使用的硬件圖形設(shè)備。在另一種情況下,目標(biāo)平臺(tái)上的圖形硬件可以與源不同。在目標(biāo)處的兼容硬件可用的情況下,VMM可以不轉(zhuǎn)換所有的相關(guān)設(shè)備狀態(tài)信息。通過圖形虛擬化和VM遷移,當(dāng)基于硬件的圖形設(shè)備變得可用并且被虛擬機(jī)監(jiān)視器(VMM)分配給VM時(shí),客戶OS可能需要支持基于硬件的圖形設(shè)備的動(dòng)態(tài)變化。一些操作系統(tǒng)可能不支持動(dòng)態(tài)即插即用的圖形設(shè)備。
【專利附圖】

【附圖說明】
[0004]本文描述的發(fā)明是通過示例的方式而不是限制的方式在附圖中示出。為了簡(jiǎn)單和清楚地說明,附圖中圖示的元件不一定是按照比例繪制的。例如為了清楚起見,一些元件的尺寸相對(duì)于其他元件被擴(kuò)大了。此外,在認(rèn)為合適的情況下,附圖中重復(fù)出現(xiàn)的參考標(biāo)記指示相應(yīng)的或者類似的元件。
[0005]圖1是根據(jù)本發(fā)明的實(shí)施例的示例性虛擬機(jī)環(huán)境的高層次結(jié)構(gòu)的示意圖。
[0006]圖2是裝置的實(shí)施例的示意圖。
[0007]圖3是根據(jù)本發(fā)明的一些實(shí)施例的流程圖。
[0008]圖4A和4B是根據(jù)本發(fā)明的一些實(shí)施例的示意流程圖。
【具體實(shí)施方式】
[0009]下面的說明中所描述的技術(shù)提供一種支持組合的虛擬圖形裝置的使用模型。在一個(gè)實(shí)施例中,該組合的虛擬圖形裝置可以在虛擬機(jī)環(huán)境中實(shí)現(xiàn)。在另一個(gè)實(shí)施例中,該組合的虛擬圖形功能可以在基于處理器的計(jì)算系統(tǒng)中實(shí)現(xiàn)。該技術(shù)的實(shí)現(xiàn)并不限于在計(jì)算系統(tǒng)中;出于相似的目的,它可以由任何運(yùn)行環(huán)境使用,例如任何其他數(shù)字/電子裝置或者系統(tǒng)。在下面的描述中,提出了大量具體的細(xì)節(jié)以便提供對(duì)本發(fā)明的更加透徹的理解,所述細(xì)節(jié)例如是邏輯實(shí)現(xiàn)、操作碼、指定操作數(shù)的方式、資源分區(qū)/共享/復(fù)制實(shí)現(xiàn)、系統(tǒng)部件的類型和相互關(guān)系、以及邏輯分區(qū)/集成選擇。然而,沒有這些具體的細(xì)節(jié)本發(fā)明也可以實(shí)踐。在其他實(shí)例中,為了不模糊本發(fā)明,沒有詳細(xì)示出控制結(jié)構(gòu)和全軟件指令序列。
[0010]本說明書中提到的“一個(gè)實(shí)施例”、“實(shí)施例”、“示例實(shí)施例”等,表明所描述的實(shí)施例可以包括特定的特征、結(jié)構(gòu)或者特性,但是每個(gè)實(shí)施例可以不必包括所述特定特征、結(jié)構(gòu)或者特性。此外,這些短語不一定指代相同的實(shí)施例。進(jìn)一步地,當(dāng)描述與實(shí)施例有關(guān)的特定特征、結(jié)構(gòu)或者特性時(shí),一般認(rèn)為,結(jié)合其他實(shí)施例實(shí)現(xiàn)這樣的特征、結(jié)構(gòu)或者特性屬于本領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi),而無論其是否被明確描述。
[0011]本發(fā)明的實(shí)施例可以在硬件、固件、軟件、或它們的任意組合中被實(shí)現(xiàn)。本發(fā)明的實(shí)施例也可實(shí)現(xiàn)為存儲(chǔ)在機(jī)器可讀介質(zhì)上的可以由一個(gè)或多個(gè)處理器讀取并執(zhí)行的指令。機(jī)器可讀介質(zhì)可以包括存儲(chǔ)或傳輸機(jī)器(例如計(jì)算設(shè)備)可讀形式的信息的任何機(jī)制。例如,機(jī)器可讀介質(zhì)可以包括只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、閃存設(shè)備、電、光、聲或其他形式的傳播信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào)等)和其他。
[0012]下面的描述可以包括例如第一、第二等僅用于描述性目的而不被解釋為限制的術(shù)語。
[0013]圖1是虛擬機(jī)環(huán)境100的一個(gè)實(shí)施例的框圖。在這個(gè)實(shí)施例中,基于處理器的平臺(tái)116可以運(yùn)行VMM114。該VMM雖然以軟件實(shí)現(xiàn),但可以仿真和輸出到更高級(jí)別軟件的虛擬機(jī)接口。這種更高級(jí)別軟件可以包括標(biāo)準(zhǔn)OS、實(shí)時(shí)OS、或者可以是具備有限操作系統(tǒng)功能的精簡(jiǎn)環(huán)境,并且可能不包括在某些實(shí)施例中的標(biāo)準(zhǔn)OS內(nèi)可用的OS設(shè)備。可替代地,例如,VMMl 14可以運(yùn)行在另一個(gè)VMM之內(nèi)或者使用另一個(gè)VMM的服務(wù)。在一些實(shí)施例中,VMM可以在例如硬件、軟件、固件或者各種技術(shù)的組合中被實(shí)現(xiàn)。在至少一個(gè)實(shí)施例中,VMM的一個(gè)或多個(gè)部件可以在一個(gè)或多個(gè)虛擬機(jī)上執(zhí)行,并且VMM的一個(gè)或多個(gè)部件可以在如圖1所述的平臺(tái)硬件上執(zhí)行。在平臺(tái)硬件上直接執(zhí)行的VMM部件在本文中稱為VMM的主機(jī)部件。在另一個(gè)實(shí)施例中,VMM114的示例可以包括混合式虛擬機(jī)監(jiān)視器、主機(jī)虛擬機(jī)監(jiān)視器或者管理程序虛擬機(jī)監(jiān)視器。
[0014]平臺(tái)硬件116可以是個(gè)人計(jì)算機(jī)(PC)、服務(wù)器、大型機(jī)、例如個(gè)人數(shù)字助理(PDA)、平板電腦、智能手機(jī)或者任何其他智能設(shè)備的手持式設(shè)備、互聯(lián)網(wǎng)協(xié)議設(shè)備、數(shù)碼相機(jī)、便攜式計(jì)算機(jī)、例如上網(wǎng)本或筆記本電腦的手持式PC、或者例如微控制器的嵌入式應(yīng)用、數(shù)字信號(hào)處理器(DSP)、片上系統(tǒng)(SoC)、網(wǎng)絡(luò)計(jì)算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)、或者其他基于處理器的系統(tǒng)。
[0015]平臺(tái)硬件116至少包括處理器118和存儲(chǔ)器120。處理器118可以是有能力執(zhí)行程序的任何類型的處理器,例如微處理器、數(shù)字信號(hào)處理器、微控制器或者類似物。該處理器可以包括在實(shí)施例中執(zhí)行的微碼、可編程邏輯或者硬編碼邏輯。雖然圖1僅示出一個(gè)這樣的處理器118,但在實(shí)施例的系統(tǒng)中可以有一個(gè)或多個(gè)處理器。此外,處理器118可以包括多個(gè)內(nèi)核、支持多線程或者類似物。處理器118可以包括微碼、可編程邏輯或者硬編碼邏輯以執(zhí)行本文所描述的各種實(shí)施例相關(guān)聯(lián)的操作。
[0016]在各種實(shí)施例中,存儲(chǔ)器120可以包括硬盤、軟盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存、以及任何其他類型的易失性存儲(chǔ)器設(shè)備或者非易失性存儲(chǔ)器設(shè)備、或者上述設(shè)備的組合、或者任何其他類型的由處理器118可讀的機(jī)器介質(zhì)。存儲(chǔ)器120可以存儲(chǔ)用于進(jìn)行程序執(zhí)行和其他方法實(shí)施例的指令和/或數(shù)據(jù)。在一些實(shí)施例中,本發(fā)明的一些元件可以在以平臺(tái)芯片組或者系統(tǒng)的一個(gè)或多個(gè)存儲(chǔ)器控制器為例的其他系統(tǒng)部件中被實(shí)現(xiàn)。
[0017]VMMl 14可以向客戶軟件呈現(xiàn)一個(gè)或多個(gè)虛擬機(jī)的抽象。VMMl 14可以向不同的VM呈現(xiàn)物理平臺(tái)的相同或不同的抽象。圖1的實(shí)施例示出了兩個(gè)虛擬機(jī)102和112。在每個(gè)虛擬機(jī)上運(yùn)行的客戶軟件(例如,客戶軟件103和113)可以包括客戶OS (例如客戶0S104或者106)和各種客戶軟件應(yīng)用108和110??蛻糗浖?03和113可以訪問運(yùn)行客戶軟件103和113的虛擬機(jī)之內(nèi)的物理資源(例如,處理器寄存器、存儲(chǔ)器和I/O設(shè)備)以執(zhí)行其他功能。例如,根據(jù)在虛擬機(jī)102和112中呈現(xiàn)的處理器和平臺(tái)的架構(gòu),客戶軟件103和113可以訪問所有的寄存器、高速緩存、結(jié)構(gòu)、I/O設(shè)備、存儲(chǔ)器和類似物。
[0018]在一個(gè)實(shí)施例中,處理器118可以控制虛擬機(jī)102和112的操作。在一個(gè)實(shí)施例中,響應(yīng)于虛擬機(jī)102在其虛擬地址空間引用存儲(chǔ)器單元,可以由VMM114中的存儲(chǔ)器管理模塊(未示出)生成到主機(jī)116的物理存儲(chǔ)器(機(jī)器物理存儲(chǔ)器)中的實(shí)際地址的引用,這可以在硬件(有時(shí)并入到處理器118)和軟件(例如,在主機(jī)的操作系統(tǒng)中)中實(shí)現(xiàn)。在圖1的實(shí)施例中,平臺(tái)硬件116可以進(jìn)一步包括一個(gè)或多個(gè)I/O設(shè)備122。平臺(tái)硬件116可以進(jìn)一步包括一個(gè)或多個(gè)可以用于執(zhí)行一個(gè)或多個(gè)圖形功能的圖形控制或者設(shè)備124 ;在一些實(shí)施例中,平臺(tái)硬件116可以包括任何其他物理圖形設(shè)備。
[0019]圖2示出根據(jù)一個(gè)實(shí)施例的可以在虛擬機(jī)環(huán)境中實(shí)現(xiàn)的組合的虛擬圖形裝置的示例。參照?qǐng)D2所示,虛擬機(jī)環(huán)境200可以包括虛擬機(jī)監(jiān)視器(VMM)220和平臺(tái)210。平臺(tái)210可以包括例如處理器118、存儲(chǔ)器120、輸入/輸出設(shè)備122、圖形設(shè)備124的硬件;然而,在一些實(shí)施例中,平臺(tái)210可以包括任何其他平臺(tái)硬件設(shè)備。在一個(gè)實(shí)施例中,在平臺(tái)210中的處理器可以是能夠執(zhí)行軟件指令的任何類型的處理器,例如復(fù)雜指令集計(jì)算機(jī)(CISC)微處理器、精簡(jiǎn)指令集計(jì)算(RISC)微處理器、超長(zhǎng)指令字(VLIW)微處理器、實(shí)現(xiàn)指令集組合的處理器、或者任何其他處理器設(shè)備,例如數(shù)字信號(hào)處理器、微處理器、數(shù)字信號(hào)處理器或者微控制器、或者類似物。平臺(tái)210中的處理器可以包括用于執(zhí)行與本文所描述的各種實(shí)施例相關(guān)聯(lián)的操作的微碼、可編程邏輯或硬編碼邏輯。在一個(gè)實(shí)施例中,在平臺(tái)210中可以有一個(gè)或多個(gè)處理器,并且一個(gè)或多個(gè)處理器可以包括多線程、多內(nèi)核或類似物。
[0020]實(shí)施例并不限于計(jì)算系統(tǒng)。本發(fā)明的替代實(shí)施例能夠被用于任何形狀因數(shù)的設(shè)備,例如手持設(shè)備和嵌入式應(yīng)用。平臺(tái)210可以包括手持設(shè)備、便攜式計(jì)算機(jī)、機(jī)頂盒、或任何其他基于處理器的系統(tǒng)的硬件平臺(tái)。手持設(shè)備的一些示例可以包括蜂窩電話、智能電話、平板電腦、互聯(lián)網(wǎng)協(xié)議設(shè)備、數(shù)碼相機(jī)、個(gè)人數(shù)字助理(PDA)、或者以上網(wǎng)本或筆記本電腦為例的手持PC。嵌入式應(yīng)用可以包括微控制器、數(shù)字信號(hào)處理器(DSP)、片上系統(tǒng)(SoC)、網(wǎng)絡(luò)計(jì)算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)、或者任何其他系統(tǒng)。
[0021]參照?qǐng)D2,在一個(gè)實(shí)施例中,VMM220可以向其他軟件呈現(xiàn)一個(gè)或多個(gè)VM或虛擬系統(tǒng)(未示出)的抽象。在一個(gè)實(shí)施例中,VMM220可以使在環(huán)境200中的硬件資源分配到在VM或者虛擬系統(tǒng)中執(zhí)行的一個(gè)或多個(gè)并發(fā)的操作系統(tǒng)會(huì)話??蛻羝脚_(tái)250上的每個(gè)VM可以作為自包含的平臺(tái),運(yùn)行其自己的“客戶操作系統(tǒng)”(由VMM作為主機(jī)的操作系統(tǒng)(O S ))和其他軟件,統(tǒng)稱為客戶軟件。在實(shí)施例中,客戶平臺(tái)250可以控制各種事件并且可能能夠訪問各種硬件資源。運(yùn)行在客戶平臺(tái)250的每個(gè)虛擬機(jī)上的客戶軟件可以包括客戶OS或者客戶內(nèi)核230以及在客戶用戶240上的各種客戶軟件應(yīng)用242。VMM220可以在硬件、軟件、固件、或者其組合中實(shí)現(xiàn)。在一個(gè)實(shí)施例中,客戶平臺(tái)250可以作為客戶圖形子系統(tǒng)。
[0022]參照?qǐng)D2,在實(shí)施例中,平臺(tái)210可以包括物理圖形設(shè)備212。在一個(gè)實(shí)施例中,物理圖形設(shè)備212可以支持例如SR-1OV或任何其他標(biāo)準(zhǔn)的硬件虛擬化標(biāo)準(zhǔn),并且VMM220可以將物理圖形設(shè)備212的一個(gè)或多個(gè)虛擬功能214分配給客戶0S230。在圖2的實(shí)施例中,VMM220可以向客戶0S230展示組合的虛擬圖形設(shè)備(CVGD) 222。在一個(gè)實(shí)施例中,組合的虛擬圖形設(shè)備222可以組合基礎(chǔ)的仿真視頻圖形陣列(VGA)設(shè)備224、例如仿真虛擬圖形處理單元(VGPU)226的虛擬圖形設(shè)備、以及物理圖形設(shè)備212的虛擬功能(VF)214,以通過VGA224提供軟件仿真的VGA功能,并且通過設(shè)備212的VGPU226和VF214中的一個(gè)提供圖形能力。在另一個(gè)實(shí)施例中,組合的虛擬圖形設(shè)備222可以向VM呈現(xiàn)為可以組合對(duì)VGPU226和VF214的訪問的單一快速外圍部件互連(PCIe)圖形設(shè)備。例如,為了圖形加速和/或提供給VM的其他圖形能力,組合的虛擬圖形設(shè)備222可以在VGPU226和VF214之間切換。
[0023]由VMM220提供的VGA224可以增強(qiáng)圖形設(shè)備212的虛擬功能214。在一個(gè)實(shí)施例中,VGA224可以在例如引導(dǎo)過程(VF驅(qū)動(dòng)程序被加載之前)和/或診斷輸出的期間被使用。在一些實(shí)施例中,VMM220可以在組合的虛擬圖形設(shè)備222中向客戶0S230提供超級(jí)VGA以支持例如改進(jìn)的圖形能力。在一個(gè)實(shí)施例中,對(duì)于沒有VF214的平臺(tái),VMM220可以通過軟件仿真(例如VGPU226)或者主機(jī)圖形硬件加速以實(shí)現(xiàn)例如圖形和/或介質(zhì)渲染能力的仿真圖形處理能力。VMM220可以在同一組合的虛擬圖形設(shè)備222中的基礎(chǔ)仿真VGPU226和VF214之間動(dòng)態(tài)切換,而不會(huì)觸發(fā)例如在客戶0S230中的即插即用(PnP)事件。
[0024]在一個(gè)實(shí)施例中,VMM220可以向客戶0S230展示用于組合的虛擬圖形設(shè)備222的PCIe配置空間。PCIe配置空間可以獨(dú)立于使用哪個(gè)基礎(chǔ)圖形設(shè)備。例如,VMM220可以不管例如是否使用仿真圖形設(shè)備VGPU226或VF214或者虛擬功能來自哪個(gè)圖形硬件,而為組合的虛擬圖形設(shè)備222維護(hù)相同的PCIe配置空間。VMM220可以進(jìn)一步維護(hù)從組合的虛擬圖形PCIe配置空間(例如對(duì)客戶OS可見)到活躍的基礎(chǔ)設(shè)備的映射。配置空間可以具有過量提供的數(shù)量的和/或尺寸的基址寄存器(BAR)以涵蓋一個(gè)或多個(gè)基礎(chǔ)設(shè)備的配置。
[0025]在一個(gè)實(shí)施例中,PCIe配置空間可以包括一個(gè)或多個(gè)寄存器和/或字段。例如,虛擬圖形PCIe配置空間可以包括例如供應(yīng)商身份(VID)、設(shè)備ID (DID)或者類似物的數(shù)據(jù)字段。在另一個(gè)實(shí)施例中,虛擬圖形PCIe配置空間可以包括可以作為該配置空間中的控制寄存器集的一部分的例如BARO和BARl到BAR5的基址寄存器(BAR)。例如,BAR可以包括存儲(chǔ)器映射I/O (MMIO)寄存器、或者I/O寄存器、或者存儲(chǔ)器區(qū)域。在另一個(gè)實(shí)施例中,對(duì)于虛擬設(shè)備,VMM可以在PCIe配置寄存器中存儲(chǔ)例如虛擬供應(yīng)商和/或設(shè)備ID的信息;和/或可以存儲(chǔ)可被驅(qū)動(dòng)程序用于配置一個(gè)BAR中的MMIO寄存器中的當(dāng)前情況的任何信息。在一個(gè)實(shí)施例中,VID/DID可以在配置空間中但不在BARO或者任何其他BAR中;在一些實(shí)施例中,VID和/或DID可以在任何其他寄存器中。
[0026]在一個(gè)實(shí)施例中,VID可以是獨(dú)立于基礎(chǔ)硬件的供應(yīng)商ID,可以不會(huì)在例如VF214(或圖形設(shè)備212)的硬件的插入/撤銷時(shí)發(fā)生改變。DID可以是具有獨(dú)立于基礎(chǔ)硬件的ID值的虛擬設(shè)備ID (DID),并且在例如VF214的硬件的插入/撤銷時(shí)保持不變。在另一個(gè)實(shí)施例中,BARO可以映射到可以用于識(shí)別基礎(chǔ)圖形設(shè)備的一個(gè)或多個(gè)VMM仿真存儲(chǔ)器映射I/
O(麗10)寄存器。在一個(gè)實(shí)施例中,BARO可以包括兩個(gè)寄存器HW VID和HW DID ;在一些實(shí)施例中,BARO可以包括一個(gè)或多個(gè)寄存器。HW VID寄存器可以存儲(chǔ)基礎(chǔ)圖形設(shè)備的供應(yīng)商ID,基礎(chǔ)圖形設(shè)備可以是仿真圖形設(shè)備226或者VF214。HW DID寄存器可以存儲(chǔ)基礎(chǔ)圖形設(shè)備的設(shè)備ID,基礎(chǔ)圖形設(shè)備可以是仿真圖形設(shè)備226或者VF214。在一些實(shí)施例中,供應(yīng)商ID、設(shè)備ID和BARO可以不映射到例如物理功能(PF)和/或虛擬功能(VF)的單根I/O虛擬化(SR-1OV)圖形硬件。在另一個(gè)實(shí)施例中,虛擬圖形PCIe配置空間可以具有一個(gè)或多個(gè)例如BARl到BAR5的寄存器,該寄存器可以在數(shù)量和/或尺寸上被過量提供,以涵蓋一個(gè)或多個(gè)仿真圖形設(shè)備和/或一個(gè)或多個(gè)支持的VF實(shí)現(xiàn);在一些實(shí)施例中,可以提供不同數(shù)量的冗余寄存器。VMM220可以動(dòng)態(tài)地將冗余BARl到BAR5映射到當(dāng)前活躍的基礎(chǔ)圖形設(shè)備(例如活躍的仿真圖形設(shè)備226或者VF214)的寄存器。
[0027]在一個(gè)實(shí)施例中,VMM220可以不管是否使用仿真圖形設(shè)備226或VF214或者虛擬功能來自哪個(gè)圖形硬件,而維護(hù)相同的PCIe配置空間。VMM220可以維護(hù)從虛擬圖形PCI配置空間(對(duì)客戶OS可見)到活躍的基礎(chǔ)圖形設(shè)備的映射。
[0028]參照?qǐng)D2,客戶0S230可以包括客戶圖形驅(qū)動(dòng)程序232。VMM220可以為客戶圖形驅(qū)動(dòng)程序232提供檢測(cè)由組合的虛擬PCIe圖形設(shè)備222展示的活躍的基礎(chǔ)設(shè)備的方式。在實(shí)施例中,客戶圖形驅(qū)動(dòng)程序232可以具有包裝器插件(wrapper-plugin)結(jié)構(gòu)?;A(chǔ)設(shè)備VGPU226和VF214中的每個(gè)可以被客戶圖形驅(qū)動(dòng)程序232的相應(yīng)插件管理。例如,客戶圖形驅(qū)動(dòng)程序232可以包括用于VGPU226的驅(qū)動(dòng)程序插件236和用于VF214的插件238。每個(gè)用于基礎(chǔ)圖形設(shè)備的驅(qū)動(dòng)程序插件可以知道基礎(chǔ)圖形設(shè)備的BAR映射。在實(shí)施例中,包裝器234可以檢測(cè)由組合的虛擬圖形設(shè)備222展示的活躍的基礎(chǔ)圖形設(shè)備并且選擇與檢測(cè)到的基礎(chǔ)設(shè)備匹配的合適插件。包裝器234可以確定用于當(dāng)前活躍的基礎(chǔ)設(shè)備的插件,和/或可以切換至新的插件以作為VMM220切換基礎(chǔ)圖形設(shè)備的響應(yīng)。包裝器234可以進(jìn)一步向客戶0S230和/或圖形堆棧244提供一組一個(gè)或多個(gè)標(biāo)準(zhǔn)圖形設(shè)備驅(qū)動(dòng)程序接口(DDI ),并且將這些接口映射到當(dāng)前活躍的插件以運(yùn)行。例如,OS可以定義對(duì)圖形堆棧的標(biāo)準(zhǔn)接口,例如Windows的DirectX ;然而,一些實(shí)施例可以使用任何標(biāo)準(zhǔn)接口。
[0029]例如,作為對(duì)由VMM220切換基礎(chǔ)圖形設(shè)備的響應(yīng),包裝器234可以利用通知和屏幕重繪以提供用戶體驗(yàn)。在一個(gè)實(shí)施例中,作為對(duì)VM遷移的響應(yīng),包裝器234可以將基礎(chǔ)圖形設(shè)備的切換通知給客戶0S230和圖形堆棧244。例如,包裝器234可以通過驅(qū)動(dòng)程序調(diào)用的超時(shí)向客戶0S230和圖形堆棧244通知切換,例如在Windows Vista中。在另一個(gè)實(shí)施例中,包裝器234可以從客戶0S230給出可以重新初始化圖形設(shè)備的恢復(fù)序列的提示。在另一個(gè)實(shí)施例中,客戶圖形驅(qū)動(dòng)程序232可以調(diào)用用于活躍的基礎(chǔ)設(shè)備的插件作為對(duì)來自包裝器234的提示的響應(yīng)。在另一個(gè)實(shí)施例中,作為對(duì)在VM遷移時(shí)基礎(chǔ)圖形設(shè)備切換的通知的響應(yīng),圖形堆棧244和/或例如242的客戶用戶界面(UI)應(yīng)用可以重繪它們的窗口。在一個(gè)實(shí)施例中,客戶0S230和圖形堆棧244可以支持圖形硬件復(fù)位和/或圖形堆棧244和/或Π應(yīng)用242的自動(dòng)重繪。在圖2的實(shí)施例中,客戶用戶界面240可以進(jìn)一步包括可以用于初始化和/或管理VM遷移的VM工具246,例如參照?qǐng)D4A和4B。[0030]雖然圖2示出了 VGPU226和VF214,但在一些實(shí)施例中,由VMM220實(shí)現(xiàn)的組合的虛擬圖形設(shè)備可以涵蓋一個(gè)或多個(gè)基于基礎(chǔ)硬件和/或軟件的設(shè)備,并且VMM220可以在多個(gè)基礎(chǔ)設(shè)備之間切換作為對(duì)設(shè)備變?yōu)榭捎没蛘卟豢捎玫捻憫?yīng)。雖然圖2示出了組合的虛擬圖形設(shè)備的實(shí)施例,但在一些實(shí)施例中,VMM220可以在任何其他基礎(chǔ)設(shè)備之間切換以基于基礎(chǔ)設(shè)備的可用性而向客戶提供組合的虛擬設(shè)備。
[0031]圖3是根據(jù)本發(fā)明的實(shí)施例的圖示出方法的實(shí)施例的流程圖。在實(shí)施例中,圖3的流程可以涉及客戶啟動(dòng)。在方框302中,VMM可以分配例如VF或者仿真圖形設(shè)備的基礎(chǔ)圖形設(shè)備給客戶OS。在方框304中,VMM可以為客戶配置虛擬PCIe圖形設(shè)備。例如,VMM可以通過已為客戶OS分配的基礎(chǔ)圖形設(shè)備提供組合的虛擬PCIe圖形設(shè)備。在方框304中,VMM可以將組合的虛擬PCIe圖形設(shè)備的BAR映射到在方框302中分配的基礎(chǔ)圖形設(shè)備的資源。在一個(gè)實(shí)施例中,在方框306中,客戶OS可以使用由組合的虛擬PCIe圖形設(shè)備展示的仿真VGA來在啟動(dòng)過程中進(jìn)行顯示。在方框308中,客戶OS可以檢測(cè)組合的虛擬圖形PCIe設(shè)備,并且為檢測(cè)到的虛擬圖形設(shè)備加載例如234的圖形驅(qū)動(dòng)程序包裝器。在方框310中,客戶包裝器驅(qū)動(dòng)程序可以通過虛擬PCIe配置空間寄存器或者例如BARO的仿真MMIO寄存器中的信息檢測(cè)哪個(gè)基礎(chǔ)圖形設(shè)備是活躍的。在方框310中,客戶包裝器驅(qū)動(dòng)程序可以為檢測(cè)到的活躍的基礎(chǔ)圖形設(shè)備(例如仿真圖形設(shè)備226或者VF214)加載相應(yīng)的驅(qū)動(dòng)程序插件,和/或可以由加載的驅(qū)動(dòng)程序插件初始化活躍的基礎(chǔ)圖形設(shè)備。
[0032]圖4A是根據(jù)本發(fā)明的實(shí)施例的圖示出方法的實(shí)施例的流程圖。在實(shí)施例中,圖4A的流程可以涉及客戶的遷移源平臺(tái)為VM遷移所準(zhǔn)備的操作。在方框402中,在客戶VM中的例如246的VM工具模塊可以向客戶圖形驅(qū)動(dòng)程序包裝器通知即將到來的VM遷移。在方框404中,客戶圖形驅(qū)動(dòng)程序包裝器可以在組合的虛擬圖形PCIe設(shè)備上執(zhí)行PCIe功能級(jí)別的復(fù)位(FLR),并且可以忽略隨后的對(duì)例如VGPU226的仿真圖形設(shè)備和例如VF設(shè)備214的虛擬VF PCIe設(shè)備的訪問。在一個(gè)實(shí)施例中,作為對(duì)FLR的響應(yīng),客戶可以做好對(duì)VM遷移的準(zhǔn)備以作為對(duì)完成FLR的響應(yīng)。
[0033]圖4B是根據(jù)本發(fā)明的實(shí)施例的圖示出方法的實(shí)施例的流程圖。在實(shí)施例中,圖4B的流程可以涉及可由客戶的遷移目標(biāo)平臺(tái)執(zhí)行的用于VM遷移的操作。在方框406中,作為對(duì)VM遷移的響應(yīng),例如從第一 VM到第二 VM,VMM可以向客戶提供組合的虛擬PCIe圖形設(shè)備(例如在根據(jù)方框404提到的FLR的復(fù)位狀態(tài)中)。例如,以VM將要遷移到的目標(biāo)平臺(tái)和/或VMM配置為基礎(chǔ),組合的虛擬PCIe設(shè)備可以具有例如VGPU226的仿真圖形或者例如214的VF作為其基礎(chǔ)設(shè)備。在方框408中,客戶圖形驅(qū)動(dòng)程序包裝器可以繼續(xù)忽略對(duì)組合的虛擬PCIe設(shè)備的訪問。在方框410中,VM工具模塊可以通知客戶圖形驅(qū)動(dòng)程序包裝器圖形硬件已經(jīng)改變并且做好再次使用的準(zhǔn)備。
[0034]在方框412中,客戶圖形驅(qū)動(dòng)程序包裝器可以通過PCIe配置空間和/或例如BARO的仿真MMIO寄存器中的信息檢測(cè)基礎(chǔ)圖形設(shè)備,并且為檢測(cè)到的基礎(chǔ)圖形設(shè)備加載相應(yīng)的驅(qū)動(dòng)程序插件。客戶圖形驅(qū)動(dòng)程序包裝器可以利用加載的驅(qū)動(dòng)程序插件來初始化新檢測(cè)到的基礎(chǔ)圖形設(shè)備。在方框414中,客戶圖形驅(qū)動(dòng)程序插件可以發(fā)起客戶VM中的圖形堆棧的復(fù)位,并且圖形堆棧和客戶UI應(yīng)用可以響應(yīng)所述復(fù)位而重繪它們的窗口或者表示。在方框416中,客戶圖形驅(qū)動(dòng)程序和客戶堆??梢曰謴?fù)正常操作。
[0035]雖然圖3、4A和/或4B的圖示出的流程包括一系列的過程,但在一些實(shí)施例中的流程可以使用不同的順序執(zhí)行圖示出的過程。在另一個(gè)實(shí)施例中,圖3、4A和/或4B的流程可以支持動(dòng)態(tài)遷移和/或saveVM/loadVM類型的遷移。在另一個(gè)實(shí)施例中,圖3、4A和/或4B的流程可以不需要客戶OS和圖形設(shè)備驅(qū)動(dòng)程序模型的熱插/拔能力。雖然圖3、4A和/或4B的流程可以用于一個(gè)或多個(gè)基礎(chǔ)圖形設(shè)備/功能間的遷移,但在一些實(shí)施例中,該流程可以用于實(shí)現(xiàn)VMM中的任何其他設(shè)備/功能的即插即用支持。一些實(shí)施例可以展示組合的虛擬圖形設(shè)備,其隨著基礎(chǔ)設(shè)備的變化而改變其行為以實(shí)現(xiàn)VMM中的圖形設(shè)備即插即用支持。在一個(gè)實(shí)施例中,組合的虛擬圖形設(shè)備可以展示對(duì)于所有VMM實(shí)現(xiàn)是標(biāo)準(zhǔn)化的接口,并且客戶OS圖形設(shè)備驅(qū)動(dòng)程序可以獨(dú)立于任何特定的VMM實(shí)現(xiàn)。在另一個(gè)實(shí)施例中,由VMM實(shí)現(xiàn)的組合的虛擬圖形設(shè)備可以涵蓋一個(gè)或多個(gè)以硬件、軟件、固件和/或它們的組合為基礎(chǔ)的基礎(chǔ)設(shè)備,并且當(dāng)這些基礎(chǔ)設(shè)備變?yōu)榭捎没蛘卟豢捎脮r(shí)可以在它們之間切換。在另一個(gè)實(shí)施例中,組合的虛擬圖形設(shè)備可以展示對(duì)所有VMM實(shí)現(xiàn)是標(biāo)準(zhǔn)的PCIe接口。在又一個(gè)實(shí)施例中,客戶OS中的包裝器插件圖形設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)可以在基礎(chǔ)設(shè)備改變其行為時(shí)切換到新的插件模塊。包裝器和插件之間的接口可以對(duì)每個(gè)客戶OS類型來說都是標(biāo)準(zhǔn)的,并且可以不依賴于任何VMM實(shí)現(xiàn)。在組合的虛擬圖形設(shè)備中,一個(gè)或多個(gè)基礎(chǔ)圖形設(shè)備/功能可以被組合到單個(gè)PCIe設(shè)備中。組合的虛擬圖形設(shè)備可以由VMM實(shí)現(xiàn),但是可以向客戶OS展示對(duì)所有VMM實(shí)現(xiàn)都是標(biāo)準(zhǔn)的PCIe接口。在客戶OS中的包裝器插件圖形設(shè)備驅(qū)動(dòng)程序中,可以檢測(cè)到基礎(chǔ)PCIe圖形設(shè)備中的行為改變,并且可以切換到合適的插件。
[0036]雖然已經(jīng)參照實(shí)施例描述了本發(fā)明的某些特征,但該描述并不意圖被解釋為限制意義。對(duì)本發(fā)明所屬領(lǐng)域的技術(shù)人員來說顯而易見的是,對(duì)本發(fā)明實(shí)施例的各種修改以及本發(fā)明的其他實(shí)施例都被視為落在本發(fā)明的精神和范圍之內(nèi)。
【權(quán)利要求】
1.一種系統(tǒng),包括: 平臺(tái)硬件; 客戶虛擬機(jī);以及 虛擬機(jī)監(jiān)視器,用于將以下中的一個(gè)分配給所述客戶虛擬機(jī):在所述虛擬機(jī)監(jiān)視器中仿真的虛擬設(shè)備和在所述平臺(tái)硬件中的物理設(shè)備的虛擬功能,并且將組合的虛擬設(shè)備通過分配的設(shè)備展示給所述客戶虛擬機(jī)。
2.如權(quán)利要求1所述的系統(tǒng),進(jìn)一步包括: 客戶驅(qū)動(dòng)程序,用于檢測(cè)所述仿真虛擬設(shè)備和所述虛擬功能中的哪一個(gè)對(duì)所述組合的虛擬設(shè)備來說是活躍的,并且用于選擇與活躍的設(shè)備匹配的插件。
3.如權(quán)利要求2所述的系統(tǒng),進(jìn)一步包括: 用于向所述客戶驅(qū)動(dòng)程序通知虛擬機(jī)遷移的虛擬機(jī)工具模塊。
4.如權(quán)利要求1所述的系統(tǒng),其中,所述虛擬機(jī)監(jiān)視器進(jìn)一步獨(dú)立于分配的設(shè)備接口將用于所述組合的虛擬機(jī)的配置空間展示給所述客戶虛擬機(jī)。
5.如權(quán)利要求4所述的系統(tǒng),其中,所述虛擬機(jī)監(jiān)視器進(jìn)一步維護(hù)從所述配置空間到所述活躍的設(shè)備的映射。
6.如權(quán)利要求4所述的系統(tǒng),其中,所述虛擬機(jī)監(jiān)視器進(jìn)一步在所述配置空間中提供一個(gè)或多個(gè)字段來涵蓋所述仿真虛擬設(shè)備和所述虛擬功能。
7.如權(quán)利要求1所述的`系統(tǒng),其中,所述仿真虛擬設(shè)備包括用于實(shí)現(xiàn)仿真圖形處理能力的仿真虛擬圖形設(shè)備。
8.如權(quán)利要求2所述的系統(tǒng),其中,所述客戶驅(qū)動(dòng)程序包括包裝器插件結(jié)構(gòu),其中,所述包裝器用于確定與所述活躍的設(shè)備相應(yīng)的插件。
9.如權(quán)利要求1所述的系統(tǒng),其中,所述虛擬機(jī)監(jiān)視器進(jìn)一步在所述組合的虛擬設(shè)備中的所述仿真虛擬設(shè)備和所述物理設(shè)備的所述虛擬功能之間切換,而無須在所述客戶虛擬機(jī)的客戶操作系統(tǒng)中觸發(fā)即插即用事件。
10.一種方法,包括: 通過仿真虛擬圖形設(shè)備和主機(jī)中的物理圖形設(shè)備的虛擬功能中的一個(gè)提供組合的虛擬圖形設(shè)備;并且 向客戶展示所述組合的虛擬圖形設(shè)備。
11.如權(quán)利要求10所述的方法,進(jìn)一步包括: 在所述仿真虛擬圖形設(shè)備和虛擬功能設(shè)備之間切換,而無須從所述客戶的客戶操作系統(tǒng)中熱插/拔。
12.如權(quán)利要求10所述的方法,進(jìn)一步包括: 展示用于所述組合的虛擬圖形設(shè)備的PCIe配置空間,其與所述仿真虛擬圖形設(shè)備和所述虛擬功能中的哪個(gè)對(duì)于所述組合的虛擬圖形設(shè)備而言是活躍的無關(guān)。
13.如權(quán)利要求12所述的方法,其中,所述PCIe配置空間包括一個(gè)或多個(gè)字段,所述字段映射到所述仿真虛擬圖形設(shè)備和所述虛擬功能中活躍的那一個(gè)。
14.如權(quán)利要求10所述的方法,進(jìn)一步包括: 響應(yīng)于在所述仿真虛擬圖形設(shè)備和所述虛擬功能之間的切換,確定與切換到的設(shè)備相應(yīng)的插件驅(qū)動(dòng)程序;并且對(duì)所述仿真虛擬圖形設(shè)備和所述虛擬功能中切換到的那一個(gè)進(jìn)行初始化。
15.如權(quán)利要求10所述的方法,進(jìn)一步包括: 執(zhí)行在所述組合的虛擬設(shè)備中所述仿真虛擬圖形設(shè)備和所述虛擬功能之間的切換,無須在所述客戶虛擬機(jī)的客戶操作系統(tǒng)中觸發(fā)即插即用事件。
16.一種包含指令的機(jī)器可讀介質(zhì),當(dāng)被處理系統(tǒng)執(zhí)行時(shí),所述指令致使所述處理系統(tǒng)用于: 將主機(jī)中的物理圖形設(shè)備的虛擬功能和仿真虛擬圖形設(shè)備中的一個(gè)分配給客戶;并且 向所述客戶展示PCIe圖形設(shè)備的虛擬模型,所述PCIe設(shè)備通過分配的設(shè)備而具有圖形能力。
17.如權(quán)利要求16所述的機(jī)器可讀介質(zhì),進(jìn)一步包括多個(gè)指令,響應(yīng)于被執(zhí)行,所述指令會(huì)使計(jì)算設(shè)備用于: 檢測(cè)所述虛擬功能和所述仿真虛擬圖形設(shè)備中的哪一個(gè)對(duì)于所述虛擬PCIe圖形設(shè)備來說是活躍的;并且 選擇與檢測(cè)出的活躍設(shè)備匹配的插件。
18.如權(quán)利要求16所述的機(jī)器可讀介質(zhì),進(jìn)一步包括多個(gè)指令,響應(yīng)于被執(zhí)行,所述指令會(huì)使計(jì)算設(shè)備用于: 向所述客戶展示所述虛擬PCIe圖形設(shè)備的PCIe配置空間,其中,所述PCIe配置空間獨(dú)立于所述分配的設(shè)備來涵蓋所述虛擬功能和所述仿真虛擬圖形設(shè)備的配置。`
19.如權(quán)利要求16所述的機(jī)器可讀介質(zhì),進(jìn)一步包括多個(gè)指令,響應(yīng)于被執(zhí)行,所述指令會(huì)使計(jì)算設(shè)備用于: 響應(yīng)于所述客戶中的虛擬機(jī)遷移,在所述虛擬PCIe圖形設(shè)備上執(zhí)行PCIe功能級(jí)別的復(fù)位來忽略對(duì)所述虛擬功能和所述仿真虛擬圖形設(shè)備的訪問。
20.如權(quán)利要求19所述的機(jī)器可讀介質(zhì),進(jìn)一步包括多個(gè)指令,響應(yīng)于被執(zhí)行,所述指令會(huì)使計(jì)算設(shè)備用于: 基于所述遷移,在作為所述虛擬PCIe圖形設(shè)備基礎(chǔ)的所述虛擬功能和所述物理圖形設(shè)備之間進(jìn)行切換。
【文檔編號(hào)】G06F9/06GK103608769SQ201180071680
【公開日】2014年2月26日 申請(qǐng)日期:2011年11月23日 優(yōu)先權(quán)日:2011年4月18日
【發(fā)明者】S·岑, R·斯里尼瓦桑, D·J·考珀思韋特 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
开化县| 庆阳市| 长垣县| 四平市| 绥中县| 兰坪| 龙川县| 花莲市| 吐鲁番市| 婺源县| 二连浩特市| 保德县| 读书| 开江县| 沭阳县| 蓝田县| 大丰市| 新闻| 阿尔山市| 彭山县| 敦煌市| 深泽县| 婺源县| 望江县| 麻城市| 什邡市| 同仁县| 海南省| 津市市| 古田县| 措美县| 肥东县| 临清市| 郓城县| 武隆县| 连南| 合肥市| 承德市| 雅江县| 台安县| 张北县|