TWI497294B - 用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法 - Google Patents

用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法 Download PDF

Info

Publication number
TWI497294B
TWI497294B TW102100117A TW102100117A TWI497294B TW I497294 B TWI497294 B TW I497294B TW 102100117 A TW102100117 A TW 102100117A TW 102100117 A TW102100117 A TW 102100117A TW I497294 B TWI497294 B TW I497294B
Authority
TW
Taiwan
Prior art keywords
instructions
instruction
memory page
computing device
execution
Prior art date
Application number
TW102100117A
Other languages
English (en)
Other versions
TW201342061A (zh
Inventor
Ramesh Thomas
Kuo-Lang Tseng
Ravi L Sahita
David M Durham
Madhukar Tallam
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 TW201342061A publication Critical patent/TW201342061A/zh
Application granted granted Critical
Publication of TWI497294B publication Critical patent/TWI497294B/zh

Links

Classifications

    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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
    • 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/45587Isolation or security of virtual machine instances

Landscapes

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

Description

用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法 相關申請案
本申請案相關於名稱為“Substitute Virtualized-Memory Page Tables”之美國專利申請案,申請號需被指定,同時提申。
技術領域
本申請案相關於資料處理之技術領域,且特別是相關於增加利用虛擬記憶體之計算系統中的效能之技術的使用。
用於申請專利範圍審查之發明背景
許多電腦系統因為安全性、穩定度及/或其他目的而使用虛擬記憶體。在各種虛擬記憶體系統中,一虛擬機器監測器(“VMM”)可控制一電腦系統中之記憶體及/或電腦處理器的直接使用。可以軟體及/或硬體來實施之虛擬機器監測器可允許客端軟體只在客端虛擬機器中運行,其每一個包含由虛擬記憶體位址所定義的其本身之客端位址空間。
因此,在許多系統中,一客端虛擬機器可使用對該客端虛擬機器來說似乎是實體記憶體來執行記憶體存 取。這些客端實體記憶體位址可藉由被該虛擬機器監測器控制的頁表的使用依次被映射至該實際實體記憶體位址。在某些系統中,這些頁表可指定對於記憶體頁(以下可簡稱為“頁”)的存取權限。因此,一頁表可對呈現給一部分的客端軟體之每一頁的虛擬記憶體定義是否該客端軟體可1)執行來自該頁之位置的指令、2)從該頁之位置讀取,及/或3)寫入至該頁之位置。在各種系統中,可在執行期間使用或切換至多個頁表,以允許特定的存取,如該VMM所判定者。在各種系統中,額外的頁表可在一客端虛擬機器之層級被定義,其中該頁表可將客端虛擬機器之虛擬記憶體位址轉換成客端實體位址。在某些系統中,這可以是獨立於在該虛擬機器監測器層級處使用的頁表,其中該等頁表可將客端實體記憶體位址轉換成實際實體記憶體位址。
做為一範例,頁W及X可保存可信賴的資料,而頁Y及Z可保存可信賴的碼部分。為了使頁Y及Z中的碼能存取頁W及X中的資料,但防止其他頁中的碼存取頁W及X中的資料,一頁表可提供對頁Y及Z的執行權限,及對頁W及X的讀取/寫入權限。
然而,在某些情況下,目前頁表的使用可能產生問題。在一情況下,一指令可能足夠大到落入跨越兩個不同頁之記憶體位置。若一頁表不允許對於該等頁中之一者的指令之執行,則試圖執行該指令之處理器可能發現其自身無法繼續進行,儘管事實上該指令被發現至少部分是位在被允許執行之記憶體中。
在另一情況下,修改頁表可能會提供低效能。例如,在執行期間,該VMM可判定一處理器,或在一處理器上執行之一硬體執行緒,可能需要根據不同的權限來執行指令。在某些這樣的情況下,被該處理器使用的頁表可以被修改,或者該處理器可被指向至一不同頁表以使用不同權限。然而,在只有一個單一硬體執行緒需要不同權限之一情形下,用於該處理器之頁表的修改或切換可能導致在該處理器上操作的每一其他執行緒也使用該新的頁表。這可能導致效能低下,因該等其他硬體執行緒可能不適合在該等不同權限在操作,及/或當該頁表被修改時,該等其他硬體執行緒可能會發現其被暫停或者是等待中。
在又一情況下,或許不支援一VMM或用於追蹤實體頁層級權限之一VMM層級頁表之硬體。例如,在某些現存系統中,權限只被保持在一客端VM層級,且可在該層級處被該VMM控制。然而這可能導致效能低下,因為該VMM可能不具有用於追蹤一每一實體頁層級上的權限及用於操縱此層級下之權限之工具。這可能阻止該VMM行使與可能是需要者相同程度之控制及保護。
依據本發明之一實施例,係特地提出一種或多種用於促進由電腦處理器所執行之指令的電腦可讀取儲存媒體,其包含第一指令,其回應於被一計算裝置執行,導致該計算裝置以進行下列動作:判定該計算裝置之一電腦處理器將要執行的一第二指令部分位於一第一記憶體頁及一 第二記憶體頁中的每一者內,且該電腦處理器不具有執行位於該第一記憶體頁中的指令之權限;及根據許可位於該第一及該第二記憶體頁中的指令之執行的暫時權限,促進該第二指令的執行。
100‧‧‧虛擬機器監測器
110‧‧‧客端虛擬機器
120‧‧‧客端虛擬記憶體
130‧‧‧客端虛擬記憶體頁表
140‧‧‧客端實體記憶體
150‧‧‧實體虛擬記憶體頁表
160‧‧‧實體頁權限表
170‧‧‧鏡射虛擬記憶體頁表
180‧‧‧仿真器
190‧‧‧實體記憶體
200、300、400、500、700、900‧‧‧程序
210~270、310~350、410~440、510~530、710~750、910~950‧‧‧操作
1000‧‧‧範例系統
1004‧‧‧處理器
1008‧‧‧系統控制邏輯
1012‧‧‧記憶體
1016‧‧‧NVM/儲存器
1020‧‧‧通訊介面
1024‧‧‧跨越指令執行邏輯
1026‧‧‧每個核心PPT邏輯
1028‧‧‧實體頁權限邏輯
本發明之實施例以示範性實施例來說明,但並非限制,係以附圖來說明,其中相同的參考符號表示類似的元件,且其中:圖1是一方塊圖,說明根據各種實施例的使用頁表之一虛擬機器監測器及客端軟體虛擬機器;圖2說明根據各種實施例的用於執行跨越兩個記憶體頁之一指令之一範例程序;圖3說明根據各種實施例的用於使用一經修改頁表來執行一跨越指令之一範例程序;圖4說明根據各種實施例的用於使用一暫時頁表來執行一跨越指令之一範例程序;圖5說明根據各種實施例的用於使用仿真來執行一跨越指令之一範例程序;圖6是一方塊圖,說明根據各種實施例的每個核心實體頁表之一範例用法;圖7說明根據各種實施例的用於根據每個核心頁表來執行指令之一範例程序;圖8是一方塊圖,說明根據各種實施例的用以維護每個實體頁權限之實體頁權限表之一範例用法;圖9說明根據各種實施例的用於根據一實體頁權限表 來維護權限之一範例程序;及圖10說明根據各種實施例的一範例計算環境。
說明性實施例之詳細說明
本文揭露相關聯於促進位於個別記憶體頁中的指令之執行之方法、設備及儲存媒體。本文也說明相關聯於根據不同虛擬記憶體頁表來執行一電腦處理器之不同處理核心上的指令之方法、設備及儲存媒體。此外,本文也說明相關聯於基於接收到的對於一實體頁表之一權限來修改鏡射虛擬記憶體頁表之方法、設備及儲存媒體。
在各種實施例中,一個或多個電腦可讀取儲存媒體可包括第一指令,其回應於被一計算裝置執行,可導致該計算裝置判定該計算裝置之一電腦處理器將要執行的一第二指令部分位於一第一記憶體頁及一第二記憶體頁中之每一者內,且該電腦處理器不具有執行位於該第一記憶體頁中的指令之權限。該等指令也可根據允許位於該第一及該第二記憶體頁兩者中的指令之執行之暫時權限,導致該計算裝置促進該第二指令的執行。
在各種實施例中,用於位在該第一記憶體頁中的指令之執行的權限可被包括在一第一虛擬記憶體頁表中,且該第二指令可以是一第一群組的指令之一成員。此外,該等第一指令回應於被該計算裝置執行,可進一步導致該計算裝置導致該計算裝置之一第一核心根據來自該第一虛擬記憶體頁表的權限來執行該第一群組的指令。在該第一 核心執行該第一群組的指令的同時,該等第一指令也可導致該計算處理器之一第二核心根據來自一第二虛擬記憶體頁表的權限來執行另一群組的指令。
在各種實施例中,該第二指令可在一客端虛擬機器的控制下被執行,該客端虛擬機器包含定義用於該客端虛擬機器中的客端虛擬記憶體頁之權限的一個或多個客端虛擬記憶體頁表。此外,該等第一指另回應於被該計算裝置執行,可進一步導致該計算裝置判定一頁的一實體記憶體需關聯於一個或多個記憶體存取權限,及修改一個或多個鏡射虛擬記憶體頁表,其至少部分基於請求來鏡射來自一個或多個客端虛擬記憶體頁表之對於該等客端虛擬機器之權限。
在各種實施例中,一個或多個電腦可讀取儲存媒體可包括指令,其回應於被一計算裝置執行,導致該計算裝置導致該計算裝置之一計算處理器之一第一核心根據來自一第一虛擬記憶體頁表的權限來執行一個或多個第一指令。該等指令也可導致該計算裝置導致在該第一核心執行該一個或多個第一指令的同時,該計算處理器之一第二核心根據來自一第二虛擬記憶體頁表的權限來執行一個或多個第二指令。
在各種實施例中,一個或多個電腦可讀取儲存媒體可包括指令,其回應於被一計算裝置執行,導致該計算裝置判定一頁的一實體記憶體需關聯於一個或多個記憶體存取權限,及修改一個或多個鏡射虛擬記憶體頁表,其至 少部分基於該請求來鏡射用於一個或多個客端虛擬機器之一個或多個客端虛擬記憶體頁表。
在其他實施例中,設備及/或電腦實施方法可施行以上所討論及此處所述之一個或多個該等操作。
該等說明性實施例之各種層面將使用熟悉該技藝之人士所一般使用的術語來描述,以將他們工作的內容傳達給熟悉該技藝的其他人士。然而,對於熟悉該技藝之人士將明顯的是,替代實施例可在僅具有所述層面中之一些的情況下被實行。基於解釋的目的,特定數目、材料及組態被提出以提供對該等說明性實施例之徹底的了解。然而,對於熟悉該技藝之人士將明顯的是,替代實施例可在不具有該等特定細節之情況下被實行。在其他情況下,習知特徵被省略或簡化以避免模糊化該等說明性實施例。
各種操作將依次以最利於了解該等說明性實施例之方式來描述為多個離散的操作;然而,描述的順序不應被解讀為暗示這些操作必然是順序相依的。特別是,這些操作不需要以呈現的順序來實行。此外,將操作描述為個別操作不應被解讀為該等操作一定必須獨立及/或以個別實體來實行。將實體及/或模組描述為獨立模組同樣不應被解讀為該等模組是獨立的及/或執行獨立操作。在各種實施例中,被描述及/或說明的操作、實體、資料及/或模組可被合併、分開成進一步的子部分,及/或被省略。
片語“在一實施例中”被反覆地使用。該片語通常不參照同一實施例;然而,可以是參照同一實施例。術語“包 含”、“具有”及“包括”是同義的,除非脈絡中另外提及。片語“A/B”表示“A或B”。片語“A及/或B”表示“(A)、(B),或(A及B)”。片語“A、B及C中的至少一個”表示“(A)、(B)、(C)、(A及B)、(A及C)、(B及C)或(A、B及C)”。
參照圖1所顯示的方塊圖,其說明一虛擬機器監測器100,在各種實施例中,其可促進一個或多個實體虛擬記憶體頁表150(“PPT”)的使用,其定義一客端虛擬機器110(“客端VM”)對實體記憶體190的記憶體存取之權限。在各種實施例中,一個或多個該等PPT 150可被一計算裝置中執行該VMM 100之一個或多個電腦處理器中的每一個使用;這些電腦處理器可相關聯於PPT 150,係經由將一處理器(或處理核心,如以下所述)指向至一特定PPT 150之一“脈絡”。在各種實施例中,該虛擬機器監測器100及客端軟體虛擬機器110可操作於一計算裝置,諸如但不限於一攜上型電腦、桌上型電腦、伺服器,及/或行動裝置。
在各種實施例中,該客端軟體虛擬機器110可包括可包括客端實體記憶體140。在一些實施例中,從該客端VM 110的觀點來看,該客端實體記憶體140似乎是實體記憶體。然而,在各種實施例中,該客端實體記憶體140可包括實際實體記憶體(諸如,例如,實體記憶體190)之一摘要,其利用該虛擬機器監測器100及其PPT 150被轉換至該實體記憶體190。在各種實施例中,該客端軟體虛擬機器110也可包含客端虛擬記憶體120,其具有客端虛擬記憶體位址,其藉由一個或多個客端虛擬記憶體頁表130(“GPT”)被轉換成 客端實體記憶體140中的位址。在各種實施例中,PPT 150可被該虛擬機器監測器使用,不論GPT 130的用法或實施為何。
因此,當軟體在該客端VM 110中執行時,該客端軟體可嘗試存取對應於該客端虛擬記憶體120中之一虛擬位址的一記憶體位置。接著該客端虛擬記憶體120可參照一個或多個GPT 130以將該客端虛擬記憶體位址轉換成客端實體記憶體140中之一對應客端記憶體位址。客端實體記憶體140中之位址可經由一個或多個PPT依次被轉換成該實體記憶體190中之一對應實體記憶體位址。在各種實施例中,在此一存取後可返回該存取之結果,諸如,例如,讀取結果或寫入確認。在其他實施例中,可返回存取錯誤訊息,諸如當記憶體存取不被允許時。基於簡化說明的目的,不會說明這些錯誤訊息。在各種實施例中,提供該等PPT 150之該虛擬機器監測器可全部或部分以硬體來實施。一般來說,除非特別指明,否則以下所述“虛擬記憶體”的討論是參照藉由使用該VMM 100之該等PPT 150從該客端記憶體140被映射至實際實體記憶體190之經虛擬的實體記憶體來進行。
在各種實施例中,該等PPT 150可被組配來被使用及或被修改以促進在跨越一頁界之該客端VM 110上執行之軟體中的一指令之執行。在各種實施例中,“跨越”一詞可表示在同一時間一指令之不同部分位在兩個不同記憶體頁中。在各種實施例中,該等PPT可包含用於此種促進跨越指令之執行的一個或多個暫時或替代PPT。在各種實施例 中,一個或多個PPT 150也可在一種每個處理器核心之基礎上被使用,以協助定義用於一電腦處理器之不同處理器核心之不同組的權限。
在各種實施例中,該VMM 100可包括一個或多個鏡射虛擬記憶體頁表170(“MPT”)。在各種實施例中,該等MPT 170可用以允許該VMM 100或控制該VMM 100的軟體來控制在該等GPT 130中所發現的記憶體權限。在各種實施例中,該等MPT 170可被組配以鏡射該等GPT 130之頁權限,使得它們有效地用作用於該客端VM 110之VMM 100控制之代理器。在各種實施例中,該客端實體記憶體140可經由該等MPT 170被轉換至該實體記憶體190,如圖1中連接該客端實體記憶體140、MPT 170及實體記憶體190之虛線所示。
在各種實施例中,該VMM 100也可包括一實體頁權限表160。在各種實施例中,該實體頁權限表160可被組配以包括有關於一個或多個實體記憶體頁之權限資訊。在各種實施例中,且如下所述,該實體頁權限表160可被組配以設定該等MPT 170中的一個或多個權限,且藉此來修改從該等GPT 130被鏡射至在該等MPT 170中的權限。在一些實施例中,該等MPT 170及實體頁權限表160可用在未使用或包含PPT 150之一VMM 100中。在此等實施例中,該VMM 100可使用該等MPT 170以提供用於基於每個實體頁來設定記憶體之工具,而不需使用PPT 150。
在各種實施例中,該VMM 100也可包括一仿真 器,其可被組配以執行來自該VMM 100中的指令客端指令。在各種實施例中,該仿真器180可被組配使得其具有對任何實體記憶體位置的執行、讀取或寫入權限。在各種實施例中,該仿真器180可被包括在該VMM 100中,無論該VMM 100使用PPT 150或MPT 170。
圖2說明根據各種實施例的用於執行跨越兩個記憶體頁之一指令之一範例程序。在各種實施例中,程序200可被該VMM 100及/或客端VM 110施行。程序200可開始於操作210。在操作210處,開客端VM 110可開始執行常駐在該客端VM 110中的軟體。此執行可包括該客端VM 110操作於該VMM 100的控制之下並使用一個或多個PPT 150。在操作220處,該VMM可識別被該客端VM 110執行的一指令導致一執行錯誤。例如,一種這樣的錯誤可以是,該被識別的指令全部或部分位於不具有該等PPT 150中的一目前使用的PPT所提供的執行權限之一記憶體頁中。在其他實施例中,在操作220處其他情況可導致執行錯誤。
接著,在決策操作230處,該VMM 100可判定是否該等被識別之指令應被允許執行。在各種實施例中,判定是否該指令應被允許執行之技術可以是該技藝中具通常知識者所知悉的。若該VMM 100判定該指令不應被允許執行,則可返回一錯誤且該程序可結束(未繪示)。
反之,若該VMM 100判定該指令應被允許執行,則在決策操作240處,該VMM可判定是否該指令跨越兩個實體記憶體頁,諸如來自實體記憶體190。若該VMM 100判定該指令未跨越兩個實體記憶體頁,則在操作250處,該VMM可導致該指令在一可信賴政策下被執行於該客端VM 110中;此執行可根據該技藝中具通常知識者所知悉的技術被施行。
然而,在操作240處,若該VMM判定該指令跨越兩個實體記憶體頁,則在操作260處,該VMM可導致該指令在暫時權限下以一單一步驟執行。在各種實施例中,操作260可以各種方式來實施。操作260的實施之特定範例可見於以下圖3、4及5。
在結束操作250或260後,在操作270處,該客端VM 110可繼續執行該軟體。若未被一目前使用的PPT 150許可之另一指令被識別,則接著該程序可回到操作220。在該客端VM 110已完成該客端VM 110軟體之執行後,程序200可以結束(未繪示)。
圖3說明根據各種實施例的用於使用一經修改頁表來執行一跨越指令之一範例程序300。在各種實施例中,程序300可施行為程序200之操作260之一實施態樣。在各種實施例中,程序300可被施行以允許該被識別跨越指令根據對於該被識別指令所跨越的每一實體頁允許執行的一經修改PPT被執行。在各種實施例中,程序300可被該VMM 100及客端VM 110施行。在各種實施例中,程序300可藉由使用正被可執行該被識別跨越指令之該電腦處理器或處理器核心使用之一PPT 150被施行。基於討論的目的,本文中此PPT 150將代表“目前PPT 150”。
程序300可開始於操作310處。在操作310處,該VMM 100可導致一個或多個處理器暫停或者等待執行,及可能去能中斷。此暫停/去能可被施行以允許對該目前PPT 150進行修改。在各種實施例中,被導致等待的該等處理器可以只是目前使用該目前PPT 150之那些處理器。
接著,在操作320處,該VMM可修改該目前PPT 150以允許執行該被識別跨越指令。例如,若該指令跨越實體頁A及B,且該目前PPT 150只允許對頁B的執行,則在操作320處,該目前PPT 150可被修改以允許也可執行位在頁A中的指令。
接著,在操作330處,該VMM可允許該客端VM執行該單一被識別跨越指令。在各種實施例中,該指令可執行於一旗標或在控制權返回該VMM前只允許該單一指令本身被執行之其他硬體或軟體致能結構之情況下。這有助於確認只有合適的指令根據該經修改目前PPT 150被執行,且該目前PPT可返回至其先前狀態以執行被該客端VM 110執行的後續指令。
在該被識別跨越指令被執行於操作330處之後,在操作340處。該VMM 100可識別該目前PPT 150以復原該等先前限制性權限。接著,在操作350處,該VMM 100可允許被導致等待的該等處理器繼續操作且可致能中斷。接著程序300可以結束。
圖4說明根據各種實施例的用於使用一暫時頁表來執行一跨越指令之一範例程序400。在各種實施例中,程 序400可施行為程序200之操作260之一實施態樣。在各種實施例中,程序400可被該VMM 100及客端VM 110施行。
在各種實施例中,程序400可被施行以允許該被識別跨越指令根據該等PPT 150中對於該被識別指令所跨越的每一實體頁允許執行的一暫時PPT被執行。在各種實施例中,一暫時PPT 150可被使用以使得該目前PPT 150不需被修改。在各種實施例中,藉由避免修改該目前PPT 150,可實現額外效能,而對比於程序300之下,處理器不需被暫停。
程序400可開始於操作410。在操作410處,該VMM 100可修改一暫時PPT 150以允許執行該被識別跨越指令。例如,在一實施例中,類似於關於操作320所討論的修改,一暫時PPT 150可被修改以提供對於該被識別跨越指令所跨越的兩個實體頁之執行權限。在其他實施例中,該暫時PPT 150可以不被修改。取而代之的是,被預設定為具有增加的執行權限之一暫時PPT 150可被使用。例如,一預設定暫時PPT 150可包括對於該客端VM 110所使用的整個位址空間之執行權限。在其他實施例中,該暫時PPT 150可包含對於少於整個位址空間但只多於該被識別指令所跨越的兩個頁之執行權限。在此等實施例中,該暫時PPT 150可不需被修改,因為其已包括足夠的權限來促進該被識別跨越指令之執行。
接著,在操作420處,該VMM可導致該處理器嘗試執行該被識別跨越指令以切換至使用該暫時PPT 150。然後,在操作430處,該VMM可允許該客端VM執行該單一被 識別跨越指令。在各種實施例中,該指令可執行於一旗標或者在控制權返回該VMM前只允許該單一指令本身被執行的其他硬體或軟體致能結構之情況下。這有助於確認只有合適的指令根據該經暫時PPT 150被執行,且被該客端VM 110執行的後續指令可根據該目前PPT 150或該暫時PPT 150以外的PPT被執行。在執行該指令後,在操作440處,該VMM可導致該處理器執行該被識別跨越指令以切換至該暫時PPT 150以外的另一PPT 150。然後該程序可以結束。
圖5說明根據各種實施例的用於使用仿真來執行一跨越指令之一範例程序。在各種實施例中,程序500可被施行為程序200之操作260之一實施例態樣。在各種實施例中,程序500可被該VMM 100及客端VM 110施行。
在各種實施例中,程序500可被施行以允許該被識別跨越指令被該VMM 100之一仿真器180執行。在各種實施例中,程序500可使用該VMM 100中之被組配以能夠以完整的存取權限(稱為“根存取”)來執行操作之一仿真器180。此一仿真器,由於其未受限於權限,故可執行該VMM提供給它的任何操作。這意味著該VMM可使用該仿真器來執行該被識別的跨越指令,而不需如程序300及400所進行地進一步來修改或切換PPT 150。
程序500可開始於操作510處。在操作510處,該VMM 100可開始該仿真器180,係在提供其完整的記憶體存取特權之情況下。在一些實施例中,該仿真器180可被提供少於完整記憶體存取特權之特權;例如,該仿真器180可對 所有記憶體位置僅具有完整的執行特權。然而,在此等實施例中,該仿真器180可發現其本身無法執行該被識別的跨越指令;因此在一些實施例中,該仿真器180可具有完整的特權。接著,在操作520處,該指令可在VMM 100中的該仿真器180內被執行。接著,在操作530處,該仿真器180可被VMM 100停止。接著該程序可以結束。
圖6一方塊圖,說明根據各種實施例的每個核心PPT之一範例用法。在各種實施例中,可能需要在一每個核心層級控制記憶體存取,而非在一每個處理器層級,例如藉由根據一PPT 150在一核心上執行指令,而該PPT 150是不同於在相同處理器上的其他核心所使用的PPT 150。例如,在一處理器之一核心上執行的一硬體執行緒可包括用於該處理器的未被一目前PPT 150允許之一指令。若該VMM 100判定該指令應被允許,則其因而可改變該相關PPT 150。然而,這可對於在該處理器上的其他處理器核心上執行的其他硬體執行緒提供增加的權限。這是不希望看到的且可能會削弱安全性。因此,由於修改一PPT 150會花費時間,故任何時候只要一PPT 150被修改,使用該PPT 150之所有核心可被強制等待修改,因而降低效能。
圖6顯示每個核心PPT 150之一範例用法;特別是圖6顯示修改相關聯於一處理器核心之一脈絡以導致該處理器核心根據一異於另一處理器核心之不同PPT 150來執行指令。此範例顯示在圖式上方的初始組態被改變至下方的不同組態。
在此範例中,核心1及2可以是一電腦處理器之處理核心。在圖6中,每一核心1及2相關聯於一脈絡,其告知該處理器核心,該處理器核心正根據哪一個PPT 150執行。因此,在該初始組態中,在圖6之上方,每一核心1及2的脈絡導致該等核心根據相同PPT 150,也就是圖6中稱為PPT 1之PPT,來執行指令。
在圖6下方之組態中,相關聯於核心2之脈絡已被改變。因此,在該經改變的組態中,核心2的脈絡告知核心2需根據圖6中稱為PPT2之PPT 150來執行指令。如圖6所示,在經改變組態之範例中,每一核心1及2正根據不同 PPT 150執行指令。在各種實施例中,這些不同PPT 150中的每一者可被修改,或切換至一第三PPT 150,而不會影響到使用該其他PPT 150之處理器核心的操作。
圖7說明根據各種實施例的用於根據每個核心頁表來執行指令之一範例程序。在各種實施例中,程序700可被該VMM 100及一個或多個客端VM 110施行。該程序可開始於操作710,其中在各種實施例中,該等客端VM正根據一第一PPT 150使用第一及第二處理核心來執行指令。接著,在操作720處,該VMM 100可判定(在不失一般性之情況下)該第二核心應根據一其他PPT 150來執行。在各種實施例中,VMM 100可藉由判定該第二處理核心應在可被該其他PPT 150導向的權限下操作來判定。在其他實施例中,該VMM 100可接收一請求以改變對於該處理器核心之權限,諸如從防惡意軟體或其他軟體或硬體。在各種實施例中,該 VMM 100可判定該處理器核心應根據該其他PPT 150來執行,至少部分基於在該第二核心上執行的一硬體執行緒。
接著,在操作730處,該VMM 100可修改該第二核心之脈絡,使得該第二核心被指向根據該其他PPT 150來執行指令。接著,在可被平行及/或同時施行的操作740及750處,該一個或多個客端VM根據該第一PPT在該第一核心上執行指令(例如在操作740處)以及該一個或多個客端VM根據該其他PPT在該第二核心上執行指令(例如在操作750處)。
圖8是一方塊圖,說明根據各種實施例的用以維護一實體頁權限之實體頁權限表之一範例用法。如上所討論,在各種實施例中,該VMM 100可使用一實體頁權限表160以在一每個實體頁基礎上維護及追蹤記憶體存取權限。特別是,當該VMM未配備PPT 150以允許用於實體頁權限的追蹤程度時,實體頁權限表160可被使用。在此等實施例中,典型地,權限被保持在該等客端VM之層級,諸如在一個或多個GPT 130中,如上所述。在實施例中,該VMM 100可被組配以基於被保持在該實體頁權限表160中的權限來促進GPT 130的設定。在各種實施例中,該實體頁權限表160可包含一個或多個資料結構,包括但不限於一雜湊表。
如圖8說明之範例,在各種實施例中,該實體頁權限表160可包含記錄對於一個或多個頁的諸如實體記憶體190之實體記憶體的權限之一個或多個項目。例如,圖8之實體頁權限表160顯示頁A只具有讀取權限,頁D具有讀取及寫入權限,而頁B及C允許完整權限。在各種實施例 中,記錄在該實體頁權限表160中的該等實體頁權限可被該VMM 100設定及/或可被諸如防惡意軟體之該VMM允許控制該VMM 100之軟體或硬體設定。
該VMM可額外包含MPT,諸如例如所說明的MPT 170。如上所述,在各種實施例中,該MPT 170可包括對於該客端VM 110中的頁之一個或多個權限,且可從該客端VM中的the GPT 130被鏡射,使得該VMM 100可看到且使用被保存在GPT 130中的權限。在各種實施例中,該VMM 100可被組配以基於記錄在該實體頁權限表160中的權限來修改儲存在該等MPT 170中的該等被鏡射權限。
在各種實施例中,然而由於在該等MPT 170中的項目可反映在該客端VM 110中的頁,故在該等MPT 170中的多個項目可映射到在該實體記憶體190中的相同實體頁。因此,在各種實施例中,對在該實體頁權限表160中之一項目的修改可導致對在一MPT 170中多於一個項目的修改(或者在該MPT 170中沒有項目沒有客端虛擬記憶體頁映射到該實體記憶體頁)。在圖8之範例中,從此種非一對一的映射能看出對於實體頁A的唯讀權限已影響到在該MPT 170中的兩個不同項目。此外,可被注意到的是,由於該MPT 170已基於在該實體頁權限表160中的該項目被修改,故在該MPT 170中映射到頁A的該兩個項目實際上不再鏡射在GPT 130中在它們對應的項目中之權限。因此,該VMM被阻配以設定每個實體頁權限,而不管該GPT 130所設定的權限為何。
圖9說明根據各種實施例的用於根據一實體頁權限表來維護權限之一範例程序。在各種實施例中,程序900之操作可被該VMM 100及/或該客端VM 110施行。程序900可開始於操作910處。在操作910處,在各種實施例中,該VMM 100可將儲存在GPT 130中的權限鏡射在該等MPT 170中。接著,在操作920處,在各種實施例中,該VMM 100可接收一請求以修改對於一實體頁的一權限。在其他實施例中,該VMM 100可接收一請求以修改對於一該體頁的該權限,諸如來自防惡意軟體。
接著,在操作930處,在各種實施例中,該VMM 100可修改該實體頁權限表160以反映在操作920處所接收或判定的權限修改。接著,在操作940處,在各種實施例中,該VMM 100可修訂在該等MPT 170中對應至權限被修改的實體頁之項目。在一些實施例中,此修訂可導致該等MPT 170包含不再相同於它們對應的GPT 130之權限(由於該等GPT 130可能不一定會知道關於該VMM所設定的該等每個實體頁權限)。在操作950處,接著該客端VM 110可根據該等更新的MPT 170來執行一個或多個指令。接著該程序可以結束。
本文所描述的技術及設備可使用如所需來組配之合適的硬體、韌體,及/或軟體來實施。圖10說明對於一實施例的一範例系統1000,其包括各具有一個或多個處理器核心之至少一處理器1004、耦接到至少一個該等處理器1004之系統控制邏輯元件1008、耦接到系統控制邏輯元件 1008之記憶體1012、耦接到系統控制邏輯元件1008之非依電性記憶體(“NVM”)/儲存器1016,及耦接到系統控制邏輯元件1008之一個或多個通訊介面1020。在各種實施例中,該系統1000可包括一基於CPU的軟體系統、一管理引擎系統,或二者之組合之組件。
對於一實施例的系統控制邏輯元件1008可包括任何合適的介面控制器,其提供用於到至少一個該等處理器1004及/或到與系統控制邏輯元件1008進行通訊之任何合適的裝置或組件之任何合適的介面。該等處理器可包括操作一應用環境之一專屬應用處理器,以及可操作一管理引擎之一獨立服務處理器。該系統可包括額外處理器或處理核心(圖未示)。
對於一實施例之系統控制邏輯元件1008可包括提供一介面至記憶體1012之一個或多個記憶體控制器。系統記憶體1012可用以載入及儲存例如用於系統1000之資料及/或指令。對於一實施例之系統記憶體1012可包括任何適合的非暫時性電腦可讀依電性記憶體,諸如例如適合的動態隨機存取記憶體(DRAM)。
對於一實施例的系統控制邏輯元件1008可包括一或多個輸入/輸出(I/O)控制器,其提供至一NVM/儲存器1016及通訊介面1020之一介面。
NVM/儲存器1016可用以儲存例如資料及/或指令。NVM/儲存器1016可包括諸如例如快閃記憶體之任何適合非暫時性電腦可讀非依電性記憶體,及/或可包括任何適 合的非依電性儲存裝置,諸如例如一或多個硬碟機(HDD)、一或多個固態硬碟機、一或多個光碟(CD)機,及/或一或多個數位光碟(DVD)機。
該NVM/儲存器1016可包括實體上為安裝該系統1000之一裝置的部分之一儲存資源,或者其可被該裝置存取,但不一定為該裝置之一部分。例如,該NVM/儲存器1016可經由該(等)通訊介面1020透過一網路被存取。
特別是,記憶體1012及NVM/儲存器1016可分別包括邏輯的暫時性及持久性複本。在所述範例中,此邏輯可包括一或多個跨越指令執行邏輯1024、每個核心PPT邏輯1026及/或實體頁權限邏輯1028。該跨越指令執行邏輯1024可包括指令,當被至少一處理器1004執行時,其可導致系統1000施行一些或全部該等相關聯於程序200、300、400及/或500之操作。該每個核心PPT邏輯1026可包括指令,當被至少一處理器1004執行時,其可導致系統1000施行一些或全部該等相關聯於程序700之操作。該實體頁權限邏輯1028可包括指令,當被至少一處理器1004執行時,其可導致系統1000施行一些或全部該等相關聯於程序900之操作。在一些實施例中,全部或部分的跨越指令執行邏輯1024、每個核心PPT邏輯1026及/或實體頁權限邏輯1028可附加地/替代地位在該系統控制邏輯元件1008中。
通訊介面1020可提供用於系統1000之一介面,以透過一或多個網路及/或以任何其他適合裝置進行通訊。通訊介面1020可包括任何合適硬體及/或韌體。對於一實施例 之通訊介面1020例如可包括一網路卡、一無線網路卡、一電話數據機及/或一無線數據機。對無線通訊而言,對於一實施例的通訊介面1020可使用一或多個天線。
對於一實施例,至少一處理器1004可與邏輯1024、1026及/或1028封裝在一起。對於一實施例,至少一處理器1004可與邏輯1024、1026及/或1028封裝在一起以形成一系統級封裝(SiP)。對於一實施例,至少一處理器1004可與邏輯1024、1026及/或1028整合在相同晶粒上。對於一實施例,至少一處理器1004可與邏輯1024、1026及/或1028整合在相同晶粒上以形成一系統單晶片(SoC)。對於一實施例,該SoC可用於一智慧型手機、一蜂巢式手機、一計算平板電腦、一網際網路家電、一個人數位助理或其他行動裝置中。
在各種實施例中,系統1000可具有較多或較少的組件,及/或不同架構。
在整篇說明書參照“一實施例”代表結合該實施例描述的一特定特徵、結構或特性被包括在本揭露中所涵蓋的至少一實施態樣中。因此,“一實施例”的出現不一定代表相同實施例。此外,該等特定特徵、結構或特性可以所述特定實施例以外的其他適合形式來取代,且所有此等形式可涵蓋於本申請案之申請專利範圍中。
儘管特定實施例已在本文中被說明及描述,熟悉此技者將瞭解的是,各種替代及/或等效實施態樣可取代所說明及描述及特定實施例,而不偏離本揭露之實施例之範 圍。本申請案意欲涵蓋本文所討論的實施例之任何改寫或變化。因此,顯然本揭露之實施例僅意欲是被該等申請專利範圍及其等效所限制。
100‧‧‧虛擬機器監測器
110‧‧‧客端虛擬機器
120‧‧‧客端虛擬記憶體
130‧‧‧客端虛擬記憶體頁表
140‧‧‧客端實體記憶體
150‧‧‧實體虛擬記憶體頁表
160‧‧‧實體頁權限表
170‧‧‧鏡射頁表
180‧‧‧仿真器
190‧‧‧實體記憶體

