TW201717029A - 對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示 - Google Patents

對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示 Download PDF

Info

Publication number
TW201717029A
TW201717029A TW105115784A TW105115784A TW201717029A TW 201717029 A TW201717029 A TW 201717029A TW 105115784 A TW105115784 A TW 105115784A TW 105115784 A TW105115784 A TW 105115784A TW 201717029 A TW201717029 A TW 201717029A
Authority
TW
Taiwan
Prior art keywords
page
check
processor
prompt
memory
Prior art date
Application number
TW105115784A
Other languages
English (en)
Other versions
TWI713527B (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 TW201717029A publication Critical patent/TW201717029A/zh
Application granted granted Critical
Publication of TWI713527B publication Critical patent/TWI713527B/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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • G06F12/1441Protection 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 for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Landscapes

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

Abstract

一種態樣之處理器包括至少一轉譯後備緩衝器(TLB)與記憶體管理單元(MMU)。每個TLB係用以儲存邏輯位址的轉譯到對應實體位址。該MMU,回應於第一邏輯位址到對應實體位址之轉譯的至少一TLB中的遺失,係用以檢查多頁面保護容器頁面與正規頁面(P/R)檢查提示。若該多頁面P/R檢查提示被找到,則該MMU係用以檢查P/R表示。若該多頁面P/R檢查提示沒有被找到,則該MMU不檢查P/R表示。其他處理器、方法、以及系統也被揭露。

Description

對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示
本發明所描述之實施例一般關於安全性。特別是,本發明所描述之實施例一般關於內存空間與其他保護容器。
桌上型電腦、膝上型電腦、智慧型手機、伺服器、以及多種計算機系統的其他類型係通常被使用來處理保密或機密資訊。該保密或機密資訊之實例包括,但不局限於,密碼、帳戶資訊、金融資訊、金融交易期間之資訊、機密公司資料、企業權限管理資訊、個人行事曆、個人通訊錄、醫療資訊、其他個人資訊以及其類似物。其通常理想用以保護該保密或機密資訊免於檢視、竄改、竊取、以及其類似物。
100‧‧‧計算機系統
102‧‧‧處理器
103‧‧‧執行軟體
104‧‧‧核心
105‧‧‧記憶體存取正規頁面
106‧‧‧記憶體存取保護容器頁面
107‧‧‧記憶體存取單元
108‧‧‧轉譯後備緩衝器
109-1‧‧‧第一登錄項
109-N‧‧‧第N登錄項
110-1‧‧‧P/R表示
110-N‧‧‧P/R表示
111‧‧‧記憶體加密/解密單元
112‧‧‧記憶體管理單元(MMU)
113‧‧‧多頁面P/R檢查提示偵測與基於提示選擇性檢查邏輯
114‧‧‧耦接機構
115‧‧‧P表示
116‧‧‧R表示
117‧‧‧選擇性檢查P/R表示
118‧‧‧分頁表走查
119‧‧‧可轉換記憶體管理模組
120‧‧‧記憶體
121‧‧‧正規記憶體
122‧‧‧特權系統軟體模組
123‧‧‧P/R轉換模組
124‧‧‧多頁面P/R檢查提示模組
125‧‧‧應用模組
130‧‧‧轉換記憶體
131‧‧‧保護容器頁面
132‧‧‧正規頁面
133‧‧‧保護容器頁面元資料(PCPMS)
134-1‧‧‧第一登錄項
134-M‧‧‧第M登錄項
135-1‧‧‧P/R表示
135-M‧‧‧P/R表示
136‧‧‧階層分頁結構
137‧‧‧多頁面P/R檢查提示
138‧‧‧頁面表
240‧‧‧方法
241‧‧‧開始分頁表走查
242‧‧‧偵測多頁面P/R檢查提示?
243‧‧‧在保護容器頁面元資料結構中檢查P/R表示
244‧‧‧如同在保護容器頁面元資料結構的P/R表示所指 示,儲存在TLB中其頁面可以係為正規頁面或保護容器頁面的表示
245‧‧‧不檢查在保護容器頁面元資料結構中的P/R表示
246‧‧‧儲存在TLB登錄項中頁面係為正規頁面的表示
336‧‧‧階層分頁結構
350‧‧‧線性位址
351‧‧‧階層4指標(例如,PML4)
352‧‧‧目錄指標
353‧‧‧目錄
354‧‧‧表
355‧‧‧偏移
356‧‧‧頁面目錄基底暫存器(例如,CR3)
357‧‧‧頁面目錄指標表的目錄/映射
358‧‧‧登錄項
359‧‧‧頁面目錄指標表
360‧‧‧登錄項
361‧‧‧頁面目錄表
362‧‧‧登錄項
363‧‧‧頁面表
364‧‧‧頁面表登錄項
365‧‧‧實體頁面
366‧‧‧實體位址
367‧‧‧多頁面P/R檢查提示
368‧‧‧P/R提示位元
369‧‧‧P/R提示位元
370‧‧‧P/R提示位元
472‧‧‧方法
473‧‧‧開始分頁表走查
474‧‧‧偵測在狀態保存區或核心控制暫存器中的P/R檢查 提示?
475‧‧‧偵測在頁面目錄基底暫存器中的P/R檢查提示?
476‧‧‧偵測在頁面目錄指標表之目錄中的P/R檢查提示?
477‧‧‧偵測在頁面目錄指標表中的P/R檢查提示?
478‧‧‧偵測在頁面目錄表中的P/R檢查提示?
479‧‧‧不檢查在保護容器頁面元資料結構中的P/R表示
480‧‧‧儲存在TLB登錄項中頁面係為正規頁面的表示
481‧‧‧在保護容器頁面元資料結構中檢查P/R表示
482‧‧‧在TLB登錄項儲存頁面係為保護容器頁面或者是正 規頁面的表示,如同藉由P/R表示被指示
583‧‧‧提供多頁面檢查提示
584‧‧‧設定預設表示,其處理器不檢查在保護頁面元資料 結構中的P/R表示(例如,不檢查EPCM.E)(選擇性)
585‧‧‧判定用以創造程序的保護容器
586‧‧‧增加保護容器頁面給現存保護容器頁面?
587‧‧‧創造保護容器頁面
588‧‧‧指示頁面係為在保護頁面元資料結構中的保護容器 頁面(例如,設定EPCM.E位元)
589‧‧‧選擇性地判定哪裡提供多頁面P/R檢查提示
590‧‧‧提供多頁面P/R檢查提示,其處理器係為用以檢查 P/R表示在保護頁面元資料結構中的頁面是否係為保護容器頁面
591‧‧‧選擇性地聚集所有保護容器頁面
619‧‧‧轉換記憶體管理模組
622‧‧‧特權系統模組
623‧‧‧P/R轉換模組
624‧‧‧多頁面P/R檢查提示模組
630‧‧‧轉換記憶體(例如,EPC)
633‧‧‧保護容器頁面元資料結構(例如,EPCM)
636‧‧‧階層分頁結構
637‧‧‧多頁面P/R檢查提示
638‧‧‧頁面表登錄項
692‧‧‧保護容器頁面群組模組(選擇性)
693‧‧‧保護容器頁面元資料結構更新模組
694‧‧‧P/R檢查提示位置判定模組(選擇性)
695‧‧‧P/R檢查提示特徵指定模組(選擇性)
696‧‧‧式樣特定暫存器
700‧‧‧管線
702‧‧‧提取
704‧‧‧長度解碼
706‧‧‧解碼
708‧‧‧配置
710‧‧‧重取名
712‧‧‧排程
714‧‧‧暫存器/記憶體卡
716‧‧‧執行級
718‧‧‧回寫/記憶體寫入
722‧‧‧異常處置
724‧‧‧承諾
730‧‧‧前端單元
732‧‧‧分支預測單元
734‧‧‧指令快取記憶體單元
736‧‧‧指令TLB單元
738‧‧‧指令提取
740‧‧‧解碼單元
750‧‧‧執行引擎單元
752‧‧‧重取名/分配器單元
754‧‧‧退役單元
756‧‧‧排程器單元
758‧‧‧實體暫存器檔案單元
760‧‧‧執行叢集
762‧‧‧執行單元
764‧‧‧記憶體存取單元
770‧‧‧記憶體單元
772‧‧‧數據TLB單元
774‧‧‧數據TLB單元
776‧‧‧L2快取記憶體單元
790‧‧‧核心
800‧‧‧指令解碼器
802‧‧‧環狀網路
804‧‧‧L2快取記憶體之本地子集
806‧‧‧L1快取記憶體
806A‧‧‧L1數據快取記憶體
808‧‧‧純量單元
810‧‧‧向量單元
812‧‧‧純量暫存器
814‧‧‧向量暫存器
820‧‧‧拌合
822A‧‧‧數值轉換
822B‧‧‧數值轉換
824‧‧‧複製
826‧‧‧寫入遮罩暫存器
828‧‧‧16寬向量ALU(算術邏輯單元)
900‧‧‧處理器
902A‧‧‧核心
902N‧‧‧核心
904A‧‧‧快取記憶體單元
904N‧‧‧快取記憶體單元
906‧‧‧共享快取記憶體單元
908‧‧‧專用邏輯
910‧‧‧系統代理單元
912‧‧‧環狀網路
914‧‧‧積體記憶體控制器單元
916‧‧‧匯流排控制器單元
1000‧‧‧系統
1010‧‧‧處理器
1015‧‧‧處理器
1020‧‧‧控制器中心
1040‧‧‧記憶體
1045‧‧‧共處理機
1050‧‧‧輸入/輸出集線器
1060‧‧‧輸入/輸出
1090‧‧‧圖形記憶體控制器集線器
1095‧‧‧連結
1100‧‧‧系統
1114‧‧‧輸入/輸出裝置
1115‧‧‧處理器
1116‧‧‧第一匯流排
1118‧‧‧匯流排橋接器
1120‧‧‧第二匯流排
1124‧‧‧聲頻輸入/輸出
1127‧‧‧通信裝置
1128‧‧‧數據儲存
1130‧‧‧代碼與數據
1132‧‧‧記憶體
1134‧‧‧記憶體
1138‧‧‧共處理機
1139‧‧‧高效能介面
1150‧‧‧點到點互連
1152‧‧‧P-P介面
1154‧‧‧P-P介面
1170‧‧‧處理器
1172‧‧‧積體記憶體控制器
1172‧‧‧控制邏輯
1176‧‧‧點到點
1176‧‧‧點到點
1178‧‧‧點到點
1178‧‧‧點到點
1180‧‧‧處理器/共處理機
1180‧‧‧處理器
1182‧‧‧積體記憶體控制器
1182‧‧‧控制邏輯
1186‧‧‧點到點
1186‧‧‧點到點
1188‧‧‧點到點
1188‧‧‧點到點
1190‧‧‧晶片組
1190‧‧‧晶片組
1192‧‧‧介面
1194‧‧‧點到點
1196‧‧‧介面
1196‧‧‧鍵盤/滑鼠
1196‧‧‧介面
1198‧‧‧點到點
1200‧‧‧系統
1214‧‧‧輸入/輸出裝置
1215‧‧‧傳統輸入/輸出裝置
1300‧‧‧晶片上的系統
1302‧‧‧互連單元
1310‧‧‧應用處理器
1320‧‧‧共處理機
1330‧‧‧SRAM單元
1332‧‧‧DMA單元
1340‧‧‧顯示器單元
1402‧‧‧高階層語言
1404‧‧‧x86編譯器
1406‧‧‧x86二進制碼
1408‧‧‧替代性指令集編譯器
1410‧‧‧替代性指令集二進制碼
1412‧‧‧指令轉換器
1414‧‧‧不具有x86指令集核心的處理器
1416‧‧‧具有至少一x86指令集核心的處理器
本發明最佳係藉由參照下列描述與用來闡明實施例之 附圖來理解。在圖示中:圖1係為計算機系統的實施例之方塊圖,在其中實施例可被實施。
圖2係為檢查與使用結合執行分頁表走查之多頁面保護容器頁面與正規頁面(P/R)檢查提示之方法的實施例之方塊流程圖。
圖3係為階層分頁結構的示例性實施例之方塊圖,與顯示適合多頁面P/R檢查提示之位置。
圖4係為檢查與使用結合執行分頁表走查之多頁面P/R檢查提示之更詳細的方法的示例性實施例之方塊流程圖。
圖5係為提供多頁面P/R檢查提示給處理器之方法的實施例之方塊流程圖。
圖6係為特權系統模組提供多頁面P/R檢查提示的實施例之方塊圖。
圖7A係為闡明順序管線之實施例與重取名亂序發送/執行管線的暫存器之實施例的實施例之方塊圖。
圖7B係為包括耦接到執行引擎單元之前端單元、與兩者皆被耦接到記憶單元的處理器核心的實施例之方塊圖。
圖8A係為單處理器核心、連同其到晶粒上互連網路、以及其層級2(L2)快取記憶體之本地子集的連結的實施例之方塊圖。
圖8B係為圖8A的處理器核心之部分之放大圖的實 施例之方塊圖。
圖9係為處理器的實施例之方塊圖,其可具有一個以上的核心、可具有積體記憶體控制器、以及可具有積體圖形。
圖10係為計算機架構的第一實施例之方塊圖。
圖11係為計算機架構之第二實施例之方塊圖。
圖12係為計算機架構之第三實施例之方塊圖。
圖13係為計算機架構之第四實施例之方塊圖。
圖14係為根據本發明之實施例、使用軟體指令轉換器轉換來源指令集中的二進制指令為目標指令集中的二進制指令之方塊圖。
【發明內容與實施方式】 實施例之詳細說明
本發明揭露係為對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示。同時揭露的係為用以偵測與使用多頁面檢查提示之處理器、偵測與使用多頁面檢查提示之處理器的方法、用以提供多頁面檢查提示之方法與模組、以及在其中多頁面檢查提示可被使用的系統。在以下描述中,將闡述許多具體的細節(例如,特定指令操作、資料格式、處理器配置、微架構細節、操作的順序,等等)。然而,實施例可在沒有該些特定細節的情況下被實施。在其他實例中,熟知的電路、結構以及技術並沒有被詳細地顯示,用以避免混淆 本發明之理解。
圖1係為計算機系統100的實施例之方塊圖,在其中實施例可被實施。計算機系統包括至少一處理器102與記憶體120。記憶體可包括一或多類型的實體記憶體裝置。處理器與記憶體可與彼此耦接,或者結合一或多耦接機構114與其他通訊。適合的耦接機構之實例包括,單不局限於,一或多匯流排或其他互連、一或多晶片組組件、其組合、以及用以耦接處理器與記憶體之其他機構。
在部分實施例中,記憶體包括正規記憶體121與可轉換記憶體130兩者。正規記憶體可表示通常被使用來儲存應用與資料的類型之記憶體。如所顯示的,正規記憶體可儲存特權層級系統軟體模組122,諸如,例如,操作系統模組、虛擬機器監視器模組、或其類似物。正規記憶體也可儲存一或多使用者層級應用模組125,諸如,例如,文字處理應用、試算表、電子郵件應用、網際網路瀏覽器,等等。
可轉換記憶體130可表示記憶體的類型,在其中其位置可在正常類型記憶體與保護容器類型記憶體之間被相互轉換。例如,可轉換記憶體的頁面或其他位置可從正規記憶體頁面或位置被轉換到保護容器頁面或位置、與/或從保護容器頁面或位置到正規記憶體頁面或位置。如所顯示的,可轉換記憶體可具有一或多保護容器頁面131與一或多正規頁面132。保護容器頁面可比正規頁面更為安全或受到保護。保護容器頁面可被使用來實施保護容器。根據 各種實施例,適合的保護容器之實例包括但不局限於,安全內存空間、硬體管理隔離執行環境、硬體管理隔離執行區域、以及其類似物。儘管本發明之範疇並不局限於此,在部分實施例中,保護容器頁面131可表示Intel® Software Guard Extensions(Intel® SGX)安全內存空間之頁面,與可轉換記憶體131可表示彈性內存空間分頁快取(EPC)。在部分實施例中,可轉換記憶體可藉由基本輸入/輸出系統(BIOS)被配置在啟動時間,例如,藉由處理器的BIOS組態範圍暫存器。
安全特徵的不同類型在不同的實施方式中可被使用來保護保護容器頁面131。在部分實施例中,處理器對軟體可係為固有地、本機地、與/或透明地,在可轉換記憶體中的保護容器頁面131中儲存加密的編碼與/或數據,但處理器對軟體可不係為固有地、本機地、與/或透明地(例如,沒有需要執行加密指令),在可轉換記憶體的正規頁面132中儲存加密的編碼與/或數據。例如,在部分實施例中,到保護容器頁面的所有寫入(例如,由於快取記憶體遷出)、與來自可轉換記憶體中的保護容器頁面的所有讀取,可通過記憶體加密與解密單元111被執行,然而來自與到可轉換記憶體中的正規頁面之讀取與寫入可旁通記憶體加密與解密單元。在部分實施例中,處理器對軟體可係為固有地、本機地、與/或透明地,在保護容器頁面上執行完整保護與/或重播保護,但處理器對軟體可不係為固有地、本機地、與/或透明地,在正規記憶體121 中的可轉換記憶體之正規頁面上執行完整保護與/或重播保護。
在部分實施例中,處理器與/或記憶體存取單元107可係為可操作用以僅允許從在相同的保護容器頁面之內的編碼執行存取到保護容器頁面131。保護容器內部的編碼、數據、以及堆疊可被保護免於藉由不常駐在保護容器內之軟體、甚至更高特權層級軟體(例如,OS、VMM、BIOS、等等)的存取。在部分實施例中,處理器之記憶體存取控制邏輯也可控制或限制保護容器頁面之編碼與數據的未授權存取,而其常駐在暫存器、快取記憶體、以及其他處理器之晶粒上邏輯。有利的是,保密或機密資訊可被儲存在保護容器中同時維持數據的機密性和完整性,即使在特權惡意軟體的存在中。
再次參照圖1,特權系統軟體模組包括可轉換記憶體管理模組119之實施例。可轉換記憶體管理模組可係為可操作用以管理可轉換記憶體130。可轉換記憶體管理模組可包括保護容器頁面與正規頁面(P/R)轉換模組123。P/R轉換模組可係為可操作用以相互轉換正規與保護容器頁面之間的可轉換記憶體的頁面。例如,P/R轉換模組可轉換保護容器頁面為正規頁面,與/或轉換正規頁面為保護容器頁面。在部分實施例中,P/R轉換模組可執行特權階層頁面轉換指令,用以轉換正規與保護容器頁面之間的可轉換記憶體的頁面。例如,在彈性EPC之Intel® SGX實施的實施方式中,模組可具有處理器執行EMKEPC指令用 以轉換彈性EPC的頁面為內存空間頁面、與/或EMKREG指令用以轉換彈性EPC的頁面為正規頁面,儘管本發明之範疇並不限於此。
可轉換記憶體130的潛在優點係為其頁面可在正規與保護容器頁面之間被轉換,用以在運轉期間根據需求動態地改變其相對數與/或比例。代表性地,當需較正規頁面多的保護容器頁面時,P/R轉換模組可轉換在可轉換記憶體中的頁面之較大比例為保護容器頁面,而非正規頁面。相反地,當需較保護容器頁面多的正規頁面時,P/R轉換模組可轉換在可轉換記憶體中的頁面之較大比例為正規頁面,而非保護容器頁面。此可幫助避免用於保護容器頁面之記憶體的靜態固定量之潛在未充分利用。此外,由於保護容器與正規頁面的相對比例可根據需要在運行時間之期間動態地被配置,此可有助於使得記憶體的頁面之整體更佳的利用。作為一可能的例子,數據中心之中的伺服器可在特定時間或工作負載期間(例如,在日間當更多商業交易執行期間)可能地使用更多保護容器頁面,與在其他時間或工作負載期間(例如,在夜間當伺服器大多被使用於電影或其他內容之串流期間)使用較少保護容器頁面。
在部分實施例中,保護容器頁面原數據結構(PCPMS)133可被使用來為在可轉換記憶體130中的每個頁面儲存安全或其他元資料。適當PCPMS的一實例係Intel® SGX中的內存空間分頁快取映射(EPCM),儘管本發明之範疇不侷限於此。其他PCPMS可具有不同於 EPCM的結構與屬性。在部分實施例中,PCPMS可作為保護容器頁面被儲存在可轉換記憶體中,用以提供安全與/或保護。由於部分地原因係相對較長的潛在記憶體存取,存取在PCPMS中的數據,當其被儲存在記憶體中時,可傾向為相對地較貴。或者,PCPMS可隨意地被儲存在其他地方,諸如,例如,在處理器上的安全晶粒儲存空間中(例如,一或多個快取記憶體、專用儲存空間等等的部分)。在一方面中,儘管結構PCPMS的其他方式也係為可能(例如,表、數據結構等等的其他類型),對於在可轉換記憶體中不同的對應頁面,PCPMS可被結構用以具有不同登錄項。例如,通過對應於第M頁面的第M登錄項134-M,PCPMS可具有對應於第一頁面的第一登錄項134-1。每個登錄項可為對應的頁面儲存安全與任何地其他元資料。用於保護容器頁面之元資料之適合類型的實例包括,但不侷限於,用以指示是否頁面係為有效或無效之資訊,用以指示保護容器頁面到其所屬之保護容器頁面的資訊,用以指示通過其允許保護容器頁面被存取的虛擬位址,用以指示用於保護容器頁面之讀取/寫入/執行權限以及類似物,以及取決於特定實施方式的其各種組合。本發明之範疇不侷限於任何被儲存在PCPMS中的安全或其他元資料的已知類型。
再次參照圖1,如圖所示,在部分實施例中,PCPMS可儲存對應的保護容器與正規(P/R)表示135於可轉換記憶體中的每個頁面。例如,通過具有第MP/R表示的第 M登錄項,如圖所示的第一登錄項可具有第一保護頁面與正規(P/R)表示135-1。或者,P/R表示可任意地被設置在其他地方,諸如,例如,保護容器頁面131之內的儲存保護表示與正規頁面132之內的正規表示、在具有記憶體存取單元107的晶粒結構中,在保護晶粒處理器邏輯或充分保護記憶體中的每頁面P/R位元的陣列,等等。該些P/R表示可被使用來在頁面粒度辨別是否頁面係為保護容器或正規類型。每個P/R表示可係為可操作用以指示在可轉換記憶體中的對應的頁面是否目前係被配置為保護容器頁面或正規頁面。適合的P/R表示的一實例,在Intel® SGX實施方式中,係為EPCM中的EPCM.E位元,其可被設定為二進制一用以指示對應頁面細係為內存空間頁面或被清除為二進制零用以指示對應頁面係為正規頁面,儘管本發明的範疇不侷限於此。在部分實施例中,該些EPCM.E位元或其他P/R表示可藉由特權系統軟體模組122被配置。例如,當可轉換記憶體的頁面在正規與保護容器類型之間被轉換,可轉換記憶體管理模組119與/或P/R轉換模組123可適當地配置P/R表示。如同一具體實例,在具有彈性EPC的Intel® SGX實施方式中,EPCM.E位元可被設定回應於執行EMKEPC指令,且被清除回應於執行EMKPEG指令。P/R表示135可部分地被使用用以處理適當安全的頁面(例如,用以應用保護容器頁面機制到保護容器頁面,而非正規頁面)。
操作期間,執行軟體103可執行在處理器102上。例 如,執行軟體可包括被提供到處理器之核心104的指令。核心可包括用以解碼指令的解碼單元、用以執行指令的執行單元等等。執行軟體可包括嘗試存取106到保護容器頁面131的軟體,以及嘗試存取105到正規頁面132的軟體。該些記憶體存取嘗試可被指向記憶體存取單元107。
通常,記憶體存取嘗試105、106可由邏輯記憶體位址組成(例如,虛擬或線性記憶體位址)。邏輯記憶體位址可能必須被轉換為對應實體記憶體位址,以為了在記憶體中辨別適當的實體頁面。邏輯記憶體位址可被提供給至少一轉譯後備緩衝器(TBL)108。在一方面中,可係為單TLB。在另一方面中,可係為多TLB(例如,在不同階層)。至少一TLB可快取或以其他方式儲存前邏輯到實體記憶體位址轉譯。例如,在分頁表走查已經被執行用以轉譯邏輯位址為實體位址,位址轉譯可被快取儲存在TLB中。若位址轉譯在很短的足夠時間期間內被再次需要,則位址轉譯可快速地從TLB被檢索,而非需要更慢的重複分頁表走查。通常,TLB可具有不同登錄項用以儲存不同的位址轉譯。如圖所示,TLB可通過第N登錄項109-N具有第一登錄項109-1。在部分實施例中,每個登錄項可儲存用於先前獲得的對應轉譯的保護容器與正規(P/R)表示。例如,第一登錄項可通過儲存第N P/R表示110-N之第N登錄項,儲存第一P/R表示110-1。P/R表示可指示是否對應頁面係為保護容器頁面或正規頁面。在TLB(s)中的P/R表示可係為,但不侷限於,來自PCPMS 的P/R表示135的精確複製,只要其傳到一致性的P/R表示。
適合的位址轉譯將被儲存在一或多個TLB中,或者不會。TLB「命中」發生在當適合的位址轉譯被儲存在一或多個TLB中時。相反地,TLB「未命中」發生在當適合的位址轉譯不被儲存在一或多個TLB中時。在TLB「命中」之事件中,位址轉譯可從TLB登錄項被檢索,與被使用來在記憶體中存取頁面。在部分實施例中,對應P/R表示也可從TLB登錄項被檢索,與在存取期間被使用用以控制是否頁面被作為保護容器頁面或正規頁面存取。若被檢索的P/R表示指示頁面係為正規頁面,則正規頁面可被存取而不用執行一組安全與/或保護操作,其被使用來存取保護容器頁面。例如,如箭頭116所顯示,若被檢索P/R表示係為指示該頁面係為正規頁面的R表示,則記憶體存取單元可存取正規頁面,略過加密單元與解密單元。相反地,若P/R表示係為指示該頁面係為保護容器頁面的P表示,則保護容器頁面可以一組旨在被使用於存取保護容器頁面的保全與/或保護操作被存取。例如,如箭頭115所顯示,保護容器頁面的存取可通過記憶體加密與解密單元進行。被描述用於保護容器的其他操作也可以被實施。
在TLB「未命中」的事件中,所尋求的位址轉譯不被儲存在一或多個TLB中。況且,用於被存取之頁面的P/R表示不被儲存在一或多個TLB中。該TLB未命中可被指向記憶體管理單元(MMU)112。MMU可包括頁面未命 中處理單元或邏輯、分頁表走查單元或邏輯,或類似物。MMU可被實施在硬體(例如,積體電路、電晶體或其他電路元件等等)、韌體(例如,ROM、EPROM、快閃記憶體、或其他持續或非揮發性記憶體與微代碼、微指令、或其他被儲存在其中的低階指令)、軟體(例如,被儲存在記憶體中的高階指令)、或其組合中(例如,可能與部分軟體結合的硬體與/或韌體)。
MMU單元112(例如,其頁面未命中處理子單元)係為可操作用以執行分頁表走查,用以判定實體位址轉譯的邏輯(例如,虛擬或線性)。MMU與/或其頁面未命中處理單元可存取一組階層分頁結構136。在部分實施例中,階層分頁結構可被儲存在正規記憶體中,或在其他實施例中的可轉換記憶體中。不同階層分頁結構適合於不同實施例。MMU可係為可操作用以通過階層分頁結構直到最終到達頁面表138「走查」或前進,其可具有儲存對應頁面之實體位址的頁面表登錄項。實體位址可被使用於從記憶體存取頁面。判定的位址轉譯也可被儲存在一或多個TLB中的登錄項中,以供可能的將來使用。
現在,除了判定的位址轉譯外,在部分實施例中,至少當被存取的頁面係在可轉換記憶體中時,處理器也需要知道被存取的頁面是否係為保護容器頁面或正規頁面,使得頁面可以適當的安全被存取。一可能的方法係針對每個接著TLB未命中被存取的頁面,處理器(例如,MMU)在PCPMS中存取P/R表示135。然而,該在PCPMS中 P/R表示的存取可能傾向降低效能。一方面,在PCPMS係在記憶體中的實施例中,P/R表示的存取通常傾向係為具有相對長的記憶體存取潛時。況且,即使PCPMS未被儲存在記憶體中(例如,係為處理器之晶粒),存取通常仍需要以不已經為操作之分頁表走查組的部分的額外操作被執行。因此,由於在PCPMS中檢查P/R表示,額外負擔與相關的效能損失可能發生(或即使他們被儲存在其他地方)。即使當非常小的軟體、或甚至沒有軟體正在使用保護容器頁面時,其可能成真。消除PCPMS中的P/R表示的至少部分檢查可幫助提高效能。
再次參照圖1,在部分實施例中,可轉換記憶體管理模組119可包括多頁面保護容器頁面與正規頁面(P/R)檢查提示模組124的實施例。或者,P/R檢查提示模組可係為特權系統軟體模組122的部分,但不必要係為可轉換記憶體管理模組的部分。P/R檢查提示模組可係可操作用以儲存或其他方式提供多頁面P/R檢查提示137給處理器。在部分實施例中,多頁面P/R檢查提示可提示或指示給處理器,在P/R檢查提示之多頁面的範疇之內,在PCPMS中的P/R表示135(或即使在其他實施例中其被儲存處其他地方)應該被檢查,以為了判定被存取頁面是否係為保護保護容器頁面或正規頁面。
如同其名稱所意味的,在部分實施例中,多頁面P/R檢查提示137可應用或適合多頁面,而非僅是單頁面。如所示,在部分實施例中,P/R檢查提示模組124可係為可 操作用以在階層分頁結構136中儲存多頁面P/R檢查提示。如進一步所示,在部分實施例中,多頁面P/R檢查提示可被儲存在頁面表138的外側(即,其頁面表登錄項的外側)。另一可能的方法係儲存單頁面P/R檢查提示在頁面表中的頁面表登錄項的位元中。在該方法中,單頁面P/R檢查提示僅可應用於單頁面。然而,在頁面表登錄項中的位元數目通常傾向係為被限制的。在部分實施方式中,在頁面表登錄項中可能沒有額外可用位元(例如,其可全部係為已經藉由系統軟體被使用在其他目的上)。在其他實施方式中,在頁面表登錄項中可能有一或多個額外可用位元,但其可被期望使用或保留用於其他目的。例如,其可能被期望在頁面表登錄項中保留該些額外位元,使得其可作為替代在將來被使用來擴展實體位址空間。
如所示,在部分實施例中,MMU可包括多頁面P/R檢查提示偵測與基於提示選擇性檢查邏輯113,其係可操作用以偵測多頁面P/R檢查提示137(當一被儲存或以其他方式被提供時),例如基於多頁面P/R檢查提示是否已被偵測,當MMU112正執行在PCPMS中的分頁表走查118與選擇性檢查117P/R表示135時。或者,邏輯113可選擇性地被設置在MMU的外側(例如,在記憶體存取單元與/或在處理器中)。在部分實施例中,處理器與/或MMU可係為可操作用以檢查多頁面P/R檢查提示。例如,處理器與/或MMU可在分頁表走查與/或結合執行分頁表走查的時間(例如,就在開始之前與/或期間與/或之 後立即),檢查多頁面P/R檢查提示。在部分實施例中,若多頁面P/R檢查提示被找到,則處理器與/或MMU可係為可操作用以在PCPMS選擇性地檢查對應P/R表示。在部分實施例中,若多頁面P/R檢查提示未被找到,則處理器與/或MMU可係為可操作用以在PCPMS選擇性地不檢查對應P/R表示。因此,多頁面P/R檢查提示可允許處理器與/或MMU選擇性地存取與檢查、或不存取與檢查P/R表示,其取決在範疇或領域(例如,記憶體範圍)具有所尋求頁面的多頁面P/R提示是否已被偵測。有利的是,此可有助於消除至少部分的P/R表示的檢查,其可有助於改善效能。
圖2係為檢查與使用結合執行分頁表走查之多頁面P/R檢查提示之方法240的實施例之方塊流程圖。在各種實施方式中,方法可藉由處理器、指令處理設備、或其他數位邏輯裝置被執行。在部分實施例中,方法240可藉由與/或在圖1的處理器102之內被執行。本發明所描述用於處理器102的元件、特徵、以及特定選擇性細節也選擇性地應用於方法240。或者,方法240可藉由與/或在類似或不同處理器或設備之內被執行。況且,處理器102可執行類似或不同於方法240的方法。
方法包括在區塊241開始分頁表走查。在部分實施例中,MMU與/或頁面未命中處理(PMH)單元可開始分頁表走查,以回應於在至少一TLB中的未命中,用於給定邏輯位址到對應實體位址的轉譯。
在區塊242,處理器與/或MMU與/或PMH單元可檢查與判定多頁面P/R檢查提示在分頁表走查期間是否被偵測。在部分實施例中,此可包括檢查用於P/R檢查提示的一或多個階層分頁結構,其在分頁表走查期間被測定。例如,此可包括連續檢查頁面目錄基底暫存器(PDBR),例如在特定Intel® Architecture相容處理器中的CR3暫存器,與接著檢查在頁面目錄基底暫存器與頁面表之間的階層層級的一或多個階層分頁結構。例如,這可包括連續檢查頁面目錄指標表的目錄或映射,與接著頁面目錄指標表,以及接著頁面目錄表。在其他實施例中,可能有更少或更多階層分頁結構在分頁表走查期間被使用,與對應地更少或更多用於檢查提示的階層分頁結構被檢查。況且,在部分實施例中,一或多個額外結構或儲存位置可選擇性地結合分頁表走查被檢查(例如,開始分頁表走查之前、分頁表走查期間、分頁表走查之後)。例如,在部分實施例中,核心控制暫存器與/或狀態存檔儲存位置可選擇性地被檢查。
若多頁面P/R檢查提示在分頁表走查期間在任何階層或點被找到或偵測到(即,在區塊242判定係為「是」),則方法可前進到區塊243。P/R檢查提示可代表給處理器P/R表示應該被檢查的提示(例如,藉由特權系統軟體被提供)。在區塊243,處理器與/或MMU與/或PMH單元可檢查P/R表示。在部分實施例中,P/R表示可在PCPMS中被儲存,其可在記憶體中被儲存。因此,檢 查P/R表示可包括在記憶體中存取PCPMS。藉由實例的方式,在Intel® SGX實施方式中,檢查P/R表示可包括在EPCM中檢查EPCM.E位元,其可被設定為二進制一用以指示對應頁面細係為內存空間頁面或被清除為二進制零用以指示對應頁面係為正規頁面,儘管本發明的範疇不侷限於此。
接著,在區塊244,表示可被儲存在TLB的登錄項(例如,其可被使用來儲存在分頁表走查期間被判定的邏輯到實體位址轉譯),頁面可以係為正規頁面或保護容器頁面,如同藉由檢查P/R表示被指示以及與檢查P/R表示一致(例如,其在區塊243被檢查)。藉由實例的方式,在Intel® SGX實施方式中,若EPCM中的EPCM.E位元被設定二進制一,則TLB登錄項可指示該頁面係為EPC頁面,或若EPCM.E位元被設定二進制零,則TLB登錄項可指示該頁面係為正規頁面,儘管本發明的範疇不侷限於此。
相反地,若多頁面P/R檢查提示在全部分頁表走查期間沒有被找到或偵測到(即,在區塊242判定係為「否」),則方法可前進到區塊245。在區塊245,處理器與/或MMU與/或PMH單元可省略檢查、或不檢查P/R表示。在部分實施例中,P/R表示可在PCPMS中被儲存,其可在記憶體中被儲存。有利的是,省略檢查P/R表示可避免在記憶體中存取PCPMS的需要,其可有助於改善效能。
接著,在區塊246,頁面(即,相對於保護容器頁面)係為正規頁面的表示可在TLB登錄項被儲存。TLB登錄項也可被使用來儲存在分頁表走查期間被判定的邏輯到實體位址轉譯。
因此,多頁面P/R檢查提示可使得處理器與/或MMU與/或PMH單元選擇性地檢查或不檢查P/R表示,取決於在其距離、範圍、或領域中具有所尋求頁面的多頁面P/R檢查提示是否被偵測。有利的是,此可有助於消除至少部分的P/R表示的檢查,特別是當其被儲存在記憶體中時可傾向係為昂貴的檢查,其依次可有助於改善效能。例如,若軟體(例如,處理)並不使用保護容器頁面,則當多頁面P/R檢查提示被包括在階層分頁結構中的任何的各種位置時,檢查P/R表示所需的其他負擔可基本上被消除。或者,對於使用部分保護容器頁面的軟體,負擔可藉由在頁面目錄基底暫存器下的階層分頁結構中包括多頁面P/R檢查提示被顯著地減少(例如,頁面目錄指標表、頁面目錄表,等等)。
圖3係為可被使用來在記憶體中辨識實體頁面365的邏輯位址350與階層分頁結構336組之示例性實施例的方塊圖。頁面目錄基底暫存器(PDBR)356可被使用來儲存最高階層階層分頁結構的基底實體位址。PDBR的一實例係為在特定Intel® Architecture相容處理器中的CR3暫存器。PDBR可代表處理器暫存器。或者,代替使用處理器暫存器,在記憶體中的數據結構可選擇性地具有用以儲 存頁面目錄基底的場域。
在所闡示的示例性實施例中,階層分頁結構組的四階層被顯示,儘管其他實施例可選擇性地具有更少或者更多的階層層級。例如,一替代性實施方式可僅具有PDBR、頁面目錄、以及頁面表。另一替代性實施方式可僅具有PDBR、頁面目錄指標表、頁面目錄、以及頁面表。每個階層分頁結構可代表在記憶體中的數據結構,其藉由特權系統軟體被管理。
在圖示中的最高階層階層分頁結構係為頁面目錄指標表的目錄(或映射)357。一適合的實例係為在特定Intel® Architecture相容處理器中的頁面映射階層4(PML4)。在圖示示例性實施例中的邏輯位址係為線性位址。線性位址包括階層4指標(例如,PML4)場域351。在階層4指標場域中的指標或數值可被使用來判定或選擇在頁面目錄指標表的目錄(或映射)中的登錄項358。登錄項358可在階層之下個階層包含頁面目錄指標表359的基底的實體位址。358登錄項也可選擇性地包括存取權與/或記憶體管理資訊。
線性位址包括目錄指標場域352。在目錄指標場域中的指標可被使用來判定或選擇在頁面目錄指標表的目錄中的登錄項360。登錄項360可在階層之下個階層包含頁面目錄表361的基底的實體位址。登錄項360也可選擇性地包括存取權與/或記憶體管理資訊。線性位址包括目錄場域353。在目錄場域中的數值可被使用來判定或選擇在頁 面目錄表中的登錄項362。登錄項362可在階層之下個階層包含頁面表363的基底的實體位址。登錄項362也可選擇性地包括存取權與/或記憶體管理資訊。線性位址包括表場域354。表場域可被使用來在頁面表判斷或選擇頁面表登錄項364。頁面表登錄項可包含在記憶體中的頁框的基底的實體位址。頁面表也可選擇性地包括存取權與/或記憶體管理資訊。線性位址也包括偏移場域355。偏移場域可被使用來判定或選擇在記憶體中的實體頁面的實體位址。
在各種實施方式中,多頁面P/R檢查提示可在所闡示的結構中的任一或多個各種不同位置被儲存或被提供。如圖所示,在部分實施例中,多頁面P/R檢查提示367(例如,P/R提示位元)可選擇性地被儲存在PDBR中。如圖進一步所示,在部分實施例中,多頁面P/R檢查提示368(例如,P/R提示位元)可選擇性地被儲存在頁面目錄指標表的目錄(或映射)中。又如圖所示,在部分實施例中,多頁面P/R檢查提示369(例如,P/R提示位元)可選擇性地被儲存在頁面目錄指標表的登錄項中。如圖進一步所示,在部分實施例中,多頁面P/R檢查提示370(例如,P/R提示位元)可選擇性地被儲存在頁面目錄表的登錄項中。在各種實施方式中,多頁面P/R檢查提示可選擇性地被儲存在該些不同位置或結構的任一或多個、或任何組合中。
當多頁面P/R檢查提示在PDBR中被儲存或被提供, 其可指示對應的程序使用保護容器頁面。在部分實施例中,當多頁面P/R檢查提示在CR3暫存器或其他PDBR中被儲存,其可指示多頁面P/R檢查提示應用於對應的程序的整個線性或邏輯位址空間。相反的,當多頁面P/R檢查提示在PDBR與頁面表之間的階層層級的一階層分頁結構的登錄項被儲存或被提供時,其可指示多頁面P/R檢查提示應用於線性或邏輯位址範圍,其係為與PDBR有關之程序的整個邏輯位址範圍的子集。
在給定階層分頁結構之多頁面P/R檢查提示的偵測可指示對應的程序使用保護容器頁面,以及可能有保護容器頁面,其階層式地在給定階層分頁結構中之多頁面P/R檢查提示的位置的下方。例如,在給定頁面目錄表中之給定登錄項的多頁面P/R檢查提示的偵測可指示對應程序使用保護容器頁面,以及可能有保護容器頁面,其被映射於在藉由在給定頁面目錄表中之給定登錄項被指示之頁面表中的任何的登錄項。換言之,在給定階層層級多頁面P/R檢查提示的偵測可指示可能有在給定階層層級下方被映射的保護容器頁面。在各種方面中,程序在其線性位址空間可具有零保護容器、一保護容器、或多保護容器。在一方面中,每個保護容器可具有其自己的對應P/R檢查提示。例如,對應地,可能有零P/R檢查提示、一P/R檢查提示、或多P/R檢查提示。代表性地,每個P/R檢查提示可被儲存在保護容器之對應線性空間的下方。
圖4係為檢查與使用結合執行分頁表走查之多頁面 P/R檢查提示之方法472的示例性實施例之方塊流程圖。在各種實施方式中,方法可藉由處理器與/或MMU與/或PMH單元被執行。在部分實施例中,方法472可藉由與/或在圖1的處理器102之內被執行。本發明所描述用於處理器102的元件、特徵、以及特定選擇性細節也選擇性地應用於方法472。或者,方法472可藉由與/或在類似或不同處理器或設備之內被執行。況且,處理器102可執行類似或不同於方法472的方法。在部分實施例中,方法472可選擇性地與圖3的階層分頁結構被執行。或者,方法可選擇性地與類似或不同階層分頁結構被執行。
分頁表走查可在區塊473被開始。在部分實施例中,分頁表走查可被開始以回應於在至少一TLB中的未命中,用於給定邏輯位址到對應實體位址的轉譯。
在區塊474,判定可被做出,無論是否多頁面P/R檢查提示在一狀態保存區(例如,XSAVE區)與/或核心控制暫存器中的任一個被偵測。在部分實施例中,在任一狀態保存區(例如,XSAVE區)與/或核心控制暫存器中被偵測的多頁面P/R檢查提示可應用於對應程序的整個線性位址空間。若多頁面P/R檢查提示被偵測到(即,若判定係為「是」),則方法可前進到區塊481。否則(即,若判定係為「否」),方法可前進到區塊475。
在區塊475,判定可被做出,無論是否多頁面P/R檢查提示在頁面目錄基底暫存器(PDBR)中被偵測。在部分實施例中,在PDBR中被偵測的多頁面P/R檢查提示 (例如,在特定Intel® Architecture相容處理器中的CR3暫存器)可應用於與給定邏輯位址相關之對應程序的整個線性位址空間。若多頁面P/R檢查提示被偵測到(即,若判定係為「是」),則方法可前進到區塊481。否則(即,若判定係為「否」),方法可前進到區塊476。
在區塊476,判定可被做出,無論是否多頁面P/R檢查提示在藉由PDBR與邏輯位址的第一部分被指示之頁面目錄指標表之目錄(或映射)的登錄項被偵測。例如,此可包括檢查在特定Intel® Architecture相容處理器中之PML4表的指示登錄項的多頁面P/R檢查提示。若多頁面P/R檢查提示被偵測到(即,若判定係為「是」),則方法可前進到區塊481。否則(即,若判定係為「否」),方法可前進到區塊477。
在區塊477,判定可被做出,無論是否多頁面P/R檢查提示在藉由頁面目錄指標表與邏輯位址的第二部分的目錄的登錄項被指示之目錄的登錄項被偵測。若多頁面P/R檢查提示被偵測到(即,若判定係為「是」),則方法可前進到區塊481。否則(即,若判定係為「否」),方法可前進到區塊478。
在區塊478,判定可被做出,無論是否多頁面P/R檢查提示在藉由在頁面目錄指標表與邏輯位址的第三部分的目錄中的登錄項被指示之頁面目錄表中的登錄項被偵測。若多頁面P/R檢查提示被偵測到(即,若判定係為「是」),則方法可前進到區塊481。否則(即,若判定 係為「否」),方法可前進到區塊479。當分頁表走查通過該些階層分頁結構以其方式作用時,區塊474-478有效地代表檢查不同的階層分頁結構。
若多頁面P/R檢查提示在任何偵測的期間被偵測(即,若在任何的區塊474、475、476、477、或478判定係為「是」),則方法可前進到區塊481。在區塊481,P/R表示可被檢查。在部分實施例中,P/R表示可在保護容器頁面元資料結構(PCPMS)中被儲存,其在部分實施例中可在記憶體中被儲存。接著,在區塊482,表示可被儲存在TLB登錄項(例如,一被使用來儲存判定邏輯到實體位址轉譯),頁面係為保護容器頁面或正規頁面,如同藉由檢查P/R表示被指示以及與檢查P/R表示一致。
或者,若多頁面P/R檢查提示在任何偵測的期間不被偵測(即,若在各一個區塊474-478判定係為「否」),則方法可前進到區塊479。在區塊479,P/R表示的檢查可被略過或不被執行。在部分實施例中,此可包括略過在記憶體中存取與檢查PCPMS。接著,在區塊480,表示可被儲存在TLB登錄項(例如,一被使用來儲存判定邏輯到實體位址轉譯),頁面係為正規頁面。
此僅為方法的一闡示示例性實施例。在其他實施例中,更少或更多地方或僅不同地方被檢查多頁面P/R檢查提示。
例如,在一替代性實施例中,其可不被期望在任何區 塊476-478的階層分頁結構中使用位元。例如,可能沒有任何可用的位元或其可能被期望保留或使用該些位元於另一目的。在種情況下,多頁面P/R表示可選擇性地代替被儲存(在適當的時候)在PDBR、狀態儲存區、核心控制暫存器、或部份其組合。特權系統軟體可在該空間之一儲存多頁面P/R表示,即使在對應程序的整個線性位址空間中僅有一保護容器頁面。此可允許特權系統軟體指示是否應用或程序的任何部分是否使用保護容器頁面。一方面,若程序具有大數量的記憶體存取,但其小部分係為真正保護容器頁面,則應用於程序或應用的整個線性位址空間的該多頁面P/R提示可傾向於係為較低效率的。另一方面,完全不使用任何保護容器頁面的任何應用或程序可省略檢查P/R表示的需要,其可有助於改善該些應用或程序的效能。
圖5係為提供多頁面P/R檢查提示給處理器之方法583的實施例之方塊流程圖。在部分實施例中,方法可藉由特權系統軟體被執行,諸如,例如,操作系統、虛擬機器監視器、超管理器、或其類似物。在部分實施例中,方法583可藉由與/或在圖1的計算機系統100之內被執行。本發明所描述用於計算機系統100的元件、特徵、以及特定選擇性細節也選擇性地應用於方法583。或者,方法583可藉由與/或在類似或不同系統之內被執行。況且,計算機系統100可執行類似或不同於方法583的方法。
方法可選擇性地包括設定或配置預設表示,其處理器不檢查P/R表示,例如在區塊584中,在記憶體中的保護容器頁面元資料結構(PCPMS)。此為選擇性而非必要的。
在區塊585,判定可被做出,無論是否處理器或應用的保容器被創造。若處理器或應用的保護容器被創造(即,判定係為「是」),方法可前進到區塊587。或者,若處理器或應用的保護容器沒有被創造(即,判定係為「否」),方法可前進到區塊586。
在區塊586,判定可被做出,無論是否一或多個保護容器頁面被增加到現存的保護容器。當保護容器頁面正被增加時,保護容器頁面可選擇性地被延遲創造,如此可使得特權系統軟體隨著時間更新P/R表示。若一或多個保護容器頁面被增加,(即,判定係為「是」),方法可前進到區塊587。或者,當無保護容器頁面被添加時(判定係為「否」),方法可返回區塊585。
在區塊587,一或多個保護容器頁面可被創造。在部分實施例中,此可包括轉換一或多個可轉換記憶體的正規頁面為一或多個保護容器頁面。藉由實例的方式,在Intel® SGX實施方式中,此可包括執行一或多個EMKEPC指令。在部分實施例中,如在區塊591所闡示,一或多個創造的保護容器頁面可選擇性地被聚集在一起,與選擇性地與其他現存的保護容器頁面(如果有)被聚集。在部分實施例中,保護容器頁面的群組可包括聚集保 護容器頁面,使得所有保護容器頁面係為階層式在階層分頁結構中的給定登錄項下方、與/或被映射到階層分頁結構中的給定登錄項(例如,頁面目錄指標表的頁面目錄表/映射、頁面目錄指標表、以及頁面目錄表的一給定登錄項)。
在區塊588,創造的保護容器頁面可被指示為保護容器頁面。例如,在部分實施例中,指示可在記憶體中被儲存,被創造的頁面係為保護容器頁面。藉由實例的方式,在Intel® SGX實施方式中,此可包括在EPCM設置EPCM.E位元給每個創造的保護容器頁面(例如,當執行EMKPEPC指令時)。
在區塊589,儘管這不是必須的,選擇性判定可由在其中提供多頁面P/R檢查提示之處所組成。在部分實施例中,此可包括選擇多個不同的可能位置的一個,用以提供多頁面P/R檢查提示。在部分實施例中,若多頁面P/R檢查提示被提供在每個多個不同的可能位置,則此可包括考慮所期望的效能。在部分實施例中,此可包括判斷用以在最低階層層級提供多頁面P/R檢查提示,使得所有保護容器頁面階層式在判定的最低階層層級以下、與/或映射到判定的最低階層層級。在部分實施例中,判定的位址可至少包圍或覆蓋保護容器頁面的整個線性位址空間。或者,在其他實施例中,單固定位址可選擇性地被使用來提供多頁面P/R檢查提示。
在區塊590,多頁面P/R檢查提示可被儲存或以其他 方式被提供。在部分實施例中,多頁面P/R檢查提示可作為處理器的提示或表示,即是否頁面係為保護容器頁面或正規頁面的P/R表示係為被檢查的。在部分實施例中,P/R表示可在記憶體中的PCPMS被儲存。在部分實施例中,多頁面P/R檢查提示可被提供在頁面表登錄項的外側。此可具有潛在優點,特權系統軟體不必要修改每個頁面表登錄項,而是放置一應用於多頁面的多頁面P/R檢查提示(例如,在預程序基礎上,多頁面分頁結構登錄項基礎,等等)。
如圖所示,在部分實施例中,方法可接著回到區塊585。此可使得特權系統軟體在運行時間之期間根據是否其被判斷增加多頁面到保護容器(例如,在區塊586),可能地更新多頁面P/R檢查提示(例如,更新其位置)。再者,當保護容器頁面被移除時,方法也可選擇性地更新多頁面P/R檢查提示。
圖6係為特權系統模組622的實施例之方塊圖。在部分實施例中,特權系統模組可被實施在軟體、韌體、硬體或其組合中(例如,具有潛在地部分韌體的軟體)。
特權系統模組包括可轉換記憶體管理模組619。可轉換記憶體管理模組可耦接、或以其他方式結合可轉換記憶體630。可轉換記憶體管理模組可係為可操作用以管理可轉換記憶體。藉由實例的方式,在Intel® SGX實施方式中,可轉換記憶體可代表彈性內存空間分頁快取(EPC),儘管本發明的範疇並不局限於此。
可轉換記憶體管理模組包括保護容器頁面與正規頁面(P/R)轉換模組623。P/R轉換模組可係為可操作用以相互轉換正規與保護容器頁面之間的可轉換記憶體的頁面。例如,P/R轉換模組可轉換保護容器頁面為正規頁面,與/或轉換正規頁面為保護容器頁面。在部分實施例中,P/R轉換模組可執行特權階層頁面轉換指令,用以轉換正規與保護容器頁面之間的可轉換記憶體的頁面。例如,在Intel® SGX實施的實施方式中,模組可具有處理器執行EMKEPC指令用以轉換彈性EPC的頁面為內存空間頁面、與/或EMKREG指令用以轉換彈性EPC的頁面為正規頁面,儘管本發明之範疇並不限於此。
在部分實施例中,P/R轉換模組可選擇性地包括選擇性保護容器頁面群組模組692,儘管這不是必要的。保護容器頁面群組模組可係為可操作用以將保護容器頁面聚集在可轉換記憶體之內,而非具有分散或散佈在整個可轉換記憶體之範圍的保護容器頁面。在部分實施例中,保護容器頁面群組模組可係為可操作用以將所有保護容器頁面聚集在一起。在部分實施例中,保護容器頁面群組模組可係為可操作用以群聚所有保護容器頁面、或至少保護容器頁面組,使得所有保護容器頁面、或至少保護容器面組,係為階層式在階層分頁結構中的給定登錄項下方、與/或被映射到階層分頁結構中的給定登錄項(例如,頁面目錄指標表的頁面目錄表/映射、頁面目錄指標表、以及頁面目錄表的一給定登錄項)。其非必要將所有保護容器頁面聚 集在一起。相反的,保護容器頁面的不同群組可選擇性地被聚集在一起,例如,與階層式在階層分頁結構中的給定登錄項下方、與/或被映射到階層分頁結構中的給定登錄項的每個群組。
在部分實施例中,P/R轉換模組可包括保護容器頁面元資料結構(PCPMS)更新模組693。PCPMS更新模組可耦接、或以其他方式結合於PCPMS633。PCPMS更新模組可係為可操作用以在PCPMS中更新P/R表示。例如,在Intel® SGX實施的實施方式中,當頁面在正規與EPC頁面之間被相互轉換時,更新模組可更新在EPCM中的EPCM.E位元。
可轉換記憶體管理模組也可包括多頁面P/R檢查提示模組624。多頁面P/R檢查提示模組可耦接、或以其他方式結合於P/R轉換模組623與階層分頁結構組。在部分實施例中,多頁面P/R檢查提示可係為可操作用以在頁面表登錄項638的階層分頁結構外側提供多頁面P/R提示。或者,多頁面P/R檢查提示可係為可操作用以在本發明所揭露之任何其他位置、或其他具有多頁面之範疇且係在頁面表登錄項外側的位置提供多頁面P/R提示。在部分實施例中,多頁面P/R檢查提示可提供提示、建議、或表示給處理器,即處理器係用以檢查多頁面的P/R表示。在部分實施例中,多頁面P/R檢查提示模組可選擇性地包括選擇性P/R檢查提示位置判定模組,即係為可操作用以判定複數個不同可能位置的位置,用以提供包括所有保護容器頁面 但不包括所有正規頁面的多頁面P/R檢查提示。位置可如本發明別處所描述的被判定。
在部分實施例中,可轉換記憶體管理模組可選擇性地包括選擇性P/R檢查提示特徵指定模組695。特徵指定模組可耦接於、或以其他方式結合於多頁面P/R檢查提示模組與處理器的一或多個暫存器696(例如,一或多個式樣特定暫存器(MSRs))。在部分實施例中,特徵指定模組可係為可操作用以儲存一或多個位置的表示,其中一或多個多頁面P/R檢查提示在處理器的一或多個暫存器696中被提供。例如,特徵指定模組可規定或指定是否特權系統模組將使用PDBR、狀態儲存區、核心控制暫存器、階層分頁結構、或其部份組合來儲存多頁面P/R檢查提示。一方面,此可通知處理器哪裡要檢查,使得處理器可選擇性地在被指示位置檢查,以提高效率與/或額外的安全。
示例性核心架構、處理器、以及計算機架構
處理器核心可以不同的方式、針對不同目的被實施在不同的處理器中。例如,該核心的實施方式可包括:1)用於通用計算機的通用順序核心;2)用於通用計算機的高效能通用亂序核心;3)主要用於圖形與/或科學(通量)計算的專用核心。不同處理器的實施方式可包括:1)包括一或多個用於通用計算機的通用順序核心與/或一或多個用於通用計算機的高效能通用亂序核心;以及2)包括一或多個主要用於圖形與/或科學(通量)計算的專 用核心的共處理機。不同的處理器導致不同的計算機系統架構,其可包括:1)來自CPU之分離晶片上的共處理機;2)在與CPU相同封裝中之分離晶粒上的共處理機;3)與CPU在相同晶粒上的共處理機(在該情況下,共處理機有時被稱作專用邏輯,諸如整合圖形與/或科學(通量)邏輯、或作為專用核心);4)晶片上的系統可包括在相同的晶粒上,如所描述之CPU(有時被稱作應用核心、或應用處理器)、以上所述的共處理機、以及額外的功能。示例性核心架構將在以下描述,接著是示例性處理器與計算機架構的說明。
示例性核心架構 順序與亂序核心方塊圖
圖7A係為根據本發明之實施例的方塊圖,闡示示例性順序管線以及示例性暫存器重取名、亂序發送/執行管線兩者。圖7B係為根據本發明之實施例的方塊圖,闡示被包括在處理器中之順序架構核心以及示例性暫存器重取名、亂序發送/執行架構核心兩者的示例性實施方式。圖7A-B中的實現框闡示順序管線與順序核心,而選擇性的額外的虛線框闡示暫存器重取名、亂序發送/執行管線以及核心。有鑒於順序方面係為亂序方面的子集,亂序方面將被說明。
在圖7A中,處理器管線700包括提取級702、長度解碼級704、解碼級706、配置級708、重取名級710、排 程(也被稱為調度或發出)級712、暫存器讀取/記憶體讀取級714、執行級716、回寫/記憶體寫入級718、異常處置級722、以及承諾級724。
圖7B顯示包括耦接到執行引擎單元750之前端單元730、與兩者皆被耦接到記憶單元的處理器核心790。核心790可係為減少指令集計算(RISC)核心、複合指令集計算(CISC)核心、超長指令字元(VLIW)核心、或混成或替代核心類型。作為又另一選擇,核心790可係為專用核心,諸如,例如,網路或通訊核心、壓縮引擎、共處理機核心、通用計算圖形處理單元(GPGPU)核心、圖形核心、或類似物。
前端單元730包括被耦接於指令快取記憶體單元734的分支預測單元732,其被耦接於指令轉譯後備緩衝器(TLB)736,其被耦接於指令提取單元738,其被耦接於解碼單元740。解碼單元740(或解碼器)可解碼指令,並產生作為輸出的一或多個微操作、微代碼登錄項點、微指令、其他指令、或其他控制信號,其係從原始指令解碼、或以其他方法反映、或得到。解碼單元740可使用各種不同機構來被實施。適合機構的實例包括,但不侷限於,查找表、硬體實施、可程式邏輯陣列(PLAs)、微碼唯讀記憶體(ROMs)等等。在一實施例中,核心790包括微代碼ROM或針對特定微指令儲存微代碼的其他媒體(例如,在解碼單元740或在前端單元730之內的以其他方式)。解碼單元740在執行引擎單元750被耦接於重 取名/分配器單元752。
執行引擎單元750包括耦接於退役單元754與一或多個排程器單元組756的重取名/分配器單元752。排程器單元756代表不同排成器的任何數量,其包括保留站、中央指令窗口等等。排程器單元756被耦接於實體暫存器檔案單元758。每一個的實體暫存器檔案單元758代表一或多個實體暫存器檔案,不同的其中一個儲存一或多個不同數據類型,諸如純量整數、純量浮點、封裝整數、封裝浮點、向量整數、向量浮點、狀態(例如,指令指標係為下個被執行的指令的位址)等等。在一實施例中,實體暫存器檔案單元758包含向量暫存器單元、寫入遮罩暫存器單元、以及純量暫存器單元。該些暫存器單元可提供架構向量暫存器、向量遮罩暫存器、以及通用暫存器。實體暫存器檔案單元758係由退役單元754重疊用以闡明重排序緩衝器,在其中重取名宇亂序執行可被實施的各種方式(例如,使用重排序緩衝器與退役暫存器檔案;使用未來檔案、歷史緩衝器、以及退役暫存器檔案;使用暫存器映射與暫存器池;等等)。退役單元754與實體暫存器檔案單元758被耦接於執行叢集760。執行叢集760包括一或多個執行單元762、與一或多個記憶體存取單元組764。執行單元762可執行各種操作(例如,移位、加法、減法、乘法)與在各種數據的類型上(例如,純量浮點、封裝整數、封裝浮點、向量整數、向量浮點)。雖然部份實施例可包括一些專用於特定功能或功能組的執行單元,其他實 施例可僅包括執行所有功能的一執行單元或多執行單元。排程器單元756、實體暫存器檔案758、以及執行叢集760係被顯示為可能為複數個,因為特定實施例為數據/操作的特定類型創造分離管線(例如,純量整數管線、純量浮點/封裝整數/封裝浮點/向量整數/向量浮點管線、與/或記憶體存取管線,其個具有其自己的排程器單元、實體暫存器檔案單元、與/或執行叢集-與且特定實施例被實施在分離記憶體存取管線的情況下,在其中僅管線的執行叢集具有記憶體存取單元764)。應該也被理解的是其中分離管線被使用、一或多個該些管謝可係為亂序發生/執行與其餘的順序。
記憶體存取單元組764被耦接於記憶單元,其包括被耦接於數據快取記憶體單元774的數據TLB單元772,其中數據快取記憶體單元774被耦接於階層2(L2)快取記憶體單元776。在一示例性實施方式中,記憶體存取單元764可包括負載單元、儲存位址單元、儲存數據單元,其中每一個在記憶單元770中被耦接於數據TLB單元772。指令快取記憶體單元734係進一步在記憶單元770中被耦接於階層2(L2)快取記憶體單元776。L2快取記憶體單元776被耦接於快取記憶體的一或多個其他階層、並最終到主記憶體。
藉由實例的方式,示例性暫存器重取名、亂序發生/執行核心架構可如以下所述實現管線700:1)指令提取738執行提取與長度解碼級702與704;2)解碼單元740 執行解碼級706;3)重取名/分配器單元752執行配置級708與重取名級710;4)排程器單元756執行排程級712;5)實體暫存器檔案單元758與記憶單元770執行暫存器讀取/記憶體讀取級714;執行叢集760執行執行級716;6)記憶單元770與實體暫存器檔案單元758執行回寫/記憶體寫入級718;7)各種單元可被涉及在異常處置級722中;以及8)退役單元754與實體暫存器檔案單元執行承諾級724。
核心790可支援一或多個指令集(例如,x86指令集(具有已與較新版本被增加之部分延伸);MIPS Technologies of Sunnyvale,CA的MIPS指令集;ARM Holdings of Sunnyvale,CA的ARM指令集(具有選擇性額外延伸,諸如NEON)),包括本發明所描述的指令。在一實施例中,核心790包括用以支援封裝數據指令集延伸(例如,AVX1、AVX2)的邏輯,從而允許藉由許多多介質應用的操作使用封裝數據被執行。
應該也被理解的是核心可支援多線執行(執行二或多個平行操作或線程組),和也可以各種方式實行多線執行,包括時間切割多線執行、同步多線執行(其中單實體核心提供邏輯核心給每一個線程,其中實體核心係為同步多線執行)、或其組合(例如,時間切割提取與解碼以及之後同步多線執行,諸如在Intel® Hyperthreading中的技術)。
其中暫存器重取名在亂序執行的內文中被描述,應當 被理解的是暫存器重取名可在順序架構中被使用。當所闡示處理器的實施方式也包括分離指令與數據快取記憶體單元734/774以及共享L2快取記憶體單元,替代的實施例可具有用於指令與數據兩者的單內部快取記憶體,諸如,例如,階層1(L1)內部快取記憶體、或內部快取記憶體的多階層。在部分實施例中,系統可包括內部快取記憶體與外部快取記憶體的組合,其係為核心與/或處理器的外部。或者,所有快取記憶體可係為核心與/或處理器的外部。
特定示例性順序核心架構
圖8A-B闡示更特定示例性順序核心架構的方塊圖,其核心係為晶片中數個邏輯區塊的一個(包括相同類型與/或不同類型的其他核心)。取決於應用,邏輯區塊通過高頻帶互連網路(例如,環狀網路)與部分固定功能邏輯、記憶體I/O介面、以及其他必要I/O邏輯溝通。
圖8A係為單處理器核心、連同其到晶粒上互連網路802、以及其層級2(L2)快取記憶體之本地子集804的連結的方塊圖。在一實施例中,指令解碼器800支援具有封裝數據指令集延伸x86指令集。L1快取記憶體806允許低延遲存取快取記憶體到純量與向量單元。當在一實施例中(簡化設計),純量單元808與向量單元810使用分離暫存器組(分別地,純量暫存器812與向量暫存器814),且在期間傳輸的數據被寫入記憶體,以及接著從階層1 (L1)快取記憶體806回讀,本發明的替代實施例可使用不同的方法(例如,使用單暫存器組或包括通信路徑,其允許數據在兩暫存器檔案之間被傳輸,而不被寫入與回讀)。
L2快取記憶體的本地子集804係為部分的總體L2快取記憶體,其被劃分為單獨本地子集,每一個處理器核心一個。每一個處理器核心具有到其自己的L2快取記憶體之本地子集804的直接存取路徑。藉由處理器核心被讀取的數據被儲存在其L2快取記憶體子集804中,並可被快速地存取,與存取其自身本地L2快取記憶體子集的其他處理器核心並行。藉由處理器核心被寫入的數據在其自身L2快取記憶體子集804中被儲存,且必要的話從其他子集被清除。環狀網路確保共享數據的一致性。環狀網路係為雙向,用以允許諸如處理器核心、L2快取記憶體以及其他邏輯區塊在晶片之內與彼此溝通的主體。每一個環狀數據路徑係為每個方向1012位元寬。
圖8B係為圖8A的處理器核心之部分之放大圖的實施例之方塊圖。圖8B包括L1數據快取記憶體804的L1數據快取記憶體806A,以及關於向量單元810與向量暫存器814更詳細的細節。具體而言,向量單元810係為16寬向量處理單元(VPU)(參見16寬ALU 828),其執行一或多個整數、單精度浮點、以及雙精度浮點數指令。VPU支援攪和拌合單元820的暫存器輸出、數值轉換單元822A-B的數值轉換、以及在記憶體輸出上複製單元 824的複製。寫入遮罩暫存器826允許預測結果向量寫入。
具有積體記憶體控制器與圖形的處理器
圖9係為根據本發明之實施例的處理器900的方塊圖,其可具有一個以上的核心、可具有積體記憶體控制器、以及可具有積體圖形。圖9中的實線框闡示具有單核心902A、系統代理910、一或多個匯流排控制器單元916的處理器900,而選擇性的額外虛線框闡示具有多核心902A-N、在系統代理910中的一或多個積體記憶體控制器單元914、以及專用邏輯908的替代性處理器900。
因此,處理器900的不同實施方式可包括:1)具有係為CPU積集圖形與/或科學(通量)邏輯(其可包括一或多個核心)的專用邏輯908、以及係為一或多個通用核心的核心920A-N(例如,通用順序核心、通用亂序核心、或這兩者的組合);2)具有係為大數量的專用核心之核心902A-N的共處理機,該些核心主要傾向用於圖形與/或科學(通量);以及;3)具有係為大數量的通用順序核心之核心902A-N的共處理機。因此,處理器900可係為通用處理器、共處理機或專用處理器,諸如,例如,網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU(通用圖形處理單元)、多重整合核心(MIC)、共處理機(包括30或更多核心)、嵌入式處理器、或類似物。處理器可被實施在一或多個晶片上。處理器900可係為部分 基板的一部份,與/或可被實施在一或多個基板上,其使用任何數量的處理技術,諸如,例如,BiCMOS、CMOS、或NMOS。
記憶體階層包括在核心之內的一或多個快取記憶體的階層、一或多個共享快取記憶體單元906、以及外部記憶體(未顯示),其被耦接於快取記憶體積體記憶體控制器組914。共享快取記憶體單元組906可包括一或多個中階層快取記憶體,諸如階層2(L2)、階層3(L3)、階層4(L4)、或其他快取記憶體的階層、末階快取記憶體(LLC)、與/或他們的組合。雖然在一實施例中,環狀互連單元912互連積體圖形邏輯908、共享快取記憶體單元組906、以及系統代理單元910/積體記憶體控制器單元914,替代性實施例可使用任何數量已知技術來互連該些單元。在一實施例中,在一或多個快取記憶體單元906與核心902-A-N之間一致性被保持。
在部分實施例中,一或多個核心902A-N係能夠多線執行。系統代理910包括協調與操作核心902A-N的元件。系統代理單元910可包括例如功率控制單元(PCU)與顯示單元。PCU可係為或包括邏輯與元件,其被需要用於調節核心902A-N與積體圖形邏輯908的功率狀態。顯示單元係用於驅動一或多個外部地連接顯示器。
依據架構指令集,核心902A-N可係為同質或異質;即二或多個核心902A-N可係能夠執行相同相同指令集,而其他可係能夠僅執行指令集的子集或不同指令集。
示例性計算機架構
圖10-13係為示例性計算機架構的方塊圖。其他在筆記型電腦、桌上型電腦、手持PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、開關、嵌入式處理器、數位訊號處理器(DSP)、圖形裝置、視訊遊戲裝置、機上盒、微控制器、手機、可攜式媒體播放裝置、手持裝置、以及各種其他電子裝置的技術領域中熟知的系統設計與配置也係為合適。一般而言,如本發明揭露之能夠結合處理器與/或其他執行邏輯的範圍廣泛的系統或電子裝置一般係為合適的。
現在參照圖10,闡示根據本發明之一實施例之系統1000的方塊圖。系統1000可包括一或多個處理器1010、1015,其被耦接於控制器集線器1020。在一實施例中,控制器中心1020包括圖形記憶體控制器集線器(GMCH)1090與輸入/輸出集線器(IOH)1050(其可謂在分離的晶片上);GMCH 1090包括被耦接於記憶體1040與共處理機1045的記憶體與圖形控制器;IOH 1050耦接輸入/輸出(I/O)裝置1060於GMCH 1090。或者,記憶體與圖形控制器的一或兩者被整合在處理器之內(如本發明所描述),記憶體1040與共處理機1045直接被耦接於處理器1010、以及在具有IOH 1050之單晶片中的控制器集線器1020。
額外處理器1015之可選擇性在圖10中以虛線表示。 每個處理器1010、1015可包括本發明所描述之一或多個處理核心,且可係為處理器900的部分版本。
記憶體1040可係為,例如,動態隨機存取記憶體(DRAM)、相位改變記憶體(PCM)、或兩者的組合。至少一實施例,控制器集線器1020經由諸如前端匯流排(FSB)的多點滙流排、諸如快速通道互連(QPI)的點對點介面、或類似連結1095與處理器1010、1015溝通。
在一實施例中,共處理機1045可係為專用處理器,諸如,例如,高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、或類似物。在一實施例中,控制器集線器1020可包括積體圖形加速器。
依據包括架構的、微架構的、熱的、功率消耗特性、以及類似物的指標之度量的頻譜,可有實體資源1010、1015之間的各種差異。
在一實施例中,處理器1010執行指令,其控制通用類型之數據處理操作。共處理機指令可被嵌入在指令之中。處理器1010認定共處理機指令為應該藉由附加共處理機1045被執行之類型。因此,處理器1010在共處理機匯流排或其他互連上發生共處理機指令(或控制代表共處理機指令的控制訊號)到共處理機1045。共處理機1045接受與執行接收到的共處理機指令。
現在參照圖11,闡示根據本發明之實施例的第一更特定示例性系統1100的方塊圖。如圖11中所示,多處理 器系統1100係為點對點互連系統,且包括經由點到點互連1150被耦接的第一處理器1170與第二處理器1180。 每一個處理器1170與1180可係為處理器900相同的版本。在本發明之一實施例中,處理器1170與1180分別地係為處理器1010與1015,而共處理機1138係為共處理機1045。在另一實施例中,處理器1170與1180分別地係為處理器1010共處理機1045。
包括積體記憶體控制器(IMC)單元1172與1182的處理器1170與1180被分別地顯示。處理器1170也包括作為其匯流排控制器單元的點對點(P-P)介面1176與1178;類似地,第二處理器1180包括P-P介面1186與1188。處理器1170、1180可經由使用P-P介面電路1178、1188之點對點(P-P)介面1150交換資訊。如圖11所示,IMCs1172與1182耦接處理器於分別的記憶體,即記憶體1132與記憶體1134,其可係為被附加到分別的處理器之主要記憶體的部分。
處理器1170、1180可經由使用點對點介面電路1176、1194、1186、1198的個別P-P介面1152、1154,與晶片組1190各自交換資訊。晶片組1190可經由高效能介面1139選擇性地與共處理機1138交換資訊。在一實施例中,共處理機1138可係為專用處理器,諸如,例如,高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、或類似物。
共享快取記憶體(未顯示)可被包括在任一處理器內 或在兩個處理器的外側,但未經由P-P互連與處理器連接,使得若處理器被放置進低功率模式,任一或兩個處理器的本地快取記憶體資訊可被儲存在共享快取記憶體。
晶片組1190可經由介面1196被耦接於第一匯流排1116。在一實施例中,第一匯流排1116可係為週邊組件互連(PCI)匯流排、或諸如PCI Express匯流排或另一第三代I/O互連匯流排的匯流排,儘管本發明之範疇並不局限於此。
如圖11所示,連同耦接第一匯流排1116於第二匯流排1120的匯流排橋接器1118,各種I/O裝置1114可被耦接於第一匯流排1116。在一實施例中,一或多個額外處理器1115被耦合於第一匯流排1116,諸如共處理機、高通量MIC處理器、GPGPU、加速器(諸如,例如,圖形加速器或數位訊號處理器(DSP)單元)、場域可程式閘陣列、或任何其他處理器。在一實施例中,第二匯流排1120可係為低接腳數(LPC)匯流排。在一實施例中,各種裝置可被耦接於第二匯流排1120,其包括,例如,鍵盤與/或滑鼠1122、通信裝置1127與儲存單元1128,諸如磁碟驅動器或其他大量儲存裝置,其可包括指令/代碼與數據1130。此外,聲頻I/O1124可被耦接於第二匯流排1120。請注意其他架構係為可能。例如,取代圖11之點對點架構,系統可實施多點滙流排或其他該架構。
現在參照圖12,闡示根據本發明之實施例的第二更特定示例性系統1200的方塊圖。像同在圖11與12中的 元件承擔類似參照數字,與圖11的特定方向已經從圖12被省略,以模糊避免圖12的其他方向。
圖12闡示處理器1170、1180可分別地包括積體記憶體與I/O控制邏輯(「CL」)1172與1182。因此,CL1172、1182包括積體記憶體控制器單元與包括I/O控制邏輯。圖12闡示不僅只有記憶體1132、1134被耦接於CL1172、1182,I/O裝置1214也被耦接於控制邏輯1172、1182。傳統I/O裝置1215被耦接於晶片組1190。
現在參照圖13,闡示根據本發明之一實施例之SoC1300的方塊圖。在圖9中的類似元線承擔類似參照數字。另外,虛線框係為更先進SoCs的選擇性特徵。在圖13中,互連單元1302被耦接於:包括一或多核心組202A-N與共享快取記憶體單元906的應用處理器1310;系統代理單元910;匯流排控制器單元916;積體記憶體控制器單元914;一或多個共處理機組1320,其可包括積體圖形邏輯、影像處理器、聲頻處理器、以及影像處理器;靜態隨機存取記憶體(SRAM)單元1330;直接記憶存取(DMA)單元1332;以及耦接於一或多個外部顯示器的顯示器單元1340。在一實施例中,共處理機1320包括專用處理器,諸如,例如,網路或通訊處理器、壓縮引擎、GPGPU、高通量MIC處理器、嵌入式處理器、或類似物。
本發明所揭露機構之實施例可被實施在硬體、軟體、韌體、或該實施方式的組合。本發明之實施例可被實施作 為計算機程式或程式碼,其執行在包含至少一處理器、儲存系統(包括揮發性與非揮發性記憶體以及/或儲存元件)、至少一輸入裝置、以及至少一輸出裝置的可程式系統上。
程式碼,諸如被闡示在圖11中的代碼1130,可被應用於輸入指令用以執行本發明所描述之功能與產生輸出資訊。在已知的方式中,輸出資訊可被應用於一或多個輸出裝置。針對本申請的目的,處理系統包括具有處理器的任何系統,諸如,例如,數位訊號處理器(DSP)、微控制器、特定應用積體電路(ASIC)、微處理器。
程式碼可被應用在高階程序或物件導向程式設計語言中,用以與處理系統溝通。如果需要的話,程式碼也可被應用在組合語言或機器語言中。事實上,本發明所描述的機構並不侷限於任何特定程式語言的範疇中。在任何情況下,語言可係為編譯或解譯語言。
至少一實施例的一或多個方向可藉由被儲存在機器可讀取媒體上的代表指令被實施,其代表處理器之內的各種邏輯,其中當藉由機器讀取時導致機器製造邏輯,用以執行本發明所描述的技術。被稱為「IP核心」的該表示可被儲存在有形、機器可讀取媒體上,與被提供給各個客戶或製造生產單位用以載入製造機器,其實際上製作邏輯或處理器。
該機器可讀儲存媒體可包括但不侷限於,藉由機器或裝置被製造或形成的非暫態、有形安排的物件,其包括例 如硬碟、任何其他類型磁碟的儲存媒體,其包括磁片、光碟、唯讀光碟記憶體(CD-ROMs)、可覆寫光碟(CD-RWs)、與磁光碟、半導體裝置諸如唯讀記憶體(ROMs)、隨機存取記憶體(RAMs)諸如動態隨機存取記憶體(DRAMs)、靜態隨機存取記憶體(SRAMs)、可擦程式設計唯讀記憶體(EPROMs)、快閃記憶體、電子式可清除可程式化唯讀記憶體(EEPROMs)、相位改變記憶體(PCM)、磁性或光學卡、或適用於儲存電子指令的任何其他類性的媒體。
據此,本發明之實施例也包括非暫態、有形的機器可讀取媒體,其包含指令或包含設計數據,諸如硬體描述語言(HDL),其定義本發明所描述之結構、電路、設備、處理器與/或系統特徵。該實施例也可被稱作為程式產品。
仿真(包括二進制轉譯、程式碼轉譯等等)
在部分情況下,指令轉換器可被使用來轉換從來源指令集來的指令為目標指令集。例如,指令轉換器可轉譯(例如,使用靜態二進制轉譯、包括動態編譯的動態二進制轉譯)、變種、仿真、或以其他方式轉換指令為藉由核心被處理的一或多個其他指令。指令轉換器可在軟體、硬體、韌體、或其組合中被實施。指令轉換器可係開啟處理器、關閉處理器、或部分開啟與部分關閉處理器。
圖14係為根據本發明之實施例、使用軟體指令轉換 器轉換來源指令集中的二進制指令為目標指令集中的二進制指令之方塊圖。在所闡示之實施例中,指令轉換器係為軟體指令轉換器,儘管或者指令轉換器可在軟體、硬體、韌體、或其各種組合中被實施。圖14顯示高階層語言1402中的程式可使用x86編譯器1404被編譯,用以產生x86二進制碼1406,其可藉由具有至少一x86指令集核心的處理器1416本機地被執行。具有至少一x86指令集核心1416的處理器代表任何處理器,其藉由相容地執行或以其他方式處理,可執行可執行基本上如具有如具有至少一x86指令集核心之Intel處理器之相同的功能(1)Intelx86指令集核心的指令集的實質部分,或(2)目標係在具有至少一x86指令集核心的Intel處理器上運行的應用或其他軟體的目標碼系統,以為了達成與具有至少一x86指令集核心的Intel處理器實質上相同的結果。x86編譯器1404代表編譯器其係可操作用以產生x86二進制碼1406(例如,目標碼),其可,以有或沒有額外鏈接處理,在具有至少一x86指令集核心的處理器1416上被執行。類似地,圖14闡示在高階層語言1402中的程式可使用替代性指令集編譯器1408被編譯,用以產生替代性指令集二進制碼1410,其可藉由不具有至少一x86指令集核心的處理器1414被本機地執行(例如,具有執行CA,Sunnyvale之MIPS Technologies的MIPS指令集與/或其執行CA,Sunnyvale之ARM Holdings的ARM指令集之核心的處理器)。指令轉換器1412被使用來轉換x86二進 制碼1406為代碼,其可藉由不具有至少一x86指令集核心的處理器1414被本機地執行。轉換代碼不可能與替代性指令集二進制碼1410相同,因為能夠這樣的指令轉換器係難以製造;然而,轉換代碼將完成通用操作且從替代性指令集被組成指令。因此,指令轉換器1412代表軟體、韌體、硬體、或其組合,通過仿真、模擬或其他處理,其允許不具有x86指令集處理器或核心的處理器或其他電子裝置執行x86二進制碼1406。
任何的圖1、3、以及4之所描述的元件、特徵、以及細節也可選擇性地應用於人和的圖2、5、以及6。況且,任何設備所描述的原件、特徵、以及細節也可選擇性地應用於任何的方法,其在實施例中可藉由該設備、與/或以該設備被執行。本發明所描述之任何處理器可被包括在任何本發明所揭露之計算機系統中(例如,圖10-13)。在部分實施例中,計算機系統可包括動態隨機存取記憶體(DRAM)。或者,計算機系統可包括不需要係為刷新或快閃記憶體之揮發性記憶體的類型。
在說明與申請專利範圍中,術語「耦接」與/或「連接」、連同其衍生詞,可能已被使用。該些術語的目的不在成為彼此的同義詞。相反的,在實施例中,「連接」可用於指出兩或多個在物理與/或電上直接與彼此接觸的元素。「耦接」可用於指出兩或多個在物理與/或電上直接與彼此接觸的元素。然而,「耦接」也可表示兩或多個不在物理與/或電上直接與彼此接觸的元素,但仍彼此協作 或相互作用。例如,MMU可通過一或多個中介元件被耦接於TLB。在圖中,箭頭被使用來顯示連接與耦接。
在術語「與/或」可能已被使用。如本發明所使用的,術語「與/或」表示一或其他或兩者(例如,A與/B代表是A或B或A與B兩者)。
在以上的說明中,具體細節已被闡述,以為了提供實施例之通徹的理解。然而,其他實施例可在沒有部分該些特定細節的情況下被實施。本發明的範疇並不藉由以上所提供之特定實例被判定,而是僅由以下的申請專利範圍被判定。在其他實例中,已知電路、結構、裝置、以及操作已被顯示在方塊圖形式中與/或無細節以為了避免混淆描述之理解。被視為適當之處,參照數字、或參照數字的端子部分,已在圖中被重複用以指示對應或類似元件,除此之外除非明確說明或顯而易見,其可選擇性地具有類似或相同的特性。
部分實施例包括包括製造之物件(例如,計算機程式產品),其包括機器可讀取媒體。該媒體可包括機構,其提供機器可讀之形式的資訊,例如儲存。機器可讀取媒體可提供、或被儲存在其上的指令或指令的序列,如果與/或當藉由機器被執行時係為可操作用以導致機器執行與/或結果為機器執行本發明所揭露之一或操作、方法、或技術。
在部分實施例中,機器可讀取媒體可包括非暫態機器可讀取儲存媒體。例如,非暫態機器可讀取儲存媒體可包 括軟式磁片、光學儲存媒體、光碟、光學數據儲存裝置、CD-ROM、磁碟、磁光碟、唯讀記憶體(ROM)、可程式ROM、可擦除和可程式ROM(EPROM)、電可擦除和可程式ROM(EEPROM)、隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、快閃記憶體、相位改變記憶體、相位改變數據儲存材料、非揮發性記憶體、非揮發性數據儲存裝置、非暫態記憶體、非暫態數據儲存裝置、或類似物。非暫態機器可讀取儲存媒體並不包括暫態傳播訊號。在部分實施例中,儲存媒體可包括有形媒體,其包括固形物。
適合機器之實例包括但不侷限於,通用處理器、專用處理器、數字邏輯電路、積體電路、或類似物。適合機器之其他實例包括計算機系統或其他電子裝置,其包括處理器、數位邏輯電路、或積體電路。該計算機系統或電子裝置之實例包括但不局限於,桌上型電腦、膝上型電腦、筆記本電腦、平板電腦、隨身型易網機、智慧型電話、手機、伺服器、網路裝置(例如,路由器與切換器。)、行動上網裝置(MIDs)、媒體播放器、智慧型電視、桌上型易網機、機上盒、以及電動遊戲控制器。
貫穿本說明之「一實施例」、「實施例」、「一或多個實施例」、「部分實施例」的參考,例如,指示特定特徵可被包括在本發明的實現中,但不必要必須如此。類似地,為了簡化本發明與幫助各種發明方向之了解的目的,在說明中的各種特徵係有時在單實施例、圖、或其說明中 被聚集在一起。然而,揭露的此方法不應被解釋為反應本發明要求較在各個申請專利範圍中被明確地列舉敘述之更多特徵的意圖。反之,以下所列之申請專利範圍反應,發明方向較單揭露實施例之所有特徵更少。因此,接著詳述之後的申請專利範圍由此被明確地被合併進詳述中,每個申請專利範圍依據其自身作為本發明之獨立實施例。
示例性實施例
以下實例涉及進一步實施例。實例中的細節可被使用在一或多個實施例中的任何地方。
實例1係為包括至少一轉譯後備緩衝器(TLB)的處理器。每個TLB係用以儲存邏輯位址的轉譯到對應實體位址。處理器也包括記憶體管理單元(MMU)。該MMU,回應於第一邏輯位址到對應實體位址之轉譯的至少一TLB中的遺失,係用以檢查多頁面保護容器頁面與正規頁面(P/R)檢查提示。若該多頁面P/R檢查提示被找到,則該處理器係用以檢查P/R表示。若該多頁面P/R檢查提示沒有被找到,則該處理器不檢查P/R表示。
實例2包括實例1的處理器,在其中該MMU係用以尋找該多頁面P/R檢查提示,以及在其中該多頁面P/R檢查提示係用以應用於複數個頁面。
實例3包括實例1的處理器,在其中該MMU係用以尋找該多頁面P/R檢查提示,以及在其中該多頁面P/R檢查提示係用以應用於對應於該第一邏輯位址之程序的整個 邏輯位址空間。
實例4包括實例1的處理器,在其中該MMU係用以在頁面目錄基底暫存器、核心控制暫存器、以及處理器內容切換狀態保存區之一者中,尋找該多頁面P/R檢查提示。
實例5包括實例1的處理器,在其中該MMU係用以尋找該多頁面P/R檢查提示,以及在其中該多頁面P/R檢查提示係用以應用於邏輯位址範圍,其係為係用以對應於該第一邏輯位址之程序的整個邏輯位置範圍的子集。
實例6包括實例1的處理器,在其中該MMU係用以在階層分頁結構中尋找該多頁面P/R檢查提示,該階層分頁結構係在頁面目錄基底暫存器與頁面表之間的階層層級。
實例7包括實例6的處理器,在其中該多頁面P/R檢查提示係被儲存在頁面目錄表中。
實例8包括實例6的處理器,在其中該多頁面P/R檢查提示係被儲存在頁面目錄指標表中。
實例9包括實例6的處理器,在其中該多頁面P/R檢查提示係被儲存在頁面目錄指標表登錄項之目錄、頁面目錄指標表(PDPT)登錄項、以及頁面目錄表(PD)登錄項之一者中。
實例10包括實例1到9之任一的處理器,在其中該MMU係用以尋找該多頁面P/R檢查提示,以及在其中該MMU係用以檢查該P/R表示,其係為內存空間分頁快取 映射(EPCM)中的EPCM.E位元。
實例11包括實例1到9之任一的處理器,在其中該MMU係用以檢查該多頁面P/R檢查提示,其係用以指示該MMU是否用以檢查對應於該第一邏輯位址之頁面是否係為正規頁面或安全內存空間頁面的該P/R表示。
實例12包括實例1到9之任一的處理器,在其中MMU係用以:(1)若該多頁面P/R檢查提示被找到,則於該至少一TLB中的TLB登錄項中儲存對應於該第一邏輯位址之頁面是否係為保護容器頁面的表示,如藉由該P/R表示所指示;以及(2)若多頁面P/R檢查提示沒有被找到,則於該TLB登錄項中儲存該頁面係為正規頁面之表示。
實例13包括實例1到9之任一的處理器,在其中該MMU係用以尋找該多頁面P/R檢查提示,並且進一步包括記憶體存取單元和記憶體加密與解密單元,在其中:(1)若該P/R表示係用於指示該頁面係為保護容器頁面,則該記憶體加密與解密單元係用以存取對應於該第一邏輯位址之頁面;以及(2)若該P/R表示係用於指示該頁面係為正規頁面,則該記憶體存取單元係用以存取該頁面、旁通該記憶體加密與解密單元。
實例14包括實例1到9之任一的處理器,進一步包含至少一式樣特定暫存器,以及在其中該處理器係用以判定該MMU係用以在該至少一式樣特定暫存器中檢查該P/R檢查提示的至少一位置。
實例15係為用以管理頁面的設備,其包括保護容器頁面與正規頁面轉換模組。轉換模組係用以轉換保護容器頁面為正規頁面,與係用以轉換正規頁面為保護容器頁面。設備也包括多頁面保護容器頁面與正規頁面(P/R)檢查提示模組,其與該轉換模組通訊地耦接。多頁面P/R檢查提示模組係用以儲存多頁面P/R檢查提示。多頁面P/R檢查提示係用以提供提示給處理器,是否處理器係用以檢查多頁面的P/R表示。
實例16包括實例15的設備,在其中該多頁面P/R檢查提示模組係用以儲存該多頁面P/R檢查提示,其係用以應用於程序的整個邏輯位址空間。
實例17包括實例15的設備,在其中該多頁面P/R檢查提示模組係用以儲存該多頁面P/R檢查提示,其係用以應用於係為程序之整個邏輯位址範圍的子集之邏輯位址範圍。
實例18包括實例15的設備,在其中該多頁面P/R檢查提示模組係用以儲存該多頁面P/R檢查提示在頁面目錄基底暫存器與階層分頁結構之一者中,其係在該頁面目錄基底暫存器與頁面表之間的階層層級。
實例19包括實例15的設備,在其中該轉換模組包括保護容器頁面群組模組,用以在頁面中分組保護容器頁面,其階層地在一組階層分頁結構之登錄項的下方,以及在其中該多頁面P/R檢查提示模組係用以在該登錄項儲存該多頁面P/R檢查提示。
實例20包括實例15到19之任一的設備,在其中多頁面P/R檢查提示模組包括P/R檢查提示位置判定模組,用以判定複數個不同可能位置的位置,用以提供包括所有保護容器頁面但不包括所有正規頁面的多頁面P/R檢查提示。
實例21包括實例15到19之任一的設備,在其中轉換模組係用以在內存空間分頁快取映射(EPCM)中儲存P/R表示。
實例22係為製造之物件,其包括非暫態機器可讀取儲存媒體。非暫態機器可讀取儲存媒體儲存指令,若藉由機器被執行,其係用以導致機器執行包括保護容器頁面與正規頁面之間的轉換頁面、並提供多頁面保護容器頁面與正規頁面(P/R)檢查提示給處理器的操作。多頁面P/R檢查提示係用以提示處理器檢查多頁面的P/R表示。
實例23包括實例22之製造的物件,在其中用以提供該多頁面P/R檢查提示之該指令包含若,藉由該機器執行,則用以導致該機器用以提供用以應用於程序之整個邏輯位址之該多頁面P/R檢查提示的指令。
實例24包括實例22之製造的物件,在其中用以提供該多頁面P/R檢查提示之該指令包含若,藉由該機器執行,則用以導致該機器用以提供用以應用於邏輯位址範圍的該多頁面P/R檢查提示的指令,其係為程序之整個邏輯位址範圍的子集。
實例25包括實例22之製造的物件,在其中用以提供 該多頁面P/R檢查提示之該指令包含,若藉由該機器執行,則用以導致該機器以用以在選自頁面目錄表與頁面目錄指標表之頁面目錄基底暫存器與階層分頁結構之一者中,儲存該多頁面P/R檢查提示之指令。
實例26包括實例22到25之任一製造的物件,在其中該儲存媒體進一步儲存指令,若藉由該機器執行則用以導致該機器用以執行操作,其包括在階層地在一組階層分頁結構之登錄項的下方之分頁中的分組保護容器頁面。
實例27包括實例22到25之任一製造的物件,在其中該儲存媒體進一步儲存指令,若藉由該機器執行,則用以導致該機器用以執行操作,其包括判定複數個不同可能位置之位置,用以其包含所有保護容器頁面但不包括所有正規頁面的多頁面P/R檢查提示。
實例28係為系統,其用以處理包括互連的指令、與被耦接於互連的動態隨機存取記憶體(DRAM)。該DRAM儲存指令,其若藉由該系統執行,則用以導致該系統用以執行操作,其包括提供多頁面保護容器頁面與正規頁面(P/R)檢查提示。該系統也包括被耦接於互連的處理器。結合執行分頁表走查的處理器係用以檢查多頁面P/R檢查提示。若該多頁面P/R檢查提示被找到,則該處理器係用以檢查P/R表示,以及若該多頁面P/R檢查提示沒有被找到,則該處理器不檢查P/R表示。
實例29包括實例28的系統,在其中該處理器係用以在頁面目錄基底暫存器、在該頁面目錄基底暫存器與頁面 表之間的階層層級的階層分頁結構以及狀態保存區之一者中,尋找該多頁面P/R檢查提示。
實例30包括實例1到14之任一的處理器,進一步包括用以預測分支的選擇性分支預測單元、與被耦接於分支預測單元之選擇性指令預取單元,指令預取單元用以預取包括指令的預取指令。處理器也可選擇性地包括被耦接於指令預取單元之選擇性階層1(L1)指令快取記憶體、用以儲存指令之L1指令快取記憶體、用以儲存數據之選擇性L1數據快取記憶體、以及用以儲存數據與指令之選擇性階層2(L2)快取記憶體。處理器也可選擇性地包括被耦接於解碼單元的指令提取單元、L1指令快取記憶體、以及L2快取記憶體,其用以預取指令,在部分情況下,從L1指令快取記憶體與L2快取記憶體之一,以及用以提供指令給解碼單元。處理器也可選擇性地包括用以重取名暫存器之暫存器重取名單元、用以排程已從指令被解碼用於執行之一或多個操作的選擇性排程器、以及用以確定指令之執行結果的選擇性確定單元。
實例31係為基本上如本發明所描述之處理器或其他設備。
實例32係為可操作用以執行基本上如本發明所描述之任何方法的處理器或其他設備。
100‧‧‧計算機系統
102‧‧‧處理器
103‧‧‧執行軟體
104‧‧‧核心
105‧‧‧記憶體存取正規頁面
106‧‧‧記憶體存取保護容器頁面
107‧‧‧記憶體存取單元
108‧‧‧轉譯後備緩衝器
109-1‧‧‧第一登錄項
109-N‧‧‧第N登錄項
110-1‧‧‧P/R表示
110-N‧‧‧P/R表示
111‧‧‧記憶體加密/解密單元
112‧‧‧記憶體管理單元(MMU)
113‧‧‧多頁面P/R檢查提示偵測與基於提示選擇性檢查邏輯
114‧‧‧耦接機構
115‧‧‧P表示
116‧‧‧R表示
117‧‧‧選擇性檢查P/R表示
118‧‧‧分頁表走查
119‧‧‧可轉換記憶體管理模組
120‧‧‧記憶體
121‧‧‧正規記憶體
122‧‧‧特權系統軟體模組
123‧‧‧P/R轉換模組
124‧‧‧多頁面P/R檢查提示模組
125‧‧‧應用模組
130‧‧‧轉換記憶體
131‧‧‧保護容器頁面
132‧‧‧正規頁面
133‧‧‧保護容器頁面元資料
134-1‧‧‧第一登錄項
134-M‧‧‧第M登錄項
135-1‧‧‧P/R表示
135-M‧‧‧P/R表示
136‧‧‧階層分頁結構
137‧‧‧多頁面P/R檢查提示
138‧‧‧頁面表

