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

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

文檔序號:6615052閱讀:190來源:國知局
專利名稱:在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的制作方法
技術(shù)領(lǐng)域
本公開涉及信息處理的領(lǐng)域,更具體而言,涉及虛擬機(jī)環(huán)境中存 儲器管理的領(lǐng)域。
背景技術(shù)
通常,在信息處理系統(tǒng)中虛擬化的概念允許一個或多個操作系統(tǒng)
(每個稱為一個"OS")的多個實例運(yùn)行在單個信息處理系統(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)境,所述虛 擬化策略例如在VM("虛擬化環(huán)境")之間共享和/或分配物理資源。 運(yùn)行在VM上的每個OS和任何其它軟件被稱為"客戶機(jī)(guest)"或 "客戶機(jī)軟件(guest software)",而"主機(jī)(host)"或"主機(jī)軟件"是 諸如VMM之類的運(yùn)行在所述虛擬化環(huán)境之外并且可以了解或者不 了解所述虛擬化環(huán)境的軟件。
信息處理系統(tǒng)中的物理處理器例如可以通過支持指令進(jìn)入虛擬 化環(huán)境以在VM中的虛擬處理器(即,在VMM施加的限制之下的物 理處理器)上運(yùn)行客戶機(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可以是能夠運(yùn)行任意OS或VMM軟 件的任意數(shù)據(jù)處理裝置。例如,裸平臺硬件可以是個人計算機(jī)、大型 計算機(jī)、便攜計算機(jī)、手持設(shè)備、機(jī)頂盒、服務(wù)器或任意其它的計算 系統(tǒng)的硬件。裸平臺硬件110包括處理器120和存儲器130。
處理器120可以是任意類型的處理器,包括通用微處理器、或數(shù) 字信號處理器或微控制器,所述通用微處理器例如Intd⑧公司的 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上或可由裸平臺硬件 IIO訪問的任意軟件、固件或硬件主機(jī),以提供VM(S卩,裸平臺硬件
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上可以 運(yùn)行任意數(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上運(yùn) 行或在處理器120的控制下運(yùn)行。當(dāng)特權(quán)事件發(fā)生或客戶機(jī)嘗試訪問 特權(quán)資源時,控制可以從所述客戶機(jī)轉(zhuǎn)移到VMM 140??刂茝目蛻?機(jī)到VMM 140的轉(zhuǎn)移在此被稱為"VM退出"。在適當(dāng)?shù)靥幚砹怂?事件或促成對所述資源的訪問之后,VMM 140可以將控制返回給客
戶機(jī)??刂茝腣MM 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ī)(即,VM退出)。在一些實施例中,控制也可以從客 戶機(jī)轉(zhuǎn)移到客戶機(jī)或從主機(jī)轉(zhuǎn)移到主機(jī)。例如,在一個支持分層虛擬 化的實施例中,運(yùn)行在處理器120的VM上的軟件可以同時是客戶機(jī) 和主機(jī)(例如,運(yùn)行在VM上的VMM對于控制該VM的VMM來說 是客戶機(jī),而對于運(yùn)行在其所控制的VM上的客戶機(jī)來說是主機(jī))。
處理器120還包括執(zhí)行單元180和存儲器管理單元 ("MMU" )190,執(zhí)行單元180用于執(zhí)行如下所述的由主機(jī)或客戶機(jī) 發(fā)出的指令,MMU 190用于管理處理器120的虛擬和物理存儲器空 間。MMU 190支持使用虛擬存儲器來向軟件(包括運(yùn)行在VM中的客 戶機(jī)軟件以及運(yùn)行在VM外的主機(jī)軟件)提供用于存儲和訪問代碼和 數(shù)據(jù)的地址空間,所述地址空間大于系統(tǒng)中的物理存儲器(例如存儲 器130)的地址空間。處理器120的虛擬存儲器空間可以僅由運(yùn)行在所 述處理器上的軟件可訪問的地址比特的數(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)使 用。因此,程序訪問存儲器i30所使用的線性地址可以被翻譯為處理 器120訪問存儲器130所使用的物理地址。
所述線性地址和對應(yīng)的物理地址可以存儲在TLB 193中,從而可 以在TLB 193中找到用于以后使用相同的線性地址的訪問的適當(dāng)?shù)?物理地址,而不需要另一頁面移動。在適當(dāng)?shù)臅r候,TLB193的內(nèi)容 可以被清洗,例如在通常由操作系統(tǒng)執(zhí)行的軟件上下文切換時。
在虛擬機(jī)環(huán)境中,為了保護(hù)一個客戶機(jī)的存儲器空間不被另一客 戶機(jī)影響,VMM 140可能需要具有對MMU 190的資源的最終控制。
因此,在一個實施例中,虛擬機(jī)控制邏輯170可以包括如下邏輯,如 果客戶機(jī)發(fā)出意圖改變頁面基址寄存器192或TLB 193的內(nèi)容、或者 另外修改MMU190的操作的指令時,所述邏輯引起VM退出。為了 與虛擬機(jī)環(huán)境一起正確操作裸平臺硬件110,所述VMM可以因此維 護(hù)具有多組頁面或其它數(shù)據(jù)結(jié)構(gòu)(如,每個VM—組)的MMU 190, 在所述虛擬機(jī)環(huán)境中每個虛擬機(jī)看起來向OS提供對其存儲器管理資 源的完整的控制。
在另一實施例中,MMU190可以包括支持虛擬化的硬件。例如, 翻譯邏輯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)可以由 運(yùn)行在虛擬機(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退出。VMM 140發(fā)出分配指令可以響應(yīng)于通過程序調(diào)用或其它消息傳送協(xié)議的客 戶機(jī)請求,以使其存儲器空間的一部分可共享。
在該實施例中,執(zhí)行單元180通過使項存儲單元或TLB 193中的 存儲單元分配給請求信息共享的VM來執(zhí)行分配指令。在其它實施例 中,單獨(dú)的、專用的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中找到所述目的地物理地址。如果否, 則MMU190通過利用所述目的地ID或與所述目的地ID相關(guān)的指針, 而不是利用頁面基址寄存器192,來進(jìn)行翻譯,以指向用于目的地實 體的適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),提供超出TLB 193所能容納的項數(shù)的可擴(kuò)展 性。在該實施例中,翻譯邏輯191包括多域翻譯邏輯195,用于使該 地址翻譯以與單域地址翻譯不同的方式執(zhí)行并執(zhí)行上面提到的訪問 控制功能。然而,由MMU190使用的通常保護(hù)頁面的任意技術(shù)可以 保持不變,所述技術(shù)例如基于頁面目錄和/或頁面表項中的狀態(tài)、控 制、訪問或其它位或字段來生成頁面錯誤。
對于單域地址翻譯,MMU l卯如前面所述地將所述源虛擬地址 翻譯為源物理地址。因此,可以執(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上運(yùn)行的第一客戶機(jī)執(zhí)行程序 調(diào)用以初始化與第二客戶機(jī)的信息共享。在框212,執(zhí)行VM退出以 將對處理器120的控制從所述第一客戶機(jī)轉(zhuǎn)移到VMM 140。
在框220, VMM140發(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)的訪問信息。在框23S,所述第一客戶機(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)生。迸一步地,在某些階段,大多數(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)利要求的范圍。
權(quán)利要求
1、一種裝置,包括虛擬機(jī)控制邏輯,用于在主機(jī)和多個客戶機(jī)之間轉(zhuǎn)移對所述裝置的控制;執(zhí)行單元,用于執(zhí)行第一指令以將信息從所述多個客戶機(jī)的第二客戶機(jī)的虛擬地址空間中的第二虛擬存儲器地址復(fù)制到所述多個客戶機(jī)的第一客戶機(jī)的虛擬地址空間中的第一虛擬存儲器地址;以及存儲器管理單元,用于將所述第一虛擬存儲器地址翻譯為第一物理存儲器地址并且將所述第二虛擬存儲器地址翻譯為第二物理存儲器地址。
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ī)發(fā)出注冊指令以注冊共享的存儲器空間;以及 第二客戶機(jī)發(fā)出復(fù)制指令以將所述第二客戶機(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)一步包括在翻譯后援緩沖 器中存儲標(biāo)識所述共享的存儲器空間的第一虛擬存儲器地址。
17、 如權(quán)利要求16所述的方法,進(jìn)一步包括將所述第一虛擬 存儲器地址翻譯為標(biāo)識所述共享的存儲器空間的第一物理存儲器地 址。
18、 如權(quán)利要求17所述的方法,進(jìn)一步包括對標(biāo)識所述第二 客戶機(jī)的所述一部分存儲器空間的第二虛擬存儲器地址進(jìn)行翻譯,以 生成標(biāo)識所述第二客戶機(jī)的所述一部分存儲器空間的第二物理存儲 器地址。
19、 一種系統(tǒng),包括存儲器,用于存儲在第一客戶機(jī)和第二客戶機(jī)之間共享的信息;以及處理器,包括虛擬機(jī)控制邏輯,用于在主機(jī)、所述第一客戶機(jī)和所述第二客戶機(jī)之間轉(zhuǎn)移對所述處理器的控制;執(zhí)行單元,用于執(zhí)行第一指令以將信息從所述第二客戶機(jī)的 虛擬地址空間中的第二虛擬存儲器地址復(fù)制到所述第一客戶機(jī)的虛擬地址空間中的第一虛擬存儲器地址;以及存儲器管理單元,用于將所述第一虛擬存儲器地址翻譯為第 一物理存儲器地址并且將所述第二虛擬存儲器地址翻譯為第二物理 存儲器地址。
20、 如權(quán)利要求19所述的系統(tǒng),其中所述存儲器是動態(tài)隨機(jī)存取存儲器。
全文摘要
公開了用于在虛擬機(jī)環(huán)境中的客戶機(jī)之間共享信息的裝置、方法和系統(tǒng)的實施例。在一個實施例中,裝置包括虛擬機(jī)控制邏輯、執(zhí)行單元和存儲器管理單元。所述虛擬機(jī)控制邏輯在主機(jī)及其客戶機(jī)之間轉(zhuǎn)移對所述裝置的控制。所述執(zhí)行單元用于執(zhí)行指令以將信息從一個客戶機(jī)的虛擬地址空間中的虛擬存儲器地址復(fù)制到另一客戶機(jī)的虛擬地址空間中的虛擬存儲器地址。所述存儲器管理單元用于將所述虛擬存儲器地址翻譯為物理存儲器地址。
文檔編號G06F12/08GK101187902SQ20071019993
公開日2008年5月28日 申請日期2007年9月24日 優(yōu)先權(quán)日2006年9月22日
發(fā)明者D·紐厄爾, R·伊利卡爾, R·伊耶, S·馬基寧尼 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
洪江市| 惠州市| 宁晋县| 巴中市| 壶关县| 喜德县| 芦溪县| 明溪县| 错那县| 大丰市| 施甸县| 吉安市| 临夏市| 房产| 岳西县| 牟定县| 鄂尔多斯市| 视频| 池州市| 大新县| 金塔县| 新河县| 南靖县| 黑山县| 邵东县| 平南县| 宜君县| 遵化市| 辽阳市| 嘉兴市| 威海市| 大方县| 固原市| 湟源县| 开远市| 天峨县| 大悟县| 神农架林区| 上林县| 内黄县| 石城县|