TWI354205B - Sharing information between guests in a virtual ma - Google Patents

Sharing information between guests in a virtual ma Download PDF

Info

Publication number
TWI354205B
TWI354205B TW096135531A TW96135531A TWI354205B TW I354205 B TWI354205 B TW I354205B TW 096135531 A TW096135531 A TW 096135531A TW 96135531 A TW96135531 A TW 96135531A TW I354205 B TWI354205 B TW I354205B
Authority
TW
Taiwan
Prior art keywords
guest
address
virtual
memory
space
Prior art date
Application number
TW096135531A
Other languages
English (en)
Other versions
TW200832135A (en
Inventor
Rameshkumar G Illikkal
Donald Newell
Ravishankar Iyer
Srihari Makineni
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200832135A publication Critical patent/TW200832135A/zh
Application granted granted Critical
Publication of TWI354205B publication Critical patent/TWI354205B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

1354205 九、發明說明 - 【發明所屬之技術領域】 本發明係關於資訊處理領域,特別關於虛擬機環境中 的記憶體管理領域。 【先前技術】 一般而言,資訊處理系統中的虛擬化槪念允許一或更 # 多作業系統(均爲os)的多個實施例即使對單一資訊處 理系統及其資源具有完全的、直接的控制,仍能在單一資 訊處理系統中執行。典型上藉由使用軟體(例如虛擬機監 視器,或VMM )以將具有包含一或更多虛擬處理器的虛 擬資源之「虛擬機」(VM)呈現給每一 OS,以實現虛擬 化,以致於OS可以完全地及直接地控制,而VMM維持 用於實施虛擬化政策之系統環境,虛擬化政策係例如分享 及在複數個VM (虛擬環境)之間分配實體資源等。每一 # 〇S,及VM上執行的任何其它軟體被稱爲「客人」或「客 人軟體」,而「主機」或「主機軟體」是例如VMM等在 虛擬環境之外執行、且知道或不知道虛擬環境的軟體。 舉例而言,資訊處理系統中實體的處理器藉由支援指 令進入虛擬環境以在VM中的虛擬處理器上(亦即VMM 施加的限制之下的實體處理器)執行客人軟體,以支援虛 擬化。在虛擬化環境中,例如外部中斷或存取特權暫存器 或資源的嘗試等某些事件、操作、及情形會被「攔截」, 亦即,促使處理器離開虛擬環境,以致於VMM可以操 1354205 - 作,舉例而言,實施虛擬政策。實體處理器也支援其它用 . 於維持虛擬環境的指令’以及包含表示或控制實體處理器 的虛擬化能力之暫存器位元。 支援虛擬環境的實體處理器可以包含記憶體管理單 元,用於將虛擬記憶體位址轉譯成實體記憶體位址。VMM 可能需要在記億體管理單元上保持最終控制,以保護一客 人的記憶體空間與另一客人的記憶體空間分開。因此’在 φ 客人之間分享資訊的習知方式包含將每一客人的記憶體空 間的部份加至VMM的記憶體空間,以致於VMM可以從 一客人的記憶體空間複製資訊至另一客人的記憶體空間, 以致於每當客人嘗試將資訊複製至另一客人時,執行從客 人至VMM之處理器控制轉移,以及,從VMM回至客人 之另一控制轉移。典型上,從客人至VMM之每一此控制 轉移包含儲存客人狀態及載入主機狀態,以及,從 VMM 至客人之每一此控制轉移包含儲存主機狀態及載入客人狀 φ 態。 【發明內容及實施方式】 將於下說明在虛擬機環境中讓客人之間分享資訊的裝 置、方法、及系統的實施例。在本說明中,揭示例如元件 及系統配置等眾多具體細節,以助於更完整瞭本發明。但 是’習於此技藝者顯然可知,在無這些具體細節下,仍可 實施本發明。此外,某些習知的結構、電路、等等並未被 詳細顯示,以免不必要地模糊本發明。 -6- 1354205 ' 藉由降低客人與主機之間的控制轉移次數,可以增進 - 虛擬機環境的性能。本發明的實施例可以用以降低從一客 人複製資訊至另一客人所需的這些轉移的次數。因此,可 以改進虛擬機環境上的性能,其中,每當客人嘗試複製資 訊至另一客人時,執行從客人至VMM之處理器的控制轉 移、以及從VMM回至客人之控制的另一轉移。藉由不要 求VMM的記億體管理資料結構被修改成包含客人記憶體 • 的分享部份,進一步改進性能。 圖1顯示虛擬架構100中本發明的實施例。雖然圖1 顯示具體實施於虛擬架構中的本發明,本發明也具體實施 於其它架構、系統、平台、或環境中。舉例而言,本發明 的實施例可以在支援微核心或分解的作業系統環境中的應 用之間分享資訊。 在圖1中,裸平台硬體110可以是能夠執行任何OS 或VMM軟體的資料處理裝置。舉例而言,裸平台硬體可 • 以是個人電腦、主電腦、可攜式電腦、手持式裝置、機上 盒、伺服器、或任何其它計算系統之裸平台硬體。裸平台 硬體110包含處理器120及記憶體130。 處理器可以是任何型式的處理器,包含一般用途的微 處理器’例如Intel的Pentium處理器系列,Itanium處理 器系列、或來自Intel公司的其它處理器系列之處理器, 或是來自其它公司之其它處理器、或是數位訊號處理器或 微控制器。雖然圖1僅顯示一此種處理器120,但是,裸 平台硬體]10可以包含任何數目的處理器、處理器包含任 1354205 何數目的微核心處理器、及任何數目的多緒處理器,每一 - 微核心處理器均具有任何數的執行核心,每一多緒處理器 具有任何數目的緒。 記憶體1 3 0可以是處理器丨2 〇可以讀取之靜態或動態 隨機存取記憶體、半導體基礎的唯讀或快閃記億體、磁或 光碟記億體、任何其它型式的媒體、或是這些媒體的任意 組合。處理器120及記億體130可以根據任何習知的方式 φ 而彼此耦合或通訊,這些習知方式包含一或更多匯流排、 點對點、或其它有線或無線連接。裸平台硬體110也包含 任何數目增加的裝置或連接。 除了裸平台硬體100之外,圖1尙顯示VMM 140、 VM 150和160、客人作業系統152和162、及客人應用 154、 155、 164 和 165° VMM 140可以是任何安裝於或是可進入裸平台硬體 1 1 〇之軟體、韌體、或硬體主機,以呈現VM (亦即裸平 φ 台硬體110的抽象化)給客人,否則產生 VM、管理 VM、及實施虛擬化政策。在其它實施例中,主機可以是 任何VMM、虛擬控制程序(hypervisor) 、OS、或其它能 夠控制裸平台硬體110之軟體、韌體、或硬體。客人可以 任何0S、任何另一VMM140實施例的VMM、任何虛擬控 制程序、或任何應用或其它軟體。 根據VM中呈現的處理器的架構及平台,每一客人期 望接取例如處理器及平台暫存器、記憶體、及輸入/輸出 裝置等裸平台硬體110實體資源。圖1顯示二VM 150及 1354205
• 160,以客人OS 152及客人應用154和155安裝於VM
- 150上及客人OS 162和客人應用164和165安裝於VM 1 60上。雖然圖1僅顯示二個VM及每一VM二個應用, 但是,在本發明的範圍內,可以產生任何數目的VM、任 何數目的應用可以在每一VM上應用。 可以由客人接取的資源分類爲「特權的」或「非特權 的」資源。關於特權資源,VMM 140幫助客人所需的功 φ 能,並保有資源的最終控制。非特權的資源無需由VMM 140控制且可以由客人直接接取。 此外,每一客人〇 S期望處理例如意外(例如紙故 障、及一般保護故障)、中斷(例如硬體中斷及軟體中 斷)、及平台事件(例如初始化及系統管理中斷)等不同 事件。此處,將這些意外、中斷、及平台事件總稱爲或個 別稱爲「虛擬化事件」。這些虛擬化事件中的一些稱爲 「特權事件」,這是由於它們必須由VMM 140處理以確 • 保VM 150和160的適當操作、保護VMM 140免受客人 侵害、及保護客人們免於彼此侵害。 在任何給定的時,處理器120可以執行來自VMM 140 或任何客人的指令,如此,VMM 140或客人可以執行、或 控制處理器120。當特權事件發生或客人嘗試接取特權資 源時,控制可以從客人轉移至VMM 140。控制從客人轉移 至VMM 140此處稱爲「VM離去」。在適當地處理事件 或幫助接取資源之後,VMM 140可以將控制歸還給客人。 控制從VMM 140轉移至客人此處稱爲「VM進入」。 1354205 • 處理器120包含虛擬機控制邏輯170以支援虛擬化, - 包含在例如VMM 140等主機與例如客人作業系統152和 162及客人應用154、155、164、和165等客人之間轉移 處理器120的控制。虛擬機控制邏輯170可以是微碼、可 程式邏輯、硬碼化邏輯、或處理器內任何其它形式的控制 邏輯。在其它實施例中,可以以例如抽象化層等處理器內 的、或例如記憶體1 3 0等處理器可接取的任何元件或可讀 • 取的媒體內的任何形式的硬體、軟體、或韌體,實施虛擬 機控制邏輯170。 虛擬機控制邏輯170包含VM進入邏輯171以將處理 器1 20的控制從主機轉移至客人(亦即,VM進入),以 及包含VM離去邏輯以將處理器120的控制從客人轉移至 主機(亦即,VM離去)。在某些實施例中,控制也從客 人轉移至客人或是從主機轉移至主機。舉例而言,在支援 層虛擬化的實施例中,在處理器120上的VM上執行的軟 # 體可以客人及主機(例如,在VM上執行的VMM對於控 制VM的VMM係客人,但對於在其控制的VM上執行的 客人係主機。 處理器120也包含執行單元180,如下所述般,執行 由主機或客人發出的指令,以及包含記憶體管理單元 (MMU) 190,以管理處理器120的虛擬及實體記憶體空 間。MMU 1 90支援虛擬記億體的使用,以將例如記憶體 130等位址空間提供給包含VM中執行的客人軟體及在 VM外執行的主機軟體等軟體,位址空間係用於儲存和接 -10- 1354205 * 取碼以及大於系統中的實體記憶體的位址空間之資料。處 , 理器120的虛擬記憶體空間僅受限於處理器上執行的軟體 可取得的位址位元數目,而處理器120的實體記憶體空間 又受限於記億體130的大小》MMU 190支援記憶體管理設 計(在本實施例中爲分頁),以根據需要而將執行的軟體 碼及資料調進及調出記憶體130。關於此設計的一部份, 軟體可以以虛擬位址存取處理器的虛擬記憶體空間,虛擬 φ 位址係由處理器轉譯成第二位址,處理器可以使用第二位 址以存取處理器的實體記憶體空間。 因此,MMU 190包含轉譯邏輯191,分頁基底暫存器 192、及轉譯後援緩衝器(TLB ) 193。轉譯邏輯191係執 行位址轉譯,舉例而言,根據例如分頁等任何習知的記憶 體管理技術,將虛擬位址轉譯成實體位址。關於此處所使 用的「虛擬位址」一詞包含稱爲邏輯或線性位址之任何位 址。爲了執行這些位址轉譯,轉譯邏輯191査詢儲存在處 # 理器120、記憶體130、及圖1中未顯示的裸平台11〇中 的任何其它儲存區中、以及這些元件及區的任何組中的一 或更多資料結構。資料結構包含依本發明的實施例而修改 之根據Pentium處理器系列的架構之頁目錄和頁表、以及 /或例如TLB 1 93等儲存於TLB中的表。 分頁基底暫存器192可以是用以儲存指標的任何暫存 器或其它儲存區,指標係指向由轉譯邏輯191所使用的資 料結構。在一實施例中,根據Pentium處理器系列的架 構’分頁基底暫存器192可以是稱爲PML3基礎的CR3暫 -11 - 1354205 - 存器的該部份,用以儲存頁對映層級4基底位址。 . 在一實施例中,轉譯邏輯191接收要由處理器120執 行的指令所提供的線性位址。轉譯邏輯191使用線性位址 的複數個部份作爲進入包含頁表之層級表中的索引,以執 行頁行走(page walk)。頁表含有登錄,每一登錄均包含 用於記憶體130中的頁的基本位址之欄位,舉例而言,根 據Pentium處理器系列的擴充記憶體64技術之頁表登錄 φ 的位元39:12。在本發明的範圍之內,可以使用任何頁尺 寸(例如4 k位元組)。因此,由程式所使用以存取記憶 體130之線性位址可以被轉譯成由處理器120所使用的實 體位址以存取記憶體1 3 0。 線性位址及對應的實體位址可以儲存在TLB 193中, 以致於可以在TLB 193中發現適當的實體位址以用於使用 相同線性位址之未來存取,以及不需要另一頁行走。當適 當時,舉例而言,軟體內容切換時,TLB 1 93的內容典型 • 上可以由作業系統清除。 在虛擬機環境中,VMM 140需要對MMU 190的資源 具有最終控制’以保護一客人的記憶體空間免於另一客人 的侵害。因此,在一實施例中,虛擬機控制邏輯17〇包含 邏輯’假使客人發出要改變分頁基底暫存器192或TLB 193的內容之指令時’促使VM離去,否則,修改MMU 190的操作。VMM可以接著維持MMU 190與多組分頁或 其它資料結構(例如,每一 V Μ —組),以提供裸平台硬 體110與虛擬機環境的正確操作,其中,每—虛擬機提供 -12- 1354205 • 其記憶體管理資源的完整控制給os。 . 在另一實施例中,MMU 190包含支 舉例而言,轉譯邏輯1 9 1配置成如上所 暫存器192的內容所指向的資料結構, 實體位址。假使對客人執行此轉譯時, 客人線性位址,以及,所造成的實體位 址,以及,使用第二指標所指向的第二 φ 二轉譯以將客人實體位址轉譯成主機實 例中,分頁基底暫存器192及第一轉移 擬機上執行的OS維持,而第二指標及 由VMM維持。第二轉譯可以由VM進 VMM離去來失能。 回至執行單元180,在本實施例中 置成執行由主機或客人發出之指令。ΐ TLB 193的部份(及/或處理器120或 # 的另一結構,例如記憶體1 3 0 )給客人 分享資訊之指令(「分配」指令)、註 分享資訊之客人的記憶體的部份之指 令)、及用於一客人以將資訊複製至另 人複製資訊而不促使VM離去之指令(
分配指令具有依運算元、參數或根 隱含的方式之請求者標誌(ID)及與其 寸。請求者ID可以是虛擬機環境中虛 OS環境中的應用獨有的値。請求者ID 援虛擬化的硬體。 述般使用分頁基底 將線性位址轉譯成 則線性位址被稱爲 址稱爲客人實體位 資料結構,執行第 體位址。在本實施 資料結構可以由虛 第二轉譯資料結構 入來賦能,以及由 ,執行單元180配 重些指令包含分配 裸平台硬體〗10中 以用於與其它客人 冊用於與其它客人 i令(「註冊」指 一客人或從另一客 「複製」資訊)。 據任何其它明確或 相關連的記憶體尺 擬機、或是分解的 識別要使其記憶體 -13- !354205 ' 空間的一部份可分享的VM或應用,以及,記億體尺寸代 • 表可分享的記億體空間的尺寸,舉例而言,一些頁。 分配指令可以僅由具有MMU 190的最終控制之實體 發出,在本實施例中,此實體爲VMM 140。舉例而言,假 使分配指令由具有不充份的特權之客人應用發出時,則其 可被忽略,或者,假使其由認爲具有充份的特權之客人 OS發出時,則其促使VM離去。由VMM 140發出分配指 # 令可以回應經由程式呼叫或其它訊息通信協定之客人請 求,以使其記億體空間的一部份可以分享。 在本實施例中,執行單元180藉由促使登錄區或TLB 1 93中的區域分配給請求VM以用於資訊分享,以執行分 配指令。在其它實施例中,可以使用處理器〗20或裸平台 硬體110中分開的、專用的TLB、或任何其它儲存區或資 料結構(例如記憶體1 3 0 ),取代TLB 1 93。 爲了支援資訊分享,TLB 193包含分享標籤儲存區 ® 194,用於要與每—TLB登錄相關連、或是具有任何數目 的TLB登錄組的分享標籤。因此,分配指令的執行包含將 分享標籤或與分配的TLB相關連的標籤設定給請求者ID 的値。在軟體內容切換時,被標示用於分享的TLB登錄不 會被清除。 分配指令的執行也促使與分配的TLB登入區相關連之 安全鑰傳送給程式呼叫歸返或其它發訊協定中的請求者。 被分配的TLB登錄區可以由程式呼叫、其它訊息通信協 定、或任何其它方式釋放。 -14- 1354205 • 註冊指令具有依運算元、參數或根據任何其它明確或 . 隱含的方式之所有權資訊及與其有關的存取資訊。所有權 資訊包含依請求者ID形式或任何其它形式之註冊實體的 身份、及依要分享的頁的虛擬位址的形式或任何其它形式 之要分享的記憶體的身份。存取資訊包含要分享記憶體空 間之依類比於請求者ID的ID値的形式或任何其它形式之 一或更多實體的身份、以及例如讀取允許及/或寫入允許 φ 之任何所需的存取允許。註冊指令也具有由對應的分配指 令歸還之與其相關連的安全鑰。 在本實施例中,註冊指令的執行包含驗證與註冊指令 相關連的安全鑰已經由先前執行的分配指令發給註冊實 體、識別分配的TLB登錄區及相關連的實體位址、以及將 註冊登錄所提供的虛擬位址儲存於分配的TLB登錄區中。 根據一方式,儲存與註冊指令相關連的存取資訊,該方式 係允與註冊指令相關連的存取資訊被用以驗證後續的複製 # 指令在例如依請求者ID索引的儲存區中是被允許的。在 註冊實體未請求或未被分配TLB登錄區之情形中,藉由儲 存存取資訊而未驗證安全鑰或使用TLB登錄,執行註冊指 令。 複製指令具有依運算元、參數、或根據任何其它明確 的或隱含的方式之目的地實體ID、目的地虛擬位址、及 與其相關連的來源虛擬位址。目的地實體ID包含請求者 ID形式或任何其它形式之虛擬機及/或應用的id。從發 出複製指令的實體之身份可以暗指複製指令之來源實體 -15- 1354205 ID。 . 在本實施例中,執行單元180根據下述執行複製指 令:藉由根據任何用於儲存來自對應的註冊指令之存取資 訊的方式以驗證複製指令是被允許的、促使MMU 190將 目的地及來源虛擬位址轉移成實體位址、及促使依來源實 體位址識別的記憶體區中儲存的資訊被複製至目的地實體 位址識別的記憶體區。 φ MMU 190藉由查詢TLB 193以將目的地虛擬位址轉 移成目的地實體位址,以決定TLB登錄是否已被註冊用於 目的地虛擬位址。假使爲是,則在TLB 193中發現目的地 實體位址。假使爲否,貝(J MMU 190藉由使用目的地ID、 或是與目的地ID相關連的指標,而非分頁基底暫存器 192,以轉譯成用於目的地實體之適當資料結構,提供 TLB 193可以固持的實體數目之外的量度。在本實施例 中,轉譯邏輯191包含多域轉譯邏輯195,以促使此位址 • 轉譯以不同於單一區域位址轉譯之方式執行,以及,執行 上述所指之存取控制功能。但是,由MMU 1 90 —般用以 保護頁之任何技術可以原狀維持,舉例而言,此技術可以 是根據頁目錄及/或頁表登錄中的狀態、控制、存取、或 其它位元或欄位而產生頁故障。 如同先前有關單一區域位址轉譯之說明所述般,MMU 190將來源虛擬位址轉譯成來源實體位址。因此,可以執 行二虛擬機之間的複製而不用VM離去,允許複製操作在 單一VM的執行內文中完成。本發明的實施例提供對多 -16- 1354205 ' VM區的存取給其它指令或操作(以取代複製或是在複製 - 之外增加)。 圖2顯示方法200中的本發明的實施例,其係用於在 虛擬機環境中讓客人之間分享資訊之方法。將參考圖1的 虛擬化架構1 00的說明,以說明圖2的方法實施例,但是 方法實施例不限於此。 在圖2的方塊210中,在處理器120上執行的第一客 • 人會產生程式呼叫以初始化與第二客人的資訊分享。在方 塊212中,執行VM離去以將處理器120的控制從第一客 人轉移至VMM 1 40。 在方塊220中,如上所述,VMM 140發出分配指令。 在方塊222中,處理器120分配一或更多TLB登錄區給第 —客人。在方塊224中,處理器120將請求者ID儲存於 用於分配的TLB登錄區之分享標籤儲存區。在方塊220 中,VMM將安全鑰歸還給第一客人。在方塊228中,執 Φ 行VM登錄以將處理器120的控制從VMM 140轉移至第 一客人。 在方塊2 3 0中,第一客人發出註冊指令以註冊用於分 享的頁。在方塊232中,處理器120將頁的虛擬位址儲存 於分配的TLB登錄中。在方塊236中,處理器120儲存與 頁相關連的存取資訊。在方塊238中,根據任何需要的訊 息傳遞途徑,第一客人傳送分享資訊(例如虛擬位址、與 任何便於分享的其它資訊)給第二客人。 在方塊240中,第二客人接收分享資訊。在方塊20 -17- 1354205 中,第二客人發出複製指令。在方塊244中,處理署 驗證與目的地位址相關連的存取資訊。在方塊246 4 理器120將目的地虛擬位址轉譯成目的地實體位址。 塊248中’處理器120將來源虛擬位址轉換成來源養 址。在方塊250中,處理器120將來源實體位址所謁 記億體區的內容複製至目的地實體位址所識別的記 區。 在本發明的範圍之內,以不同的次序,將所示 省略、增加方塊,或是重新排序的、省略的、或增 塊之組合,執行方法200。舉例而言,處理器120 目的地虛擬位址之前或同時,轉譯來源虛擬位址, 重新配置方塊246及248。 可以在創造至模擬至製造等不同的階段中,設計 本發明的實施例設計之處理器120、或任何其它元件 件的部份。代表設計的資料可以以多種方式來代表設 φ 首先,如同在模擬中所使用般,可以使用硬體說明語 其它功能設計,代表硬體。增加地或替代地,在設計 的某些階段,可以產生具有邏輯及/或電晶體閘極之 層級模型。此外,在某階段,大部份的設計可以達到 由代表不同裝置的實體配置之資料模型化的程度。在 傳統的半導體製造技術之情形中,代表裝置配置模型 料可以是指明用以產生積體電路之光罩之不同光罩層 不同特點存在或不存在之資料。 在設計的任何代表中,資料可以儲存在任何形式 F 120 ,處 在方 體位 別的 憶體 方塊 的方 轉譯 如, 根據 或元 計。 言或 處理 電路 它們 使用 的資 上的 的機 -18- 1354205 - 器可讀取媒體。被調變或以其它方式產生以傳送此資訊之 光或電波、記億體、或例如碟片等磁或光儲存媒體可以是 機器可讀取的媒體。任何這些媒體可以「載送」或「標 示」本發明的實施例中所使用的設計、或其它資訊。當標 示或載送資訊之電載波被傳送至執行電訊號的複製、緩 衝、或再傳送之程度時,可以產生新的複製。如此,通訊 提供者或網路提供者的作動可以產生例如載波等.物件的複 • 製’具體實施本發明的技術。 如此,揭示在虛擬機環境中讓客人之間分享資訊之裝 置、方法、及系統。雖然已說明及於附圖中顯示某些實施 例’但是,要瞭解這些實施例僅是說明但非限定廣義的本 發明’以及,由於在硏讀本揭示後,一般習於此技藝者, 可以產生不同的其它修改,所以,本發明不限於所示及所 述的具體構造及配置。舉例而言,在本發明的其它實施例 中,請求分享資訊的實體可以註冊作爲來源而非目的地之 • 記憶體空間。 在此技術的領域中,成長快速且不易預期未來的進 步,所以,在不悖離本揭示的原理或後附的申請專利範圍 的範圍之下,所揭示的實施例可以容易地修改配置及細 節,以利於技術前進。 【圖式簡單說明】 藉由附圖中的實施例但非限定,說明本發明。 圖1係顯示虛擬架構中的本發明的實施例。 -19- 1354205 圖2係顯示用於在虛擬機環境中讓客人之間分享資訊 的方法中本發明的實施例。 【主要元件符號說明】 1〇〇 :虛擬化架構 1 10 :裸平台硬體 120 :處理器 φ 1 3 0 :記憶體 140 :虛擬機環境 150 :虛擬機 152 :客人作業系統 1 5 4 :客人應用 155 :客人應用 1 60 :虛擬機 162 :客人作業系統 φ I64 :客人應用 165 :客人應用 170 :虛擬機控制邏輯 171 :虛擬機進入邏輯 172:虛擬機離去邏輯 1 8 0 :執行單元 190 :記憶體管理單元 1 9 1 :轉譯邏輯 192 :分頁基底暫存器 -20- 1354205 193 :轉譯後備緩衝器 194:分享標籤儲存區 195 :多域轉譯邏輯

Claims (1)

1354205 7 附件3A :第096135531號申請專利範圍修正本 民國100年7月21 日修正 十、申請專利範圍 . I 一種用以在虛擬機環境中讓客人之間分享資訊的裝 置,包括: 虛擬機控制邏輯,以在主機與複數個客人之間,轉移 該裝置的控制; φ 執行單元,執行第一指令,以將資訊從該複數個客人 中的第二個客人的虛擬位址空間中的第二虛擬記憶體位址 複製至該複數個客人中的第一個客人的虛擬位址空間中的 第一虛擬記憶體位址,而不需要虛擬機跳出;及 記憶體管理單元,將該第一虛擬記憶體位址轉譯成第 一實體記憶體位址及將該第二虛擬記憶體位址轉譯成第二 實體記憶體位址。 2.如申請專利範圍第1項之裝置,其中,該記憶體管 ® 理單元包含第一儲存區,以儲存該第一虛擬記憶體位址的 第一部份及對應的該第一實體記憶體位址的第一部份。 3 .如申請專利範圍第2項之裝置,其中,該記憶體管 理單元包含轉譯後備緩衝器,該轉譯後備緩衝器包含該第 —儲存區。 4.如申請專利範圍第2項之裝置,其中,.該第一儲存 區包含標籤儲存區,以儲存該第一個客人的識別標誌。 5 .如申請專利範圍第2項之裝置,其中,該第一虛擬 記憶體位址的該第一部份爲第一虛擬頁碼,以及,對應的 1354205 該第一實體記憶體位址的該第一部份爲第一實體頁碼。 6. 如申請專利範圍第2項之裝置,其中,該執行單元 也執行第二指令,以將該第一虛擬記億體位址的該第一部 份儲存於該第一儲存區中。 7. 如申請專利範圍第6項之裝置,其中,該執行單元 也執行第三指令,以將該第一儲存區分配給該第一個客 人’以將該虛擬記憶體位址的該第一部份儲存於該第一儲 存區中。 8_如申請專利範圍第7項之裝置,其中,該虛擬機控 制邏輯包含離去邏輯,以將該裝置的控制轉移給該主機, 以回應於該複數個客人的其中之一發出該第三指令的嘗 試。 9 ·如申請專利範圍第1項之裝置,其中,該記憶體管 理單元是要轉譯使用用於該第一個客人的第一位址轉譯資 料結構之該第一虛擬記億體位址,以及,轉譯使用用於該 第二個客人的第二位址轉譯資料結構之該第二虛擬記憶體 位址》 10·如申請專利範圍第9項之裝置,又包括第一基底 位址儲存區,以儲存指向該第一位址轉譯資料結構的第一 指標。 11. 一種用以在虛擬機環境中讓客人之間分享資訊的 方法,包括: 第一個客人發出註冊指令,以註冊分享的記憶體空 間;及 -2- 1354205
第二個客人發出複製指令’以將該第二個客人的該記 億體空間的部份之內容複製至該分享的記憶體空間,而不 需要虛擬機跳出。 12·如申請專利範圍第11項之方法,又包括客機發出 分配命令,以將該分享的記億體空間分配給該第一個客 人。 13.如申請專利範圍第12項之方法,又包括分配轉譯 • 後備緩衝器中的登錄給與該分享的記憶體空間相關連的位 址轉譯。 1 4 .如申請專利範圍第1 3項之方法,又包括將該第一 個客人的識別標誌儲存於與該轉譯後備緩衝器中的該登錄 相關連的標籤儲存區中。 15.如申請專利範圍第12項之方法,又包括將與該分 享的記憶體空間相關連的安全鑰歸還給該第一個客人。 1 6.如申請專利範圍第1 1項之方法,又包括將識別該 ^ 分享的記憶體空間之第一虛擬記憶體位址儲存於轉譯後備 緩衝器中。 17.如申請專利範圍第16項之方法,又包括將該第一 虛擬記憶體位址轉譯成識別該分享的記億體空間之第一實 體記憶體位址。 1 8 .如申請專利範圍第1 7項之方法,又包括將識別該 第二個客人的該記億體空間的該部份之第二虛擬記億體位 址轉譯,以產生識別該第二個客人的該記億體空間的該部 份之第二實體記億體位址。 -3- 1354205 19.—種用以在虛擬機環境中讓客人之間分享資訊的 系統,包括: 記億體,以儲存要在第一個客人與第二個客人之間所 分享的資訊;及 處理器,包含’· 虛擬機控制邏輯,以在主機、該第一個客人、與 該第二個客人之間,轉移處理器的控制; 執行單元,執行第一指令,以將資訊從該第二個 客人的虛擬位址空間中的第二虛擬記億體位址複製至該第 —個客人的虛擬位址空間中的第一虛擬記憶體位址,而不 需要虛擬機跳出:及 記憶體管理單元,將該第一虛擬記憶體位址轉譯 成第一實體記憶體位址及將該第二虛擬記憶體位址轉譯成 第二實體記憶體位址。 20.如申請專利範圍第1 9項之系統,其中,該記億體 爲動態隨機存取記憶體。
TW096135531A 2006-09-22 2007-09-21 Sharing information between guests in a virtual ma TWI354205B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/525,980 US7490191B2 (en) 2006-09-22 2006-09-22 Sharing information between guests in a virtual machine environment

Publications (2)

Publication Number Publication Date
TW200832135A TW200832135A (en) 2008-08-01
TWI354205B true TWI354205B (en) 2011-12-11

Family

ID=39200816

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096135531A TWI354205B (en) 2006-09-22 2007-09-21 Sharing information between guests in a virtual ma

Country Status (7)

Country Link
US (1) US7490191B2 (zh)
JP (1) JP5214611B2 (zh)
CN (2) CN101187902B (zh)
DE (1) DE112007001988T5 (zh)
HK (1) HK1149343A1 (zh)
TW (1) TWI354205B (zh)
WO (1) WO2008036390A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI513309B (zh) * 2012-07-25 2015-12-11 Echostar Technologies Llc 用於轉頻器堆疊之系統及方法
US9727480B2 (en) 2014-07-21 2017-08-08 Via Alliance Semiconductor Co., Ltd. Efficient address translation caching in a processor that supports a large number of different address spaces

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971104B2 (en) * 2006-10-24 2011-06-28 Shlomi Dolev Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US8156503B2 (en) * 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
WO2009145764A1 (en) * 2008-05-28 2009-12-03 Hewlett-Packard Development Company, L.P. Providing object-level input/output requests between virtual machines to access a storage subsystem
CN101751345B (zh) * 2008-12-10 2012-04-11 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
US20100228943A1 (en) * 2009-03-04 2010-09-09 Freescale Semiconductor, Inc. Access management technique for storage-efficient mapping between identifier domains
US8473644B2 (en) * 2009-03-04 2013-06-25 Freescale Semiconductor, Inc. Access management technique with operation translation capability
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8806496B2 (en) * 2009-09-30 2014-08-12 Intel Corporation Virtualizing a processor time counter during migration of virtual machine by determining a scaling factor at the destination platform
US8831993B2 (en) * 2010-03-19 2014-09-09 Novell, Inc. Techniques for sharing virtual machine (VM) resources
US8392628B2 (en) 2010-07-16 2013-03-05 Hewlett-Packard Development Company, L.P. Sharing memory spaces for access by hardware and software in a virtual machine environment
EP3043269B1 (en) * 2010-09-24 2017-07-26 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
US8966478B2 (en) * 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
US9317441B2 (en) 2011-12-22 2016-04-19 Intel Cororation Indexed page address translation to reduce memory footprint in virtualized environments
US20140007098A1 (en) * 2011-12-28 2014-01-02 Paul M. Stillwell, Jr. Processor accelerator interface virtualization
US9323533B2 (en) * 2011-12-29 2016-04-26 Intel Corporation Supervisor mode execution protection
WO2013101208A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Hardware enforced memory access permissions
US8819648B2 (en) 2012-07-20 2014-08-26 International Business Machines Corporation Control flow management for execution of dynamically translated non-native code in a virtual hosting environment
US9606818B2 (en) * 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
CN103618809A (zh) * 2013-11-12 2014-03-05 华为技术有限公司 一种虚拟化环境下通信的方法、装置和系统
EP3935931A1 (en) 2014-02-10 2022-01-12 The Climate Corporation Methods and systems for generating shared collaborative maps
US9792222B2 (en) 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
CN104216801B (zh) * 2014-09-04 2017-06-16 北京联创信安科技股份有限公司 一种面向虚拟化环境的数据复制方法及系统
CN105141694B (zh) * 2015-09-11 2018-10-12 广东微云科技股份有限公司 一种云桌面共享数据的方法及系统
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
US10109099B2 (en) * 2016-09-29 2018-10-23 Intel Corporation Method and apparatus for efficient use of graphics processing resources in a virtualized execution enviornment
US11334379B2 (en) * 2017-02-24 2022-05-17 Kabushiki Kaisha Toshiba Control device
US11194735B2 (en) * 2017-09-29 2021-12-07 Intel Corporation Technologies for flexible virtual function queue assignment
CN108196501A (zh) * 2017-12-22 2018-06-22 北京东土科技股份有限公司 一种基于plc的分布式控制系统的容灾方法、装置和系统
CN110162377A (zh) * 2018-02-14 2019-08-23 华为技术有限公司 一种通信方法和逻辑处理器
CN110392084B (zh) * 2018-04-20 2022-02-15 伊姆西Ip控股有限责任公司 在分布式系统中管理地址的方法、设备和计算机程序产品
CN109240602B (zh) * 2018-08-06 2021-01-15 联想(北京)有限公司 数据存取方法
CN114595164B (zh) * 2022-05-09 2022-08-16 支付宝(杭州)信息技术有限公司 在虚拟化平台中管理tlb高速缓存的方法和装置
CN114791854B (zh) * 2022-05-11 2023-03-24 科东(广州)软件科技有限公司 用户态虚拟机任务的调度方法、装置、设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
EP0721621B1 (en) * 1993-09-30 2002-01-30 Apple Computer, Inc. System for decentralized backing store control of virtual memory in a computer
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
JPH0822418A (ja) * 1994-07-07 1996-01-23 Mitsubishi Electric Corp 仮想アドレス空間管理装置
US5621912A (en) * 1994-12-29 1997-04-15 International Business Machines Corporation Method and apparatus for enabling monitoring of guests and native operating systems
US6029237A (en) * 1997-10-08 2000-02-22 Dell Usa, L.P. Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive
US6453392B1 (en) 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US6961806B1 (en) 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
JP2005044363A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd 複数のスレッドを同時に処理する装置及び方法
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7334076B2 (en) 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI513309B (zh) * 2012-07-25 2015-12-11 Echostar Technologies Llc 用於轉頻器堆疊之系統及方法
US9736436B2 (en) 2012-07-25 2017-08-15 Echostar Technologies L.L.C. Systems and methods for transponder stacking
US9727480B2 (en) 2014-07-21 2017-08-08 Via Alliance Semiconductor Co., Ltd. Efficient address translation caching in a processor that supports a large number of different address spaces
US9760496B2 (en) 2014-07-21 2017-09-12 Via Alliance Semiconductor Co., Ltd. Simultaneous invalidation of all address translation cache entries associated with an X86 process context identifier
US9842055B2 (en) 2014-07-21 2017-12-12 Via Alliance Semiconductor Co., Ltd. Address translation cache that supports simultaneous invalidation of common context entries

Also Published As

Publication number Publication date
CN101187902B (zh) 2010-06-16
US7490191B2 (en) 2009-02-10
CN101187902A (zh) 2008-05-28
TW200832135A (en) 2008-08-01
WO2008036390A1 (en) 2008-03-27
CN101872328B (zh) 2013-06-19
HK1149343A1 (en) 2011-09-30
CN101872328A (zh) 2010-10-27
DE112007001988T5 (de) 2009-06-18
US20080077765A1 (en) 2008-03-27
JP2010503115A (ja) 2010-01-28
JP5214611B2 (ja) 2013-06-19

Similar Documents

Publication Publication Date Title
TWI354205B (en) Sharing information between guests in a virtual ma
EP1959348B1 (en) Address translation in partitioned systems
JP7158985B2 (ja) セキュアなパブリッククラウドのための暗号メモリオーナーシップテーブル
JP5870206B2 (ja) 効率的なメモリ及びリソース管理
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
KR101179341B1 (ko) 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행
TW202226782A (zh) 包括增強型密碼位址之密碼運算技術
CN112148425A (zh) 信任域架构内的信任域内部的可缩放虚拟机操作
TW200403568A (en) Logical partition hosted virtual input/output using shared translation control entries
TW200818019A (en) Delivering interrupts directly to a virtual processor
TW201732607A (zh) 用於輸入/輸出裝置之可縮放虛擬化的位址轉譯
CN106716435B (zh) 设备与安全处理环境之间的接口
US10713081B2 (en) Secure and efficient memory sharing for guests
US10331591B2 (en) Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention
JP7436495B2 (ja) セキュア・ストレージの分離
JP2023047278A (ja) トランスフォーマ鍵識別子を使用する仮想機械マネージャによる信頼されたドメイン保護メモリへのシームレスなアクセス
CN113544652A (zh) 具有页改变检测的安全分页
US20070220231A1 (en) Virtual address translation by a processor for a peripheral device
US20220214909A1 (en) Hypervisor-managed linear address translation and memory integrity
JP7425786B2 (ja) メモリ・アクセス制御

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees