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

虛擬化虛擬機系統(tǒng)中的物理存儲器的制作方法

文檔序號:6577879閱讀:238來源:國知局

專利名稱::虛擬化虛擬機系統(tǒng)中的物理存儲器的制作方法虛擬化虛擬機系統(tǒng)中的物理夯賭器本申請是分案申請,其母案申請的申請?zhí)枮?00610004027.3,申請日為2006年l月13日,發(fā)明名稱為"虛擬化虛擬機系統(tǒng)中的物理存儲器"。
背景技術(shù)
:抽象(absttaction),從而使主機的底層硬件似乎是一個或多個獨立運行的虛擬機。因此每個虛擬機可起到獨立完備的平臺的作用。經(jīng)常地,使用虛擬化枝術(shù)來使多客戶#^乍系*脈/或其它客戶軟件(guestsoftware)并存并且顯然同時脅顯然獨立地在多個虛擬機上執(zhí)行,而實際上是在相同硬件平臺上物理地執(zhí)行。虛擬機可模仿主機的硬件或交替地呈現(xiàn)完全不同的硬件抽象。虛擬化系統(tǒng)可包括控制主機的虛擬機監(jiān)控器(VMM)。VMM向在虛擬機上運行的客戶軟件提供一組資源(例如,處理器、存儲器、IO設(shè)備)。VMM可將物理主機的一些或所有部件映射到虛擬機,并且可創(chuàng)建全部的虛擬部件,虛擬部件在VMM中用軟件模擬,包含在虛擬機中(例如,虛擬IO設(shè)備)。因此可以iJ(AVMM向客戶軟件提供了"虛擬^f幾"接口oVMM使用硬件虛擬化體系結(jié)構(gòu)中的設(shè)備向虛擬機提供服務(wù)并且在主機上執(zhí)行的多個虛擬機之間提供保護。當(dāng)客戶軟件在虛擬機上^(亍時,如絲戶軟件直接在硬件平臺上執(zhí)行,那么由客戶軟件執(zhí)行的某些指令(例如,訪問外圍設(shè)備的指令)通常會直接訪問硬件。在VMM支持的虛擬化系統(tǒng)中,這些指*導(dǎo)致到VMM的轉(zhuǎn)換,在這里稱作虛擬機退出。VMM用適合主扭J更件和主機外圍設(shè)備的方式來處理軟件中的這些指令,和執(zhí)行客戶軟件的虛擬機一致。對以地,在主機中產(chǎn)生的某些中斷和例外需由VMM來中斷和管理或在傳遞給客戶軟件提供服務(wù)之前通過VMM來適應(yīng)客戶軟件。然后,VMM將控制轉(zhuǎn)換到客戶軟件并且虛擬機重新開始運行。從VMM到客戶軟件的轉(zhuǎn)換在&E稱作虛擬機登錄(virtualmachineEntry)。公知地,在大多數(shù)衞乍系統(tǒng)上,在機器上執(zhí)行的程序可使用虛擬地址空間,虛擬地址空間M層物理^^者器系統(tǒng)的抽象。本領(lǐng)域^^地,當(dāng)術(shù)語虛擬用在存儲器管理的上下文中例如"虛擬地址"、"虛擬地址空間"、"虛擬夯睹器地址"或"虛擬存儲器空間"時,指的是基于處理器的系統(tǒng)的公知技術(shù),通常和#^卡系統(tǒng)結(jié)合,將底層物理存儲器的抽象呈現(xiàn)給在基于處理器的系統(tǒng)上執(zhí)行的過程(process)。例如,過程可訪問虛擬的、連續(xù)的和線性的地址空間抽象,由M操作系統(tǒng)將地址空間抽象9fe時到非線性的和非連續(xù)的物理存儲器。虛擬的這種使用區(qū)別于同樣的術(shù)語在虛擬化的上下文中的使用,在后者情況下虛擬通常指的是模擬物理機器的抽象,例如"虛擬機"、"虛擬棵機"、"虛擬石更件"、"虛擬處理器"或"虛擬網(wǎng)絡(luò)接口"?;谶@里使用術(shù)語的上下文,該術(shù)語的預(yù)期含義對4^頁域技術(shù)人員是明確的。圖1顯示在基于處理器的系統(tǒng)上執(zhí)行的過程,該系統(tǒng)包括處理器和通過總線通信耦合到處理器的務(wù)賭器。參照圖l,當(dāng)過程105在它的虛擬地址空間115中引用(reference)絲單元IIO(過程虛擬^H者空間)時,通過絲器管理130產(chǎn)生機器125的物理務(wù)賭器145(機器物理存儲器)中的實際地址140,可在硬件(有時合并進入處理器120)和軟件(通常在機器的4剁乍系統(tǒng)中)中實現(xiàn)^#器管理。除了其它功能,存儲器管理130還將虛擬地址空間中的位置映射到機器的物理存儲器中的位置。如圖1所示,過程可具有和在物理機器中實際可用的存儲器不同的4^器視圖。在圖1描述的例子中,該過禾l在從O到1MB的虛擬地址空間中運行,該地址空間實際上是通過務(wù)賭器管理硬件和軟件映射到物理存儲器中的一部分,其本身具有從10到11MB的地址空間;從過程空間地址計算物理地址,可將^立移135加到過程虛擬地址。從過程虛擬存儲器空間到物理存儲器的更復(fù)雜的映射是可能的,例如,可將相應(yīng)于過程虛擬務(wù)賭器的物理存儲器劃分成諸如頁面的部分并且將其和來自物理務(wù)賭器中的其它過程的頁面相交織。通??蓪⒋鎯ζ鲃澐殖身撁?,每個頁面包舍已知數(shù)量的數(shù)據(jù),隨實施方案而變化,例如一個頁面可包含4096字節(jié)的存儲器。當(dāng)由執(zhí)行過程引用存儲單元時,將它們轉(zhuǎn)換成頁面引用。在通常的機器中,存儲器管理將對過程虛擬存儲器中的頁面的引用映射到機器物理務(wù)賭器中的頁面。一般地,務(wù)賭器管理可使用頁面表來指定相應(yīng)于過程空間頁面位置的物理頁面〗立置。在虛擬機環(huán)境中管理客戶軟件的一個方面是存儲器管理。由在虛擬機中執(zhí)行的客戶軟件來處理存儲器管理對于控制諸如虛擬機監(jiān)控器的系統(tǒng)產(chǎn)生了復(fù)雜性??紤]例如在32位IA—32英特爾⑧體系結(jié)構(gòu)平臺(IA-32)上實現(xiàn)在主機上經(jīng)由虛擬化執(zhí)行兩個虛擬機的系統(tǒng)。在IA—32IntelArchitectureSoftwaieDeveloper'sManual(英特爾⑧軟件開發(fā)者手冊)(IA-32文檔)中描述了該平臺。1A-32平臺可包含實現(xiàn)為lA-32處理器的部分的IA-32頁面表。進一步,假設(shè)每個虛擬機本身將IA-32機器的抽象呈^在其上執(zhí)行的客戶軟件。在每個虛擬機上沐f亍的客戶軟件可引用客戶過程虛擬務(wù)賭器地址,該地址又可以由客戶機的存儲器管理系統(tǒng)轉(zhuǎn)M^戶-物理存儲器(guest-physicalmemory)地址。然而,可由在主-物理夯賭器(host-physicalmemoty)中的進一步的映射通過VMM和主機處理器上的硬件中的虛擬化子系統(tǒng)來實現(xiàn)客戶-物理存儲器本身。因此,由客戶過程或客戶剩乍系鄉(xiāng)A^客戶^器的引用,包括例如對客戶IA-32頁面;^控制寄存器的引用,必須由VMM來截取因為它們不能直接傳遞到主機的IA-32頁面表而不進行進一步的再處理,由于客戶-物理存儲器實際上不直接對應(yīng)于主-物理存儲器而Aii—步通過主機的虛擬化系統(tǒng)重新映射。圖l描述了過程和物理存儲器(現(xiàn)有技術(shù))之間的關(guān)系。圖2抽象的描述了在一實施例中虛擬機和主機之間的關(guān)系。圖3描述了在一實施例中虛擬機環(huán)境的高層結(jié)構(gòu)。圖4a和4b說明了虛擬機環(huán)境中一實施例中的處理。圖5描述了在一實施例中使用擴展分頁表進4亍地址計算。圖6描述了在一實施例中使用分級擴展分頁表進行地址計算。圖7描it在一實施例中的擴展分頁^S^址指針。圖8描述了在一實施例中的擴展分頁表條目。JH^實施方式圖2:圖2描述了在一實施例中,特別關(guān)于客戶a器映射的在主機上執(zhí)行的一個或多個虛擬機之間的關(guān)系。圖2說明客戶-物理存儲器是如何通過主機的虛擬化系統(tǒng)重新映射的。例如虛擬機A,242和虛擬機B,257的每個虛擬機分別向在虛擬機上運行的客戶軟件呈現(xiàn)虛擬處理器245和255。每個機器向客戶操怍系統(tǒng)或其它客戶軟件提供物理存儲器的抽象,分別為客戶-物理存儲器240和250。當(dāng)客戶壽欠件在虛擬機242和257上才丸行時,實際上是由主機267在主機處理器265上利用主-物理存儲器260來執(zhí)行的。如圖2所示,在該實施例中,4^始于地址0在虛擬機A,242中呈現(xiàn)為物理務(wù)賭器空間的客戶-物理務(wù)賭器240B^t到主-物理務(wù)睹器260中的一些連續(xù)的區(qū)域270。類似地,將虛擬機B,257中的客戶-物理存儲器250映射到主-物理存儲器260的不同部分275。如圖2所示,主機可具有1024MB的主-物理存儲器。如果^I:個虛擬機242和2547都分配256MB的存儲器,一個可能的映射可能是^^虛擬機A,242分配128—384MB的范圍和給虛擬機B,257分配512—768MB的范圍。虛擬機242和257都引用0—256MB的客戶-物理地址空間。只有VMM知道每個虛擬機地址空間都映射到主-物理地址空間的不同部分。在圖2中所示的虛擬機和存儲器feSt僅是一實施例的一個代表,在其它實施例中,在主機上執(zhí)行的虛擬機的實際數(shù)量可從一個變化到多個;主機和虛擬機的實際存儲器大小可變并且從虛擬機到虛擬機是可變的。該例子描述了給虛擬機的簡單、連續(xù)的務(wù)賭器分配。在更一般的情形下,分配給虛擬機的物理存儲器頁面可以是不連續(xù)的并且可分布在主-物理務(wù)賭器中,J^日交織并JL^屬于VMM和其它主過程的頁面交織。例如圖2所描述的,在系統(tǒng)中呈現(xiàn)為虛擬機的基于處理器的系統(tǒng)可盡其復(fù)雜地實JM擬機。因此例如,虛擬機可將客戶-物理,器的全視圖呈現(xiàn)給客戶os,并且使用由客戶os和虛擬處理器或虛擬機的其他虛扣:u更件提供的a器管理,對在虛擬機上執(zhí)行的客戶軟件進行存儲器管理。在一示例性實施例中,虛擬機可將包括IA-32硬件支持(例如用于存儲器管理的頁面表)的IA-32平臺呈現(xiàn)給客戶OS,并且依次在主機平臺上實際地IW亍,該平臺也是包括用于^fr者器管理的IA-32硬件的IA-32平臺。沒有額外的機制,在該實施例中的虛擬化系統(tǒng)必須使用(作為一可能的解決方案)IA-32頁面表遮蔽(shadowing)來重新映射、劃分和保護物理存儲器,從而在VMM中實現(xiàn)物理^ft器虛擬化算法。因此,例如,當(dāng)客戶軟件試圖訪問虛擬機的IA-32頁面表時,VMM必須將虛擬化所需的功能(例如,重新映射物理地址)覆蓋到客戶OS所需的功能上。為此,VMM必須通過客戶軟件來捕獲圍繞分頁機制的使用的各種事件。如IA-32文檔中所述,這包括寫入諸如IA-32務(wù)賭器管理系統(tǒng)的控制寄存器(例如,CR0、CR3和C4)的控制寄存器、訪問與分頁和存儲器訪問(例如,存儲器類型范圍寄存器(MTRR))相聯(lián)系的特定模型寄存器(MSR)、處理某些例外(例如,頁面出錯)。這種使用IA-32頁面表來虛擬化物理M器^1雜的并且需要巨大的性能開銷。圖3:圖3說明虛擬機環(huán)境300的一實施例。在該實施例中,基于處理器的平臺316可旨VMM312。該VMM,雖然一_軟件中實現(xiàn),可向更髙層的軟件模擬和輸出虛擬^bu接口。這種更高層的軟件可包括標(biāo)準(zhǔn)OS、實時OS或者可以是M有限搡怍系統(tǒng)功能的拆卸(strippeckiown)環(huán)境,并且可以不包括在一些實施例中的標(biāo)準(zhǔn)OS中典型可用的OS工具??商鎿Q地,例如,可在另一VMM中或使用另一VMM的服務(wù)^J^行VMM312。例如,可在硬件、軟件、固件或一些實施例中的44中技術(shù)的組合來實現(xiàn)VMM。平臺硬件可以是個人計算機(PC)、大型機、1^^個人數(shù)字助理(PDA)或"智能"移動電話的手持設(shè)備、便攜式計算機、機頂盒或其他基于處理器的系統(tǒng)。平臺硬件316包括至少一個處理器318和務(wù)賭器320。處理器318可以是能執(zhí)^f呈序的^f可類型的處理器,例如孩i處理器、數(shù)字信號處理器、微控制器等。在實施例中,處理器可包括孩t代碼、可編程遝輯或用于執(zhí)行的硬編碼邏輯。雖然圖3僅顯示了一個這才羊的處理器318,但在實施例的系統(tǒng)中可有一個或多個處理器。另外,處理器318可包括多個內(nèi)核、支持多線程等等。^器320可包括硬盤、軟盤、隨才;L^:^儲器(RAM)、只讀存儲器(ROM)、閃存、上述設(shè)備的任意組合或各種實施例中處理器318能讀取的任意其他類型的機器介質(zhì)。存儲器320可存儲指令和/或lt據(jù)用于進行禾1^批阡和其他方法實施例oVMM312將一個或多個虛擬機抽象呈現(xiàn)給客戶軟件,可向各種客戶提供相同或不同的抽象。圖3顯示兩個虛擬機,302和314。諸如在M虛擬機上運行的客戶軟件303和313的客戶軟件可包^^者如客戶OS304或306的客戶OS和各種客戶軟件應(yīng)用308和310。客戶軟件303和313可訪問其Jii^行客戶軟件303和313并扭/f亍其他功能的虛擬機內(nèi)的物理資源(例如,處理器寄存器、務(wù)賭器和I/0設(shè)備)。例如,依據(jù)在虛擬機302和3M中呈現(xiàn)的處理器的體系結(jié)構(gòu)和平臺,客戶軟件303和313預(yù)期訪問所有的寄存器、高速緩存、結(jié)構(gòu)、1/0設(shè)備、#器等等。在一實施例中,依照虛擬機控制結(jié)構(gòu)(VMCS)324中務(wù)賭的數(shù)據(jù),處理器318控制虛擬機302和314的^^f乍。VMCS324是可包含客戶軟件303和313的狀態(tài)、VMM312狀態(tài)、指示VMM312希望如何控制客戶軟件303和313梯作的執(zhí)行控制信息、控制在VMM312和虛擬機之間轉(zhuǎn)換的信息等的結(jié)構(gòu)。處理器318從VMCS324讀取信息來決定虛擬機的執(zhí)行環(huán)境并且限制它的行為。在一實施例中,在存儲器320中員VMCS324。在一些實施例中,使用多個VMCS結(jié)構(gòu)來支持多個虛擬機。VMM312可能需要管理由在虛擬機302和314中運行的客戶軟件可訪問的物理員器。在一實施例中,為了支持物理存儲器管理,處理器318提供了擴展頁面表(EPT)機制。在該實施例中,VMM3!2可包括物理存儲器管理模塊擬4M日聯(lián)系的域提供值。這些域全^f^^爾作EPT控制。EPT控制可包括例如,指定是否應(yīng)該啟動EPT機制的EPT啟動指示器和一個或多個指示物理^^器虛擬化機制的形式和語義的EPT表配置控制。這些將在下面詳細(xì)討論。另夕卜,在一實施例中,EPT表328指示物理地址轉(zhuǎn)換和保護語義,VMM312可將它們放在客戶軟件303和313上。在一實施例中,在VMCS324中^f^EPT控制??商鎿Q地,EPT控制可存在于處理器318、存儲器320和處理器318的組合或其^/^f可存儲單元中。在一實施例中,為每個虛擬機302和314維持單獨的EPT控制??商鎿Q地,為兩個虛擬機維樹目同的EPT控制并且在每個虛擬機登錄之前由VMM312更新。在一實施例中,在存儲器320中存儲EPT表328??商鎿Q地,EPT表328可存在于處理器318、存儲器320和處理器318的組合或其他4^f可的存儲單元中。為每個虛擬機302和314維持羊獨的EPT表328??商鎿Q地,為兩個虛擬機302在一實施例中,處理器318包括EPT訪問邏輯322,該訪問邏輯負(fù)責(zé)依據(jù)EPT啟動指示器決定是否啟動EPT機制。如^動EPT機制,則處理器將客戶-物理地址轉(zhuǎn)M基于EPT控制器和EPT表328的主-物理地址。在一實施例中,其中系統(tǒng)300包括多個處理器或多個線程處理器,每個邏輯處理器都與單獨的EPT訪問邏輯322相聯(lián)系,并且VMM312為每個邏輯處理器配置EPT表328和EPT控制??蓪⑼╥t^戶軟件(例如,303,包括客戶OS304和應(yīng)用308)訪問的資源分成"優(yōu)先的(privileged)"或"非優(yōu)先的(non-privileg^d)"。對于優(yōu)先的資源,VMM312促進客戶軟件所需的功能而保留對這些優(yōu)先資源的最終控制。進一步,每個客戶軟件303和313預(yù)期處理各種平臺事件例如例外(例如,頁面出錯、一般保護出錯等等),中斷(例如,硬件中斷、軟件中斷)和平臺事件(例如,初始化(INIT)和系統(tǒng)管理中斷(SMI))。這些平臺事件中的一些是"優(yōu)先的",軟件中提供保護??蛻舨兮粝到y(tǒng)和客戶應(yīng)用都試圖訪問優(yōu)先資源并且都可以31起或經(jīng)歷優(yōu)先事件。優(yōu)先平臺事件和對優(yōu)先資源的訪問嘗這在i^全M稱作"優(yōu)先事件"或"虛擬化事件"。圖4a和4b:在一實施例中,例如先前所述和在圖3中描寫的虛擬機環(huán)境的運行由圖4a和4b中所示的處理來描述。圖4a描述了在一實施例中處理發(fā)^t客戶軟件中的優(yōu)先事件的VM環(huán)境的運行;和通it^戶軟件處理非優(yōu)先事件的實施例的運行。圖4b描述了與擴展分頁表特別相關(guān)的實施例中的VM環(huán)境的運硬件中的EPT機制相關(guān)。圖4a和4b并未描述可能出現(xiàn)在例如圖3所描述的環(huán)境中的所有部件或所有操怍。這只是為了清楚表達。雖然在圖4a和4b中表示一小組部件和一些M的運行,但實施例中的VM環(huán)境可包括許多其他部件,并且許多其他#1乍會在這樣的實施例中發(fā)生。首先考慮圖4a。圖4a描述了在虛擬機抽象302上執(zhí)行的客戶軟件303的一組示例性的操作,和先前在圖3中描述的平臺石更件316。在指示它們在系統(tǒng)中發(fā)生的位置的塊內(nèi)描述搡作(例如,在VMM312中、在客戶軟件303中等等)。除了先前描述的VM環(huán)境的其他部件,VM抽象302可為客戶軟件303在412存儲虛擬機狀態(tài)和其他狀態(tài)信息,并且也可4是供諸如虛擬網(wǎng)絡(luò)連接或通用寄存器組的其他資源,為客戶命名許多示例中的兩個。當(dāng)然,由其上才;WtVM的平臺石更件316來實際才是供實現(xiàn)VM狀態(tài)、客戶狀態(tài)的物理資源和其他VM資源。平臺硬件包括存儲器320、VMCS324和處理器318。在楊,客戶軟件303訪問非優(yōu)先資源442。非優(yōu)先資源無需由VMM312控制并且可由客戶軟件直接地訪問,客戶軟件繼續(xù)而不需調(diào)用VMM312,在訪問非優(yōu)先資源422后允許客戶繼續(xù)在445的運行。非優(yōu)先平臺亊件同樣無需VMM312(并未在圖4a中顯示)的介入來處理。在405,客戶軟件303試圖訪問優(yōu)先資源,和/或經(jīng)歷優(yōu)先平臺事件。當(dāng)這種優(yōu)先事件發(fā)^405時,控制可以轉(zhuǎn)移407到VMM312。^戶軟件到VMM312的控制轉(zhuǎn)移407在這里稱作虛擬機退出。在促進資源訪問或另外適當(dāng)處理優(yōu)先事件之后,VMM312可在432將控制返還給客戶軟件,然后客戶壽欠件重新開始運行,435。從VMM312到客戶軟件的控制轉(zhuǎn)移432稱作虛擬機登錄。在一實施例中,VMM312通過執(zhí)行特別設(shè)計用于觸發(fā)轉(zhuǎn)換的指令(it^稱作虛擬機登剝旨令)^動虛擬機登錄,430。在一實施例中,當(dāng)虛擬機退出發(fā)生時,^^客戶軟件使用的處理器狀態(tài)部件,410,加載VMM312所需的處理器狀態(tài)部件,并JL^420在VMM312中重新開始執(zhí)行。在一實施例中,客戶軟件使用的處理器狀態(tài)部件a在VMCS324的客戶-狀態(tài)區(qū)域中,并且VMM312所需的處理器狀態(tài)部件a在VMCS324的監(jiān)控恭狀態(tài)區(qū)域。在一實施例中,當(dāng)從VMM312到客戶軟件的轉(zhuǎn)移發(fā)生時,在虛擬機退出(并且當(dāng)處理虛擬機退出時可能已由VMM312修改)保存的處理器狀態(tài)部件在425恢復(fù)并且在430將控制返回給虛擬機302或314。接著,考慮圖4b。如前面所提到的,圖4b描述了上述的和圖4中描述的VM環(huán)境的那些運行,特別地關(guān)于擴展分頁表、客戶程序訪問客戶-物理存儲器、和在一實施例中通過VMM^5更件中對EPT機制的管理。如前所述,為了清楚表達,圖4b并未描述實施例中在VM環(huán)境中可能出現(xiàn)的所有部件或所有操作。雖然在圖4a和4b中表示一小組部件和一些特定樹乍,但實施例中的VM環(huán)境可包括許多其他部件,并且許多其他"^乍會在該實施例中發(fā)生。在圖4b中描述的實施例中的VM環(huán)境的部件是客戶軟件303、VM302、具有物理存儲器管理模塊326的VMM312和平臺硬件或物理機316。平臺石更件進一步包括夯賭器320和具有EPT訪問邏輯322的處理器318,該存儲器320在該實施例中包括一組EPT表328和VMCS324。一般地,如圖4所示在450,當(dāng)例如由客戶軟件303訪問客戶-物理存儲器時,可由客戶軟件來啟動平臺硬件中的EPT設(shè)備的使用。將客戶-物理^H若器訪問稱作由VM302提供的頻器的VM抽象451,該抽象又指的是物理機316。如果啟動EPT機制,平臺硬件316可使用EPT訪問邏輯322和EPT表328,處理對客戶-物理存儲器的引用以將對客戶-物理務(wù)賭器的訪問轉(zhuǎn)M對主-物理務(wù)賭器320的訪問。EPT運行的細(xì)節(jié)將參考下面的圖5和6進^亍討論??捎蒝MM312來配置EPT機制自身,VMM312配置EPT表328和可儲存于VMCS324中的EPT控制。在該實施例中,可由VMM312進行EPT機制的配置作為在VMM312中優(yōu)先事件405的處理^"和在VM登錄430之前的物理^fi者器管理模塊326運行的一部分。在配置EPT機制中,為了啟動、使其失效或另外控制EPT機制,460,VMM312可更新EPT表328和EPT控制。當(dāng)然,為使用和VM環(huán)境結(jié)合的擴展分頁表,許多其他形式的處理也是可能的,例如,對于參照圖3先前討論的EPT控制和EPT表328的不同位置,多個VM、多個處理器、多個線程、多個客戶和這些變化的組合,等等。圖5:圖5顯示了使用上面介紹的擴展頁面表來處理的一個示例,當(dāng)在虛擬機中的客戶軟件引用客戶虛擬地址時最終計算主-物理地址。描述的例子顯示4^域技術(shù)人員可容易地擴展該例子,以理解例如,其他分頁模式(例如,在客戶軟件中的64位尋址)、其#4旨令集體系結(jié)構(gòu)(例如,InterItanium⑧體系結(jié)構(gòu),的)或其他配置。在圖5中,由在虛擬機中執(zhí)行的客戶軟件來^f亍對客戶虛擬地址510的引用。使用在客戶中激活的存儲器管理機制(即,由客戶操作系統(tǒng)來配置)來將虛擬地址轉(zhuǎn)換成客戶-物理地址。通過EPT在訪問主-物理地址之前,將在轉(zhuǎn)換中使用的每個客戶-物理地址和最終產(chǎn)生的客戶-物理地址轉(zhuǎn)換成主-物理地址。在下面的討論中詳細(xì)說明該過程。在該例子中,CR3寄存器520中的合適位502指向在客戶-物理務(wù)賭器中的客戶頁面目錄表560的基址。將該值502和來自客戶虛擬地址510的高位(upperbit)相結(jié)合(依據(jù)IA-32的語義通過乘以4來適當(dāng)?shù)卣{(diào)整,因為在該例中,表中的每*目是4字節(jié))以形成客戶的PD表560中的頁面目錄項(PDE)的客戶-物理地址512。通過EPT表555轉(zhuǎn)換該值512以形成頁面目錄項的主-物理地址504。處理器使用該主-物理地址504來訪問頁面目錄項。來自PDE的信息包括客戶頁面表570的基地址522。將該客戶-物理地址522和客戶虛擬地址510的位21:12相結(jié)合,適當(dāng)?shù)卣{(diào)整以形成客戶頁面表570中頁面表條目的客戶-物理地址532。通過EPT表565轉(zhuǎn)換該客戶-物理地址532以形成客戶的頁面表條目(PTE)的主-物理地址514。處理器使用該主-物理地址514來訪問PTEo來自PTE的信息包括被訪問的客戶-物理務(wù)賭器中的頁面的M址542。將該值和客戶虛擬地址510的低數(shù)位(loworderbit)(11:0)相結(jié)合以形成被訪問的^f^器的客戶-物理地址552。通過EPT表575轉(zhuǎn)換該值552以形成iE^皮訪問的^H者器的主-物理地址524。每次使用EPT表將客戶-物理^3止轉(zhuǎn)M主-物理地址,處理器也依據(jù)EPT表中的控制來確認(rèn)該訪問是被允許的,其將在下面描述。另外,必須理解的是雖然在圖5中標(biāo)記為不同的,但EPT表555、565和575在一實施例中,可以是相同組的EPT表(即,EPT表的單一組被用于所有M戶-物理到主-物理的地址轉(zhuǎn)換)。圖6:圖6描述了使用前面介紹的擴展頁面表來進行處理的另一例子,使用多級EPT表來最終將客戶-物理地址轉(zhuǎn)M主-物理地址。在圖6所示的示例性實施例中,EPT勤旨針(EPTP)620中的合適位602指出第一級EPT表650的基址的主-物理地址,在該實施例中該地址^#在主-物理務(wù)賭器中。下面將根據(jù)圖7詳細(xì)地討論EPTP。在該例子中,EPT表中的條目每個為8字節(jié)。通過乘以8(例如,通過^i亥值左移3位)來適當(dāng)?shù)卣{(diào)整來自客戶-物理地址610(601)的位38:30,從而獲得調(diào)整的髙位客戶-物理地址603。將EPT^S^址值602結(jié)合(添加)調(diào)整的高位客戶-物理地址位603,從而形成第一級EPT表650中的EPT表條目651的主-物理;4i止604。#^圖8下面將討論在第一級EPT表650中的例如651的條目和其他EPT表660和670中的條目的示例性格式。EPT表條目651的部分是下一級EPT表660的基地址612。從客戶-物理地址610的位29:21(611)形成第二調(diào)整的地址部分613。將該調(diào)整的值613結(jié)合(加上)基也址612以形成下一級EPT表660中的EPT表條目661的主-物理地址614。處理器使用該主-物理地址614來訪問EPT表條目661。來自EPT表條目661的信息包括最后的EPT表670的基地址622。將該基地址622和經(jīng)過適當(dāng)調(diào)整后的客戶虛擬地址610的調(diào)整的位20:12(623)相結(jié)合,以形成最后的EPT表670中EPT表條目671的地址624。處理器使用該主-物理地址624來訪問EPT表條目0來自EPT表條目671的信息包括主-物理夯賭器690中被訪問的頁面的M址632。將該頁面地址值690和客戶物理地址610的低數(shù)位(11:0)相結(jié)合以形^Jt訪問的務(wù)賭器的最后的主-物理^也址634。在圖6所示的示例性實施例中,EPT表是分級的。在形式上它們對以常規(guī)的多級頁面表。而且,在該示例中,在每個EPT表中的每個EPT表條目是8字節(jié)大小,雖然在其他實施例中該大小可能不同,但本領(lǐng)域技術(shù)人員將會理解改變訪問表的機制。在該示例中,每個EPT表的大小為4KB。在其他實施例中,可使用不同的表大小;而且,象圖6中所描述的分級中的所有表無需是相同大小。大小的這種改變可能影響^戶-物理地址到索引下一級EPT表所用的位數(shù)。對于本領(lǐng)城技術(shù)人員來說明顯的是,許多其他的EPT表配置都是可能的。該圖中描述的分級配置顯示了三個分級級別,其中兩個EPT表650和660分別用作對更低級EPT表660和670的索引。在其他實施例中,在這種分g中可能有更少,例如兩級,或更多,例如四級或更多的^U"—般地,分級的級別數(shù)量可至少部分依賴于客戶-物理地址的位數(shù)、每個表的大小和在每個表條目中的字節(jié)數(shù)量中的一個或多個而變化。在圖6示例中的客戶-物理地址是32位大小。在其他實施例中,客戶-物理地址可以是不同大小的;大小的這種變化會需要EPT表的分級數(shù)量的變化,這是為了進行轉(zhuǎn)換所需的。例如,如^戶-物理地址是48位,就需要4級EPT表來進行轉(zhuǎn)換(假設(shè)在每級4KB的EPT表和在每個EPT表中8字節(jié)的EPT表條目)。在圖6所示的實施例中,EPT控制包括單個域、EPT指針(EPTP)。該域包含第一級EPT表的基地址。在該示例中,每個EPT是4KB的大小。圖7:如圖7中所描述的典型實施例中所示,EPTJ^址指針(EPTP)包括用來形成諸如在上面圖6中所述的第一級EPT表的基址的基地址(在主-物理存儲器中)的位。在圖7所描述的例子中,位59:12形成基地址。假設(shè)位11:0和63:60為0。當(dāng)然,各種位域的寬度可在其他實施例中變化,例如基地址域*賴于特別體系結(jié)構(gòu)或?qū)嵤┓桨钢械牡刂肺粩?shù)而變化。在EPTP寄存器中的剩余4站其他實施例中可用于其他目的。在一實施例中,僅通過虛擬機登錄或虛擬機退出可訪問EPTP寄存器。在該實施例中,在虛擬機登錄時從VMCS中的EPTP域裝載處理器中的EPTP寄存器,當(dāng)客戶軟件運行時激活EPT機制。如上所示,可由在VMCS內(nèi)或其他地方的其他控制位來控制該激活(以a載EPTP域)。圖8:該圖描述了EPT表中的條目的格式的示例性實施例。在該示例中,EPT表中的每個條目是8字節(jié)大小。在一實施例中,每個EPT表是4KB大小,這意味著每個EPT表頁面有512個EPT表條目。如圖8中的例子所示,每個EPT表條目包含存儲器中的下一級EPT表或頁面的基主-物理地址(ADDR)和許可以及其他配置信息。如前所述,在其他實施例中各種位域的寬度可改變,例如ADDR的寬度可依賴于特定體系結(jié)構(gòu)或?qū)嵤┓桨钢械牡刂肺粩?shù)而變化。圖8僅描述了2個許可位(permissionbit),當(dāng)前(Present)和可寫(Writable)。在其他實施例中,可在每個EPT表條目中可以給出其他的許可和配置信息。例如,在一實施例中,許可位指示是否可以扭行夯賭器的頁面(即,是否可以取頁面的內(nèi)容并且由處理器解譯成指令)。EPT表可以是各種不同的格式。例如,可以如圖6所示實現(xiàn)為簡單的分級表??商鎿Q地,它們可以是單級頁面表(其中第一級EPT表的大小指示了客戶-物理地址空間的最大尺寸。)可替換地,它們可以是某種形式的哈希表。對于本領(lǐng)域枝術(shù)人員顯而易見的是,在其他實施例中無數(shù)可能的配置都是可能的。EPTM主-物理^器中可支持一個或多個頁面大小。在一實施例中,在每個EPT表中的每個條目都包括一個超級頁面位,該超級頁面位指示EPT表的移動(walk)應(yīng)該停在那一點和使用EPT表條目中的地址信息和客戶-物理地址中的剩余位形成主-物理務(wù)賭器地址。在圖6所示的例子中,例如,如^LEPT表660中設(shè)置超級頁面位,那么在主-物理夯賭器中最后產(chǎn)生的頁面有2MB的大小并且通過結(jié)合客戶-物理地址610的位20:0和來自EPT表660的地址位形成最后的主-物理地址。在一些實施例中,可由虛擬機登錄來啟動擴展分頁表和EPTi^止轉(zhuǎn)換機制并由虛擬機退出取消使其失效。因此,作為結(jié)果,EPT機制可能不能為客戶軟件或VMM軟件所用以管理其自己的地址轉(zhuǎn)換。而且,在這些實施刺中,EPT機制可不同于并獨立于客戶或主機l欠件可用的其他常規(guī)存儲器頁面管理機制,例如在IA-32實施例中的IA-32分頁表,雖然EPT運行可利用常規(guī)頁面管理機制的特性。因此,與使用主機的虛擬化和EPT機制的客戶軟件的抽行相對,EPT主機Jii^行的其他頁面轉(zhuǎn)換工具。在一實施例中,EPT機制可利用和該實施例的常規(guī)頁面管理機制使用的相同格式的表,該^M于于客戶和VMM軟件是可用的。然而,控制EPT機制的表可能仍區(qū)別于那些控制從客戶-虛擬地址到客戶-物理地址轉(zhuǎn)換的表和不同于那些控制主-虛擬地址到主-物理地址轉(zhuǎn)換的表。統(tǒng)中的物理務(wù)賭器虛擬化的支持,但可使用軟件的方法實現(xiàn)其他實施例。提供一些實施例作為軟件程序產(chǎn)品或可包括其上已存有指令的機器或機器可讀介質(zhì)的軟件,在由機器訪問該指令時^f亍該實施例的過程。在其他實施例中,可由部件來的任意組合來執(zhí)行過程。在先前的描述中,為了解釋,闡明了許多特定細(xì)節(jié)以便提供對所述實施例的完整理解,然而,本領(lǐng)域技術(shù)人員將意識到可以實施許多其他實施例而不需要這些M的細(xì)節(jié)。才^在基于處理器的系統(tǒng)內(nèi)數(shù)據(jù)位上的運算的算法和符號表示給出上面詳細(xì)描述的一些部分。這些算法描述和表示^^領(lǐng)域才支術(shù)人員,們工作的內(nèi)容最有效地傳給本領(lǐng)域的其他技術(shù)人員所使用的手段。該運算是需要對物理量進行物理搡怍的那些運算。這些物理量可采用電的、磁的、光的或其他能被存儲、傳輸、組合、比較和其他^^乍的其他物理信號。因為通常用法的原因,將這些信號稱作位、值、元素、符號、字符、項、數(shù)量等時常地被證明是方便的。然而,應(yīng)當(dāng)記住所有這些和對以的術(shù)語是和適當(dāng)?shù)奈锢砹肯嗦?lián)系的并且僅是應(yīng)用于這些量的簡便標(biāo)記。除非特別聲明否則為了描述清楚,例如"扭軒"、"處理"、"計算"、"推算"或"決定"等的術(shù)語指的是基于處理器的系統(tǒng)或類似的電子計算設(shè)備的操怍和處理,在基于處理器的系統(tǒng)的存儲器內(nèi)操怍并將表示為物理量的數(shù)據(jù)轉(zhuǎn)a對以表示的其他數(shù)據(jù)或其他信息存儲、傳輸或顯示設(shè)備的數(shù)據(jù)。在該實施例的描述中,會麥考相應(yīng)附圖。在附圖中,貫穿幾個#見圖,用相同的數(shù)字描述本質(zhì)上對以的部件??墒褂闷渌麑嵤├⑶铱勺鹘Y(jié)構(gòu)的、邏輯的和電的改變。而且,應(yīng)當(dāng)理解各種實施例,雖然不同,但不必要是相互排斥的。例如,在一實施例中描述的特定特性、結(jié)構(gòu)或特征也可包舍在其他實施例之內(nèi)。進一步,在處理器中實現(xiàn)的實施例的設(shè)計可經(jīng)過各種階段,從創(chuàng)建到模擬到制作。表示設(shè)計的數(shù)據(jù)可表示許多方法中的設(shè)計。第一,因為在模擬中有用,可使用硬件描迷語言或其他功能描述語言a示硬件。另外,可在設(shè)計工藝的一些階段制造具有邏輯和/或晶體管門的電路級模型。而且,在一些階段,大多數(shù)設(shè)計達到數(shù)據(jù)表示石更件模型中各種設(shè)備的物理放置的水平。在使用常規(guī)半#制造技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是詳細(xì)說明用于制造集成電路的掩模的不同掩模層上的各種特r生的存在與否的數(shù)據(jù)。在設(shè)計的^^可表示中,可以在任何形式的機器可讀介質(zhì)中#^數(shù)據(jù)。調(diào)制或產(chǎn)生用于傳輸這種信息的光或電波,存儲器或例如盤的磁或光的,器可以是機器可讀^h質(zhì)。4W可這些介質(zhì)可"攜帶"或"指示"設(shè)計或軟件信息。當(dāng)傳輸指示或攜帶代碼或設(shè)計的電載波到進行電信號的復(fù)制、緩沖或重傳的程度時,制作了新的拷貝。因此,通信提供者或網(wǎng)絡(luò)提供者可制造構(gòu)成或表示實施例的物品的拷貝(載波)。作為程序產(chǎn)品提供的實施例可包括具有存儲其上的數(shù)據(jù)的機器可讀介質(zhì),介質(zhì)包括但不限于,軟盤、光盤、DVD-ROM盤、DVD-RAM盤、DVD-RW盤、DVD+RW盤、CD-R盤、CD-RW盤、CD-ROM盤和磁一光盤、ROM、RAM、EPROM、EEPROM、磁或光卡、閃存或適合存儲電子指令的其他類介質(zhì)/機器可讀<^質(zhì)。而且,實施例也可作為程序產(chǎn)品下載,其中通過在栽波中嵌入數(shù)據(jù)信號或經(jīng)由通信鏈接(例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)的其他傳#<^質(zhì)的方法,可從遠(yuǎn)端數(shù)據(jù)源傳送程序到所需的設(shè)備。以最基本的方式描述了許多方法,但可從^j可方法中添加或刪除步驟并且可從任意的描述數(shù)據(jù)中添加或刪除信息而不背離要求保護的主題內(nèi)容的基本范圍。許多進一步的修改和調(diào)整對于本領(lǐng)域技術(shù)人員是顯而易見的。提供特殊的實施例不是為了限制要求保護的主題內(nèi)容而是為了對它進行說明。要求保護的的。權(quán)利要求1.一種用于執(zhí)行主機上的主機軟件的處理器,所述主機軟件用于控制在虛擬機上執(zhí)行的客戶軟件的操作,所述處理器包括第一控制寄存器,用于存儲指向第一多個頁面表的第一指針以用于將第一地址轉(zhuǎn)換到第二地址,第一地址在客戶的線性虛擬地址空間中,第二地址在虛擬機的物理地址空間中;和第二控制寄存器,用于存儲指向第二多個頁面表的第二指針以用于將第二地址轉(zhuǎn)換到第三地址,第三地址在主機的物理地址空間中。2.如權(quán)利要求l所述的處理器,其中主機軟件是虛擬機監(jiān)控器。3.如權(quán)利要求l所述的處理器,其中主機軟件將根據(jù)在虛擬機控制結(jié)構(gòu)中所存儲的數(shù)據(jù)來控制客戶軟件的操作。4.如權(quán)利要求3所述的處理器,包括邏輯,所述邏輯用于根據(jù)在虛擬機控制結(jié)構(gòu)中所存儲的指示器來確定處理器是否將使用所述第二多個頁面表來把第二地址轉(zhuǎn)換到第三地址。5.如權(quán)利要求3所述的處理器,其中第二控制寄存器被從虛擬機控制結(jié)構(gòu)裝載第二指針。6.如權(quán)利要求l所述的處理器,其中第三地址是能被處理器訪問的存儲器中的頁面的基地址。7.如權(quán)利要求6所述的處理器,其中第二多個頁面表包括許可信息。8.如權(quán)利要求7所述的處理器,其中許可信息指示頁面是否是當(dāng)前的。9.如權(quán)利要求7所迷的處理器,其中許可信息指示頁面是否是可寫的。10.如權(quán)利要求7所述的處理器,其中許可信息指示頁面是否是可執(zhí)行的。11.一種用于執(zhí)行主機上的主機軟件的方法,所述主機軟件用于控制在虛擬機上執(zhí)行的客戶軟件的操作,所述方法包括在虛擬機上執(zhí)行客戶軟件期間,使用處理器中的第一控制寄存器所指向的第一多個頁面表來將第一地址轉(zhuǎn)換到第二地址,第一地址在客戶軟件的線性虛擬地址空間中,第二地址在虛擬機的物理地址空間中;和在虛擬機上執(zhí)行客戶軟件期間,使用處理器中的第二控制寄存器所指向的第二多個頁面表來將第二地址轉(zhuǎn)換到第三地址,第三地址在主機的物理地址空間中。12.如權(quán)利要求ii所述的方法,其中主機軟件是虛擬機監(jiān)控器。13.如權(quán)利要求ii所述的方法,其中主機軟件將根據(jù)在虛擬機控制結(jié)構(gòu)中所存儲的數(shù)據(jù)來控制客戶軟件的操作。14.如權(quán)利要求13所述的方法,還包括結(jié)合處理器執(zhí)行指令以用于將處理器的控制從主機軟件轉(zhuǎn)移到客戶軟件而從虛擬機控制結(jié)構(gòu)加載第二控制寄存器。15.如權(quán)利要求ll所述的方法,還包括走查所述第二多個頁面表以將第二地址轉(zhuǎn)換到第三地址。16.如權(quán)利要求ll所述的方法,其中第三地址是能被處理器訪問的存儲器中的頁面的基地址,并且還包括響應(yīng)于頁面出錯而將處理器的控制從客戶軟件轉(zhuǎn)移到主機軟件。17.—種用于執(zhí)行主機上的主機軟件的系統(tǒng),所述主機軟件用于控制在虛擬機上執(zhí)行的客戶軟件的操作,所述系統(tǒng)包括存儲器;和處理器,包括第一控制寄存器,用于存儲指向存儲器中的第一多個頁面表的第一指針以用于將第一地址轉(zhuǎn)換到第二地址,第一地址在客戶軟件的線性虛擬地址空間中,第二地址在虛擬機的物理地址空間中;和第二控制寄存器,用于存儲指向存儲器中的第二多個頁面表的第二指針以用于將第二地址轉(zhuǎn)換到第三地址,第三地址在主機的物理地址空間中。18.如權(quán)利要求n所述的系統(tǒng),其中主機軟件將根據(jù)在存儲器中的虛擬機控制結(jié)構(gòu)中所存儲的數(shù)據(jù)來控制客戶軟件的操作。19.如權(quán)利要求18所述的系統(tǒng),其中將利用第二指針從虛擬機控制結(jié)構(gòu)加載第二控制寄存器。20.如權(quán)利要求17所述的系統(tǒng),其中第三地址是存儲器中的頁面的基地址。全文摘要本發(fā)明涉及虛擬化虛擬機系統(tǒng)中的物理存儲器,公開了一種處理器,包括具有存儲器虛擬化支持系統(tǒng)的虛擬化系統(tǒng),將由虛擬機上可執(zhí)行的客戶軟件對客戶-物理存儲器的引用映射到對主機的主-物理存儲器的引用,該客戶軟件在主機上也是可執(zhí)行的。文檔編號G06F12/10GK101533358SQ20091013546公開日2009年9月16日申請日期2006年1月13日優(yōu)先權(quán)日2005年1月14日發(fā)明者A·安德森,D·羅杰斯,G·奈格爾,L·史密斯三世,R·烏利格,R·桑卡蘭,S·本尼特申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南木林县| 巴彦淖尔市| 通榆县| 施甸县| 鹤壁市| 祁东县| 分宜县| 巴塘县| 那坡县| 即墨市| 方山县| 静乐县| 和龙市| 环江| 泾源县| 法库县| 陕西省| 格尔木市| 翁源县| 淮南市| 陆河县| 临夏市| 内丘县| 涟水县| 秦安县| 海林市| 奉贤区| 团风县| 临武县| 巴东县| 嘉义县| 丰都县| 封开县| 杂多县| 通许县| 榕江县| 黑龙江省| 凌源市| 昌平区| 澄城县| 竹溪县|