TWI578221B - 確認虛擬位址轉譯 - Google Patents

確認虛擬位址轉譯 Download PDF

Info

Publication number
TWI578221B
TWI578221B TW104116272A TW104116272A TWI578221B TW I578221 B TWI578221 B TW I578221B TW 104116272 A TW104116272 A TW 104116272A TW 104116272 A TW104116272 A TW 104116272A TW I578221 B TWI578221 B TW I578221B
Authority
TW
Taiwan
Prior art keywords
address
virtual
memory
processing system
virtual machine
Prior art date
Application number
TW104116272A
Other languages
English (en)
Other versions
TW201610682A (zh
Inventor
拉維 沙希塔
吉伯 尼格
大衛 杜翰
凡德伊斯 沙巴吉
麥可 里梅
伊多 奧席爾
史丹尼斯拉法 休瓦茲曼
巴瑞 亨特里
安德魯 安德森
Original Assignee
英特爾股份有限公司
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 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201610682A publication Critical patent/TW201610682A/zh
Application granted granted Critical
Publication of TWI578221B publication Critical patent/TWI578221B/zh

Links

Classifications

    • 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/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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
    • 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
    • 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/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

確認虛擬位址轉譯
本揭示發明通常相關於電腦系統,且具體地相關於用於在電腦系統中確認虛擬位址轉譯的系統及方法。
處理系統可藉由使用用於將正由該處理系統執行之應用程式所參照的虛擬位址轉譯成界定在處理系統之位址空間中的實體位置的頁表而將記憶體虛擬化。在處理系統可組態成執行由虛擬機器管理程式管理之一或多個虛擬機器的虛擬化環境中,相似的位址轉譯處理可在虛擬機器內執行。
100‧‧‧處理系統
102、200、1610‧‧‧處理器
104‧‧‧1級(L1)內部快取記憶體
106‧‧‧暫存器檔案
108、462‧‧‧執行單元
109‧‧‧封裝指令集
110‧‧‧處理器匯流排
111‧‧‧處理核心
112‧‧‧圖形加速器
114‧‧‧加速圖形埠(APG)互連
115‧‧‧共享互連
116‧‧‧記憶體控制集線器
117‧‧‧虛擬機器管理程式(VMM)
118‧‧‧高帶寬記憶體路徑
120、732、734‧‧‧記憶體
122‧‧‧系統I/O
124‧‧‧I/O控制器集線器
126‧‧‧無線收發器
128‧‧‧快閃記憶體BIOS
130‧‧‧I/O控制器匯流排(ICH)
131‧‧‧虛擬機器
133‧‧‧客體OS頁表(OS PT)
134‧‧‧網路控制器
135‧‧‧轉譯後備緩衝器(TLB)
136‧‧‧音訊控制器
137‧‧‧尋頁錯失管理程式(PMH)
138‧‧‧串列擴充埠
139‧‧‧延伸頁表(EPT)
140‧‧‧I/O控制器
201‧‧‧有序前端
202‧‧‧快速排程器
203‧‧‧無序執行引擎
204‧‧‧慢速/通用浮點排程器
206‧‧‧簡單浮點排程器
208‧‧‧實體暫存器檔案
210‧‧‧RLC表
211‧‧‧執行方塊
212、214‧‧‧位址產生單元(AGU)
216、218‧‧‧快速ALU
220‧‧‧慢速ALU
222‧‧‧浮點ALU
224‧‧‧浮點移動單元
226‧‧‧指令預提取器
228‧‧‧指令解碼器
230‧‧‧追蹤快取記憶體
232‧‧‧微碼ROM
234‧‧‧微運算佇列
310‧‧‧客體虛擬位址
400‧‧‧方法
402‧‧‧提取級
404‧‧‧長度解碼級
406‧‧‧解碼級
408‧‧‧配置級
410‧‧‧更名級
412‧‧‧排程級
414‧‧‧暫存器讀取/記憶體讀取級
416‧‧‧執行級
418‧‧‧寫回/記憶體寫入級
420‧‧‧異常管理級
422‧‧‧提交級
430‧‧‧前端單元
432‧‧‧分支預測單元
434‧‧‧指令快取單元
436‧‧‧指令轉換後備緩衝器(TLB)
438‧‧‧指令提取單元
440‧‧‧解碼單元
450‧‧‧執行引擎單元
452‧‧‧更名/配置器單元
454‧‧‧引退單元
456‧‧‧排程器單元
458‧‧‧實體暫存器檔案單元
460‧‧‧執行叢集
464‧‧‧記憶體存取單元
470‧‧‧記憶體單元
472‧‧‧資料TLB單元
474‧‧‧資料快取單元
476‧‧‧2級(L2)快取單元
700‧‧‧電腦系統
714‧‧‧I/O裝置
716‧‧‧第一匯流排
718‧‧‧匯流排橋接器
720‧‧‧第二匯流排
722‧‧‧鍵盤及/或滑鼠
724‧‧‧音訊I/O
727‧‧‧通訊裝置
728‧‧‧儲存單元
730‧‧‧指令/碼及資料
738‧‧‧高效能圖形電路
739‧‧‧高效能圖形介面
750‧‧‧點-對-點互連
752、754、776、778、786、788‧‧‧點對點(P-P)介面
770‧‧‧第一處理器
772、782‧‧‧積集記憶體控制器單元
780‧‧‧第二處理器
790‧‧‧晶片組
794、798‧‧‧點對點介面電路
796‧‧‧介面
900、1700‧‧‧系統單晶片(SoC)
902‧‧‧互連單元
902A-N、1706、1707‧‧‧核心
906‧‧‧共享快取記憶體單元
908‧‧‧積集圖形邏輯
910‧‧‧應用處理器
914‧‧‧積集記憶體控制器單元
916‧‧‧匯流排控制器單元
920‧‧‧媒體處理器
924‧‧‧影像處理器
926‧‧‧音訊處理器
928‧‧‧視訊處理器
930‧‧‧靜態隨機存取記憶體(SRAM)單元
932‧‧‧直接記憶體存取(DMA)單元
940‧‧‧顯示單元
1600‧‧‧系統
1615‧‧‧系統記憶體
1620‧‧‧大量儲存器
1622‧‧‧快閃記憶體裝置
1624‧‧‧顯示器
1625‧‧‧觸控螢幕
1630‧‧‧觸控板
1635‧‧‧嵌入式控制器
1636‧‧‧鍵盤
1637‧‧‧風扇
1638‧‧‧可信賴平台模組(TPM)
1639、1646‧‧‧熱感測器
1640‧‧‧感測器集線器
1641‧‧‧加速度計
1642‧‧‧周邊光感測器(ALS)
1643‧‧‧羅盤
1644‧‧‧迴轉儀
1645‧‧‧近場通訊(NFC)單元
1650‧‧‧WLAN單元
1652‧‧‧藍牙單元
1655‧‧‧GPS模組
1656‧‧‧WWAN單元
1657、1730‧‧‧用戶識別模組(SIM)
1660‧‧‧數位訊號處理器(DSP)
1662‧‧‧積集編碼器/解碼器(CODEC)及放大器
1663‧‧‧輸出揚聲器
1665‧‧‧麥克風
1708‧‧‧快取記憶體控制
1709‧‧‧匯流排介面單元
1710‧‧‧L2快取記憶體
1711‧‧‧互連
1715‧‧‧GPU
1720‧‧‧視訊編碼解碼器
1725‧‧‧視訊介面
1735‧‧‧開機ROM
1740‧‧‧SDRAM控制器
1745‧‧‧快閃記憶體控制器
1750‧‧‧周邊控制
1760‧‧‧DRAM
1765‧‧‧快閃記憶體
1770‧‧‧藍牙模組
1775‧‧‧3G數據機
1780‧‧‧GPS
1785‧‧‧WiFi
本揭示發明以範例而非限制方式說明,且當結合該等圖式考慮時,可參考以下實施方式而更完整地理解,在圖式中:圖1根據本揭示發明的一或多個樣態描畫範例處理系統的高階組件圖; 圖2根據本揭示發明的一或多個樣態示意地描繪確認虛擬位址轉譯的範例實作;圖3根據本揭示發明的一或多個樣態示意地描繪範例RLC表結構;圖4根據本揭示發明的一或多個樣態描畫用於確認虛擬位址轉譯之範例方法的流程圖;圖5根據本揭示發明的一或多個樣態描畫範例電腦系統的高階組件圖;圖6根據本揭示發明的一或多個樣態描繪處理器的方塊圖;圖7a-7b根據本揭示發明的一或多個樣態示意地描繪處理器微架構的元件;圖8根據本揭示發明的一或多個樣態描畫範例電腦系統的方塊圖;圖9根據本揭示發明的一或多個態樣描畫範例系統單晶片(SoC)的方塊圖;圖10根據本揭示發明的一或多個樣態描畫範例電腦系統的方塊圖;及圖11根據本揭示發明的一或多個態樣描畫範例系統單晶片(SoC)的方塊圖。
【發明內容及實施方式】
本文描述用於確認虛擬位址轉譯的處理系統及相關方法。
處理系統可執行組態成創造及管理執行由個別客體作業系統控制的各種軟體應用程式之一或多個虛擬機器的虛擬機器管理程式(VMM)。由虛擬機器執行的軟體應用程式可使用客體虛擬位址(例如,藉由客體線性位址表示)參考記憶體位置。回應於接收記憶體存取請求,處理器使用客體頁表(OS PT)將所參考的客體虛擬位址轉譯成客體實體位址。然後處理系統可使用延伸頁表(EPT)將客體實體位址轉譯成對應的主機實體位址。
在特定情形中,使用能由客體作業系統修改的OS PT實施客體虛擬位址至客體實體位置的轉譯可被視為係弱點。潛在攻擊者可運用該能力修改OS PT以實施資料映射替換或碼重映射攻擊。本揭示發明藉由提供VMM可用其確認客體虛擬位址至客體實體位址轉譯的限制線性檢查(RLC)表而解決各種常用實作的此及其他缺陷。
在說明範例中,客體作業系統可使用OS PT決定對應於由客體應用程式所參考之客體虛擬位址的客體實體位址。然後處理系統可藉由比較暫時客體實體位址與由RLC表查找產生的預期客體實體位址而確認客體虛擬位址至暫時客體實體位址的映射。如下文所更詳細地描述的,萬一由OS PT表尋選產生的暫時客體實體位址與由RLC表查找產生的預期客體實體位址匹配,客體實體位置至主機實體位址的映射可從EPT決定;否則,可將VM脫離發訊給VMM。
上文參考之方法及系統的各種樣態係藉由範例方式而 非藉由限制方式於下文更詳細地描述。
在以下描述中,陳述許多具體細節,諸如,處理器及系統組態的具體種類、具體硬體結構、具體架構及微架構細節、具體暫存器組態、具體指令種類、具體系統組件、具體量測/高度、具體處理器管線級及操作的範例,以提供對本揭示發明的徹底理解。然而,不必利用此等具體細節實踐本文揭示的方法對熟悉本技術的人士會係明顯的。在其他實例中,未詳細描述已為人所熟知的組件或方法,諸如,具體及替代處理器架構、用於所描述之演算法的具體邏輯電路/碼、具體韌體碼、具體互連操作、具體邏輯組態、具體製造技術及材料、具體編譯器實作、演算法以碼的具體表示、具體省電及閘控技術/邏輯、及電腦系統的其他具體操作細節,以避免不必要的混淆本揭示發明。
雖然以下範例係參考處理器而描述,其他實作可應用至其他種類的積體電路及邏輯裝置。本文描述之範例的相似技術及教示能應用至能從更高管線處理量及已改善效能獲利的其他種類的電路或半導體裝置。本文描述之範例的教示可應用於實施資料操控的任何處理器或機器。然而,本揭示發明並未受限於實施512位元、256位元、128位元、64位元、32位元、或16位元資料操作的處理器或機器,並能應用至在其中實施資料的操控或管理的任何處理器及機器。
當說明本揭示發明及隨附圖式的範例僅企圖提供本文描述之實施例的範例而非提供本文描述之實施例的所有可 能實作的窮舉列表時,彼等不應以限制方式構成。雖然以下範例在執行單元及邏輯電路的背景下描述指令管理及分佈,本文描述之系統及方法的其他實作能藉由儲存在機器可讀實體媒體上之當藉由機器執行時導致該機器實施與本文描述之至少一實施例一致的功能的資料或指令完成。在特定實作中,與本文描述之實施例關聯的功能係以機器可執行指令具現。該等指令能用於導致以該等指令編程的通用或專用處理器實施本文描述的方法。本文描述的實作可提供為電腦程式產品或軟體,其可包括具有儲存於其上之可用於編程電腦(或其他電子裝置)以實施根據本文描述之實施例的一或多個操作之指令的機器或電腦可讀媒體。或者,本文描述之系統及方法的操作可藉由包含用於實施該等操作之固定功能邏輯的特定硬體組件,或藉由已編程電腦組件及固定功能硬體組件的任何組合實施。
用於編程邏輯以實施本文描述整方法的指令能儲存在系統的記憶體內,諸如,DRAM、快取記憶體、快閃記憶體、或其他儲存器。另外,指令能藉由網路或藉由其他電腦可讀媒體散佈。因此機器可讀媒體可包括用於以可由機器(例如,電腦)讀取的形式儲存或發送資訊的任何機制,但未受限於,軟碟、光碟、光碟唯讀記憶體(CD-ROM)、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、磁或光卡、快閃記憶體、或使用在經由 電、光、聲響、或其他形式(例如,載波、紅外線訊號、數位訊號等)的傳播訊號透過網際網路的資訊之發送中的實體機器可讀儲存器。因此,電腦可讀媒體包括適於以可由機器(例如,電腦)讀取的形式儲存或發送電子指令或資訊之任何種類的實體機器可讀媒體。
本文的「處理器」應指能執行將算術、邏輯、或I/O操作編碼之指令的裝置。在一說明範例中,處理器可追隨范紐曼架構模型並可包括算術邏輯單元(ALU)、控制單元、及複數個暫存器。在其他樣態中,處理器可包括一或多個處理器核心,且因此可係典型能處理單指令管線的單核心處理器,或可同時處理多個指令管線的多核心處理器。在另一樣態中,處理器可實作為單一積體電路、二或多個積體電路、或可係多晶片模組的組件(例如,個別微處理器晶粒包括在單一積體電路封裝中並因此共享單一插座)。
現在參考圖1,根據本揭示發明的一或多個樣態顯示範例處理系統100的方塊圖。如圖1所示,處理系統100可包含經由共享互連115耦接至記憶體120的一或多個處理核心111。如下文更詳細地描述的,處理系統100可實作硬體輔助虛擬化機制,其允許在以最高特權執行模式(也稱為VMX根執行模式)運行之虛擬機器管理程式(VMM)117的控制下以較低特權執行模式(也稱為VMX非根執行模式)執行一或多個虛擬機器。在說明範例中,VMM可組態成創造及管理執行由個別客體作業系 統控制之各種軟體應用程式的一或多個虛擬機器131。在特定實作中,處理系統100也可包括各種未顯示於圖1中的其他組件。
正由虛擬機器131執行的軟體應用程式可使用客體虛擬位址(藉由藉由個別虛擬機器之線性位址空間中的客體線性位址表示)參考記憶體位置。回應於接收記憶體存取請求,處理器可使用客體OS頁表(OS PT)133將所參考的客體虛擬位址轉譯成客體實體位址。處理系統100然後可更使用延伸頁表(EPT)139將客體實體位址轉譯為對應的主機實體位址。
在特定實作中,處理系統100可使用用於快取客體虛擬位址至對應主機實體位址之複數個最近映射的轉譯後備緩衝器(TLB)135。回應於無法使用TLB解析客體虛擬位址,可調用尋頁錯失管理程式(PMH)137以使用用於將客體虛擬位址轉譯成對應客體實體位址的OS PT 133,然後使用用於將客體實體位址轉譯成對應主機實體位址的EPT 139實施頁表尋選。
在特定情形中,藉由能由客體作業系統修改的OS PT 133實施客體虛擬位址至客體實體位置的轉譯可被視為係安全弱點。潛在攻擊者可運用該能力修改OS PT以實施資料映射替換或碼重映射攻擊。如下文所更詳細地描述的,本揭示發明藉由提供VMM可用其確認客體虛擬位址至客體實體位址轉譯的限制線性檢查(RLC)表而解決各種常用實作的此及其他缺陷。
圖2根據本揭示發明的一或多個樣態示意地描繪確認虛擬位址轉譯的範例實作。參考圖2,由VMM創造及/或管理的RLC表210可包含複數個RLC項。各RLC項可將客體虛擬位址映射至預期客體實體位址。在說明範例中,回應於偵測到TLB錯失,處理器可使用OS PT 133決定對應於觸發TLB錯失之客體虛擬位址的暫時客體實體位址。然後處理系統可藉由比較暫時客體實體位址與由RLC表查找產生的預期客體實體位址而確認客體虛擬位址至預期客體實體位址的映射。萬一由OS PT表尋選產生的暫時客體實體位址與由RLC表查找產生的預期客體實體位址匹配,客體實體位置至主機實體位址的映射可使用EPT 139決定,然後加至TLB;否則,可將VM脫離發訊給VMM。
在上述位址轉譯處理中,萬一PMH錯誤無法識別對應於觸發TLB錯失之客體虛擬位址的OS PT項,可觸發OS層級頁錯誤。萬一PMH錯誤無法識別對應於由OS PT查找產生之暫時客體實體位址的EPT項,可將VM脫離發訊至VMM。
在特定實作中,可在完成OS PT/EPT尋選後實施RLC表查找。或者,RLC表查找可與OS PT/EPT尋選平行地實施。
RLC表可實作為由VMM管理的記憶體資料結構。在特定實作中,RLC表210的基底位址可儲存在處理系統100的專用暫存器(稱為RLC基底暫存器)中。RLC基底 暫存器的值可回應於特定硬體事件或回應於執行特定指令(例如,VMFUNC)而修改。
在特定實作中,RLC表可基於藉由客體OS-相關記憶體配置方針界定的特定記憶體映射作為虛擬機器初始化序列的一部分由VMM初始化。用於一或多種客體OS的記憶體配置方針可由VMM儲存及/或可在運行時間以VMM等級組態。
或者,RLC表可基於OS-相關記憶體配置方針在VM開機序列內藉由虛擬機器執行的代理代理程式初始化,以傳輸至VMM特定記憶體映射。用於客體OS的記憶體配置方針可由VM儲存。在任何不信賴軟體可為虛擬機器載入之前,在VM開機序列中執行代理代理程式可提供記憶體配置方針未受惡意第三方篡改的特定程度的保障。
或者,RLC表可基於存在於VM實例內的實際記憶體配置在VM使用週期內的任何時間由虛擬機器執行的代理代理程式初始化,以傳輸至VMM特定記憶體映射。在VM使用週期內的任何時間執行代理代理程式在組態RLC表時提供特定程度的彈性,同時此設計的安全樣態可藉由在VM內執行記憶體配置量測之代理代理程式實作的特定機制解決(例如,比較實際記憶體映射及可由客體OS安全地儲存的記憶體配置方針)。
在特定實作中,RLC表可係稀疏填充的,亦即,其可僅包含用於客體虛擬位址之子集的項,而非用於所有可能客體虛擬位址的項。可組態參數(例如,VM控制結構元 素)可界定在當PMH無法識別對應於觸發TLB失誤之客體虛擬位址的RLC表項之情形中的PMH行為。在說明範例中,萬一PMH無法識別對應於觸發TLB失誤之客體虛擬位址的RLC表項,PMH可發訊VM脫離至VMM。或者,回應於無法識別對應於觸發TLB失誤之客體虛擬位址的RCL表項,PMH可將RCL表項的不存在解釋為客體虛擬位址至暫時客體實體位址的OS PT映射之推測確認的指示。
在特定實作中,各RLC表項可更包含指示容許用於由對應客體虛擬位址參考的記憶體位置之存取種類的一或多個權限欄位。在各種說明範例中,存取種類可包含讀取、寫入、執行/執行除能、及/或監督存取。當藉由實施RLC表查找確認暫時客體實體位址時,可組態參數(例如,VM控制結構元素)可界定PMH是否應檢查存取種類。在說明範例中,若請求的存取種類不與由對應於觸發TLB失誤的客體虛擬位址之RLC表項所指定的存取種類匹配時,PMH可發訊VM脫離至VMM。或者,PMH可忽略RLC表的存取種類欄位。
在特定實作中,可組態參數(例如,VM控制結構元素)可界定在當藉由RLC表查找產生之預期客體實體位址不與由OS PT表尋選產生的暫時客體實體位址相配之情形中的PMH行為。在說明範例中,回應於決定由RLC表查找產生的預期客體實體位址不與由OS PT表尋選產生的暫時客體實體位址匹配,PMH可發訊VM脫離至VMM。 或者,PMH可忽略OS PT尋選結果並使用RLC表映射更新TLB。
圖3根據本揭示發明的一或多個樣態示意地描繪範例RLC表結構。在TLB失誤時,PMH可完成OS PT/EPT尋選以產生對應於已觸發TLB失誤之客體虛擬位址的暫時客體實體位址。PMH可更查找RLC表以提取對應於客體虛擬位址的預期客體實體位址。
如圖3所示意地描繪的,RCL表可包含藉由客體虛擬位址的對應部分索引的二或多個表。包含特定數量的最高有效位元(例如,位元47:39)之客體虛擬位址310的最高有效部分可用於索引L4表,其之基底位址可儲存在RLC基底暫存器(RLCBR)中。包含特定數量的位元(例如,位元38:30)之客體虛擬位址的第二部分可與L4表查找的結果結合用於索引L3表。包含特定數量的位元(例如,位元29:12)之客體虛擬位址的第三部分可與L3表查找的結果結合用於索引L2表。包含特定數量的最低有效位元(例如,位元11:0)之客體虛擬位址的第四部分可與L2表查找的結果結合用於索引L1表。
L1表查找的結果可包含預期客體實體位址及記憶體存取權限。然後PMH可比較由RLC表查找產生的預期客體實體位址及由OS PT尋選產生的暫時客體實體位址,並比較所意圖之記憶體存取的種類及由RLC表項儲存的權限。萬一位址或記憶體存取權限不匹配,可將VM脫離發訊至虛擬機器管理程式。
在根據本揭示發明之一或多個樣態操作之處理系統100的以上描述包括參考至藉由虛擬機器管理程式管理的虛擬機器的同時,在特定實作中,本文描述的系統及方法可用於確認正由處理系統執行的第一應用程式(諸如作業系統)實施之位址轉譯的完整性。根據本揭示發明的一或多個樣態,處理系統的位址確認組件可基於藉由正由處理系統執行之第二應用程式(諸如虛擬機器管理程式)創造及/或維護的位址轉譯結構實施位址確認,使得第二應用程式比第一應用程式更有特權(例如,與第一應用程式關聯的特權組包括與第二應用程式關聯的特權組)。
圖4根據本揭示發明的一或多個樣態描畫用於確認虛擬位址轉譯之範例方法的流程圖。方法400可藉由可包含硬體(例如,電路、專屬邏輯、及/或可程式化邏輯)、軟體(例如,可在電腦系統上執行以實施硬體模擬的指令)、或彼等之組合的電腦系統實施。方法400及/或其之各函數、常式、次常式、或操作可藉由執行該方法之電腦系統的一或多個實體處理器實施。方法400的二或多個函數、常式、次常式、或操作可平行或以與上述次序不同的次序實施。在特定實作中,方法400可藉由單處理緒實施。或者,方法400可由二或多個處理緒實施,各執行緒執行該方法的一或多個個別函數、常式、次常式、或操作。在說明範例中,實作方法400的處理緒可係同步的(例如,使用旗號、臨界區段、及/或其他執行緒同步機制)。或者,實作方法400的處理緒可彼此不同步地執 行。在一範例中,如圖4所描繪的,方法400可藉由下文描述及藉由圖5-11描繪的處理系統實施。
參考圖4,如上文更詳細地描述的,在方塊410,處理系統的尋頁錯失管理程式可藉由虛擬機器接收與記憶體存取操作關聯的客體虛擬位址,及對應於該客體虛擬位址的暫時客體實體位址。
回應於在方塊415決定與該客體虛擬位址關聯的項未在位址轉譯資料結構(例如,如上文更詳細地描述的,藉由RLC表表示)中發現,處理系統在方塊420可確定其界定在當PMH無法識別對應於客體虛擬位址之位址譯資料結構項的情形中之PMH行為的可組態參數(例如,VM控制結構元素)的值。在說明範例中,若參數的值係零,處理系統可在方塊425發訊VM脫離至VMM;否則,處理系統可將位址轉譯資料結構項的不存在解釋為客體虛擬位址至暫時客體實體位址的OS PT映射之推測確認的指示,且在方塊430,將等於暫時客體實體位址的客體實體位址指定為待於方塊455實施之後續EPT查找的客體實體位址。
回應於在方塊415成功識別與客體虛擬位址關聯的位址轉譯資料結構項,處理系統可在方塊435決定與對應於預期客體實體位址及客體虛擬位址之位址轉譯資料結構項關聯的記憶體存取權限。
回應於在方塊440確定由RLC表查找產生的預期客體實體位址與暫時客體實體位址匹配,且所意圖之記憶體 存取的種類與由位址轉譯結構項儲存的權限匹配,處理系統可在方塊445將預期客體實體位址指定為客體實體位址。
否則,萬一位址或記憶體存取權限不匹配,處理系統可在方塊450確定其界定在當預期客體實體位址不與暫時客體實體位址匹配之情形中的PMH行為之可組態參數(例如,VM控制結構元素)的值。在說明範例中,若參數的值係零,處理系統可在方塊425發訊VM脫離至VMM;否則,處理系統可忽略OS PT尋選結果並在方塊455繼續處理。
在方塊455,處理系統可決定對應於客體實體位址的主機實體位址。
在方塊460,處理系統可決定用於對應GPA的HPA查找是否指示RLC表項為暫時GPA所需要。此會捕獲惡意第三方已選擇沒有對應RLC表項的GVA以回避在方塊435確認記憶體存取權限的情形。
決定RLC表項是否為暫時GPA所需要可藉由分析加至延伸頁表(EPT)葉項之指示RLC表項為該指定GPA所需要的位元欄位而實施。因此,各個別GPA/HPA能選擇性地要求RLC檢查就緒。或者,相關於需要RLC表對各暫時GPA存在之所需PMH行為可藉由整體可組態參數(例如,VM控制結構元素)界定。
回應於在方塊460決定RLC表項為暫時GPA所需要且發現沒有RLC表項對應於暫時GPA,處理系統可在方 塊465發訊VM脫離至VMM;否則,處理可在方塊470繼續。
在方塊470,處理系統可用客體虛擬位址至主機實體位址的映射更新TLB。回應於完成參考方塊470描述的操作,該方法可終止。
本文描述的系統及方法實施虛擬位址轉譯的確認。在本文描述參考顯示器控制器的同時,本文描述的系統及方法也可使用其他功能的圖形單元。在本文的描述參考單一保護顯示器對話的同時,本文描述的系統及方法也可基於藉由顯示器引擎支援的並行重疊數而用於支援多個並行保護對話。
雖然參考特定積體電路,諸如,處理器,而在本文描述各種系統及方法,其他實作可應用至其他種類的積體電路及邏輯裝置。可將本文描述之系統及方法的技術及教示施用至也可能從更佳的能源效率及節能獲利的其他種類的電路或半導體裝置。例如,所揭示的實作並未受限於任何特定種類的電腦系統,並也可使用在其他裝置中,諸如,手持裝置、系統單晶片(SoC)、及嵌入式應用中。手持裝置的部分範例包括行動電話、網際網路協定裝置、數位相機、個人數位助理(PDA)、及手持PC。嵌入式應用可包括微控制器、數位訊號處理器(DSP)、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器、或能實施下文教示之功能及操作的任何其他系統。再者,本文描述的系統及方法並未受限於實體計算裝置, 也可相關於軟體實作方法。藉由本文描述之系統及方法實現的節能可與作業系統(OS)為基的機制無關或與其互補,諸如,先進組態與平台介面(ACPI)標準。
上述方法及系統可藉由各種架構的電腦系統實作、用於膝上型電腦、桌上型電腦、手持PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、交換器、嵌入式處理器、數位訊號處理器(DSP)、圖形裝置、視訊遊戲裝置、機上盒、微控制器、行動電話、可攜式媒體播放器、手持裝置、及各種其他電子裝置的設計及組態也適於實作本文描述的方法。通常,能合併如本文揭示之處理器及/或其他執行邏輯之種類繁多的系統或電子裝置通常適於實作本文描述的系統及方法。
圖5根據本揭示發明的一或多個樣態描畫電腦系統之一範例的高階組件圖。根據本揭示發明,諸如,在本文描述的實施例中,處理系統100可包括處理器110以利用包括邏輯的執行單元實施用於處理資料的演算法。系統100代表基於由加州聖克拉拉英特爾公司銷售之PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM、及/或StrongARMTM微處理器的處理系統,雖然也可使用其他系統(包括具有其他微處理器的PC、工程工作站、及機上盒等)。在一實施例中,範例系統100執行由華盛頓州雷蒙德的微軟公司銷售的WINDOWSTM作業系統版本,雖然也可使用其他作業系統(例如,UNIX及Linux)、嵌入式軟體、及/或圖形使用者介面。因此,本發明的實施 例並未受限於硬體電路及軟體之任何具體組合。
在說明範例中,處理器102包括一或多個執行單元108以實作實施至少一指令的演算法。一實施例可在單處理器桌上型或伺服器系統的背景中描述,但其他實施例可包括在多處理器系統中。處理器102耦接至處理器匯流排110,其在處理器102及系統100中的其他組件之間傳輸資料信號。系統100的元件(例如,圖形加速器112、記憶體控制集線器116、記憶體120、I/O控制器集線器124、無線收發器126、快閃記憶體BIOS 128、網路控制器134、音訊控制器136、串列擴充埠138、I/O控制器140等)實施已為熟悉本技術的人士所熟知的習知功能。
在特定實作中,處理器102包括1級(L1)內部快取記憶體104。依據架構,處理器102可具有單內部快取記憶體或多級內部快取記憶體。其他實作依據特定實作及需要包括內部及外部快取記憶體二者的組合。暫存器檔案106將不同種類的資料儲存在各種暫存器中,包括整數暫存器、浮點暫存器、向量暫存器、分組暫存器、陰影暫存器、核對點暫存器、狀態暫存器、及指令指標暫存器。
包括邏輯以實施整數及浮點操作的執行單元108也駐留在處理器102中。在特定實作中,處理器102包括微碼ROM以儲存微碼,當執行其時,實施用於特定巨集指令的演算法或管理複雜情境。此處,微碼可潛在地更新以為處理器102管理邏輯缺陷/修復。針對一實施例,執行單元108包括邏輯以管理封裝指令集109。藉由將封裝指令 集109包括在通用處理器102的指令集中,與關聯電路一起執行該等指令,由許多多媒體應用程式使用的操作可在通用處理器102中使用封裝資料而實施。因此,許多多媒體應用程式針對在封裝資料上實施操作藉由使用處理器資料匯流排的完整寬度而加速及更有效率地執行。此潛在地消除橫跨處理器的資料匯流排每次一個資料元素地轉移較小資料單元以實施一或多個操作的需求。
執行單元108的其他實作也可使用在微控制器、嵌入式處理器、圖形裝置、DSP、及其他種類的邏輯電路中。系統100包括記憶體120。記憶體120包括動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、或其他記憶體裝置。記憶體120儲存藉由待由處理器102執行之資料信號表示的指令及/或資料。
系統邏輯晶片組116耦接至處理器匯流排110及記憶體120。說明實施例中的系統邏輯晶片組116係記憶體控制器集線器(MCH)。處理器102能經由處理器匯流排110通訊至MCH 116。MCH 116針對指令及資料儲存及針對圖形命令、資料、及紋理的儲存提供高帶寬記憶體路徑118至記憶體120。MCH 116係處理器102、記憶體120、及系統100中的其他組件之間的直接資料信號,並在處理器匯流排110、記憶體120、及系統I/O 122之間橋接資料信號。在部分實施例中,系統邏輯晶片組116能提供用於耦接至圖形控制器112的圖形埠。MCH 116經由記憶體介 面118耦接至記憶體120。圖形卡112經由加速圖形埠(APG)互連114耦接至MCH 116。
系統100使用專屬集線器介面匯流排122以耦接MCH 116至I/O控制器匯流排(ICH)130。ICH 130經由區域I/O匯流排提供直接連接至部分I/O裝置。區域I/O匯流排係用於連接周邊至記憶體120、晶片組、及處理器102的高速I/O匯流排。部分範例係音訊控制器、韌體匯流排(快閃記憶體BIOS)128、無線收發器126、資料儲存器124、包含使用者輸入及鍵盤介面的傳統I/O控制器、串列擴充埠,諸如,通用串列匯流排(USB)、及網路控制器134。資料儲存裝置124能包含硬碟驅動器、軟碟驅動器、CD-ROM裝置、快閃記憶體裝置、或其他大量儲存裝置。
圖6係根據本揭示發明的一或多個樣態用於包括邏輯電路以實施指令之處理器200的微架構的方塊圖。在部分實施例中,能實作根據一實施例的指令以操作具有位元組、字組、雙字組、四字組等的尺寸的資料元件,以及資料類別,諸如,單及倍精準整數及浮點資料類別。在一實施例中,有序前端201係提取待執行之指令並備妥彼等以待稍後在處理器管線中使用之處理器200的部分。前端201可包括數個單元。在一實施例中,指令預提取器226從記憶體提取指令並將彼等饋送至依次解碼或解譯彼等的指令解碼器228。例如,在特定實作中,解碼器將已接收指令解碼為機器可執行之稱為「微指令」或「微操作」 (也稱為微運算(uop))的一或多個操作。在其他實施例中,根據一實施例,解碼器將指令剖析為由微架構使用以實施操作的運算碼及對應資料及控制欄位。在一實施例中,追蹤快取記憶體230取用已解碼微運算並將彼等組合為程式有序序列或在用於執行的微運算佇列234中追蹤。當追蹤快取記憶體230遭遇複雜指令時,微碼ROM 232提供完成操作所需的微運算。
部分指令轉換為單一微運算,然而其他指令需要數個微運算以完成全部操作。在一實施例中,若需要多於四個微運算以完成指令,解碼器228存取微碼ROM 232以執行該指令。針對一實施例,能針對在指令解碼器228的處理將指令解碼為小量的微運算。在另一實施例中,萬一需要的許多微運算完成操作,能將指令儲存在微碼ROM 232內。追蹤快取記憶體230係指進入點可程式化邏輯陣列(PLA)以決定用於從微碼ROM 232讀取微碼序列的正確微指令指標,以根據一實施例完成一或多個指令。在微碼ROM 232完成排序用於指令的微運算後,機器的前端201恢復從追蹤快取記憶體230提取微運算。
無序執行引擎203係指令準備執行之所在。無序執行引擎具有許多緩衝器以當指令通過管線並針對執行受排程時,使指令流平滑化並重排序以最佳化效能。配置器邏輯配置各微運算所需要的機器緩衝器及資源以執行。暫存器化名邏輯將邏輯暫存器映射至暫存器檔案中的項上。在指令排程器的前端,配置器也為一者用於記憶體操作及一者 用於非記憶體操作的二個微運算佇列之一者中的各微運算配置項:記憶體排程器、快速排程器202、慢速/通用浮點排程器204、及簡單浮點排程器206。微運算排程器202、204、206基於彼等的相關輸入暫存器運算元來源的就緒性及微運算完成彼等操作所需要的執行資源的可用性決定微運算何時準備執行。一實施例的快速排程器202能在每半個主時鐘週期上排程,同時其他排程器僅能每主處理器時鐘週期排程一次。排程器仲裁調度埠以排程用於執行的微運算。
實體暫存器檔案208、210位於排程器202、204、206及執行方塊211中的執行單元212、214、216、218、220、222、224之間。有分別用於整數及浮點操作的分離暫存器檔案208、210。一實施例的各暫存器檔案208、210也包括能將尚未寫入暫存器檔案的完成結果僅旁路或前傳至新的相關微運算的旁路網路。整數暫存器檔案208及浮點暫存器檔案210也能彼此通訊資料。針對一實施例,將整數暫存器檔案208分割為二個分離暫存器檔案,一個暫存器檔案用於資料的低階32位元且第二暫存器檔案用於資料的高階32位元。一實施例的浮點暫存器檔案210具有128位元寬的項,因為浮點指令典型具有在寬度上從64至128位元的運算元。
執行方塊211包含指令實際上在該處執行的執行單元212、214、216、218、220、222、224。此節包括儲存微指令執行所需之整數及浮點資料運算元值的暫存器檔案 208、210。一實施例的處理器200由許多執行單元組成:位址產生單元(AGU)212、AGU 214、快速ALU 216、快速ALU 218、慢速ALU 220、浮點ALU 222、浮點移動單元224。針對一實施例,浮點執行方塊222、224執行浮點、MMX、SIMD、及SSE,或其他操作。一實施例的浮點ALU 222包括64位元乘64位元的浮點除法器以執行除法、平方根、及餘數微運算。針對本文描述的系統及方法,包含浮點值的指令可使用浮點硬體處理。在一實施例中,ALU操作係至高速ALU執行單元216、218。一實施例的快速ALU 216、218能以半個時鐘週期的有效延遲執行快速操作。針對一實施例,當慢速ALU 220包括用於長延遲種類的操作的整數執行硬體時,諸如,乘法器、移位、旗標邏輯、及分支處理,多數複雜整數操作係至慢速ALU 220。記憶體載入/儲存操作係藉由AGU 212、214執行。針對一實施例,整數ALU 216、218、220係在64元件資料運算元上實施整數操作的背景中描述。在替代實施例中,能實作ALU 216、218、220以支援包括16、32、128、256等的各式各樣的資料位元。相似地,浮點單元222、224能實作成支援具有各種寬度之位元的一系列運算元。針對一實施例,浮點單元222、224可結合SIMD及多媒體指令在128位元寬的封裝資料運算元上操作。
在一實施例中,微運算排程器202、204、206在目前負載已完成執行之前仲裁相關操作。當微運算臆測地排程 並在處理器200中執行時,處理器200也包括邏輯以處理記憶體錯失。若資料負載在資料快取記憶體中錯失,能有相關操作在已將具有暫時不正確資料之排程器丟棄的管線中飛行。重播機制追蹤並重執行使用不正確資料的指令。相關操作應重播並容許無關操作完成。也針對文字字串比較操作將處理器之一實施例的排程器及重播機制設計成快取指令序列。
術語「暫存器」可指使用為指令的一部分以識別運算元之處理器內建儲存位置。換言之,暫存器可係可從處理器外側使用的暫存器(從程式設計師的觀點)。然而,實施例的暫存器不應在意義上限制於特定種類的電路。更確切地說,實施例的暫存器能儲存及提供資料,並實施本文描述的功能。本文描述的暫存器能藉由使用任何數量的不同技術之處理器內的電路實作,諸如,專屬實體暫存器、使用暫存器化名的動態配置實體暫存器、專屬及動態配置實體暫存器的組合等。在一實施例中,整數暫存器儲存三十二位元整數資料。一實施例的暫存器檔案也包含用於封裝資料的八個多媒體SIMD暫存器。針對以下討論,將暫存器理解為設計成保持封裝資料的資料暫存器,諸如,在以來自加州聖克拉拉英特爾公司之MMXTM技術致能之微處理器中的64位元寬的MMX暫存器(在部分實例中也稱為「mm」暫存器)。能以整數及浮點形式二者使用的此等MMX暫存器能使用伴隨SIMD及SSE指令的封裝資料元件操作。相似地,相關於SSE2、SSE3、SSE4、或後 續(通常稱為「SSEx」)技術之128位元寬的XMM暫存器也能用於保持此種封裝資料運算元。在一實施例中,在儲存封裝資料及整數資料時,暫存器不需要在該二種資料型別之間區分。在一實施例中,將整數及浮點或包含在相同暫存器檔案中或包含在不同暫存器檔案中。此外,在一實施例中,浮點及整數資料可儲存在不同暫存器或相同暫存器中。
圖7a-7b根據本揭示發明的一或多個樣態示意地描繪處理器微架構的元件。在圖7a中,處理器管線400包括提取級402、長度解碼級404、解碼級406、配置級408、更名級410、排程(也稱為調度或發佈)級412、暫存器讀取/記憶體讀取級414、執行級416、寫回/記憶體寫入級418、異常管理級422、及提交級424。
在圖7b中,箭號指示二或多個單元之間的耦合,且箭號的方向指示資料流在該等單元之間的方向。圖7b顯示包括耦接至執行引擎單元450之前端單元430的處理器核心111,且二者均耦接至記憶體單元470。
核心111可能係精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令(VLIW)核心、或混合或其他核心類型。作為另一選項,核心111可係專用核心,諸如,網路或通訊核心、壓縮引擎、或圖形核心等。
前端單元430包括耦接至指令快取單元434的分支預測單元432,其耦接至指令轉譯後備緩衝器(TLB)436, 其耦接至指令提取單元438,其耦接至解碼單元440。解碼單元或解碼器可解碼指令,並產生作為輸出之解碼自、或另外反映、或導自原始指令的一或多個微運算、微碼進入點、微指令、其他指令、或其他控制訊號。該解碼器可使用各種不同機構實作。合適機制的範例包括,但未受限於查找表、硬體實作、可程式化邏輯陣列(PLA)、微碼唯讀記憶體(ROM)等。將指令快取單元434另外耦接至記憶體單元470中的2級(L2)快取單元476。將解碼單元440耦接至執行引擎單元450中的更名/配置器單元452。
執行引擎單元450包括耦接至引退單元454及一組一或多個排程器單元(等)456的更名/配置器單元452。排程器單元(等)456代表任何數量的不同排程器,包括保留站、中央指令窗等。將排程器單元(等)456耦接至實體暫存器檔案(等)單元(等)458。實體暫存器檔案(等)單元458各者代表一或多個實體暫存器檔案,彼等的不同者儲存一或多個不同資料型別,諸如,純量整數、純量浮點、封裝整數、封裝浮點、向量整數、向量浮點等、狀態(例如,係待執行的次一指令之位址的指令指標)等。實體暫存器檔案(等)單元(等)458為引退單元454覆蓋,以說明可實作暫存器化名及無序執行的各種方式(例如,使用重排序緩衝器(等)及引退暫存器檔案(等)、使用未來檔案(等)、歷史緩衝器(等)、及引退暫存器檔案(等);使用暫存器映射及暫存器池; (等)。通常,該等架構暫存器可從處理器的外側看見或從程式設計師的觀點係可見的。該等暫存器並未受限於任何已知明確類型的電路。只要暫存器能儲存並提供如本文所描述的資料,各種不同類型之暫存器均係合適的。合適暫存器的範例包括,但未受限於,專用實體暫存器、使用暫存器化名之動態配置實體暫存器、專用及動態配置實體暫存器的組合等。將引退單元454及實體暫存器檔案(等)單元(等)458耦接至執行叢集(等)460。執行叢集(等)460包括一組一或多個執行單元162及一組一或多個記憶體存取單元464。執行單元462可在各種資料型別(例如,純量浮點、封裝整數、封裝浮點、向量整數、向量浮點)上實施各種運算(例如,移位、加法、減法、乘法)。雖然部分實施例可包括專用於特定功能或功能集的許多執行單元,其他實施例可能僅包括一執行單元或全部實施所有功能的多個執行單元。將排程器單元(等)456、實體暫存器檔案(等)單元(等)458、及執行叢集(等)460顯示為可能係複數個,因為特定實施例針對特定種類的資料/運算創造個別管線(例如,各者具有自有之排程器單元、實體暫存器檔案(等)單元、及/或執行叢集的純量整數管線、純量浮點/封裝整數/封裝浮點/向量整數/向量浮點管線、及/或記憶體存取管線-且在分離式記憶體存取管線的情形中,實作僅有此管線的執行叢集具有記憶體存取單元(等)464的特定實施例)。也應理解當使用分離式管線時,此等管線的一或多者可能 係無序發佈/執行的而其餘係有序的。
將該組記憶體存取單元464耦接至記憶體單元470,其包括耦接至資料快取單元474的資料TLB單元472,該資料快取單元耦接至2級(L2)快取單元476。在一範例實施例中,記憶體存取單元464可包括載入單元、儲存位址單元、及儲存資料單元,彼等各者耦接至記憶體單元470中的資料TLB單元472。L2快取單元476耦接至一或多個其他級快取記憶體且最終耦接至主記憶體。
例如,範例暫存器化名、無序發佈/執行核心架構可將管線400實作如下:指令提取438實施提取及長度解碼級402及404;解碼單元440實施解碼級406;更名/配置器單元452實施配置級408及更名級410;排程器單元(等)456實施排程級412;實體暫存器檔案(等)單元(等)458及記憶體單元470實施暫存器讀取/記憶體讀取級414;執行叢集460實施執行級416;記憶體單元470及實體暫存器檔案(等)單元(等)458實施寫回/記憶體寫入級418;各種單元可包含在異常管理級422中;及引退單元454及實體暫存器檔案(等)單元(等)458實施提交級424。
核心111可支援一或多個指令集(例如,x86指令集(具有已加有較新版本的特定延伸);加州桑尼維爾的MIPS Technologies的MIPS指令集;加州桑尼維爾的ARM Holdings的ARM指令集(具有額外延伸,諸如NEON))。
在特定實作中,該核心可能支援多執行緒(執行二或多個平行操作或執行緒集),並可用包括時間切片多執行緒、同步多執行緒(其中單一實體核心為實體核心同步多緒的每個執行緒提供邏輯核心)、或彼等之組合(例如,在Intel®超執行緒技術中的下文的時間切片提取及解碼及同步多執行緒)的各種方式實施。
雖然暫存器化名係在無序執行的背景中描述,應理解暫存器化名可使用在有序架構中。在處理器的說明實施例也包括分離式指令及資料快取單元434/474及共享L2快取單元476的同時,其他實施例可具有用於指令及資料二者的單一內部快取記憶體,諸如,1級(L1)內部快取記憶體、或多級內部快取記憶體。在部分實施例中,該系統可包括內部快取記憶體及在核心及/或處理器外部之外部快取記憶體的組合。或者,所有快取記憶體可均在核心及/或處理器外部。
在特定實作中,處理器核心111可設計成藉由只要彼等的運算元變為可用即執行指令而非以程式次序執行指令的無序(OOO)核心以改善效能。然而,效能利益可由功率消耗上的可觀增加而抵消。當多個執行緒可供作業系統排程時,利用多個有序核心而非大量OOO核心可改善處理器的能量消耗情形而不危害整體效能。因此,為改善處理器的效能及能量消耗縮放性,可將後者設計成依據效能需求及可供作業系統排程的執行緒數支援可變數量的核心。
圖8根據本揭示發明的一或多個樣態描畫範例電腦系統700的方塊圖。如圖8所示,多處理器系統700係點-對-點互連系統,並包括經由點對點互連750耦接的第一處理器770及第二處理器780。如上文更詳細地描述的,各處理器770及780可係能實作虛擬機器為基的保護視訊路徑之相同版本的處理系統100。在僅顯示二處理器770、780的同時,待理解本揭示發明的範圍並未受如此限制。在其他實施例中,一或多個額外處理器可存在於該範例電腦系統中。
將處理器770及780顯示成分別包括積集記憶體控制器單元772及782。處理器770也包括作為其匯流排控制器單元的一部分的點對點(P-P)介面776及778;相似地,第二處理器780包括P-P介面786及788。處理器770、780可經由使用P-P介面電路778、788的點對點(P-P)介面750交換資訊。如圖8所示,IMC 772及782將處理器耦接至個別記憶體,亦即,記憶體732及734,彼等可能係本地附接至個別處理器之主記憶體的部分。
處理器770、780各者可經由使用點對點介面電路776、794、786、798的個別P-P介面752、754與晶片組790交換資訊。晶片組790也可經由高效能圖形介面739與高效能圖形電路738交換資訊。
可將共享快取記憶體(未圖示)包括在處理器中或二處理器外側,仍經由P-P互連與處理器連接,使得若處理器置於低電源模式中,可將任一個或二個處理器的區域快 取資訊儲存在共享快取記憶體中。
可經由介面796將晶片組790耦接至第一匯流排716。在一實施例中,第一匯流排716可係週邊組件互連(PCI)匯流排、或係諸如PCI快速匯流排或其他第三代I/O互連匯流排的匯流排,雖然本揭示發明的範圍並未受如此限制。
如圖8所示,各種I/O裝置714可隨著將第一匯流排716耦接至第二匯流排720的匯流排橋接器718耦接至第一匯流排716。在一實施例中,第二匯流排720可係低插腳數(LPC)匯流排。在一實施例中,可將各種裝置耦接至第二匯流排720,包括,例如,鍵盤及/或滑鼠722、通訊裝置727、以及儲存單元728,諸如,可包括指令/碼及資料730的硬碟驅動器或其他大量儲存裝置。另外,可將音訊I/O 724耦接至第二匯流排720。
圖9根據本揭示發明的一或多個態樣描畫範例系統單晶片(SoC)900的方塊圖。如上文更詳細地描述的,應用處理器910係藉由能實作虛擬機器為基的保護視訊路徑之相同版本的處理系統100提供。如圖9所示意地描繪的,互連單元(等)902可耦接至:包括一組一或多個核心902A-N及共享快取記憶體單元(等)906的應用處理器910;系統助理單元910;匯流排控制器單元(等)916;積集記憶體控制器單元(等)914;可包括積集圖形邏輯908、用於提供靜態及/或視訊照相機功能的影像處理器924、用於提供硬體音訊加速的音訊處理器926、及 用於提供視訊編碼/解碼加速之視訊處理器928的一組或一或多個媒體處理器920;靜態隨機存取記憶體(SRAM)單元930;直接記憶體存取(DMA)單元932;及用於耦接至一或多個外部顯示器的顯示單元940。
圖10根據本揭示發明的一或多個樣態描畫範例電腦系統的方塊圖。如上文更詳細地描述的,處理器1610可係藉由能實作虛擬機器為基的保護視訊路徑之相同版本的處理系統100提供。
藉由圖10示意地描繪的系統1600可包括實作為IC之組件、其之部分、離散電子裝置、或其他模組、邏輯、硬體、軟體、韌體、或適於在電腦系統中的其組合、或作為另外併入電腦系統的框架內之組件的任何組合。圖10的方塊圖企圖顯示電腦系統之許多組件的高階視圖。然而,待理解可能將所顯示的部分組件省略、可能存在額外組件、且所示組件的不同配置可發生在其他實作中。
處理器1610可由微處理器、多核心處理器、多執行緒處理器、超低壓處理器、嵌入式處理器、或其他已知處理元件提供。在本說明實作中,處理器1610作用為處理單元及用於與系統1600之許多各種組件通訊的中央集線器。作為一範例,處理器1600可實作為系統單晶片(SoC)。作為具體說明範例,處理器1610包括美國加州聖克拉拉Intel公司銷售的Intel® Architecture CoreTM-為基的處理器,諸如i3、i5、i7、或其他此種處理器。
處理器1610可與系統記憶體1615通訊。在各種實作中,獨立記憶體裝置可能係不同封裝種類的,諸如,單晶粒封裝(SDP)、雙晶粒封裝(DDP)、或四晶粒封裝(1P)。在部分實作中,此等裝置可直接焊接在主機板上以提供低外形解決方案,同時在其他實作中,該等裝置可組態為藉由給定連接器依次耦接至主機板的一或多個記憶體模組。其他記憶體實作係可能的,諸如,其他種類的記憶體模組,例如,包括但未受限於microDIMM、MiniDIMM之不同類型的雙進線記憶體模組(DIMM)。在一說明範例中,記憶體容量在2GB及16GB之間,並可組態為DDR3LM封裝或經由球柵陣列(BGA)焊接在主機板上的LPDDR2或LPDDR3記憶體。
為提供資訊的持久儲存,諸如,資料、應用程式、及一或多個作業系統等,大量儲存器1620也可耦接至處理器1610。在特定實作中,為致能更薄及更輕的系統設計並改善系統反應性,大量儲存器1620可經由SSD實作。在其他實作中,該大量儲存器可主要藉由使用具有作用為SSD快取記憶體之較小量SSD儲存器的硬碟驅動器(HHD)提供,以在關機事件期間致能背景狀態及其他此種資訊的非揮發性儲存,使得快速開機能在系統活動重啟動時發生。
也如圖10所示,可經由,例如,串列周邊介面(SPI)將快閃記憶體裝置1622耦接至處理器1610。快閃記憶體裝置1622可提供系統軟體的非揮發性儲存,包 括該系統的基本輸入/輸出軟體(BIOS)以及其他韌體。
在各種實作中,該系統的大量儲存器可藉由SSD單獨提供或提供為硬碟、光碟、或具有SSD快取記憶體的其他驅動器。在部分實作中,大量儲存器可藉由SSD提供或提供為連同恢復(RST)快取記憶體模組的HDD。SSD快取記憶體可組態成單級快取記憶體(SLC)或多級快取記憶體(MLC)選項,以提供適當的反應等級。
各種輸入/輸出(IO)裝置可存在於系統1600中,包括,例如,可藉由組態在框架之蓋部分內的高解析度LCD或LED面板提供的顯示器1624。此顯示面板也可提供為適於在該顯示面板外部上方的觸控螢幕1625,使得經由使用者與此觸控螢幕的互動,使用者輸入能提供至該系統以致能期望操作,例如,關於資訊的顯示、及資訊的存取等。在特定實作中,顯示器1624可經由能實作為高效能圖形互連的顯示器互連耦接至處理器1610。觸控螢幕1625可經由另一互連耦接至處理器1610,其在一實施例中可係I2C互連。除了觸控螢幕1625外,藉由觸控的使用者輸入也能經由可組態在框架內並也可如觸控螢幕1625般地耦接至相同I2C互連的觸控板1630發生。
各種感測器可存在於系統內並可用不同方式耦接至處理器1610。特定慣性及環境感測器可經由感測器集線器1640耦接至處理器1610,例如,經由I2C互連。此等感測器可包括加速度計1641、周邊光感測器(ALS)1642、羅盤1643、及迴轉儀1644。其他環境感測器可包括一或 多個熱感測器1646,其在部分實施例中經由系統管理匯流排(SMBus)匯流排耦接至處理器1610。在特定實作中,可存在一或多個紅外線或其他熱感測元件,或用於感測使用者的存在或移動的任何其他元件。
各種周邊裝置可經由低插腳數(LPC)互連耦接至處理器1610。在特定實作中,各種組件能經由嵌入式控制器1635耦接。此種組件能包括鍵盤1636(例如,經由PS2介面耦接)、風扇1637、及熱感測器1639。在部分實施例中,觸控板1630也可經由PS2介面耦接至EC 1635。此外,也可經由此LPC互連將安全處理器,諸如,依據可信賴計算組織(TCG)之日期為2003年10月2日的TPM規格書第1.2版的可信賴平台模組(TPM)1638,耦接至處理器1610。
在特定實作中,周邊埠可包括高解晰媒體介面(HDMI)連接器(其能有不同形狀因子,諸如,全尺寸、迷你尺寸、或微尺寸);一或多個USB埠,諸如,依據通用串列匯流排3.0修訂版規格書(2008年十一月)的全尺寸外接埠,當系統在連線待機狀態或插入AC牆面電源時,具有對USB裝置之充電供電(諸如,智慧型手機)的至少一埠。此外,可提供一或多個ThunderboltTM埠。其他埠可包括可外部存取讀卡機,諸如,全尺寸SD-XC讀卡機及/或用於WWAN的SIM卡讀卡機(例如,8插腳讀卡機)。針對音訊,能存在具有立體聲及麥克風能力(例如,組合功能),支援插口偵測(例如,耳機僅支 援使用在蓋中的麥克風或耳機具有以纜線連接的麥克風)的3.5mm插口。在部分實施例中,此插口能在立體耳機及立體麥克風輸入之間重調配工作。又,能提供用於耦接至AC電力塊的電力插口。
系統1600能用包括無線的各種方式與外部裝置通訊。在圖16所示的實施例中,存在各種無線模組,彼等各者能對應於針對特定無線通訊協定組態的無線電。用於短距無線通訊,諸如,近場,的一方式可係經由近場通訊(NFC)單元1645,其在一實施例中可經由SMBus與處理器1610通訊。
額外無線單元能包括其他短距無線引擎,包括WLAN單元1650及藍牙單元1652。使用WLAN單元1650,能實現依據指定的國際電機電子工程師學會(IEEE)802.11標準的Wi-FiTM通訊,同時經由藍牙單元1652,經由藍牙協定的短距通訊能發生。此等單元可經由,例如,USB鏈路或通用非同步接收器發射器(DART)鏈路與處理器1610通訊。或此等單元可經由根據快速週邊組件互連TM(PCIeTM)協定的互連耦接至處理器1610,例如,依據PCI ExpressTM規格基本規格書第3.0版(2007年1月17日出版),或另一此種協定,諸如串接資料輸入/輸出(SDIO)標準。當然,在可組態在一或多個附加卡上的此等周邊裝置之間的實際實體連接能藉由適於主機板的NGFF連接器。
此外,例如,根據蜂巢式或其他無線廣域協定的無線 廣域通訊能經由WWAN單元1656發生,其可依次耦接至用戶識別模組(SIM)1657。此外,為致能位置資訊的接收及使用,也可存在GPS模組1655。
為提供音訊輸入及輸出,音訊處理器能經由數位訊號處理器(DSP)1660實作,其可經由高解晰音訊(HDA)鏈路耦接至處理器1610。相似地,DSP 1660可與可依次耦接至可實作在框架內的輸出揚聲器1663的積集編碼器/解碼器(CODEC)及放大器1662通訊。相似地,能耦接放大器及CODEC 1662以接收來自麥克風1665的音訊輸入。
圖11根據本揭示發明的一或多個態樣描畫範例系統單晶片(SoC)的方塊圖。作為具體說明範例,SOC 1700可包括在使用者設備(UE)中。在一實施例中,UE係指待由終端使用者用於通訊的任何裝置,諸如,手持電話、智慧型手機、平板電腦、超薄筆記型電腦、具有寬頻配接器的筆記型電腦、或任何其他相似通訊裝置。UE經常連接至基地台或節點,其在本質上潛在地對應於GSM網路中的行動站台(MS)。
如圖11所示意地描繪的,SOC 1700可包括二核心。核心1706及1707可耦接至與匯流排介面單元1709及L2快取記憶體1710關聯的快取記憶體控制1708以與系統1700的其他部分通訊。互連1710可包括晶片上互連,諸如,IOSF、AMBA、或其他互連。
互連1710可提供通訊頻道給其他組件,諸如,用戶 識別模組(SIM)1730以與SIM卡介接、開機ROM 1735以保持藉由核心1706及1707執行的開機碼以啟始及開機SOC 1700、SDRAM控制器1740以與外部記憶體(例如,DRAM 1760)介接、快閃記憶體控制器1745以與非揮發性記憶體(例如,快閃記憶體1765)介接、周邊控制1550(例如,串聯周邊介面)以與周邊介接、視訊編碼解碼器1720及視訊介面1725以顯示及接收輸入(諸如,觸控致能輸入)、GPU 1715以實施圖形相關計算等。此外,系統可包含用於通訊的周邊,諸如,藍牙模組1770、3G數據機1775、GPS 1785、及WiFi 1785。
其他電腦系統設計及組態也可適於實作本文描述的系統及方法。下列範例根據本揭示發明之一或多個樣態說明各種實作。
範例1係一種處理系統,包含:處理核心,以執行與第一特權等級關聯的第一應用程式及與第二特權等級關聯的第二應用程式,其中與該第一特權等級關聯的第一組特權包括與該第二特權等級關聯的第二組特權;及位址確認組件,以鑑於由該第一應用程式維護的位址轉譯資料結構,確認界定在該第二應用程式之第一位址空間中的第一位址至界定在該第二應用程式之第二位址空間中的第二位址的映射。
範例2係範例1的處理系統,其中位址轉譯資料結構的項包含針對藉由該項參考的記憶體位置的記憶體存取權限。
範例3係範例1-2之任一者的處理系統,更包含暫存器以儲存該位址轉譯資料結構的基址。
範例4係範例1-3之任一者的處理系統,其中該第一應用程式係由虛擬機器管理程式提供且該第二應用程式係由虛擬機器提供。
範例5係範例4的處理系統,其中該第一位址係由客體虛擬位址提供且該第二位址係由界定在該虛擬機器之位址空間中的客體實體位址提供。
範例6係範例4-5之任一者的處理系統,更包含:第二級位址轉譯(SLAT)表,該SLAT表包含界定在該虛擬機器之位址空間中的客體實體位址至界定在該處理系統之實體位址空間中的主機實體位址的複數個映射。
範例7係範例4-6之任一者的處理系統,更包含:轉譯後備緩衝器(TLB),用於快取界定在該虛擬機器之位址空間中的客體虛擬位址至界定在該處理系統之實體位址空間中的主機實體位址的複數個映射。
範例8係範例7的處理系統,其中該位址確認組件由尋頁錯失管理程式(PMH)回應於偵測到相關於該客體虛擬位址的TLB錯失而調用。
範例9係範例7-8之任一者的處理系統,該尋頁錯失管理程式更:回應於決定由該虛擬機器決定的暫時客體實體位址與由該第二位址表示的預期客體實體位址符合,決定對應於該暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新該TLB。
範例10係範例8-9之任一者的處理系統,其中該尋頁錯失管理程式更:回應於決定由該虛擬機器決定的暫時客體實體位址與由該第二位址表示的該預期客體實體位址不同,發訊虛擬機器脫離。
範例11係範例8-10之任一者的處理系統,該尋頁錯失管理程式更:回應於決定與該客體虛擬位址關聯的項未在該位址轉譯資料結構中發現,決定對應於藉由該虛擬機器決定的暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新該TLB。
範例12係範例4-11之任一者的處理系統,其中該位址轉譯資料結構藉由下列一者填入:該虛擬機器管理程式或由該虛擬機器執行的代理代理程式。
範例13係一種方法,包含:藉由電腦系統的尋頁錯失管理程式接收與藉由該虛擬機器管理程式管理之虛擬機器的記憶體存取操作關聯的客體虛擬位址;接收對應於該客體虛擬位址的暫時客體實體位址;及鑑於位址轉譯資料結構,決定對應於該客體虛擬位址的預期客體實體位址。
範例14係範例13的方法,更包含:回應於決定該暫時客體實體位址與該預期客體實體位址符合,決定對應於該暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新轉譯後備緩衝器(TLB)。
範例15係範例13-14之任一者的方法,更包含:回應於決定該暫時客體實體位址與該預期客體實體位址不 同,發訊虛擬機器脫離。
範例16係範例13-15之任一者的方法,更包含:回應於決定與該客體虛擬位址關聯的項未在該位址轉譯資料結構中發現,決定對應於藉由該虛擬機器決定的暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新轉譯後備緩衝器(TLB)。
範例17係範例13-16之任一者的方法,更包含:鑑於下列一者更新該位址轉譯資料結構:由虛擬機器管理程式維護的記憶體映射方針或接收自該虛擬機器的訊息。
範例18係範例13-17之任一者的方法,更包含:鑑於該位址轉譯資料結構的記憶體存取權限欄位確認該記憶體存取操作。
範例19係一種設備,包含:記憶體;及耦接至該記憶體的處理系統,該處理系統實施範例13-18之任一者的方法。
範例20係一種系統單晶片(SoC),包含:記憶體;耦接至該記憶體的處理核心,該處理核心執行與第一特權等級關聯的第一應用程式及與第二特權等級關聯的第二應用程式,其中與該第一特權等級關聯的第一組特權包括與該第二特權等級關聯的第二組特權;及位址確認組件,以鑑於由該第一應用程式維護的位址轉譯資料結構,確認界定在該第二應用程式之第一位址空間中的第一位址至界定在該第二應用程式之第二位址空間中的第二位址的映射。
範例21係範例20的SoC,其中該第一應用程式係由 虛擬機器管理程式提供且該第二應用程式係由虛擬機器提供。
範例22係範例21的SoC,其中該第一位址係由客體虛擬位址提供且該第二位址係由界定在該虛擬機器之位址空間中的客體實體位址提供。
範例23係範例21-22之任一者的SoC,更包含:第二級位址轉譯(SLAT)表,該SLAT表包含界定在該虛擬機器之位址空間中的客體實體位址至界定在該處理系統之實體位址空間中的主機實體位址的複數個映射。
範例24係範例21-23之任一者的SoC,更包含:轉譯後備緩衝器(TLB),用於快取界定在該虛擬機器之位址空間中的客體虛擬位址至界定在該處理系統之實體位址空間中的主機實體位址的複數個映射。
範例25係範例24的SoC,其中該位址確認組件由尋頁錯失管理程式(PMH)回應於偵測到相關於該客體虛擬位址的TLB錯失而調用。
範例26係範例24-25之任一者的SoC,該尋頁錯失管理程式更:回應於決定由該虛擬機器決定的暫時客體實體位址與由該第二位址表示的預期客體實體位址符合,決定對應於該暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新該TLB。
範例27係範例25-26之任一者的SoC,其中該尋頁錯失管理程式更:回應於決定由該虛擬機器決定的暫時客體實體位址與由該第二位址表示的該預期客體實體位址不 同,發訊虛擬機器脫離。
範例28係範例25-27之任一者的SoC,該尋頁錯失管理程式更:回應於決定與該客體虛擬位址關聯的項未在該位址轉譯資料結構中發現,決定對應於藉由該虛擬機器決定的暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新該TLB。
範例29係範例21-28之任一者的SoC,其中該位址轉譯資料結構藉由下列一者填入:該虛擬機器管理程式或由該虛擬機器執行的代理代理程式。
範例30係一種電腦可讀非暫態儲存媒體,包含當由處理系統執行時,導致該處理系統實施包含下列操作的可執行指令:藉由電腦系統的尋頁錯失管理程式接收與藉由該虛擬機器管理程式管理之虛擬機器的記憶體存取操作關聯的客體虛擬位址;接收對應於該客體虛擬位址的暫時客體實體位址;及鑑於位址轉譯資料結構,決定對應於該客體虛擬位址的預期客體實體位址。
範例31係範例30的電腦可讀非暫態儲存媒體,更包含當由處理系統執行時,導致該處理系統實施包含下列操作的可執行指令:回應於決定該暫時客體實體位址與該預期客體實體位址符合,決定對應於該暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新轉譯後備緩衝器(TLB)。
範例32係範例30-31之任一者的電腦可讀非暫態儲存媒體,更包含當由處理系統執行時,導致該處理系統實 施包含下列操作的可執行指令:回應於決定該暫時客體實體位址與該預期客體實體位址不同,發訊虛擬機器脫離。
範例33係範例30-32之任一者的電腦可讀非暫態儲存媒體,更包含當由處理系統執行時,導致該處理系統實施包含下列操作的可執行指令:回應於決定與該客體虛擬位址關聯的項未在該位址轉譯資料結構中發現,決定對應於藉由該虛擬機器決定的暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新轉譯後備緩衝器(TLB)。
範例34係範例30-33之任一者的電腦可讀非暫態儲存媒體,更包含當由處理系統執行時,導致該處理系統實施包含下列操作的可執行指令:鑑於下列一者更新該位址轉譯資料結構:由虛擬機器管理程式維護的記憶體映射方針或接收自該虛擬機器的訊息。
範例35係範例30-34之任一者的電腦可讀非暫態儲存媒體,更包含當由處理系統執行時,導致該處理系統實施包含下列操作的可執行指令:鑑於該位址轉譯資料結構的記憶體存取權限欄位確認該記憶體存取操作。
實施方式的部分內容部分係依據在電腦記憶體內之資料位元上的操作的演算法及符號表示呈現。此等演算法描述及表示係由熟悉資料處理技術的人士所使用以將彼等的工作實質有效地表達給其他熟悉該技術之人士的機構。在本文中且通常將演算法設想為導致期望結果之一系列自相一致的操作。該等操作係需要實際操控物理量的操作。通 常,雖然不係必要地,此等量採用能儲存、轉移、組合、比較、及其他操控之電或磁訊號的形式。已證明將此等訊號稱為位元、值、元素、符號、字元、項、或數等有時係便利的,主要由於常用的原因。
然而,應牢記所有此等及相似術語係與合適的物理量有關且僅係施用至此等量的便利標示。除非另外具體地陳述,從上文討論明顯地理解在本描述各處,使用諸如「加密」、「解密」、「儲存」、「提供」、「導出」、「得到」、「接收」、「認證」、「刪除」、「執行」、「請求」、或「通訊」等術語的討論係指將在計算系統的暫存器及/或記憶體內代表物理(例如,電子)量的資料操控及轉移為在計算系統的記憶體、暫存器、或其他此種資訊儲存器、傳輸或顯示裝置內相似地代表物理量之其他資料的計算系統或相似電子計算裝置的行動及處理。
辭「範例」或「例示」在本文中用於意指使用為範例、實例、或說明。本文描述為「範例」或「例示」的任何樣態或設計不必然視為比其他樣態或設計更佳或有利。更確切地說,辭「範例」或「例示」的使用企圖以具體方式呈現概念。如在此申請案中所使用的,術語「或」企圖意指包括性的「或」而非排它性的「或」。亦即,除非另外指定或從上下文清楚地呈現,「X包括A或B」企圖意指任何自然的包括性排列。亦即,若X包括A;X包括B;或X包括A及B二者,則「X包括A或B」在任何以上實例中均獲滿足。此外,除非另外指定或從上下文清楚 地指示單數形,冠辭「一」當使用在此申請案及隨附之申請專利範圍中時通常應視為意指「一或多個」。再者,除非描述相同實施例或實作,通篇使用的術語「實施例」或「一實施例」或「實作」或「一實作」並未企圖意指相同實施例或實作。術語「第一」、「第二」、「第三」、「第四」等當使用在本文中時也意圖作為標籤以在不同元件之間區分,且可不必然具有根據彼等的數值指定的有序意義。
本文描述的實施例也可相關於實施本文之操作的設備。此設備可特別針對所需目的構成,或其可包括藉由儲存在該電腦中的電腦程式選擇性地啟動或重組態的通用電腦。此種電腦程式可儲存在非暫態電腦可讀儲存媒體中,諸如,但未受限於,任何種類的碟,包括軟碟、光碟、CD-ROM、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁或光卡、快閃記憶體、或適於儲存電子指令的任何種類媒體。術語「電腦可讀儲存媒體」應採用為包括儲存一或多個指令組的單一媒體或多個媒體(例如,集中式或分散式資料庫及/或關聯快取記憶體及伺服器)。術語「電腦可讀媒體」也應採用為包括能儲存、編碼、或運載用於由機器執行的指令組並導致該機器實施本實施例之任何一或多個方法的任何媒體。術語「電腦可讀儲存媒體」因此應採用為包括,但未受限於,固態記憶體、光學媒體、磁性媒體、能儲存用於由機器執行的指令組並導致該機器實施本實施例之任何一 或多個方法的任何媒體。
本文呈現的演算法及顯示器並未在本質上相關於任何特定電腦或其他設備。各種通用系統可使用根據本文之教示的程式,或其可提供便利以構成更特殊化的設備以實施所需的方法操作。用於各式各樣此等系統的所需結構將從以下描述變得明顯。此外,本實施例並未參考任何特定程式語言描述。將理解各式各樣的程式語言可用於實作如本文描述之實施例的教示。
以上描述陳述許多具體細節,例如,特定系統、組件、及方法等的範例,以提供對數個實施例的良好理解。然而,可不使用此等具體細節實踐至少部分實施例對熟悉本發明之人士將係明顯的。在其他實例中,不詳細地描述已為人所熟知的組件或方法或以簡單方塊圖格式呈現,以避免不必要的混淆本實施例。因此,上文陳述的具體細節僅係例示。特定實作可從此等例示細節改變且仍預期在本實施例的範圍內。
待理解以上描述企圖係說明性而非限制性的。在閱讀及理解以上描述時,許多其他實施例對熟悉本技術的人士將變得明顯。因此,本實施例的範例應參考隨附的申請專利範圍,連同參考給予此種申請專利範圍的權利之等效實體的完整範圍而決定。
133‧‧‧客體OS頁表(OS PT)
135‧‧‧轉譯後備緩衝器(TLB)
139‧‧‧延伸頁表(EPT)
210‧‧‧RLC表

Claims (18)

  1. 一種處理系統,包含:處理核心,以執行與第一特權等級關聯的第一應用程式及與第二特權等級關聯的第二應用程式,其中與該第一特權等級關聯的第一組特權包括與該第二特權等級關聯的第二組特權;及可操作地耦合至該處理核心的位址確認電路以接收界定在該第二應用程式之第一位址空間中的第一位址至界定在該第二應用程式之第二位址空間中的第二位址的映射,於位址確認資料結構中,回應於成功識別藉由該第一位址所參照的項,使用該識別項確認該映射,回應於未識別藉由該第一位址所參照的該項,分析與該第二位址關聯的旗標,以及回應於決定該旗標需要確認操作,發訊脫離至該第二應用程式。
  2. 如申請專利範圍第1項的處理系統,其中該位址確認資料結構的項包含針對藉由該項參考的記憶體位置的記憶體存取權限。
  3. 如申請專利範圍第1項的處理系統,更包含暫存器以儲存該位址確認資料結構的基址。
  4. 如申請專利範圍第1項的處理系統,其中該第一應用程式係由虛擬機器管理程式提供且該第二應用程式係由虛擬機器提供。
  5. 如申請專利範圍第4項的處理系統,其中該第一位 址係由客體虛擬位址提供且該第二位址係由界定在該虛擬機器之位址空間中的客體實體位址提供。
  6. 如申請專利範圍第5項的處理系統,更包含:第二級位址轉譯(SLAT)表,該SLAT表包含界定在該虛擬機器之位址空間中的客體實體位址至界定在該處理系統之實體位址空間中的主機實體位址的複數個映射。
  7. 如申請專利範圍第5項的處理系統,更包含:轉譯後備緩衝器(TLB),用於快取界定在該虛擬機器之位址空間中的客體虛擬位址至界定在該處理系統之實體位址空間中的主機實體位址的複數個映射。
  8. 如申請專利範圍第7項的處理系統,其中該位址確認組件由尋頁錯失管理程式(PMH)回應於偵測到相關於該客體虛擬位址的TLB錯失而調用。
  9. 如申請專利範圍第8項的處理系統,其中該尋頁錯失管理程式更:回應於決定該第二位址符合由該位址確認資料結構確定的預期客體實體位址,決定對應於該暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新該TLB。
  10. 如申請專利範圍第8項的處理系統,其中該尋頁錯失管理程式更:回應於決定與該客體虛擬位址關聯的項未在該位址確認資料結構中發現,決定對應於藉由該虛擬機器決定的暫 時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新該TLB。
  11. 如申請專利範圍第4項的處理系統,其中該位址確認資料結構藉由下列一者填入:該虛擬機器管理程式或由該虛擬機器執行的代理程式。
  12. 一種方法,包含:藉由電腦系統的尋頁錯失管理程式接收與藉由該虛擬機器管理程式管理之虛擬機器的記憶體存取操作關聯的客體虛擬位址;接收對應於該客體虛擬位址的暫時客體實體位址;於位址確認資料結構中,回應於成功識別藉由該客體虛擬位址所參照的項,使用該識別項確認該映射;回應於未識別藉由該客體虛擬位址所參照的該項,分析與該客體虛擬位址關聯的旗標,以及回應於決定該旗標需要確認操作,發訊脫離至該虛擬機器。
  13. 如申請專利範圍第12項之方法,更包含:回應於決定該暫時客體實體位址與該預期客體實體位址符合,決定對應於該暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新轉譯後備緩衝器(TLB)。
  14. 如申請專利範圍第12項之方法,更包含: 回應於決定與該客體虛擬位址關聯的項未在該位址確認資料結構中發現,決定對應於藉由該虛擬機器決定的暫時客體實體位址的主機實體位址;及以該客體虛擬位址至該主機實體位址的映射更新轉譯後備緩衝器(TLB)。
  15. 如申請專利範圍第12項之方法,更包含:鑑於下列一者更新該位址確認資料結構:由虛擬機器管理程式維護的記憶體映射方針或接收自該虛擬機器的訊息。
  16. 如申請專利範圍第12項的方法,更包含:鑑於該位址確認資料結構的記憶體存取權限欄位確認該記憶體存取操作。
  17. 一種系統單晶片(SoC),包含:記憶體;處理核心,耦接至該記憶體,該處理核心執行與第一特權等級關聯的第一應用程式及與第二特權等級關聯的第二應用程式,其中與該第一特權等級關聯的第一組特權包括與該第二特權等級關聯的第二組特權;及可操作地耦合至該處理核心的位址確認電路,以接收界定在該第二應用程式之第一位址空間中的第一位址至界定在該第二應用程式之第二位址空間中的第二位址的映射,使用位址確認資料結構,決定與該第一位址關聯的第三位址;及 回應於決定該第三位址不符合該第二位址,利用該第三位址於記憶體存取操作。
  18. 如申請專利範圍第17項的SoC,其中該第一應用程式係由虛擬機器管理程式提供且該第二應用程式係由虛擬機器提供。
TW104116272A 2014-06-27 2015-05-21 確認虛擬位址轉譯 TWI578221B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/317,571 US9792222B2 (en) 2014-06-27 2014-06-27 Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure

Publications (2)

Publication Number Publication Date
TW201610682A TW201610682A (zh) 2016-03-16
TWI578221B true TWI578221B (zh) 2017-04-11

Family

ID=53540950

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104116272A TWI578221B (zh) 2014-06-27 2015-05-21 確認虛擬位址轉譯

Country Status (4)

Country Link
US (1) US9792222B2 (zh)
CN (1) CN105320612B (zh)
GB (2) GB2528756B (zh)
TW (1) TWI578221B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152612B2 (en) 2015-09-25 2018-12-11 Intel Corporation Cryptographic operations for secure page mapping in a virtual machine environment
US10003554B1 (en) * 2015-12-22 2018-06-19 Amazon Technologies, Inc. Assisted sideband traffic management
US10572687B2 (en) * 2016-04-18 2020-02-25 America as represented by the Secretary of the Army Computer security framework and hardware level computer security in an operating system friendly microprocessor architecture
US10579522B2 (en) * 2016-09-13 2020-03-03 Andes Technology Corporation Method and device for accessing a cache memory
US9971702B1 (en) * 2016-10-24 2018-05-15 Intel Corporation Nested exception handling
US10339065B2 (en) * 2016-12-01 2019-07-02 Ampere Computing Llc Optimizing memory mapping(s) associated with network nodes
US10169185B1 (en) 2017-08-12 2019-01-01 International Business Machines Corporation Efficient testing of direct memory address translation
US10671737B2 (en) * 2017-11-10 2020-06-02 Intel Corporation Cryptographic memory ownership table for secure public cloud
US10719452B2 (en) * 2018-06-22 2020-07-21 Xilinx, Inc. Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip
US10901911B2 (en) 2018-11-21 2021-01-26 Microsoft Technology Licensing, Llc Faster computer memory access by reducing SLAT fragmentation
US10761876B2 (en) * 2018-11-21 2020-09-01 Microsoft Technology Licensing, Llc Faster access of virtual machine memory backed by a host computing device's virtual memory
US10922185B2 (en) * 2019-02-19 2021-02-16 Google Llc I/O to unpinned memory supporting memory overcommit and live migration of virtual machines
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US11640361B2 (en) * 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US11283800B2 (en) 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11176054B2 (en) * 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11487906B2 (en) 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
CN112540938B (zh) * 2019-09-20 2024-08-09 阿里巴巴集团控股有限公司 处理器核、处理器、装置和方法
US11531770B2 (en) * 2019-12-23 2022-12-20 Intel Corporation Trusted local memory management in a virtualized GPU
TWI804703B (zh) * 2019-12-31 2023-06-11 新唐科技股份有限公司 電腦裝置及基於信任鏈的權限管理方法
CN112073530B (zh) * 2020-09-15 2021-10-15 常熟理工学院 一种基于物联网的智能医疗监测和报警系统的实现方法
US20230098991A1 (en) * 2021-05-19 2023-03-30 Jason Nieh Systems, methods, and media for protecting applications from untrusted operating systems
US11644980B2 (en) * 2021-06-22 2023-05-09 Intel Corporation Trusted memory sharing mechanism
US11899593B2 (en) * 2021-12-21 2024-02-13 Intel Corporation Method and apparatus for detecting ATS-based DMA attack
CN117077589B (zh) * 2023-10-17 2023-12-15 中电科申泰信息科技有限公司 基于uvm架构的虚拟和物理地址转换的验证方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785886B1 (en) * 1998-05-15 2004-08-31 Vmware, Inc. Deferred shadowing of segment descriptors in a virtual machine monitor for a segmented computer architecture
US20090187697A1 (en) * 2008-01-22 2009-07-23 Serebrin Benjamin C Execute-Only Memory and Mechanism Enabling Execution From Execute-Only Memory for Minivisor
US8015388B1 (en) * 2006-08-04 2011-09-06 Vmware, Inc. Bypassing guest page table walk for shadow page table entries not present in guest page table
US20130091318A1 (en) * 2011-10-11 2013-04-11 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
TW201317781A (zh) * 2011-10-18 2013-05-01 Ind Tech Res Inst 虛擬機器記憶體的分享方法與電腦系統
TW201325156A (zh) * 2011-11-18 2013-06-16 Broadcom Corp 用於開放虛擬化格式的系統及用於在開放虛擬化格式網路中提供虛擬機的方法
TW201415370A (zh) * 2012-10-11 2014-04-16 Ind Tech Res Inst 虛擬機系統的記憶體管理的方法以及電腦系統

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396614A (en) * 1992-06-25 1995-03-07 Sun Microsystems, Inc. Method and apparatus for a secure protocol for virtual memory managers that use memory objects
US5455834A (en) * 1993-06-14 1995-10-03 Hal Computer Systems, Inc. Fault tolerant address translation method and system
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US9058292B2 (en) 2004-12-29 2015-06-16 Intel Corporation System and method for one step address translation of graphics addresses in virtualization
US7428626B2 (en) 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
US7467285B2 (en) * 2005-07-27 2008-12-16 Intel Corporation Maintaining shadow page tables in a sequestered memory region
US7739466B2 (en) * 2006-08-11 2010-06-15 Intel Corporation Method and apparatus for supporting immutable memory
US7490191B2 (en) 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
US8276201B2 (en) * 2007-03-22 2012-09-25 International Business Machines Corporation Integrity protection in data processing systems
DE602007012519D1 (de) * 2007-04-05 2011-03-31 St Microelectronics Res & Dev Integrierte Schaltung mit beschränktem Datenzugang
WO2009001153A1 (en) 2007-06-28 2008-12-31 Nokia Corporation Memory protection unit in a virtual processing environment
US8078827B2 (en) 2007-07-05 2011-12-13 International Business Machines Corporation Method and apparatus for caching of page translations for virtual machines
US8560806B2 (en) 2007-12-31 2013-10-15 Intel Corporation Using a multiple stage memory address translation structure to manage protected micro-contexts
US20140108701A1 (en) 2010-07-16 2014-04-17 Memory Technologies Llc Memory protection unit in a virtual processing environment
WO2012025793A1 (en) 2010-08-26 2012-03-01 Freescale Semiconductor, Inc. Memory management unit for a microprocessor system, microprocessor system and method for managing memory
WO2013095579A1 (en) 2011-12-22 2013-06-27 Intel Corporation Indexed page address translation to reduce memory footprint in virtualized environments
WO2013101208A1 (en) 2011-12-30 2013-07-04 Intel Corporation Hardware enforced memory access permissions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785886B1 (en) * 1998-05-15 2004-08-31 Vmware, Inc. Deferred shadowing of segment descriptors in a virtual machine monitor for a segmented computer architecture
US8015388B1 (en) * 2006-08-04 2011-09-06 Vmware, Inc. Bypassing guest page table walk for shadow page table entries not present in guest page table
US20090187697A1 (en) * 2008-01-22 2009-07-23 Serebrin Benjamin C Execute-Only Memory and Mechanism Enabling Execution From Execute-Only Memory for Minivisor
US20130091318A1 (en) * 2011-10-11 2013-04-11 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
TW201317781A (zh) * 2011-10-18 2013-05-01 Ind Tech Res Inst 虛擬機器記憶體的分享方法與電腦系統
TW201325156A (zh) * 2011-11-18 2013-06-16 Broadcom Corp 用於開放虛擬化格式的系統及用於在開放虛擬化格式網路中提供虛擬機的方法
TW201415370A (zh) * 2012-10-11 2014-04-16 Ind Tech Res Inst 虛擬機系統的記憶體管理的方法以及電腦系統

Also Published As

Publication number Publication date
CN105320612A (zh) 2016-02-10
CN105320612B (zh) 2019-04-30
GB201620433D0 (en) 2017-01-18
GB2545563A (en) 2017-06-21
GB2545563B (en) 2018-03-14
GB201509051D0 (en) 2015-07-08
TW201610682A (zh) 2016-03-16
US9792222B2 (en) 2017-10-17
GB2528756A (en) 2016-02-03
US20150378930A1 (en) 2015-12-31
GB2528756B (en) 2017-01-11

Similar Documents

Publication Publication Date Title
TWI578221B (zh) 確認虛擬位址轉譯
US11797464B2 (en) Delivering interrupts to user-level applications
EP3014461B1 (en) Systems and methods for procedure return address verification
EP2889800B1 (en) Using authenticated manifests to enable external certification of multi-processor platforms
TWI540446B (zh) 用於實施安全視訊輸出路徑的硬體輔助虛擬化
US9852301B2 (en) Creating secure channels between a protected execution environment and fixed-function endpoints
US9858140B2 (en) Memory corruption detection
US9501668B2 (en) Secure video ouput path
CN107209723B (zh) 用于虚拟化的细粒度地址重新映射
US9652375B2 (en) Multiple chunk support for memory corruption detection architectures
US9705892B2 (en) Trusted time service for offline mode
EP3757783A1 (en) Inter-processor interrupt virtualization with pass-through of local interrupt controller
EP3671474A1 (en) Restricting usage of encryption keys by untrusted software
US9959939B2 (en) Granular cache repair