TWI509518B - 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統 - Google Patents

用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統 Download PDF

Info

Publication number
TWI509518B
TWI509518B TW099131737A TW99131737A TWI509518B TW I509518 B TWI509518 B TW I509518B TW 099131737 A TW099131737 A TW 099131737A TW 99131737 A TW99131737 A TW 99131737A TW I509518 B TWI509518 B TW I509518B
Authority
TW
Taiwan
Prior art keywords
primary
control structure
vmm
mapping
virtualization
Prior art date
Application number
TW099131737A
Other languages
English (en)
Other versions
TW201120752A (en
Inventor
Michael D Ii Day
Ryan A Harper
Anthony N Liguori
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW201120752A publication Critical patent/TW201120752A/zh
Application granted granted Critical
Publication of TWI509518B publication Critical patent/TWI509518B/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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統
本發明係關於資料處理資源之硬體輔助虛擬化。更特定言之,本發明係關於在提供多層硬體輔助虛擬化方面之改良。
作為背景,現代微處理器(諸如,基於x86架構之彼等微處理器)包括用於虛擬化之硬體輔助支援。當在非根模式中於客體作業系統及應用軟體之正常特權等級執行該等客體作業系統及應用軟體時,虛擬化指令集允許超管理器在超特權根模式中操作。x86硬體虛擬化特徵目前未將其自身虛擬化。此狀況可能使x86根模式超管理器不能作為客體而有效執行非根模式超管理器,此即為稱作巢式或分層虛擬化之概念。用以解決此缺點之兩個主要技術為截獲與模擬以及動態轉譯。截獲與模擬涉及硬體截獲客體超管理器所發佈之個別虛擬化指令且使根模式超管理器模擬該等指令之行為。關鍵碼路徑中之高頻率的虛擬化指令可能會使此機制過慢。動態轉譯涉及將客體超管理器之特權碼序列轉譯成安全地限定於客體虛擬機器內之指令。此操作係複雜的,且可能對某些工作負荷產生高得難以接受之性能影響。
一種用於在一電腦系統中改良巢式虛擬化性能之虛擬化架構。一虛擬化指令讀取或寫入在一虛擬機器監視器(VMM)所使用之控制結構中之資料以維持一虛擬機器(VM)上之狀態,從而支援在一中央處理單元(CPU)之根操作模式(該VMM於該模式下執行)與該CPU之非根操作模式(該VM於該模式下執行)之間的轉變。若該CPU處於根模式中,則根據虛擬化指令對主控制結構進行特殊權限資料存取。若該CPU處於非根模式中且已啟用該主要控制結構中之一次要控制結構欄位,則根據該虛擬化指令對該次要控制結構進行非特殊權限資料存取。
前述內容及本發明之其他特徵及優點將自以下對在隨附圖式中說明之所揭示實施例的更特定描述而顯而易見。
現轉至諸圖,其中相同參考數字在所有視圖中表示相同元件。圖1說明經組態以支援巢式虛擬化之實例電腦系統2。系統2包括實體機器4,該實體機器4併有至少一CPU(中央處理單元)10及以操作方式耦接至該CPU 10之記憶體12。CPU為積體電路,其可實施為單核心或多核心微處理器之執行核心,或實施於任何其他類型之指令處理器件(諸如,通用處理器、微控制器、信號處理器,等等)中。CPU 10可實施x86架構,但此並非實踐本文中所揭示的巢式虛擬化技術的要求。記憶體12可使用能夠儲存程式指令及資料之任何類型的電腦可讀儲存媒體來實施。實例記憶體類型包括(但不限於)靜態或動態隨機存取記憶體、半導體唯讀或快閃記憶體、磁碟或光碟記憶體,或其組合。
僅舉例而言,且非限制,實體機器4可嵌入於(僅列舉幾個器件)通用電腦、專用電腦、攜帶型計算器件、通信器件、多媒體或音訊呈現器件、視訊轉換器件(set-top device)、嵌入式系統、專用邏輯或控制系統中之任一者中。一實例組態展示於圖2中,其中實體機器4包括經由記憶體控制器14互連至記憶體12之複數個CPU 10。記憶體控制器14可與I/O(輸入/輸出)控制器16一起實施於一晶片組中,該晶片組提供整合式匯流排基礎結構18。記憶體控制器在功能上亦可與每一CPU 10整合。可添加至實體機器4之額外組件包括選用之圖形卡20,該選用之圖形卡20可連接至記憶體控制器集線器14以用於產生視覺輸出資訊至選用之顯示監視器(未圖示)。諸如磁碟機或光碟機之周邊儲存器件22亦可連接至I/O控制器16。各種周邊器件24可進一步連接至I/O控制器16。周邊器件24可包括USB匯流排控制器、SCSI磁碟控制器及NIC,以及其他類型之器件。
熟習此項技術者將瞭解,可以許多其他方式在具有或不具有一些或全部上文所提及之額外組件的情況下來實施實體機器4。應進一步瞭解,實體機器4可包括除圖2中所示組件以外之其他熟知組件。為了簡潔起見而不描述該等組件以免混淆所揭示標的物。
現返回至圖1,實體機器4之CPU 10支援被稱作根模式之超特權操作模式,該超特權操作模式可由諸如虛擬機器監視器(又名超管理器)之虛擬化軟體(或韌體)用來支援虛擬機器環境。非根操作模式亦經提供以用於在虛擬機器環境內於標準作業系統及應用軟體之正常特權等級執行該等標準作業系統及應用軟體。CPU 10亦包含支援硬體虛擬化之虛擬化指令執行邏輯26。虛擬化邏輯26可實施為微碼或執行由虛擬機器監視器發佈的執行於實體機器4上的虛擬化指令之其他邏輯。虛擬化邏輯26所支援之虛擬化指令集可包括用於自根模式切換至非根模式以自虛擬機器監視器進入虛擬機器環境之指令,及用於自非根模式切換至根模式以退出虛擬機器環境並將控制返還給虛擬機器監視器之指令。VT-x虛擬化架構所提供之VMX(虛擬機器擴展)指令集表示可用作實施虛擬化邏輯26之起始點的一項實例技術。下文中更詳細地描述虛擬化邏輯26之其他態樣,包括對用以根據本發明實施巢式虛擬化之習知VMX指令集進行之修改。
仍參看圖1,主要虛擬機器監視器(主要VMM)30執行於實體機器4上以提供主要虛擬機器(主要VM)32。此情形表示圖1所示之巢式虛擬化環境之第一虛擬化層。次要虛擬機器監視器(次要VMM)34作為客體執行於主要VM 32上以提供次要虛擬機器(次要VM)36。此情形表示圖1所示之巢式虛擬化環境之第二虛擬化層。客體程式38作為客體執行於次要VM 36上。儘管圖1未展示,但主要VMM 30可提供主要VM 32之複數個執行個體。在每一主要VM執行個體內,次要VMM 34之執行個體自身可執行次要VM 36之複數個執行個體。類似地,每一次要VM執行個體可執行客體程式38之複數個執行個體,或執行可包括巢式VMM/VM邏輯之額外等級的其他程式。
主要VMM 30可使用與實體機器4相容且利用虛擬化邏輯26以支援其虛擬化操作之任何習知虛擬機器監視器或超管理器來實施。若實施於軟體中,則此類程式可經載入至記憶體12中,且當由CPU 10執行時,此類程式將執行主要VMM 30之功能。亦可使用基於韌體或基於硬體之虛擬機器監視器程式。在一些情況下,主要VMM 30可為作業系統內核之部分,諸如內核模組或驅動程式。在其他情況下,主要VMM 30可為獨立虛擬機器監視器。主要VMM 30之功能包括建立主要VM 32,該主要VM 32提供第一等級虛擬環境,實體機器4之硬體資源的一部分(例如,CPU時間配量及記憶體位址)分配至該第一等級虛擬環境。所指派之硬體資源可一般性地稱作虛擬資源,且由於將其指派至主要VM 32,故如圖1中之參考數字32A所展示,其可具體稱作主要虛擬資源。執行於主要VM 32上之客體(在此情況下為次要VMM 34)將視主要虛擬資源32A如同該等主要虛擬資源32A表示專用實體機器一般,且將相應地進行操作。如上文所指示,主要VMM 30可支援一個以上之主要VM 32。每一額外主要VM 32可執行包括次要VMM 34之額外執行個體的任何類型之軟體。
次要VMM 34亦可使用與主要VM 32相容之任何習知虛擬機器監視器或超管理器來實施。另外,次要VMM 34可利用CPU 10之虛擬化邏輯26來支援其虛擬化操作。若實施於軟體中,則此類程式可經載入至記憶體12中,且當由CPU 10執行時,此類程式將執行次要VMM 34之功能。亦可使用基於韌體或基於硬體之虛擬機器監視器程式。在一些情況下,主要VMM 30可為作業系統內核之部分,諸如內核模組或驅動程式。在其他情況下,主要VMM 30可為獨立虛擬機器監視器。次要VMM 34之功能包括建立次要VM 36,該次要VM 36提供第二等級虛擬環境,主要VM 32之主要虛擬資源32A的一部分(例如,CPU時間配量及記憶體位址)分配至該第二等級虛擬環境。所指派之硬體資源可一般性地稱作虛擬資源,且由於將其指派至次要VM 36,故如圖1中之參考數字36A所展示,其可具體稱作次要虛擬資源。執行於次要VM 36上之客體(在此情況中為客體程式38)將視次要虛擬資源36A如同該等次要虛擬資源36A表示專用實體機器一般,且將相應地進行操作。如上文所指示,次要VMM 34可支援一個以上之次要VM 36。亦如上文所指示,每一額外次要VM可執行包括客體程式38之額外執行個體的任何類型之軟體或可包括巢式VMM/VM邏輯之額外等級的其他程式。
客體程式38自身可為能夠執行於次要VM 36上之的任何程式。此類程式可包括作業系統、應用程式或如所述之另一虛擬機器監視器。若客體程式38為作業系統,則其可以習知方式執行一或多個應用程式。若客體程式38為另一虛擬機器監視器,則其可建立第三虛擬機器(未圖示)以表示圖1所示之巢式虛擬化環境之第三虛擬化層。應瞭解,可視系統要求而提供額外巢式虛擬化層。
如先前所指示,實體機器4之CPU 10支援供虛擬機器監視器使用之根操作模式及用於執行於虛擬機器內之其他軟體的非根操作模式。主要VMM 30在CPU之根模式中操作。如圖3所示,此模式可認為係主要VMM 30用以建立並控制主要VM 32之真實根操作模式。執行於主要VM 32內之客體(包括次要VMM 34)在CPU之非根模式中操作。此模式可認為係真實非根操作模式。如圖3所進一步展示,亦可認為主要VM 32具有虛擬根操作模式,次要VMM 34於該虛擬根操作模式中執行以控制次要VM 36。可同樣認為主要VM 32具有虛擬非根操作模式。次要VM 36之客體(諸如,客體程式38)在主要VM之虛擬非根模式中操作。
在實體機器4之操作期間,執行狀態將在真實根模式與真實非根模式之間週期性地變換。最初,CPU 10可執行於真實根模式中,在該真實根模式中,主要VMM 30執行其虛擬機器監視器功能。之後,主要VMM 30可使實體機器4離開真實根模式且進入真實非根模式以便執行主要VM 32。此狀況可稱作VM進入。之後,一事件可使實體機器4退出真實非根模式並返回至真實根模式以藉由主要VMM 30處置事件。此狀況可稱作VM退出。如圖1所示,主要控制結構40可由主要VMM 30用以維持主要VM 32上之狀態以便支援VM進入及VM退出在真實根模式與真實非根模式之間的轉變。主要控制結構40可實施為儲存於記憶體12中(或儲存於CPU 10之內部記憶體內)之資料結構,且其可仿效VT-x虛擬化架構所使用的VMCS(虛擬機器控制結構)。如熟習此項技術者將瞭解且如圖4所示,主要控制結構40可因此含有儲存當主要VM 32正執行時主要VMM之CPU狀態的複本之主機狀態區域及儲存當主要VMM 30正執行時主要VM之CPU狀態的複本之客體狀態區域。主要控制結構40亦可含有控制欄位,該等控制欄位指示將觸發VM退出之條件(諸如,非根模式程式發佈特權指令)及應如何處置此類事件,及其他。
以類似於實體機器4中所發生情況之方式,在主要VM 32操作期間,執行狀態將在虛擬根模式與虛擬非根模式之間週期性地變換。最初,主要VM 32可執行於虛擬根模式中,在該虛擬根模式中,次要VMM 34執行其虛擬機器監視器功能。之後,次要VMM 34可使主要VM 32離開虛擬根模式且進入虛擬非根模式以便執行次要VM 36(VM進入)。之後,一事件可使主要VM 32退出虛擬非根模式並返回至虛擬根模式以藉由次要VMM 34處置事件(VM退出)。如圖1所示,次要控制結構42可由次要VMM 34用以維持次要VM 36上之狀態,以便支援VM進入及VM退出在虛擬根模式與虛擬非根模式之間的轉變。次要控制結構42可實施為儲存於記憶體12中之資料結構。與主要控制結構40相似,次要控制結構42可仿效VT-x虛擬化架構所使用之VMCS(虛擬機器控制結構)。如熟習此項技術者將容易地瞭解的,次要控制結構42可因此含有儲存當次要VM 36正執行時次要VMM之CPU狀態的複本之主機狀態區域及儲存當次要VMM 34正執行時次要VM之CPU狀態的複本之客體狀態區域。次要控制結構42亦可含有控制欄位,該等控制欄位指示將觸發VM退出之狀況(諸如,非根模式程式發佈特權指令)及應如何處置此類事件,及其他。
CPU 10之虛擬化邏輯26包括可用以在主要控制結構40及次要控制結構42中讀取及寫入資料之控制結構讀取/寫入指令。在VT-x虛擬化架構中,此等指令分別稱為VMREAD及VMWRITE。然而,現存VMREAD指令及VMWRITE指令係特權指令,且僅可於實體機器4之真實根模式中執行。此意謂在VT-x虛擬化架構之習知實施中,主要VMM 30可直接執行該等指令,但次要VMM 34不可直接執行該等指令。主要VMM 30必須截獲並模擬次要VMM 34所發佈之VMREAD及VMWRITE指令,或必須使用動態轉譯。在任一情況下,因為主要VMM 30經重複調用以不僅在其自身之主要控制結構40中寫入並讀取資料且亦在次要控制結構42及可執行於系統2中之任何其他次要(或更高等級)虛擬機器監視器之控制結構中寫入並讀取資料,因此,為了支援巢式虛擬化而招致實質開銷。此情形可由於以下事實而進一步加重:需要各別VMREAD或VMWRITE指令以自客體狀態區域、主機狀態區域及控制欄位中之每一欄位讀取資料或將資料寫入客體狀態區域、主機狀態區域及控制欄位中之每一欄位中,且在每一VM進入與VM退出轉變時通常必須自許多該等欄位讀取資料或將資料寫入至該等欄位中。
本文所提供的對此問題之一解決方案為修改CPU 10內之虛擬化邏輯26以使得次要VMM 34可在虛擬根模式中執行VMREAD及VMWRITE,以在無主要VMM 30之支援的情況下讀取及寫入次要控制結構42。新欄位亦添加至主要控制結構40以指示次要控制結構42之存在。此欄位展示於圖4中,其可稱作secondary_control_structure欄位44。該欄位可實施為指向記憶體12中之一位址的指標,該指標表示次要控制結構42之基底位址。secondary_control_structure欄位44由主要VMM 30管理。詳言之,主要VMM 30在第一次啟動次要VMM 34之前設定secondary_control_structure欄位44。若需要,則主要VMM 30可以適當方式(諸如,藉由設定主要控制結構40之控制欄位中的一位元)選擇性地啟用secondary_control_structure欄位44。此位元由圖4中之參考數字45展示,且可稱作secondary_control_structure_enablement欄位。僅舉例而言,若主要控制結構40係基於在VT-x虛擬化架構中所使用之VMCS,則可在基於次要處理器之VM執行控制向量中設定一位元。視需要,可視設計要求而定來消除secondary_control_structure_enablement欄位45。若已啟用secondary_control_structure欄位44且指令呼叫者正在非根模式中操作,則執行VMREAD及VMWRITE指令之虛擬化邏輯26可經組態以參考secondary_control_structure欄位44。在彼情況下,虛擬化邏輯26將分別將VMREAD或VMWRITE視作指標所識別之記憶體區域內的非特殊權限記憶體載入或儲存來對待。此非特殊權限操作可由次要VMM 34在無主要VMM 30輔助的情況下執行,藉此減少與截獲與模擬相關聯或與動態轉譯操作相關聯之開銷。因此,如圖1所示,當次要VMM 34發佈VMWRITE/VMREAD指令48A以設法在非根模式中存取主要控制結構40時,虛擬化邏輯26有效改變存取方向且實施載入/儲存操作48B以在記憶體12內存取次要控制結構42。另一方面,若未啟用secondary_control_structure欄位44,則將截獲且傳遞非根VMREAD及VMWRITE指令至主要VMM 30以用於模擬。若VMREAD及VMWRITE指令由主要VMM 30在根模式中發佈,則忽略secondary_control_structure欄位44,且在主要控制結構40內執行資料存取。
說明可對由虛擬化邏輯26執行之習知VMREAD及VMWRITE指令處理作出之改變的實例偽碼操作分別在下文之表1及表2中加以闡述。偽碼清單係表1及表2之起始點,其可見於題為「Inteland IA-32 Architectures Software Developer's Manual,Volume 2B: Instruction Set Reference,N-Z(March 2009)」之出版物中。VMREAD操作偽碼闡述於此文件之第5-24頁,且VMWRITE操作偽碼闡述於第5-27頁及第5-28頁。在表1及表2中已修改該兩清單以添加粗體斜體型式文字所展示之操作。詳言之,若已啟用secondary_control_stucture欄位44,則當指令呼叫者在非根模式中操作時,於次要控制結構42內執行VMREAD或VMWRITE資料存取。否則,若未啟用secondary_control_structure欄位44,則在呼叫者處於非根模式中之情況下執行VM退出。又,當已啟用secondary_control_structure欄位44時,則在非根模式之讀取或寫入操作期間,其指標值用以在記憶體中定位次要控制結構42。表1及表2之經修改的VMREAD及VMWRITE偽碼操作之其餘部分為熟習此項技術者所習知,且不再加以描述。應瞭解,可使用替代偽碼以達成相同效果,且表1及表2僅為可如何實施所要功能性之實例。
圖5說明展示實例指令執行操作之高階流程表,該等實例指令執行操作可由虛擬化邏輯26根據表1及表2中之VMREAD及VMWRITE偽碼修改來執行。因此,在自記憶體12提取VMREAD或VMWRITE指令之後,在區塊50中存取主要控制結構40。在區塊52中,進行檢查以判定是否已啟用secondary_control_structure欄位44及指令呼叫者是否處於非根模式中。若已啟用secondary_control_structure欄位44且指令呼叫者處於非根模式中,則在區塊54中關於次要控制結構42執行VMREAD或VMWRITE指令。若未啟用secondary_control_structure欄位44且指令呼叫者未處於非根模式中,則在區塊56中以習知方式(例如,根據上文之偽碼中的未修改部分)處理VMREAD或VMWRITE指令。
現轉至圖6,展示在次要VMM 34執行至次要VM 36之VM進入時使用經修改之VMREAD及VMWRITE指令之方法。虛擬化邏輯26可提供兩個指令,該兩個指令可由虛擬機器監視器用以執行VM進入,從而將控制轉移給虛擬機器。一個指令可用於虛擬機器之初始調用,且另一指令可用於在轉變至根模式之後繼續虛擬機器操作以執行控制操作。此等虛擬機器啟動及繼續指令可因而分別係基於VT-x虛擬化架構所提供之VMLAUNCH及VMRESUME指令。兩指令皆為特權指令,其意謂該兩指令僅可於真實根模式中執行。圖6之方法係基於使用圖1所示之第三控制結構46。控制結構46由主要VMM 30管理,且由於其含有儲存於次要控制結構42中之資料的陰影複本(shadow copy)而被稱作次要控制結構複本。使用次要控制結構複本46來遮蔽次要控制結構42之原因與本發明無關。僅需瞭解,次要控制結構42輔助主要VMM 30模擬次要VMM 34所發佈的特權指令。
在圖6開始處,次要VMM 34已準備好為執行至次要VM 36之VM進入做準備。在區塊60中,次要VMM 34更新次要控制結構42以反映此轉變。詳言之,次要VMM 34更新主機區域以儲存次要VMM 34之當前CPU狀態,且亦可更新客體區域以將新CPU狀態設定至將執行隨後之VM進入的次要VM 36之CPU狀態。次要VMM 34藉由執行多個VMWRITE操作以填寫次要控制結構42之所需欄位來進行此更新。上文描述之對虛擬化邏輯26之修改可促進此等操作,該等修改允許次要VMM 34對secondary_control_structure欄位44所指向之記憶體區域執行非特殊權限記憶體儲存存取。在區塊62中,次要VMM 34發佈VMLAUNCH或VMRESUME指令。CPU 10截獲此指令並將其呈現給主要VMM 30以用於模擬。在區塊64中,主要VMM 30根據由於區塊60而改變之次要控制結構42的欄位來更新次要控制結構複本46。在區塊66中,主要VMM 30將主要控制結構40之客體狀態區域設定至次要控制結構複本46之客體狀態區域中所反映的CPU狀態(亦即,在VM進入之後將存在之次要VMM 34的狀態)。在區塊68中,主要VMM 30將當前CPU狀態儲存至主要控制結構40之主機區域並啟動次要VM 36。
可對虛擬化邏輯26進行進一步修改,從而簡化圖5所示之操作。此修改利用在主要控制結構40中之另一新欄位,該新欄位為展示於圖7中之bit_map欄位70。bit_map欄位70可實施為指向可儲存於記憶體12中之位元映射72(或其他映射結構)的基底位址之指標。此指標可由主要VMM 30在第一次啟動次要VMM 34之前設定。位元映射72之每一位元對應於次要控制結構42之一欄位。在圖6之區塊60中,當次要VMM 34發佈VMWRITE指令以填寫次要控制結構42之欄位時,虛擬化邏輯26在位元映射72中設定適當位元以指示次要控制結構42之相應欄位已更新。由於主要VMM 40不再需要將次要控制欄位42之每一欄位與次要控制結構複本46之相應欄位作比較以識別改變,因而此情形可簡化圖6之區塊64之操作。實情為,主要VMM 40可快速掃描與次要控制結構42相關聯之位元映射72以判定次要控制結構複本46之哪些欄位需要更新。
在下文之表3中闡述了實例偽碼,此等實例偽碼可對由虛擬化邏輯26執行之習知VMWRITE指令處理作出改變以實施前述功能。除了有一額外操作(展示為斜體粗體文字)由虛擬化邏輯26執行以設定位元映射72中之一位元(假定bit_map欄位70啟用)從而將寫入操作反映至次要控制結構42之欄位以外,表3與表2相同。主要VMM 30可以任何適當形式(諸如,藉由設定主要控制結構40之控制欄位中的一位元)來啟用bit_map欄位70。此位元由圖7之參考數字71展示,且可稱作bit_map_enablement欄位。僅舉例而言,若主要控制結構40係基於在VT-x虛擬化架構中所使用之VMCS,則可在基於次要處理器之「VM執行控制」向量中設定一位元。視需要,可視設計要求而定來消除bit_map_enablement欄位71。應瞭解,可使用替代偽碼以達成相同效果,且表3僅為如何實施所要功能性之實例。
圖8說明展示實例指令執行操作之高階流程表,該等實例指令執行操作可由虛擬化邏輯26根據表2及表3中之VMWRITE偽碼修改來執行。因此,在自記憶體12提取VMWRITE指令之後,在區塊80中存取主要控制結構40。在區塊82中,進行檢查以判定是否已啟用secondary_control_structure欄位44及指令呼叫者是否處於非根模式中。若已啟用secondary_control_structure欄位44且指令呼叫者處於非根模式中,則在區塊84中關於次要控制結構42執行VMWRITE指令。若未啟用secondary_control_structure欄位44且指令呼叫者未處於非根模式中,則在區塊86中以習知方式(例如,根據上文表2之偽碼中的未修改部分)處理VMREAD或VMWRITE指令。在區塊84之後,檢查bit_map欄位70是否啟用。若已啟用bit_map欄位70,則在區塊90中設定對應於VMWRITE目標欄位之位元。在區塊90之後或在bit_map欄位70於區塊88中未啟用的情況下,處理結束。
因此,已揭示用於在電腦系統中改良巢式虛擬化之性能的技術。應瞭解,前述概念可在機器實施方法(包括但不限於CPU微碼操作)、CPU或其他指令處理器件(可包括在由處理電路執行時使電路執行操作之電路邏輯、儲存於儲存媒體內之指令(程式碼),或電路邏輯與程式碼之組合)及諸如電腦或其他資料處理機器或器件之系統中之任一者中以不同形式具體化。所揭示標的物之態樣亦可藉由電腦程式產品來實施,該等電腦程式產品中,以數位方式編碼之程式指令(包括但不限於CPU微碼程式)儲存於一或多個電腦可讀資料儲存媒體上以用於控制CPU或其他指令處理器件來執行操作。該等程式指令可包含準備好由機器載入並執行之機器語言碼或可包含可經組譯、編譯或解譯為機器語言之較高階語言之程式指令。當實施於包含CPU或其他指令處理器件之機器上時,程式指令控制CPU以提供與特定邏輯電路之操作類似的特定機器,該等機器自身可用於本發明。
用於儲存電腦程式產品之程式指令的實例資料存儲媒體包括可儲存程式指令之任何儲存媒體。該等媒體可由唯讀記憶體(ROM)、隨機存取記憶體(RAM)或屬於CPU中使用或以其他方式處於電腦或資料處理機器內的類型之其他半導體或固態記憶體來提供。該等媒體亦可由攜帶型磁性媒體、光學媒體、磁光媒體(諸如,軟性磁碟、快閃記憶棒,等等)或與驅動系統(例如,磁碟機)組合之磁性媒體來提供。更寬泛而言,該等媒體可包含任何電子、磁性、光學、電磁、紅外線、半導體系統或裝置或器件、傳輸或傳播或傳訊媒體,或可含有、儲存、傳達、傳播或傳送指令執行系統、裝置或器件(諸如,電腦)所使用或與指令執行系統、裝置或器件(諸如,電腦)結合之程式指令的任何其他實體。對於以上所有形式之媒體而言,當程式指令經載入至指令執行系統、裝置、器件或電路中並由指令執行系統、裝置、器件或電路執行時,所得經程式化的系統、裝置、器件或電路即成為用於實踐本文所描述之方法及系統的實施例之特定機器。
CPU 10、其虛擬化邏輯26及根據本發明實施之其任何子組件可以多個階段來設計,自建立至模擬、測試、佈局直至製造。在此設計流程期間處理及/或產生之設計結構可經編碼於機器可讀傳輸或儲存媒體上以包括在於資料處理系統上執行或以其他方式處理時產生在邏輯、結構、機械或以其他方式在功能上與硬體組件、電路、器件或系統之表現等效的表現之資料及/或指令。設計結構可以各種方式表示,該等方式包括使用硬體描述語言(HDL)或另一功能描述語言以模擬或以其他方式在功能上表示電子組件、電路、電子或邏輯模組、裝置、器件或系統。設計結構將含有在於電腦輔助設計系統中處理時產生電子組件、電路、電子或邏輯模組、裝置、器件或系統之機器可執行表示的元件。此類元件可包括(但不限於)符號資料、映射檔案、測試資料檔案、設計內容檔案、製造資料、佈局參數、電線、金屬等級、導孔、形狀、用於經由製造線投送之資料及製造者或其他設計者/開發者生產電子組件、電路、電子或邏輯模組、裝置、器件或系統所需之任何其他資料。
儘管已描述本發明之各種實施例,但顯而易見,可根據本發明實施許多變化或替代實施例。因此,應理解,除依照隨附申請專利範圍及其等效物之精神以外,不意欲以任何方式限制本發明。
2...電腦系統
4...實體機器
10...中央處理單元(CPU)
12...記憶體
14...記憶體控制器
16...輸入/輸出(I/O)控制器
18...整合式匯流排基礎結構
20...圖形卡
22...周邊儲存器件
24...周邊器件
26...虛擬化指令執行邏輯
30...主要虛擬機器監視器(主要VMM)
32...主要虛擬機器(主要VM)
32A...主要虛擬資源
34...次要虛擬機器監視器(次要VMM)
36...次要虛擬機器(次要VM)
36A...次要虛擬資源
38...客體程式
40...主要控制結構
42...次要控制結構
44...secondary_control_structure欄位
45...secondary_control_structure_enablement欄位
46...次要控制結構複本
70...bit_map欄位
71...bit_map_enablement欄位
72...位元映射
圖1為展示根據所揭示實施例之實施巢式虛擬化之電腦系統的功能方塊圖;
圖2為展示可包括於圖1之系統中之實例組件的功能方塊圖;
圖3為展示圖1之系統之實例操作模式的功能方塊圖;
圖4為根據所揭示實施例之實例控制結構的圖解說明;
圖5為展示可於圖1之系統中執行之實例虛擬化指令處理操作的流程圖;
圖6為展示可於圖1之系統中執行之實例控制結構操縱操作的流程圖;
圖7為根據另一所揭示實施例之另一實例控制結構的圖解說明;及
圖8為展示可於圖1之系統中執行之額外實例控制結構操縱操作的流程圖。
2...電腦系統
4...實體機器
10...中央處理單元(CPU)
12...記憶體
26...虛擬化指令執行邏輯
30...主要虛擬機器監視器(主要VMM)
32...主要虛擬機器(主要VM)
32A...主要虛擬資源
34...次要虛擬機器監視器(次要VMM)
36...次要虛擬機器(次要VM)
36A...次要虛擬資源
38...客體程式
40...主要控制結構
42...次要控制結構
46...次要控制結構複本
72...位元映射

Claims (20)

  1. 一種用於在以操作方式連接至一記憶體之一中央處理單元(CPU)中執行虛擬化指令以在一電腦系統中改良巢式虛擬化之性能的方法,其包含:自該記憶體提取一虛擬化指令,該虛擬化指令為一控制結構讀取或寫入指令,用於讀取或寫入在一虛擬機器監視器(VMM)所使用之一控制結構中之資料以維持一虛擬機器(VM)上之狀態,從而支援該VMM執行於其中之該CPU之一根操作模式與該VM執行於其中之該CPU之一非根操作模式之間的轉變;若該CPU處於該根操作模式中,則根據該虛擬化指令對一主要VMM之一主要控制結構執行一特殊權限資料存取,其中該主要控制結構係由該主要VMM所使用以維持一主要VM上之狀態;及若該CPU處於該非根操作模式中且已啟用在該主要控制結構中之一次要控制結構欄位,則根據該虛擬化指令對一次要VMM之一次要控制結構執行一非特殊權限資料存取,其中該次要控制結構係由該次要VMM所使用以維持經巢式化於該主要VM內之一次要VM上之狀態。
  2. 如請求項1之方法,其中使用維持於該次要控制結構欄位中之存取資訊來存取該次要控制結構。
  3. 如請求項2之方法,其中自啟用該次要控制結構欄位之該主要控制結構中的一次要控制結構啟用欄位來判定該次要控制結構欄位之該啟用。
  4. 如請求項1之方法,其中若對該次要控制結構之該非特殊權限資料存取為一寫入操作,則將關於該寫入操作之資訊記錄於一映射結構中,該映射結構映射對該次要控制結構進行之資料更新。
  5. 如請求項4之方法,其中使用在該主要控制結構中之一映射欄位來存取該映射結構。
  6. 如請求項5之方法,其中該映射結構為一位元映射,該位元映射包括對應於該次要控制結構之欄位的位元,且其中該將資訊記錄於該映射結構中包括在該位元映射中設定一適當位元。
  7. 一種包括虛擬化指令執行邏輯(虛擬化邏輯)之中央處理單元(CPU)裝置,該虛擬化邏輯經組態以執行用於在一電腦系統中改良巢式虛擬化性能之指令執行操作,該等操作包含:自一記憶體提取一虛擬化指令,該虛擬化指令為一控制結構寫入或讀取指令,用於讀取或寫入在一虛擬機器監視器(VMM)所使用之一控制結構中之資料以維持一虛擬機器(VM)上之狀態,從而支援該VMM執行於其中之該CPU之一根操作模式與該VM執行於其中之該CPU之一非根操作模式之間的轉變;若該CPU處於該根操作模式中,則根據該虛擬化指令對一主要VMM之一主要控制結構執行一特殊權限資料存取,其中該主要控制結構係由該主要VMM所使用以維持一主要VM上之狀態;及 若該CPU處於該非根操作模式中且已啟用在該主要控制結構中之一次要控制結構欄位,則根據該虛擬化指令對一次要VMM之一次要控制結構執行一非特殊權限資料存取,其中該次要控制結構係由該次要VMM所使用以維持經巢式化於該主要VM內之一次要VM上之狀態。
  8. 如請求項7之裝置,其中該次要控制結構係使用維持於該次要控制結構欄位中之存取資訊來存取。
  9. 如請求項8之裝置,其中該次要控制結構欄位之該啟用係自啟用該次要控制結構欄位之該主要控制結構中的一次要控制結構啟用欄位來判定。
  10. 如請求項7之裝置,其中若對該次要控制結構之該非特殊權限資料存取為一寫入操作,則將關於該寫入操作之資訊記錄於一映射結構中,該映射結構映射對該次要控制結構進行之資料更新。
  11. 如請求項10之裝置,其中該映射結構係使用在該主要控制結構中之一映射欄位來存取。
  12. 如請求項11之裝置,其中該映射結構為一位元映射,該位元映射包括對應於該次要控制結構之欄位的位元,且其中該將資訊記錄於該映射結構中包括在該位元映射中設定一適當位元。
  13. 一種性能改良之系統,其包括一中央處理單元(CPU)、以操作方式連接至CPU之一記憶體及在該CPU中之虛擬化指令執行邏輯(虛擬化邏輯),該虛擬化邏輯經組態以執行用於在該系統中改良巢式虛擬化性能之指令執行操 作,該等操作包含:自該記憶體提取一虛擬化指令,該虛擬化指令為一控制結構讀取或寫入指令,用於讀取或寫入在一虛擬機器監視器(VMM)所使用之一控制結構中之資料以維持一虛擬機器(VM)上之狀態,從而支援該VMM執行於其中之該CPU之一根操作模式與該VM執行於其中之該CPU之一非根操作模式之間的轉變;若該CPU處於該根操作模式中,則根據該虛擬化指令對一主要VMM之一主要控制結構執行一特殊權限資料存取,其中該主要控制結構係由該主要VMM所使用以維持一主要VM上之狀態;及若該CPU處於該非根操作模式中且已啟用在該主要控制結構中之一次要控制結構欄位,則根據該虛擬化指令對一次要VMM之一次要控制結構執行一非特殊權限資料存取,其中該次要控制結構係由該次要VMM所使用以維持經巢式化於該主要VM內之一次要VM上之狀態。
  14. 如請求項13之系統,其中該次要控制結構係使用維持於該次要控制結構欄位中之存取資訊來存取。
  15. 如請求項14之系統,其中該次要控制結構欄位之該啟用係自啟用該次要控制結構欄位之該主要控制結構中的一次要控制結構啟用欄位來判定。
  16. 如請求項13之系統,其中若對該次要控制結構之該非特殊權限資料存取為一寫入操作,則將關於該寫入操作之資訊記錄於一映射結構中,該映射結構映射對該次要控 制結構進行之資料更新。
  17. 如請求項16之系統,其中該映射結構係使用在該主要控制結構中之一映射欄位來存取。
  18. 如請求項17之系統,其中該映射結構為一位元映射,該位元映射包括對應於該次要控制結構之欄位的位元,且其中該將資訊記錄於該映射結構中包括在該位元映射中設定一適當位元。
  19. 一種性能改良之系統,其包括一中央處理單元(CPU)、以操作方式連接至CPU之一記憶體、在該CPU中之虛擬化指令執行邏輯(虛擬化邏輯)及在該記憶體中之程式指令,該虛擬化邏輯及該等程式指令支援一虛擬化環境,該虛擬化環境包含一實體機器、執行於該實體機器上之一主要虛擬機器(主要VM)及執行於該主要VM上之一次要虛擬機器(次要VM),且支援用於改良巢式虛擬化性能之操作,該等操作包含:在該實體機器上執行一主要虛擬機器監視器(主要VMM)以提供該主要VM;在該主要VM上執行作為一客體之一次要虛擬機器監視器(次要VMM)以提供該次要VM;該實體機器具有一真實根操作模式及一真實非根操作模式,該主要VMM操作於該真實根操作模式中以控制該主要VMM,及該主要VM之客體操作於該真實非根操作模式中,該主要VM之該等客體包括該次要VM;該主要VM具有該次要VMM操作於其中以控制該次要 VMM之一虛擬根操作模式,及該次要VM之客體操作於其中之一虛擬非根操作模式;提供一主要控制結構以供該主要VMM用以維持該主要VM上之狀態,從而支援在該真實根操作模式與該真實非根操作模式之間的轉變;提供一次要控制結構以供該次要VMM用以維持該次要VM上之狀態,從而支援在該虛擬根操作模式與該虛擬非根操作模式之間的轉變;實施一指令集,該指令集由該主要VMM使用以提供該主要VM,且由該次要VMM使用以提供該次要VM;且該指令集包括控制結構讀取及寫入指令,該等控制結構讀取及寫入指令為僅當讀取或寫入在該主要控制結構中之資料時可由該主要VMM在該真實根操作模式中執行的,但當在無來自該主要VMM之支援的情況下自該主要控制結構經由間接存取來讀取及寫入該次要控制結構時,若已啟用該主要控制結構中之一次要控制結構欄位,可由該次要VMM在該虛擬根操作模式中執行。
  20. 如請求項19之系統,其進一步包括:該主要控制結構包含用於維持有關一映射結構之資訊的一欄位,該映射結構映射至該次要控制結構之欄位;在該映射結構中設定對應於該次要控制結構之一欄位的一欄位,對應於該次要控制結構之一欄位的該欄位係回應於該控制結構寫入指令而寫入;且該主要VMM使用該映射結構將該次要控制結構之欄位 複製至一次要控制結構複本,以識別已經寫入新資料之該次要控制結構之欄位。
TW099131737A 2009-09-22 2010-09-17 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統 TWI509518B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/564,524 US8479196B2 (en) 2009-09-22 2009-09-22 Nested virtualization performance in a computer system

Publications (2)

Publication Number Publication Date
TW201120752A TW201120752A (en) 2011-06-16
TWI509518B true TWI509518B (zh) 2015-11-21

Family

ID=43757738

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099131737A TWI509518B (zh) 2009-09-22 2010-09-17 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統

Country Status (4)

Country Link
US (2) US8479196B2 (zh)
JP (1) JP5607474B2 (zh)
KR (1) KR101296025B1 (zh)
TW (1) TWI509518B (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689224B2 (en) * 2007-09-26 2014-04-01 The Boeing Company Methods and systems for preserving certified software through virtualization
US8458698B2 (en) * 2010-11-18 2013-06-04 International Business Machines Corporation Improving performance in a nested virtualized environment
US8490090B2 (en) * 2011-02-17 2013-07-16 International Business Machines Corporation Multilevel support in a nested virtualization environment
JP5640844B2 (ja) * 2011-03-18 2014-12-17 富士通株式会社 仮想計算機制御プログラム、計算機、及び仮想計算機制御方法
US8484639B2 (en) * 2011-04-05 2013-07-09 International Business Machines Corporation Fine-grained cloud management control using nested virtualization
US8966478B2 (en) * 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
US20130132948A1 (en) * 2011-11-21 2013-05-23 Adiseshu Hari Personal cloud computing and virtual distributed cloud computing system
US9176763B2 (en) 2011-11-28 2015-11-03 Ravello Systems Ltd. Apparatus and method thereof for efficient execution of a guest in a virtualized environment
US20130145363A1 (en) * 2011-12-05 2013-06-06 Ravello Systems Ltd. System and method thereof for running an unmodified guest operating system in a para-virtualized environment
EP2795464B1 (en) * 2011-12-22 2019-01-23 Intel Corporation Enabling efficient nested virtualization
CN104067218B (zh) * 2011-12-28 2019-06-18 英特尔公司 分配存储器访问控制策略
US20130326519A1 (en) * 2011-12-30 2013-12-05 Andrew V. Anderson Virtual machine control structure shadowing
US9292316B2 (en) 2012-03-01 2016-03-22 International Business Machines Corporation Cloud of virtual clouds for increasing isolation among execution domains
JP5748349B2 (ja) * 2012-03-16 2015-07-15 株式会社日立製作所 仮想計算機の制御方法及び仮想計算機システム
US8707330B2 (en) 2012-04-27 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Method and system for controlled communication between applications
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
US10437591B2 (en) 2013-02-26 2019-10-08 Qualcomm Incorporated Executing an operating system on processors having different instruction set architectures
US10114756B2 (en) 2013-03-14 2018-10-30 Qualcomm Incorporated Externally programmable memory management unit
US9606818B2 (en) 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
US9396012B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
US9176767B2 (en) * 2013-04-11 2015-11-03 Cisco Technology, Inc. Network interface card device pass-through with multiple nested hypervisors
WO2014209269A1 (en) * 2013-06-24 2014-12-31 Intel Corporation A protected memory view for nested page table access by virtual machine guests
CN103294956B (zh) * 2013-06-25 2016-08-24 北京奇虎科技有限公司 在Windows平台上进行行为处理的方法及装置
WO2015041636A1 (en) 2013-09-17 2015-03-26 Empire Technology Development, Llc Virtual machine switching based on processor power states
US9542216B2 (en) 2013-10-15 2017-01-10 At&T Intellectual Property I, L.P. Richer model of cloud app markets
CN104679480A (zh) * 2013-11-27 2015-06-03 上海芯豪微电子有限公司 一种指令集转换系统和方法
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US9286105B1 (en) 2015-03-16 2016-03-15 AO Kaspersky Lab System and method for facilitating joint operation of multiple hypervisors in a computer system
US9710393B2 (en) 2015-06-25 2017-07-18 Intel Corporation Dynamic page table edit control
US9665373B2 (en) 2015-06-26 2017-05-30 Intel Corporation Protecting confidential data with transactional processing in execute-only memory
US9747123B2 (en) * 2015-09-25 2017-08-29 Intel Corporation Technologies for multi-level virtualization
CN107924321B (zh) * 2015-09-25 2022-01-18 英特尔公司 针对虚拟机退出的嵌套虚拟化
US10019279B2 (en) 2015-12-17 2018-07-10 International Business Machines Corporation Transparent secure interception handling
US9841987B2 (en) 2015-12-17 2017-12-12 International Business Machines Corporation Transparent secure interception handling
WO2017129657A1 (en) 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
US10719346B2 (en) 2016-01-29 2020-07-21 British Telecommunications Public Limited Company Disk encryption
WO2017129530A1 (en) * 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
US10515023B2 (en) 2016-02-29 2019-12-24 Intel Corporation System for address mapping and translation protection
JP6304837B2 (ja) * 2016-03-16 2018-04-04 インテル・コーポレーション 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
US20170329622A1 (en) * 2016-05-11 2017-11-16 Microsoft Technology Licensing, Llc Shared virtual data structure of nested hypervisors
US10922114B2 (en) 2016-12-12 2021-02-16 Intel Corporation System and method to improve nested virtual machine monitor performance
US10496439B1 (en) * 2016-12-15 2019-12-03 Space Sciences Corporation Finite resource allocator with intrinsically subordinate operating system
US10747562B2 (en) * 2017-04-26 2020-08-18 Vmware, Inc. Nested hypervisor to run virtual machines on public clouds
JP6993577B2 (ja) * 2018-03-16 2022-01-13 富士通株式会社 インタフェース変換プログラム、インタフェース変換方法および情報処理装置
US11016798B2 (en) 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
US11237860B2 (en) * 2018-12-21 2022-02-01 Red Hat, Inc. Command-based processing of real-time virtualized jobs
CN111737656B (zh) * 2019-05-30 2023-10-27 中国科学院计算技术研究所 面向应用程序的特权硬件资源访问方法及电子设备
US11360824B2 (en) 2019-11-22 2022-06-14 Amazon Technologies, Inc. Customized partitioning of compute instances
US11558311B2 (en) 2020-01-08 2023-01-17 Amazon Technologies, Inc. Automated local scaling of compute instances
US11989576B2 (en) * 2021-08-24 2024-05-21 Hewlett-Packard Development Company, L.P. Execution of code in system memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW594493B (en) * 2000-12-27 2004-06-21 Intel Corp New processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US20060123184A1 (en) * 2004-12-02 2006-06-08 Mondal Sanjoy K Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US20070028238A1 (en) * 2005-07-27 2007-02-01 Bennett Steven M Virtualization event processing in a layered virtualization architecture
TW200729038A (en) * 2005-08-30 2007-08-01 Microsoft Corp Hierarchical virtualization with a multi-level virtualization mechanism

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7937525B2 (en) 2004-06-25 2011-05-03 Intel Corporation Method and apparatus for decoding a virtual machine control structure identification
US7975267B2 (en) 2007-03-30 2011-07-05 Bennett Steven M Virtual interrupt processing in a layered virtualization architecture
JP4864817B2 (ja) * 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8151264B2 (en) 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW594493B (en) * 2000-12-27 2004-06-21 Intel Corp New processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US20060123184A1 (en) * 2004-12-02 2006-06-08 Mondal Sanjoy K Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US20070028238A1 (en) * 2005-07-27 2007-02-01 Bennett Steven M Virtualization event processing in a layered virtualization architecture
TW200729038A (en) * 2005-08-30 2007-08-01 Microsoft Corp Hierarchical virtualization with a multi-level virtualization mechanism

Also Published As

Publication number Publication date
US8479196B2 (en) 2013-07-02
JP5607474B2 (ja) 2014-10-15
KR20110033024A (ko) 2011-03-30
US20110072428A1 (en) 2011-03-24
US20120191948A1 (en) 2012-07-26
JP2011070663A (ja) 2011-04-07
US8479199B2 (en) 2013-07-02
TW201120752A (en) 2011-06-16
KR101296025B1 (ko) 2013-08-12

Similar Documents

Publication Publication Date Title
TWI509518B (zh) 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統
US10846145B2 (en) Enabling live migration of virtual machines with passthrough PCI devices
US10162655B2 (en) Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
Bugnion et al. Bringing virtualization to the x86 architecture with the original vmware workstation
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
EP1939754B1 (en) Providing protected access to critical memory regions
US8458698B2 (en) Improving performance in a nested virtualized environment
US10019275B2 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US20180081674A1 (en) Updating Machine Emulator
US11301283B1 (en) Virtualization extension modules
US11042485B2 (en) Implementing firmware runtime services in a computer system
TW201339971A (zh) 虛擬機器控制結構陰影化技術
US20160034300A1 (en) Information processing devicing and method
TW202147116A (zh) 監視處理器之操作之系統
KR102613643B1 (ko) 예외 처리
US10120709B2 (en) Guest initiated atomic instructions for shared memory page host copy on write
JP2018531462A6 (ja) 例外処理
US11169838B2 (en) Hypercall implementation in a virtualized computer system
US10127064B2 (en) Read-only VM function chaining for secure hypervisor access
US11210222B2 (en) Non-unified cache coherency maintenance for virtual machines
US20230161650A1 (en) Method and apparatus for inter-process communication, and computer storage medium

Legal Events

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