av网站播放,国产一级特黄毛片在线毛片,久久精品国产99精品丝袜,天天干夜夜要,伊人影院久久,av大全免费在线观看,国产第一区在线

根據(jù)活動(dòng)性狀態(tài)控制虛擬機(jī)的制作方法

文檔序號(hào):6615881閱讀:239來(lái)源:國(guó)知局
專利名稱:根據(jù)活動(dòng)性狀態(tài)控制虛擬機(jī)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于信息處理領(lǐng)域,更具體地講,屬于虛擬化領(lǐng)域。
技術(shù)背景一般來(lái)講,信息處理系統(tǒng)中的虛擬化構(gòu)思允許一個(gè)或多個(gè)操作系統(tǒng)(每個(gè)操作系統(tǒng)是一個(gè)"OS")的多個(gè)實(shí)例運(yùn)行在單個(gè)信息處理系統(tǒng)上,即使每個(gè)os被設(shè)計(jì)成對(duì)該系統(tǒng)及其資源具有完整的、直接的控 制也是如此。虛擬化通常采用軟件(例如虛擬機(jī)監(jiān)視器,或者"v醒")來(lái)實(shí)現(xiàn)以便為每個(gè)OS提供具有虛擬資源的"虛擬機(jī)"(VM),這包括 該OS可完全地、直接地控制的一個(gè)或多個(gè)虛擬處理器,同時(shí)VMM為實(shí) 現(xiàn)虛擬化策略維持系統(tǒng)環(huán)境,例如在多個(gè)VM之間共享和/或分配物理 資源("虛擬環(huán)境")。在VM上運(yùn)行的每個(gè)OS以及任何其他軟件被 稱為"客戶機(jī)"或"客戶機(jī)軟件",而"主機(jī)"或"主機(jī)軟件"則是 在該虛擬環(huán)境外部運(yùn)行的軟件,例如VM1。舉例來(lái)說(shuō),信息處理設(shè)備中的處理器可以通過(guò)采用"根"模式和"非根"模式兩種模式運(yùn)行來(lái)支持虛擬化,在"根"模式中,軟件在 所有虛擬環(huán)境的外部直接運(yùn)行在硬件上,在"非根"模式中,軟件按 照它期望的特權(quán)等級(jí)運(yùn)行,但是只在由以根模式運(yùn)行的VMM作為主機(jī) 的虛擬化環(huán)境內(nèi)部運(yùn)行。在該虛擬化環(huán)境中, 一些事件、操作和狀態(tài)(例如訪問(wèn)特權(quán)寄存器或資源的外部中斷或嘗試)可以被攔截,也就 是說(shuō),使該處理器退出虛擬化環(huán)境,以便V薩運(yùn)行例如來(lái)實(shí)現(xiàn)虛擬化 策略。該處理器可支持用來(lái)建立、進(jìn)入、退出以及維護(hù)虛擬化環(huán)境的
命令,而且可包括指示或控制該處理器的虛擬化性能的寄存器位或其 它結(jié)構(gòu)。支持虛擬化環(huán)境的物理處理器也可以支持用于電源管理或其他目 的的活動(dòng)性狀態(tài)特性?;顒?dòng)性狀態(tài)特性可以使處理器在不同活動(dòng)性狀 態(tài)(例如活動(dòng)狀態(tài)、等待狀態(tài)和暫停狀態(tài))之間轉(zhuǎn)換。這些狀態(tài)可以 被分類為活動(dòng)狀態(tài)或非活動(dòng)狀態(tài),其中活動(dòng)狀態(tài)是處理器正在執(zhí)行命 令的狀態(tài),而非活動(dòng)狀態(tài)可以是處理器不執(zhí)行命令的狀態(tài)。處理器可 以根據(jù)特殊命令的執(zhí)行、特殊總線消息或者其他通訊的探測(cè)而在活動(dòng) 性狀態(tài)之間轉(zhuǎn)換。處理器可發(fā)出特定消息或其他通訊來(lái)向其他處理器、 芯片組或其他部件通報(bào)它正在活動(dòng)性狀態(tài)之間進(jìn)行轉(zhuǎn)換。將會(huì)在虛擬化環(huán)境外部導(dǎo)致處理器進(jìn)入非活動(dòng)狀態(tài)的命令在被客戶機(jī)執(zhí)行時(shí)可被攔截,從而VMM可維持該處理器對(duì)于它自身或其他客 戶機(jī)處于活動(dòng)狀態(tài)。