Claims (25)

  1. 一種處理器,其包含:至少一轉譯後備緩衝器(TLB),每個TLB用以儲存邏輯位址的轉譯到對應實體位址;以及記憶體管理單元(MMU),該MMU,回應於第一邏輯位址到對應實體位址之轉譯的該至少一TLB中的遺失,用以:檢查多頁面保護容器頁面與正規頁面(P/R)檢查提示;若該多頁面P/R檢查提示被找到,則檢查P/R表示;以及若該多頁面P/R檢查提示沒有被找到,則不檢查該P/R表示。
  2. 如申請專利範圍第1項所述之處理器,其中該MMU係用以尋找該多頁面P/R檢查提示,以及其中該多頁面P/R檢查提示係用以應用於複數個頁面。
  3. 如申請專利範圍第1項所述之處理器,其中該MMU係用以尋找該多頁面P/R檢查提示,以及其中該多頁面P/R檢查提示係用以應用於對應於該第一邏輯位址之程序的整個邏輯位址空間。
  4. 如申請專利範圍第1項所述之處理器,其中該MMU係用以在頁面目錄基底暫存器、核心控制暫存器、以及處理器內容切換狀態保存區之一者中,尋找該多頁面P/R檢查提示。
  5. 如申請專利範圍第1項所述之處理器,其中該MMU係用以尋找該多頁面P/R檢查提示,以及其中該多頁面P/R檢查提示係用以應用於邏輯位址範圍,其係為係用以對應於該第一邏輯位址之程序的整個邏輯位置範圍的子集。
  6. 如申請專利範圍第1項所述之處理器,其中該MMU係用以在階層分頁結構中尋找該多頁面P/R檢查提示,該階層分頁結構係在頁面目錄基底暫存器與頁面表之間的階層層級。
  7. 如申請專利範圍第6項所述之處理器,其中該多頁面P/R檢查提示係被儲存在頁面目錄表中。
  8. 如申請專利範圍第6項所述之處理器,其中該多頁面P/R檢查提示係被儲存在頁面目錄指標表中。
  9. 如申請專利範圍第6項所述之處理器,其中該多頁面P/R檢查提示係被儲存在頁面目錄指標表登錄項之目錄、頁面目錄指標表(PDPT)登錄項、以及頁面目錄表(PD)登錄項之一者中。
  10. 如申請專利範圍第1項所述之處理器,其中該MMU係用以尋找該多頁面P/R檢查提示,以及其中該MMU係用以檢查該P/R表示,其係為內存空間分頁快取映射(EPCM)中的EPCM.E位元。
  11. 如申請專利範圍第1項所述之處理器,其中該MMU係用以檢查該多頁面P/R檢查提示,其係用以指示該MMU是否用以檢查對應於該第一邏輯位址之頁面是否 係為正規頁面或安全內存空間頁面的該P/R表示。
  12. 如申請專利範圍第1項所述之處理器,其中該MMU係用以:若該多頁面P/R檢查提示被找到,則於該至少一TLB中的TLB登錄項中儲存對應於該第一邏輯位址之頁面是否係為保護容器頁面的表示,如藉由該P/R表示所指示;以及若該多頁面P/R檢查提示沒有被找到,則於該TLB登錄項中儲存該頁面係為正規頁面之表示。
  13. 如申請專利範圍第1項所述之處理器,其中該MMU係用以尋找該多頁面P/R檢查提示,並且進一步包含記憶體存取單元和記憶體加密與解密單元,其中:若該P/R表示係用於指示該頁面係為保護容器頁面,則該記憶體加密與解密單元係用以存取對應於該第一邏輯位址之頁面;以及若該P/R表示係用於指示該頁面係為正規頁面,則該記憶體存取單元係用以存取該頁面、旁通該記憶體加密與解密單元。
  14. 如申請專利範圍第1項所述之處理器,進一步包含至少一式樣特定暫存器,以及其中該處理器係用以判定該MMU係用以在該至少一式樣特定暫存器中檢查該P/R檢查提示的至少一位置。
  15. 一種用以管理頁面的裝置,其包含:保護容器頁面與正規頁面轉換模組,該轉換模組用以 轉換保護容器頁面為正規頁面,以及用以轉換正規頁面為保護容器頁面;以及多頁面保護容器頁面與正規頁面(P/R)檢查提示模組,其與該轉換模組通訊地耦接,該多頁面P/R檢查提示模組用以儲存多頁面P/R檢查提示,其中該多頁面P/R檢查提示係用以提供處理器是否係用以檢查用於多頁面P/R表示之提示給該處理器。
  16. 如申請專利範圍第15項所述之設備,其中該多頁面P/R檢查提示模組係用以儲存該多頁面P/R檢查提示,其係用以應用於程序的整個邏輯位址空間。
  17. 如申請專利範圍第15項所述之設備,其中該多頁面P/R檢查提示模組係用以儲存該多頁面P/R檢查提示,其係用以應用於係為程序之整個邏輯位址範圍的子集之邏輯位址範圍。
  18. 如申請專利範圍第15項所述之設備,其中該多頁面P/R檢查提示模組係用以儲存該多頁面P/R檢查提示在頁面目錄基底暫存器與階層分頁結構之一者中,其係在該頁面目錄基底暫存器與頁面表之間的階層層級。
  19. 如申請專利範圍第15項所述之設備,其中該轉換模組包含保護容器頁面群組模組,用以在頁面中分組保護容器頁面,其階層地在一組階層分頁結構之登錄項的下方,以及其中該多頁面P/R檢查提示模組係用以在該登錄項儲存該多頁面P/R檢查提示。
  20. 一種製造之物件,其包含非暫時性機器可讀取儲 存媒體,該非暫時性機器可讀取儲存媒體儲存指令,其若藉由機器執行則用以導致該機器執行操作,包括:在保護容器頁面與正規頁面之間轉換頁面;以及提供多頁面保護容器頁面與正規頁面(P/R)檢查提示給處理器,其中該多頁面P/R檢查提示係用以提示該處理器檢查用於多頁面之P/R表示。
  21. 如申請專利範圍第20項所述之製造之物件,其中用以提供該多頁面P/R檢查提示之該指令包含若藉由該機器執行則用以導致該機器用以提供用以應用於程序之整個邏輯位址之該多頁面P/R檢查提示的指令。
  22. 如申請專利範圍第20項所述之製造之物件,其中用以提供該多頁面P/R檢查提示之該指令包含若藉由該機器執行則用以導致該機器用以在選自頁面目錄表與頁面目錄指標表之頁面目錄基底暫存器與階層分頁結構之一者中,儲存該多頁面P/R檢查提示之指令。
  23. 如申請專利範圍第20項所述之製造之物件,其中該儲存媒體進一步儲存指令,若藉由該機器執行則用以導致該機器用以執行操作,其包含階層地在一組階層分頁結構之登錄項的下方之分頁中的分組保護容器頁面。
  24. 一種用以處理指令的系統,其包含:互連;與該互連耦接之動態隨機存取記憶體(DRAM),該DRAM儲存指令,其若藉由該系統執行則用以導致該系統用以執行操作,其包含提供多頁面保護容器頁面與正規 頁面(P/R)檢查提示;以及與該互連耦接之處理器,該處理器結合執行分頁表走查用以:檢查該多頁面P/R檢查提示;若該多頁面P/R檢查提示被找到,則檢查P/R表示;以及若該多頁面P/R檢查提示沒有被找到,則不檢查該P/R表示。
  25. 如申請專利範圍第24項所述之系統,其中該處理器係用以在頁面目錄基底暫存器、在該頁面目錄基底暫存器與頁面表之間的階層層級的階層分頁結構以及狀態保存區之一者中,尋找該多頁面P/R檢查提示。
