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