Claims (32)

  1. 一種或多種用於促進由電腦處理器所執行之指令的電腦可讀取儲存媒體,其包含第一指令,其回應於被一計算裝置執行,導致該計算裝置以進行下列動作:判定該計算裝置之一電腦處理器將要執行的一第二指令係部分位於一第一記憶體頁及一第二記憶體頁中的每一者內,且該電腦處理器不具有執行位於該第一記憶體頁中的指令之權限;及根據許可位於該第一及該第二記憶體頁中的指令之執行的暫時權限,促進該第二指令的執行。
  2. 如申請專利範圍第1項之電腦可讀取儲存媒體,其中該等第一指令回應於被該計算裝置執行,經由該計算處理器根據許可位於該第一及該第二記憶體頁二者中的指令之執行之一虛擬記憶體頁表執行該第二指令的結果,導致該計算裝置促進該第二指令的執行。
  3. 如申請專利範圍第2項之電腦可讀取儲存媒體,其中:該等第一指令回應於被該計算裝置執行,進一步導致該計算裝置修改對於該電腦處理器的一目前虛擬記憶體頁表,以許可位於該第一及該第二記憶體頁二者中的指令之執行;及該等第一指令回應於被該計算裝置執行,進一步導致該計算裝置根據該經修改虛擬記憶體頁表執行該第二指令。
  4. 如申請專利範圍第2項之電腦可讀取儲存媒體,其中該等第一指令回應於被該計算裝置執行,導致該計算裝置根據已被組配以許可位於該第一及該第二記憶體頁二者中的指令之執行之一暫時虛擬記憶體頁表執行該第二指令。
  5. 如申請專利範圍第4項之電腦可讀取儲存媒體,其中該等第一指令回應於被該計算裝置執行,導致該計算裝置產生或修改該暫時虛擬記憶體頁表,以許可對於包括該等第一及第二記憶體頁之一位址空間之指令的執行。
  6. 如申請專利範圍第1項之電腦可讀取儲存媒體,其中該等第一指令回應於被該計算裝置執行,經由該計算處理器在已被組配以許可位於該第一及該第二記憶體頁二者中的指令之執行之一仿真器之控制下促進該第二指令的執行的結果,導致該計算裝置促進該第二指令的執行。
  7. 如申請專利範圍第5項之電腦可讀取儲存媒體,其中該仿真器具有對該計算裝置的根存取權。
  8. 如申請專利範圍第1-7項中任一項之電腦可讀取儲存媒體,其中該等第一指令回應於被該計算裝置執行,導致該計算裝置藉由導致在該等暫時權限下只執行該第二指令而不執行其他指令,促進該第二指令的執行。
  9. 如申請專利範圍第1項之電腦可讀取儲存媒體,其中:對於位於該第一記憶體頁中的指令的執行之權限被包括在一第一虛擬記憶體頁表中,且該第二指令是一第一群組的指令之一成員;及 該等第一指令回應於被該計算裝置執行,進一步導致該計算裝置以進行下列動作:導致該計算處理器之一第一核心以根據來自該第一虛擬記憶體頁表之權限執行該第一群組的指令;及在該第一核心執行該第一群組的指令的同時,導致該計算處理器之一第二核心以根據來自一第二虛擬記憶體頁表之權限執行另一群組的指令。
  10. 如申請專利範圍第1項之電腦可讀取儲存媒體,其中:該第二指令在包含一個或多個客端虛擬記憶體頁表之一客端虛擬機器之控制下被執行,該一個或多個客端虛擬記憶體頁表定義對於該客端虛擬機器中的客端虛擬記憶體頁之權限;及該等第一指令回應於被該計算裝置執行,進一步導致該計算裝置以進行下列動作:判定一實體記憶體的一頁將被關聯於一個或多個記憶體存取權限;及至少部分基於該請求,修改一個或多個經鏡射的虛擬記憶體頁表,其鏡射來自對於該等客端虛擬機器之一個或多個客端虛擬記憶體頁表之權限。
  11. 一種用於促進由電腦處理器所執行之指令的設備,其包含:一個或多個電腦處理器;一虛擬機器監測器,被組配以被該一個或多個電腦處理器操作以進行下列動作: 判定該一個或多個電腦處理器將要執行的一指令係部分位於一第一記憶體頁及一第二記憶體頁中的每一者內,且該一個電腦處理器不具有執行位於該第一記憶體頁中的指令之權限;及根據許可位於該第一及該第二記憶體頁中的指令之執行的暫時權限,促進該第二指令的執行。
  12. 如申請專利範圍第11項之設備,其中:該虛擬機器監測器包含提供對於執行指令的權限之一個或多個虛擬記憶體頁表;及該虛擬機器監測器被組配以被該一個或多個電腦處理器操作以根據許可位於該第一及該第二記憶體頁中的指令之執行的一虛擬記憶體頁表來執行該第二指令。
  13. 如申請專利範圍第12項之設備,其中:其中該虛擬機器監測器被組配以被該一個或多個電腦處理器操作以進行下列動作:修改對於該電腦處理器的一目前虛擬記憶體頁表,以許可位於該第一及該第二記憶體頁二者中的指令之執行;及根據該經修改虛擬記憶體頁表執行該第二指令。
  14. 如申請專利範圍第12項之設備,其中該虛擬機器監測器被組配以被該一個或多個電腦處理器操作以根據已被組配以許可位於該第一及該第二記憶體頁二者中的指令之執行之一暫時虛擬記憶體頁表執行該第二指令。
  15. 如申請專利範圍第14項之設備,其中該虛擬機器監測器進一步被組配以被該一個或多個電腦處理器操作以產生或修改該暫時虛擬記憶體頁表,以許可對於包括該等第一及第二記憶體頁之一位址空間之指令的執行。
  16. 如申請專利範圍第11項之設備,其中:該虛擬機器監測器進一步包含一仿真器,其已被組配以許可位於該第一及該第二記憶體頁二者中的指令之執行;及該虛擬機器監測器進一步被組配以被該一個或多個電腦處理器操作以在該仿真器之控制下執行該第二指令。
  17. 如申請專利範圍第16項之設備,其中該仿真器具有對該設備的根存取權。
  18. 如申請專利範圍第11-17項中任一項之設備,其中該虛擬機器監測器被組配以在該等暫時權限下只執行該第二指令而不執行其他指令。
  19. 如申請專利範圍第11項之設備,其中:該虛擬機器監測器包含出自該一個或多個虛擬記憶體頁表中之一第一虛擬記憶體頁表,該第一虛擬記憶體頁表包含對於執行指令的權限,該第二指令是一第一群組的指令之一成員;及該虛擬機器監測器進一步被組配以被該一個或多個電腦處理器操作以進行下列動作:導致該一計算處理器之一第一核心以根據來 自該第一虛擬記憶體頁表之權限執行該第一群組的指令;及在該第一核心執行該第一群組的指令的同時,導致該一計算處理器之一第二核心以根據來自一第二虛擬記憶體頁表之權限執行另一群組的指令。
  20. 如申請專利範圍第11項之設備,其中:該設備進一步包含一客端虛擬機器,其包含定義對於該客端虛擬機器中的客端虛擬記憶體頁之權限的一個或多個客端虛擬記憶體頁表;該第二指令在該客端虛擬機器之控制下被執行;及該虛擬機器監測器進一步被組配以被該一個或多個電腦處理器操作以進行下列動作:判定一實體記憶體的一頁將被關聯於一個或多個記憶體存取權限;及至少部分基於該請求,修改一個或多個經鏡射的虛擬記憶體頁表,其被組配來鏡射對於該等客端虛擬機器之一個或多個客端虛擬記憶體頁表。
  21. 一種以電腦實施之用於促進由電腦處理器所執行之指令的方法,其包含下列步驟:藉由一計算裝置判定該計算裝置之一電腦處理器將要執行的一第二指令係部分位於一第一記憶體頁及一第二記憶體頁中的每一者內,且該電腦處理器不具有執行位於該第一記憶體頁中的指令之權限;及藉由該計算裝置根據許可位於該第一及該第二記憶體頁中的指令之執行的暫時權限,促進該第二指令的 執行。
  22. 如申請專利範圍第21項之方法,其中促進該第二指令的執行之步驟包含,根據許可位於該第一及該第二記憶體頁二者中的指令之執行之一虛擬記憶體頁表執行該第二指令。
  23. 如申請專利範圍第22項之方法,其中該方法進一步包含下列步驟:藉由該計算裝置修改對於該電腦處理器的一目前虛擬記憶體頁表,以許可位於該第一及該第二記憶體頁二者中的指令之執行;及藉由該計算裝置根據該經修改虛擬記憶體頁表執行該第二指令。
  24. 如申請專利範圍第22項之方法,其進一步包含,藉由該計算裝置根據已被組配以許可位於該第一及該第二記憶體頁二者中的指令之執行之一暫時虛擬記憶體頁表執行該第二指令。
  25. 如申請專利範圍第24項之方法,其進一步包含,該計算裝置產生或修改該暫時虛擬記憶體頁表,以許可對於包括該等第一及第二記憶體頁之一位址空間之指令的執行。
  26. 如申請專利範圍第21項之方法,其中促進該第二指令的執行之步驟包含,在已被組配以許可位於該第一及該第二記憶體頁二者中的指令之執行之一仿真器之控制下,促進該第二指令的執行。
  27. 如申請專利範圍第25項之方法,其中該仿真器具有對該計算裝置的根存取權。
  28. 如申請專利範圍第21-27項中任一項之方法,其中促進該第二指令的執行之步驟包含,導致該計算裝置在該等暫時權限下只執行該第二指令而不執行其他指令。
  29. 如申請專利範圍第21項之方法,其中:對於位於該第一記憶體頁中的指令的執行之權限被包括在一第一虛擬記憶體頁表中,且該第二指令是一第一群組的指令之一成員;及該方法進一步包含下列步驟:藉由該計算裝置導致該計算處理器之一第一核心以根據來自該第一虛擬記憶體頁表之權限執行該第一群組的指令;及在該第一核心執行該第一群組的指令的同時,藉由該計算裝置導致該計算處理器之一第二核心以根據來自一第二虛擬記憶體頁表之權限執行另一群組的指令。
  30. 如申請專利範圍第21項之方法,其中:該第二指令在包含一個或多個客端虛擬記憶體頁表之一客端虛擬機器之控制下被執行,該一個或多個客端虛擬記憶體頁表定義對於該客端虛擬機器中的客端虛擬記憶體頁之權限;及該方法進一步包含下列步驟:藉由該計算裝置判定一實體記憶體之一頁將 被關聯於一個或多個記憶體存取權限;及至少部分基於該請求,藉由該計算裝置修改一個或多個經鏡射的虛擬記憶體頁表,其鏡射來自對於該等客端虛擬機器之一個或多個客端虛擬記憶體頁表之權限。
  31. 一種或多種電腦可讀取儲存媒體,其包含用於促進由一電腦處理器所執行之指令的指令,其回應於被一計算裝置執行,導致該計算裝置以進行下列動作:導致該計算裝置之一計算處理器之一第一核心以根據來自一第一虛擬記憶體頁表之權限執行一個或多個第一指令;及在該第一核心執行該一個或多個第一指令的同時,導致該計算處理器之一第二核心以根據來自一第二虛擬記憶體頁表之權限執行一個或多個第二指令。
  32. 一種或多種電腦可讀取儲存媒體,其包含用於修改一個或多個經鏡射虛擬記憶體頁表的指令,其回應於被一計算裝置執行,導致該計算裝置以進行下列動作:判定一實體記憶體的一頁將被關聯於一個或多個記憶體存取權限;及至少部分基於該請求,修改一個或多個經鏡射的虛擬記憶體頁表,其鏡射對於一個或多個客端虛擬機器之一個或多個客端虛擬記憶體頁表。