TW105115784A 2015-06-26 2016-05-20 用於可轉換記憶體的頁面的處理器與其系統 TWI713527B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/751,902 2015-06-26
US14/751,902 US20160378684A1 (en) 2015-06-26 2015-06-26 Multi-page check hints for selective checking of protected container page versus regular page type indications for pages of convertible memory

Publications (2)

Publication Number Publication Date
TW201717029A true TW201717029A (zh) 2017-05-16
TWI713527B TWI713527B (zh) 2020-12-21

Family

ID=57586393

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105115784A TWI713527B (zh) 2015-06-26 2016-05-20 用於可轉換記憶體的頁面的處理器與其系統

Country Status (5)

Country Link
US (1) US20160378684A1 (zh)
EP (1) EP3314523A4 (zh)
CN (1) CN107624182A (zh)
TW (1) TWI713527B (zh)
WO (1) WO2016209534A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI787290B (zh) * 2017-06-28 2022-12-21 英商Arm股份有限公司 次領域

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10664179B2 (en) * 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10346641B2 (en) * 2016-09-23 2019-07-09 Intel Corporation Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory
EP3355190A1 (en) * 2017-01-31 2018-08-01 Sony Corporation Device and system for maintaining a ditributed ledger
US11385926B2 (en) * 2017-02-17 2022-07-12 Intel Corporation Application and system fast launch by virtual address area container
US11210232B2 (en) 2019-02-08 2021-12-28 Samsung Electronics Co., Ltd. Processor to detect redundancy of page table walk
EP3819775A1 (en) * 2019-11-06 2021-05-12 Microsoft Technology Licensing, LLC Confidential computing mechanism

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5619671A (en) * 1993-04-19 1997-04-08 International Business Machines Corporation Method and apparatus for providing token controlled access to protected pages of memory
US7363491B2 (en) * 2004-03-31 2008-04-22 Intel Corporation Resource management in security enhanced processors
GB0415850D0 (en) 2004-07-15 2004-08-18 Imagination Tech Ltd Memory management system
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
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
US20080086603A1 (en) * 2006-10-05 2008-04-10 Vesa Lahtinen Memory management method and system
US8516221B2 (en) * 2008-10-31 2013-08-20 Hewlett-Packard Development Company, L.P. On-the fly TLB coalescing
US8397049B2 (en) 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
US8266382B1 (en) 2009-09-28 2012-09-11 Nvidia Corporation Cache interface protocol including arbitration and hints
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US8832452B2 (en) * 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves
US9086989B2 (en) 2011-07-01 2015-07-21 Synopsys, Inc. Extending processor MMU for shared address spaces
US9110830B2 (en) 2012-01-18 2015-08-18 Qualcomm Incorporated Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
US9323692B2 (en) * 2014-04-17 2016-04-26 International Business Machines Corporation Managing translation of a same address across multiple contexts using a same entry in a translation lookaside buffer
US9954681B2 (en) * 2015-06-10 2018-04-24 Nxp Usa, Inc. Systems and methods for data encryption

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI787290B (zh) * 2017-06-28 2022-12-21 英商Arm股份有限公司 次領域