本發(fā)明采用示例方式進(jìn)行說(shuō)明,但不限于所附的附圖。圖l表示本發(fā)明在信息處理系統(tǒng)中的實(shí)施例;圖2表示在分層虛擬化架構(gòu)中VMM的客戶機(jī)層級(jí)結(jié)構(gòu);圖3表示本發(fā)明在根據(jù)活動(dòng)性狀態(tài)控制虛擬機(jī)的方法中的實(shí)施例。
具體實(shí)施方式
本發(fā)明可以在根據(jù)活動(dòng)性狀態(tài)控制虛擬機(jī)的設(shè)備、方法或系統(tǒng)中 實(shí)施,其說(shuō)明如下。在本說(shuō)明書中,為了對(duì)本發(fā)明更加透徹地理解, 提出了許多特定的細(xì)節(jié),例如部件和系統(tǒng)配置。但熟悉該技術(shù)的人員 應(yīng)當(dāng)理解,本發(fā)明的實(shí)現(xiàn)可以不采用這些細(xì)節(jié)。另外,為了避免使本 發(fā)明沒(méi)必要地變得混淆不清,對(duì)一些眾所周知的結(jié)構(gòu)、電路等等都沒(méi)
有詳加展示。
本發(fā)明的諸實(shí)施例提供在虛擬化環(huán)境管理中要采用的活動(dòng)性狀態(tài)信息。根據(jù)本發(fā)明的一個(gè)實(shí)施例,如果VM進(jìn)入導(dǎo)致控制被轉(zhuǎn)移到客戶 機(jī),而這種轉(zhuǎn)移又會(huì)導(dǎo)致處理器進(jìn)入非活動(dòng)的活動(dòng)性狀態(tài),那么就會(huì) 立即執(zhí)行VM退出,以使處理器不進(jìn)入該非活動(dòng)的活動(dòng)性狀態(tài)。為了提 供更加穩(wěn)健、反應(yīng)迅速的系統(tǒng),基于活動(dòng)性狀態(tài)信息的虛擬機(jī)管理是 令人期望的。舉例來(lái)說(shuō),在分層虛擬化架構(gòu)中,其中一個(gè)V畫充當(dāng)另 一個(gè)作為客戶機(jī)的V固的主機(jī),而該另一個(gè)V鹿又充當(dāng)另一個(gè)作為客 戶機(jī)的V醒的主機(jī),并且如此下去,本發(fā)明的諸實(shí)施例可以使基礎(chǔ)VMM 有效地監(jiān)測(cè)具有非均衡活動(dòng)性分布的多個(gè)虛擬化環(huán)境。
本發(fā)明的諸實(shí)施例的要素可以采用硬件、軟件、固件或者硬件、 軟件、固件的任意組合來(lái)實(shí)現(xiàn)。術(shù)語(yǔ)硬件通常指具有物理結(jié)構(gòu)的元件, 例如電子的、電磁的、光學(xué)的、電子光學(xué)的、機(jī)械的、電子機(jī)械零件 等等。術(shù)語(yǔ)軟件通常指邏輯結(jié)構(gòu)、方法、進(jìn)程、程序、例程、過(guò)程、 算法、公式、表達(dá)式等等。術(shù)語(yǔ)固件通常指在硬件結(jié)構(gòu)(例如閃存或 只讀存儲(chǔ)器)中實(shí)現(xiàn)或?qū)嵤┑倪壿嫿Y(jié)構(gòu)、方法、進(jìn)程、程序、例程、 過(guò)程、算法、公式、表達(dá)式。固件的實(shí)例有可寫的控制存儲(chǔ)器以及微 編程結(jié)構(gòu)。
圖1表示信息處理系統(tǒng)100中的本發(fā)明的實(shí)施例。在圖1中,裸 平臺(tái)硬件110可以是能夠執(zhí)行任何0S、 VMM或其他這類軟件的任何數(shù) 據(jù)處理設(shè)備。舉例來(lái)說(shuō),裸平臺(tái)硬件可以是個(gè)人計(jì)算機(jī)、大型計(jì)算機(jī)、 便攜式計(jì)算機(jī)、手持式設(shè)備、機(jī)頂盒、服務(wù)器或任何其他計(jì)算系統(tǒng)的 平臺(tái)硬件。裸平臺(tái)硬件110包括處理器120和存儲(chǔ)器130。
處理器120可以是任何類型的處理器,包括通用微處理器,例如 Intel Pentium 處理器系列、Itanium 處理器系列或由Intel 公 司生產(chǎn)的其他處理器系列中的處理器,或者其他公司生產(chǎn)的另一種處
理器,或者數(shù)字信號(hào)處理器或微控制器。盡管圖1只示出了一個(gè)這樣的處理器120,但裸平臺(tái)硬件110可以包括任意數(shù)量的處理器,包括任 意數(shù)量的多核處理器和任意數(shù)量的多線程處理器,其中每個(gè)多核處理 器具有任意數(shù)量的執(zhí)行核,每個(gè)多線程處理器具有任意數(shù)量的線程。存儲(chǔ)器130可以是靜態(tài)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、基于半導(dǎo)體的只 讀或閃存存儲(chǔ)器、磁盤或光盤存儲(chǔ)器、可以由處理器120讀取的任何 其他類型介質(zhì)或者這類介質(zhì)的任意組合。處理器120和存儲(chǔ)器130可 以按照任何己知方案彼此耦合或通信,例如直接或間接通過(guò)一條或多 條總線、點(diǎn)對(duì)點(diǎn)、或其他有線或無(wú)線連接。裸平臺(tái)硬件110還可以包 括任意數(shù)量的附加器件或連接。除了裸平臺(tái)硬件110夕卜,圖1示出了 ■ 140和VM 150、 160、 170、 180以及多個(gè)客戶機(jī)。VMM 140可以是在裸平臺(tái)硬件110上安裝運(yùn)行或能夠訪問(wèn)裸平臺(tái)硬 件110的任何軟件、固件或硬件主機(jī),以向客戶機(jī)提供VM (即裸平臺(tái) 110的抽象),或者在由虛擬化架構(gòu)100所支持的虛擬化環(huán)境中創(chuàng)建 VM、管理VM以及實(shí)現(xiàn)虛擬化策略。在這個(gè)實(shí)施例中,V固140是"根 模式主機(jī)",因?yàn)樗愿J皆谔幚砥?20上運(yùn)行。在其他實(shí)施例中, 根模式主機(jī)可以是任何監(jiān)視器、hypervisor (虛擬機(jī)管理程序)、0S, 或者是能夠控制裸平臺(tái)硬件110的其他軟件、固件或硬件??蛻魴C(jī)可以是任何OS,任何VMM (包括V醒140的另一個(gè)實(shí)例)、 hypervisor,或者任何應(yīng)用或其他軟件。根據(jù)該VM中提供的處理器或 平臺(tái)的架構(gòu),每個(gè)客戶機(jī)期望訪問(wèn)物理資源,例如裸平臺(tái)硬件110的 處理器和平臺(tái)寄存器、存儲(chǔ)器以及1/0器件。圖1畫出了VM150、 160、 170和180,其中客戶機(jī)OS 152和客戶機(jī)應(yīng)用154及155在VM 150上 安裝運(yùn)行,客戶機(jī)VMM 162在VM 160上安裝運(yùn)行,客戶機(jī)OS 172在 VM 170上安裝運(yùn)行,而客戶機(jī)OS 182在VM 180上安裝運(yùn)行。在這個(gè)
實(shí)施例中,所有客戶機(jī)按照非根模式運(yùn)行。盡管圖1示出了四個(gè)VM、 四個(gè)客戶機(jī)0S以及兩個(gè)客戶機(jī)應(yīng)用,但在本發(fā)明的范圍內(nèi),可以創(chuàng)建 任意數(shù)量的VM,可以安裝任意數(shù)量的客戶機(jī)OS及應(yīng)用。
系統(tǒng)100的虛擬化架構(gòu)是"分層的"或"遞歸的",因?yàn)樗试S 一個(gè)VMM (例如VMM 140)充當(dāng)作為客戶機(jī)的另一個(gè)VMM (例如VMM 162) 的主機(jī)。在這種分層虛擬化架構(gòu)中,V醒140是包含VM 150和160的 虛擬化環(huán)境的主機(jī),但它不是任何一個(gè)虛擬化環(huán)境的客戶機(jī),因?yàn)樗?在裸平臺(tái)硬件110上安裝運(yùn)行,在它和裸平臺(tái)硬件110之間不存在"介 入"監(jiān)視器。"介入監(jiān)視器"是充當(dāng)客戶機(jī)(例如客戶機(jī)OS 172)的 主機(jī)的監(jiān)視器(例如V固162),但其本身也是一個(gè)客戶機(jī)。V固162 是包含VM 170和180的虛擬化環(huán)境的主機(jī),但也是以V躍140作為主 機(jī)的虛擬化環(huán)境的客戶機(jī)。在本文中,介入監(jiān)視器(例如V醒162)記 作父客戶機(jī),因?yàn)樗瓤梢宰鳛榱硪籚M (或VM層級(jí)結(jié)構(gòu))的父機(jī)器運(yùn) 作、也可以作為基礎(chǔ)V畫的客戶機(jī)運(yùn)作(例如V畫140是VMM 162的 父機(jī)器,而V畫162又是客戶機(jī)172和182的父機(jī)器)。
如果監(jiān)視器(例如VMM 140)和客戶機(jī)(例如OS 152、客戶機(jī)應(yīng) 用154、客戶機(jī)應(yīng)用155及客戶機(jī)V醒162)之間不存在介入監(jiān)視器, 那么該監(jiān)視器被稱為該客戶機(jī)的"父機(jī)器"。該客戶機(jī)被稱為該監(jiān)視 器的"子機(jī)器"??蛻魴C(jī)可以既是子機(jī)器又是父機(jī)器。例如說(shuō),VMM 162 是VMM 140的子機(jī)器,同時(shí)是客戶機(jī)OS 172和客戶機(jī)OS 182的父機(jī) 器??蛻魴C(jī)可以訪問(wèn)的資源可以被歸類為"特權(quán)"資源或者"非特權(quán)" 資源。對(duì)特權(quán)資源,主機(jī)(例如VMM140)便于實(shí)現(xiàn)客戶機(jī)所希望的功 能,并同時(shí)對(duì)該資源保持最終控制。非特權(quán)資源不需要由主機(jī)控制, 而且可以由客戶機(jī)直接訪問(wèn)。
另外,每個(gè)客戶機(jī)0S期望處理各種事件,例如異常(如頁(yè)面錯(cuò)誤
以及一般保護(hù)錯(cuò)誤)、中斷(如硬件中斷及軟件中斷)以及平臺(tái)事件 (如初始化及系統(tǒng)管理中斷)。在本文中,這些異常、中斷和平臺(tái)事 件被全體地和獨(dú)立地稱為"事件"。這些事件中有一部分是"特權(quán)的",因?yàn)樗麄儽仨氂芍鳈C(jī)處理以便保證VM的正常運(yùn)行、保護(hù)主機(jī)不受客戶 機(jī)影響以及實(shí)現(xiàn)客戶機(jī)之間的相互保護(hù)。在任意給定時(shí)刻,處理器120可能正在執(zhí)行來(lái)自V匪140或任何 客戶機(jī)的命令,因而VMM 140或客戶機(jī)可能是活動(dòng)的,并且在處理器 120上運(yùn)行或在處理器120控制下運(yùn)行。當(dāng)特權(quán)事件發(fā)生或者客戶機(jī)試 圖訪問(wèn)特權(quán)資源時(shí),控制可由該客戶機(jī)轉(zhuǎn)移到V固140。在本文中,控 制從客戶機(jī)到主機(jī)的轉(zhuǎn)移被稱為"VM退出"。在適當(dāng)處理了該事件或 者幫助訪問(wèn)了該資源后,V畫140可以將控制返回給客戶機(jī)。在本文中, 控制從主機(jī)到客戶機(jī)的轉(zhuǎn)移被稱為"VM進(jìn)入"。除了上述將控制從客戶機(jī)轉(zhuǎn)移到根模式主機(jī)的VM退出之外,本發(fā) 明的實(shí)施例也提供了使控制由客戶機(jī)轉(zhuǎn)移到非根模式主機(jī)(例如介入 監(jiān)視器)的VM退出。在圖1的實(shí)施例中,處理器120根據(jù)存儲(chǔ)在虛擬機(jī)控制結(jié)構(gòu)(VMCS) 132中的數(shù)據(jù)來(lái)控制VM的運(yùn)行。VMCS 132是一種結(jié)構(gòu),該結(jié)構(gòu)包含一 個(gè)客戶機(jī)或多個(gè)客戶機(jī)的狀態(tài)、V固140的狀態(tài)、指示VMM 140是如何 控制一個(gè)或多個(gè)客戶機(jī)運(yùn)行的執(zhí)行控制信息、關(guān)于VM退出和VM進(jìn)入 的信息以及任何其他這類信息。處理器120從VMCS 132讀取信息來(lái)判 定VM的執(zhí)行環(huán)境并限制它的行為。在這個(gè)實(shí)施例中,VMCS132被存儲(chǔ) 在存儲(chǔ)器130中。VMCS 132可以被分解為多個(gè)結(jié)構(gòu),每個(gè)結(jié)構(gòu)對(duì)應(yīng)于 一個(gè)主機(jī)或一個(gè)客戶機(jī),其中每個(gè)結(jié)構(gòu)可以被認(rèn)為是獨(dú)立的VMCS。V畫的"客戶機(jī)層級(jí)結(jié)構(gòu)"是在該虛擬化環(huán)境中或由該V固支持的 多個(gè)虛擬化環(huán)境中安裝運(yùn)行的軟件棧。本發(fā)明可以在虛擬化架構(gòu)中實(shí) 施,在這種虛擬化架構(gòu)中,客戶機(jī)層級(jí)結(jié)構(gòu)包含VMCS之間的指針鏈。
這些指針在從子機(jī)器的VMCS指向父機(jī)器的VMCS時(shí)被稱為"父指針", 而在從父機(jī)器的VMCS指向子機(jī)器的VMCS時(shí)被稱為"子指針"。圖2表示VMM 220的客戶機(jī)層級(jí)結(jié)構(gòu),VMM 220被安裝在裸平臺(tái)硬 件210上作為根模式主機(jī)。VMCS 221是用于VMM 220的控制結(jié)構(gòu),盡 管根模式主機(jī)不具有控制結(jié)構(gòu)也可以運(yùn)行??蛻魴C(jī)230是V固220的 子機(jī)器,由VMCS 231加以控制。所以,父指針("PP" ) 232指向VMCS 221??蛻魴C(jī)240也是V躍220的子機(jī)器,也由VMCS 241控制。所以, 父指針242也指向VMCS 221??蛻魴C(jī)240本身是一個(gè)VMM,具有兩個(gè)子機(jī)器即客戶機(jī)250和260, 而每個(gè)子機(jī)器分別擁有VMCS 251和261。父指針252和父指針262都 指向VMCS 241?;顒?dòng)的或者正在運(yùn)行的客戶機(jī)的VMCS被它的父機(jī)器的VMCS的子 指針?biāo)?。所以,圖2畫出指向VMCS 251的子指針243來(lái)指示客戶機(jī) 250是活動(dòng)的。類似地,具有活動(dòng)的子指針的客戶機(jī)的VMCS被它的父 機(jī)器的VMCS的子指針?biāo)福@和空子指針不同。所以,圖2畫出指向 VMCS 241的子指針223。因此,父指針鏈將活動(dòng)的客戶機(jī)的VMCS通過(guò) 任意介入監(jiān)視器的VMCS連接到根模式主機(jī)的VMCS,而子指針鏈則將根 模式主機(jī)的VMCS通過(guò)任意介入監(jiān)視器的VMCS連接到活動(dòng)客戶機(jī)的 VMCS。在本文中,VMCS 221被稱為"根VMCS"。在實(shí)施例中,沒(méi)有如上 所述的根VMCS。在包含根VMCS的實(shí)施例中,處理硬件可以在內(nèi)部寄存 器或其他數(shù)據(jù)結(jié)構(gòu)中保持指針指向根VMCS。在本文中,如上所述的活 動(dòng)的客戶機(jī)的VMCS被稱為當(dāng)前控制VMCS。例如說(shuō),當(dāng)客戶機(jī)250是活 動(dòng)的時(shí),VMCS 251就是當(dāng)前控制VMCS。在實(shí)施例中,處理硬件可以在 內(nèi)部寄存器或其他數(shù)據(jù)結(jié)構(gòu)中保持指針指向當(dāng)前控制VMCS。如果VMCS不是父VMCS,那么它的子指針(例如子指針233、 253 和263)就可以是空指針。舉例來(lái)說(shuō),假設(shè)VMCS不具有父機(jī)器,如果 它是根模式VMCS,那么它的父指針(例如父指針222)就可以是空指 針。作為選擇,這些空指針可以省略。在一些實(shí)施例中,空VMCS的"空" 值可以是零。在其他實(shí)施例中,其他值可以被解釋為"空值"。舉例 來(lái)說(shuō),在一個(gè)具有32位地址的實(shí)施例中,值Oxffffffff可以被解釋 為空值。根據(jù)本發(fā)明的實(shí)施例,圖2中的每個(gè)客戶機(jī)的VMCS包括許多位, 用于有關(guān)基于活動(dòng)性狀態(tài)的VM控制的信息,但是可以采用域或者任何 其他信息存儲(chǔ)空間或格式來(lái)代替這些位。舉例來(lái)說(shuō),如果相應(yīng)客戶機(jī) 在出現(xiàn)VM進(jìn)入時(shí)處于非活動(dòng)的活動(dòng)性狀態(tài),活動(dòng)性狀態(tài)處理指示符 234、 244、 254和264是控制和指示是否要執(zhí)行VM退出的位,這將在 下面加以說(shuō)明。這些位可以通過(guò)軟件(例如相應(yīng)的主機(jī)VMM)來(lái)設(shè)置以 便啟動(dòng)這一特性,并由(如下所述的)虛擬化控制邏輯121加以讀取 來(lái)判定是否執(zhí)行為這一特性定義的操作。如下所述,活動(dòng)性狀態(tài)的狀 態(tài)指示符235、 245、 255和265是控制并指示相應(yīng)客戶機(jī)的活動(dòng)性狀 態(tài)的位。這些位可以通過(guò)軟件(例如相應(yīng)的主機(jī)V固)進(jìn)行設(shè)置來(lái)控制 相應(yīng)客戶機(jī)的活動(dòng)性狀態(tài),由虛擬化控制邏輯121進(jìn)行設(shè)置來(lái)指示相 應(yīng)客戶機(jī)的活動(dòng)性狀態(tài),并由軟件或虛擬化控制邏輯121加以讀取來(lái) 判定相應(yīng)客戶機(jī)的活動(dòng)性狀態(tài)。返回再看圖1,處理器120包括虛擬化邏輯121來(lái)支持虛擬化,包 括分層虛擬化架構(gòu)中的活動(dòng)性狀態(tài)處理。虛擬化邏輯121可以在處理 器120內(nèi)以微碼、可編程邏輯、硬碼邏輯或任何其他形式的控制邏輯 實(shí)現(xiàn)。在其他實(shí)施例中,虛擬化邏輯121可以在處理器內(nèi)部或者可以 由處理器訪問(wèn)的任何器件或可以讀取的任何介質(zhì)(例如存儲(chǔ)器130)內(nèi) 部以任意形式的硬件、軟件或固件實(shí)現(xiàn),例如處理器抽象層。虛擬化邏輯121包括VM進(jìn)入邏輯122、活動(dòng)性狀態(tài)評(píng)估邏輯123、
VM控制邏輯124以及VM退出邏輯125。 VM進(jìn)入邏輯122是用于準(zhǔn)備并 引起VM進(jìn)入?;顒?dòng)性狀態(tài)評(píng)估邏輯123是用于判定在VM進(jìn)入時(shí)接收 控制的客戶機(jī)是否在接收到控制時(shí)會(huì)處于非活動(dòng)的活動(dòng)性狀態(tài)。VM控 制邏輯124是用于判定如下所述的活動(dòng)性狀態(tài)處理是否已被啟動(dòng)。VM 退出邏輯125是用于準(zhǔn)備并導(dǎo)致VM退出。這些邏輯單元中的每個(gè)單元 也執(zhí)行額外的功能,包括正由這些邏輯單元中另一個(gè)單元執(zhí)行的上述 功能,而且,這些邏輯單元中的任何一個(gè)單元或所有單元都能被集成 到一個(gè)單獨(dú)的邏輯單元內(nèi)。控制邏輯121能夠使處理器120執(zhí)行本發(fā)明的方法實(shí)施例,例如 圖3所示的方法實(shí)施例,舉例來(lái)說(shuō),可以使處理器120響應(yīng)于虛擬化 命令、來(lái)自主機(jī)或客戶機(jī)的其他命令或者虛擬化事件,執(zhí)行一個(gè)或多 個(gè)微操作,以便例如支持虛擬化。圖3表示根據(jù)本發(fā)明的實(shí)施例的、用于控制虛擬機(jī)的方法300。圖 3的方法實(shí)施例將參考圖1和圖2加以說(shuō)明,但是方法實(shí)施例并不限于 此。在框310中,父VMM(例如V固220)為子V醒(例如客戶機(jī)V匪240) 創(chuàng)建并配置VMCS (例如VMCS 241),包括對(duì)活動(dòng)性狀態(tài)處理指示符(例 如域244)編程。在框312中,執(zhí)行從該父V醒到該子VMM的VM進(jìn)入。 在框314中,子VMM為第一客戶機(jī)(例如客戶機(jī)250)創(chuàng)建并配置VMCS(例如VMCS 251),包括為活動(dòng)性狀態(tài)的狀態(tài)指示符(例如域255) 編程。在這種情況下,域255被設(shè)置成指示客戶機(jī)250處于活動(dòng)的活 動(dòng)性狀態(tài)。在框316中,子V,為第二客戶機(jī)(例如客戶機(jī)260)創(chuàng)建 和配置VMCS (例如VMCS 261)。在框320中,啟動(dòng)從子V固到第一客戶機(jī)的VM進(jìn)入。在框322中, 評(píng)估邏輯322例如通過(guò)讀取活動(dòng)性狀態(tài)的狀態(tài)指示符255判定第一客 戶機(jī)在該VM進(jìn)入時(shí)會(huì)處于活動(dòng)的活動(dòng)性狀態(tài)。所以,在框324中,VM
進(jìn)入完成而不出現(xiàn)立即的VM退出。在框326中,第一客戶機(jī)開(kāi)始或者 繼續(xù)執(zhí)行命令。在框328中,第一客戶機(jī)嘗試執(zhí)行將使該處理器進(jìn)入 非活動(dòng)的活動(dòng)性狀態(tài)的命令(例如暫停或其他類似命令)。在框330中,暫停命令被攔截,從而使得該子V固的VM退出被啟 動(dòng)。在框332中,第一客戶機(jī)的狀態(tài)被保存到它的VMCS,包括修改活 動(dòng)性狀態(tài)的狀態(tài)域以指示第一客戶機(jī)的活動(dòng)性狀態(tài)在VM進(jìn)入它時(shí)會(huì)成 為非活動(dòng)的。在另一個(gè)實(shí)施例中,該活動(dòng)性狀態(tài)的狀態(tài)域可以在VM退 出時(shí)不加修改。在框334中,結(jié)束VM退出。在框340中,執(zhí)行對(duì)第二客戶機(jī)(例如客戶機(jī)260)的VM進(jìn)入。 在框342中,第二客戶機(jī)開(kāi)始或繼續(xù)執(zhí)行命令。在框344中,發(fā)生虛 擬化事件,并執(zhí)行VM退出以將控制轉(zhuǎn)移回到子V固。在框350中,啟動(dòng)到第一客戶機(jī)的VM進(jìn)入。在框352中,評(píng)估邏 輯322例如通過(guò)讀取活動(dòng)性狀態(tài)的狀態(tài)指示符255判定第一客戶機(jī)在 該VM進(jìn)入時(shí)會(huì)處于非活動(dòng)的活動(dòng)性狀態(tài)。所以,在框354中,VM控制 邏輯判定該VM進(jìn)入是否跟隨有立即的VM退出,以便防止處理器進(jìn)入 非活動(dòng)的活動(dòng)性狀態(tài)。這種判定可以通過(guò)讀取啟動(dòng)該VM進(jìn)入的主機(jī)的 VMCS中的活動(dòng)性狀態(tài)處理指示符(例如域244)進(jìn)行。這種判定可以 按照由上向下的方案進(jìn)行,所以,如果用于該啟動(dòng)主機(jī)的活動(dòng)性狀態(tài) 處理指示符未被設(shè)置成指示要執(zhí)行VM退出,那么就不為該啟動(dòng)主機(jī)的 父機(jī)器讀取活動(dòng)性狀態(tài)處理指示符,如此向下處理,直到根VMCS。如果判定不會(huì)發(fā)生立即的VM退出,那么,就在框356中完成VM 進(jìn)入,方法300在框358中繼續(xù),否則,方法300從框354至框370 繼續(xù)。在框358中,處理器發(fā)送特定總線消息或其他通訊以指示它正要 進(jìn)入非活動(dòng)的活動(dòng)性狀態(tài),然后進(jìn)入非活動(dòng)的活動(dòng)性狀態(tài)。在框360 中,發(fā)生硬件中斷或其他中斷事件,從而使得該處理器轉(zhuǎn)換成活動(dòng)的
活動(dòng)性狀態(tài)。在這個(gè)實(shí)施例中,硬件中斷也導(dǎo)致在框362中被啟動(dòng)的 VM退出。在框364中,第一客戶機(jī)的狀態(tài)被保存到它的VMCS,包括設(shè) 置活動(dòng)性狀態(tài)的狀態(tài)域來(lái)指示第一客戶機(jī)的活動(dòng)性狀態(tài)在VM進(jìn)入它時(shí) 會(huì)成為活動(dòng)的。在另一個(gè)實(shí)施例中,活動(dòng)性狀態(tài)的狀態(tài)域在該VM退出 的過(guò)程中不加修改。在框366中,完成VM退出,方法300結(jié)束。在框370中,VM進(jìn)入完成,隨后在框372中啟動(dòng)立即的VM退出以 防止處理器進(jìn)入非活動(dòng)的活動(dòng)性狀態(tài)并發(fā)送任何類型的特定總線消息 或其他通訊來(lái)指示它正要進(jìn)入非活動(dòng)的活動(dòng)性狀態(tài)。在框374中,第 一客戶機(jī)的狀態(tài)被保存到它的VMCS,包括設(shè)置活動(dòng)性狀態(tài)的狀態(tài)域來(lái) 指示第一客戶機(jī)的活動(dòng)性狀態(tài)在VM進(jìn)入它時(shí)會(huì)成為非活動(dòng)的。在另一個(gè)實(shí)施例中,所保存的活動(dòng)性狀態(tài)的狀態(tài)域指示活動(dòng)狀態(tài)。在框376 中,完成VM退出,控制被轉(zhuǎn)移到發(fā)現(xiàn)為其設(shè)置了活動(dòng)性狀態(tài)處理指示 符的主機(jī)的父機(jī)器。在這種情況下,設(shè)置了活動(dòng)性狀態(tài)處理指示符244, 所以不執(zhí)行由上向下的遞歸判定,而且對(duì)父V醒220執(zhí)行VM退出,方 法300結(jié)束。在本發(fā)明的范圍內(nèi),可以使圖3所示的方法按照不同的順序執(zhí)行、 省略一些圖示的框執(zhí)行、增加額外的框執(zhí)行或者按照重新排序的、省 略的或額外的框的組合執(zhí)行。在本發(fā)明的一些實(shí)施例中,VMM可通過(guò)將一定信息編程到客戶機(jī)的 VMCS而將事件導(dǎo)引或注入到該客戶機(jī)中,然后執(zhí)行VM進(jìn)入來(lái)將控制轉(zhuǎn) 移到該客戶機(jī)。在這些實(shí)施例中,客戶機(jī)在VM進(jìn)入前可以處于非活動(dòng) 的活動(dòng)性狀態(tài),但虛擬化控制邏輯121可以被設(shè)計(jì)成不執(zhí)行立即的VM 退出,因?yàn)樵摽蛻魴C(jī)被置于活動(dòng)的活動(dòng)性狀態(tài)來(lái)處理事件。在本發(fā)明的一些實(shí)施例中,客戶機(jī)可以處于非活動(dòng)的活動(dòng)性狀態(tài), 但如果出現(xiàn)掛起的中斷事件而且該事件已發(fā)生,也可以轉(zhuǎn)變到活動(dòng)的 活動(dòng)性狀態(tài)。在這些實(shí)施例中,如果對(duì)這個(gè)客戶機(jī)發(fā)生VM進(jìn)入而它仍
處于非活動(dòng)的狀態(tài),那么虛擬化控制邏輯121就可以被設(shè)計(jì)成執(zhí)行立 即的VM退出,因?yàn)樵谠u(píng)估基于活動(dòng)性狀態(tài)的VM控制之前,該掛起的 中斷事件未被識(shí)別。在另一個(gè)實(shí)施例中,該中斷事件可以在該活動(dòng)性 狀態(tài)評(píng)估結(jié)束之前被識(shí)別。根據(jù)本發(fā)明的實(shí)施例所設(shè)計(jì)的處理器120或者任何其他部件或部 件的組成部分可以在從生成到仿真到制造的不同階段進(jìn)行設(shè)計(jì)。表述 設(shè)計(jì)的數(shù)據(jù)可以按照多種方式來(lái)表述該設(shè)計(jì)。首先,正如在仿真中實(shí) 用的那樣,硬件可以采用硬件描述語(yǔ)言或另一種功能描述語(yǔ)言來(lái)表述。 另外或可選地,在設(shè)計(jì)過(guò)程的一些階段可以生產(chǎn)具有邏輯和/或晶體管 門電路的線路級(jí)模型。而且,在某些階段,大多數(shù)設(shè)計(jì)都會(huì)達(dá)到可以 采用表示各種器件物理位置的數(shù)據(jù)進(jìn)行建模的水平。在采用常規(guī)半導(dǎo) 體制造技術(shù)的情況下,表示器件位置模型的數(shù)據(jù)對(duì)用來(lái)生產(chǎn)集成電路 的掩膜而言,可以是規(guī)定不同掩膜層上的各種特性存在或不存在的數(shù) 據(jù)。在該設(shè)計(jì)的任何一種表述中,該數(shù)據(jù)可以被存儲(chǔ)在任何形式的機(jī) 器可讀介質(zhì)中。被調(diào)制或者被生成為發(fā)送這種信息的光波或電波、存 儲(chǔ)器或者磁或者光學(xué)存儲(chǔ)介質(zhì)(例如碟片)都可以是機(jī)器可讀介質(zhì)。 任何這種介質(zhì)都可以"承載"或"指示"該設(shè)計(jì)或者本發(fā)明的實(shí)施例 中所用的其他信息,例如錯(cuò)誤恢復(fù)例程中的命令。當(dāng)指示或承載信息 的電氣載波被發(fā)送時(shí),從執(zhí)行復(fù)制、緩存或重新發(fā)送該電信號(hào)的程度 上講,就產(chǎn)生一個(gè)新副本。所以,通訊提供者或網(wǎng)絡(luò)供應(yīng)商的行為可 構(gòu)成能夠?qū)嵤┍景l(fā)明的技術(shù)的物品(例如載波)的拷貝。至此,本文公布了用于根據(jù)活動(dòng)性狀態(tài)來(lái)控制虛擬機(jī)的系統(tǒng)、設(shè) 備和方法。盡管己經(jīng)說(shuō)明了并采用附圖示出了一些實(shí)施例,但應(yīng)當(dāng)理 解,這些實(shí)施例僅僅是演示性的,而不是要限制這個(gè)范圍很廣的發(fā)明, 而且本發(fā)明不限于本文所示出并加以說(shuō)明的特定構(gòu)造和設(shè)計(jì)方案,因
為本領(lǐng)域的普通技術(shù)人員在研究本專利公開(kāi)時(shí)可以作出其他修改。在 這樣一種發(fā)展迅速、未來(lái)進(jìn)步不易預(yù)見(jiàn)的技術(shù)領(lǐng)域中,由于技術(shù)的進(jìn) 步,所公開(kāi)的實(shí)施例很容意在設(shè)計(jì)方案和細(xì)節(jié)方面進(jìn)行修改而不偏離 本公開(kāi)專利的原理或所附權(quán)利要求的范圍。
權(quán)利要求
1、一種設(shè)備,包括虛擬機(jī)進(jìn)入邏輯,用于將對(duì)該設(shè)備的控制由主機(jī)轉(zhuǎn)移到客戶機(jī);以及活動(dòng)性狀態(tài)評(píng)估邏輯,用于判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)是否會(huì)成為非活動(dòng)的。
2、 根據(jù)權(quán)利要求1的設(shè)備,還包括虛擬機(jī)退出邏輯,用于響應(yīng)于 該活動(dòng)性狀態(tài)評(píng)估邏輯判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)會(huì) 成為非活動(dòng)的,將對(duì)該設(shè)備的控制從該客戶機(jī)轉(zhuǎn)移。
3、 根據(jù)權(quán)利要求1的設(shè)備,還包括虛擬機(jī)控制邏輯,用于響應(yīng)于 該活動(dòng)性狀態(tài)評(píng)估邏輯判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)會(huì) 成為非活動(dòng)的,判定是否從該客戶機(jī)轉(zhuǎn)移控制。
4、 根據(jù)權(quán)利要求3的設(shè)備,還包括虛擬機(jī)退出邏輯,用于響應(yīng)于 該活動(dòng)性狀態(tài)評(píng)估邏輯判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)會(huì) 成為非活動(dòng)的并且該虛擬機(jī)控制邏輯判定從該客戶機(jī)轉(zhuǎn)移控制,從該 客戶機(jī)轉(zhuǎn)移控制。
5、 根據(jù)權(quán)利要求3的設(shè)備,其中該虛擬機(jī)控制邏輯用于根據(jù)虛擬 機(jī)控制結(jié)構(gòu)中的活動(dòng)性狀態(tài)處理指示符判定是否從該客戶機(jī)轉(zhuǎn)移控 制。
6、 根據(jù)權(quán)利要求3的設(shè)備,其中該虛擬機(jī)控制邏輯用于根據(jù)該主機(jī)的虛擬機(jī)控制結(jié)構(gòu)中的活動(dòng)性狀態(tài)處理指示符來(lái)判定是否將控制從 該客戶機(jī)轉(zhuǎn)移到該主機(jī)的父機(jī)器。
7、 根據(jù)權(quán)利要求6的設(shè)備,還包括虛擬機(jī)退出邏輯,用于將控制 從該客戶機(jī)轉(zhuǎn)移到該主機(jī)的父機(jī)器。
8、 根據(jù)權(quán)利要求6的設(shè)備,其中在該主機(jī)和該主機(jī)的父機(jī)器之間 不存在介入監(jiān)視器。
9、 根據(jù)權(quán)利要求6的設(shè)備,其中該虛擬機(jī)控制邏輯還用于根據(jù)該 主機(jī)的父機(jī)器的虛擬機(jī)控制結(jié)構(gòu)中的活動(dòng)性狀態(tài)處理指示符判定是否 將控制從該客戶機(jī)轉(zhuǎn)移到該主機(jī)的父機(jī)器。
10、 根據(jù)權(quán)利要求9的設(shè)備,還包括虛擬機(jī)退出邏輯,用于將控 制從該客戶機(jī)轉(zhuǎn)移到該主機(jī)的父機(jī)器的父機(jī)器。
11、 一種方法,包括啟動(dòng)處理器的控制從主機(jī)到客戶機(jī)的轉(zhuǎn)移;以及 判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)是否會(huì)成為非活動(dòng)的。
12、 根據(jù)權(quán)利要求ll的方法,還包括在判定該客戶機(jī)的活動(dòng)性狀 態(tài)會(huì)成為非活動(dòng)的之后將控制從該客戶機(jī)轉(zhuǎn)移。
13、 根據(jù)權(quán)利要求12的方法,還包括在判定該客戶機(jī)的活動(dòng)性狀 態(tài)會(huì)成為非活動(dòng)的之后并在將控制從該客戶機(jī)轉(zhuǎn)移之前,完成從該主機(jī)到該客戶機(jī)的控制轉(zhuǎn)移。
14、 根據(jù)權(quán)利要求12的方法,還包括根據(jù)虛擬機(jī)控制結(jié)構(gòu)中的活 動(dòng)性狀態(tài)處理指示符判定是否從該客戶機(jī)轉(zhuǎn)移控制。
15、 根據(jù)權(quán)利要求12的方法,其中從該客戶機(jī)轉(zhuǎn)移控制包括將控 制轉(zhuǎn)移到該主機(jī)的第一父機(jī)器。
16、 根據(jù)權(quán)利要求12的方法,還包括根據(jù)該主機(jī)的虛擬機(jī)控制結(jié)構(gòu)中的活動(dòng)性狀態(tài)處理指示符,判定 不將控制從該客戶機(jī)轉(zhuǎn)移到該主機(jī)的第一父機(jī)器;以及根據(jù)該主機(jī)的第一父機(jī)器的虛擬機(jī)控制結(jié)構(gòu)中的活動(dòng)性狀態(tài)處理 指示符,判定將控制從該客戶機(jī)轉(zhuǎn)移到該主機(jī)的第二父機(jī)器。
17、 根據(jù)權(quán)利要求ll的方法,還包括 將事件導(dǎo)引到該客戶機(jī);以及在接收到控制時(shí)將該客戶機(jī)的活動(dòng)性狀態(tài)從非活動(dòng)的改變?yōu)榛顒?dòng) 的以便處理該事件。
18、 根據(jù)權(quán)利要求11的方法,其中該客戶機(jī)處于使中斷事件掛起 的非活動(dòng)狀態(tài),還包括完成控制從該主機(jī)到該客戶機(jī)的轉(zhuǎn)移;以及 在該客戶機(jī)接收到控制時(shí)從該客戶機(jī)轉(zhuǎn)移控制。
19、 一種系統(tǒng),包括 處理器,包括虛擬機(jī)進(jìn)入邏輯,用于將對(duì)該處理器的控制從主機(jī)轉(zhuǎn)移到客戶機(jī),以及活動(dòng)性狀態(tài)評(píng)估邏輯,用于判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)是否會(huì)成為非活動(dòng)的;以及存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),以便存儲(chǔ)該活動(dòng)性狀態(tài)評(píng)估邏輯所 使用的指示符。
20、根據(jù)權(quán)利要求19的系統(tǒng),其中該存儲(chǔ)器是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
全文摘要
本發(fā)明公開(kāi)了用于根據(jù)活動(dòng)性狀態(tài)控制虛擬機(jī)的設(shè)備、方法和系統(tǒng)的實(shí)施例。在一個(gè)實(shí)施例中,設(shè)備包括虛擬機(jī)進(jìn)入邏輯和活動(dòng)性狀態(tài)評(píng)估邏輯,該虛擬機(jī)進(jìn)入邏輯用于將對(duì)該設(shè)備的控制從主機(jī)轉(zhuǎn)移到客戶機(jī),該活動(dòng)性狀態(tài)評(píng)估邏輯用于判定該客戶機(jī)的活動(dòng)性狀態(tài)在接收到控制時(shí)是否會(huì)成為非活動(dòng)的。
文檔編號(hào)G06F9/455GK101211271SQ200710305950
公開(kāi)日2008年7月2日 申請(qǐng)日期2007年12月28日 優(yōu)先權(quán)日2006年12月29日
發(fā)明者A·V·安德森, B·E·亨特利, G·奈格, L·史密斯三世, S·D·羅杰斯, S·M·貝內(nèi)特, S·謝卡爾 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1