TWI506436B - 替代虛擬化記憶體分頁表 - Google Patents

替代虛擬化記憶體分頁表 Download PDF

Info

Publication number
TWI506436B
TWI506436B TW102100107A TW102100107A TWI506436B TW I506436 B TWI506436 B TW I506436B TW 102100107 A TW102100107 A TW 102100107A TW 102100107 A TW102100107 A TW 102100107A TW I506436 B TWI506436 B TW I506436B
Authority
TW
Taiwan
Prior art keywords
virtualized memory
page table
memory page
instruction
virtualized
Prior art date
Application number
TW102100107A
Other languages
English (en)
Other versions
TW201351144A (zh
Inventor
Baohong Liu
Manohar R Castelino
Kuo-Lang Tseng
Ritu Sood
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 TW201351144A publication Critical patent/TW201351144A/zh
Application granted granted Critical
Publication of TWI506436B publication Critical patent/TWI506436B/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
    • 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

Landscapes

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

Description

替代虛擬化記憶體分頁表 相關申請案
本申請案係有關同時提出申請的美國專利申請案"Increasing Virtual-Memory Efficiencies"(申請案號待指定)。
本申請案係有關資料處理之技術領域,且尤係有關替代虛擬化記憶體頁表(page table)之使用。
許多電腦系統為了安全、穩定性、及/或其他目的而利用虛擬化記憶體。在各種虛擬化記憶體系統中,一虛擬機監視器(Virtual Machine Monitor;簡稱VMM)可控制一電腦系統中之記憶體及/或電腦處理器之直接使用。可以軟體及/或硬體實施之該虛擬機監視器可讓客用軟體(guest software)只在虛擬機中執行,而每一虛擬機含有其本身的由虛擬化記憶體位址界定之客用位址空間。
在各種系統中,這些虛擬化記憶體位址利用被虛擬機 監視器控制的頁表而被映射到實體記憶體位址。在某些系統中,這些頁表可指定對記憶體頁(memory page)(後文中可簡稱為"頁")之存取許可(access permission)。因此,一頁表可為提供給某一客用軟體的虛擬化記憶體之每一頁界定該客用軟體是否可執行下列操作:(1)執行來自該頁的各位置之指令;(2)自該頁的各位置讀取;及/或(3)寫到該頁的各位置。在各種系統中,在執行期間,可使用或切換多個頁表,以便可容許該VMM決定的特定存取。
舉例而言,頁W及X可存放可信賴的資料,而頁Y及Z可存放可信賴的程式碼區段。為了使頁Y及Z中之程式碼能夠存取頁W及X中之資料,但是防止其他頁中之程式碼存取頁W及X中之資料,一頁表可將執行許可提供給頁Y及Z,且將讀取/寫入許可提供給頁W及X。
然而,在某些情況中,目前的頁表利用方式可能造成一些問題。例如,在假設容許上列的頁Y中之程式碼存取頁W及X但是只容許頁Z中之程式碼存取頁W之情況中,上述之頁表將不足以提供適當的安全性,且將需要其他的頁表。例如,在某些系統中,必須維護許多不同的頁表,以便將不同組的存取許可提供給不同的客用軟體,因而而增加了資源的使用及複雜性。
其次,在某些情況中,沒有任何頁表足以正確地控制記憶體位置存取許可,這是因為需要在比頁所能提供的粒 度(granularity)小的一粒度下提供許可。例如,一頁Q可能存放可信賴的資料D1及不信賴的資料D2。為了使不信賴的程式碼能夠存取不信賴的資料D2,一頁表將必須將讀取/寫入許可提供給頁Q,且同時將執行許可提供給不信賴的程式碼。此種方式將容許不信賴的程式碼存取資料D2,因而不信賴的程式碼也可存取可信賴的資料D1。
某些系統保留較小數目的頁表,且在使用之前根據每一次存取而修改這些頁表,而處理這些問題。因此,例如,如果需要存取一目前被使用之頁表不許可的一位址,則該VMM(在決定該存取是適當的存取之後)可修改目前的頁表,以便暫時提供被要求的讀取/寫入許可。控制然後可被轉移回到客用軟體,而進行資料存取執行。在執行了該資料存取之後,控制可被轉移回到VMM,而恢復原始的許可。
然而,此種程序可能造成其本身的無效率。在某些系統中,一個以上的電腦處理器可能利用一特定的頁表。因此,當一處理器需要為了一資料存取而暫時修改一頁表時,使用該被修改的頁表之任何其他的處理器必須暫停或以其他方式使其等候,因而該處理器並未使用該等被修改的許可而運行。此種處理器暫停可能減緩效能。此外,頁表修改時間本身就導致了效能損失(performance penalty),且可能是一種系統穩定性問題。
本發明說明了使用替代虛擬化記憶體頁表的技術及系統之實施例。在各實施例中,一虛擬機監視器(VMM)可根據一現用虛擬化記憶體頁表(Virtualized-Memory Page Table;簡稱VMPT)而決定將被在一客用軟體虛擬機上執行的一指令執行之一虛擬化記憶體存取是不被容許的。該VMM可選擇許可該虛擬化記憶體存取之一替代VMPT。在已知該指令的資料存取長度之情況中,該替代VMPT可包括整個客用軟體位址空間之完整執行、讀取、及寫入許可。在不知道該指令的資料存取長度之情況中,該替代VMPT可包括整個客用軟體位址空間之少於完整的執行、讀取、及寫入許可,且該替代VMPT可被修改,而容許被要求的虛擬化記憶體存取。亦可說明其他實施例,且申請該等其他實施例之專利範圍。
200‧‧‧虛擬機監視器
250,300,350‧‧‧替代虛擬化記憶體頁表
210‧‧‧客用軟體虛擬機
230‧‧‧虛擬化記憶體頁表
225‧‧‧客用記憶體
280‧‧‧實體記憶體
220‧‧‧客用軟體
600‧‧‧系統
604‧‧‧處理器
608‧‧‧系統控制邏輯
612‧‧‧記憶體
616‧‧‧非揮發性記憶體/儲存器
620‧‧‧通訊介面
624‧‧‧替代虛擬化記憶體頁表邏輯
已經由各附圖以非限制之方式示出之一些實施例說明了本發明之實施例,在該等附圖中,相像的參考編號表示類似的元件,且其中:第1圖是根據各實施例而提供替代頁表的一虛擬機監視器之一方塊圖;第2及3圖是根據各實施例的例示替代虛擬化記憶體頁表之方塊圖;第4圖示出根據各實施例的一例示替代虛擬化記憶體頁表利用程序; 第5圖示出利用根據各實施例的替代虛擬化記憶體頁表之一例示指令執行程序;以及第6圖示出根據各實施例的一例示計算環境。
本發明揭示了與使用替代虛擬化記憶體頁表相關聯的方法、設備、及儲存媒體。
在各實施例中,一或多個電腦可讀取的儲存媒體可包含一些第一指令,該等第一指令回應被一計算裝置執行,而使該計算裝置執行一或多個操作。該等指令可使該計算裝置決定將在該計算裝置的一電腦處理器上執行之一第二指令嘗試對一虛擬化記憶體位址位置執行一存取,其中根據一現用虛擬化記憶體頁表,對該虛擬化記憶體位址位置之該存取是不被許可的。該等指令可使該計算裝置根據一替代虛擬化記憶體頁表而在該電腦處理器上執行該第二指令,其中該替代虛擬化記憶體頁表被配置成許可對該虛擬化記憶體位址位置之存取。
在其他實施例中,設備及/或一或多個以電腦執行之方法可執行前文中討論的且在本發明中述及的一或多個操作。
將使用熟悉此項技術者通常用來將其工作之內容傳遞給其他熟悉此項技術者的術語說明該等例示實施例之各種觀點。然而,熟悉此項技術者將可了解:可以只用該等所述觀點中之某些觀點實施替代實施例。為了解說之目的, 述及了一些特定數目、材料、及組態,以便提供對該等例示實施例之徹底了解。然而,熟悉此項技術者將可了解:可在沒有該等特定細節之情形下實施替代實施例。在其他的情形中,省略或簡化一些習知特徵,以便不會模糊了該等例示實施例。
將以多個分離的操作之方式說明各操作,且係以一種最有助於了解該等例示實施例之方式說明各操作;然而,不應將說明的順序理解為意味著這些操作必然是與順序相依的。尤其,不需要按照呈現的順序執行這些操作。此外,將各操作說明為獨立的操作不應被理解為要求必須以獨立之方式執行該等操作及/或必須以獨立的實體執行該等操作。將各實體及/或模組說明為獨立的模組同樣地不應被理解為要求該等模組是獨立的及/或該等模組執行獨立的操作。在各實施例中,所示及/或所述之操作、實體、資料、及/或模組可被合併,被分為進一步之子零件,及/或被省略。
詞語"在一個實施例中"或"在一實施例中"被重複地使用。該詞語通常不參照到相同的實施例;然而,亦可參照到相同的實施例。除非上下文中另有規定,否則術語"包含"、"具有"、及"包括"是同義的。詞語"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圖,示出了一虛擬機監視器200之一方塊 圖,該虛擬機監視器200在各實施例中提供了一或多個替代虛擬化記憶體頁表(Substitute virtualized-memory Page Table;簡稱SPTs)250,以便用來將暫時存取許可提供給一客用軟體虛擬機210。在各實施例中,可在諸如一膝上型電腦、桌上型電腦、伺服器、及/或行動裝置等的一計算裝置上操作虛擬機監視器200及客用軟體虛擬機210。在各實施例中,虛擬機監視器200可將取代一或多個其他虛擬化記憶體頁表(virtualized-memory Page Table;簡稱PTs)230之SPTs 250提供給客用軟體虛擬機210。
在各實施例中,客用軟體虛擬機210可包含客用記憶體225。在各實施例中,客用記憶體225可包括實際的實體記憶體(例如,實體記憶體280)之一抽象化(abstraction),且係使用虛擬機監視器200將該抽象化連同其PTs 230轉換到實體記憶體280。因此,當客用軟體220嘗試存取對應於客用記憶體225中之一虛擬位址的記憶體位置時,客用記憶體225將轉而參照該等PTs 230,以便將該虛擬位址轉換為一對應的實體記憶體位址。在各實施例中,在該存取之後,可送回諸如讀取結果或寫入確認(write acknowledgement)等的該存取之結果。在其他實施例中,諸如當一記憶體存取不被許可時,可能送回存取錯誤訊息。為了顧及簡化之圖式,並未示出上述這些操作。在各實施例中,可全部或部分地以硬體實施用來提供PTs 230及替代虛擬化記憶體頁表250之該虛擬機監視器。在某些實施例中,客用記憶體225亦可包含 客用虛擬化記憶體(圖中未示出),其中一或多個客用虛擬化記憶體頁表(圖中未示出)將客用虛擬化記憶體位址轉換為客用記憶體225中之位址。在各實施例中,不論是否使用或實施客用虛擬化記憶體頁表,該虛擬機監視器都可使用替代頁表250。
在各實施例中,可暫時地(以虛線表示)提供SPTs 250,以便將記憶體存取許可之一暫時改變提供給客用軟體虛擬機210執行之記憶體存取。因此,在各實施例中,當該客用軟體虛擬機嘗試一記憶體存取時,該存取可能不被一現用虛擬化記憶體頁表許可。然而,虛擬機監視器200可決定該存取可被容許。在各實施例中,並不以前文所述之方式修改該現用虛擬化記憶體頁表,而是虛擬機監視器200可將一SPT 250提供給客用軟體虛擬機210使用,以便代替該現用PT。
在各實施例中,該SPT可被配置成容許先前不被該現用PT容許的。在各實施例中,該SPT可在該被要求的存取之前被以此種方式配置,以便將許可提供給該被要求的存取。
第2圖示出根據各實施例的一SPT之一例子。如第2圖所示,在各實施例中,一SPT可被配置成許可整個客用軟體虛擬機位址空間中之每一虛擬化記憶體位址之所有類型的存取。(此種情況在第2圖中被示為"XWR=111",意指執行、寫入、及讀取存取都分別被許可)因此,在某些實施例中,如果虛擬機監視器200決定一客用軟體虛擬機 210應被許可存取一現用PT不容許的一特定虛擬化記憶體位址,則該VMM可使用該例示之替代SPT,以便迅速地提供對該虛擬化記憶體位址之存取。在各實施例中,因為該SPT容許整個客用位址空間之存取許可,所以可以沒有需要作任何進一步的修改或決定。該VMM可切換成使用該SPT,而容許該記憶體存取,且在執行了該存取之後,切換回到先前被使用的PT。
在各實施例中,因為SPT 300被預先配置(在存取之前)成容許對該客用位址空間中之每一虛擬化記憶體位址位置之存取,所以SPT 300可以不需被修改,即可供任一電腦處理器使用。因此,在各實施例中,多個電腦處理器可在其各別的執行中之不同點上利用該SPT 300,而無須顧慮到某一電腦處理器可能必須等候執行而讓該VMM代表另一電腦處理器進行修改。
然而,在各實施例中,包括每一虛擬化記憶體位址位置的完整許可之SPT 300可能不必然是虛擬機監視器200希望作出的選擇。在某些實施例中,可至少部分地根據該VMM決定將被一指令執行的資料存取長度(例如,資料位元組總數)之能力,而決定使用具有完整許可的一SPT之適宜性。因此,當該VMM可決定一指令之資料存取長度時,該VMM可針對該指令存取的資料之總長度而決定是否應容許該存取。如果該VMM決定該總長度之該存取是許可的,則該VMM可安全地使用諸如具有完整許可的替代虛擬化記憶體頁表300等的一SPT。
然而,如果該VMM無法決定該資料長度,則該VMM可能無法確認是否應容許該被要求的存取。在此種情形中,在各實施例中,該VMM可針對被要求存取的該虛擬化記憶體位址而選擇具有少於完整之許可之一SPT。例如,該VMM可選擇第3圖之SPT 350(XWR=100),該SPT 350只有整個客用虛擬化記憶體位址空間的執行許可,但是沒有讀取或寫入許可。在其他實施例中,該VMM可選擇具有該客用虛擬化記憶體位址空間的執行及讀取許可但是沒有寫入許可之一SPT。例如,當該VMM正在保護記憶體不被不信賴的程式碼寫入,但是不需要防止讀取時,可選擇該SPT。在各實施例中,該VMM然後可修改該被選擇的SPT,以便容許對該被要求的虛擬化記憶體位址及/或該虛擬化記憶體位址所在的頁之一特定存取。
在某些實施例中,此種修改可能需要額外的時間及/或資源,且因而可能無法提供與使用SPT 300時相同的效率。然而,當仍然可在不使正在使用各PT的各電腦處理器暫停之情形下執行該SPT之使用及修改時,仍然可實現其他系統之效率。在某些實施例中,如果一個以上的電腦處理器正在使用被修改之一SPT,則可能要使這些電腦處理器等候執行,直到完成了該修改為止。然而,如果該VMM提供每一電腦處理器唯一的(或以其他方式與該電腦處理器相關聯的)各SPT,則可以不需要在修改期間使各電腦處理器等候。下文中將說明選擇及修改SPTs之一 些特定例子。亦請注意,雖然類似之SPTs 300及350被分別配置成將相同的許可提供給整個客用軟體虛擬機位址空間,但是在某些實施例中,該等SPTs可被配置成將相同的許可提供給少於整個的客用軟體虛擬機位址空間。
第4圖示出根據各實施例的一例示替代虛擬化記憶體頁表利用程序400。在各實施例中,可由VMM 200及客用軟體虛擬機210執行該程序。該程序可開始於操作420。在操作420中,VMM 200可產生一或多個PT及SPTs。在各實施例中,操作420可包括:產生具有整個客用軟體虛擬機位址空間的完整許可之SPTs,例如,產生SPT 300。在各實施例中,操作420可包括:產生具有整個客用軟體虛擬機位址空間的一或多個部分的少於完整之許可之SPTs,例如,產生SPT 350。在各實施例中,操作420可包括:產生與一些特定電腦處理器相關聯的SPTs;在某些實施例中,操作420可產生多個類似的SPTs,因而可使每一電腦處理器有一相關聯的SPT。
然後,在操作430中,客用軟體虛擬機210可開始執行客用軟體220。該執行可包括:客用軟體虛擬機210在VMM 200之控制下操作,且利用一或多個PTs 230。在操作440中,該VMM可識別:將要被客用軟體虛擬機210執行之一指令將嘗試不被一現用PT 230許可的一記憶體存取。然後,在操作450中,VMM 200及客用軟體虛擬機210可根據一SPT 250而執行該指令。下文中將說明該操作的一些特定實施例。在各實施例中,可在控制回到先 前被使用的PT之前只容許執行該單一指令本身的一旗標或被硬體或軟體賦能的其他構造之控制下執行該指令。此種方式有助於確認:只根據該STP之被增加的許可而執行該被識別的指令。
在完成了操作450之後,在操作460中,客用軟體虛擬機210可使用先前被使用的PT 230繼續執行客用軟體220。如果識別了不被現用PT 230許可的另一指令,則本程序可繼續回到操作440。在客用軟體虛擬機210完成了客用軟體220的執行之後,該程序可終止(圖中未示出)。
第5圖示出利用根據各實施例的SPTs的一例示指令執行程序500。在各實施例中,可由VMM 200及客用軟體虛擬機210執行該程序。在各實施例中,程序500可描述程序400的操作450之一或多種實施方式。在各實施例中,可參照嘗試不被現用PT許可的一虛擬化記憶體存取之一指令(例如,由於程序400的操作440之結果)而執行程序500。
該程序可開始於操作505。在操作505中,該VMM可決定將被該指令存取的資料長度(例如,資料位元組總數)是否為可用的。然後,在操作510中,該VMM可根據操作505中之該資料長度是否為可用的決定而執行兩組操作中之一組操作。如果該資料長度被決定是可用的,則在操作515中,VMM 200可決定是否應容許該指令執行其所要求的存取。如果該VMM決定不應容許該指令執行 其所要求的存取,則該程序可終止,且可送回一可供選擇採用的錯誤訊息(圖中未示出)。如果該VMM在操作515中決定應容許該存取,則在操作520中,該VMM可根據諸如例示SPT 300等的具有完整許可之一STP而執行該指令。在各實施例中,可在控制回到先前被使用的PT之前只容許執行該單一指令本身的一旗標或被硬體或軟體賦能的其他構造之控制下執行該指令。此種方式有助於確認:只根據該STP而執行該當前的指令,且標準PT存取許可將被用於客用軟體虛擬機210執行的後續指令。該程序然後可終止。
然而,如果該VMM決定該指令之存取資料長度是不可用的,則該VMM可利用具有少於完整之許可的一STP執行一系列的操作。此外,在操作525中,該VMM 200可決定是否應容許該指令對一現行頁(例如,先前決不許可該指令存取的一現行頁)執行其所要求的存取。如果該VMM決定不應容許該指令對該頁執行其所要求的存取,則該程序可終止,且可送回一可供選擇採用的錯誤訊息(圖中未示出)。如果該VMM在操作525中決定應容許對該現行頁之存取,則在操作530中,該VMM可取得對諸如例示SPT 350等的具有一有限組的許可的一STP之一鎖定(lock)。在各實施例中,該VMM可取得對該STP之一鎖定,以便其可在不會導致與也可能希望使用及/或修改該SPT的其他程序衝突之情形下修改該STP。在某些實施例中,如果該STP是執行該指令的該特定處理器專用 的,則可以不執行該鎖定操作530。
然後,在操作540中,該VMM可修改該STP,而容許該被要求的存取。在各實施例中,該修改可包括:只針對該指令企圖存取的初始頁而修改該STP(這是因為資料長度是未知的)。然後,在操作550中,該VMM可根據該被修改的STP而執行該指令。如前文所述,在各實施例中,可在控制回到先前被使用的PT之前只容許執行該單一指令本身的一旗標或被硬體或軟體賦能的其他構造之控制下執行該指令。然後,在操作560中,該VMM可修改該STP,使該STP回復到其先前的狀態。在該操作中,該VMM亦可解除對該STP之鎖定。該程序然後可終止。
可將本發明所述之該等技術及設備實施為使用以所需方式配置的適當的硬體、韌體、及/或軟體之一系統。第6圖針對一實施例而示出一例示系統600,該系統600至少包含:一些處理器604(每一處理器具有一或多個處理器核心)、被耦合到該等處理器604中之至少一處理器之系統控制邏輯608、被耦合到系統控制邏輯608之記憶體612、被耦合到系統控制邏輯608之非揮發性記憶體(Non-Volatile Memory;簡稱NVM)/儲存器616、以及被耦合到系統控制邏輯608之一或多個通訊介面620。在各實施例中,系統600可包括一基於中央處理單元(CPU)的軟體系統、一管理引擎系統、或以上兩者的一組合之一些組件。
在一實施例中,系統控制邏輯608可包括任何適當的 介面控制器,用以將任何適當的介面提供給該等處理器604中之至少一處理器、及/或與系統控制邏輯608通訊之任何適當的裝置或組件。該等處理器可包括可在其上操作一應用環境之專用之一應用處理器、以及可在其上操作一管理引擎(manageability engine)之一獨立的服務處理器。該系統可包含額外的處理器或處理核心(圖中未示出)。
在一實施例中,系統控制邏輯608可包括一或多個記憶體控制器,用以將一介面提供給記憶體612。系統記憶體612可被用來載入及儲存諸如系統600之資料及/或指令。在一實施例中,系統記憶體612可包括任何適當之諸如適當的動態隨機存取記憶體(Dynamic Random Access Memory;簡稱DRAM)等的非短暫性電腦可讀取的揮發性記憶體。
在一實施例中,系統控制邏輯608可包括一或多個輸入/輸出(Input/Output;簡稱I/O)控制器,用以將一介面提供給NVM/儲存器616及通訊介面620。
NVM/儲存器616可被用來儲存諸如資料及/或指令。NVM/儲存器616可包括任何適當之諸如快閃記憶體等的非短暫性電腦可讀取的非揮發性記憶體,且/或可包括任何適當之諸如一或多個硬碟機(Hard Disk Drive(s);簡稱HDD(s))、一或多個固態硬碟、一或多個光碟(Compact Disc;簡稱CD)機、及/或一或多個數位多功能光碟(Digital Versatile Disc;簡稱DVD)機等的非 揮發性儲存裝置。
NVM/儲存器616可包括系統600被安裝在其上的一裝置之一儲存資源實體部分,或者該裝置的一部分可存取(但不必然存取)NVM/儲存器616。例如,可經由一網路及該一或多個通訊介面620存取NVM/儲存器616。
記憶體612及NVM/儲存器616尤其可分別包括邏輯之短暫的及持續的拷貝。在該所示例子中,該邏輯可包括SPT邏輯624。SPT邏輯624可包括一些指令,該等指令被該等處理器604中之至少一處理器執行時,將使系統600執行與程序400及程序500相關聯的某些或所有操作。在某些實施例中,SPT邏輯624可被額外地/替代地設置在系統控制邏輯608中。
通訊介面620可將一介面提供給系統600,以便經由一或多個網路而通訊,及/或與任何其他適當的裝置通訊。通訊介面620可包括任何適當的硬體及/或韌體。在一實施例中,通訊介面620可包括諸如一網路配接器、一無線網路配接器、一電話數據機、及/或一無線數據機。對於無線通訊而言,在一實施例中,通訊介面620可使用一或多個天線。
在一實施例中,可將該等處理器604中之至少一處理器與系統控制邏輯608的一或多個控制器之邏輯封裝在一起。在一實施例中,可將該等處理器604中之至少一處理器與系統控制邏輯608的一或多個控制器之邏輯封裝在一起,而構成一系統級封裝(System in Package;簡稱 SiP)。在一實施例中,可在相同的晶片上將該等處理器604中之至少一處理器與系統控制邏輯608的一或多個控制器之邏輯整合。在一實施例中,可在相同的晶片上將該等處理器604中之至少一處理器與系統控制邏輯608的一或多個控制器之邏輯整合,而構成一系統單晶片(System on Chip;簡稱SoC)。在至少一實施例中,該SoC可被用於智慧型手機、細胞式電話、平板電腦、或其他行動裝置。
在各實施例中,系統600可具有較多或較少的組件、及/或不同的架構。
在本說明書中提及"一個實施例"或"一實施例"時,意指以與該實施例有關之方式述及的一特定特徵、結構、或特性被包含在本發明揭示內所包含的至少一實施例中。因此,出現詞語"一個實施例"或"在一實施例中"時,不必然都參照到相同的實施例。此外,可以所示特定實施例以外的其他適當形式實施該等特定特徵、結構、或特性,且所有此類形式可被包含在本申請案的申請專利範圍內。
雖然在本說明書中已示出且說明了一些特定實施例,但是對此項技術具有一般知識者將可了解:亦可在不脫離本發明揭示的該等實施例之範圍下,以多種替代及/或等效實施方式替換所示及所述之該等特定實施例。本申請案意圖涵蓋本發明述及的實施例之任何改作或變化。因此,本發明揭示的實施例將顯然只受申請專利範圍及其等效物的限制。

Claims (24)

  1. 一種包含第一指令之一或多個電腦可讀取的儲存媒體,該等第一指令回應被一計算裝置執行,而使該計算裝置執行下列步驟:決定將在該計算裝置的一電腦處理器上執行之一第二指令嘗試對一虛擬化記憶體位址位置執行一存取,其中根據一現用虛擬化記憶體頁表,對該虛擬化記憶體位址位置之該存取是不被許可的;在執行該第二指令之前,決定將被該第二指令存取的資料位元組總數是否可被決定;根據該資料位元組總數是否可被決定,而選擇一替代虛擬化記憶體頁表;以及根據該替代虛擬化記憶體頁表而在該電腦處理器上執行該第二指令,其中該替代虛擬化記憶體頁表被配置成許可對該虛擬化記憶體位址位置之存取。
  2. 如申請專利範圍第1項之電腦可讀取的媒體,其中該等第一指令回應被該電腦處理器執行,而使該計算裝置執行下列步驟:當資料位元組總數可被決定時,根據具有對該虛擬化記憶體位址位置的完整執行、讀取、及寫入許可之一替代虛擬化記憶體頁表而執行該第二指令。
  3. 如申請專利範圍第1項之電腦可讀取的媒體,其中該等第一指令回應被該電腦處理器執行,而使該計算裝置執行下列步驟:當資料位元組總數無法被決定時,根據具有對該虛擬化記憶體位址位置的少於完整之執行、讀 取、及寫入許可之一替代虛擬化記憶體頁表而執行該第二指令。
  4. 如申請專利範圍第3項之電腦可讀取的媒體,其中該等第一指令回應被該電腦處理器執行,而使該計算裝置執行下列步驟:修改不許可對該虛擬化記憶體位址位置的存取之一替代虛擬化記憶體頁表,因而在修改之後,該替代虛擬化記憶體頁表許可對該虛擬化記憶體位址位置的存取。
  5. 如申請專利範圍第4項之電腦可讀取的媒體,其中該等第一指令回應被該電腦處理器執行,而使該計算裝置執行下列步驟:在執行了該第二指令之後,修改許可對該虛擬化記憶體位址位置的存取之該替代虛擬化記憶體頁表,因而在修改之後,該替代虛擬化記憶體頁表不許可對該虛擬化記憶體位址位置的存取。
  6. 如申請專利範圍第4項之電腦可讀取的媒體,其中該等第一指令回應被該電腦處理器執行,而使該計算裝置執行下列步驟:在修改該替代虛擬化記憶體頁表及執行該第二指令期間,使利用該替代虛擬化記憶體頁表的一或多個電腦處理器之執行等候。
  7. 如申請專利範圍第1-6項中之任一項之電腦可讀取的媒體,其中該替代虛擬化記憶體頁表係該電腦處理器專用。
  8. 如申請專利範圍第1-6項中之任一項之電腦可讀取的媒體,其中該替代虛擬化記憶體頁表被配置成許可對 一虛擬化記憶體空間中之所有記憶體位址的存取。
  9. 一種促進將在一或多個電腦處理器中之一電腦處理器上執行的指令的執行之設備,該設備包含:該一或多個電腦處理器;一虛擬機監視器,該虛擬機監視器被配置成被該一或多個電腦處理器操作而執行下列步驟:決定將在該一或多個電腦處理器中之一電腦處理器上執行之指令嘗試對一虛擬化記憶體位址位置執行一存取,其中根據被配置成包括對該電腦處理器上執行的各指令所執行之存取之許可之一第一虛擬化記憶體頁表,對該虛擬化記憶體位址位置之該存取是不被許可的;在執行該指令之前,決定將被該指令存取的資料位元組總數是否可被決定;根據該資料位元組總數是否可被決定,而從一或多個替代虛擬化記憶體頁表中選擇一替代虛擬化記憶體頁表;以及使該電腦處理器根據該被選擇之替代虛擬化記憶體頁表而在該電腦處理器上執行該指令,其中該被選擇之替代虛擬化記憶體頁表被配置成許可對該虛擬化記憶體位址位置之存取。
  10. 如申請專利範圍第9項之設備,其中該虛擬機監視器被進一步配置成執行下列步驟:當資料位元組總數可被決定時,選擇具有對該虛擬化記憶體位址位置的完整執行、讀取、及寫入許可之一替代虛擬化記憶體頁表。
  11. 如申請專利範圍第9項之設備,其中該虛擬機監視器被進一步配置成執行下列步驟:當資料位元組總數無法被決定時,選擇具有對該虛擬化記憶體位址位置的少於完整之執行、讀取、及寫入許可之一替代虛擬化記憶體頁表。
  12. 如申請專利範圍第11項之設備,其中該虛擬機監視器被進一步配置成執行下列步驟:修改不許可對該虛擬化記憶體位址位置的存取之一替代虛擬化記憶體頁表,因而在修改之後,該替代虛擬化記憶體頁表許可對該虛擬化記憶體位址位置的存取。
  13. 如申請專利範圍第12項之設備,其中該虛擬機監視器被進一步配置成執行下列步驟:在執行該指令之後,修改許可對該虛擬化記憶體位址位置的存取之該替代虛擬化記憶體頁表,因而在修改之後,該替代虛擬化記憶體頁表不許可對該虛擬化記憶體位址位置的存取。
  14. 如申請專利範圍第12項之設備,其中該虛擬機監視器被進一步配置成執行下列步驟:在修改該替代虛擬化記憶體頁表及執行該指令期間,使利用該替代虛擬化記憶體頁表的一或多個電腦處理器之執行等候。
  15. 如申請專利範圍第9-14項中之任一項之設備,其中該替代虛擬化記憶體頁表係該電腦處理器專用。
  16. 如申請專利範圍第9-14項中之任一項之設備,其中該被選擇之替代虛擬化記憶體頁表被配置成許可對一虛擬化記憶體空間中之所有記憶體位址的存取。
  17. 一種促進將在一計算裝置的一電腦處理器上執行的指令的執行之以電腦執行之方法,包含下列步驟:由該計算裝置決定將在該計算裝置的該電腦處理器上執行之指令嘗試對一虛擬化記憶體位址位置執行一存取,其中根據一現用虛擬化記憶體頁表,對該虛擬化記憶體位址位置之該存取是不被許可的;在執行該指令之前,由該計算裝置決定將被該指令存取的資料位元組總數是否可被決定;至少部分根據該資料位元組總數是否可被決定,而選擇一替代虛擬化記憶體頁表;以及由該計算裝置根據該替代虛擬化記憶體頁表而在該電腦處理器上執行該指令,其中該替代虛擬化記憶體頁表被配置成許可對該虛擬化記憶體位址位置之存取。
  18. 如申請專利範圍第17項之方法,進一步包含下列步驟:當資料位元組總數可被決定時,根據具有對該虛擬化記憶體位址位置的完整執行、讀取、及寫入許可之一替代虛擬化記憶體頁表而執行該指令。
  19. 如申請專利範圍第17項之方法,進一步包含下列步驟:當資料位元組總數無法被決定時,根據具有對該虛擬化記憶體位址位置的少於完整之執行、讀取、及寫入許可之一替代虛擬化記憶體頁表而執行該指令。
  20. 如申請專利範圍第19項之方法,進一步包含下列步驟:修改不許可對該虛擬化記憶體位址位置的存取之一替代虛擬化記憶體頁表,因而在修改之後,該替代虛擬 化記憶體頁表許可對該虛擬化記憶體位址位置的存取。
  21. 如申請專利範圍第20項之方法,進一步包含下列步驟:在執行了該指令之後,修改許可對該虛擬化記憶體位址位置的存取之該替代虛擬化記憶體頁表,因而在修改之後,該替代虛擬化記憶體頁表不許可對該虛擬化記憶體位址位置的存取。
  22. 如申請專利範圍第20項之方法,進一步包含下列步驟:在修改該替代虛擬化記憶體頁表及執行該指令期間,使利用該替代虛擬化記憶體頁表的一或多個電腦處理器暫停。
  23. 如申請專利範圍第17-22項中之任一項之方法,其中該替代虛擬化記憶體頁表係該電腦處理器專用。
  24. 如申請專利範圍第17-22項中之任一項之方法,其中該被選擇之替代虛擬化記憶體頁表被配置成許可對一虛擬化記憶體空間中之所有記憶體位址的存取。
TW102100107A 2012-01-04 2013-01-03 替代虛擬化記憶體分頁表 TWI506436B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/020229 WO2013103340A1 (en) 2012-01-04 2012-01-04 Substitute virtualized-memory page tables

Publications (2)

Publication Number Publication Date
TW201351144A TW201351144A (zh) 2013-12-16
TWI506436B true TWI506436B (zh) 2015-11-01

Family

ID=48745333

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102100107A TWI506436B (zh) 2012-01-04 2013-01-03 替代虛擬化記憶體分頁表

Country Status (3)

Country Link
EP (1) EP2801026A4 (zh)
TW (1) TWI506436B (zh)
WO (1) WO2013103340A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200619934A (en) * 2004-09-30 2006-06-16 Intel Corp Caching support for direct memory access address translation
TW200636572A (en) * 2005-01-14 2006-10-16 Intel Corp Virtualizing physical memory in a virtual machine system
US20090222816A1 (en) * 2008-02-29 2009-09-03 Arm Limited Data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuirty

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814287B2 (en) * 2005-07-15 2010-10-12 Xensource, Inc. Using writeable page tables for memory address translation in a hypervisor environment
US7721064B1 (en) * 2007-07-02 2010-05-18 Oracle America, Inc. Memory allocation in memory constrained devices
US8607013B2 (en) 2007-10-30 2013-12-10 Vmware, Inc. Providing VMM access to guest virtual memory
US8341627B2 (en) 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8719543B2 (en) * 2009-12-29 2014-05-06 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200619934A (en) * 2004-09-30 2006-06-16 Intel Corp Caching support for direct memory access address translation
TW200636572A (en) * 2005-01-14 2006-10-16 Intel Corp Virtualizing physical memory in a virtual machine system
US20110087822A1 (en) * 2005-01-14 2011-04-14 Bennett Steven M Virtualizing physical memory in a virtual machine system
US20090222816A1 (en) * 2008-02-29 2009-09-03 Arm Limited Data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuirty

Also Published As

Publication number Publication date
EP2801026A1 (en) 2014-11-12
EP2801026A4 (en) 2015-08-12
TW201351144A (zh) 2013-12-16
WO2013103340A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
US10169254B2 (en) Increasing virtual-memory efficiencies
US10366012B2 (en) GPU virtualisation
EP3706361B1 (en) Loading and virtualizing cryptographic keys
TWI537822B (zh) 虛擬化中斷優先順序及遞送之技術
WO2015032312A1 (zh) 硬件资源访问方法及装置
EP3230873B1 (en) Computing method and apparatus with persistent memory
US8719546B2 (en) Substitute virtualized-memory page tables
BR112015022865B1 (pt) Método e aparelho para ativar seletivamente as operações de um monitor de máquina virtual sob demanda
JP6483631B2 (ja) メモリ装置及び制御プログラム
JP2014501409A (ja) セキュリティ境界の提供
US10732889B2 (en) Information handling system with multi-key secure erase of distributed namespace
KR20210025683A (ko) 실행 도메인에 대한 페이지 테이블 엔트리에 보안 구성
JP2023047278A (ja) トランスフォーマ鍵識別子を使用する仮想機械マネージャによる信頼されたドメイン保護メモリへのシームレスなアクセス
US20220114086A1 (en) Techniques to expand system memory via use of available device memory
TWI506436B (zh) 替代虛擬化記憶體分頁表
TWI497294B (zh) 用於增加虛擬記憶體效能之電腦可讀儲存媒體、設備及電腦實施方法
TW201030622A (en) Paging instructions for a virtualization engine to local storage
US20220229565A1 (en) System and method of utilizing memory medium fault resiliency with secure memory medium portions
WO2017020194A1 (zh) 一种文件系统保护方法、装置及存储设备

Legal Events

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