Also Published As

Publication number Publication date
EP3314523A1 (en) 2018-05-02
US20160378684A1 (en) 2016-12-29
WO2016209534A1 (en) 2016-12-29
EP3314523A4 (en) 2019-02-27
CN107624182A (zh) 2018-01-23
TWI713527B (zh) 2020-12-21

Similar Documents

Publication Publication Date Title
TW201717029A (zh) 對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示
US10078519B2 (en) Apparatus and method for accelerating operations in a processor which uses shared virtual memory
CN106716434B (zh) 具有独立的用户域与管理程序域的存储器保护密钥架构
ES2903001T3 (es) Aparatos y métodos de hardware para detección de corrupción de memoria
US9335943B2 (en) Method and apparatus for fine grain memory protection
US9959409B2 (en) Processors, methods, systems, and instructions to change addresses of pages of secure enclaves
TWI516937B (zh) 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體
US20150007196A1 (en) Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores
US9317441B2 (en) Indexed page address translation to reduce memory footprint in virtualized environments
US20180095892A1 (en) Processors, methods, systems, and instructions to determine page group identifiers, and optionally page group metadata, associated with logical memory addresses
EP3516577A1 (en) Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory
TWI752031B (zh) 孔徑存取處理器、方法、系統及指令
US9405937B2 (en) Method and apparatus for securing a dynamic binary translation system
KR101787851B1 (ko) 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법
US9183161B2 (en) Apparatus and method for page walk extension for enhanced security checks
CN111164581A (zh) 用于修补页的系统、方法和装置
EP4156008A1 (en) Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier
US20220398017A1 (en) Independently controlled dma and cpu access to a shared memory region
EP2889757B1 (en) A load instruction for code conversion
US20230093247A1 (en) Memory access tracker in device private memory