TW102100117A 2012-01-04 2013-01-03 用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法 TWI497294B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/020231 WO2013103341A1 (en) 2012-01-04 2012-01-04 Increasing virtual-memory efficiencies

Publications (2)

Publication Number Publication Date
TW201342061A TW201342061A (zh) 2013-10-16
TWI497294B true TWI497294B (zh) 2015-08-21

Family

ID=48745334

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102100117A TWI497294B (zh) 2012-01-04 2013-01-03 用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法

Country Status (3)

Country Link
EP (1) EP2801025B1 (zh)
TW (1) TWI497294B (zh)
WO (1) WO2013103341A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153672A1 (en) * 2002-11-18 2004-08-05 Arm Limited Switching between secure and non-secure processing modes
TW200417216A (en) * 2002-11-18 2004-09-01 Advanced Risc Mach Ltd Control of access to a memory by a device
CN1811714A (zh) * 2005-01-14 2006-08-02 英特尔公司 虚拟化虚拟机系统中的物理存储器
US20110161619A1 (en) * 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938147B1 (en) * 1999-05-11 2005-08-30 Sun Microsystems, Inc. Processor with multiple-thread, vertically-threaded pipeline
US7814287B2 (en) * 2005-07-15 2010-10-12 Xensource, Inc. Using writeable page tables for memory address translation in a hypervisor environment
US7464219B2 (en) * 2005-08-01 2008-12-09 International Business Machines Corporation Apparatus, system, and storage medium for data protection by a storage device
WO2007066720A1 (ja) * 2005-12-09 2007-06-14 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
US7721064B1 (en) * 2007-07-02 2010-05-18 Oracle America, Inc. Memory allocation in memory constrained devices
US20090172353A1 (en) * 2007-12-28 2009-07-02 Optillel Solutions System and method for architecture-adaptable automatic parallelization of computing code
US8799879B2 (en) * 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
EP2577448A4 (en) 2010-05-30 2014-07-09 Hewlett Packard Development Co INJECTION OF A VIRTUAL MACHINE CODE

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153672A1 (en) * 2002-11-18 2004-08-05 Arm Limited Switching between secure and non-secure processing modes
TW200417216A (en) * 2002-11-18 2004-09-01 Advanced Risc Mach Ltd Control of access to a memory by a device
CN1811714A (zh) * 2005-01-14 2006-08-02 英特尔公司 虚拟化虚拟机系统中的物理存储器
US20110161619A1 (en) * 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices

Also Published As

Publication number Publication date
EP2801025A4 (en) 2015-08-26
EP2801025B1 (en) 2018-10-24
WO2013103341A1 (en) 2013-07-11
TW201342061A (zh) 2013-10-16
EP2801025A1 (en) 2014-11-12

Similar Documents

Publication Publication Date Title
EP3608792B1 (en) Managed switching between one or more hosts and solid state drives (ssds) based on the nvme protocol to provide host storage services
US10169254B2 (en) Increasing virtual-memory efficiencies
US8271743B2 (en) Automated paging device management in a shared memory partition data processing system
US9454489B2 (en) Exporting guest spatial locality to hypervisors
US8719546B2 (en) Substitute virtualized-memory page tables
US11016817B2 (en) Multi root I/O virtualization system
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
US11734430B2 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN114207596A (zh) 将中断从输入-输出存储器管理单元提供到访客操作系统
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
JP7520843B2 (ja) 入出力メモリ管理ユニットによるドメイン識別子及びデバイス識別子の変換
KR20220017949A (ko) 입력-출력 메모리 관리 유닛에 의한 게스트 운영 체제 버퍼 및 로그 액세스
US20110314203A1 (en) Resource adjustment methods and systems for virtual machines
TWI497294B (zh) 用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法
US10684900B2 (en) Enhanced message control banks
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system
TWI506436B (zh) 替代虛擬化記憶體分頁表
WO2017020194A1 (zh) 一种文件系统保护方法、装置及存储设备
JP5468490B2 (ja) 仮想化環境が実現されているコンピュータにおいてディスク・ドライブにアクセスする方法およびコンピュータ
JP2013191043A (ja) ディスク装置、ファイル共有システム、ファイル共有方法、及びプログラム
JP2015215782A (ja) 情報処理装置

Legal Events

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