[go: up one dir, main page]

TWI308720B - Virtualizing physical memory in a virtual machine system - Google Patents

Virtualizing physical memory in a virtual machine system Download PDF

Info

Publication number
TWI308720B
TWI308720B TW095100745A TW95100745A TWI308720B TW I308720 B TWI308720 B TW I308720B TW 095100745 A TW095100745 A TW 095100745A TW 95100745 A TW95100745 A TW 95100745A TW I308720 B TWI308720 B TW I308720B
Authority
TW
Taiwan
Prior art keywords
memory
processor
host
client
virtual machine
Prior art date
Application number
TW095100745A
Other languages
English (en)
Other versions
TW200636572A (en
Inventor
Steven M Bennett
Andrew V Anderson
Gilbert Negier
Rajesh Sankaran Madukkarumukumana
Richard Uhlig
Larry Smith
Dion Rodgers
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 TW200636572A publication Critical patent/TW200636572A/zh
Application granted granted Critical
Publication of TWI308720B publication Critical patent/TWI308720B/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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • 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/657Virtual address space management

Landscapes

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

Description

l3〇872〇 « 九、發明說明: C發明戶斤屬之技術領域】 的技術領递 本發明係有關在虛擬機器系統内虛擬化實體記憶體的 5技術。 C ]1 明的技術背景 > 虛擬化技術使具有虛擬化硬體與軟體支援的單一主機 機态能呈現出多種主機抽象化動作,以使主機機器的基本 10硬體能以一或多個獨立運作的虛擬機器出現。各個虛擬機 器可因此作為一種自我含容平台。經常地,虛擬化技術可 允許多個客戶作業系統及/或其他客戶軟體能明顯同時且 明顯獨立地在多個虛擬機器上共存並且進行執行動作,而 同時能實際上在相同硬體平台上進行執行動作。虛擬機器 15可模擬主機機器的硬體,或者可替代地一同呈現出不同硬 I 體抽象化。 虛擬化系統可包括控制主機機器的虛擬機器監視器 (VMM)。V_對在虛擬機器中運作的客戶軟體提供一組資 源(例如,處理器、記憶體、10裝置)。VMM可把實體主機 20機器的某些或全部部件映射到虛擬機器中,並且可在VMM 中以軟體樣式模擬方式完全地產生可包括在虛擬機器中 (例如,虚擬10裝置)的虛擬部件。因此,可把VMM說明 為對客戶軟體提供一種、'虛擬裸機〃介面。VMM使用呈硬體 5 1308720 虛擬化架構的設備以對虚擬機器提供服務,並且對在主機 機器上進行執行動作的多個虛擬機器之間提供保護。 因為客戶軟體係在虛擬機器中執行,客戶軟體執行的某 些指令(例如,存取週邊裝置的指令)會正常地直接存取硬 5體,而該客戶軟體則直接地在硬體平台上執行《在VMM支 援的一種虛擬化系統中,該等指令可對VMM產生一項轉 變,在此稱為一虛擬機器出口(exit)。VMM將以適於使主機 機器硬體和主機機器週邊裝置能與上面執行有客戶軟體之 虛擬機器的-致方式來處置呈軟體形式的該等指令。相似 10地,在主機機器中產生的某些中斷與異常狀況可能需要受 到VMM的攔截與管理,或者在傳遞到客户軟體上以供進行 服務之前,由VMM使其能適應於客戶軟體。VMM隨後把 控制動作轉變到客戶軟體,並且虛擬機器將恢復操作。在 本文中,從卿1轉變為客戶軟體的動作稱為虛擬機器登錄 15 項。 眾所皆知地’在-機H上執行之大部分作#系統中的一 程序可使用-虛擬位址,其為基本實體記憶體系統的抽象 化。如技藝中已知地,當用於記憶體管理的脈絡中,例如''虛 擬位址"、''虛擬位址空間"、''虛擬記憶體位址,,或''虛擬記憶 20體空間〃之用語,,虛擬〃表示處理器式系統已知技術,其大致 上係與作業系統相關,代表基本實體記憶體對在處理器式 系統上執行之程序的抽象化。例如,—裎序可存取一虛擬、 連續、且線性化位址空間抽象化,其由基本作業系統映射 到非線性且非連續的實體記憶體。使用虛擬技術的此種方 1308720 式不同於在虛擬化脈絡中使用相同用語的方式,其中虛擬 化大致上稱為模擬實體機器的抽象化,例如''虛擬機器虛 擬裸機〃、x、虛擬硬體〃、''虛擬處㈣"或''虛擬網路介面〃。根 據本文的脈絡,此用s吾的思圖涵義對熟知技藝者來說是相 5 當清楚的。 第1圖展示出在一處理器式系統上執行的一種程序,其 σ 處理器以及由匯流排通訊式地搞合到該處理器的一 記憶體。請參照第1圖,當程序105參照其虛擬位址空間 U5中的5己憶體位置11〇時(程序虛擬記憶體空間),便由 10記憶體管理130產生對機器125之實體記憶體145(機器實 體》己憶體)中實際位址的__項參照,其可呈硬體(有時 結合到處理器12G中)以及軟體(大致上於該機器的作業系 統中)來實行。記憶體f理13Q使虛擬位址空間中的〜饭’、 映射到該機器之實體記憶體中的-位置。如第1圖所示置 15以*亥實體機器中可得的實體記憶體的角度來看,一程序可 具有圮憶體的不同視圖。在第1圖說明的實例中,讀浐序 在介於0至1MB的虛擬位址空間中運作,其實際上由★己情 體官理硬體與軟體映射為實體記憶體的-部4,該實體^ 2隐體本身具有介於1〇至iimB之間的位址空間;為了從浐 2〇序空間位址中計算出實體位址,可把差距135加入到讀= 序虛擬位址中。例如’從程序虛擬記憶體空間對 王 Η* β§己十意 的較複雜映射是可能的,對應於程序虛擬記憶體、 °、體可被劃分為數個部分(例如頁面),並且可與來自S 肢5己憶體之其他程序的頁面相交錯。 實 1308720 10 15 20 記憶體通常被劃分為數個頁面,各個頁面包含一已知數 量的資料’因著實行方案而不同’例如一頁面可包含4096 個位元組的記憶體。因為記憶體位置係受到執行程序的參 照,它們將被轉譯為頁面參照。在典型機器中,記憶體管 理使對程序虛擬記憶體中之一頁面的一項參照映射於機器 實體記憶體中的一頁面。大致上,記憶體管理可使用分頁 表來指定對應於一程序空間頁面位置的實體頁面位置。 在虛擬機器環境中,管理客戶軟體的—方面是記憶體管 理。由在虛擬機器中執行之客戶軟體所採取的處置記憶體 S理動作將對控制系統產生複雜性’例如虛擬機器監視 ^考畺一種系統,其中二個虛擬機器透過虛擬化 技^在32~位元1A·32 1他I®架構平WIA-32)上實行的主機 ^執行,此技術已於IA_32 Intel0架構軟體研發者手冊 (Γ^文件)中說明。1A_32平台可包括實行為1A-32處理器 其上刀的ΙΑ_32分頁表。再者’假設各個虛擬機器本身對在 、執行的客戶軟體呈現出ια·32機器的抽. ^ y 擬機器,批 m哪象化。在各個虛 上執行的客戶軟體可參照客戶程戽卢 址,龙γ 令尸杈序虛擬記憶體位 記憶體^ ㈣#為客戶實體 址。然而,客戶實體記憶體本身可 憶體中的、* 荠J由主機實體記 的進一步映射動作且透過VMM以及 硬體形十& ^ 叹王機處理器上呈 夕式的虛擬化子系統來實行。因此, 戶作業田客戶程序或客 統對客戶記憶體進行的參照,包_如對客戶 ,它刀Λ表控制暫存器的參照,必須隨後受,_的攔 截 ,〜 ' VMM 們無法在未受職-錢㈣直钱被傳遞到 主機 8 1308720 機器的IA-32分頁表,因為客戶實體記憶體實際上並不能直 接地對應於主機實體記憶體,但可反之進一步透過主機機 器的虚擬化系統而重新映射。 【發明内容】 5 發明的概要說·明 本發明揭露一種處理器,其包含:該處理器的一虛擬化 系統,該虛擬化系統包含有一記憶體虛擬化支援系統,該 支援系統包括用以使由可在一虛擬機器上執行之客戶軟體 對客戶實體記憶體作出之一項參照映射到對一主機機器之 10 主機實體記憶體之一項參照的一延伸分頁表,而該虛擬機 器又可在該主機機器上執行,且該處理器可在該主機機器 中操作。 圖式的簡要說明 15 第1圖展示出程序以及實體記憶體(習知技藝)之間的關 係性。' 第2圖抽象地展示出在一實施例中虛擬機器以及主機 機器之間的關係性。 第3圖展示出在一實施例中一種虛擬機器環境的高階 20 層結構。 第4a圖與第4b圖展示出在一實施例中一種虛擬機器環 境的處理方式。 第5圖展示出在一實施例中利用延伸分頁表的位址運 算方式。 9 1308720 第6圖展开· & 、出在一實施例中利用階層延伸分頁表的位 址運算方式。 苐7圖展:ίή + β。 出在—實施例中的一種延伸分頁表基址指 標器。 弟8圖展示出太 ^ 阳在—貫施例中的一種延伸分頁表登錄項。 【實施冷式】 第 2 HI B _ 一、 圖展示出一實施例中在主機機器上執行之 10 15 20 b個虛之間的關係性,特別是針 的映射動作。第2园θ _ 、、 尸錢體 圖展示出如何透過主機機器的虛擬化系 f重新映射客戶實體記㈣。各個虛擬機n,例如虛擬 機益A 242以及虛擬機器B 257,分職表示在虛擬機器 2作之客戶軟體的虛擬處理器犯與扭。各個機器提 ^體記憶體針對客戶㈣纽或其他客戶軟體、客戶實 =己It體240與2SG的分職象化。因為客戶軟體在虛擬 '器242與257上執行,它實際上是由主機處理器265上 的主機機器267彻主機實體記憶體26Q來執行的。 在此實施例巾’如第2圖所示,呈現為從虛擬機器a⑷ 之位址Q開始之—實體記憶體空間的客戶實體記憶體240 係映射到域實體記憶體26()的某些連續區域⑽中。相 似地,虚擬機器B 257中的客戶實體記憶體25〇則映射到 主機實體記憶體260的不同部分275令。如第2圖所示, 5亥主機機器可能具有1024 MB的主機實體記憶體。如果各 個虛擬機器242與257分派有256 mb的記憶體,一種可 10 1308720 能映射為虛擬機器A242分派有介於128至384 MB範圍, 而虛擬機器B 257則分派有介於512至768 MB的範圍。 虛擬機器242與257均參照介於〇至256 MB的客戶實體 位址空間。僅有VMM知悉各個虛擬機器的位址空間映射到 5主機實體位址空間的不同部分。 >展不於第2圖中的虛擬機器與記憶體映射僅為一種實 $例表述,在其他實麵巾,在主機機^上執行之虛擬機 f音實際數里可⑥彼此不同;主機機器與虛擬機器的實際 »己L'體大小可能因著虛擬機器而不同。此實例展示出一種 1〇記簡舞虛擬機器的簡單、連續配置方式。更大致上來說, 對&虛鞔機器配置的實體記憶體頁面可能不是連續的,且 主機實體§己憶體中分散而彼此交錯,且與屬於Vmm 與其他主機程序的頁面交錯。 _ 圖所展示地,呈現為系統中之虛擬機器的一種處 Γ式系統可在其所有複雜度中實行虛擬機器。因此,例 如|虛擬機ϋ可對客戶QS呈現出客戶實體記憶體的完整視 圖並且利用客戶〇s以及虛擬機器之虛擬處理器或其他虛 擬更體提供的記憶體管理對在虛擬機器上執行的客戶軟體 、'亍己U體官理。在一例示實施例中,虛擬機器可對客戶 20 OS 呈現 __ ^ , 立 ''種包括IA-32硬體支援的IA-32平台,例如供記 U體g理用的分頁表,並且實際上在主機平台上執行其 亦為種包括供記憶體管理用之IA-32硬體的IA-32平 ° 在此實施例中,並不需要額外的機構,一種虛擬化系 貝矛】用IA-32分頁表複製形式(shadowing)(作為一種 11 1308720 :的解決方案)而在_中實行_種實體記憶體虛擬化 \法卩重新映射、劃分並且保護實體記憶體。因此, 例如,虽客戶軟體嘗試著存取虛擬機器的ia_32分頁表時, M必4把虛擬化所需的功能(例如,重新映射實體位址) 5疊合到客戶〇s所需的功能中。 於此,咖必須要抑制由客戶軟體使用分頁機構週邊 的多種不同事件。此動作包括寫入到控制暫存器中,例如 IA-32記憶體管理系統的控制暫存器(例如,⑽、咖與 C4) ’存取與分頁與記憶體存取相 叫嘴例如,記憶_範圍暫存器(贿 異常(例如’頁面錯誤),如1A-32文件中所述地。使用IA_32 分頁表來虛擬化實體記憶體是複雜的,並且會摘取出-重 要效能附加内容。 差j~l··第3圖展示出一種虛擬機器環境3〇〇的實施 15例。在此實施例中’處理器式平台316可執行侧312。 儘管典型上係呈軟體來實行,VMM可模擬並且輸出虛擬裸 機介面到較㈣層軟體。該種較高階層軟體可包含標準 OS、即時os’或可為具有有限作業系統功能的拆開式 (stripped-down)環i竟,且在某些實施例中可能不包括標準 2〇 os中可得的os設備。例如,替代地,VMM 312可在另— 個VMM中運轉,或者可利用另一種服務。例如,VMM可 主硬體、軟體、勤體或各種不同技術的組合來實行。 平台硬體316可為個人電腦(p〇、大型主機、手持式裝 置,例如個人數位助理(PDA)或、'智慧型"行動電話、可攜式 12 1308720 10 15 20 電腦、機上盒、或另一種處理器式系統。平台硬體316包 括至少一處理器318以及記憶體32〇。處理器318可為能 執行程式的任何類型處理器,例如微處理器、數位信號處 理器、微控制器等。處理器可包括供在實施例中進行執行 動作的微碼、可規劃邏輯、或者硬碼邏輯。雖然第3圖僅 展不出一個該種處理器318,在一實施例中,該系統中可 有一或多個處理器。此外,處理器318可包括多個核心, 支援夕個執行緒等。在各種不同實施例中,記憶體可 包含硬碟、軟碟、隨機存取記憶體(RAM)、唯讀記憶體 (R〇M)、快閃記憶體、上述裝置的任何組合、或處理器318 可讀取的任何其他類型機器媒體。記憶體320可儲存用以 進行程式執行動作以及其他方法實關的指令及/或資料。 VMM 312對客戶軟體呈現_或多個虛擬機器的抽象 :匕’其可對各種不同客戶軟體提供相同或不同的抽象化。 第3圖展示出二個虛擬機器3〇2與314。客戶軟體,例如 在各個虛擬機器上運轉的客戶軟體3Q3與313,可包括客 戶,例如客戶os 304或3〇6,以及各種不同客戶軟體 應用程式308與310。客戶軟體3〇3與313可存取虛擬機 器中的實體資源(例如’處理器暫存器、記憶體與ι/〇裝 置)’而客戶軟體303與313正在該虛擬機器上運轉以進^ 其他功能。例如,根據在虛擬機器啦與314中呈^ ==與Γ架構,客戶軟體303與313期望具有對所 有暫存"、快取記憶體、結構、1/◦裝置、記憶體等的存取 13 1308720 在一貫施例中’處理器318根據儲存在虛擬機器控制結 構(VMCS)324中的資料來控制虛擬機器3〇2與314的操 作。VMCS 324為一種包含客戶軟體3〇3與313之狀態、 VMM 312之狀態、指出侧312如何希望控制客戶軟體 ‘ 5 303與313操作之執行控制資訊、控制VMM 312以及虛擬 機器等之間之轉變資訊的結構。處理器318從VMCS 324 讀取資訊、判定虛擬機器的執行環境、並且限制其行為。 # 在一實施例中,VMCS 324係儲存在記憶體32〇中。在某 些實施例中,多個VMCS結構可用以支援多個虛擬機器。 ίο V|V|M 312可能需要管理在虛擬機器302與314中運轉 之客戶軟體可存取的實體記憶體。在一實施例中為了支 援實體記憶體管理,處理器318提供一種延伸分頁表阳丁) 機構。在該實施例中,VMM 312彳包括提供與實體記憶體 虛擬化相關聯之攔位值的實體記憶體管理模組326,其可 15㊣需要在把控制動作轉變為虛擬機g 302《314之前先備 # f。该等攔位整體地稱為EpT控制。例如,EPT控制可包 . 括指定EPT機構是否應該受到致能的Ερτ致能指示器,以 .及扣出貝體§己憶體虛擬化機構之形式以及語義的一或多個 EPT表組態控制。以下將更詳細地說明此部分。此外,在 20 -實施例中’ EPT表328指出v刚312可配置在客戶軟體 303與313上的實體位址轉變以及保護語義。 在一實施例中,EPT控制係儲存在VMCS 324中。替代 地’ EPT控制可常駐在處理器318中、記憶體32〇與處理 器318的組合中、或在任何其他一或多個儲存位置中。在 14 1308720 一實施例中’將針對各個虛擬機器302與314來維持分別 的EPT控制。替代地,將針對二個虛擬機器來維持相同的 EPT控制,並且在各個虛擬機器登錄項之前,EPT控制將 受到VMM 312的更新。 5 在一實施例中,EPT表328係儲存在記憶體320中。替 代地,EPT表328可常駐在處理器318中、記憶體;320與 處理器318的組合中、或在任何其他一或多個儲存位置 中。在一實施例中,將針對各個虛擬機器3〇2與314來維 持分別的EPT表328。替代地,將針對二個虛擬機器302 10與314來維持相同的EPT表328,並且在各個虛擬機器登 錄項之前’ EPT表328將受到VMM 312的更新。 在一實施例中,處理器318包括負責判定EPT機構是 否根據EPT致能指標器而受到致能的ep丁存取邏輯m2。 如果EpT機構受到致能,處理器將根據EPT控制以及Ερτ 15表328把客戶實體位址轉譯為主機實體位址。 在田中系統300包括多個處理器或多執行緒處理器的 一實細例中,各該等邏輯處理器係相關聯於一分別Ερτ存 取邏輯322,並且VMM 312將針對各個該等邏輯處理器組 配EPT表328以及EPT控制。 2〇 可由客戶軟體(例如303,包括客戶〇S 304以及應用程 式3〇8)存取的資源將被分類為'λ享有特權的(privileged)" 的貧源或”未享有特權的(n〇n-privileged)w的資源。針對享 有特權的資源,VMM 312促進客戶軟體的所欲功能,而同 時保有對該等享有特權資源的最終控制。再者,各個客戶 15 1308720 軟虹303與313期望要處置各種不同平台事件,例如異常 狀况(例如頁面錯般保護錯誤等)、巾斷狀況(例如, 硬體中斷、軟體中斷)、以及平台事件(例如,初始化( 以及系統管理中斷(SMI))。某些該等平台事件為''享有 5的",因為它們必須要受到v_312的處置,以確 機器302與314的適切y从 錢 、刀刼作以及來自客戶軟體的保護。 戶作業系統與客戶廣用主σ 4 …用釦式均可嘗試著存取享有特權 源,並且產生或經歷享有特權的事件。本文中^ >有特權事件"或〃虛擬化事件"。 拇馮旱 作,例如前秘第3”巾、,虛擬_環境的操 中的處理動作來說明1 _係、以第4a圖與第4b圖 的操作,以處理發生在宏3圖展示出一實施例中VM環境 由客戶軟體處理未享有特體中的享有特權事件;以及 展示出-實施例中VM環产I之實施例的操作。第4b圖 頁表以及對客戶實體記憶體見 = 呆作’特別是有關於延伸分
對呈硬體之EPT機構的營理 戶叙存取,以及由VMM 說明發生例如第3圖之如^作。第&圖與第4b圖並不 20 僅是為了說明清楚的心二^所有部件或所有操作。這 操作係展示於第4a圖邀證K S小組°卩件以及數個特定 '、年知圖中,扃一普# 境可包含許多其他部件,且。 貫知例中,VM環 操作。 彳在該實施㈣進行許多其他 16 1308720 首先說明第4a圖。帛4a圖展示出在虛擬機器抽象化 302上執行之客戶軟體3G3的-組例示操作,以及先前於 第3圖中說明的平台硬體316。該等操作係於指出它們會 在系統中何處發生(例如在VMM 312中、在客戶軟體3〇3 5中等)的方塊中說明。除了前述VMif境的其他部件之外, ,. VM抽象化302可在步驟412中儲存虛擬機器狀態以及客 戶軟體303的其他狀態資訊,並且亦可提供其他資源,例 • 如對客戶軟體的虛擬網路連線或-般暫存器μ等等。當 然’實行vm狀態、客戶軟體狀態、以及其他vm資源的; 10體資源實際上係由平台硬體316提供,而VM則是在其上 執行。平台硬體包括記憶體32Q、VMCS 324以及處理器 318。 在步驟440中,客戶軟體3〇3存取未享有特權的資源 442。未享有特權的資源並不需要受到v_ 312的控制, .I5 ϋ且可由客戶軟體直接地存取,其持續操作但不喚起 參 312’進而允許客戶軟體在存取未享有特權的㈣4犯之 後,持續步驟445中進行操作。未享有特權的平台事件可 .同樣地受到處置,而不必VMM 312的干預(未展示於第柏 圖中)。 20纟步驟405中,客戶軟體303嘗試著存取享有特權的 資源、及/或經歷享有特權的平台事件。當在步驟4〇5中發 生該孕有特權事件日寺,控制動作可轉移(步驟4〇7)到v_ 312。從客戶軟體轉移控制4〇7到VMM 312的動作在本文 中考冉為-虛擬機器出口。在促進資源存取或反之適當地處 17 1308720 置旱有特權的事件時,VMM 312可把控制動動作送回到客 戶軟體(步驟432),其隨後將恢復操作(步驟435)。在本文 中’從VMM 312轉移控制432到客戶軟體的動作稱為一虛 擬機器登錄項。在-實施例中,VMM31M著執行特別設 5計以觸發該項轉變的指令(其在本文中稱為一虛擬機器登 錄項指令)來啟始一虛擬機器登錄項(步驟43〇),。 在一實施例中,當一虛擬機器出口發生時,將保留客戶 軟體使用之處理器狀態的部件(步驟41〇),載入VMM 312 所需的處理器狀態部件,並且在步驟42〇恢復於 10中進行的執行動作。在一實施例中,將把客戶軟體使用的 處理器狀態部件儲存在VMCS 324的客戶轉體狀態區域 中,而把VMM 312所需的處理器狀態部件儲存在VMcs 324的監視器狀態區域中。在—實施例中當發生從侧 =2轉換到客戶軟體的—項動作時,將恢復保留在虛擬機 15益出°上的處理器狀態部件(可能已受到VMM 312的修改 而同時處理該虛擬機器出口)(步驟425),並且控制動作將 在步驟430中返回到虛擬機器302或314。 妾下來將6兒明第4b圖。如前所述,第4b圖展示出上 以及在一實施例中於第4a圖中說 [表、對客戶實體記憶體之客戶程 述VM環境的該等操作,以及 明而特別有關於延伸分頁表、 式存取’以及由\/ΜΚΛ ώ!袖η —
以及由VMM管理呈硬體形式之Ερτ機構的方式。 入妖1因将疋操作係展示於第北圖中,在— ,第4b圖並未說明在一實 6所有部件或所有操作。儘 18 1308720 實施例中,VM環境可包含許多其他部件,並且可在該實施 例中進行許多其他操作。 在第4b圖實施例中的VM環境部件為客戶軟體3〇3、 VM 302、具有實體記憶體管理模組326的VMM 312、以及 5平台硬體或實體機器316。平台硬體另包含記憶體320,其 .在此實施例中包括一組EPT表328以及VMCS 324 ;以及 具有EPT存取邏輯322的處理器318。大致上,當對客戶 • 實體記憶體進行存取時(例如由客戶軟體303),係由客戶軟 體啟始在平台硬體中使用EPT設備的動作,如第4圖的步 10驟450所示。客戶實體記憶體存取表示3〇2提供之記 憶體451㈤VM抽象化,其依次地表示實體機器316。如 果致能了 EPT機構’平台硬體316可彻EPT存取邏輯 322以及EPTS 328來處理對客戶實體記憶體的VM參照, 以把對客戶實體記憶體的一存取動作轉譯為對主機實體記 • 15龍320的-存取動作。以下將參照第s圖與第6圖來說 0 EPT操作的細節。 • EPT機構本身可由V_ 312來組配,其组配可儲存在 • VMCS 324中的EPT表328與EPT控制。在此實施例中, 可由VMM312接續著在漏312中處理享有特權的事件 405的動作且在VM登錄項430之前,進行Ερτ機構的組 態作為實體記憶體管理模組326的操作步驟。在組配Ερτ 機構時,VMM 312可更新EPT表328與Ερτ控制,以便 致能、使其失效、或反之控制ΕΡΤ機構(步驟46〇)。 19 1308720 理^^^環妙使用㈣分頁表的許多其他處 例如觔面參照弟3圖討論之Ep丁巧击,丨 與 EPT 表 328 的 5 10 15 20
叼不问位置、多個VM、多個處理写、多個 執行緒、多個客戶軟體、以及該等的組合等。D 的延ΐίΐ·/、5圖展示出一種處理動作實例’其利用上述 刀 以在一虛擬機器中的客戶軟體參,昭—客戶严 擬位址時,最終地 ,、、客戶虚 的32你- h °异—主機實體位址。此實例利用簡單 虛擬定址技術以及簡單的分頁表格式展干出在 ΙΑ-32平台中運鞋的办 巧展不出在 此實例,以了解㈣戶軟體。熟知技藝者將可容易地延伸 J如其他分頁模式(例如,客戶敕 位元定址)、其侦扣人 子人體〒的 刪構(例如,如英特爾公司出品之 卞構軟體研發者手冊中指 刪⑽架構)或者其他組態。 在第圖中對客戶虛擬位址训的—項參 擬機器中執行的客戶敕 、係由在虛 ㈣^㈣卜 客戶軟體中作用的記 =“::,戶作業系統來組配)可用以把虛擬 … #貫體位址。在存取主機實體記憶體之 前’用於此轉譯動作中的各個客戶實體位址以及所得的客 戶實體位址將透過ΕΡΤ而轉譯為主機實體位址。以下將詳 細說明此程序。 在此實射,CR3暫存器52〇中的適當位it 5〇2將指 出客戶實體記憶體中客戶頁面目錄表56〇中的基準。根據 IA-32語義’此數值502係與來自客戶虛擬位址51〇的上 位元結合(適當地經過調整,如藉著乘以4,因為在此實例 20 1308720 中,該表中的登錄項各為4個位元組),以形成客戶叩表 560中頁面目錄登錄項(PDE)的客戶實體位址512。此數值 512將透過EPT表555轉譯,以形面目錄登錄項的主 機實體位址504。處理器將利用此主機實體位址5〇4來存 5 取頁面目錄登錄項。 來自PDE的資訊包括客戶分頁表57〇的基址。此客戶 實體位址522係與適當地調整的客戶虛擬位址51〇位元 21:12結合,以在客戶分頁表57Q中形成分頁表登錄項的 客戶實體位址532。此客戶實體位址532係透過EPT表565 1〇轉譯’以形成客戶分頁表登錄項(PTE)的主機實體位址 514。處理器將利用此主機實體位址514來存取ρτΕ。 來自PTE的資訊包括受存取之客戶實體記憶體中的基 址542。此數值係與客戶虛擬位址51㈣低順序位元(11:〇) 結合,以形成正受存取之記憶體的客戶實體位址552。此 15數值552係透過EPT表575轉譯,以形成正受存取之記憶 體的主機實體位址524。 每田EPT表用來把客戶實體位址轉譯為主機實體位址 時,處理器亦根據EPT表中的控制動作驗證存取動作得到 允許,如以下所述。此外,必須要了解的是,雖然在第5 圖中表不為 >別的圖表,在—實施例中,抓表奶、565 與575可為相同組的印丁表(即單—組的π表可用來 作為仗客戶只體對主機實體進行的所有位址轉譯動作)。 、第6圖展示出另—種處理動作實例,其利用上 述的k伸頁表以最終地利用多階層表把客戶實體位 21 l3〇872〇 址轉譯為主機實體位址。在展示於第6圖的例示實施例 中’ EPT基準指標器(EPTP)620中的適當位元602可指出 第·'階層EPT表650之基礎的主機實體位址,其在此實施 例中係儲存在主機實體記憶體中。以下將參照第7圖詳細 地說明EPTP。在此實例中,EPT表中的登錄項各為8位元 組。來自客戶實體位址610(601)的位元38:30係藉著乘以 _ 8而經過適當地調整(例如,藉著把該數值往左移3個位 疋)’以取得經調整的上客戶實體位址603。EPT表基址值 602係與該經調整上客戶實體位址位元603結合(加入), 進而在第一階層EPT表650中形成EPT表登錄項651的主 機實體位址604。以下將參照第8圖來討論第一階層Ερτ 表650中一種例示登錄項(例如651)格式,以及其他Ερτ 表660與670中的登錄項。 EPT表登錄項651的部分為下一階層EpT表66〇的基 _ 止612。第二經調整位址部件613係由客戶實體位址61〇 的位元29:21(611)形成。此經調整數值將與基址612結合 (加入),以在下一階層EPT表660中形成EPT表登錄項661 的主機實體位址614。該處理器將利用此主機實體位址614 來存取EPT表登錄項661。 2〇 來自EPT表登錄項661的資訊包括最後EPT表670的 基址622。在適當地調整以在最後Ερτ表67〇中形成Ερτ 表登錄項671的位址624之後,此基址622係與客戶虛擬 位址610的經調整位元20:12(623)結合。處理器將利用此 主機實體位址624來存取ερτ表登錄項。 22 體來自EPT表登錄項671的資訊包括正在主機實體記憶 690中雙到存取之頁面的基址632。此頁面位址值690 將與客^ g ^ 、 貫體位址610的低順序位元(11:0)結合,以形成 正文存取之記憶體的最後主機實體位址634。 在展示於第6圖的例示實施例中,EPT表為階層體系式 匕們在形式上相似於傳統的多階層分頁表。再者,在 此汽例中,各個EPT表中的各個Ερτ表登錄項為8位元組 大小 雖然在其他實施例中,此大小可能不同,進而改變 存取5亥表的技術,如熟知技藝者可了解地。在此實例中, 各個EPT表為4 KB大小。在其他實施例中,可使用不同大 】、的表,再者,並不需要一階層體系中的所有表均如第6 圖中展示地具有相同大小。大小的改變可能會影響客戶實 體位址使用的位元數f,以把EPT表的下一階層編入索 引。對熟知技藝者來說,許多其他EPT表組態均是可能的。 在此圖中說明的階層體系式組態展示出3個階層體系 P白層,而以EPT表650與660分別作為對較低階層EpT表 660與670的索引。在其他實施例中,在該階層體系表中 可成有較少的階層體系階層’例如二個階層或更多個階 層,例如4個階層。大致上,階層體系的階層數量可不同, 至少部分地根據客戶實體位址中的位元數量、各個表的大 小、以及各個表登錄項中位元組的數量中的一或多個而 定。在第6圖的實例中,客戶實體位址為32位元大小。在 其他實施例中’客戶實體位址可為不同大小;此種大小改 變可能需要EPT表的階層數量改變,其為進行一項轉譯所 Ϊ308720 需的。例如,如果客戶實體位址為48位元,便需要4個階 層的EPT表來進行此項轉譯(假設在各個階層上的4 KB EpT表以及各個EPT表中8位元組的EPT表登錄項)。 在展示於第6圖的實施例中,EPT控制包括單一攔位, 5 EPT指標器(EPTP)。此欄位包含第一階層EPT表的基礎位 址。在此實例中’各個EPT表為4 KB大小。 蓋圖:如第7圖的例示實施例所示,EPT基址指標器 (EPTP)包括用以形成第一階層Ερτ表之基礎的基址(於主 機實體記憶體中)位元,如上面於第6圖中所述。在展示於 1〇第7圖的實例中,位元59:12形成該基址。假設位元11:〇 以及63:60為0。當然,在其他實施例中,各種不同位元 攔位的寬度可不同,例如基址欄位將根據一特定架構或實 行方案中的位址位元數量而改變。在其他實施例中,Ερτρ 暫存器中的剩餘位元可用於其他用途中。在一實施例中, 15僅可透過虛擬機器登錄項或虛擬機器出口來存取EPTp暫 存器。在該實_巾,可在虛擬機器登_的時間從败s 中的EPTP欄位來載入該處理器中的日叩暫存器進而在 客戶軟體運作時啟動EPT機構。如上所示,此啟動動作(以 及載入EPTP攔位)可在VMCS或他處中受到其他控制位元 20的控制。 此圖式展示出- EPT表中的例示登錄項格式 實施例。在此實例中’ EPT表中的各個登錄項為8位元組 大小。在一實施例中,各個EPT表為4 KB大小,其表示每 個E PT表頁面中有5 ί 2個E PT表登錄項。如第8圖的實例 24 1308720 所示,各個EPT表登錄項包含記憶體(ADDR)以及允許與其 他組態資訊中下一階層EPT表或頁面的基本主機實體位 址。如前所述,在其他實施例中,各種不同位元欄位的寬 度可有所不同,例如可以根據特定架構或實行方案中的位 5 址位元數量來改變ADDR的寬度。第8圖僅展示出2個允 許位元,”在場的(present)〃允許位元以及”可寫入"的允許位 元。在其他實施例中,其他允許與組態資訊可出現在各個 EPT表登錄項中。例如,在一實施例中,允許位元將指出 是否可執行記憶體的一頁面(即,是否可由處理器擷取頁面 10 内容並且把其解譯為指令)。 EPT表可呈多種不同格式。例如,它們可實行為一種簡 單的階層體系表,如第6圖所示。替代地,它們可為單一 階層分頁表(其中第一階層EPT表的大小指定客戶實體位 址空間的最大大小)。替代地,它們可為某種形式的雜湊 15 表。熟知技藝者將可了解的是,在其他實施例中,各種各 樣的組態均是可能的。 EPT表可支援主機實體記憶體中一或多個大小的頁 面。在一實施例中,各個EPT表中的各個登錄項包括指出 EPT表的距離應該要在該點停止的一超級頁面位元,以及 20 利用EPT表登錄項中之位址資訊形成的主機實體位址以及 客戶實體位址中的剩餘位元。例如,在展示於第6圖的實 例中,如果在EPT表660中設定了超級頁面位元,主機實 體記憶體中的所得頁面將為2 MB大小,並且可藉著合併客 25 13〇872〇 戶實體位址610的位元2〇:〇以及來自ept表660的位址 饭元而形成所得的主機實體位址。
在某些實施例中,可由虛擬機器登錄項來致能延伸分頁 表與ΕΡΤ位址轉譯機構,並且由虛擬機器出口使其無效。 因此,ΕΡΤ機構可能無法由客戶軟體或vmm軟體來管理其 本身的位址轉譯動作。再者,在該等實施例中,Ep丁機構 可不同於且獨立於客戶軟體或主機軟體可得的其他習知記 %體頁面官理機構,例如IA_32實施例中的IA_32分頁表, 雖,然EPT操作可使用習知頁面管理機構的特徵。因此,Ep丁 2的組織與操作可完全不同於處理ϋ提供之用以直接地在 轉機機器上進行程式之習知執行程序以及操作的其他頁面 華叹備’其與使用主機機器之虛擬化與ΕΡΤ機構的客戶 形2仃動作相反。在—實施例中,ΕΡΤ機構可使用相同 15戶=的表如習知頁面管理機構實施例所使用的,其為客 不同^與々VMM軟體可得的。然而’控制ΕΡΤ機構的表仍可 作白等控制把客戶虛擬位址轉譯為客戶實體位址之動 之動作該等控制把主機虛擬位址轉譯為主機實體位址 2 0體記惋、所提供的實例可說明在虛擬機器系統中提供對實 中,可利虛擬化的支在執行單元與邏輯電路的脈絡 作為包Z敕體來完成其他實施例。可提供某些實施例來 品或軟體有指令之機器或機器可讀媒體的軟體程式產 的程序。/等指令在受機器執行時可進行本發明實施例 〇他實知财’程序可能由特㈣硬體部件來 26 1308720 進行,其包含用以進行該等程序的硬佈線邏輯或者經規劃 部件與定製硬體部件的任何組合。 在前面的說明中,為了解說目的,已列出多種特定細節 以便提供本發明的完整說明。然而,熟知技藝者可了解的 5 是,不需要該等特定細節亦能實現本發明。 本發明詳細說明中的某些部分係以處理器式系統中演 算法以及資料位元運作的符號表述型態來進行說明。熟知 技藝者可使用該等演算描述以及表述型態來對其他技藝者 傳遞其工作本質的技術。該等操作為需要實體數量之實體 10 操縱的操作。該等數量為能受儲存、傳輸、合併、比較或 者操縱的電性、磁性、光學或其他實體信號形式。目前已 證明出以位元、數值、元件、符號、字元、用詞、數字等 來表示該等信號的方式是相當方便的,主要是為了通用的 緣故。 15 然而,應該要了解的是,所有該等以及相似用語係與適 當實體數量相關聯,並且僅為適用於該等數量的便利歸類 方式。要了解的是,除非特定指出之外,如以下發明說明 所示,在本發明說明中,例如λ'執行〃、”處理〃、λλ運算"、λ'計 算〃、''判定〃等用語係表示處理器式系統或者相似電子運算 20 裝置的動作及/或程序,其把處理器式系統之儲存體中的實 體資料操縱並轉換為以其他該等資訊儲存體、傳輸或顯示 裝置中實體數量相似地表示的其他資料。 在實施例的詳細說明中,將參照展示出附隨的圖式來進 行說明。在圖式中,相似的元件編號表示實質上相似的部 27 1308720 件。可對其他實施例進行結構性、邏輯性以及電性的變化。 再者,應該要了解的是,雖然本發明的各種不同實施例均 有不同之處,它們未必是具有互相排他性的。例如,本文 中針對一實施例而說明的一項特定特徵、結構、或特色可 5 包括在其他實施例中。 再者,可實行於處理器中的實施例設計可經歷過從產生 到模擬到製作的各種不同階段。代表一項設計的資料可表 示數種設計方式。首先,如可用於模擬動作中,可利用硬 體描述語言或其他功能性描述語言來表示硬體。此外,可 10 於設計程序的某些階段產生具有邏輯及/或電晶體閘極的 電路位準模型。再者,在某個階段中,大部分的設計可到 達一資料位準,其表示在該硬體模型中各種不同裝置的實 體配置資料。在當中使用習知半導體製程技術的實例中, 代表硬體模型的資料可為針對用來產生積體電路的遮罩而 15 指定不同遮罩層上各種不同特徵之出現或缺席的資料。在 任何設計的表述中,該資料可呈機器可讀媒體來儲存。經 調變或產生以發送該種資訊的光學或電波、或記憶體、或 磁性或光學儲存體(例如碟片)可為機器可讀媒體。任何該 等媒體可”攜載"或λλ指出〃該設計或軟體資訊。當發送指出或 20 攜載程式碼碩或設計的電性載波時以供進行複製、緩衝、 或重新發送電子信號時,便會產生一份新副本。因此,通 訊供應者或網路供應者可製作物品(載波)的副本,其構成 或代表一實施例。 28 13〇872〇
可提供實施例以作為一種包括儲存有資料之機器可讀 媒體的程式產品’該資料在受機器存取時可令該機器進= 根據本發明請求項目的程序。機器可讀媒體包括二不1 於:軟碟、光碟、DVD-ROM碟片、DVD-RAM碟片、dvd_rw 碟片、DVD+RW碟片、CD-R碟-片、CD_rw碟片、cd r〇m 磲片、以及磁性光學碟片、r〇m、rAM、eprqm、eeprqm、 磁鐵或光學卡、快閃記憶體、或適於儲存電子指令的其他 類型媒體/機ϋ可讀媒體。再者,亦可下載實_作為程式 產品,其中可利用體現在載波或其他傳播媒體中的資料信 號而透過通訊鏈結(例如,數據機或網路連線)從遠端資料 來源把該程式傳輸到提出要求裝置。 、 、已最基本形式來說明許多方法,在不偏離本發明請 求項目之基本範圍的條件下,可把多個步驟加入到任何該 等方法中或者從其中刪除,並且可把資料加入到任何上述 4息中或從其中刪除。熟知技藝者可了解的是,可進行許 多進-步的修正方案與適用方案。該等特定實施例並不: 圖限制本發明請求的項目而是用以展示出本發明的請求項 目。树崎求項目的範圍並不受到上面提供之特定實例 、旬疋而僅焚到以下申請專利範圍的限制。 20 【圖式簡單說明】 第1圖展示出程序以及實體記憶體(習知技藝)之間 係性。 第2圖抽象地展示出在一實施例中虛擬機器以及主機 機器之間的關係性。 29 1308720 第3圖展示出在一實施例中一種虛擬機器環境的高階 層結構。 第4 a圖與第4 b圖展示出在一實施例中一種虛擬機器環 境的處理方式。 5 第5圖展示出在一實施例中利用延伸分頁表的位址運 算方式。 第6圖展示出在一實施例中利用階層延伸分頁表的位 址運算方式。 第7圖展示出在一實施例中的一種延伸分頁表基址指 10 標器。 第8圖展示出在一實施例中的一種延伸分頁表登錄項。 【主要元件符號說明】 105 程序 245 虛擬處理裔 110 記憶體位置 250 客戶實體記憶體 115 虚擬位址空間 255 虛擬處理器 120 處理器 257 虛擬機器B 125 機器 260 主機實體記憶體 130 記憶體管理 265 主機處理器 135 差距 267 主機機器 140 實際位址 270 經映射客戶實體記憶體 145 實體記憶體 275 經映射客戶實體記憶體 150 匯流排 300 虛擬機器環境 240 客户實體記憶體 302 虛擬機器 242 虛擬機器A 303 客戶軟體 30 1308720
304 客戶作業系統(os) 430 步驟方塊 306 客戶作業系統(OS) 432 步驟方塊 308 客戶軟體應用程式 435 步驟方塊 310 客戶軟體應用程式 440 步驟方塊 312 虛擬機器監視器(VMM) 442 資源 313 客戶軟體 445 步驟方塊 314 虛擬機器 450 步驟方塊 316 處理器式平台 451 步驟方塊 318 處理器 452 步驟方塊 320 記憶體 455 步驟方塊 322 延伸分頁表(EPT)存取邏 460 步驟方塊 輯 502 位元 324 虛擬機器控制結構 504 主機實體位址 (VMCS) 510 客戶虛擬位址 326 實體記憶體管理模組 512 客戶實體位址 328 延伸分頁表(EPT) 514 主機實體位址 405 步驟方塊 520 CR3暫存器 407 步驟方塊 522 客戶實體位址 410 步驟方塊 524 主機實體位址 412 步驟方塊 532 客戶實體位址 415 步驟方塊 542 420 步驟方塊 552 客戶實體位址 425 步驟方塊 555 延伸分頁表(EPT) 31 1308720 560 PD表 622 iJal: 565 EPT表 623 經調整位元 570 分頁表 624 主機實體位址 575 EPT表 631 位元 601 位元 632 602 位元 634 主機實體位址 603 上客戶實體位址 650 第一階層EPT表 604 主機實體位址 651 EPT表錄項 610 客戶實體位址 660 EPT表 611 位元 661 EPT表登錄項 612 基址 670 EPT表 613 第二經調整位址部件 671 EPT表登錄項 614 主機實體位址 690 主機實體記憶體 620 EPT基準指標器(EPTP) 32

Claims (1)

1308720 十、申請專利範圍:
10 15
20 第95100745號申請案申請專利範圍修正本 97.11.04. 1. 一種可支援記憶體虛擬化之處理器,其包含: 該處理器的一虛擬化系統,該虛擬化系統包含有一記憶 體虛擬化支援系統,該支援系統包括用以使由可在一虛 擬機器上執行之客戶軟體對客戶實體記憶體作出之一項 參照映射到對一主機機器之主機實體記憶體之一項參照 的一延伸分頁表,而該虛擬機器又可在該主機機器上執 行,且該處理器可在該主機機器中操作。 2. 如申請專利範圍第1項之處理器,其中該記憶體虛擬化 支援系統另指定對存取動作的限制,並且根據該等限 制,控制對該客戶實體記憶體之一位置的存取動作。 3. 如申請專利範圍第1項之處理器,其中該記憶體虛擬化 支援系統另劃分該主機機器的該主機實體記憶體。 4. 如申請專利範圍第2項之處理器,其中該虛擬化支援系 統響應於試圖要違反該等限制而存取記憶體的一動作, 轉變為一虛擬機器監視器。 5. 如申請專利範圍第1項之處理器,其中該延伸分頁表另 把對客戶實體記憶體之一頁面的一項參照映射到對主機 實體記憶體之一頁面的一項參照。 6. 如申請專利範圍第5項之處理器,其中該延伸分頁表指 定用於客戶實體記憶體之一頁面的一項存取限制。 7. 如申請專利範圍第6項之處理器,其中用於客戶實體記 憶體之一頁面的該存取限制包含下列項目中至少一項: 33 1308720 ?忤丨/月★曰修(氣〕正替換頁丨 讀取存取控制資訊; " 寫入存取控制資訊;以及 執行存取控制資訊。 8. 如申請專利範圍第6項之處理器,其中該虛擬化系統響 5 應於違反用於客戶實體記憶體之一頁面的該存取限制之 狀況,轉變為一虛擬機器監視器。
9. 如申請專利範圍第5項之處理器,其中該延伸分頁表包 含一個多階層延伸分頁表。 10·如申請專利範圍第1項之處理器,其中僅在該虛擬化系 10 統的一旗標設定為一預定值時,才響應於該處理器之該 虛擬化系統的啟動動作,使該記憶體虛擬化支援系統啟 動。 15 20 11_ 一種允許進行記憶體虛擬化之方法,其包含下列步驟: 利用一處理器式主機機器的一延伸分頁表,使由可在一 虛擬機器上執行之客戶軟體對客戶實體記憶體作出之 一項參照映射到對該處理器式主機機器之主機實體記 憶體之一項參照,該虛擬機器可在該處理器式主機機器 上執行。 12. 如申請專利範圍第11項之方法,其另包含指定對存取 動作的限制,並且根據該等限制,控制對該客戶實體記 憶體之一位置的存取動作。 13. 如申請專利範圍第11項之方法,其另包含劃分該主機 機器的該主機實體記憶體。 34 1308720
14. 如申請專利範圍第12項之方法,其另包含一虛擬化支 援系統響應於試圖要違反該等限制而存取記憶體的一動 作,而轉變為一虛擬機器監視器。 15. 如申請專利範圍第11項之方法,其另包含把對客戶實 5 體記憶體之一頁面的一項參照映射到對主機實體記憶體
10 15
20 之一頁面的一項參照。 16. 如申請專利範圍第15項之方法,其中該延伸分頁表指 定用於客户實體記憶體之一頁面的一項存取限制。 17. 如申請專利範圍第16項之方法,其中用於客戶實體記 憶體之一頁面的該存取限制包含下列項目中至少一項: 讀取存取控制資訊; 寫入存取控制資訊;以及 執行存取控制資訊。 18. 如申請專利範圍第16項之方法,其另包含響應於違反 用於客戶實體記憶體之一頁面的該存取限制之況狀,轉 變為一虛機器監視器。 19. 如申請專利範圍第15項之方法,其中該延伸分頁表包 含一個多階層延伸分頁表。 20. 如申請專利範圍第11項之方法,其另包含僅在該處理 器之一虛擬化系統的一旗標設定為一預定值時,才響應 於該虛擬化系統的啟動動作,啟動一記憶體虛擬化支援 系統。 21. —種可支援記憶體虛擬化之處理器式系統,其包含: 35 1308720
10 15
20 酸丨(月糊•(幾)正 一處理器的一虛擬化系統,該虛擬化系統含有一記憶體 虛擬化支援系統,該支援系統包括用以使由可在一虛擬 機器上執行之客戶軟體對客戶實體記憶體作出之一項 參照映射到對一主機機器之主機實體記憶體之一項參 照的一延伸分頁表,而該虛擬機器又可在該主機機器上 執行,且該處理器可在該主機機器中操作。 22. 如申請專利範圍第21項之系統,其中該記憶體虛擬化 支援系統另指定對存取動作的限制,並且根據該等限 制,控制對該客戶實體記憶體之一位置的存取動作。 23. 如申請專利範圍第21項之系統,其中該記憶體虛擬化 支援系統另劃分該主機機器的該主機實體記憶體。 24. 如申請專利範圍第22項之系統,其中該虛擬化支援系 統響應於試圖要違反該等限制而存取記憶體的一動作, 轉變為一虛擬機器監視器。 25. 如申請專利範圍第21項之系統,其中該延伸分頁表另 把對客戶實體記憶體之一頁面的一項參照映射到對主機 實體記憶體之一頁面的一項參照。 26. 如申請專利範圍第25項之系統,其中該延伸分頁表指 定用於客戶實體記憶體之一頁面的一項存取限制。 27. 如申請專利範圍第26項之系統,其中用於客戶實體記 憶體之一頁面的該存取限制包含下列項目中至少一項: 讀取存取控制資訊; 寫入存取控制資訊;以及 執行存取控制資訊。 36 1308720 斤H旧φβ修Ctj正替換頁| 28. 如申請專利範圍第26項之系統,其中該虛擬化系統響 應於違反用於客戶實體記憶體之一頁面的該存取限制之 況狀,轉變為一虛機器監視器。 29. 如申請專利範圍第25項之系統,其中該延伸分頁表包 5 含一個多階層延伸分頁表。 30. 如申請專利範圍第21項之系統,其中僅在該虛擬化系 統的一旗標設定為一預定值時,才響應於該處理器之該 虛擬化系統的啟動動作,使該記憶體虚擬化支援系統啟
37
TW095100745A 2005-01-14 2006-01-09 Virtualizing physical memory in a virtual machine system TWI308720B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/036,736 US7886126B2 (en) 2005-01-14 2005-01-14 Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system

Publications (2)

Publication Number Publication Date
TW200636572A TW200636572A (en) 2006-10-16
TWI308720B true TWI308720B (en) 2009-04-11

Family

ID=36175192

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095100745A TWI308720B (en) 2005-01-14 2006-01-09 Virtualizing physical memory in a virtual machine system

Country Status (8)

Country Link
US (5) US7886126B2 (zh)
EP (5) EP1681630A1 (zh)
JP (4) JP2006196005A (zh)
KR (1) KR100831488B1 (zh)
CN (2) CN100501680C (zh)
ES (1) ES2907805T3 (zh)
PL (1) PL3572937T3 (zh)
TW (1) TWI308720B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI497296B (zh) * 2013-12-04 2015-08-21 Univ Nat Taiwan 記憶體配置與分頁位址轉換系統及方法
US9128843B2 (en) 2012-10-11 2015-09-08 Industrial Technology Research Institute Method and computer system for memory management on virtual machine system

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7428626B2 (en) * 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
US20060259896A1 (en) * 2005-05-16 2006-11-16 Microsoft Corporation Maintaining reproducibility across multiple software builds
US8387049B2 (en) * 2005-07-15 2013-02-26 International Business Machines Corporation Facilitating processing within computing environments supporting pageable guests
US7926054B2 (en) * 2006-03-03 2011-04-12 Novell, Inc. System, method, and computer-readable medium for virtual machine instantiation from an external peripheral device
US7716446B1 (en) 2006-04-27 2010-05-11 Vmware, Inc. System and method for cooperative virtual machine memory scheduling
US7555628B2 (en) * 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US8949295B2 (en) 2006-09-21 2015-02-03 Vmware, Inc. Cooperative memory resource management via application-level balloon
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8336046B2 (en) * 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
WO2008086317A2 (en) * 2007-01-05 2008-07-17 Moka5, Inc. Symbiotic smart peripherals
KR100864834B1 (ko) * 2007-04-30 2008-10-23 한국전자통신연구원 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법
JP4897578B2 (ja) 2007-06-06 2012-03-14 株式会社日立製作所 仮想計算機の制御プログラムおよび仮想計算機システム
US7925802B2 (en) * 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
CN101399830B (zh) * 2007-09-29 2012-06-06 联想(北京)有限公司 虚拟机系统及其共享以太网点对点协议链接的方法
JP2009104555A (ja) * 2007-10-25 2009-05-14 Intel Corp Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
US8522236B2 (en) * 2007-12-28 2013-08-27 Intel Corporation Method and system for establishing a robust virtualized environment
US8230155B2 (en) 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8151032B2 (en) * 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems
US9740517B2 (en) * 2008-12-29 2017-08-22 Microsoft Technology Licensing, Llc Dynamic virtual machine memory management
JP4769308B2 (ja) * 2009-01-20 2011-09-07 株式会社東芝 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法
US8271450B2 (en) * 2009-10-01 2012-09-18 Vmware, Inc. Monitoring a data structure in a virtual machine and determining if memory pages containing the data structure are swapped into or out of guest physical memory
US8583875B1 (en) 2010-07-13 2013-11-12 Vmware, Inc. Efficient readable ballooning of guest memory by backing balloon pages with a shared page
US8751781B2 (en) 2010-05-28 2014-06-10 Dell Products, Lp System and method for supporting secure subsystems in a client hosted virtualization system
US9134990B2 (en) 2010-05-28 2015-09-15 Dell Products, Lp System and method for implementing a secure client hosted virtualization service layer in an information handling system
US8527761B2 (en) 2010-05-28 2013-09-03 Dell Products, Lp System and method for fuse enablement of a secure client hosted virtualization in an information handling system
US8990584B2 (en) 2010-05-28 2015-03-24 Dell Products, Lp System and method for supporting task oriented devices in a client hosted virtualization system
US8639923B2 (en) 2010-05-28 2014-01-28 Dell Products, Lp System and method for component authentication of a secure client hosted virtualization in an information handling system
US8938774B2 (en) 2010-05-28 2015-01-20 Dell Products, Lp System and method for I/O port assignment and security policy application in a client hosted virtualization system
US8589702B2 (en) 2010-05-28 2013-11-19 Dell Products, Lp System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system
US8719557B2 (en) 2010-05-28 2014-05-06 Dell Products, Lp System and method for secure client hosted virtualization in an information handling system
US8458490B2 (en) 2010-05-28 2013-06-04 Dell Products, Lp System and method for supporting full volume encryption devices in a client hosted virtualization system
KR101077904B1 (ko) * 2010-07-12 2011-10-31 (주)이더블유비엠코리아 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
KR101671494B1 (ko) 2010-10-08 2016-11-02 삼성전자주식회사 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
CN102075389B (zh) * 2011-01-27 2013-02-20 大唐移动通信设备有限公司 一种调试方法和设备
US8479295B2 (en) * 2011-03-30 2013-07-02 Intel Corporation Method and apparatus for transparently instrumenting an application program
US8966477B2 (en) 2011-04-18 2015-02-24 Intel Corporation Combined virtual graphics device
CN102999393B (zh) * 2011-09-13 2016-03-02 联想(北京)有限公司 一种数据传输的方法、装置及电子设备
US9146785B2 (en) * 2011-09-14 2015-09-29 Microsoft Technology Licensing, Llc Application acceleration in a virtualized environment
US8782351B2 (en) 2011-10-13 2014-07-15 International Business Machines Corporation Protecting memory of a virtual guest
US8788763B2 (en) 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
WO2013074071A1 (en) * 2011-11-14 2013-05-23 Intel Corporation Regulating access to and protecting portions of applications of virtual machines
US8726404B2 (en) 2011-11-14 2014-05-13 Intel Corporation Regulating access to and protecting portions of applications of virtual machines
EP2605132B1 (de) * 2011-12-13 2018-05-09 Siemens Aktiengesellschaft Verfahren für eine Verwaltung von Speicher eines Computers mit zumindest einer virtuellen Maschine
US9171146B2 (en) 2011-12-14 2015-10-27 Intel Corporation Method and system for monitoring calls to an application program interface (API) function
CN102521054B (zh) * 2011-12-15 2013-07-17 中国人民解放军国防科学技术大学 一种sun4v架构下的虚拟机DMA资源分配方法
US9141559B2 (en) 2012-01-04 2015-09-22 Intel Corporation Increasing virtual-memory efficiencies
US8719546B2 (en) * 2012-01-04 2014-05-06 Intel Corporation Substitute virtualized-memory page tables
EP2801026A4 (en) * 2012-01-04 2015-08-12 Intel Corp TABLES OF VIRTUALIZED SUBSTITUTION MEMORY PAGES
EP2801025B1 (en) * 2012-01-04 2018-10-24 Intel Corporation Increasing virtual-memory efficiencies
US20130219146A1 (en) * 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for a configurable address space for non-volatile memory
WO2013125222A1 (ja) 2012-02-22 2013-08-29 パナソニック株式会社 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム
KR20130101693A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 이종의 운영체제를 사용하는 가상화 시스템의 전력 관리 방법 및 장치
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US9852054B2 (en) 2012-04-30 2017-12-26 Vmware, Inc. Elastic caching for Java virtual machines
US10152409B2 (en) 2012-04-30 2018-12-11 Vmware, Inc. Hybrid in-heap out-of-heap ballooning for java virtual machines
US9015203B2 (en) 2012-05-31 2015-04-21 Vmware, Inc. Balloon object feedback for Java Virtual Machines
US9940228B2 (en) 2012-06-14 2018-04-10 Vmware, Inc. Proactive memory reclamation for java virtual machines
US9330013B2 (en) * 2012-06-28 2016-05-03 Industrial Technology Research Institute Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith
US9477505B2 (en) * 2012-08-14 2016-10-25 Oracle International Corporation Method for reducing the overhead associated with a virtual machine exit when handling instructions related to descriptor tables
US10187452B2 (en) 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
US9037823B2 (en) * 2012-09-14 2015-05-19 Intel Corporation Protecting IAT/EAT hooks from rootkit attacks using new CPU assists
US10310973B2 (en) * 2012-10-25 2019-06-04 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US9015523B2 (en) * 2012-12-20 2015-04-21 Intel Corporation Memory allocation for virtual machines using memory map
US9330026B2 (en) * 2013-03-05 2016-05-03 Qualcomm Incorporated Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW)
KR102069273B1 (ko) 2013-03-11 2020-01-22 삼성전자주식회사 시스템 온 칩 및 그 동작방법
DE102013022169A1 (de) 2013-03-14 2014-09-18 Nvidia Corporation Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem
US11487673B2 (en) 2013-03-14 2022-11-01 Nvidia Corporation Fault buffer for tracking page faults in unified virtual memory system
US20140281366A1 (en) * 2013-03-15 2014-09-18 Cognitive Electronics, Inc. Address translation in a system using memory striping
US10324863B2 (en) 2013-06-24 2019-06-18 Intel Corporation Protected memory view for nested page table access by virtual machine guests
US10055254B2 (en) 2013-07-12 2018-08-21 Bluedata Software, Inc. Accelerated data operations in virtual environments
WO2015069280A1 (en) * 2013-11-08 2015-05-14 Empire Technology Development, Llc Memory deduplication masking
US20150261688A1 (en) * 2014-03-14 2015-09-17 International Business Machines Corporation Extended page table for i/o address translation
WO2015145620A1 (ja) * 2014-03-26 2015-10-01 株式会社日立製作所 計算機及びアドレス変換方法
FR3020160B1 (fr) * 2014-04-16 2017-08-11 Commissariat Energie Atomique Systeme d'execution de code avec mecanisme d'hypervision en aveugle
US9501222B2 (en) 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction
US9940458B2 (en) 2014-08-07 2018-04-10 Empire Technology Development Llc Flag based threat detection
US9703703B2 (en) * 2014-12-23 2017-07-11 Intel Corporation Control of entry into protected memory views
US9715410B2 (en) * 2015-01-30 2017-07-25 Red Hat Israel, Ltd. Protected virtual machine function access
CN104657086B (zh) * 2015-02-02 2019-01-04 曙光云计算集团有限公司 云服务器的数据存储方法和系统
US9495303B2 (en) * 2015-02-03 2016-11-15 Intel Corporation Fine grained address remapping for virtualization
US9619401B2 (en) * 2015-02-20 2017-04-11 Wisconsin Alumni Research Foundation Efficient memory management system for computers supporting virtual machines
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
US9710393B2 (en) 2015-06-25 2017-07-18 Intel Corporation Dynamic page table edit control
US10474489B2 (en) 2015-06-26 2019-11-12 Intel Corporation Techniques to run one or more containers on a virtual machine
US9665373B2 (en) 2015-06-26 2017-05-30 Intel Corporation Protecting confidential data with transactional processing in execute-only memory
WO2017022014A1 (ja) * 2015-07-31 2017-02-09 株式会社日立製作所 仮想計算機システムの制御方法及び仮想計算機システム
US9946566B2 (en) 2015-09-28 2018-04-17 Intel Corporation Method and apparatus for light-weight virtualization contexts
US10055242B2 (en) 2015-10-16 2018-08-21 Microsoft Technology Licensing, Llc Virtualizing audio decoding hardware
US20170220466A1 (en) * 2016-01-30 2017-08-03 Intel Corporation Sharing a guest physical address space among virtualized contexts
US10515023B2 (en) 2016-02-29 2019-12-24 Intel Corporation System for address mapping and translation protection
US12248560B2 (en) * 2016-03-07 2025-03-11 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10241931B2 (en) * 2016-07-29 2019-03-26 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device
US10169244B2 (en) 2016-07-29 2019-01-01 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device
US10353736B2 (en) * 2016-08-29 2019-07-16 TidalScale, Inc. Associating working sets and threads
US10983821B2 (en) * 2016-09-26 2021-04-20 Intel Corporation Apparatus and method for a hybrid layer of address mapping for a virtualized input/output (I/O) implementation
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) * 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10282330B2 (en) 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10866909B2 (en) * 2017-06-26 2020-12-15 Intel Corporation Technologies for protecting virtual machine memory
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
CN109426739B (zh) * 2017-09-01 2020-10-30 龙芯中科技术有限公司 处理器和空指针攻击检测方法
US11194735B2 (en) * 2017-09-29 2021-12-07 Intel Corporation Technologies for flexible virtual function queue assignment
US12117940B2 (en) 2017-12-05 2024-10-15 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
US10613990B2 (en) 2017-12-05 2020-04-07 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
WO2019173937A1 (en) * 2018-03-12 2019-09-19 Intel Corporation Improved memory-mapped input/output (mmio) region access
US11269992B2 (en) * 2018-03-22 2022-03-08 Trulyprotect Oy Systems and methods for hypervisor-based protection of code
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915457B2 (en) * 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US10997083B2 (en) * 2018-09-04 2021-05-04 Arm Limited Parallel page table entry access when performing address translations
US11954026B1 (en) * 2018-09-18 2024-04-09 Advanced Micro Devices, Inc. Paging hierarchies for extended page tables and extended page attributes
US10769076B2 (en) 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric
US10901911B2 (en) 2018-11-21 2021-01-26 Microsoft Technology Licensing, Llc Faster computer memory access by reducing SLAT fragmentation
US11099874B2 (en) * 2019-01-28 2021-08-24 Red Hat Israel, Ltd. Efficient userspace driver isolation by shallow virtual machines
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11640361B2 (en) * 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
US11226904B2 (en) * 2019-04-26 2022-01-18 Hewlett Packard Enterprise Development Lp Cache data location system
CN110442425B (zh) * 2019-07-19 2022-04-08 南京芯驰半导体科技有限公司 一种虚拟化地址空间隔离系统及方法
US11243801B2 (en) 2020-03-26 2022-02-08 Red Hat, Inc. Transparent huge pages support for encrypted virtual machines
GB2595479B (en) * 2020-05-27 2022-10-19 Advanced Risc Mach Ltd Apparatus and method
US11556513B2 (en) 2020-06-30 2023-01-17 Hewlett Packard Enterprise Development Lp Generating snapshots of a key-value index
US11461299B2 (en) 2020-06-30 2022-10-04 Hewlett Packard Enterprise Development Lp Key-value index with node buffers
US11461240B2 (en) 2020-10-01 2022-10-04 Hewlett Packard Enterprise Development Lp Metadata cache for storing manifest portion
CN114461536A (zh) * 2020-11-10 2022-05-10 瑞昱半导体股份有限公司 查找表建立及内存地址查询方法
US12061923B2 (en) * 2020-12-09 2024-08-13 Mediatek Inc. Memory protection for virtual machines
GB2604629B (en) * 2021-03-10 2023-06-07 Imagination Tech Ltd A computer system and method using a first page table and a second page table
US11487451B2 (en) * 2021-03-15 2022-11-01 TidalScale, Inc. Fast restart of large memory systems

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPS59132483A (ja) * 1983-08-12 1984-07-30 Hitachi Ltd アドレス変換装置
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
JPH0731609B2 (ja) * 1985-09-18 1995-04-10 日本電気株式会社 Vmモード変更装置
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement
JPH03192445A (ja) * 1989-12-22 1991-08-22 Hitachi Ltd 仮想計算機システム
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
JPH04357540A (ja) * 1991-03-28 1992-12-10 Ricoh Co Ltd マップドファイル仮想記憶方式
US5675762A (en) 1992-04-03 1997-10-07 International Business Machines Corporation System for locking down part of portion of memory and updating page directory with entry corresponding to part of portion of the memory locked down
JPH06110715A (ja) * 1992-09-25 1994-04-22 Hitachi Ltd 仮想計算機システムにおける計算機資源の動的割付け方法
US5765207A (en) 1993-06-22 1998-06-09 International Business Machines Corporation Recursive hardware state machine
US6189074B1 (en) * 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
JP3607540B2 (ja) 1999-08-18 2005-01-05 エヌイーシーシステムテクノロジー株式会社 プログラム単位メモリアクセス属性管理方式
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US6651132B1 (en) * 2000-07-17 2003-11-18 Microsoft Corporation System and method for emulating the operation of a translation look-aside buffer
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
DE10127198A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US6792521B2 (en) * 2001-10-16 2004-09-14 International Business Machines Corporation Behavioral memory mechanism for a data processing system
DE10208765A1 (de) 2002-02-28 2003-09-18 Infineon Technologies Ag Datenverarbeitungsvorrichtung
US7124327B2 (en) 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7953588B2 (en) * 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US6895491B2 (en) * 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US6970990B2 (en) 2002-09-30 2005-11-29 International Business Machines Corporation Virtual mode virtual memory manager method and apparatus
US6915405B2 (en) * 2002-12-04 2005-07-05 Bull Hn Information Systems Inc. Emulated target associative memory system with a multi-digit incrementable validity counter
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7111145B1 (en) * 2003-03-25 2006-09-19 Vmware, Inc. TLB miss fault handler and method for accessing multiple page tables
US6981125B2 (en) * 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
US7409487B1 (en) * 2003-06-30 2008-08-05 Vmware, Inc. Virtualization system for computers that use address space indentifiers
US7451443B2 (en) * 2003-10-01 2008-11-11 Hewlett-Packard Development Company, L.P. Online computer maintenance utilizing a virtual machine monitor
US7376949B2 (en) * 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US7222221B1 (en) * 2004-02-06 2007-05-22 Vmware, Inc. Maintaining coherency of derived data in a computer system
US7206915B2 (en) * 2004-06-03 2007-04-17 Emc Corp Virtual space manager for computer having a physical address extension feature
US7260702B2 (en) * 2004-06-30 2007-08-21 Microsoft Corporation Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
US7886293B2 (en) * 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US7330942B2 (en) * 2004-07-31 2008-02-12 Hewlett-Packard Development Company, L.P. Method for efficient virtualization of physical memory in a virtual-machine monitor
US7281102B1 (en) * 2004-08-12 2007-10-09 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
US7340582B2 (en) * 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US9058292B2 (en) * 2004-12-29 2015-06-16 Intel Corporation System and method for one step address translation of graphics addresses in virtualization
US7810083B2 (en) * 2004-12-30 2010-10-05 Intel Corporation Mechanism to emulate user-level multithreading on an OS-sequestered sequencer
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7428626B2 (en) 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128843B2 (en) 2012-10-11 2015-09-08 Industrial Technology Research Institute Method and computer system for memory management on virtual machine system
TWI505191B (zh) * 2012-10-11 2015-10-21 Ind Tech Res Inst 虛擬機系統的記憶體管理方法和電腦系統
TWI497296B (zh) * 2013-12-04 2015-08-21 Univ Nat Taiwan 記憶體配置與分頁位址轉換系統及方法

Also Published As

Publication number Publication date
ES2907805T3 (es) 2022-04-26
JP5611622B2 (ja) 2014-10-22
PL3572937T3 (pl) 2022-04-04
US20150100717A1 (en) 2015-04-09
US8533428B2 (en) 2013-09-10
KR100831488B1 (ko) 2008-05-22
JP5485249B2 (ja) 2014-05-07
JP2010123148A (ja) 2010-06-03
US10114767B2 (en) 2018-10-30
US20110087822A1 (en) 2011-04-14
US20190121751A1 (en) 2019-04-25
KR20060083168A (ko) 2006-07-20
EP2988216B1 (en) 2019-03-06
US20130219143A1 (en) 2013-08-22
JP2006196005A (ja) 2006-07-27
US9164920B2 (en) 2015-10-20
EP3905039A1 (en) 2021-11-03
JP2012079333A (ja) 2012-04-19
EP2988216A1 (en) 2016-02-24
CN101533358B (zh) 2013-02-06
CN1811714A (zh) 2006-08-02
CN100501680C (zh) 2009-06-17
EP3572937A1 (en) 2019-11-27
EP2275932A1 (en) 2011-01-19
US7886126B2 (en) 2011-02-08
US20060161719A1 (en) 2006-07-20
CN101533358A (zh) 2009-09-16
JP2014238850A (ja) 2014-12-18
EP3572937B1 (en) 2021-12-29
TW200636572A (en) 2006-10-16
JP5844434B2 (ja) 2016-01-20
EP3905039B1 (en) 2024-09-04
EP1681630A1 (en) 2006-07-19

Similar Documents

Publication Publication Date Title
TWI308720B (en) Virtualizing physical memory in a virtual machine system
US10180911B2 (en) Synchronizing a translation lookaside buffer with an extended paging table
TWI471727B (zh) 用於虛擬機頁面轉譯快取的方法及裝置
US9684605B2 (en) Translation lookaside buffer for guest physical addresses in a virtual machine
US8645665B1 (en) Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses