TW201339971A - 虛擬機器控制結構陰影化技術 - Google Patents

虛擬機器控制結構陰影化技術 Download PDF

Info

Publication number
TW201339971A
TW201339971A TW101150579A TW101150579A TW201339971A TW 201339971 A TW201339971 A TW 201339971A TW 101150579 A TW101150579 A TW 101150579A TW 101150579 A TW101150579 A TW 101150579A TW 201339971 A TW201339971 A TW 201339971A
Authority
TW
Taiwan
Prior art keywords
virtual machine
root
processor
root mode
instruction
Prior art date
Application number
TW101150579A
Other languages
English (en)
Other versions
TWI620124B (zh
Inventor
Andrew V Anderson
Gilbert Neiger
Scott D Rodgers
Lawrence O Smith Iii
Richard A Uhlig
Steven M Bennett
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 TW201339971A publication Critical patent/TW201339971A/zh
Application granted granted Critical
Publication of TWI620124B publication Critical patent/TWI620124B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

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

Abstract

本案揭示用於處理虛擬機器控制結構陰影化技術的裝置及方法之實施例。在一個實施例中,一裝置包括指令硬體、執行硬體,以及控制邏輯。指令硬體將接收指令。第一指令將處理器自根模式轉移至非根模式。非根模式用於在虛擬機器中執行訪客軟體,其中處理器在偵測到虛擬機器退出事件時返回至根模式。第二指令將存取用於控制虛擬機器之資料結構。執行硬體將執行指令。當該第二指令執行於該非根模式中時,控制邏輯使該處理器在不返回至該根模式來執行存取的狀況下存取陰影資料結構而非存取該資料結構。

Description

虛擬機器控制結構陰影化技術 發明領域
本發明係關於資訊處理領域,且更具體而言,係關於虛擬化資訊處理系統中的資源之領域。
發明背景
一般而言,雖然每一作業系統(「OS」)被設計成具有對系統及其資源之完全的、直接的控制權,但資訊處理系統中的資源虛擬化概念允許一或多個作業系統(每一,「OS」)之多個實例運行於單一資訊處理系統上。虛擬化通常藉由使用軟體(如,虛擬機器監視程式或「VMM」)來向每一OS提供「虛擬機器」(「VM」),該虛擬機器具有虛擬資源,包括OS可完全及直接控制的一或多個虛擬處理器,同時VMM維護用於實施虛擬化政策(諸如在VM中共用及/或分配實體資源)之一系統環境(「虛擬化環境」)。運行於VM上的每一OS及任何其他軟體稱為「訪客」或「訪客軟體」,而「主機」或「主機軟體」係運行於虛擬化環境外部的軟體,諸如VMM。
資訊處理系統中之處理器可例如藉由以兩種模 式操作而支援虛擬化:「根」模式,其中軟體直接運行於硬體上,且在任何虛擬化環境之外部;及「非根」模式,其中軟體運行於其所期望的特權級,但在由運行於根模式之VMM代管的虛擬化環境內。在虛擬化環境中,某些事件、操作及狀況(諸如外部中斷或存取特權暫存器或資源之企圖)可被攔截,即,導致處理器退出虛擬化環境以便VMM可操作(例如)來實施虛擬化政策(「VM退出」)。處理器可支援用於建立、進入、退出及維護虛擬化環境之指令,及可包括指示或控制處理器之虛擬化能力的暫存器位元或其他結構。
依據本發明之一實施例,係特地提出一種處理器,該處理器包含:指令硬體,該指令硬體接收多個指令,該等指令包括:一第一指令,該第一指令將該處理器自一根模式轉移至一非根模式以用於在至少一個虛擬機器中執行訪客軟體,其中該處理器在偵測到多個虛擬機器退出事件中任一者時需返回至該根模式,以及一第二指令,該第二指令存取用於控制該至少一個虛擬機器的至少一個資料結構;執行硬體,該執行硬體執行該第一指令及該第二指令;以及控制邏輯,當該第二指令執行於該非根模式中時,該控制邏輯使該處理器在不返回至該根模式來執行存取的狀況下存取一陰影資料結構而非存取該至少一個資料結構。
100‧‧‧分層虛擬化架構
110‧‧‧裸平台硬體
120‧‧‧處理器
122‧‧‧指令硬體
124‧‧‧執行硬體
126‧‧‧控制邏輯
130‧‧‧記憶體
132‧‧‧虛擬機器控制結構(VMCS)
134‧‧‧陰影VMCS
140‧‧‧虛擬機器監視程式(VMM)
150‧‧‧虛擬機器(VM)
152‧‧‧訪客作業系統(OS)
154、155‧‧‧訪客應用程式
160、170、180‧‧‧VM
162‧‧‧訪客VMM
172、182‧‧‧訪客OS
210‧‧‧裸平台硬體
220‧‧‧VMM
221、241、251、261‧‧‧VMCS
222、232、242、252、262‧‧‧父代指標
223、233、243、253、263‧‧‧子代指標
234、244、254、264‧‧‧事件位元欄位
235、245、255、265‧‧‧VMCS陰影化賦能欄位
236、246、256、266‧‧‧VMCS陰影化地址欄位
240‧‧‧訪客VMM
260‧‧‧訪客
300、400、500‧‧‧方法
310、312、314、320、322、330、332、340、342、344、346、350、352、354、356‧‧‧方框
410、412、414、420、422、432、440、442、444、446、452、454、456‧‧‧方框
510、512、514、520、522、532、540、542、544、546、550、552、554、556‧‧‧方框
本發明在附圖中藉由實例而非限制來進行例示。
圖1例示分層虛擬化架構,本發明之實施例可於該架構中操作。
圖2例示分層虛擬化架構中的VMM之訪客階層。
圖3、圖4及圖5例示根據本發明之實施例的用於VMCS陰影化的方法。
較佳實施例之詳細說明
下文描述用於虛擬機器控制結構陰影化技術的處理器、方法及系統的實施例。在此描述中,可陳述眾多特定細節(諸如組件及系統組態)以提供對本發明的更徹底的理解。然而,熟習此項技術者應瞭解,本發明可在無此等特定細節的狀況下實踐。此外,未詳細展示一些眾所周知的結構、電路及類似物以避免不必要地模糊本發明。
虛擬化環境之效能可藉由降低VM退出頻率而得到改善。本發明之實施例可用於降低在分層、巢套或遞迴虛擬化環境中的VM退出頻率,該虛擬化環境即虛擬機器監視程式或超管理器可在非根模式中在虛擬機器上運行訪客且創建、管理及/或以其他方式代管一或多個其他虛擬機器之虛擬化環境。
圖1例示分層虛擬化架構100,本發明之實施例可於該架構中操作。在圖1中,裸平台硬體110可為能夠執行任何OS、VMM或其他軟體之任何資訊處理裝置。舉例而言,裸平台硬體110可為個人電腦、大型電腦、可攜式電腦、 手持型裝置、機上盒或任何其他計算系統之硬體。裸平台硬體110包括處理器120及記憶體130。
處理器120可為任何類型之處理器,包括通用微處理器(諸如來自英特爾公司的Core®處理器系列、Atom®處理器系列或其他處理器系列中的處理器),或者來自另一公司的另一處理器或數位信號處理器或微控制器。雖然圖1僅展示一個此處理器120,但裸平台硬體110可包括任何數目的處理器,包括任何數目的多核心處理器,其中每一多核心處理器皆具有任何數目的執行核心及任何數目的多執行緒處理器,其中每一處理器皆具有任何數目的執行緒。
記憶體130可為靜態或動態隨機存取記憶體、基於半導體的唯讀或快閃記憶體、磁性或光學碟片記憶體、可由處理器120讀取的任何其他類型之媒體,或者此等媒體之任何組合。裸平台硬體110之處理器120、記憶體130及任何其他組件或裝置可根據任何已知方法來彼此耦接或通訊,諸如直接或間接經由一或多個匯流排、點對點、或者其他有線或無線連接來進行。裸平台硬體110亦可包括任何數目之額外裝置或連接。
此外,處理器120包括指令硬體122、執行硬體124及控制邏輯126。指令硬體122可包括任何電路或其他硬體(諸如解碼器)來接收及/或解碼用於由處理器120執行之指令。執行硬體124可包括任何電路或其他硬體(諸如算術邏輯單元)來執行處理器120之指令。執行硬體可包括控制邏輯126或受該控制邏輯126控制。控制邏輯126可為微碼、可 規劃邏輯、硬編碼邏輯或處理器120內的任何其他形式之控制邏輯。在其他實施例中,控制邏輯126可以任何形式之硬體、軟體或韌體來實施,諸如處理器內或可由處理器存取之任何組件或可由處理器讀取之媒體內(諸如記憶體130)的處理器抽象層。控制邏輯126可使執行邏輯124執行本發明之方法實施例,諸如以下描述之方法實施例,例如,藉由使處理器120包括回應於虛擬化指令或虛擬化事件而執行一或多個微操作,或以其他方式使處理器120執行本發明之方法實施例,如以下描述。
除裸平台硬體110之外,圖1亦例示VMM 140, 該VMM係「根模式」主機或監視程式,因為該VMM於處理器120上以根模式運行。VMM 140可為安裝於裸平台硬體110上或可為該裸平台硬體存取之任何軟體、韌體或硬體主機,其向訪客提供VM(即,裸平台硬體110之抽象化)或以其他方式創建VM、管理VM及實施虛擬化政策。在其他實施例中,根模式主機可為任何監視程式、超管理器、OS或能控制裸平台硬體110之其他軟體、韌體或硬體。
訪客可為任何OS、任何VMM(包括VMM 140之 另一實例)、任何超管理器或任何應用程式或其他軟體。每一訪客期待存取實體資源,根據處理器之架構及VM中存在之平台,諸如裸平台硬體110之處理器及平台暫存器、記憶體及輸入/輸出裝置。圖1展示VM 150、VM 160、VM 170及VM 180,其中訪客OS 152及訪客應用程式154及訪客應用程式155安裝於VM 150上、訪客VMM 162安裝於VM 160 上、訪客OS 172安裝於VM 170上及訪客OS 182安裝於VM 180上。在此實施例中,所有訪客運行於非根模式下。雖然圖1展示四個VM及六個訪客,但在本發明之範疇內,可創建任何數目之VM及可將任何數目的訪客安裝於每一VM上。
虛擬化架構100係「分層」、「巢套」或「遞迴」 的,因為該架構允許一個VMM(例如,VMM 140)來代管另一VMM(例如,作為訪客的VMM 162)。在分層虛擬化架構100中,VMM 140係包括VM 150及VM 160的虛擬化環境之主機,且在任何虛擬化環境中皆不為訪客,因為該VMM係安裝於裸平台硬體110上,在該VMM與裸平台硬體110之間無「中間」監視程式。「中間」監視程式為監視程式(諸如VMM 162),該監視程式代管訪客(諸如訪客OS 172),但該監視程式本身亦為訪客。VMM 162為包括VM 170及VM 180的虛擬化環境之主機,但亦為由VMM 140代管之虛擬化環境中的訪客。中介監視程式(如,VMM 162)在文中稱為父代訪客,因為該中介監視程式充當另一VM(或VM階層)之父代以及下層VMM之訪客兩者(如,VMM 140為VMM 162之父代,而VMM 162為訪客172及訪客182之父代)。
若在監視程式(諸如VMM 140)與訪客之間不存 在中介監視程式,則該監視程式稱為諸如OS 152、訪客應用程式154、訪客應用程式155及訪客VMM 162之訪客的「父代」。訪客稱為彼監視程式之「子代」。訪客可為子代以及父代兩者。舉例而言,訪客VMM 162為VMM 140之子代及 訪客OS 172與訪客OS 182之父代。
可由訪客存取之資源可分類成「特權」資源或「非 特權」資源。對於特權資源而言,主機(如,VMM 140)促進訪客期望之功能性,同時保留對資源之最終控制。非特權資源不需要由主機控制及可由訪客直接存取。
此外,每一訪客OS預計處置各種事件,諸如異 常(如,尋頁錯失及一般保護錯誤)、中斷(如,硬體中斷及軟體中斷)及平台事件(如,初始化及系統管理中斷)。此等異常事件、中斷事件及平台事件在文中統稱及個別地稱為「事件」。此等事件中的一些為「特權的」,因為該等事件必須由主機處置來確保VM之適當操作、保護主機防止訪客破壞及保護訪客防止訪客彼此破壞。
在任何給定時間,處理器120可執行來自VMM 140或任何訪客之指令,因此VMM 140或訪客可為有效的且運行於處理器120上或受處理器120控制。當特權事件發生或訪客企圖存取特權資源時,VM退出可發生,從而將控制權自訪客轉移至VMM 140。在適當地處置事件或促進對資源的存取之後,VMM 140可將控制權交還給訪客。自主機至訪客的控制權轉移(包括至初始轉移至新創建之VM)在文中稱為「VM進入」。經執行而將控制權轉移至VM的指令可統稱為「VM進入」指令,且例如,可包括在Core®處理器系列中之處理器的指令集架構中的VMLAUCH及VMRESUME指令。
如上所述,除了VM退出使控制權自訪客轉移至 根模式主機之外,本發明之實施例亦提供VM退出而使控制權自訪客轉移至非根模式主機,諸如中介監視程式。在本發明之實施例中,虛擬化事件(即,可使VM退出之任何東西)可分類成「自上而下」或「自下而上」虛擬化事件。
「自上而下」虛擬化事件為其中藉由以有效訪客 之父代開始及朝向根模式主機進行來執行判定在VM退出時哪個主機接收控制權的一個事件。自上而下虛擬化事件可為經由有效訪客之作用而發起之虛擬化事件,包括執行虛擬化指令,諸如在Core®處理器系列中的處理器之指令集架構中的CPUID指令。在一個實施例中,根模式主機可具有忽略對一或多個虛擬化事件的自上而下虛擬化事件處理之能力。在此實施例中,雖然虛擬化事件將經處置為與所有中間VMM有關的自上而下虛擬化事件,但虛擬化事件可使VM退出至根模式主機。
「自下而上」虛擬化事件為其中在相反方向 (如,自根模式主機朝向有效訪客之父代)上執行判定在VM退出時哪個主機接收控制權的一個事件。自下而上虛擬化事件可為由下層平台之動作(如,硬體中斷及系統管理中斷)發起之虛擬化事件。在一個實施例中,處理器異常被當做自下而上虛擬化事件。舉例而言,在有效訪客執行期間發生之尋頁錯失異常總是以自下而上形式評估。此自下而上處理可應用於所有處理器異常或其子集。
此外,在一個實施例中,VMM具有將事件(如,中斷或異常)注入其訪客或以其他方式誘發此等事件之能 力。在此實施例中,可藉由在誘發虛擬化事件之VMM之上方開始而非自根模式主機開始來執行判定在VM退出時哪個主機接收控制權。
在圖1之實施例中,處理器120根據儲存於虛擬機器控制結構(「VMCS」)132中之資料來控制VM之操作。VMCS 132係一資料結構,該資料結構可含有訪客之狀態、VMM 140之狀態、指示VMM 140如何控制訪客之操作的執行控制資訊、關於VM退出及VM進入的資訊、任何其他此資訊。處理器120自VMCS 132讀取資訊來判定VM之執行環境及約束VM之行為。在此實施例中,VMCS 132儲存於記憶體130中。在一些實施例中,如以下描述,使用多個VMCS支援多個VM。
圖1亦展示在此實施例中之記憶體130中的陰影VMCS 134,該陰影VMCS如以下描述而經創建、維護及存取。陰影VMCS 134可具有與非陰影VMCS之VMCS相同的大小、結構、組織或任何其他特徵。在一些實施例中,可存在多個陰影VMCS,例如,每訪客一個。在以下描述的方法實施例中,陰影VMCS 134為VMCS 251之陰影版本;然而,可創建另一陰影VMCS(未展示)來充當VMCS 261之陰影版本。
VMM之「訪客階層」為軟體之堆疊,其經安裝以運行於虛擬化環境或由VMM支援的環境內。本發明可以虛擬化架構來體現,在該虛擬化架構中,訪客階層包括VMCS之間的指標鏈。此等指標當自子代VMCS指向父代 VMCS時稱為「父代指標」,而當自父代VMCS指向子代VMCS時稱為「子代指標」。在VMM之訪客階層中,在VMM與有效訪客之間可存在一或多個中介監視程式。較接近訪客階層經考量的VMM之中介監視程式稱為比相對更接近有效訪客之中介監視程式「低」。
圖2例示VMM 220之訪客階層,該VMM 220被安 裝為裸平台硬體210上之根模式主機。雖然根模式主機可於無控制結構的狀況下操作,但VMCS 221為VMM 220之控制結構。訪客230為VMM 220之子代,受VMCS 231控制。因此,父代指標(「PP」)232指向VMCS 221。訪客240亦為VMM 220之子代,受VMCS 241控制。因此,父代指標242亦指向VMCS 221。
訪客240本身為VMM,其具有兩個子代,訪客250 及訪客260,每一者分別具有VMCS 251及VMCS 261。父代指標252及父代指標262皆指向VMCS 241。
有效或正在運行之訪客的VMCS被該訪客之父 代的VMCS之子代指標指向。因此,圖2展示子代指標243指向VMCS 251以指示訪客250為有效的。類似地,具有有效子代指標而非空子代指標之訪客的VMCS由該訪客之父代的VMCS之子代指標指向。因此,圖2展示子代指標223指向VMCS 241。因此,父代指標鏈經由任何中介監視程式之VMCS而將有效訪客之VMCS連結至根模式主機之VMCS,且子代指標鏈經由任何中介監視程式之VMCS而將根模式主機之VMCS連結至有效訪客之VMCS。
VMCS 221在文中稱為「根VMCS」。如以上描 述,在一實施例中,不存在根VMCS。在包括根VMCS之實施例中,處理硬體可在內部暫存器或其他資料結構中維護指向根VMCS之指標。如上所述,有效訪客之VMCS在文中稱為當前控制VMCS。舉例而言,當訪客250為有效時,VMCS 251為當前控制VMCS。在一實施例中,處理硬體可在內部暫存器或其他資料結構中維護指向當前控制VMCS之指標。
若VMCS非父代VMCS,則其子代指標(諸如子代 指標233、253及263)可為空指標。若VMCS不具有父代,例如,若該VMCS為根模式VMCS,則其父代指標(諸如父代指標222)可為空指標。或者,此等指標可省略。在一些實施例中,空VMCS指標之「空」值可為零。在其他實施例中,其他值可解釋為「空」。舉例而言,在一個實施例中,對於32位元位址,值0xffffffff可解釋為空。
圖2中每一訪客之VMCS包括位元、欄位或其他 資料結構(「事件位元」)以指示若特定虛擬化事件發生則訪客之父代是否想要控制權。每一VMCS可包括任何數目之此等位元或欄位來對應於任何數目的虛擬化事件。任何數目之事件位元可組織在一起或以其他方式稱為事件位元欄位。圖2展示事件位元欄位264、254、244及234。
根據各種方法,每一訪客之VMCS可包括或涉及 位元、欄位或其他資料結構來賦能及控制VMCS陰影化。舉例而言,控制訪客VMM之父代VMCS(如,VMCS 241)可包 括單一位元(如,245)以賦能子代VMCS(如,VMCS 251)之陰影化,及可包括欄位(如,246)以指定對應陰影VMCS(如,指向陰影VMCS 134之指標)之位置。換言之,若VMCS陰影化由位元245賦能,若訪客VMM 240企圖經由VMWRITE、VMREAD或其他手段存取子代VMCS 251,則存取可引導至陰影VMCS 134而非子代VMCS 251。
作為對單一賦能位元(如,245)之替代或與該單 一賦能位元相結合,父代VMCS可包括或涉及(如,以指標而言)一對位元映像,一個位元映像用於讀取而一個用於寫入,其中每一位元對應於VMCS之特定欄位以選擇性地(藉由VMCS欄位)賦能或去能子代的VMCS陰影化。
因此,圖2中之VMCS陰影化賦能欄位265、255、 245及235以及VMCS陰影位址欄位266、256、246及236可各自表示單一位元、位元欄位、位元映像或任何其他資料結構,且可包括在以下方法實施例之描述涉及的位元、位元映像及/或指標。在不同實施例中,VMCS陰影化賦能欄位在大小、結構、組織或其他特徵上的改變可為VMCS陰影化提供任何期望之粒度層級。
若VMCS陰影化未賦能,則根VMM 220維護在其 訪客階層之訪客的所有VMCS(如,VMCS 231、241、251及261),且中介監視程式(如,訪客VMM 240)創建(如,藉由執行在Core®處理器系列中的處理器之指令集架構中的VMPTRLD指令)或維護(如,藉由執行VMWRITE指令)其訪客(如,VMCS 251或261)之一的VMCS的任何企圖由根 VMM 220攔截及處置。中介監視程式執行VM進入(如,藉由執行VMLAUNCH或VMRESUME指令)之企圖亦由根VMM 220攔截以用於仿真。中介監視程式對其訪客之一的VMCS之存取企圖(例如,VMREAD及VMWRITE指令)使VM退出至根VMCS以仿真存取指令,且此等VM退出中每一者增加用於轉變、用於執行VMM處理程式程式碼的潛時,且歸因於轉變而導致的轉譯後援緩衝器及快取記憶體之內容的改變。此等VM退出之淨影響可能顯著地降低效能。
因此,如在本發明之方法實施例的以下描述中所 陳述,本發明之實施例提供陰影VMCS之創建及維護,該陰影VMCS可在不使VM退出至根VMM的狀況下由中介監視程式存取。控制邏輯126可藉由在不使VM退出的狀況下重定向中介監視程式之存取企圖來提供對陰影VMCS之存取。
圖3、圖4及圖5分別例示用於根據本發明之實施 例的VMCS陰影化的方法300、400及500。此等方法之描述涉及圖1及圖2之元件。具體而言,在此等描述中,涉及創建及維護VMCS 251之陰影VMCS 134,以便訪客VMM 240可在不使VM退出至根VMM 220的狀況下存取陰影VMCS 134。然而,本發明之實施例可不同於描述之實施例;例如,陰影VMCS亦可針對VMCS 261創建及維護,以便訪客VMM 240可在不使VM退出至根VMM 220的狀況下存取彼陰影VMCS。類似地,第一訪客VMM可創建處於第一訪客VMM之訪客階層中的第二訪客VMM的陰影VMCS。在描述之實 施例中,方法300、400及500開始於根VMM 220已將控制權轉移至訪客VMM 240之後,及以訪客VMM 240在由VMCS 251控制的VM中執行而結束。
在圖3之方框310,訪客VMM 240企圖執行指令 (如,VMPTRLD)以指定VMCS(如,VMCS 251)來控制一VM,其中訪客(如,訪客250)可於該VM中執行。在方框312,藉由企圖在VM內執行VMPTRLD指令而使VM退出至根VMM 220。在方框314,根VMM 220為訪客VMM 240創建VMCS(如,VMCS 251)。
在方框320,根VMM 220分配用於陰影 VMCS(如,記憶體130中之陰影VMCS 134)之記憶體。在方框322,根VMM 220設定VMCS 241中之指示符(如,VMCS陰影化賦能欄位245中之控制位元)來賦能VMCS陰影化,及將VMCS陰影位址欄位246設定至在方框320中分配之陰影VMCS之位址。
在圖3之方法實施例300中,VMCS陰影化賦能欄 位255包括兩個位元映像,一個用於VMCS讀取(「VMREAD陰影化位元映像」)而一個用於VMCS寫入(「VMWRITE陰影化位元映像」)。每一位元映像包括在VMCS 251中之每一欄位之賦能位元。因此,VMCS陰影化可藉由設定在VMREAD陰影化位元映像中之對應賦能位元來選擇性被賦能來讀取VMCS 251中之任何欄位,以及可藉由設定在VMWRITE陰影化位元映像中之對應賦能位元來選擇性被賦能來寫入VMCS 251中之任何欄位。同一欄位可賦能陰影 化來讀取而非寫入,或者用於寫入而非讀取。
在方框330,根VMM 220藉由設定對應於期望陰影化之每一欄位的賦能位元而組配VMCS 251中之VMREAD陰影化位元映像及VMWRITE陰影化位元映像。在方框332,根VMM 220使VM進入將控制權交還給訪客VMM 240(如,藉由執行VMRESUME指令)。
在方框340,訪客VMM 240企圖存取(如,藉由執行VMREAD或VMWRITE指令)VMCS 251中陰影化被賦能之欄位。在方框342,允許訪客VMM 240存取陰影VMCS 134中之對應欄位。在方框344,訪客VMM 240企圖存取VMCS 251中未賦能陰影化之欄位。在方框346,藉由企圖存取未賦能陰影化之VMCS欄位而使VM退出至根VMM 220。
只要VM退出不發生於方框346之前,在方框340與方框344之間,任何數目之陰影化被賦能之存取可發生,且任何數目的其他指令可由訪客VMM 240或在訪客VMM 240之訪客階層中的任何訪客執行。又,可藉由除方框344中之事件之外的事件而使VM退出。
在方框350,根VMM 220更新VMCS 251以反映(,例如由於方框342,由訪客VMM 240對陰影VMCS 134之任何寫入。在方框352,根VMM 220為訪客VMM 240仿真或以其他方式處置方框344中之存取企圖,以及執行處置VM退出所必需或期望之任何其他動作。在方框354,根VMM 220更新陰影VMCS 134以反映在方框352中處置VM退出期間對VMCS 251之任何改變。在方框356,根VMM 220 使VM進入將控制權交還給訪客VMM 240(如,藉由執行VMRESUME指令)。
在其他實施例中,VMCS 251與陰影VMCS 134 之同步(如,在方框350至方框354中所描繪),根VMM 220可在不同時間更新VMCS,例如,同步不需要回應於自具有陰影化VMCS之訪客的VM退出而發生,但可替代地回應於進入該訪客的下一次VM進入而稍後發生。
在圖4之方法實施例400中,所有VMREAD被陰 影化且無VMWRITE被陰影化。
在圖4之方框410,訪客VMM 240企圖執行指令 (如,VMPTRLD)以指定VMCS(如,VMCS 251)來控制一VM,其中訪客(如,訪客250)可於該VM中執行。在方框412,藉由企圖在VM內執行VMPTRLD指令而使VM退出至根VMM 220。在方框414,根VMM 220為訪客VMM 240創建VMCS(如,VMCS 251)。
在方框420,根VMM 220分配用於陰影 VMCS(如,記憶體130中的陰影VMCS 134)之記憶體。在方框422,根VMM 220設定VMCS 241中之指示符(如,VMCS陰影化賦能欄位245中之控制位元)來賦能VMCS陰影化,及將VMCS陰影位址欄位246設定為在方框420分配的陰影VMCS之位址。在方框432,根VMM 220使VM進入將控制權交還給訪客VMM 240(如,藉由執行VMRESUME指令)。
在方框440,訪客VMM 240企圖讀取(如,藉由執行VMREAD指令)VMCS 251中之欄位。在方框442,允許訪 客VMM 240讀取陰影VMCS 134中之對應欄位。在方框444,訪客VMM 240企圖寫入(如,藉由執行VMWRITE指令)VMCS 251中的欄位。在方框446,藉由企圖寫入VMCS欄位而使VM退出至根VMM 220。
只要VM退出不發生於方框446之前,在方框440 與方框444之間,任何數目之VMCS讀取可發生且任何數目之其他指令(除VMWRITE之外)可由訪客VMM 240或在訪客VMM 240之訪客階層中的任何訪客執行。此外,可藉由除方框444中的事件之外的事件而使VM退出。
在方框452,根VMM 220為訪客VMM 240仿真或 以其他方式處置方框344中之VMCS寫入企圖,以及執行處置VM退出所必需或期望之任何其他動作。在方框454,根VMM 220更新陰影VMCS 134以反映在方框452中處置VM退出期間對VMCS 251之任何改變。在方框456,根VMM 220使VM進入將控制權交還給訪客VMM 240(如,藉由執行VMRESUME指令)。
在圖5之方法實施例500中,VMCS讀取被陰影化 之VMCS欄位及VMCS寫入被陰影化之VMCS欄位係硬編碼的(即,未提供可規劃位元對映)。舉例而言,在一個實施例中,所有VMCS讀取被陰影化,對RIP(指令指標暫存器)之VMCS寫入、EFLAGS(程式狀態及控制暫存器),以及訪客中斷狀態被陰影化,但其他VMCS寫入未被陰影化。
在圖5之方框510,訪客VMM 240企圖執行指令(如,VMPTRLD)以指定VMCS(如,VMCS 251)來控制一 VM,其中訪客(如,訪客250)可於該VM中執行。在方框512,藉由企圖在VM內執行VMPTRLD指令而使VM退出至根VMM 220。在方框514,根VMM 220為訪客VMM 240創建VMCS(如,VMCS 251)。
在方框520,根VMM 220分配用於陰影 VMCS(如,記憶體130中之陰影VMCS 134)之記憶體。在方框522,根VMM 220設定VMCS 241中之指示符(如,VMCS陰影化賦能欄位245中之控制位元)來賦能VMCS陰影化,及將VMCS陰影位址欄位246設定至在方框520分配的陰影VMCS之位址。在方框532,根VMM 220使VM進入將控制權交還給訪客VMM 240(如,藉由執行VMRESUME指令)。
在方框540,訪客VMM 240企圖存取(如,藉由執 行VMREAD或VMWRITE指令)VMCS 251中陰影化被賦能(硬編碼)之欄位。在方框542,允許訪客VMM 240存取陰影VMCS 134中之對應欄位。在方框544,訪客VMM 240企圖存取VMCS 251中未賦能陰影化之欄位。在方框546,藉由企圖存取未賦能陰影化之VMCS欄位而使VM退出至根VMM 220。
只要VM退出不發生於方框546之前,在方框540 與方框544之間,任何數目之陰影化被賦能之存取可發生,且任何數目之其他指令可由訪客VMM 240或在訪客VMM 240之訪客階層中的任何訪客執行。此外,可藉由除方框544中的事件之外的事件而使VM退出。
在方框550,根VMM 220更新VMCS 251以反 映,例如由於方框542,由訪客VMM 240對陰影VMCS 134之任何寫入。在方框552,根VMM 220為訪客VMM 240仿真或以其他方式處置方框544中之存取企圖,以及執行處置VM退出所必需或期望之任何其他動作。在方框554,根VMM 220更新陰影VMCS 134以反映在方框552中處置VM退出期間對VMCS 251之任何改變。在方框556,根VMM 220使VM進入將控制權交還給訪客VMM 240(如,藉由執行VMRESUME指令)。
在本發明之範疇內,圖3、圖4及圖5中所例示之 方法可以不同順序、省略所例示之方框、添加額外方框,或者重排序、省略或額外方框之組合來執行。
在前述描述中,「設定」一詞可已用於指將邏輯 「1」值寫入至位元儲存位置,及「清除」可已用於指將邏輯「0」值寫入至位元儲存位置。類似地,設定賦能位元可導致賦能由彼賦能位元控制之功能,及清除賦能位元可導致禁用該功能。然而,本發明之實施例不受此命名法中任一者之限制。舉例而言,「設定」指示符可指將一或多個特定值之一寫入至比一個位元多一或多個位元的位元之儲存位置。類似地,可使用相反約定,其中設定可意味寫入邏輯「0」及/或其中清除一賦能位元以賦能功能。
以上描述中之一些部分已根據對電腦系統之暫 存器或記憶體內的資料位元的操作之演算法及符號表示來呈現。此等演算法描述及表示係熟習資料處理領域之技術者用來將其工作之實質有效傳達至其他熟習此項技術者之 手段。此處,演算法通常經設想為導致期望結果之自洽的操作順序。操作係需要實體操縱物理量之物。雖然不一定,但通常此等量呈能夠被儲存、轉移、組合、比較及以其他方式操縱的電氣信號或磁信號之形式。可已證明,主要出於常用之原因,將此等信號稱為位元、值、元素、符號、字元、術語、數字或類似物有時係便利的。
然而,應瞭解,此等術語及類似術語之所有必須 與適當的物理量相關聯,且僅為適用於此等量之便利標記。應瞭解,除非另行特定指出,否則貫穿本發明始終的,使用術語諸如「處理」或「計算」或「判定」等之論述可指電腦系統或類似電子計算裝置之動作及過程,該等電腦系統或類似電子計算裝置操縱電腦系統之暫存器及記憶體內的表示為實體(電子)量的資料,及將該等資料轉換成電腦系統記憶體或暫存器或其他此等資訊儲存體、傳輸或顯示裝置內的類似表示為物理量之其他資料。
因此,已揭示了用於VMCS陰影化之處理器、方法及系統。雖然某些實施例已在附圖中描述及展示,但應理解,此等實施例僅為對寬泛的本發明之說明而非限制,且本發明不限於所展示及描述之特定構造及佈置,因為研究本發明之一般技藝人士可能想到各種其他修改。在諸如此技術的發展快速且不易預見進一步進步之技術領域中,在不違背本發明之原理或隨附申請專利範圍之範疇的狀況下,由於實現技術進步而促進,所揭示之實施例可在佈置及細節中易於修改。
100‧‧‧分層虛擬化架構
110‧‧‧裸平台硬體
120‧‧‧處理器
122‧‧‧指令硬體
124‧‧‧執行硬體
126‧‧‧控制邏輯
130‧‧‧記憶體
132‧‧‧虛擬機器控制結構(VMCS)
134‧‧‧陰影VMCS
140‧‧‧虛擬機器監視程式(VMM)
150‧‧‧虛擬機器(VM)
152‧‧‧訪客作業系統(OS)
154、155‧‧‧訪客應用程式
160、170、180‧‧‧VM
162‧‧‧訪客VMM
172、182‧‧‧訪客OS

Claims (20)

  1. 一種處理器,其包含:指令硬體,該指令硬體接收多個指令,該等指令包括:一第一指令,該第一指令將該處理器自一根模式轉移至一非根模式以用於在至少一個虛擬機器中執行訪客軟體,其中該處理器在偵測到多個虛擬機器退出事件中任一者時需返回至該根模式;及一第二指令,該第二指令存取用於控制該至少一個虛擬機器的至少一個資料結構;及執行硬體,該執行硬體執行該第一指令及該第二指令;以及控制邏輯,當該第二指令執行於該非根模式中時,該控制邏輯使該處理器在不返回至該根模式來執行存取的狀況下存取一陰影資料結構而非存取該至少一個資料結構。
  2. 如申請專利範圍第1項之處理器,其中該控制邏輯需使該處理器回應於在該非根模式中創建該至少一個資料結構的一企圖,而返回至該根模式。
  3. 如申請專利範圍第1項之處理器,其中該控制邏輯需使該處理器回應於在該非根模式中存取該資料結構中未賦能陰影化的一欄位的一企圖,而返回至該根模式,而非存取該陰影資料結構。
  4. 一種方法,其包含下列步驟: 由一處理器接收一虛擬機器進入指令;由該處理器執行該虛擬機器進入指令來將控制權自在一根模式中之一根虛擬機器監視程式轉移至在一非根模式中之一訪客虛擬機器監視程式;藉由運行於該處理器上之該非根模式中的該訪客虛擬機器監視程式企圖來存取一子代虛擬機器控制結構;以及由該處理器中之控制邏輯使在不返回至該根模式的狀況下將該存取重定向至一陰影虛擬機器控制結構以執行該存取。
  5. 如申請專利範圍第4項之方法,其中企圖包括企圖存取該子代虛擬機器控制結構來用於控制由該訪客虛擬機器監視程式代管之一子代虛擬機器。
  6. 如申請專利範圍第4項之方法,進一步包含藉由設定用於控制運行該訪客虛擬機器監視程式之一父代虛擬機器的一父代虛擬機器控制結構中之一陰影化賦能指示符來由該根虛擬機器監視程式賦能陰影化。
  7. 如申請專利範圍第4項之方法,其中企圖包括企圖執行一指令來自該子代虛擬機器控制結構讀取。
  8. 如申請專利範圍第4項之方法,其中企圖包括企圖執行一指令來寫入至該子代虛擬機器控制結構。
  9. 如申請專利範圍第4項之方法,進一步包含由該根虛擬機器監視程式組配用於該子代虛擬機器資料結構之一虛擬機器控制結構讀取陰影化位元映像。
  10. 如申請專利範圍第9項之方法,其中該虛擬機器控制結構讀取陰影化位元映像包括多個陰影化賦能位元,該等陰影化賦能位元中每一者對應於該子代虛擬機器控制結構中的多個欄位之一,且其中組配包括將對應於該等多個子代虛擬機器控制結構欄位之一的該等陰影化賦能位元中每一者設定為讀取而不使一虛擬機器退出。
  11. 如申請專利範圍第4項之方法,進一步包含由該根虛擬機器監視程式組配用於該子代虛擬機器控制結構之一虛擬機器控制結構寫入陰影化位元映像。
  12. 如申請專利範圍第11項之方法,其中該虛擬機器控制結構寫入陰影化位元映像包括多個陰影化賦能位元,該等陰影化賦能位元中每一者對應於該子代虛擬機器控制結構中之多個欄位之一,且其中組配包括將對應於該等多個子代虛擬機器控制結構欄位之一的該等陰影化賦能位元中每一者設定為寫入而不使一虛擬機器退出。
  13. 如申請專利範圍第4項之方法,進一步包含下列步驟:藉由運行於該處理器上之該非根模式中的該訪客虛擬機器監視程式企圖創建一子代虛擬機器控制結構;回應於該企圖而藉由該處理器中之控制邏輯來使控制權自該非根模式轉移至該根模式;藉由運行於該根模式中之該根虛擬機器監視程式來創建該子代虛擬機器控制結構;以及藉由運行於該根模式中之該根虛擬機器監視程式來創建該陰影虛擬機器控制結構。
  14. 如申請專利範圍第4項之方法,進一步包含下列步驟:藉由運行於該處理器上之該非根模式中的該訪客虛擬機器監視程式企圖存取該子代虛擬機器結構中的未賦能陰影化的一欄位;以及回應於該企圖而藉由該處理器中之控制邏輯來使控制權自該非根模式轉移至該根模式。
  15. 如申請專利範圍第14項之方法,進一步包含下列步驟:藉由運行於該根模式中之該根虛擬機器監視程式來更新該子代虛擬機器控制結構,以反映由運行於該非根模式中之該非根虛擬機器監視程式對該陰影虛擬機器控制結構進行之改變。
  16. 如申請專利範圍第14項之方法,進一步包含下列步驟:藉由運行於該根模式中之該根虛擬機器監視程式來更新該陰影虛擬機器控制結構,以反映由運行於該根模式中之該根虛擬機器監視程式對該子代虛擬機器控制結構進行之改變。
  17. 一種系統,其包含:一記憶體,該記憶體儲存用於控制至少一個虛擬機器的至少一個資料結構及至少一個陰影資料結構;以及一處理器,該處理器包括指令硬體,該指令硬體接收多個指令,該等指令包括:一第一指令,該第一指令將該處理器自一根模式轉移至一非根模式以用於在至少一個虛擬機器中執行訪客軟體,其中該處理器在偵測到多個 虛擬機器退出事件中任一者時需返回至該根模式;及一第二指令,該第二指令存取至少一個資料結構,及執行硬體,該執行硬體執行該第一指令及該第二指令,以及控制邏輯,當該第二指令執行於該非根模式中時,該控制邏輯使該處理器在不返回至該根模式來執行存取的狀況下存取該陰影資料結構而非存取該至少一個資料結構。
  18. 如申請專利範圍第17項之系統,其中該記憶體需儲存由運行於該根模式中之一根虛擬機器監視程式創建的一第一資料結構,該第一資料結構控制一第一虛擬機器,其中一訪客虛擬機器監視程式需運行於該非根模式中。
  19. 如申請專利範圍第19項之系統,其中該記憶體亦需儲存由運行於該非根模式中之一訪客虛擬機器監視程式創建的一第二資料結構,該第二資料結構控制由該訪客虛擬機器監視程式代管的一第二虛擬機器。
  20. 如申請專利範圍第19項之系統,其中該記憶體亦需儲存由運行於該根模式中之該根模式監視程式創建的一陰影資料結構,該陰影資料結構需由該第一虛擬機器中運行於該非根模式中之該訪客虛擬機器監視程式存取,而不使一虛擬機器退出該根模式。
TW101150579A 2011-12-30 2012-12-27 虛擬機器控制結構陰影化技術 TWI620124B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2011/068126 WO2013101191A1 (en) 2011-12-30 2011-12-30 Virtual machine control structure shadowing
??PCT/US11/68126 2011-12-30

Publications (2)

Publication Number Publication Date
TW201339971A true TW201339971A (zh) 2013-10-01
TWI620124B TWI620124B (zh) 2018-04-01

Family

ID=48698424

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101150579A TWI620124B (zh) 2011-12-30 2012-12-27 虛擬機器控制結構陰影化技術

Country Status (3)

Country Link
US (1) US20130326519A1 (zh)
TW (1) TWI620124B (zh)
WO (1) WO2013101191A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663547B (zh) * 2017-01-19 2019-06-21 International Business Machines Corporation 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統
TWI718210B (zh) * 2015-12-22 2021-02-11 美商英特爾公司 用於智慧型資源提供之設備、方法及系統

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
EP2795464B1 (en) * 2011-12-22 2019-01-23 Intel Corporation Enabling efficient nested virtualization
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
CN103744641B (zh) * 2014-01-23 2016-08-17 龙芯中科技术有限公司 禁止已翻译指令序列执行的方法、装置和虚拟机
CN107924321B (zh) * 2015-09-25 2022-01-18 英特尔公司 针对虚拟机退出的嵌套虚拟化
US9934061B2 (en) * 2015-12-28 2018-04-03 International Business Machines Corporation Black box techniques for detecting performance and availability issues in virtual machines
US10768962B2 (en) * 2016-12-19 2020-09-08 Vmware, Inc. Emulating mode-based execute control for memory pages in virtualized computing systems
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10831532B2 (en) 2018-10-19 2020-11-10 International Business Machines Corporation Updating a nested virtualization manager using live migration of virtual machines

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725895B2 (en) * 2004-03-31 2010-05-25 Intel Corporation Processor control register virtualization to minimize virtual machine exits
US8312452B2 (en) * 2005-06-30 2012-11-13 Intel Corporation Method and apparatus for a guest to access a privileged register
US7984438B2 (en) * 2006-02-08 2011-07-19 Microsoft Corporation Virtual machine transitioning from emulating mode to enlightened mode
US8291410B2 (en) * 2006-12-29 2012-10-16 Intel Corporation Controlling virtual machines based on activity state
US7975267B2 (en) * 2007-03-30 2011-07-05 Bennett Steven M Virtual interrupt processing in a layered virtualization architecture
JP4897578B2 (ja) * 2007-06-06 2012-03-14 株式会社日立製作所 仮想計算機の制御プログラムおよび仮想計算機システム
JP4864817B2 (ja) * 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8127292B1 (en) * 2007-06-22 2012-02-28 Parallels Holdings, Ltd. Virtualization system with hypervisor embedded in bios or using extensible firmware interface
US8032897B2 (en) * 2007-07-31 2011-10-04 Globalfoundries Inc. Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization
US8819676B2 (en) * 2007-10-30 2014-08-26 Vmware, Inc. Transparent memory-mapped emulation of I/O calls
JP4530182B2 (ja) * 2008-02-27 2010-08-25 日本電気株式会社 プロセッサ、メモリ装置、処理装置及び命令の処理方法
JP5405799B2 (ja) * 2008-10-30 2014-02-05 株式会社日立製作所 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US8234432B2 (en) * 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
US8495628B2 (en) * 2009-08-23 2013-07-23 International Business Machines Corporation Para-virtualization in a nested virtualization environment using reduced number of nested VM exits
US8560758B2 (en) * 2009-08-24 2013-10-15 Red Hat Israel, Ltd. Mechanism for out-of-synch virtual machine memory management optimization
US8479196B2 (en) * 2009-09-22 2013-07-02 International Business Machines Corporation Nested virtualization performance in a computer system
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
JP5493125B2 (ja) * 2010-02-05 2014-05-14 株式会社日立製作所 仮想化方法及び計算機
US8789042B2 (en) * 2010-09-27 2014-07-22 Mips Technologies, Inc. Microprocessor system for virtual machine execution
US8793528B2 (en) * 2011-11-30 2014-07-29 Oracle International Corporation Dynamic hypervisor relocation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI718210B (zh) * 2015-12-22 2021-02-11 美商英特爾公司 用於智慧型資源提供之設備、方法及系統
TWI663547B (zh) * 2017-01-19 2019-06-21 International Business Machines Corporation 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統

Also Published As

Publication number Publication date
TWI620124B (zh) 2018-04-01
US20130326519A1 (en) 2013-12-05
WO2013101191A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
TWI620124B (zh) 虛擬機器控制結構陰影化技術
JP5936640B2 (ja) 協調設計されたプロセッサへの、隔離された実行環境の作成
JP5571208B2 (ja) パフォーマンスカウンタの仮想化
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
JP5675743B2 (ja) 階層化された仮想化アーキテクチャにおける仮想化イベント処理
US7506121B2 (en) Method and apparatus for a guest to access a memory mapped device
US8151264B2 (en) Injecting virtualization events in a layered virtualization architecture
EP1995662B1 (en) Controlling virtual machines based on activity state
TWI516937B (zh) 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體
US7900204B2 (en) Interrupt processing in a layered virtualization architecture
CN103064796B (zh) 虚拟机内存的共享方法与计算机系统
CN109416640B (zh) 孔径访问处理器、方法、系统和指令
TW202147116A (zh) 監視處理器之操作之系統
US20160246636A1 (en) Cross hypervisor migration of virtual machines with vm functions
US20170220369A1 (en) Hypervisor post-write notification of control and debug register updates
EP3783513A1 (en) Apparatus, system and method to define memory information leak zones in a computing system
US10127064B2 (en) Read-only VM function chaining for secure hypervisor access
Lin et al. Robust lightweight embedded virtualization layer design with simple hardware assistance
Iancu et al. Characterizing the Performance of Parallel Applications on Multi-Socket Virtual Machines

Legal Events

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