两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的制作方法

文檔序號:6602023閱讀:177來源:國知局
專利名稱:在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的制作方法
技術(shù)領(lǐng)域
本公開涉及信息處理的領(lǐng)域,更具體而言,涉及虛擬機(jī)環(huán)境中存儲器管理的領(lǐng)域。
背景技術(shù)
通常,在信息處理系統(tǒng)中虛擬化的概念允許一個或多個操作系統(tǒng)(每個稱為一個 “OS”)的多個實例運行在單個信息處理系統(tǒng)上,即使每個OS被設(shè)計成具有對整個系統(tǒng)及其 資源的完整的、直接的控制。虛擬化通常通過使用軟件(如,虛擬機(jī)監(jiān)視器,或稱“VMM”)向 每個OS提供具有虛擬資源的“虛擬機(jī)”(“VM”)來實現(xiàn),所述虛擬機(jī)包括一個或多個虛擬 處理器,所述OS可以對虛擬機(jī)進(jìn)行完整且直接的控制,而所述VMM維護(hù)用于實現(xiàn)虛擬化策 略的系統(tǒng)環(huán)境,所述虛擬化策略例如在m “虛擬化環(huán)境”)之間共享和/或分配物理資源。 運行在VM上的每個OS和任何其它軟件被稱為“客戶機(jī)(guest)”或“客戶機(jī)軟件(guest software) ”,而“主機(jī)(host) ”或“主機(jī)軟件”是諸如VMM之類的運行在所述虛擬化環(huán)境之 外并且可以了解或者不了解所述虛擬化環(huán)境的軟件。信息處理系統(tǒng)中的物理處理器例如可以通過支持指令進(jìn)入虛擬化環(huán)境以在VM中 的虛擬處理器(即,在VMM施加的限制之下的物理處理器)上運行客戶機(jī),來支持虛擬化。 在虛擬化環(huán)境中,可能會“攔截”到某些諸如外部中斷或者訪問特權(quán)寄存器或資源的嘗試之 類的事件、操作和情況,即,使所述處理器退出虛擬化環(huán)境,從而VMM可以操作以例如實現(xiàn) 虛擬化策略。物理處理器還可以支持其它的用于維護(hù)虛擬化環(huán)境的指令,并且可以包括指 示或控制物理處理器的虛擬化能力的存儲器或寄存器位。支持虛擬化環(huán)境的物理處理器可以包括用于將虛擬存儲器地址翻譯為物理存儲 器地址的存儲器管理單元。VMM可能需要保持對存儲器管理單元的最終控制以使一個客戶 機(jī)的存儲器空間不受另一客戶機(jī)的存儲器空間影響。因此,現(xiàn)有的在客戶機(jī)之間共享信息 的方法包括將每個客戶機(jī)的存儲器空間的部分添加到VMM的存儲器空間上從而VMM能夠從 一個客戶機(jī)的存儲器空間復(fù)制信息到另一個客戶機(jī)的存儲器空間,使得每次客戶機(jī)嘗試復(fù) 制信息到另一客戶機(jī)時,執(zhí)行對處理器的控制從所述客戶機(jī)到所述VMM的轉(zhuǎn)移,以及控制 從所述VMM回到所述客戶機(jī)的又一轉(zhuǎn)移。通常,控制從客戶機(jī)到VMM的每個這樣的轉(zhuǎn)移包 括保存客戶機(jī)狀態(tài)和裝載主機(jī)狀態(tài),而控制從VMM到客戶機(jī)的每個這樣的轉(zhuǎn)移包括保存主 機(jī)狀態(tài)和裝載客戶機(jī)狀態(tài)。


本發(fā)明示例性地而非限制于附圖進(jìn)行說明。圖1舉例說明了在虛擬化體系結(jié)構(gòu)中的本發(fā)明的一個實施例。圖2舉例說明了用于在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的方法的本發(fā)明的一個實施例。
具體實施例方式下面描述了用于在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的裝置、方法和系統(tǒng)的實 施例。在該描述中,為了提供對本發(fā)明的更徹底的了解,闡述了諸如組件和系統(tǒng)配置的許多 具體細(xì)節(jié)。然而本領(lǐng)域技術(shù)人員應(yīng)該了解,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實現(xiàn)。 此外,一些公知的結(jié)構(gòu)、電路等沒有詳細(xì)示出,以免不必要地模糊本發(fā)明。虛擬機(jī)環(huán)境的性能可以通過減少控制在客戶機(jī)和主機(jī)之間轉(zhuǎn)移的次數(shù)來提高。本 發(fā)明的實施例可以用于減少從一個客戶機(jī)復(fù)制信息到另一客戶機(jī)所必需的轉(zhuǎn)移的次數(shù)。從 而可以改進(jìn)虛擬機(jī)環(huán)境的性能,在所述虛擬機(jī)環(huán)境中每次客戶機(jī)嘗試復(fù)制信息到另一客 戶 機(jī)時,執(zhí)行對處理器的控制從所述客戶機(jī)到所述VMM的轉(zhuǎn)移,以及控制從所述VMM回到所述 客戶機(jī)的又一轉(zhuǎn)移??梢酝ㄟ^不要求修改VMM的存儲器管理數(shù)據(jù)結(jié)構(gòu)以包括客戶機(jī)存儲器 的共享部分來進(jìn)一步提高性能。圖1舉例說明了虛擬化體系結(jié)構(gòu)100中的本發(fā)明的一個實施例。盡管圖1顯示了 實現(xiàn)在虛擬化體系結(jié)構(gòu)中的本發(fā)明,但是本發(fā)明也可實現(xiàn)在其它的體系結(jié)構(gòu)、系統(tǒng)、平臺或 環(huán)境中。例如,本發(fā)明的一個實施例可以支持在微內(nèi)核或分解的操作系統(tǒng)環(huán)境中的應(yīng)用程 序之間共享信息。在圖1中,裸平臺硬件110可以是能夠運行任意OS或VMM軟件的任意數(shù)據(jù)處理裝 置。例如,裸平臺硬件可以是個人計算機(jī)、大型計算機(jī)、便攜計算機(jī)、手持設(shè)備、機(jī)頂盒、服務(wù) 器或任意其它的計算系統(tǒng)的硬件。裸平臺硬件110包括處理器120和存儲器130。處理器120可以是任意類型的處理器,包括通用微處理器、或數(shù)字信號處理器 或微控制器,所述通用微處理器例如Intel. 公司的Intel Pentium, 處理器系列、 Itanium 處理器系列或其它處理器系列、或者另一公司的另一處理器。盡管圖1僅顯示了 一個這樣的處理器120,但是裸平臺硬件110可以包括任意數(shù)目的處理器,所述處理器包括 任意數(shù)目的多核處理器和任意數(shù)目的多線程處理器,每個所述多核處理器具有任意數(shù)目的 執(zhí)行核,每個所述多線程處理器具有任意數(shù)目的線程。存儲器130可以是靜態(tài)或動態(tài)隨機(jī)存取存儲器、基于半導(dǎo)體的只讀或閃速存儲 器、磁或光盤存儲器、可由處理器120讀取的任意其它類型的介質(zhì)、或這些介質(zhì)的任意組 合。處理器120和存儲器130可以根據(jù)任一已知的方法例如通過一個或多個總線、點對點 或其它有線或無線連接直接或間接地相互連接或通信。裸平臺硬件110還可以包括任意數(shù) 目的附加設(shè)備或連接。除了裸平臺硬件100以外,圖1舉例說明了 VMM 140、VM 150和160、客戶機(jī)操作 系統(tǒng)152和162以及客戶機(jī)應(yīng)用程序154、155、164和165。VMM 140可以是安裝在裸平臺硬件110上或可由裸平臺硬件110訪問的任意軟件、 固件或硬件主機(jī),以提供VM(即,裸平臺硬件110的抽象)給客戶機(jī)、或者另外創(chuàng)建VM、管理 VM以及實現(xiàn)虛擬化策略。在其它的實施例中,主機(jī)可以是任意VMM、管理程序、OS或能夠控 制裸平臺硬件110的其它軟件、固件或硬件??蛻魴C(jī)可以是任意OS、包括VMM 140的另一實 例的任意VMM、任意管理程序或任意應(yīng)用程序或其它軟件。每個客戶機(jī)希望根據(jù)在VM中提供的處理器和平臺的體系結(jié)構(gòu)來訪問諸如裸平臺硬件110的處理器和平臺寄存器、存儲器以及輸入/輸出設(shè)備之類的物理資源。圖1顯示 了兩個VM,150和160,分別具有在VM 150上安裝的客戶機(jī)OS 152和客戶機(jī)應(yīng)用程序154 和155以及在VM 160上安裝的客戶機(jī)OS 162和客戶機(jī)應(yīng)用程序164和165。盡管圖1僅 顯示了兩個VM以及每個VM的兩個應(yīng)用程序,但在本發(fā)明的范圍內(nèi)可以創(chuàng)建任意數(shù)目的VM, 并且在每個VM上可以運行任意數(shù)目的應(yīng)用程序。能夠被一個客戶機(jī)訪問的資源可以被分類為“特權(quán)”或“非特權(quán)”資源。對于特權(quán) 資源,VMM 140促進(jìn)了客戶機(jī)所想要的功能同時保持對資源的最終控制。非特權(quán)資源不需 要由VMM 140進(jìn)行控制并且可以由客戶機(jī)直接訪問。此外,每個客戶機(jī)OS希望處理各種事件,例如異常(如,頁面故障和一般的保護(hù)故 障)、中斷(如,硬件中斷和軟件中斷)以及平臺事件(如,初始化和系統(tǒng)管理中斷)。這些 異常、中斷和平臺事件在此集中地且個別地被稱為“虛擬化事件”。這些虛擬化事件的一部 分被稱為“特權(quán)事件”,因為它們必須由VMM 140進(jìn)行處理以確保VM 150和160的正確操 作、保護(hù)VMM 140不受客戶機(jī)影響以及保護(hù)客戶機(jī)彼此不受影響。在任意給定時刻,處理器120可能正在執(zhí)行來自VMM 140或任意客戶機(jī)的指令,這 樣VMM 140或所述客戶機(jī)可在處理器120上運行或在處理器120的控制下運行。當(dāng)特權(quán)事 件發(fā)生或客戶機(jī)嘗試訪問特權(quán)資源時,控制可以從所述客戶機(jī)轉(zhuǎn)移到VMM 140。控制從客戶 機(jī)到VMM 140的轉(zhuǎn)移在此被稱為“VM退出”。在適當(dāng)?shù)靥幚砹怂鍪录虼俪蓪λ鲑Y源 的訪問之后,VMM 140可以將控制返回給客戶機(jī)。控制從VMM 140到客戶機(jī)的轉(zhuǎn)移在此被 稱為“VM進(jìn)入”。處理器120包括支持虛擬化的虛擬機(jī)控制邏輯170,虛擬機(jī)控制邏輯170包括對處 理器120的控制在主機(jī)(例如VMM 140)和客戶機(jī)(例如客戶機(jī)操作系統(tǒng)152和162以及 客戶機(jī)應(yīng)用程序154、155、164和165)之間的轉(zhuǎn)移。虛擬機(jī)控制邏輯170可以是處理器120 內(nèi)的微代碼、可編程邏輯、硬編碼的邏輯或任意其它形式的控制邏輯。在其它實施例中,虛 擬機(jī)控制邏輯170可以在處理器中或在可由諸如存儲器130的處理器訪問的組件或可讀取 的介質(zhì)中以諸如處理器抽象層的硬件、軟件或固件的任意形式來實現(xiàn)。虛擬機(jī)控制邏輯170包括VM進(jìn)入邏輯171和VM退出邏輯172,VM進(jìn)入邏輯171 用于將對處理器120的控制從主機(jī)轉(zhuǎn)移到客戶機(jī)(即,VM進(jìn)入),VM退出邏輯172用于將 對處理器120的控制從客戶機(jī)轉(zhuǎn)移到主機(jī)(S卩,VM退出)。在一些實施例中,控制也可以從 客戶機(jī)轉(zhuǎn)移到客戶機(jī)或從主機(jī)轉(zhuǎn)移到主機(jī)。例如,在一個支持分層虛擬化的實施例中,運行 在處理器120的VM上的軟件可以同時是客戶機(jī)和主機(jī)(例如,運行在VM上的VMM對于控 制該VM的VMM來說是客戶機(jī),而對于運行在其所控制的VM上的客戶機(jī)來說是主機(jī))。處理器120還包括執(zhí)行單元180和存儲器管理單元(“MMU” ) 190,執(zhí)行單元180 用于執(zhí)行如下所述的由主機(jī)或客戶機(jī)發(fā)出的指令,MMU 190用于管理處理器120的虛擬和 物理存儲器空間。MMU 190支持使用虛擬存儲器來向軟件(包括運行在VM中的客戶機(jī)軟件 以及運行在VM外的主機(jī)軟件)提供用于存儲和訪問代碼和數(shù)據(jù)的地址空間,所述地址空間 大于系統(tǒng)中的物理存儲器(例如存儲器130)的地址空間。處理器120的虛擬存儲器空間 可以僅由運行在所述處理器上的軟件可訪問的地址比特的數(shù)目進(jìn)行限制,而處理器120的 物理存儲器空間則進(jìn)一步由存儲器130的大小限制。MMU 190支持存儲器管理模式(在該 實施例中為頁面調(diào)度),用于根據(jù)需要將執(zhí)行軟件的代碼和數(shù)據(jù)交換進(jìn)出存儲器130。作為該模式的一部分,軟件可以利用被處理器翻譯為第二地址的虛擬地址來訪問所述處理器的 虛擬存儲器空間,所述處理器可以使用所述第二地址訪問所述處理器的物理存儲器空間。因此,MMU 190包括翻譯邏輯191、頁面基址寄存器192和翻譯后援緩沖器 (“TLB”)193。翻譯邏輯191根據(jù)諸如頁面調(diào)度的任意已知的存儲器管理技術(shù)來執(zhí)行地址 翻譯,例如將虛擬地址翻譯為物理地址。如在此使用的,術(shù)語“虛擬地址”包括被認(rèn)為是邏 輯或線性地址的任意地址。為了執(zhí)行這些地址翻譯,翻譯邏輯191參考存儲在處理器120、 存儲器130、圖1中未示出的裸平臺硬件110中的任意其它存儲單元、和/或這些組件和存 儲單元的任意組合中的一個或多個數(shù)據(jù)結(jié)構(gòu)。所述數(shù)據(jù)結(jié)構(gòu)可以包括根據(jù)Pentium. 處理 器系列的體系結(jié)構(gòu)的頁面目錄和頁面表,如根據(jù)本發(fā)明的實施例所修改的,和/或存儲在 諸如TLB 193的TLB中的表。頁面基址寄存器192可以是用于存儲指針的任意寄存器或其它存儲單元,所述指 針指向由翻譯邏輯191使用的數(shù)據(jù)結(jié)構(gòu)。在一個實施例中,頁面基址寄存器192可以是被 稱為PML4基址寄存器的CR3寄存器的一部分,所述PML4基址寄存器用于根 據(jù)Pentium : 處理器系列的體系結(jié)構(gòu)來存儲頁面映射級別4基地址。在一個實施例中,翻譯邏輯191接收由處理器120執(zhí)行的指令所提供的線性地址。 翻譯邏輯191使用所述線性地址的部分作為指向分層表(包括頁面表)的索引以執(zhí)行頁面 移動(page walk)。所述頁面表包含多個項(entries),每個項包括用于存儲器130中的頁 面的基地址的字段,例如根據(jù)Pentium. 處理器系列的擴(kuò)展存儲器64技術(shù)的頁面表項的比 特39 12。任意頁面大小(如,4千字節(jié))可在本發(fā)明的范圍內(nèi)使用。因此,程序訪問存 儲器130所使用的線性地址可以被翻譯為處理器120訪問存儲器130所使用的物理地址。所述線性地址和對應(yīng)的物理地址可以存儲在TLB 193中,從而可以在TLB 193中 找到用于以后使用相同的線性地址的訪問的適當(dāng)?shù)奈锢淼刂罚恍枰硪豁撁嬉苿?。?適當(dāng)?shù)臅r候,TLB 193的內(nèi)容可以被清洗,例如在通常由操作系統(tǒng)執(zhí)行的軟件上下文切換 時。在虛擬機(jī)環(huán)境中,為了保護(hù)一個客戶機(jī)的存儲器空間不被另一客戶機(jī)影響,VMM 140可能需要具有對MMU 190的資源的最終控制。因此,在一個實施例中,虛擬機(jī)控制邏輯 170可以包括如下邏輯,如果客戶機(jī)發(fā)出意圖改變頁面基址寄存器192或TLB 193的內(nèi)容、 或者另外修改MMU 190的操作的指令時,所述邏輯引起VM退出。為了與虛擬機(jī)環(huán)境一起正 確操作裸平臺硬件110,所述VMM可以因此維護(hù)具有多組頁面或其它數(shù)據(jù)結(jié)構(gòu)(如,每個VM 一組)的MMU 190,在所述虛擬機(jī)環(huán)境中每個虛擬機(jī)看起來向OS提供對其存儲器管理資源 的完整的控制。在另一實施例中,MMU 190可以包括支持虛擬化的硬件。例如,翻譯邏輯191可被 配置為使用如上所述的由頁面基址寄存器192的內(nèi)容所指示的數(shù)據(jù)結(jié)構(gòu),來將線性地址翻 譯為物理地址。如果該翻譯被執(zhí)行用于客戶機(jī),則所述線性地址被稱為客戶機(jī)線性地址,而 所產(chǎn)生的物理地址被稱為客戶機(jī)物理地址,并且執(zhí)行第二翻譯,以利用由第二指針?biāo)甘?的第二數(shù)據(jù)結(jié)構(gòu)將客戶機(jī)物理地址翻譯為主機(jī)物理地址。在該實施例中,頁面基址寄存器 192和第一翻譯數(shù)據(jù)結(jié)構(gòu)可以由運行在虛擬機(jī)上的OS來維護(hù),而第二指針和第二翻譯數(shù)據(jù) 結(jié)構(gòu)由VMM來維護(hù)。第二翻譯可由VM進(jìn)入來啟用并由VM退出來禁用。在該實施例中,回到執(zhí)行單元180,執(zhí)行單元180被配置為執(zhí)行可由主機(jī)或客戶機(jī)發(fā)出的指令。這些指令包括向客戶機(jī)分配一部分TLB 193(和/或處理器120或裸平臺硬 件110中的另一結(jié)構(gòu),例如存儲器130)以用于與其它客戶機(jī)共享信息的指令(“分配”指 令)、注冊一部分客戶機(jī)存儲器以用于與其它客戶機(jī)共享信息的指令(“注冊”指令)以及用 于客戶機(jī)復(fù)制信息給另一客戶機(jī)或從另一客戶機(jī)復(fù)制信息而不會引發(fā)VM退出的指令(“復(fù) 制”指令)。所述分配指令可以具有與其相關(guān)的請求者標(biāo)識符(ID)和存儲器大小作為操作 數(shù)、參數(shù),或根據(jù)任意其它的明確的或隱含的方法。所述請求者ID可以是虛擬機(jī)環(huán)境中的 虛擬機(jī)或分解的OS環(huán)境中的應(yīng)用程序所唯一的值。所述請求者ID標(biāo)識用來使其存儲器空 間的一部分可共享的VM或應(yīng)用程序,而所述存儲器大小指示所述可共享的存儲器空間的 大小,例如頁面的數(shù)目。所述分配指令可以僅由對MMU 190具有最終控制的實體來發(fā)出,所述實體在該實 施例中是VMM 140。例如,如果所述分配指令由具有不足夠特權(quán)的客戶機(jī)應(yīng)用程序發(fā)出,則 其可被忽略,或者如果其由相信具有足夠特權(quán)的客戶機(jī)OS發(fā)出,則可引發(fā)VM退出。VMM140 發(fā)出分配指令可以響應(yīng)于通過程序調(diào)用或其它消息傳送協(xié)議的客戶機(jī)請求,以使其存儲器 空間的一部分可共享。在該實施例中,執(zhí)行單元180通過使項存儲單元或TLB 193中的存儲單元分配給請求信息共享的VM來執(zhí)行分配指令。在其它實施例中,單獨的、專用的TLB或處理器120 或裸平臺硬件110中的任意其它存儲單元或數(shù)據(jù)結(jié)構(gòu)(如,存儲器130)可被用于代替TLB 193。為了支持信息共享,TLB 193可以包括共享標(biāo)記存儲單元194,所述共享標(biāo)記存儲 單元194提供與每個TLB項或任意多組TLB項相關(guān)的共享標(biāo)記。因此,分配指令的執(zhí)行可 包括將與被分配的TLB項存儲單元相關(guān)的共享標(biāo)記或多個標(biāo)記設(shè)置為所述請求者ID的值。 被標(biāo)記用于共享的TLB項在軟件上下文切換時不被清除。分配指令的執(zhí)行還可使與所述被分配的TLB項存儲單元相關(guān)的安全密鑰在程序 調(diào)用返回或其它的消息傳送協(xié)議中被傳輸給請求者。被分配的TLB項存儲單元可以通過程 序調(diào)用、其它的消息傳送協(xié)議或任意其它方法來釋放。所述注冊指令可具有與其相關(guān)的所有權(quán)信息和訪問信息作為操作數(shù)、參數(shù),或根 據(jù)任意其它的明確的或隱含的方法。所述所有權(quán)信息可以包括請求者ID的形式或任意其 它形式的注冊實體的身份,以及以要被共享的頁面的虛擬地址的形式或任意其它形式的要 共享的存儲器空間的身份。所述訪問信息可以包括以類似于請求者ID的ID值的形式或任 意其它形式的可與其共享所述存儲器空間的一個或多個實體的身份,以及諸如讀權(quán)限和/ 或?qū)憴?quán)限的任意想要的訪問權(quán)限。所述注冊指令也可以將由對應(yīng)的分配指令所返回的安全 密鑰與其相關(guān)。在該實施例中,注冊指令的執(zhí)行可以包括驗證已經(jīng)通過以前執(zhí)行的分配指令將 與所述注冊指令相關(guān)的安全密鑰發(fā)布給了所述注冊實體,標(biāo)識所分配的TLB項存儲單元和 相關(guān)的物理地址,以及存儲由所分配的TLB項存儲單元中的注冊實體所提供的虛擬地址。 可根據(jù)允許其被用于驗證后續(xù)的復(fù)制指令將被允許的任意方法來將與所述注冊指令相關(guān) 的訪問信息存儲在例如由所述請求者ID所定位的存儲單元中。在沒有請求注冊實體或沒 有向注冊實體分配TLB項存儲單元的情況下,注冊指令可以通過存儲所述訪問信息來執(zhí)行,而不用驗證安全密鑰或使用TLB項。所述復(fù)制指令可以具有與其相關(guān)的目的地實體ID、目的地虛擬地址和源虛擬地址 作為操作數(shù)、參數(shù),或根據(jù)任意其它的明確的或隱含的方法。所述目的地實體ID可以包括 以請求者ID的形式或任意其它形式的虛擬機(jī)和/或應(yīng)用程序的ID。復(fù)制指令的源實體ID 可以由發(fā)出所述復(fù)制指令的實體的身份所暗示。在該實施例中,執(zhí)行單元180通過以下步驟來執(zhí)行復(fù)制指令根據(jù)在從對應(yīng)的注 冊指 令中存儲訪問信息所使用的方法來驗證所述復(fù)制指令將被允許,使MMU 190將目的地 和源虛擬地址翻譯為物理地址,以及使存儲在由所述源物理地址所標(biāo)識的存儲器存儲單元 中的信息被復(fù)制到由所述目的地物理地址所標(biāo)識的存儲器存儲單元中。MMU 190通過查閱TLB 193來確定是否已經(jīng)注冊了用于所述目的地虛擬地址的 TLB項,以將所述目的地虛擬地址翻譯為目的地物理地址。如果是,則在TLB 193中找到所 述目的地物理地址。如果否,則MMU 190通過利用所述目的地ID或與所述目的地ID相關(guān)的 指針,而不是利用頁面基址寄存器192,來進(jìn)行翻譯,以指向用于目的地實體的適當(dāng)?shù)臄?shù)據(jù) 結(jié)構(gòu),提供超出TLB 193所能容納的項數(shù)的可擴(kuò)展性。在該實施例中,翻譯邏輯191包括多 域翻譯邏輯195,用于使該地址翻譯以與單域地址翻譯不同的方式執(zhí)行并執(zhí)行上面提到的 訪問控制功能。然而,由MMU 190使用的通常保護(hù)頁面的任意技術(shù)可以保持不變,所述技術(shù) 例如基于頁面目錄和/或頁面表項中的狀態(tài)、控制、訪問或其它位或字段來生成頁面錯誤。對于單域地址翻譯,MMU 190如前面所述地將所述源虛擬地址翻譯為源物理地址。 因此,可以執(zhí)行兩個虛擬機(jī)之間的復(fù)制而不用VM退出,允許在單個VM的執(zhí)行環(huán)境中完成所 述復(fù)制操作。本發(fā)明的實施例可以提供具有對多個VM域的訪問的其它指令或操作(代替 復(fù)制或除了復(fù)制以外)。圖2舉例說明了方法200中的本發(fā)明的一個實施例,所述方法200是一種用于在 虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的方法。盡管方法實施例不局限于該方面,但參考圖 1的虛擬化體系結(jié)構(gòu)100的說明來描述圖2的方法實施例。在圖2的框210中,在處理器120上運行的第一客戶機(jī)執(zhí)行程序調(diào)用以初始化與 第二客戶機(jī)的信息共享。在框212,執(zhí)行VM退出以將對處理器120的控制從所述第一客戶 機(jī)轉(zhuǎn)移到VMM 140。在框220,VMM 140發(fā)出如上所述的分配指令。在框222,處理器120分配一個或多 個TLB項存儲單元給所述第一客戶機(jī)。在框224,處理器120將請求者ID存儲在用于所分 配的TLB項存儲單元的共享標(biāo)記存儲單元中。在框226,VMM返回安全密鑰給所述第一客戶 機(jī)。在框228,執(zhí)行VM進(jìn)入以將對處理器120的控制從VMM 140轉(zhuǎn)移到所述第一客戶機(jī)。在框230,所述第一客戶機(jī)發(fā)出注冊指令以注冊用于共享的頁面。在框232,處理 器120驗證安全密鑰。在框234,處理器120在所分配的TLB項中存儲所述頁面的虛擬地 址。在框236,處理器120存儲與所述頁面相關(guān)的訪問信息。在框238,所述第一客戶機(jī)根 據(jù)任意想要的消息傳遞方法將共享信息(如,虛擬地址,以及有利于共享的任意其它信息) 發(fā)送給所述第二客戶機(jī)。在框240,所述第二客戶機(jī)接收所述共享信息。在框242,所述第二客戶機(jī)發(fā)出復(fù) 制指令。在框244,處理器120驗證與所述目的地地址相關(guān)的訪問信息。在框246,處理器 120將目的地虛擬地址翻譯為目的地物理地址。在框248,處理器120將源虛擬地址翻譯為源物理地址。在框250,處理器120將由所述源物理地址所標(biāo)識的存儲器存儲單元的內(nèi)容復(fù) 制到由所述目的地物理地址所標(biāo)識的存儲器存儲單元。在本發(fā)明的范圍內(nèi),可以以不同的順序、省略所示例的方框、增加另外的方框、或 者利用重新排序的、省略的或另外的方框的組合來執(zhí)行方法200。例如,處理器120可以在 翻譯目的地虛擬地址之前或與其同時來翻譯源虛擬地址,例如,框246和248可以重新排 列。根據(jù)本發(fā)明一個實施例設(shè)計的處理器120或任意其它的組件或組件的一部分可 以從創(chuàng)建到模擬到制造分階段地進(jìn)行設(shè)計。表示設(shè)計的數(shù)據(jù)可以表示多種方式的設(shè)計。首 先,如在模擬中所用的,可以利用硬件描述語言或另一功能描述語言來表示硬件。此外或可 選地,具有邏輯和/或晶體管門電路的電路級模型可以在設(shè)計過程的某些階段產(chǎn)生。進(jìn)一 步地,在某些階段,大多數(shù)設(shè)計達(dá)到可以利用表示各種設(shè)備的物理布局的數(shù)據(jù)來對設(shè)計進(jìn) 行建模的一個級別。在使用傳統(tǒng)半導(dǎo)體制造技術(shù)的情況下,表示設(shè)備布局模型的數(shù)據(jù)可以 是用于指出在用于制造集成電路的掩模的不同掩模層上有無各種特征的數(shù)據(jù)。在所述設(shè)計的任意表示中,所述數(shù)據(jù)可被存儲在任意形式的機(jī)器可讀介質(zhì)中。用 于發(fā)送這種信息的調(diào)制的或其它方式生成的光或電波、存儲器、或諸如盤片的磁或光存儲 介質(zhì)可以是機(jī)器可讀介質(zhì)。任意這些介質(zhì)可以“攜帶”或“指示”所述設(shè)計、或者在本發(fā)明 實施例中使用的其它信息。當(dāng)指示或攜帶信息的電載波被發(fā)射時,就執(zhí)行電信號的復(fù)制、緩 沖或重傳來說,完成了一個新的復(fù)制。因此,通信提供商或網(wǎng)絡(luò)提供商的行為可以組成制造 實現(xiàn)本發(fā)明技術(shù)的諸如載波之類的產(chǎn)品的副本。因此,公開了用于在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的裝置、方法和系統(tǒng)。雖 然在附圖中已經(jīng)描述和顯示了特定的實施例,但是應(yīng)該了解,這樣的實施例僅僅是描述性 的而不是對范圍寬廣的本發(fā)明的限制,并且本發(fā)明不局限于所示和所描述的具體結(jié)構(gòu)和方 案,因為本領(lǐng)域普通技術(shù)人員通過研究本公開可以進(jìn)行各種其它的修改。例如,在本發(fā)明的 另一實施例中,請求信息共享的實體可以注冊充當(dāng)源而不是目的地的存儲器空間。在例如這樣的成長迅速且進(jìn)一步的發(fā)展不容易預(yù)見的技術(shù)領(lǐng)域中,所公開的實施 例可以容易地在方案和細(xì)節(jié)上進(jìn)行修改以利于實現(xiàn)技術(shù)的進(jìn)步,而不脫離本公開的原則或 所附權(quán)利要求的范圍。
10
權(quán)利要求
一種用于在多個客戶機(jī)之間共享信息的裝置,包括虛擬機(jī)控制邏輯模塊,用于在主機(jī)和多個客戶機(jī)之間轉(zhuǎn)移對所述裝置的控制;執(zhí)行單元,用于執(zhí)行第一指令,以將信息從所述多個客戶機(jī)中的第一客戶機(jī)的虛擬地址空間中的第一虛擬存儲器地址復(fù)制到所述多個客戶機(jī)中的第二客戶機(jī)的虛擬地址空間中的第二虛擬存儲器地址,其中,所述第一指令由所述第二客戶機(jī)發(fā)出;以及存儲器管理單元,用于將所述第一虛擬存儲器地址翻譯為第一物理存儲器地址并且將所述第二虛擬存儲器地址翻譯為第二物理存儲器地址。
2.如權(quán)利要求1所述的裝置,其中所述存儲器管理單元包括第一存儲單元,用于存儲 第一虛擬存儲器地址的第一部分和所述第一物理存儲器地址的對應(yīng)的第一部分。
3.如權(quán)利要求2所述的裝置,其中所述存儲器管理單元包括翻譯后援緩沖器,所述翻 譯后援緩沖器包括所述第一存儲單元。
4.如權(quán)利要求2所述的裝置,其中所述第一存儲單元包括標(biāo)記存儲單元,用于存儲所 述第一客戶機(jī)的標(biāo)識符。
5.如權(quán)利要求2所述的裝置,其中第一虛擬存儲器地址的第一部分是第一虛擬頁面 號,而所述第一物理存儲器地址的對應(yīng)的第一部分是第一物理頁面號。
6.如權(quán)利要求2所述的裝置,其中所述執(zhí)行單元還用于執(zhí)行第二指令,以將所述第一 虛擬存儲器地址的第一部分存儲在所述第一存儲單元中。
7.如權(quán)利要求6所述的裝置,其中所述執(zhí)行單元還用于執(zhí)行第三指令,用于為所述第 一客戶機(jī)分配所述第一存儲單元。
8.如權(quán)利要求7所述的裝置,其中所述虛擬機(jī)控制邏輯模塊包括退出邏輯模塊,用于 響應(yīng)于所述多個客戶機(jī)中的一個客戶機(jī)發(fā)出所述第三指令的嘗試來將對所述裝置的控制 轉(zhuǎn)移到所述主機(jī)。
9.如權(quán)利要求1所述的裝置,其中所述存儲器管理單元利用用于所述第一客戶機(jī)的第 一地址翻譯數(shù)據(jù)結(jié)構(gòu)來翻譯所述第一虛擬存儲器地址,并利用用于所述第二客戶機(jī)的第二 地址翻譯數(shù)據(jù)結(jié)構(gòu)來翻譯所述第二虛擬存儲器地址。
10.如權(quán)利要求9所述的裝置,進(jìn)一步包括第一基址存儲單元,用于存儲指向所述第一 地址翻譯數(shù)據(jù)結(jié)構(gòu)的第一指針。
11.一種用于在多個客戶機(jī)之間共享信息的方法,包括第一客戶機(jī)發(fā)出注冊指令以注冊共享的存儲器空間;以及第二客戶機(jī)發(fā)出復(fù)制指令,其中,所述第一客戶機(jī)將用于識別所述共享的存儲器空間 的第一虛擬存儲器地址發(fā)送給所述第二客戶機(jī),并且在所述第二客戶機(jī)的執(zhí)行環(huán)境中,根 據(jù)所述第一虛擬存儲器地址將所述第二客戶機(jī)的一部分存儲器空間的內(nèi)容復(fù)制到所述共 享的存儲器空間。
12.如權(quán)利要求11所述的方法,進(jìn)一步包括主機(jī)發(fā)出分配命令以分配所述共享的存 儲器空間給所述第一客戶機(jī)。
13.如權(quán)利要求12所述的方法,進(jìn)一步包括為與所述共享的存儲器空間相關(guān)的地址 翻譯分配翻譯后援緩沖器中的項。
14.如權(quán)利要求13所述的方法,進(jìn)一步包括在與所述翻譯后援緩沖器中的所述項相 關(guān)的標(biāo)記存儲單元中存儲所述第一客戶機(jī)的標(biāo)識符。
15.如權(quán)利要求12所述的方法,進(jìn)一步包括返回與所述共享的存儲器空間相關(guān)的安 全密鑰給所述第一客戶機(jī)。
16.如權(quán)利要求11所述的方法,進(jìn)一步包括在翻譯后援緩沖器中存儲所述第一虛擬 存儲器地址。
17.如權(quán)利要求16所述的方法,進(jìn)一步包括將所述第一虛擬存儲器地址翻譯為標(biāo)識 所述共享的存儲器空間的第一物理存儲器地址。
18.如權(quán)利要求17所述的方法,進(jìn)一步包括對標(biāo)識所述第二客戶機(jī)的所述一部分存 儲器空間的第二虛擬存儲器地址進(jìn)行翻譯,以生成標(biāo)識所述第二客戶機(jī)的所述一部分存儲 器空間的第二物理存儲器地址。
全文摘要
公開了用于在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的裝置、方法和系統(tǒng)的實施例。在一個實施例中,裝置包括虛擬機(jī)控制邏輯、執(zhí)行單元和存儲器管理單元。所述虛擬機(jī)控制邏輯在主機(jī)及其客戶機(jī)之間轉(zhuǎn)移對所述裝置的控制。所述執(zhí)行單元用于執(zhí)行指令以將信息從一個客戶機(jī)的虛擬地址空間中的虛擬存儲器地址復(fù)制到另一客戶機(jī)的虛擬地址空間中的虛擬存儲器地址。所述存儲器管理單元用于將所述虛擬存儲器地址翻譯為物理存儲器地址。
文檔編號G06F12/10GK101872328SQ20101016754
公開日2010年10月27日 申請日期2007年9月24日 優(yōu)先權(quán)日2006年9月22日
發(fā)明者D·紐厄爾, R·伊利卡爾, R·伊耶, S·馬基寧尼 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汝阳县| 沁源县| 苗栗县| 稷山县| 济南市| 阳高县| 吴川市| 日喀则市| 绥江县| 阿克苏市| 兴化市| 临沧市| 禄劝| 陈巴尔虎旗| 黄梅县| 芦山县| 大英县| 岳池县| 上林县| 蓝山县| 渑池县| 永吉县| 正镶白旗| 二连浩特市| 建湖县| 崇明县| 桃园市| 哈巴河县| 甘谷县| 百色市| 汕头市| 龙游县| 巴彦淖尔市| 花莲县| 黑龙江省| 尚义县| 祥云县| 岳阳市| 凌海市| 凯里市| 丽水市|