專利名稱:根據(jù)客戶軟件的特許級支持向虛擬機監(jiān)視器轉(zhuǎn)移的制作方法
根據(jù)客戶軟件的特許級支持向虛擬機監(jiān)視器轉(zhuǎn)移
本申請是申請人于2005年6月28日提交的,申請?zhí)枮?00510082092. 3 的,發(fā)明名稱為"根據(jù)客戶軟件的特許級支持向虛擬機監(jiān)視器轉(zhuǎn)移"的發(fā)明專 利申請的分案申請。
背景技術(shù):
本發(fā)明諸實施例涉及虛擬機,更具體地說,本發(fā)明諸實施例涉及虛擬機 (VM)中運行的客戶軟件的特許級符合特許級退出判據(jù)時,讓虛擬機監(jiān)視器 (VMM)奪回對處理器的控制。
普通VMM可在計算機上運行,向其它軟件呈現(xiàn)一個或多臺虛擬機的概況。 每臺VM都可當作一個獨立的平臺,運行其自己的操作系統(tǒng)(OS)諸如"客戶 操作系統(tǒng)"和應用程序,這統(tǒng)稱為"客戶軟件"。比如說,客戶軟件準備在VM 里或VM上運行??蛻糗浖谕裨趯S糜嬎銠C上而不是在VM上運行那樣的操 作,即客戶軟件希望控制各種計算機操作,并在操作時訪問硬件資源。硬件資 源包括控制寄存器等處理器固有的資源和諸如描述符表格等留駐在存儲器里 的資源。但在虛擬機環(huán)境內(nèi)V腿應能最終控制這些資源,使VM正常操作并加 以保護。為此,V顧通常攔截和仲裁客戶軟件對硬件資源的所有訪問。
大多數(shù)指令組體系結(jié)構(gòu)(ISA)規(guī)定了把較少特許的應用程序與更富特許 的操作系統(tǒng)功能相隔離的多種特許級,例如一種原有技術(shù)的32位結(jié)構(gòu)有四種 特許級,稱為環(huán)0 環(huán)3,環(huán)0最具特許,環(huán)3最少特許。處理器在不同特許 級之間提供受控的切換法。直接明白的切換可調(diào)用專用指令,暗示的切換可提 出異?;蚬收?,或運用中斷等外部事件,例如在執(zhí)行調(diào)用(CALL)、軟件中斷 (INT)或中斷返回(IRET)等指令時,可能出現(xiàn)特許級變化。由于其它的同 步或異步事件,例如像異常、外部中斷、故障、任務切換、陷阱和其它類似事 件,也會發(fā)生特許級變化。
多處理器或多線程系統(tǒng)的操作系統(tǒng),用軟件構(gòu)成的保證相互排斥的鎖保護 可能被一個以上多線程或處理器同時訪問的數(shù)據(jù)。通常在短時間持有鎖的情況 下,可用所謂的旋轉(zhuǎn)鎖。當在一臺處理器或一線程上操作的軟件試圖獲取已被
5在另一臺處理器或一線程上操作的軟件取得的鎖時,該軟件就設法重新獲取緊 密代碼循環(huán)(tight code lo叩)的該鎖。雖在該緊密循環(huán)中運行,但軟件并不執(zhí)行 任何有用的工作,硬件處理器線程并無益處。在多線程處理器或多個處理器系 統(tǒng)上, 一個線程或處理器的運行會取走其它線程或處理器的資源,諸如耗用帶 寬、執(zhí)行單元或功率。因此,自旋周期要盡可能短。
虛擬多處理器或多線程系統(tǒng)的VMM可在獨立的VM或虛擬處理器(VP) 中執(zhí)行運行于每種客戶軟件的軟件。在非VM系統(tǒng)上,這些客戶軟件例子應在 截然不同的處理器或多線程上執(zhí)行。VP與所有客戶軟件例子都統(tǒng)稱為虛擬系 統(tǒng)。在不考慮這種客戶鎖定特性時,這種VMM會明顯劣化,因此VMM不得 搶占VP。而該VP保持鎖定,除非要為該虛擬系統(tǒng)搶占所有的VP。當用軟件 編制鎖時,因鎖定原函數(shù)不能被硬件直接檢測,可以應用直觀推斷法或間接觀 察法。
-種這樣的直觀推斷法基于公共OS特性。在OS不以特許模式操作或處 于低功率狀態(tài)時,該OS可能保持不鎖定。VMM可以利用這一認知,只搶占正 在非特許模式或處于低功率態(tài)的虛擬處理器。搶占以特許模式操作的客戶軟 件,被推遲到客戶軟件切換到非特許模式之后。
附圖簡介
圖1示出可在其上實施本發(fā)明一個實施例的處理系統(tǒng)一實施例的框圖。 圖2在流程圖中示出本發(fā)明一實施例的特許級退出控制的過程,各獨立控
制用于增減特許級。
圖3在流程圖中示出本發(fā)明一實施例的特許級退出控制過程,組合的控制
用于增減特許級。
圖4在流程圖中示出本發(fā)明一實施例檢測特許級變化的過程。
圖5在流程圖中示出本發(fā)明一實施例的異步事件處理過程。
圖6在流程圖中示出根據(jù)客戶軟件在虛擬機環(huán)境中的特許級從客戶軟件轉(zhuǎn)
至lj虛擬機監(jiān)視器的過程的 一 實施例。
圖7在流程圖中示出根據(jù)客戶軟件在虛擬機環(huán)境中的特許級從客戶軟件轉(zhuǎn)
到虛擬機監(jiān)視器過程的一實施例。
圖8在流程圖中示出在虛擬機環(huán)境中實行搶占調(diào)度過程的一實施例。詳細描述
提出一種讓虛擬機監(jiān)視器(VMM)在虛擬機(VM)上運行的客戶軟件的特
許級符合一定特許級退級判據(jù)時保證控制某系統(tǒng)的系統(tǒng)與方法。處理器檢出客
戶軟件的特許級符合該判據(jù),于是將控制轉(zhuǎn)向VMM。特許級退出判據(jù)包括特 許級增大、特許級減小、特許級任何變化、匹配預定等級的特許級、大于預定 等級的特許級、小于預定等級的特許級或特許級的特定轉(zhuǎn)換。VMM可以拒絕 承擔對某些特許級值或值變化的控制。在VM中執(zhí)行任何指令之前或之后,都 可以轉(zhuǎn)向VMM。
本發(fā)明諸實施例還涉及執(zhí)行這些操作的設備,該設備可以為所需目的而得 到,或包括由存貯在計算機里的計算機程序選擇性激活或重組的通用計算機。 這種計算機程序可以存入計算機可讀存儲媒體,諸如但不限于任一類型的盤片 (包括軟盤、光盤、CD-ROM與磁光盤)、只讀存儲器(ROM)、隨機存取存 儲器(RAM)、可擦可編程只讀存儲器(EPRPM)、電可擦可編程只讀存儲 器(EEPROM)、磁卡或光卡,或任一種適合存貯電子指令的媒體,每一種都 耦接計算機系統(tǒng)總線。指令可用一個或多個處理設備(如中央處理單元等)執(zhí) 行。在其它實施例中,本發(fā)明諸步驟可用包含可重配或硬線連接的步驟執(zhí)行邏 輯電路的專用硬件元件或者任意組合的編程計算機元件與定制硬件元件來執(zhí) 行。
另外,設計要經(jīng)歷從創(chuàng)造、模擬到制造的各個階段。代表設計的數(shù)據(jù)可以 若干方式表示該設計。首先在模擬當中,適宜用硬件描述語言或另一種功能描 述語言表示硬件。另在某些設計過程階段,可以形成帶邏輯門和/或晶體管門電 路的電路級模型。再者,在某一階段,大多數(shù)設計達到數(shù)據(jù)代表各種設備在硬 件模型中物理位置的程度。在應用常規(guī)半導體制造技術(shù)的情況下,代表硬件模 型的數(shù)據(jù)可以是規(guī)定各種特征是否存在在用來生產(chǎn)集成電路的掩模不同的掩 蔽層上。在任一設計表示法中,數(shù)據(jù)可以任一機器可讀媒體形式存儲。為發(fā)送 此類信息的調(diào)制或生成的光波或電波、存儲器或者盤片等磁或光存儲器,可以 是機器可讀媒體,這類媒體都可"攜帶"或"指示"設計成軟件信息。當發(fā)送
了指示或攜帶代碼或設計的電氣載波而對該電信號執(zhí)行復制、緩沖或再傳輸 時,新的拷貝就制成了。這樣,通信提供商或網(wǎng)絡提供商就可復制實施本發(fā)明 技術(shù)的物件(載波)。
圖1示出可在其中運用本發(fā)明的虛擬機環(huán)璋100的一實施例。圖1的VM環(huán)境和包括硬件、軟件或二者組合的處理邏輯電路,都可實現(xiàn)本發(fā)明諸不同的
實施例。本例的裸平臺硬件116包括能例如操作標準操作系統(tǒng)(OS)或VMM 112
的計算平臺。
VMM 112雖然一般以軟件構(gòu)成,但可向更高級軟件送出裸機接口。此種 更高級軟件包括標準或?qū)崟r的OS,雖然本發(fā)明在這方面不限于該范圍。另外, 例如VMM可在另一 VMM內(nèi)或頂部運行。VMM及其一般特征與功能已為本 領域技術(shù)人員熟悉,如可用軟件、固件或各種技術(shù)的組合來實現(xiàn)。
平臺硬件116可以是個人計算機(PC)、主機、手持設備、便攜計算機、 機頂盒或任一其它計算系統(tǒng)。平臺硬件116包括處理器118、存儲器120與特 許級監(jiān)視邏輯電路124。
處理器118可以是任一種能執(zhí)行軟件的處理器,諸如微處理器、數(shù)字信號 處理器、微控制器等。處理器118包括執(zhí)行本發(fā)明方法實施例的微代碼、可重 編邏輯、可編程邏輯或硬代碼邏輯。雖然圖1只示出--臺這種處理器118,但 系統(tǒng)內(nèi)可以有一臺或多臺處理器。
存儲器120可以是硬盤、軟盤、隨機存取存儲器(RAM)、只讀存儲器X ROM)、閃爍存儲器、以上器件的任意組合或者其它任一種處理器118可讀的 機器媒體。存儲器120可存貯執(zhí)行本發(fā)明諸方法實施例的指令和/或數(shù)據(jù)。
VMM112向其它軟件(如"客戶"軟件)提供一臺或多臺虛擬機(VM) 的概要,而虛擬機向各種客戶提供同樣或不同的概要。系統(tǒng)內(nèi)有一臺或多臺 VM,如圖1示出兩臺VM,即102和114。在每臺VM上運行的客戶軟件包括 諸如104或106等客戶OS和各種客戶軟件應用程序108與110。在VM 102 和114內(nèi)運行的客戶軟件希望在客戶軟件在其上正在運行的VM 102和114內(nèi) 訪問物理資源(如處理器寄存器存儲器和I/O設備),并處理各種事件,包括 系統(tǒng)設備、異常等產(chǎn)生的中斷。在虛擬機環(huán)境中,為保持VM 102和114的正 常操作和起到保護作用,VMM112應能最終控制物理資源,為此在必要時可攔 截客戶軟件對計算機物理資源的訪問。
被客戶軟件訪問的資源分為"特許"或"非特許"。對特許的資源,VMM 112可接通客戶軟件所需的功能,同時保持對這些特許資源的最終控制權(quán)。非 特許資源不必受VMM 112控制,可被客戶軟件訪問。
另外,各客戶OS 104和106都想處理各種故障事件,諸如異常(如頁面 故障、 一般保護故障、陷阱、失靈等)、中斷(如硬軟件中斷)和平臺事件(如初始化(INIT)與系統(tǒng)管理中斷(SMI)。其中有些故障事件是"特許的", 因為要保證VM102與114之間的正常操作與保護,這些事件必須由VMM112 處理。
在出現(xiàn)特許的故障事件或客戶軟件試圖訪問特許資源時,可將控制轉(zhuǎn)到 VMM112。這里把控制從客戶軟件轉(zhuǎn)到VMM112稱為VM退出。在VM退出 后接收控制之后,VMM112可作各種處理,之后再把控制還給客戶軟件。這里 把控制從VMM轉(zhuǎn)給客戶軟件稱為VM進入。
為調(diào)用特許的OS功能,應用程序使用了專用指令,諸如INT或SYENTER 調(diào)用操作前,通常把系統(tǒng)調(diào)用標識符小參數(shù)裝入處理器的寄存器。攔截系統(tǒng)調(diào) 用規(guī)定多種應用場景,例如通過跟蹤系統(tǒng)調(diào)用,侵入檢測系統(tǒng)可找出安全破壞 的原因。另一個有用場景是根據(jù)臨時的系統(tǒng)調(diào)用啟用模式檢測執(zhí)行周期,導出 預定的定期實時任務模式。
在一實施例中,處理器118按存儲在VM控制結(jié)構(gòu)(VMCS) 122里的數(shù) 據(jù)控制VM102和114的操作。在一實施例中,VMCS122被存入存儲器120。 在另一實施例中,VMCS122被存入處理器118。在有些實施例中,用多個VMCS 結(jié)構(gòu)支持多個VM。
VMCS122是一種含有客戶軟件狀態(tài),VMM112狀態(tài)、執(zhí)行控制信息和其 它信息的結(jié)構(gòu),其中執(zhí)行控制信息指示VMM112是如何希望限制或控制客戶軟 件操作的。VM中對客戶軟件的轉(zhuǎn)移與客戶軟件的操作,用一組存貯在VMCS 里的VM控制點控制。執(zhí)行控制點規(guī)定了必須按其將控制從客戶軟件轉(zhuǎn)到VMM 的情況。退出控制點控制客戶狀態(tài)的保留和VMM狀態(tài)在VM退出時的加載。 在一組VM退出信息數(shù)據(jù)段內(nèi)設置了描述最近VM退出的信息。VM退出時, 對VMCS122保留處理器狀態(tài)中被客戶軟件用過的部分,并從VMCS122加載 VMM112所要求的處理器狀態(tài)部分。進入控制點控制VMM狀態(tài)的保留,并在 VM進入時加載客戶狀態(tài)。在VM進入時,利用存貯在VMCS122里的數(shù)據(jù)恢 復客戶狀態(tài),并將控制還給客戶軟件。
在一實施例中,處理器118包括特許級監(jiān)視邏輯(PLML) 124,負責評估 客戶的當前特許級,以根據(jù)VMM112規(guī)定的特許級退出判據(jù)判斷是否產(chǎn)生VM 退出。在一實施例中,該特許級退出判據(jù)存儲在VMCS122中。下面描述所述 特許級退出判據(jù)的特定實施例。若PLML124斷定當前客戶特許級符合特許級 退出判據(jù),處理邏輯就促使VM從客戶軟件退到VMM112。在各種ISA中,對特許級可指定一數(shù)值,較高數(shù)值表明增高的特許,較低 數(shù)值表明減低的特許。在其它實施例中,較高數(shù)值可以指示減低的特許。在本 文討論中,特許級"增高"表示客戶軟件正變得更富特許,"減低"表示正變 得更少特許,與涉及的數(shù)值無關。同樣地,"小于"另一特許級的特許級是減 低了特許的特許級,與涉及的數(shù)值無關。
諸控制點被加到表示特許級退出判據(jù)的VM控制點。在一實施例中,特許 級增高退出控制若置成使能值,表示在客戶軟件操作期間增高特許級時,將產(chǎn)
生VM退出。這一控制判斷增高特許級的事件的傳送或指令執(zhí)行是否造成VM 退出。在一實施例中,在完成了使特許級變化的指令執(zhí)行之后(即撤退后), 便發(fā)生特許級增高而造成的VM退出。在一實施例中,作為VM退出信息一部 分而向VMM報告的客戶指令指針值,可以指向準備以新的特許級執(zhí)行的第一 指令。在一實施例中,不明確規(guī)定報告造成特許級變化的指令地址。
在另一實施例中,特許級減低退出控制若置成使能值,就表明在客戶軟件 操作期間減低特許級時,應產(chǎn)生VM退出。該控制判斷減低特許級的事件或指 令是否造成VM退出。在一實施例中,在造成特許級變化的指令執(zhí)行后(即撤 退后),因特許級減低而發(fā)生VM退出。作為VM退出信息一部分而報告給 VMM的客戶指令指針值,可以指向準備以新的特許級執(zhí)行的第一指令。在一 實施例中,不明確規(guī)定報告造成特許級變化的指令的地址。
圖2的流程圖示出了支持特許級增高與減低控制點的方法的一實施例。圖 2示出按客戶特許級變換對特許級增減退出控制點所作的試驗。圖2中,特許 級變化造成的VM退出比其它VM退出源更優(yōu)先,這是為了簡化圖示,但實際 上,有些VM退出源的優(yōu)先權(quán)可以更高,而有些則更低。在圖2的實施例中, 雖然示出了特許級增減兩個控制點,但在不同的實施例中,這些控制點可被獨 立支持或結(jié)合其它特許級退出控制點被支持。
圖2中,在收到來自VMM112的VM進入請求時(框210),過程即開始 (框205)。對VM進入作檢查,諸如裝載系統(tǒng)狀態(tài)等(框215)。執(zhí)行客戶指令 (框220)。若執(zhí)行指令使VM退出(框225),則VM退出使控制轉(zhuǎn)到VMM 112, 并向其報告VM退出的原因(框230),結(jié)束該過程(框235)。若在執(zhí)行指 令時不發(fā)生VM退出(框225),則撤退客戶指令(框240)。在評估了客戶 軟件的當前特許級后,若客戶軟件的特許級被判定為增高了 (框245),而且 特許級增高(PLI)控制被使能(框250),則VM退出使控制轉(zhuǎn)到VMM112,
10并向后者報告VM退出是由PLI引起的(框230)。若客戶軟件的特許級被判 定為增高了 (框245),且特許級增高(PLI)控制不被使能(框250),則處 理邏輯執(zhí)行下一客戶指令(框220)。
若客戶軟件的特許級未被定為增高(框245),則處理邏輯檢查特許級減 低(PLD)。評估了客戶軟件的當前特許級后,若客戶軟件的特許級被判定為 減低了(框245),且PLD控制被使能(框250),則VM退出使控制轉(zhuǎn)到VMM112, 并向其報告VM退出由PLD造成(框230)。若客戶軟件的特許級未被定為減 低(框255)或PLD控制不被使能(框260),就執(zhí)行下一客戶指令(框220)。
特許級退出判據(jù)可被使能與禁止,以便作選擇性退出,這尤其有利于多處 理器調(diào)用,因為通常只是偶爾要求特許級變化造成的VM退出。另外,例如 VMM可能只對從OS核心轉(zhuǎn)到VM中用戶級代碼起作用。
在另一實施例中,上述特許級增減執(zhí)行控制點提供的功能可以組合成單一 的特許級變化退出控制,規(guī)定任何特許級變化都會造成VM退出,如圖3所示。 圖3中,過程在從VMM112收到VM進入請求時(框310)開始(框305)。 作VM進入檢查,諸如裝載系統(tǒng)狀態(tài)等(框315)。執(zhí)行客戶指令(框320)。 若執(zhí)行指令使VM退出(框325),則VM退出使控制轉(zhuǎn)到VMMU2,并向其 報告VM退出的原因(框330),結(jié)束處理(框335)。若在執(zhí)行指令時不發(fā) 生VM退出(框325),則撤退客戶指令(框340)。評估了客戶軟件的當前 特許級后,若斷定客戶軟件的特許級變了 (框345),且特許級變化(PLC) 退出控制被使能(框350),則VM退出使控制轉(zhuǎn)到VMM112,并向其報告 VM退出由PLC造成(框330)。若PLC條件不被滿足(框345)或PLC退出 控制未使能(框350),則執(zhí)行下一客戶指令(框320)。
圖4在流程圖中示出本發(fā)明一實施例檢測特許級變化的一種方法。圖中, 通過將代表老特許級(OPL)的一變量置于當前特許級(CPL)而使之初始化 (框410),過程便開始(框405)。處理或執(zhí)行單一指令或某一異步事件諸 如中斷(框415)。在指令執(zhí)行或事件處理后(框415),若特許級與指令或 事件處理前不同(框420),則特許級變了,采取某一動作(框425),如圖2 和3所示。否則,執(zhí)行下一指令或過程事件(框415)。
注意,在圖2和3中,在執(zhí)行指令后但撤退指令前,作出評估,判斷是否 出現(xiàn)VM退出。實際上,這一評估作為試圖執(zhí)行指令的一部分,例如訪問一控 制寄存器(如CR0)會使VM退出有錯誤語義學。換言之,在任一結(jié)構(gòu)態(tài)被指
11令修改前都會出現(xiàn)VM退出。其它VM退出可在修改了某種結(jié)構(gòu)態(tài)之后但在撤
退指令(諸如使任務切換接著使VM退出的指令)之前發(fā)生。有些VM退出可 在撤退了指令之后發(fā)生。特許級評估可以是一種這種條件在撤退后被評估的特 許級評估。其它VM退出可因其它原因在其它情況下發(fā)生。
圖5的流程圖示出識別兩種異步事件的方法,諸如執(zhí)行特許級變化指令和 中斷在執(zhí)行客戶軟件時到來等異步事件。圖5中,過程在從VMM112收到VM 進入請求(框510)時開始(框505)。作VM進入檢查,如裝載系統(tǒng)狀態(tài)等 (框515)。若異步事件已定(框520),就執(zhí)行客戶指令(框525)。若執(zhí)行 指令(框525)使VM退出(框530),則VM退出使控制轉(zhuǎn)到VMM112,并 向其報告VM退出的原因(框535),結(jié)束處理(框540)。若執(zhí)行指令不使 VM退出(框530),則撤退客戶指令(框545)。若特許級增高(PLI)條件 被滿足(框550)且PLI控制被使能(框555),則VM退出使控制轉(zhuǎn)到VMM112, 并向其報告VM退出由PLI造成(框535)。若PLI條件未滿足(框550)或 PLI控制未被使能(框555),則處理邏輯檢查特許級減低(PLD)。若PLD 條件滿足(框560)且PLD控制被使能(框565),則VM退出使控制轉(zhuǎn)到 VMM112,并且其報告VM退出由PLD造成(框535)。若PLD條件不滿足 (框560)或PLD控制未被使能(框565),則處理邏輯檢查異步事件在該點 是否懸而未決(框520)。若異常事件懸而未決(框520)且該事件造成VM 退出(框570),則VM退出使控制轉(zhuǎn)到VMM112,并向其報告VM退出由該 事件造成(框535)。若異步事件懸而未決(框520)且未造成VM退出(框 570),則把該事件引入客戶軟件(框575),再作上述的特許級檢査。
在另一實施例中, 一執(zhí)行控制指示特許級目標值,該值在VMM控制下存 入VMCS, VMM可將該值定為任一有效特許級。在另一實施例中,該特許級 目標值有一固定值。有些實施例可提供一個以上這樣的特許級目標值,如有一 實施例有兩個不同的特許級目標值,各自固定為專用值。
在一實施例中,特許級目標值直到使能才起作用。特許級目標值控制的使 能方法是把VMCS中一匹配的特許級目標使能控制定為使能值,諸如l。該控 制表明在執(zhí)行客戶軟件時,若客戶軟件特許級與該特許級目標值匹配,就產(chǎn)生 VM退出。執(zhí)行控制可以有多個特許級目標值和多個匹配目標特許使能控制點, 各自對應于一個特許級目標值控制點。
在一實施例中,在執(zhí)行準備以匹配的特許級執(zhí)行的第一指令前,可能發(fā)生因當前特許級與特許級目標值匹配而造成VM退出。在一實施例中,可能被作
為VM退出信息一部分報告給VMM的客戶給VMM的客戶指令指針值,指向 準備以匹配特許級執(zhí)行的第一指令。在一實施例中,不明確規(guī)定報告使特許級 改為匹配值的指令的地址。
圖6是一流程實施例的流程圖,可根據(jù)虛擬機環(huán)境中客戶軟件的特許級從 客戶軟件轉(zhuǎn)到VMM。在圖示例中,根據(jù)客戶軟件的特許級和特許級目標值控 制(PLTVC)的值,發(fā)生VM退出。圖6中,在從VMM112接收VM進入請 求時(框620),過程開始(框610)。作VM進入檢査,諸如裝載系統(tǒng)狀態(tài) 等(框630)。若PLTVC不被使能(框640),就執(zhí)行客戶指令(框650)。 評估了客戶軟件的當前特許級(CPL)后,若PLTVC被使能(框640),而且 CPL等于特許級目標值(PLTV)(框660),則VM退出使控制轉(zhuǎn)到VMM112 (框670),結(jié)束處理(框680)。若CPL不等于PLTV (框660),就執(zhí)行客 戶指令(框650)。
在另 一 實施例中,特許級目標值控制用特許級頂值(ceiling value)控制擴展。 若將該控制定為使能值(如定為1),就表示在執(zhí)行客戶軟件時,若客戶軟件 的特許級大于該特許級目標值,就發(fā)生VM退出。在一實施例中,執(zhí)行控制有 多個特許級目標值和相應的特許級頂值控制點。在另一實施例中,若把特許級 目標值定為最高特許級,就不會轉(zhuǎn)到更富特許的狀態(tài),因此不用使能控制就能 有效地禁止該控制。
在又一實施例中,特許級目標執(zhí)行控制用特許級底值(floor value)控制擴 展,表明在執(zhí)行客戶軟件時,若客戶軟件的特許級小于特許級目標值,將產(chǎn)生 VM退出。在一實施例中,執(zhí)行控制有多個特許級目標值和相應的特許級底值 控制點。在另一實施例中,若把特許級目標值定為最低特許級,就不會轉(zhuǎn)到較 少特許的狀態(tài),因而不用使能控制也可有效地禁止該控制。
圖7是一過程實施例的流程圖,可根據(jù)客戶軟件在虛擬機環(huán)境中的特許級 從客戶軟件轉(zhuǎn)到VMM。在圖示例中,當當前特許級大于PLTV時,根據(jù)客戶 軟件的特許級和特許級頂值控制(PLCVC)的值發(fā)生VM退出。圖7中,當從 VMM112收到VM進入請求時(框720),過程開始(框710)。作VM進入 檢査,諸如裝載系統(tǒng)狀態(tài)等(框730)。若PLCVC不被使能(框740),就執(zhí) 行客戶指令(框750)。評估了客戶軟件的CPL后,若PLCVC被使能(框740), 而且CPL超出PLTV (框760),則VM退出使控制轉(zhuǎn)到VMM112 (框770),結(jié)束處理(框780)。若CPL不超出PLTV (框760),就執(zhí)行客戶指令(框 750)。
實際上要用一個監(jiān)視計時器,因在運行多驅(qū)動器線程的延長時段內(nèi),操作 系統(tǒng)有時保持在核心模式中。圖8是一過程實施例的流程圖,在虛擬機環(huán)境中 執(zhí)行搶先調(diào)度。圖8中,當處理邏輯判斷當前VM(CVM)是否要求搶先時(框 810),過程就開始(框805)。處理邏輯判斷CVM是否為虛擬系統(tǒng)的組成部 分(框815)。若CVM不處于特許模式(PM)(框820),則CVM被搶先(框 825),結(jié)束處理(框830)。若CVM處于PM (框820),則建立監(jiān)視設計時 器(WDT)(框835)。于是在CVM不處于特許模式時(框840),適當設 置特許級退出控制(PLEC),讓VM退出。接著,處理邏輯把控制轉(zhuǎn)到CVM
(框845) 。 VMM12在VM從CVM退出后接受控制(框850)。若VM退出 由WDT造成(框855),則CVM被搶先(框825),結(jié)束處理框(830)。 若VM退出不是WDT造成(框855),則處理VM退出(框860),處理邏輯 判斷CVM是否處于PM (框865)。若CVM不處于PM (框865),則CVM 被搶先(框825),結(jié)束處理(框830)。若CVM處于PM(框865),貝ij PLEC 置位(框840),控制轉(zhuǎn)到CVM (框845) , WDT和PLEC保持有效。
在另一實施例中,設置了控制點,在特許級之間的特定轉(zhuǎn)換時,諸如從第 一級轉(zhuǎn)到第四級和從第三級轉(zhuǎn)到第二級等,引起VM退出。例如在有4個特許 級的ISA中,可設置12個控制點讓VMM在12種可能的源與目的地特許級組 合中選擇任意一種,使VM退出。在一實施例中,設置的控制點少于特許級組 合的全叉積(full cross product)。控制點在這里稱為特許級源目的地退出控制點
(PLSDEC)。
在一實施例中,對引起特許級轉(zhuǎn)換的所有事件和指令都設置了執(zhí)行控制 點,使VMM112對所有此類特許級變化恢復控制。這一替代法要求在VMM112 中附加的支持,以判斷特定的指令執(zhí)行是否真的造成特許級變化。如在一個ISA 中,中斷返回指令(IRET)可能引起特許級變化,但并不一定這樣。若執(zhí)行IRET 指令無條件地造成VM退出而不管執(zhí)行該指令是否會改變特許級,則VMM要 模擬該指令或用另一步驟判斷是否引起特許級變化。對VMM軟件還有其它要 求,諸如模擬該IRET,判斷故障的指令是否造成期望的特許級變化。
引起特許級變化的某些操作或事件,會因其它原因而造成VM退出。這類 其它VM退出原因可能是優(yōu)先級較高,或在執(zhí)行這種指令后在評估特許級退出判據(jù)前先被評估了。此時,VMM可能判斷造成VM退出的事件或指令還將引 起特許級變化,例如虛擬結(jié)構(gòu)可讓VMM對軟件(SW)中斷指令的執(zhí)行設置造 成VM退出的執(zhí)行控制。以用戶級代碼執(zhí)行SW中斷指令,會引起特許級變化。 配置執(zhí)行控制點,以在特許級變化被置成使VM退出的同時執(zhí)行SW中斷指令 時,使VM退出。出現(xiàn)這種情況時,在執(zhí)行SW中斷指令期間首先評估SW中 斷造成的VM退出,使VM在特許級變化前退出。此時,SW中斷退出條件實 際上有問題,在完成指令執(zhí)行前被評估,而特許級變化實際上是陷阱,在完成 指令后評估。在一實施例中,多個VM退出源其實都是陷阱,多個VM退出源 都有問題。特許級退出判據(jù)的評估可以比任何或全部其它VM退出源具有更高 或更低的優(yōu)先級。
以上描述為了說明起見,提出了眾多特定的細節(jié),以便透徹理解本發(fā)明。 但本領域的技術(shù)人員將會明白,沒有這些特性的細節(jié)也可實施本發(fā)明。
權(quán)利要求
1.一種方法,包括確定初始特許級;評估在虛擬機中執(zhí)行的客戶軟件的當前特許級;以及如果當前特許級符合特許級退出判據(jù),則把控制轉(zhuǎn)到虛擬機監(jiān)視器,其中判斷當前特許級是否符合特許級退出判據(jù)包括如果啟動了特許級改變時退出的控制策略,并且當前特許級不同于初始特許級,則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
2. 如權(quán)利要求l所述的方法,還包括 在虛擬機控制結(jié)構(gòu)中存儲所述特許級退出判據(jù)。
3. 如權(quán)利要求l所述的方法,還包括 確定初始特許級;以及如果啟動了特許級增高時退出的控制策略,并且當前特許級高于初始特許級, 則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
4. 如權(quán)利要求l所述的方法,還包括 確定初始特許級;以及如果啟動了特許級減低時退出的控制策略,并且當前特許級低于初始特許級, 則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
5. 如權(quán)利要求l所述的方法,還包括 確定初始特許級;以及如果啟動了與所述初始特許級到所述當前特許級的轉(zhuǎn)換相關聯(lián)的特許級源目 的退出控制策略,則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
6. 如權(quán)利要求l所述的方法,還包括存儲目標特許級。
7. 如權(quán)利要求6所述的方法,還包括如果啟動了特許級匹配時退出的控制策略,且當前特許級與目標特許級相 同,則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
8. 如權(quán)利要求6所述的方法,還包括如果啟動了特許級達上限時退出的控制策略,且當前特許級比目標特許級 高,則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
9. 如權(quán)利要求6所述的方法,還包括如果啟動了特許級達下限時退出的控制策略,且當前特許級比目標特許級 低,則把控制轉(zhuǎn)到虛擬機監(jiān)視器。
10. 如權(quán)利要求6所述的方法,其特征在于,所述目標特許級可變。
11. 如權(quán)利要求6所述的方法,其特征在于,所述目標特許級固定。
12. 如權(quán)利要求l所述的方法,還包括在執(zhí)行客戶軟件中的指令之前將控制轉(zhuǎn)到虛擬機監(jiān)視器。
13. 如權(quán)利要求l所述的方法,還包括 在執(zhí)行客戶軟件中的指令之后將控制轉(zhuǎn)到虛擬機監(jiān)視器。
14. 一種處理器,其特征在于包括第一邏輯組件,用于評估在虛擬機中執(zhí)行的客戶軟件的當前特許級,并且 若當前特許級符合特許級退出判據(jù),則把控制轉(zhuǎn)到虛擬機監(jiān)視器,其中如果啟 動了特許級改變時退出的控制策略,并且當前特許級不同于初始特許級,則所述 第 一 邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
15. 如權(quán)利要求14所述的處理器,其中所述第一邏輯組件確定初始特許級, 并且如果啟動了特許級增高時退出的控制策略,并且當前特許級高于初始特許級, 則所述第一邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
16. 如權(quán)利要求14所述的處理器,其中所述第一邏輯組件確定初始特許級, 并且如果啟動了特許級減低時退出的控制策略,并且當前特許級低于初始特許級, 則所述第一邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
17. 如權(quán)利要求14所述的處理器,其中所述第一邏輯組件確定初始特許級,并且如果啟動了與所述初始特許級到所述當前特許級的轉(zhuǎn)換相關聯(lián)的特許級源目 的退出控制策略,則所述第一邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
18. 如權(quán)利要求14所述的處理器,其中所述第一邏輯組件存儲目標特許級, 并且如果啟動了特許級匹配時退出的控制策略,且當前特許級與目標特許級相 同,則所述第一邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
19. 如權(quán)利要求14所述的處理器,其中所述第一邏輯組件存儲目標特許級, 并且如果啟動了特許級達上限時退出的控制策略,且當前特許級比目標特許級 高,則所述第一邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
20. 如權(quán)利要求14所述的處理器,其中所述第一邏輯組件存儲目標特許級, 并且如果啟動了特許級達下限時退出的控制策略,且當前特許級比目標特許級 低,則所述第一邏輯組件把控制轉(zhuǎn)到虛擬機監(jiān)視器。
全文摘要
一種在客戶軟件當前特許級符合特許級退出判據(jù)時讓虛擬機監(jiān)視器承擔系統(tǒng)控制的系統(tǒng)與方法。處理器檢測當前特許級符合該判據(jù)。然后把控制從客戶軟件轉(zhuǎn)到虛擬機監(jiān)視器,而后者可對某些特許級變化或值拒絕承擔控制。
文檔編號G06F9/455GK101493785SQ20091012814
公開日2009年7月29日 申請日期2005年6月28日 優(yōu)先權(quán)日2004年6月28日
發(fā)明者A·安德森, E·科塔-羅布爾斯, G·奈格, R·烏利希, S·舍恩貝格, S·貝內(nèi)特, V·烏利希 申請人:英特爾公司