TWI712887B - 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體 - Google Patents

用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體 Download PDF

Info

Publication number
TWI712887B
TWI712887B TW105118408A TW105118408A TWI712887B TW I712887 B TWI712887 B TW I712887B TW 105118408 A TW105118408 A TW 105118408A TW 105118408 A TW105118408 A TW 105118408A TW I712887 B TWI712887 B TW I712887B
Authority
TW
Taiwan
Prior art keywords
memory
range
data
processor
chip
Prior art date
Application number
TW105118408A
Other languages
English (en)
Other versions
TW201717030A (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 TW201717030A publication Critical patent/TW201717030A/zh
Application granted granted Critical
Publication of TWI712887B publication Critical patent/TWI712887B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本文揭露一種處理器,該處理器實施用於記憶體位址範圍的支持可組態安全性級別的技術。在一項實施例中,該處理器包括:一處理核心;一記憶體控制器,其在操作上耦合至該處理核心,以存取在一晶片外記憶體中的資料;以及一記憶體加密引擎(MEE),其在操作上耦合至該記憶體控制器。該MEE係用以回應於偵測到相關於一記憶體位置的一記憶體存取操作(該記憶體位置由與該晶片外記憶體有關聯之一記憶體位址範圍內的一記憶體位址所識別),基於儲存在一安全性範圍暫存器上的一值,來識別與該記憶體位置有關聯的一安全性級別指示器。該MEE進一步有鑑於該安全性級別指示器,來存取與該晶 片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項。

Description

用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體
本揭露的實施例通常關於電腦系統,且更具體地但不限於用於記憶體位址範圍的支持可組態安全性級別。
在一電腦系統內之應用程式與資料的安全執行與完整性日益重要。多種已知的安全性技術無法充分地以彈性但可靠的方式使應用程式與資料安全。
100‧‧‧處理裝置
110‧‧‧處理器核心
120‧‧‧記憶體控制器單元
130‧‧‧記憶體加密引擎
140‧‧‧快取單元
142‧‧‧級別1快取
144‧‧‧級別2快取
146‧‧‧最後級別快取
150‧‧‧可組態安全性範圍暫存器
155‧‧‧轉譯後備緩衝器
200‧‧‧系統
201‧‧‧記憶體
202‧‧‧安全性級別指示器
203‧‧‧記憶體位址
205‧‧‧記憶體位址
207‧‧‧記憶體位址
210‧‧‧記憶體範圍
220‧‧‧記憶體範圍
230‧‧‧記憶體範圍
300‧‧‧資料結構
310‧‧‧L3計數器
315‧‧‧L2中間元資料
320‧‧‧L2計數器
325‧‧‧L0中間元資料
330‧‧‧L0計數器
340‧‧‧版本方塊
345‧‧‧版本節點
350‧‧‧訊息認證碼節點
360‧‧‧加密資料線
400‧‧‧方法
410‧‧‧方塊
415‧‧‧方塊
420‧‧‧方塊
430‧‧‧方塊
440‧‧‧方塊
450‧‧‧方塊
460‧‧‧方塊
470‧‧‧方塊
480‧‧‧方塊
490‧‧‧方塊
500‧‧‧處理器
501‧‧‧處理器管線
502‧‧‧提取階段
504‧‧‧長度解碼階段
506‧‧‧解碼階段
508‧‧‧分派階段
510‧‧‧更名階段
512‧‧‧排程階段
514‧‧‧暫存器讀取/記憶體讀取階段
516‧‧‧執行階段
518‧‧‧回寫/記憶體寫入階段
522‧‧‧異常處理階段
524‧‧‧提交階段
530‧‧‧前端單元
532‧‧‧分支預測單元
534‧‧‧指令快取單元
536‧‧‧指令轉譯後備緩衝器
538‧‧‧指令提取單元
540‧‧‧解碼單元
550‧‧‧執行引擎單元
552‧‧‧更名/分派器單元
554‧‧‧退休單元
556‧‧‧排程器單元
558‧‧‧實體暫存器檔案單元
560‧‧‧執行叢集
562‧‧‧執行單元
564‧‧‧記憶體存取單元
570‧‧‧記憶體單元
572‧‧‧資料轉譯後備緩衝器單元
574‧‧‧資料快取單元
576‧‧‧級別2快取單元
580‧‧‧資料預取器
590‧‧‧功率管理單元
600‧‧‧處理器
601‧‧‧依序前端
602‧‧‧排程器
603‧‧‧亂序執行引擎
604‧‧‧排程器
606‧‧‧排程器
608‧‧‧暫存器檔案
610‧‧‧暫存器檔案
611‧‧‧執行方塊
612‧‧‧位址產生單元
614‧‧‧位址產生單元
616‧‧‧快算術邏輯單元
618‧‧‧快算術邏輯單元
620‧‧‧慢算術邏輯單元
622‧‧‧浮動點算術邏輯單元
624‧‧‧浮動點移動單元
626‧‧‧指令預取器
628‧‧‧指令解碼器
630‧‧‧軌跡快取
632‧‧‧微碼唯讀記憶體
634‧‧‧微操作佇列
700‧‧‧多處理器系統
714‧‧‧輸入/輸出裝置
716‧‧‧第一匯流排
718‧‧‧匯流排橋接器
720‧‧‧第二匯流排
722‧‧‧鍵盤及/或滑鼠
724‧‧‧音訊輸入/輸出
727‧‧‧通訊裝置
728‧‧‧儲存單元
730‧‧‧指令/代碼及資料
732‧‧‧記憶體
734‧‧‧記憶體
738‧‧‧高性能圖形電路
739‧‧‧高性能圖形介面
750‧‧‧點對點互連
750‧‧‧點對點介面
752‧‧‧點對點介面
754‧‧‧點對點介面
770‧‧‧第一處理器
776‧‧‧點對點介面
772‧‧‧積體記憶體控制器單元
778‧‧‧點對點介面
780‧‧‧第二處理器
782‧‧‧積體記憶體控制器單元
786‧‧‧點對點介面
788‧‧‧點對點介面
790‧‧‧晶片組
794‧‧‧點對點介面電路
796‧‧‧介面
798‧‧‧點對點介面電路
800‧‧‧系統
810‧‧‧處理器
815‧‧‧處理器
820‧‧‧圖形記憶體控制器集線器
840‧‧‧記憶體
845‧‧‧顯示器
850‧‧‧輸入/輸出控制器集線器
860‧‧‧外部圖形裝置
870‧‧‧周邊裝置
895‧‧‧前側匯流排
900‧‧‧系統
914‧‧‧輸入/輸出裝置
915‧‧‧舊有輸入/輸出裝置
932‧‧‧記憶體
934‧‧‧記憶體
952‧‧‧點對點互連
954‧‧‧點對點互連
970‧‧‧處理器
972‧‧‧控制邏輯
976‧‧‧點對點介面
978‧‧‧點對點介面
980‧‧‧處理器
982‧‧‧控制邏輯
986‧‧‧點對點介面
988‧‧‧點對點介面
990‧‧‧晶片組
994‧‧‧點對點介面
996‧‧‧介面
998‧‧‧點對點介面
1000‧‧‧系統單晶片
1002A-N‧‧‧核心
1006‧‧‧共享快取單元
1008‧‧‧積體圖形邏輯
1010‧‧‧系統媒介單元
1012‧‧‧互連單元
1014‧‧‧積體記憶體控制器單元
1016‧‧‧匯流排控制器單元
1018‧‧‧媒體處理器
1020‧‧‧應用處理器
1024‧‧‧影像處理器
1026‧‧‧音訊處理器
1028‧‧‧視訊處理器
1030‧‧‧靜態隨機存取記憶體單元
1032‧‧‧直接記憶體存取單元
1040‧‧‧顯示單元
1100‧‧‧系統單晶片
1106‧‧‧核心
1107‧‧‧核心
1108‧‧‧快取控制
1109‧‧‧匯流排介面單元
1110‧‧‧互連
1110‧‧‧級別2快取
1115‧‧‧圖形處理單元
1120‧‧‧視訊編解碼器
1125‧‧‧視訊介面
1128‧‧‧機器可存取儲存媒體
1130‧‧‧用戶識別模組
1140‧‧‧啟動唯讀記憶體
1145‧‧‧快閃控制器
1150‧‧‧周邊控制
1160‧‧‧動態隨機存取記憶體
1165‧‧‧快閃
1170‧‧‧藍芽模組
1175‧‧‧3G數據機
1180‧‧‧全球定位系統
1185‧‧‧無線上網
1200‧‧‧電腦系統
1202‧‧‧處理裝置
1204‧‧‧主要記憶體
1206‧‧‧靜態記憶體
1208‧‧‧網路介面裝置
1210‧‧‧視訊顯示單元
1212‧‧‧文數輸入裝置
1214‧‧‧游標控制裝置
1216‧‧‧訊號產生裝置
1218‧‧‧資料儲存裝置
1220‧‧‧網路
1222‧‧‧圖形處理單元
1224‧‧‧機器可存取儲存媒體
1226‧‧‧處理邏輯
1228‧‧‧視訊處理單元
1230‧‧‧匯流排
1232‧‧‧音訊處理單元
從下文產生的實施方式以及從本揭露之各種實施例的附圖,將更完整地理解本揭露。不過,該等圖式不應該使本揭露限制於該等具體實施例,反而卻僅僅用於解釋與理解。
圖1繪示根據一項實施例之處理裝置的方塊圖。
圖2繪示一種系統,其包括根據一項實施例之用於記憶體位址範圍的支持可組態安全性級別的記憶體。
圖3示意地繪示實例資料結構,其應用來儲存加密元資料,以實施根據本揭露的一項或多項態樣之完整性與重播保護。
圖4繪示根據一項實施例之用於記憶體位址範圍的支持可組態安全性級別之方法的流程圖。
圖5A係為一方塊圖,其繪示根據一項實施例之用於處理器的微架構。
圖5B係為一方塊圖,其繪示根據一項實施例的依序管線與暫存器更名階段、亂序發出/執行管線。
圖6係為一方塊圖,其繪示根據一項實施方案的電腦系統。
圖7係為一方塊圖,其繪示可使用本揭露之實施例的系統。
圖8係為一方塊圖,其繪示可使用本揭露之實施例的系統。
圖9係為一方塊圖,其繪示可使用本揭露之實施例的系統。
圖10係為一方塊圖,其繪示可使用本揭露之實施例的系統單晶片(SoC)。
圖11係為一方塊圖,其繪示可使用本揭露之實施例的SoC設計。
圖12繪示一方塊圖,其繪示可使用本揭露之實施例的電腦系統。
【發明內容及實施方式】
本文說明用於記憶體位址範圍的支持可組態安全性級別之技術。在一項實施例中,提供一種處理器。該處理器可包含處理邏輯,該處理邏輯經組態以實施Software Guard Extension(SGX®)技術,以提供記憶體保護。「記憶體保護」通常可包含經由加密、完整性及/或重播保護來保護資料的機密性。完整性保護可抵禦攻擊,其中,例如,在解密之前,攻擊者可能修改記憶體中的加密資料。重播保護可防止攻擊,其中,例如,攻擊者造成解密操作重複,以得到對受保護資料的未授權存取。
SGX®使用特定的處理器指令,該等指令提供一安全、硬體加密的計算與儲存環境(例如,安全指定位址空間)。「安全指定位址空間」在本文中應該意指在應用程式之位址空間內的保護區域,其致使該應用程式能維持隱密且保護其代碼的完整性。可防止從不存在於指定位址空間中的應用程式存取到與安全指定位址空間有關聯的資料,既使特權應用程式(諸如BIOS、操作系統或虛擬機器監視器)嘗試此種存取。進一步就此觀點而言,安全指定位址空間的資料內容無法藉由特權代碼或者即使施加硬體探針到記憶體匯流排來破解。
SGX®可實施用於保護安全指定位址空間之資料的許多技術。在一項實施例中,SGX®可使用記憶體加密引擎(MEE)硬體,以用於資料之加密,以及用於那資料的完整性與重播保護。(MEE)可將移動到不受信用系統記憶體的資料加密,該不受信用系統記憶體相對於該處理器則是在 外面。當記憶體頁儲存在系統記憶體中時,MEE使用用以加密資料的密碼編譯機構以及用以提供完整性與機密性的其他技術。當從系統記憶體讀取資料時,MEE解密且完整性檢測資料且隨後將其置於處理器的內部快取中。
為了提供受保護資料的完整性保護,MEE可儲存訊息認證碼(MAC)值,該處理器快取的各資料線則移動到系統記憶體。當從系統記憶體讀取資料線時,可藉由計算資料線的MAC值且比較經計算的MAC值與所儲存的MAC值,來驗證其完整性。在特定的實施方案中,MAC儲存在系統記憶體中,且因此亦需受到保護,免於被存取或竄改。藉由儲存資料線的版本(VER)(每次當將資料線寫回到系統記憶體時,該資料線則遞增),重播保護可進一步由處理器提供。
為了保護MAC與VER值本身,可應用包含複數個節點的重播保護樹。該樹的各節點係藉由基於節點內容來計算的嵌入MAC(eMAC)以及儲存在該樹之下一級別上的計數器值來驗證。MAC、VER及計數器的值在本文中集體稱為「加密元資料」。重播保護樹可具有可變數量的級別,其係在各級別上包括一種計數器。為了確保重播保護,藉由從儲存用於資料線之VER值的終端節點開始沿著樹走,可驗證從外部記憶體讀取的各資料線。在重播保護樹中的級別數目,隨著受保護記憶體區域的尺寸而線性成長。例如,為了保護64GB記憶體區域,可利用7級的樹,因此需要8KB的頂級計數器。因而,就資料線的各 讀取而言,將必須從系統記憶體載入七條額外的記憶體線,因此相較於未受保護記憶體讀取將需要者,會產生必需之資料記憶體頻寬數量七倍的負擔。
在一些情況中,許多系統會需要高數量的記憶體頻寬。例如,一些系統應用程式可要求從記憶體往返移動的高資料率。此外,一些系統可具有在安全指定位址空間內運行之整個應用程式需要的使用模型。在此等情形中,系統性能係高度取決於對應用程式可用之記憶體頻寬的數量,其可受到與重播保護樹有關聯之頻寬需求所影響。
本揭露的實施例提供一機構,以允許使用者(諸如系統管理員),組態介於安全性與性能之間的平衡。在一些實施例中,安全性範圍暫存器可經組態,以便使用重播保護樹來最小化保護資料的頻寬與性能影響。在一項實施例中,安全性範圍暫存器可包含安全性級別指示器,該安全性級別指示器可使用來將受保護記憶體的全部範圍分成至少兩個子目錄:1)僅加密範圍,以及2)全保護範圍。在全保護範圍中,處理器可使用加密硬體,諸如MEE,以提供加密、完整性及重播保護。在僅加密的範圍中,加密硬體可使用來僅加密資料線(在將它們發送到記憶體之前)。因為加密硬體不需要存取加密元資料(例如,MAC與VER資料),所以它無法明顯地影響處理器的頻寬應用,因此可增加系統性能。
圖1繪示處理裝置100的方塊圖,其可支持根據一項實施例的可組態安全性範圍功能。處理裝置100通常可稱 為「處理器」或「CPU」。「處理器」或「CPU」在本文中應該意指能夠執行指令編碼算術、邏輯的、或I/O操作的裝置。在一項說明性實例中,處理器可包括算術邏輯單元(ALU)、控制單元、及複數個暫存器。在進一步態樣中,處理器可包括一個或多個處理核心,且因此可以是一般能夠處理單一指令管線的單一核心處理器,或可同時處理多數指令管線的多核心處理器。在另一態樣中,處理器可能以單一積體電路、兩個或更多個積體電路來實施,或者可能是多晶片模組的組件(例如,其中,各別微處理器晶粒包括在單一積體電路封裝中且因此共享單一插座)。
如圖1所示,處理裝置100可包括多種組件。在一項實施例中,處理裝置100可包括一個或多個處理器核心110及記憶體控制器單元120,在其他組件之中,其如圖式地彼此耦合。處理裝置100亦可包括通訊組件(未圖示),該通訊組件可使用於處理裝置100之各種組件之間的點對點通訊。處理裝置100可使用於計算系統(未圖示),該計算系統包括但不限於桌上型電腦、平板電腦、膝上型電腦、網路筆記型、筆記型電腦、個人數位助理(PDA)、伺服器、工作站、蜂巢式電話、行動計算裝置、智慧型手機、網際網路應用裝置或任何其他類型的計算裝置。在另一實施例中,處理裝置100可使用於系統單晶片(SoC)系統。在一項實施例中,SoC可包含處理裝置100及記憶體。用於一個此系統的記憶體係動態隨機存取記憶體(DRAM)記憶體。DRAM記憶體可位於與處理器及其他 系統組件的相同晶片上。此外,諸如記憶體控制器或圖形控制器的其他邏輯方塊亦可位於晶片上。
處理器核心110可執行處理裝置100的指令。該等指令可包括但不限於用以提取指令的預取邏輯、用以解碼指令的解碼邏輯、用以執行指令的執行邏輯以及類似物。計算系統可代表基於Pentium®處理器家族的處理系統及/或可購自Santa Clara,California的Intel® Corporation的微處理器,雖然亦可使用其他系統(包括具有其他微處理器、工程化工作站、機上盒以及類似物的計算裝置)。在一項實施例中,樣本計算系統可執行操作系統、嵌入式軟體、及/或圖形使用者介面之版本。因此,本揭露的實施例不限於硬體電路與軟體的任何具體組合。
在說明性實例中,處理核心110可具有微架構,該微架構包括使用以實施指令集架構(ISA)的處理器邏輯與電路。具有不同微架構的處理器核心可共享至少一部份的共通指令集。例如,ISA的相同暫存器架構可能在使用多種技術的不同微架構中、以不同方式實施,其包括專屬實體暫存器、一個或多個使用暫存器更名機構(例如,使用暫存器別名表(RAT)、重排序緩衝器(ROB)及退休暫存器檔案)的動態配置實體暫存器。
記憶體控制器120可施行致使處理裝置100存取且與記憶體(未圖示)通訊的功能,該記憶體包括揮發性記憶體及/或非揮發性記憶體。在一項實施例中,除了別的事物以外,記憶體控制器120還可耦合至記憶體加密引擎 (MEE)130。MEE 130在本文中應該意指以硬體實施的處理邏輯,該處理邏輯將處理裝置100與在處理器晶片外的記憶體(諸如隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM))之間的資料流量加密。在一些實施例中,MEE 130可位於與處理裝置100有關聯的處理器晶粒上,而記憶體則位於處理器晶粒外。
處理裝置100包括用以快取指令及/或資料的快取單元140。快取單元140包括但不限於級別1(L1)142、級別2(L2)144、以及最後級別快取(LLC)146、或在處理裝置100內之任何其他組態的快取記憶體。如圖示,快取單元140可整合成處理核心110。快取單元140可儲存由處理裝置100之一個或多個組件所利用的資料(例如,包括指令)。例如,快取單元140可藉由處理裝置100的組件來局部快取資料,以用於更快速的存取。在一些實施例中,L1快取142與L2快取144可轉移資料往返LLC 146。在一項實施例中,記憶體控制器120可連接至LLC 146以及連接至MEE 130。記憶體控制器120可將存在於可能在處理裝置100外面之記憶體上的受保護資料存取。
在一些實施例中,處理裝置100可利用SGX®技術,以在安全環境中保護至少一部份的記憶體。在一項實施例中,處理裝置100可支持安全指定位址空間(未圖示),該安全指定位址空間可代表任何邏輯、電路、硬體(諸如MEE 130)或由處理核心110執行的其他結構,以用於產生且維持用於該部份記憶體的安全環境。此一環境的各實 例可視為安全指定位址空間,雖然本發明的實施例不限於使用安全指定位址空間作為安全環境的那些。在一項實施例中,使用在來自Intel® Corporation的Intel® Core®處理器家族或其他處理器家族中之處理器之指令集中的SGX®指令,可產生且維持安全指定位址空間。
處理裝置100可實施用於保護與安全指定位址空間有關聯之記憶體資料的許多技術。在一項實例中,處理裝置100可實施使用MEE 130的保護機構。例如,MEE 130可保護從處理裝置100逐出且移動至記憶體的快取資料線(假如該等資料線屬於該安全指定位址空間)。在一項實施例中,MEE 130可使用用以防禦被動攻擊的快取線加密,例如,其中攻擊者嘗試沈默地觀察資料線(當其等移動入且移動出處理裝置100時)。例如,為了加密快取線,MEE 130可實施一演算法,該演算法可施行使用密鑰(例如,加密金鑰)的一連串轉換,以將稱為「明文」的可理解資料轉換成稱為「加密文」的無法理解形式。在此實例中,藉由在一連串使用加密金鑰之轉換中的MEE,可施行解密(反向加密),以將密文轉換回到明文。因為其他類型的加密邏輯可藉由MEE 130實施,所以這僅僅是一項實例。
在另一實施例中,為了提供用以防禦主動攻擊的完整性/重播保護(其中攻擊者可改變儲存在記憶體中的資料,以便引出在處理裝置100中用其它方法將不會發生的活動),MEE 130可施行計數器模式加密技術,其需要在 時間地與空間地兩者對於資料線而言均是唯一的加密種子。空間的獨特性可藉由使用欲被存取之資料線的位址來得到,而時間的獨特性則可藉由使用當作資料線版本的計數器來得到。在一項實施例中,MEE 130亦保護使用計數器樹結構的資料線,其中只有該樹根儲存在晶粒上且形成可信根(亦即,信任邊界)。資料線的版本係為此計數器樹結構的一部份。或者,其他保護機構可使用於重播保護。例如,因為成功的重播攻擊將必須重播資料線與其有關MAC兩者,所以與安全快取線有關聯的MAC則可儲存在晶粒上。
在一些實施例中,處理裝置100可包括一機構,以將受保護的記憶體分成包括第一安全性級別與第二安全性級別的兩目錄。例如,第一安全性級別可指示使用僅加密來保護的記憶體範圍,而第二安全性級別可指示使用由MEE 130所產生之加密元資料來保護的記憶體範圍。在一項實施例中,可利用可組態安全性範圍暫存器150,將受保護的記憶體分成至少兩個子目錄。可組態安全性範圍暫存器150可以是可用為一部份處理裝置100的儲存硬體。在一項實施例中,可組態安全性範圍暫存器150可包括一組安全性級別指示器(例如,一陣列、樹、其他暫存器或多種類型的資料結構等等),該等指示器可經組態或另外以一個或多個值來程式化,以指定將系統記憶體分成子目錄的記憶體範圍。可組態安全性範圍暫存器150可結合處理裝置100的ISA架構來運作。在一項實施例中,安全指 定位址空間可設定可組態安全性範圍暫存器150的值(當其發射且設定一鎖定位元於暫存器150中時),其防止該等值後續地改變,例如,除非發生重新啟動。
圖2繪示一種系統200,其包括根據一項實施例之用於記憶體位址範圍的支持可組態安全性級別的記憶體201。在此實例中,記憶體201包括分成安全性級別子目錄的受保護位址範圍,諸如全保護範圍(例如,使用MEE 130產生的加密元資料來加密資料)與僅加密範圍(例如,在沒有產生加密元資料之下來加密資料)。如上文提及,處理裝置100的可組態安全性範圍暫存器150可包括安全性級別指示器202,以識別記憶體201的哪些記憶體範圍在全保護範圍或僅加密範圍上受到保護。在一些實施例中,安全性級別指示器202可包括但不限於資料陣列、樹、其他暫存器或可設定為一值(諸如記憶體位址)之不同類型的資料結構。
在一些實施例中,可能以許多方式來程式化可組態安全性範圍暫存器150的安全性級別指示器202,以識別與記憶體201中之記憶體範圍有關聯的安全性級別。在一項實施例中,安全性範圍暫存器150可經組態,以明確地識別受保護的僅加密範圍。因此,在此範圍外之位置中所儲存的任何資料項則可接收全保護。例如,安全性範圍暫存器150的安全性級別指示器202可包括一資料結構,該資料結構可被設定成對應僅加密記憶體範圍(諸如記憶體範圍210)之開始記憶體位址203與結束記憶體位址205的 記憶體位置位址。就處理裝置100而言,此組態可識別用於存在此範圍內之任何資料的一僅加密記憶體範圍。在此方面,存在此範圍中的資料可使用加密邏輯(例如,加密文)來加密/解密。然而存在此範圍外之記憶體位置中(諸如記憶體範圍220與230)的資料,則可使用MEE130所產生的加密元資料而受到全保護。
在另一實施例中,安全性級別指示器202可包括設定成記憶體位址的資料結構,以識別在該等子範圍之間的邊界。例如,安全性級別指示器202可包括可設定成記憶體位址203、205及207的資料結構,各記憶體位址指示用於子範圍的開始與結束邊界。在此實例中,安全性級別指示器202亦可包括例如指示記憶體位址203與205之間的子範圍可以是僅加密範圍及/或記憶體位址205與207之間的子範圍可以是受保護記憶體之全保護範圍的值。
在仍另一實施例中,安全性級別指示器202可包括設定成記憶體位址的資料結構,該記憶體位址識別將記憶體201分成安全性級別子範圍之記憶體201中的邊界點。例如,資料結構可包括對應記憶體位址203的一值,該值可將記憶體201的保護範圍分成僅加密範圍與全保護範圍。在此實例中,安全性級別指示器202可包括方向位元,該方向位元可經組態,以識別該邊界的哪一側是僅加密範圍且哪個是全保護範圍。移動至這些識別範圍或從這些識別範圍移動的資料,可根據設定在安全性級別指示器202中的值來加密。仍進一步,可應用其他技術,以利用可組態 安全性範圍暫存器150的安全性級別指示器202,來識別記憶體201之保護範圍的不同安全性級別子範圍。
如圖2所示,受保護的應用程式代碼與資料,諸如與安全指定位址空間有關聯的應用程式/資料,可使用處理裝置100的加密邏輯而受到保護。例如,從處理器晶片逐出、屬於此記憶體位置的任何資料線,其係在儲存於記憶體201中之前將藉由處理器加密邏輯來加密(例如,加密文),且隨後解密(在回到處理器核心110之前)。就此點而論,由全保護範圍所使用之加密元資料的額外儲存與擷取並非必要。雖然加密資料/加密文維持資料的機密性,但是其無法保護記憶體免於受到主動攻擊或重播攻擊。不過,攻擊者無法易理解地讀取資料。此外,資料可由特定的SGX®-ISA指令所保護,該等指令保護資料免於許多軟體攻擊,且由ISA所使用的範圍(例如,記憶體範圍230)係於全保護範圍之下儲存,以避免在那記憶體範圍上的任何主動攻擊或重播攻擊。
在一些實施例中,全保護範圍可經組態,以便佔據正受保護之全記憶體範圍201的特定百分比(例如,小於百分之十)。此特定百分比可經組態,以便保留記憶體頻寬。例如,假如全保護範圍包含64GB的記憶體,全保護範圍則可包含1GB的此記憶體,而僅加密範圍則可包含63GB。在一些實施例中,控制ISA運行的全部記憶體係位於此全保護範圍中(例如,記憶體範圍230)。這可確保當多數個線程在那記憶體範圍中運行時,它們將具有時 間與空間的區域性。時間的區域性意指在相當小時段內之具體記憶體位置的多重存取。空間的區域性意指在相當小時段內之相當緊密記憶體位置的存取。
在一些實施例中,位於全保護範圍中的記憶體可使用加密元資料而受到全保護。在一項實施例中,在保護資料的機密性上,MEE 130可產生用於那資料之完整性與重播保護的加密元資料。之後,MEE 130可儲存加密元資料於位於全保護範圍中的位置中,諸如在記憶體範圍220中。使用於儲存加密元資料之資料結構的實例(例如,重播保護樹),在下文相關於圖3來討論。
圖3示意地繪示實例資料結構300,其根據本揭露的一項或多項態樣應用來儲存加密元資料,以實施完整性與重播保護。在此實例中,資料結構300可包含例如藉由處理裝置100之MEE 130所產生的重播保護樹。重播保護樹結構包括樹節點之級別的一階層。頂(根)級別包括一系列的晶粒上計數器(亦即,L3計數器310),其儲存在與處理裝置100有關聯之處理器晶粒的內部儲存器中。內部儲存器包括但不限於晶粒上靜態隨機存取記憶體(SRAM)、暫存器檔案、以及在處理器晶粒中的任何其他適當記憶體。當L3計數器310在處理器晶粒上時,其等的內容則受到信任且安全,免於受到被動與主動攻擊。
在一項實施例中,各L3計數器310連結到L2中間元資料315的方塊,其含有一系列的L2計數器320。各L2計數器320連結到L1中間元資料(未圖示)的方塊,其 含有一系列的L1計數器(未圖示)。在此實例中,為了使說明簡易,從圖3省略了代表L1中間元資料與L1計數器的方塊。各L計數器連結到L0中間元資料325的方塊,其含有一系列的L0計數器330。各L0計數器330連結到版本方塊340,其含有一系列的版本節點345。各版本節點345與在記憶體201之受保護區域中的加密資料線360有關聯。版本節點345的內容是相關聯資料線的版本,其在計數器模式加密中提供加密種子之時間的組分。由於較低級別的計數器(包括L2、L1及L0計數器以及版本節點345)在處理器晶粒外並且因此易受攻擊,所以各計數器與各版本節點則以嵌入訊息認證碼(MAC)來編碼(以具有陰影線的方塊顯示)以確保其等的完整性。
在資料線移動到記憶體201之前,其可藉由MEE 130加密。就從記憶體讀取而言,加密資料線360在傳送到處理核心110之前可藉由MEE 130解密。各加密資料線360以MAC節點350來編碼,該MAC節點含有從資料線360之內容計算出的MAC。每當將資料線寫回到記憶體時,MEE 130則更新此MAC,以反映儲存在記憶體201中的最近資料值。當從記憶體201讀取資料線時,藉由計算資料線的MAC值且將所計算的MAC值比較所儲存的MAC值,MEE 130驗證其完整性。就各資料線而言,重播保護可藉由儲存其版本(VER)值345來進一步提供,每當將資料線寫回到記憶體201時,該版本值則遞增。
當處理裝置100執行撰寫操作,以將加密資料線360 中的一條寫入到存在於記憶體201上的受保護記憶體區域內時(例如,當將資料線從晶粒上的LLC146逐出到在記憶體201中的受保護區域時),MEE 130更新與資料線有關聯的MAC 350,且使那資料線的版本345以及與那資料線有關聯的L0、L1、L2、及L3計數器(310、320、330)遞增。此更新製程從計數器樹的底部級別一直進行到L3計數器的根部級別,其安全地儲存在處理器晶粒上的晶片上,且因此保證受到保護而免於攻擊。在計數器樹之各級別上的計數器充當用於下一個較低級別的版本,該等版本結束於儲存用於資料線之版本的版本節點345。因此,在寫入到資料線時,沿著由資料線的位址所識別之分支的全部計數器(包括版本)及其等相關的嵌入MAC,則被更新以反映版本更新。
為了確保重播保護,每當從受保護區域載入資料線時,針對樹節點直到計數器樹根部的真實性會被驗證。在任何級別上的不匹配指示潛在攻擊,且引發安全異常,從而防禦攻擊。具體地,當處理裝置100在加密資料線360中之一條上執行讀取操作時,MEE 130識別那資料線的版本以及L0、L1、L2及L3計數器(310、320、330)。讀取操作沒有改變該版本以及L0、L1、L2及L3計數器(310、320、330)的值。在讀取操作上,MEE 130驗證與資料線有關聯的MAC 350。此外,MEE 130驗證與版本、L0、L1、L2及L3計數器(310、320、330)之各者有關聯的嵌入MAC。此驗證過程從計數器樹的底級別一 直進行到安全的根部計數器L3。
圖4繪示根據一項實施例之用於記憶體位址範圍的支持可組態安全性級別之方法的流程圖。方法400可藉由處理邏輯來施行,該處理邏輯可包含硬體(例如,電路、專屬邏輯、可程式化邏輯、微碼等等)、軟體(諸如在處理裝置上運行的指令)、韌體、或其組合。在一項實施例中,處理裝置100的處理核心110可施行方法400。雖然以特定順序或次序顯示,但是除非另有指定,該等過程的次序可被修改。因此,所繪示的實施方案應該僅僅以實例理解,且所繪示的製程可以不同的次序施行,且一些過程可平行施行。此外,在多項實施例中,可省略一個或多個過程。因此,在各實施方案中,並非全部的過程都是必要的。其他的過程流則是有可能的。
方法400開始於方塊410,其中可識別指示受到保護之記憶體範圍為僅加密或全保護的暫存器。例如,在可組態安全性範圍暫存器150中的安全性級別指示器202,其可藉由處理裝置100來識別。如上文所提及的,該組指示器202可包括一個或多個資料結構,該等資料結構被設定成用以指示記憶體資料是否以僅加密或全保護而受到保護的一值。在方塊415,方法400取決於資料項是否移動至晶片外記憶體或自晶片外記憶體移動而分岔。假如資料項移動到記憶體,方法400可進行到方塊420。否則,方法400則進行到方塊460。
在方塊420,基於在方塊410識別的暫存器,方法 400判定資料項的安全性級別移動到記憶體內。假如判定資料項移動到記憶體的全保護範圍,方法400可進行到方塊430。否則,方法400進行到方塊450。在方塊430,處理裝置100的加密硬體,諸如MEE 130,可從區域元資料快取擷取用於資料項的加密元資料。假如發生快取遺漏,加密硬體可從晶片外記憶體得到元資料。在方塊440,加密元資料可儲存在區域元資料快取中,且資料項可被加密且發送到記憶體。假如判定資料項是移動到僅加密保護的記憶體範圍,那麼在方塊450,則使用處理裝置100的加密硬體來加密資料項而不會產生加密元資料。
在方塊460,基於在方塊410識別的暫存器,方法400判定是從記憶體讀取資料項的安全性級別。假如判定是從全保護的記憶體範圍讀取資料項,方法400可進行到方塊470。否則,方法400進行到方塊490。在方塊470,MEE 130從記憶體擷取用於資料項的加密元資料,且在方塊480使用加密元資料來驗證資料項。假如判定是從僅加密保護的記憶體範圍讀取資料項,在方塊490,處理裝置100則使用加密硬體來解密資料項。
圖5A係為一方塊圖,其繪示根據本揭露一項實施例之實施用於記憶體位址範圍的支持可組態安全性級別之技術的處理器500的微架構。具體地,處理器500描繪根據本揭露至少一項實施例之包括在處理器中的依序架構核心以及暫存器更名邏輯、亂序發出/執行邏輯。
處理器500包括耦合至執行引擎單元550的前端單元 530,且兩者均耦合至記憶體單元570。處理器500可包括精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、超長指令字元(VLIW)核心、或混成或替代核心類型。作為仍另一個選項,處理器500可包括專用核心,諸如,例如,網路或通訊核心、壓縮引擎、圖形核心、或類似物。在一項實施例中,處理器500可以是多核心處理器或可以是一部份的多處理器系統。
前端單元530包括耦合至指令快取單元534的分支預測單元532,該指令快取單元耦合至指令轉譯後備緩衝器(TLB)536,該指令轉譯後備緩衝器耦合到指令提取單元538,該指令提取單元耦合到解碼單元540。解碼單元540(亦稱為解碼器)可解碼指令,且產生一個或多個微操作、微碼進入點、微指令、其他指令、或其他控制訊號,以作為輸出,其係從原始指令解碼,或另外反映原始指令,或從原始指令取得。解碼器540可使用許多不同的機構來實施。適當機構的實例包括但不限於查找表、硬體實施方案、可程式化邏輯陣列(PLA)、微碼唯讀記憶體(ROM)等等。指令快取單元534進一步耦合至記憶體單元570。解碼單元540耦合至在執行引擎單元550中的更名/分派器單元552。
執行引擎單元550包括更名/分派器單元552,該更名/分派器單元耦合至退休單元554及一組一個或多個排程器單元556。排程器單元556代表任何數目的不同排程器,其包括保留站(RS)、中央指令窗等等。排程器單元 556係耦合至實體暫存器檔案單元558。實體暫存器檔案單元558之各者代表一個或多個實體暫存器檔案,該等檔案中的不同檔案儲存一個或多個不同資料類型,諸如純量整數、純量浮動點、封包整數、封包浮動點、向量整數、向量浮動點等等、狀態(例如,是欲執行之下一指令位址的指令指示器)等等。實體暫存器檔案單元558係由退休單元554重疊,以繪示可實施暫存器更名與亂序執行的許多方式(例如,使用重排序緩衝器及退休暫存器檔案,使用未來檔案、歷史緩衝器、及退休暫存器檔案;使用暫存器地圖及大批的暫存器;等等)。執行引擎單元550可例如包括功率管理單元(PMU)590,該功率管理單元管理功能性單元的功率函數。
通常來說,從處理器外面或從程式設計員的觀點可看見架構性暫存器。暫存器不限於任何已知特定類型的電路。多種不同類型的暫存器是合適的,只要它們能夠儲存且提供在本文中所說明的資料。合適暫存器的實例包括但不限於專屬的實體暫存器、使用暫存器更名的動態分派實體暫存器、專屬與動態分派實體暫存器之組合等等。退休單元554與實體暫存器檔案單元558係耦合至執行叢集560。執行叢集560包括一組一個或多個執行單元562以及一組一個或多個記憶體存取單元564。執行單元562可施行許多操作(例如,移位、加法、減法、乘法)並在許多類型的資料上操作(例如,純量浮動點、封包整數、封包浮動點、向量整數、向量浮動點)。
雖然一些實施例可包括專門用於具體函數或函數組的一些執行單元,但是其他實施例卻僅可包括一個執行單元或者全部施行全部函數的多數個執行單元。排程器單元556、實體暫存器檔案單元558、及執行叢集560可能以複數個顯示,因為特定實施例產生用於特定類型資料/操作的分開管線(例如,純量整數管線、純量浮動點/封包整數/封包浮動點/向量整數/向量浮動點管線、及/或記憶體存取管線,各具有它們自己的排程器單元、實體暫存器檔案單元、及/或執行叢集-且在分開記憶體存取管線的情形中,實施特定實施例,其中只有此管線的執行叢集具有記憶體存取單元564)。亦應該理解的,在使用分開管線之處,一個或多個這些管線可亂序發出/執行且剩下的則依序。
該組記憶體存取單元564耦合至記憶體單元570,其可包括資料預取器580、資料TLB單元572、資料快取單元(DCU)574、及級別2(L2)快取單元576....等等實例。在一些實施例中,DCU 574亦稱為第一級別資料快取(L1快取)。DCU 574可處理多個未處理的快取遺漏且持續服務進入的儲存與載入。它亦支持維持快取一致性。資料TLB單元572係為使用以藉由映射虛擬與實體位址空間來改善虛擬位址轉譯速度的快取。在一項例示性實施例中,記憶體存取單元564可包括載入單元、儲存位址單元、以及儲存資料單元,其中各者耦合至記憶體單元570中的資料TLB單元572。L2快取單元576可耦合至一個或多個 其他級別的快取且最終耦合至主要記憶體。
在一項實施例中,資料預取器580藉由自動預測一程式即將耗盡哪種資料而臆測性載入/預取資料到DCU 574。預取可意指將儲存在記憶體階層之一記憶體位置(例如,較低級別的快取或記憶體)中的資料轉移到較靠近(例如,產生較低存取延遲)處理器的較高級別記憶體位置(在處理器的確請求資料之前)。更具體地,預取可意指從較低級別快取/記憶體之一者提早擷取資料到資料快取及/或預取緩衝器(在處理器發出具體資料返回的請求之前)。
在一項實施方案中,處理器500可與相關於圖1來說明的處理裝置100相同。特別地,資料TLB單元572可與TLB 155相同且相關於圖1來說明,以實施在相關於本揭露之實施方案來說明的處理裝置中之用於記憶體位址範圍之支持可組態安全性級別的技術。
處理器500可支持一個或多個指令集(例如,x86指令集(具有已添加更新版本的一些擴充程式);Sunnyvale,CA的MIPS Technologies的MIPS指令集;Sunnyvale,CA的ARM Holdings的ARM指令集(具有可選擇的額外擴充程式,諸如NEON))。
應理解,核心可支持多線程化(執行兩或更多個平行組操作或線程),並且可以多種方式如此進行,包括分時間片多線程化、同時線程化(其中,單一的實體核心提供邏輯的核心給實體核心正同時多線程化的各線程)或其組 合(例如,之後譬如在Intel® Hyperthreading科技中的分時間片擷取與解碼與同時多線程化)。
雖然暫存器更名係在亂序執行的情境中說明,但是應該理解暫存器更名可使用於依序架構中。雖然處理器的繪示實施例亦包括分開指令與資料快取單元與共享的L2快取單元,但是替代性實施例可具有用於指令與資料兩者的單一內部快取,諸如例如級別1(L1)內部快取或多數級別的內部快取。在一些實施例中,該系統可包括內部快取以及在核心及/或處理器外部的外部快取之組合。或者,全部的快取均可在核心及/或處理器外面。
圖5B係為一方塊圖,其繪示根據本揭露一些實施例之由圖5A處理器500所實施的依序管線與暫存器更名階段、亂序發出/執行管線。在圖5B中的實線盒繪示依序管線,而虛線盒繪示暫存器更名、亂序發出/執行管線。在圖5B中,處理器管線501包括提取階段502、長度解碼階段504、解碼階段506、分派階段508、更名階段510、排程(亦稱為配送或發出)階段512、暫存器讀取/記憶體讀取階段514、執行階段516、回寫/記憶體寫入階段518、異常處理階段522、及提交階段524。在一些實施例中,階段502至524的排序可能與所繪示的不同,其係並且不限於在圖5B中所示的具體排序。
圖6繪示用於處理器600之微架構的一方塊圖,該處理器包括用以根據本揭露一項實施例之實施用於記憶體位址範圍之支持可組態安全性級別之技術的邏輯電路。在一 些實施例中,可實施根據一項實施例的指令,以在具有位元組、字元、雙字元、四字元等等之大小以及資料形式(諸如單一與雙重準確整數與浮動點資料形式)的資料元件上操作。在一項實施例中,依序前端601是處理器600的一部份,其提取欲執行的指令且使其等準備稍後使用於處理器管線中。
前端601可包括數個單元。在一項實施例中,指令預取器626從記憶體提取指令,且將其等饋送到指令解碼器628,該指令解碼器則依序將其等解碼或解譯。例如,在一項實施例中,解碼器將所收到的指令解碼成機器可執行的一個或多個操作,該等操作稱為「微指令」或「微操作」(亦稱為微op或uops)。在其他實施例中,解碼器將指令剖析成操作代碼(opcode)及對應的資料及控制欄位,其係由微架構所使用以施行根據一項實施例的操作。在一項實施例中,軌跡快取630進行經解碼的uops且在微操作(uop)佇列634中將其等組合成程式排序序列或軌跡以用於執行。當軌跡快取630遭遇複雜指令時,微碼ROM 632則提供完成操作所必要的uops。
一些指令轉換成單一個微op,而其他則需要數個微ops來完成全操作。在一項實施例中,假如需要大於4個的微ops來完成指令,解碼器628存取微碼ROM 632以進行指令。就一項實施例而言,可將指令解碼成少數個微ops,以用於在指令解碼器628上處理。在另一實施例中,萬一需要一些微ops來完成操作,則可將指令儲存在 微碼ROM 632內。軌跡快取630意指進入點可程式化邏輯陣列(PLA),以判定用於讀取微碼序列的正確微指令指向器,以從微碼ROM 632完成根據一項實施例的一個或多個指令。在微碼ROM 632結束將用於一指令的微ops定序之後,機器的前端601則恢復從軌跡快取630提取微ops。
亂序執行引擎603係為準備用來執行指令之處。亂序執行邏輯具有一些緩衝器,以使指令流平滑且重新排序,以當它們使管線下降且排程以用來執行時最佳化性能。分派器邏輯分派各uop為了執行所需要的機器緩衝器與資源。暫存器更名邏輯將暫存器檔案中之入口上的邏輯暫存器更名。在指令排程器(記憶體排程器、快排程器602、慢/一般浮動點排程器604、以及簡單浮動點排程器606)之前,分派器亦分派一入口以用於在兩個uop佇列(一個用於記憶體操作且一個用於非記憶體操作)其中一個中的各uop。微操作(Uop)排程器602、604、606判定uop何時準備執行,其依據它們相依的輸入暫存器運算元來源之準備度以及uops為了完成其等操作所需要之執行資源的可用性。一項實施例的快排程器602可在主要時鐘循環的每一半上排程,而其他排程器則可僅僅每一主要處理器時鐘循環排程一次。排程器仲裁配送口,以將用於執行的uops排程。
暫存器檔案608、610位於排程器602、604、606與在執行方塊611中的執行單元612、614、616、618、 620、622、624之間。有各別用於整數與浮動點操作的分開暫存器檔案608、610。一項實施例的各暫存器檔案608、610亦包括旁通網路,該旁通網路可將尚未寫入於暫存器檔案內的剛完成結果旁通或前傳到新的相依uops。整數暫存器檔案608與浮動點暫存器檔案610亦能夠彼此通訊資料。就一項實施例而言,整數暫存器檔案608分成兩個分開的暫存器檔案,一個暫存器檔案用於低階的32位元資料,且第二暫存器檔案用於高階的32位元資料。因為浮動點指令一般具有寬度從64至128位元的運算元,所以一項實施例的浮動點暫存器檔案610具有128位元寬的入口。
執行方塊611含有實際上執行指令的執行單元612、614、616、618、620、622、624。此區段包括暫存器檔案608、610,該等暫存器檔案儲存微指令必須執行的整數與浮動點資料運算元值。一項實施例的處理器600包含許多執行單元:位址產生單元(AGU)612、AGU 614、快ALU 616、快ALU 618、慢ALU 620、浮動點ALU 622、浮動點移動單元624。就一項實施例而言,浮動點執行方塊622、624執行浮動點、MMX、SIMD、及SSE、或其他操作。一項實施例的浮動點ALU 622包括64位元乘以64位元的浮動點除法器,以執行除法、平方根、以及剩下的微ops。就本揭露的實施例而言,涉及浮動點值的指令可以浮動點硬體處理。
在一項實施例中,ALU操作前進到高速ALU執行單 元616、618。一項實施例的快ALU 616、618可執行具有半個時脈週期之有效延遲的快操作。就一項實施例而言,因為慢ALU 620包括用於長延遲類型操作(諸如乘法、移位、旗標邏輯、以及分支處理)的整數執行硬體,所以大多數的複雜整數操作前進到慢ALU 620。記憶體載入/儲存操作係由AGU 612、614所執行。就一項實施例而言,在64位元資料運算元上施行整數運算的情境中,說明整數ALU 616、618、620。在替代性實施例中,可實施ALU 616、618、620,以支持包括16、32、128、256等等的多種資料位元。類似地,可實施浮動點單元622、624,以支持具有各種寬度位元的運算元範圍。就一項實施例而言,在結合SIMD與多媒體指令之128位元寬的封包資料運算元上,可操作浮動點單元622、624。
在一項實施例中,在上層(parent)載入已經結束執行之前,uops排程器602、604、606配送相依的操作。因為uops在處理器600中經臆測性排程與執行,所以處理器600亦包括用以處理記憶體遺漏的邏輯。假如資料載入在資料快取中遺漏,在已經離開具有暫時不正確資料之排程器的管線飛行中,則會有相依操作。重播機構追蹤且重新執行使用不正確資料的指令。只有相依的操作必須重播,且允許獨立的操作完成。處理器之一項實施例的排程器與重播機構亦經設計,以快取用於文字串比較操作的指令序列。
處理器600亦包括根據本揭露實施例之用以實施用於 記憶體歧異消除之儲存位址預測的邏輯。在一項實施例中,處理器600的執行方塊611可包括儲存位址預測器(未圖示),該儲存位址預測器用於實施用於記憶體位址範圍之支持可組態安全性級別的技術。
術語「暫存器」可意指使用當作用以識別運算元之一部份指令的板上處理器儲存位置。換言之,暫存器可以是可從處理器外面(從程式設計員的觀點)使用的那些。不過,一實施例的暫存器在意義上應該不限於特定類型的電路。更確切地說,一實施例的暫存器能夠儲存且提供資料,且實施在本文中說明的功能。藉由在使用任何數目之不同技術之處理器內的電路(諸如專屬實體暫存器、使用暫存器更名的動態分配實體暫存器、專屬與動態分配實體暫存器之組合等等),可實施在本文中說明的暫存器。在一項實施例中,整數暫存器儲存三十二位元的整數資料。一項實施例的暫存器檔案亦含有用於封包資料的八個多媒體SIMD暫存器。
就下文的討論而言,將暫存器理解為設計用以保留封包資料的資料暫存器,諸如在以MMX科技(來自Santa Clara,California的Intel Corporation)所致能之微處理器中的64位元寬MMXTM暫存器(在一些情形中,亦稱為「mm」暫存器)。可用於整數與浮動點形式兩者中的這些MMX暫存器,可以伴隨SIMD與SSE指令的封包資料元件操作。類似地,與SSE2、SSE3、SSE4、或以上(通常稱為「SSEx」)科技有關的128位元寬XMM暫存器, 亦可使用來保留此等封包資料運算元。在一項實施例中,在儲存封包資料與整數資料時,暫存器不需要區別該兩資料類型。在一項實施例中,在相同暫存器檔案或不同暫存器檔案中含有整數與浮動點。更者,在一項實施例中,浮動點與整數資料可儲存在不同暫存器或相同暫存器中。
可以許多不同系統類型來實施實施例。現在參考圖7,其顯示繪示系統700的方塊圖,在該系統中可使用本揭露的一實施例。如圖7所示,多處理器系統700係為點對點互連系統,並且包括經由點對點互連750而耦合的第一處理器770與第二處理器780。雖然僅以兩個處理器770、780顯示,但是要理解,本揭露實施例的範圍不會如此受限。在其他實施例中,一個或多個額外處理器可存在於已知的處理器中。在一項實施例中,多處理器系統700可實施在本文中所說明之用於記憶體位址範圍的支持可組態安全性級別之技術。
處理器770與780係顯示各別包括整合的記憶體控制器單元772與782。處理器770亦包括點對點(P-P)介面776與778以作為其匯流排控制器單元的一部份;類似地,第二處理器780包括點對點介面786與788。處理器770、780可經由使用點對點介面電路778、788的點對點(P-P)介面750來交換資訊。如圖7所示,IMC772與IMC782將處理器耦合至各別記憶體(亦即,記憶體732與記憶體734),其可以是局部附著到各別處理器之主要記憶體的一部份。
處理器770、780可經由使用點對點介面電路776、794、786、798的各別點對點介面752、754而與晶片組790交換資訊。晶片組790亦可經由高性能圖形介面739而與高性能圖形電路738交換資訊。
共享快取(未圖示)可被包括在處理器中或兩處理器外,但仍經由點對點互連而與處理器連接,使得假如將處理器置於低功率模式,任一或兩處理器的區域快取資訊則可儲存在共享快取中。
晶片組790可經由介面796耦合到第一匯流排716。在一項實施例中,第一匯流排716可以是周邊組件互連(PCI)匯流排,或者譬如PCI快速匯流排或另一第三代I/O互連匯流排的匯流排,雖然本揭露的範圍不會如此受到限制。
如在圖7中所示,許多I/O裝置714可連同匯流排橋接器718耦合至第一匯流排716,該匯流排橋接器將第一匯流排716耦合至第二匯流排720。在一項實施例中,第二匯流排720可以是低接腳數(LPC)匯流排。許多裝置可耦合至第二匯流排720,例如包括鍵盤及/或滑鼠722、通訊裝置727及儲存單元728(諸如磁碟驅動裝置或在一項實施例中可包括指令/代碼及資料730的其他大量儲存裝置)。更者,音訊I/O724可耦合至第二匯流排720。注意,其他架構是可能的。例如,一系統可實施多點匯流排或其他此架構,而非圖7的點對點架構。
現在參考圖8,其顯示本揭露的一項實施例可操作之 系統800的方塊圖。系統800可包括一個或多個處理器810、815,該等處理器耦合至圖形記憶體控制器集線器(GMCH)820。額外處理器815的可選特性在圖8中以虛線表示。在一項實施例中,處理器810、815實施根據本揭露實施例之用於記憶體位址範圍之支持可組態安全性級別的技術。
各處理器810、815係為如上文所說明之電路、積體電路、處理器、及/或矽積體電路的某種版本。不過,應注意,積體圖形邏輯與積體記憶體控制單元不太可能存在於處理器810、815中。圖8繪示GMCH 820可耦合至例如可能是動態隨機存取記憶體(DRAM)的記憶體840。就至少一項實施例而言,DRAM可能與非揮發性快取有關聯。
GMCH 820可以是晶片組或一部份的晶片組。GMCH 820可與處理器810、815通訊,且控制處理器810、815與記憶體840之間的互動。GMCH 820亦可充當作介於系統800的處理器810、815與其他元件之間的加速匯流排介面。就至少一項實施例而言,GMCH 820經由多點匯流排(諸如前側匯流排(FSB)895)而與處理器810、815通訊。
更者,GMCH 820耦合至顯示器845(諸如,平面板或觸控螢幕顯示器)。GMCH 820可包括積體圖形加速器。GMCH 820進一步耦合至輸入/輸出(I/O)控制器集線器(ICH)850,其可使用來將多種周邊裝置耦合至系統 800。例如在圖8之實施例中顯示的是外部圖形裝置860,該外部圖形裝置可以是分開的圖形裝置,其連同另一周邊裝置870耦合至ICH 850。
或者,額外或不同的處理器亦可存在於系統800中。例如,額外的處理器815可包括與處理器810相同的額外處理器、與處理器810異質或不對稱的額外處理器、加速度器(諸如,例如,圖形加速度器或數位訊號處理(DSP)單元)、場可程式化閘陣列、或任何其他處理器。就包括架構性、微架構性、熱、功率耗損特徵、以及類似物一系列的優點衡量標準(spectrum of metrics of merit)而論,在處理器810、815之間會有許多不同。在處理器810、815之間,這些不同可有效地將它們本身顯現為不對稱與異質。就至少一項實施例而言,多種處理器810、815可存在於相同的晶粒封裝中。
現在參考圖9,其顯示可操作本揭露實施例之系統900的方塊圖。圖9繪示處理器970、980。在一項實施例中,處理器970、980可實施在上文所說明之用於記憶體位址範圍之支持可組態安全性級別的技術。處理器970、980可各別包括積體記憶體及I/O控制邏輯(「CL」)972與982,且各別經由介於點對點(P-P)介面978與988之間的點對點互連950而彼此互通。如圖示,處理器970、980各個透過各別的點對點介面976至994與986至998、經由點對點互連952與954而與晶片組990通訊。就至少一項實施例而言,CL972、982可包括積體記憶體 控制器單元。CL972、982可包括I/O控制邏輯。如所描繪的,耦合至CL972、982與I/O裝置914的記憶體932、934亦耦合至控制邏輯972、982。舊有I/O裝置915經由介面996耦合至晶片組990。
實施例可以許多不同的系統型態實施。圖10係為根據本揭露一實施例之SoC 1000的方塊圖。虛線盒係為在更高級SoC上的可選特徵。在圖10中,互連單元1012係耦合至:應用處理器1020,該處理器包括一組一個或多個核心1002A-N及共享快取單元1006;系統媒介單元1010;匯流排控制器單元1016;積體記憶體控制器單元1014;一組一個或多個媒體處理器1018,該等處理器可包括積體圖形邏輯1008、用於提供靜止及/或攝影機功能的影像處理器1024、用於提供硬體音訊加速的音訊處理器1026、以及用於提供視訊編碼/解碼加速的視訊處理器1028;靜態隨機存取記憶體(SRAM)單元1030;直接記憶體存取(DMA)單元1032;以及用於耦合至一個或多個外部顯示器的顯示單元1040。在一項實施例中,記憶體模組可包括在積體記憶體控制器單元1014中。在另一項實施例中,記憶體模組可包括在可使用來存取及/或控制記憶體之SoC 1000的一個或多個其他組件中。應用處理器1020可包括用於實施沈默記憶體指令與遺漏率追蹤的PMU,以最佳化在線程上的切換策略,如在本文之實施例中所說明的。
記憶體階層包括在核心內的一個或多個級別快取、一 組一個或多個共享快取單元1006、以及耦合至該組積體記憶體控制器單元1014的外部記憶體(未圖示)。該組共享快取單元1006可包括一個或多個中間級別的快取,諸如級別2(L2)、級別3(L3)、級別4(L4)、或其他級別快取、最後級別快取(LLC)、及/或其組合。
在一些實施例中,核心1002A-N中的一個或多個能夠多線程化。系統媒介1010包括協調與操作核心1002A-N的那些組件。系統媒介單元1010可例如包括功率控制單元(PCU)與顯示單元。PCU可以是或可包括用來調節核心1002A-N與積體圖形邏輯1008之功率狀態所需要的邏輯與組件。顯示單元係用於驅動一個或多個外部連接顯示器。
在架構及/或指令集方面,核心1002A-N可以是均質或異質的。例如,核心1002A-N中的一些可以是依序的,但是其他者則是亂序的。如另一實例,核心1002A-N中的兩個或更多個能夠執行相同指令集,而其他者則能夠僅僅執行那指令集或不同指令集的子集。
應用處理器1020可以是通用處理器,諸如CoreTMi3、i5、i7、2Duo與Quad、XeonTM、ItaniumTM、AtomTM或QuarkTM處理器,其可從Santa Clara,Calif.的IntelTM Corporation得到。或者,應用處理器1020可來自另一公司,諸如ARM HoldingsTM、Ltd、MIPSTM等等。應用處理器1020可以是專用處理器,諸如例如網路或通訊處理器、壓縮引擎、圖形處理器、共用處理器、嵌入式 處理器、或類似物。應用處理器1020可在一個或多個晶片上實施。應用處理器1020可以是一個或多個基板的一部份及/或可使用一些製程技術之任一者而在一個或多個基板上實施,諸如例如雙極互補金氧半導體(BiCMOS)、互補金氧半導體(CMOS)、或N型金氧半導體(NMOS)。
圖11係為根據本揭露之系統單晶片(SoC)設計之一實施例的方塊圖。如具體說明性實例,SoC 1100被包括在使用者設備(UE)中。在一項實施例中,UE意指由終端用戶使用來通訊的任何裝置,諸如手持電話、智慧型手機、平板、超薄筆電、具有寬頻配接器的筆電、或任何其他類似的通訊裝置。UE經常連接到基地台或節點,其潛在地在本質上對應在GSM網路中的行動台(MS)。
在此,SOC 1100包括2核心-1106與1107。核心1106與1107可符合指令集架構,諸如基於Intel® Architecture CoreTM的處理器、Advanced Micro Devices,Inc.(AMD)處理器、基於MIPS的處理器、基於ARM的處理器設計、或其用戶、以及其等執照持有人或採用者。核心1106與1107係耦合至快取控制1108,該快取控制與匯流排介面單元1109及L2快取1110有關聯,以與系統1100的其他部件通訊。互連1110包括晶片上互連,諸如IOSF、AMBA、或上文所討論的其他互連,其潛在地實施所說明揭露的一或多項態樣。在一項實施例中,核心1106、1107可實施如本文實施例中所說明之用於記憶體位址範圍的支持可組態安全性級別的技術。
互連1110提供通訊通道至其他組件,諸如用以與SIM卡介面接合的用戶識別模組(SIM)1130、用以保留啟動碼以用於由核心1106與1107所執行以啟始且啟動SoC 1100的啟動ROM 1140、用以與外部記憶體(例如,DRAM 1160)介面接合的SRAM控制器1140、用以與非揮發性記憶體(例如,快閃1165)介面接合的快閃控制器1145、用以與周邊介面接合的周邊控制1150(例如,序列周邊介面)、用以顯示與接收輸入(例如,觸控致能輸入)的視訊編解碼器1120與視訊介面1125、用以執行與圖形相關之計算的GPU 1115等等。這些介面的任一者可結合本文中所說明之揭露的態樣。此外,系統1100繪示用於通訊的周邊,諸如藍芽模組1170、3G數據機1175、全球定位系統(GPS)1180、以及無線上網(Wi-Fi)1185。
圖12繪示實例形式為電腦系統1200之機器的示意代表圖,在該電腦系統內,可執行用於導致機器施行本文所討論方法之任一者或多者的一組指令。在替代性實施例中,機器可連接(例如,網路化)到在LAN、內部網路、外部網路、或網際網路中的其他機器。該機器可在客戶-伺服器網路環境中以伺服器或客戶裝置的身份或在對等式(或分佈式)網路環境中以對等機器來操作。該機器可以是個人電腦(PC)、平板PC、機上盒(STB)、個人數位助理(PDA)、蜂巢式電話、網路設備、伺服器、網路路由器、切換器或橋接器、或能夠執行指定那機器所進行之動作之 一組指令的任何機器(逐次或另外)。再者,雖然只繪示單一個機器,但是術語「機器」亦應包括各別或聯合執行一組(或多數組)指令以施行本文中所討論方法之任一者或多者的任何機器集合。
電腦系統1200包括處理裝置1202、主要記憶體1204(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM)(諸如同步DRAM(SDRAM)或DRAM(RDRAM)等等))、靜態記憶體1206(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等等)、以及資料儲存裝置1218,其經由匯流排1230彼此通訊。
處理裝置1202代表一個或多個通用處理裝置,諸如微處理器、控制處理單元、或類似物。更特別地,處理裝置可以是複雜的指令集計算(CISC)微處理器、精簡指令集電腦(RISC)微處理器、超長指令字元(VLIW)微處理器、或實施其他指令集的處理器、或實施指令集之組合的處理器。處理裝置1202亦可以是一個或多個專用處理裝置,諸如特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、數位訊號處理器(DSP)、網路處理器、或類似物。在一項實施例中,處理裝置1202可包括一個或多個處理核心。處理裝置1202經組態以執行處理邏輯1226,以用來施行本文中所討論的操作與步驟。在一項實施例中,處理裝置1202與相關於圖1來說明的處理器架構100相同,如在本文中以本揭露實施例來說明的,該處理裝置實施用於記憶體位址範圍的支持可組態安全性級別之 技術。
電腦系統1200可進一步包括可通信地耦合至網路1220的網路介面裝置1208。電腦系統1200亦可包括視訊顯示單元1210(例如,液晶顯示器(LCD)或陰極射線管(CRT))、文數輸入裝置1212(例如,鍵盤)、游標控制裝置1214(例如,滑鼠)、以及訊號產生裝置1216(例如,喇叭)。更者,電腦系統1200可包括圖形處理單元1222、視訊處理單元1228、以及音訊處理單元1232。
資料儲存裝置1218可包括機器可存取儲存媒體1224,在該媒體上係為經儲存的軟體1226,該軟體實施本文中所說明功能之方法的任一者或多者,諸如實施沈默記憶體指令與遺漏率追蹤,以最佳化在處理裝置中之線程上的切換策略,如上文所說明的。在藉由電腦系統1200來執行的期間內,軟體1226亦可完全或至少部份地存在於主要記憶體1204內,以作為指令1226,及/或存在於處理裝置1202內,以作為處理邏輯1226;主要記憶體1204與處理裝置1202亦可組成機器可讀取儲存媒體。
機器可讀取儲存媒體1224亦可使用來儲存指令1226,以實施沈默記憶體指令與遺漏率追蹤,以最佳化在處理裝置中之線程上的切換策略(諸如相關於圖1中之處理裝置100所說明的)、及/或含有方法的軟體程式庫(在上文稱為應用程式)。雖然在一實例實施例中,機器可存取儲存媒體1128顯示為單一媒體,但是術語「機器可存取儲存媒體」應該包括儲存一或多組指令的單一個媒 體或多數個媒體(例如,集中式或分布式資料庫、及/或有關的快取與伺服器)。術語「機器可存取儲存媒體」亦應包括能夠儲存、編碼或承載一組供機器執行之指令且導致該機器施行本揭露方法之任一者或多者的任何媒體。據此,術語「機器可存取儲存媒體」應包括但不限於固態記憶體以及光學與磁性媒體。
以下實例屬於進一步實施例。
實例1係為一種處理器,其包含:a)一處理核心;b)一記憶體控制器,其在操作上耦合至該處理核心,以存取在一晶片外記憶體中的資料;以及c)一記憶體加密引擎(MEE),其在操作上耦合至該記憶體控制器,該MEE係用以:回應於偵測到相關於一記憶體位置的一記憶體存取操作(該記憶體位置由與該晶片外記憶體有關聯之一記憶體位址範圍內的一記憶體位址所識別),1)基於儲存在一安全性範圍暫存器上的一值,來識別與該記憶體位置有關聯的一安全性級別指示器;以及2)有鑑於該安全性級別指示器,來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項。
在實例2中,實例1之標的事項,其中該安全性級別指示器識別該晶片外記憶體的一僅加密記憶體範圍與一全保護記憶體範圍。
在實例3中,實例1至2中任一項之標的事項,其中該安全性級別指示器包含一個或多個記憶體位址範圍,以識別該晶片外記憶體之該僅加密記憶體範圍與該全保護記 憶體範圍的至少一個。
在實例4中,實例1至3中任一項之標的事項,其中該安全性級別指示器包含一記憶體位址,該記憶體位址將該晶片外記憶體分成該僅加密記憶體範圍與該全保護記憶體範圍。
在實例5中,實例1至4中任一項之標的事項,其中回應於偵測到欲傳送該資料項到該晶片外記憶體的該僅加密記憶體範圍,該MEE進一步加密與該資料項有關聯的資料。
在實例6中,實例1至5中任一項之標的事項,其中回應於偵測到欲從該晶片外記憶體的該僅加密記憶體範圍傳送該資料項,該MEE進一步解密與該資料項有關聯的資料。
在實例7中,實例1至6中任一項之標的事項,其中回應於偵測到欲傳送該資料項到該晶片外記憶體的該全保護記憶體範圍,該MEE進一步儲存與該資料項有關聯的加密元資料。
在實例8中,實例1至7中任一項之標的事項,其中回應於偵測到欲從該晶片外記憶體的該全保護記憶體範圍傳送該資料項,該MEE進一步擷取與該資料項有關聯的加密元資料。
在實例9中,實例1至8中任一項之標的事項,其中該資料係由與該等處理器核心有關聯的指令集架構(ISA)指令所保護,該等ISA指令保護該資料免於受到軟體攻 擊,且與該等ISA指令有關聯的一記憶體範圍係儲存在該全保護記憶體範圍中,以保護該資料免於受到主動與重播攻擊。
各種實施例可具有上文所說明之結構性特徵的不同組合。例如,上文所說明之處理器的全部可選特徵亦可相關於本文中所說明的方法或過程來實施,且在該等實例中的細節可在一或多項實施例中的任何地方使用。
實例10係為一種方法,其包含:1)回應於偵測到相關於一記憶體位置的一記憶體存取操作(該記憶體位置由與一晶片外記憶體裝置有關聯之一記憶體位址範圍內的一記憶體位址所識別),基於儲存在一安全性範圍暫存器上的一值,使用一處理裝置,來識別與該記憶體位置有關聯的一安全性級別指示器;以及2)有鑑於該安全性級別指示器,使用該處理裝置,來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項。
在實例11中,實例10之標的事項,其中該安全性級別指示器識別該晶片外記憶體裝置的一僅加密記憶體範圍與一全保護記憶體範圍。
在實例12中,實例10至11中任一項之標的事項,其中該安全性級別指示器包含一個或多個記憶體位址範圍,以識別該晶片外記憶體之該僅加密記憶體範圍與該全保護記憶體範圍的至少一個。
在實例13中,實例10至12中任一項之標的事項,其中該安全性級別指示器包含一記憶體位址,該記憶體位 址將該晶片外記憶體分成該僅加密記憶體範圍與該全保護記憶體範圍。
在實例14中,實例10至13中任一項之標的事項,其進一步包含回應於偵測到欲傳送該資料項到該晶片外記憶體的該僅加密記憶體範圍,加密與該資料項有關聯的資料。
在實例15中,實例10至14中任一項之標的事項,其進一步包含回應於偵測到欲從該晶片外記憶體的該僅加密記憶體範圍傳送該資料項,解密與該資料項有關聯的資料。
在實例16中,實例10至15中任一項之標的事項,其進一步包含回應於偵測到欲傳送該資料項到該晶片外記憶體的該全保護記憶體範圍,產生與該資料項有關聯的加密元資料。
在實例17中,實例10至16中任一項之標的事項,其進一步包含回應於偵測到欲從該晶片外記憶體的該全保護記憶體範圍傳送該資料項,擷取與該資料項有關聯的加密元資料。
在實例18中,實例10至17中任一項之標的事項,其中該資料係由與該等處理器核心有關聯的指令集架構(ISA)指令所保護,該等ISA指令保護該資料免於受到軟體攻擊,且與該等ISA指令有關聯的一記憶體範圍係儲存在該全保護記憶體範圍中,以保護該資料免於受到主動與重播攻擊。
各種實施例可具有上文所說明之操作性特徵的不同組合。例如,上文所說明之方法的全部可選特徵亦可相關於非暫態、電腦可讀取儲存媒體來實施。在該等實例中的細節可在一或多項實施例中的任何地方使用。
實例19係為一種非暫態、電腦可讀取儲存媒體,其包括指令,該等指令當由一處理器執行時,導致該處理器:a)回應於偵測到相關於一記憶體位置的一記憶體存取操作(該記憶體位置由與該晶片外記憶體有關聯之一記憶體位址範圍內的一記憶體位址所識別),基於儲存在一安全性範圍暫存器上的一值,來識別與該記憶體位置有關聯的一安全性級別指示器;以及b)有鑑於該安全性級別指示器,來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項。
在實例20中,實例19之標的事項,其中該安全性級別指示器識別該晶片外記憶體的一僅加密記憶體範圍與一全保護記憶體範圍。
在實例21中,實例19至20中任一項之標的事項,其中該安全性級別指示器包含一個或多個記憶體位址範圍,以識別該晶片外記憶體之該僅加密記憶體範圍與該全保護記憶體範圍的至少一個。
在實例22中,實例19至21中任一項之標的事項,其中該安全性級別指示器包含一記憶體位址,該記憶體位址將該晶片外記憶體分成該僅加密記憶體範圍與該全保護記憶體範圍。
在實例23中,實例19至22中任一項之標的事項,其中回應於偵測到欲傳送該資料項到該晶片外記憶體的該僅加密記憶體範圍,該可執行指令進一步導致該處理系統,以加密與該資料項有關聯的資料。
在實例24中,實例19至23中任一項之標的事項,其中回應於偵測到欲從該晶片外記憶體的該僅加密記憶體範圍傳送該資料項,該可執行指令進一步導致該處理系統,以解密與該資料項有關聯的資料。
在實例25中,實例19至24中任一項之標的事項,其中回應於偵測到欲傳送該資料項到該晶片外記憶體的該全保護記憶體範圍,該可執行指令進一步導致該處理系統,以產生與該資料項有關聯的加密元資料。
在實例26中,實例19至25中任一項之標的事項,其中回應於偵測到欲從該晶片外記憶體的該全保護記憶體範圍傳送該資料項,該可執行指令進一步導致該處理系統,以擷取與該資料項有關聯的加密元資料。
在實例27中,實例19至26中任一項之標的事項,其中該資料係由與該等處理器核心有關聯的指令集架構(ISA)指令所保護,該等ISA指令保護該資料免於受到軟體攻擊,且與該等ISA指令有關聯的一記憶體範圍係儲存在該全保護記憶體範圍中,以保護該資料免於受到主動與重播攻擊。
各種實施例可具有上文所說明之結構性特徵的不同組合。例如,上文所說明之處理器與方法的全部可選特徵亦 可相關於在本文中所說明的系統來實施,且在該等實例中的細節可在一或多項實施例中的任何地方使用。
實例28係為一種非暫態、電腦可讀取儲存媒體,其包括指令,該等指令當由一處理器執行時,導致該處理器施行實例9至16中任一項之標的事項。
實例29係為一種系統單晶片(SoC),其包含複數個功能性單元以及耦合至該等複數個功能性單元的記憶體控制器單元(MCU),其中該MCU包含記憶體加密引擎(MEE),其中該MEE經組態以施行實例10至18中任一項之標的事項。
在實例30中,實例29之標的事項,其中該SoC進一步包含實例1至9以及19至27中任一項之標的事項。
實例31係為一種設備,其包含:a)一處理器的複數個功能性單元;b)用於回應於偵測到相關於一記憶體位置的一記憶體存取操作(該記憶體位置由與該晶片外記憶體有關聯之一記憶體位址範圍內的一記憶體位址所識別)之構件,該構件基於儲存在一安全性範圍暫存器上的一值來識別與該記憶體位置有關聯的一安全性級別指示器;以及c)
有鑑於該安全性級別指示器來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項之構件。
在實例32中,實例31之標的事項,其進一步包含實例1至9以及19至27中任一項之標的事項。
實例33係為一種記憶體,其包含:一記憶體裝置及 包含一記憶體加密引擎(MEE)的一處理器,其中該處理器經組態以施行實例10至18中任一項之標的事項。
在實例34中,實例30之標的事項,其進一步包含實例1至9以及19至27中任一項之標的事項。
雖然本揭露已經相關於有限數目的實施例來說明,但是所屬技術領域中具有通常知識者將理解許多修改與變化。附加申請專利範圍意圖涵蓋在本揭露之真實精神與範圍內的全部此等修改與變化。
一項設計可能歷經許多階段,從生產,到模擬,到製造。代表設計的資料可能以一些方式來代表設計。首先,如在模擬方面有用的,可使用硬體描述語言或另一功能性描述語言來代表硬體。此外,可在設計過程的一些階段上產生具有邏輯及/或電晶體閘極的電路級別模型。更者,在某階段,大部分的設計會達到代表在硬體模型中之多種裝置之實體布局的資料級別。在使用習知半導體製造技術的情形中,就使用以產生積體電路的遮罩而言,代表硬體模型的資料可以是指定不同遮罩層上之各種特徵存在或不存在的資料。在該設計的任何代表中,該資料可儲存在任何形式的機械可讀取媒體中。記憶體或磁性或光學儲存器(諸如碟片),其係可以是用以儲存經由光波或電波來發射之資訊的機械可讀取媒體,該光波或電波係經調變或以別的方式產生以發送此資訊。當將指示或承載該代碼或設計的電載波發射時,在施行電訊號之複製、緩衝、或重新發射的方面來說,可進行新的複製。因此,通訊提供者或 網路提供者則可儲存在有形、機械可讀取媒體上,至少暫時地,在一物體(諸如編碼成載波的資訊)上,以實施本揭露實施例的技術。
在本文中所使用的模組意指硬體、軟體、及/或韌體的任何組合。舉個例子,模組包括與非暫態媒體有關聯的硬體(諸如微控制器),其用以儲存經調適以由微控制器執行的代碼。因此,在一項實施例中,提到一模組,意指硬體,其係經具體組態以確認及/或執行在非暫態媒體上所保留的代碼。更者,在另一項實施例中,模組之使用意指包括該代碼的非暫態媒體,其經具體調適以由微控制器所執行,以施行預定的操作。且如可推斷的,在仍另一項實施例中,術語模組(在本實例中)可意指微控制器與非暫態媒體之組合。經常地,繪示為分開的模組邊界通常會改變且潛在地重疊。例如,第一與第二模組可共享硬體、軟體、韌體、或其組合,同時潛在地保留一些獨立硬體、軟體、或韌體。在一項實施例中,術語邏輯之使用包括硬體,諸如電晶體、暫存器,或其他硬體,諸如可程式化邏輯裝置。
在一項實施例中,用詞「經組態以」之使用,意指將一設備、硬體、邏輯、或元件排列、裝配、製造、提供銷售、進口及/或設計,以施行經指定或決定的任務。在本實例中,沒在運作的設備或其元件仍「經組態以」施行一指定任務,假如其經設計、耦合、及/或互連以施行該指定任務。舉個純粹說明性的實例,在操作期間內,邏輯閘 可提供0或1。但是「經組態以」提供致能訊號給時鐘的邏輯閘不包括可提供1或0的每一潛在邏輯閘。反之,邏輯閘係以在操作期間內1或0輸出係用以致能該時鐘的某種方式而耦合者。再一次要注意,術語「經組態以」之使用不需要操作,但反而聚焦於設備、硬體、及/或元件的潛在狀態,其中在潛在狀態中,當正操作設備、硬體、及/或元件時,該設備、硬體、及/或元件經設計以施行特定任務。
更者,在一項實施例中,用詞「以」、「能夠」、及/或「可操作以」之使用,意指某設備、邏輯、硬體、及/或元件用能夠以指定方式來使用該設備、邏輯、硬體、及/或元件的此種方式來設計。如上文所提及的,在一項實施例中,以、能夠、或可操作以之使用意指一設備、邏輯、硬體、及/或元件的潛在狀態,其中該設備、邏輯、硬體、及/或元件不運作但卻以能夠以指定方式來使用一設備的此一方式來設計。
在本文中所使用的值包括一數目、一狀態、一邏輯的狀態、或一二進制邏輯的狀態的任何已知代表。邏輯位準、邏輯值、或邏輯的值之使用亦經常稱為1的(1’s)以及0的(0’s),其簡單地代表二進制邏輯狀態。例如,1意指高邏輯位準且0意指低邏輯位準。在一項實施例中,儲存單元,諸如電晶體或快閃單元,能夠維持單一的邏輯的值或多數個邏輯的值。不過,在電腦系統中的其他值代表則已被使用。例如,十進位數十亦可以二進位值910及十六 進位字A代表。因此,一值包括能夠保留在電腦系統中之資訊的任何代表。
更者,值或部份的值代表狀態。舉個實例,第一值,諸如邏輯的一,可代表預設或最初狀態,而第二值,諸如邏輯的零,可代表非預設狀態。此外,在一項實施例中,術語重設與設定分別意指預設與更新值或狀態。例如,預設值潛在地包括高的邏輯的值,亦即重設,而更新值潛在地包括低的邏輯的值,亦即設定。注意,可利用任何數值之組合來代表任何數目的狀態。
上文陳述之方法、硬體、軟體、韌體或代碼的實施例,其可經由儲存在機器可存取、機器可讀取、電腦可存取、或電腦可讀取媒體上、可由處理元件來執行的指令或代碼來實施。非暫態機器可存取/可讀取媒體包括提供(亦即,儲存及/或傳送)形式為可由機器讀取之資訊的任何機構(諸如電腦或電子系統)。例如,非暫態機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)、或動態RAM(DRAM);唯讀記憶體(ROM);磁性或光學儲存媒體;快閃記憶體裝置;電性儲存裝置;光學儲存裝置;聲音儲存裝置;其他形式的儲存裝置,其用於保留從暫態(傳播)訊號(例如,載波、紅外線訊號、數位訊號)所收到的資訊;等等,該等裝置係與可接收來自其之資訊的非暫態媒體有所區別。
使用來程式化邏輯以施行本揭露實施例的指令可儲存在系統中的記憶體內,諸如DRAM、快取、快閃記憶體、 或其他儲存器。再者,可經由網路或透過其他電腦可讀取媒體,來分佈該等指令。因此,機器可讀取媒體可包括用於將形式為可由機器(例如,電腦)讀取的資訊儲存或傳送的任何機構,但不限於軟式磁片、光碟、唯讀光碟記憶體(CD-ROMs)、及磁光碟、唯讀記憶體(ROMs)、隨機存取記憶體(RAM)、可抹除可程式唯讀記憶體(EPROM)、電性可抹除可程式唯讀記憶體(EEPROM)、磁性或光學卡、快閃記憶體、或有形機器可讀取儲存器,其係使用於在網際網路上、經由電性、光學、聲音或其他形式傳播訊號(例如,載波、紅外線訊號、數位訊號等等)的資訊傳送。據此,電腦可讀取媒體包括任何類型的有形機器可讀取媒體,其適合用於將形式為可由機器(例如,電腦)讀取的電子指令或資訊儲存或傳送。
在整個本說明書中,提及「一項實施例」或「一實施例」意味著,結合該實施例來說明的特定特徵、結構、或特色,係包括在本揭露的至少一項實施例中。因此,用詞「在一項實施例中」或「在一實施例中」出現在整個本說明書的各處,不一定全部意指相同實施例。再者,在一項或多項實施例中,特定特徵、結構、或特色可以任何適當的方式組合。
在前述的說明書中,已經參考具體例示性實施例來產生實施方式。不過,顯然,可對其進行許多修改與改變而不脫離附加申請專利範圍所陳述之本揭露更廣泛的精神與範圍。據此,說明書與圖式則被視為說明性而非限制性。 再者,實施例與其他例示性實施例的上述使用不一定意指相同實施例或相同實例,但卻可意指不同且明顯的實施例,以及潛在相同的實施例。
100‧‧‧處理裝置
110‧‧‧處理器核心
120‧‧‧記憶體控制器單元
130‧‧‧記憶體加密引擎
140‧‧‧快取單元
142‧‧‧級別1快取
144‧‧‧級別2快取
146‧‧‧最後級別快取
150‧‧‧可組態安全性範圍暫存器

Claims (15)

  1. 一種處理器,其包含:一處理核心;一記憶體控制器,其在操作上耦合至該處理核心,以存取在一晶片外記憶體中的資料;以及一記憶體加密引擎(MEE),其在操作上耦合至該記憶體控制器,該MEE係用以:回應於偵測到相關於一記憶體位置的一記憶體存取操作,該記憶體位置由與該晶片外記憶體有關聯之一記憶體位址範圍內的一記憶體位址所識別,基於儲存在一安全性範圍暫存器上的一值,來識別與該記憶體位置有關聯的一安全性級別指示器;以及有鑑於該安全性級別指示器,來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項;其中該安全性級別指示器識別該晶片外記憶體的一僅加密記憶體範圍與一全保護記憶體範圍;其中回應於偵測到欲傳送該資料項到該晶片外記憶體的該全保護記憶體範圍,該MEE進一步儲存與該資料項有關聯的加密元資料。
  2. 如申請專利範圍第1項之處理器,其中該安全性級別指示器包含一個或多個記憶體位址範圍,以識別該晶片外記憶體之該僅加密記憶體範圍與該全保護記憶體範圍的至少一個。
  3. 如申請專利範圍第1項之處理器,其中該安全性級 別指示器包含一記憶體位址,該記憶體位址將該晶片外記憶體分成該僅加密記憶體範圍與該全保護記憶體範圍。
  4. 如申請專利範圍第1項之處理器,其中回應於偵測到欲傳送該資料項到該晶片外記憶體的該僅加密記憶體範圍,該MEE進一步加密與該資料項有關聯的資料。
  5. 如申請專利範圍第1項之處理器,其中回應於偵測到欲從該晶片外記憶體的該僅加密記憶體範圍傳送該資料項,該MEE進一步解密與該資料項有關聯的資料。
  6. 如申請專利範圍第1項之處理器,其中回應於偵測到欲從該晶片外記憶體的該全保護記憶體範圍傳送該資料項,該MEE進一步擷取與該資料項有關聯的加密元資料。
  7. 如申請專利範圍第1項之處理器,其中該資料係由與該等處理器核心有關聯的指令集架構(ISA)指令所保護,該等ISA指令保護該資料免於受到軟體攻擊,且與該等ISA指令有關聯的一記憶體範圍係儲存在該全保護記憶體範圍中,以保護該資料免於受到主動與重播攻擊。
  8. 一種用於記憶體位址範圍的支持可組態安全性級別的方法,其包含:回應於偵測到相關於一記憶體位置的一記憶體存取操作,該記憶體位置由與一晶片外記憶體裝置有關聯之一記憶體位址範圍內的一記憶體位址所識別,基於儲存在一安全性範圍暫存器上的一值,使用一處理裝置,來識別與該記憶體位置有關聯的一安全性級別指示器,其中該安全性 級別指示器識別該晶片外記憶體裝置的一僅加密記憶體範圍與一全保護記憶體範圍;以及有鑑於該安全性級別指示器,使用該處理裝置,來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項;以及回應於偵測到欲傳送該資料項到該晶片外記憶體的該全保護記憶體範圍,儲存與該資料項有關聯的加密元資料。
  9. 如申請專利範圍第8項之方法,其中該安全性級別指示器包含一個或多個記憶體位址範圍,該一個或多個記憶體位址範圍識別該晶片外記憶體裝置之該僅加密記憶體範圍與該全保護記憶體範圍的至少一個。
  10. 如申請專利範圍第8項之方法,其中該安全性級別指示器包含一記憶體位址,該記憶體位址將該晶片外記憶體分成該僅加密記憶體範圍與該全保護記憶體範圍。
  11. 如申請專利範圍第8項之方法,其進一步包含回應於偵測到欲傳送該資料項到該晶片外記憶體裝置的該僅加密記憶體範圍,加密與該資料項有關聯的資料。
  12. 如申請專利範圍第8項之方法,其進一步包含回應於偵測到欲從該晶片外記憶體裝置的該僅加密記憶體範圍傳送該資料項,解密與該資料項有關聯的資料。
  13. 如申請專利範圍第8項之方法,其進一步包含回應於偵測到欲從該晶片外記憶體的該全保護記憶體範圍傳送該資料項,擷取與該資料項有關聯的加密元資料。
  14. 如申請專利範圍第8項之方法,其中該資料係由與該等處理器核心有關聯的指令集架構(ISA)指令所保護,該等ISA指令保護該資料免於受到軟體攻擊,且與該等ISA指令有關聯的一記憶體範圍係儲存在該全保護記憶體範圍中,以保護該資料免於受到主動與重播攻擊。
  15. 一種電腦可讀取非暫態儲存媒體,其包含可執行指令,該等可執行指令當由一處理系統執行時,使該處理系統:回應於偵測到相關於一記憶體位置的一記憶體存取操作,該記憶體位置由與該晶片外記憶體有關聯之一記憶體位址範圍內的一記憶體位址所識別,基於儲存在一安全性範圍暫存器上的一值,來識別與該記憶體位置有關聯的一安全性級別指示器,其中該安全性級別指示器識別該晶片外記憶體裝置的一僅加密記憶體範圍與一全保護記憶體範圍;有鑑於該安全性級別指示器,來存取與該晶片外記憶體之該記憶體位址範圍有關聯的至少一部份資料項;以及回應於偵測到欲傳送該資料項到該晶片外記憶體的該全保護記憶體範圍,儲存與該資料項有關聯的加密元資料。
TW105118408A 2015-07-20 2016-06-13 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體 TWI712887B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/803,956 US9959418B2 (en) 2015-07-20 2015-07-20 Supporting configurable security levels for memory address ranges
US14/803,956 2015-07-20

Publications (2)

Publication Number Publication Date
TW201717030A TW201717030A (zh) 2017-05-16
TWI712887B true TWI712887B (zh) 2020-12-11

Family

ID=57835023

Family Applications (2)

Application Number Title Priority Date Filing Date
TW105118408A TWI712887B (zh) 2015-07-20 2016-06-13 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體
TW109141388A TWI770689B (zh) 2015-07-20 2016-06-13 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW109141388A TWI770689B (zh) 2015-07-20 2016-06-13 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體

Country Status (5)

Country Link
US (2) US9959418B2 (zh)
EP (1) EP3326107B1 (zh)
CN (1) CN107851170B (zh)
TW (2) TWI712887B (zh)
WO (1) WO2017014858A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9959418B2 (en) * 2015-07-20 2018-05-01 Intel Corporation Supporting configurable security levels for memory address ranges
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10042571B2 (en) * 2016-03-31 2018-08-07 Intel Corporation Techniques to provide run-time protections using immutable regions of memory
US10243990B1 (en) * 2016-09-23 2019-03-26 Apple Inc. Systems and methods for detecting replay attacks on security space
US10795742B1 (en) 2016-09-28 2020-10-06 Amazon Technologies, Inc. Isolating unresponsive customer logic from a bus
US10223317B2 (en) 2016-09-28 2019-03-05 Amazon Technologies, Inc. Configurable logic platform
US10628315B2 (en) * 2017-09-28 2020-04-21 Intel Corporation Secure memory repartitioning technologies
EP3540618B1 (en) * 2018-03-15 2023-01-25 Rohde & Schwarz GmbH & Co. KG Portable storage apparatus
US10838773B2 (en) * 2018-03-30 2020-11-17 Intel Corporation Techniques for dynamic resource allocation among cryptographic domains
US10761855B2 (en) 2018-05-02 2020-09-01 Micron Technology, Inc. Securing conditional speculative instruction execution
US11275587B2 (en) * 2018-05-02 2022-03-15 Micron Technology, Inc. Static identifications in object-based memory access
CN108958649B (zh) * 2018-05-17 2021-03-23 天津飞腾信息技术有限公司 一种用于存储系统的安全隔离方法及装置
US10795829B2 (en) * 2018-09-28 2020-10-06 Intel Corporation Device, method and system to selectively provide data validation functionality
US11100254B2 (en) * 2018-12-05 2021-08-24 Micron Technology, Inc. Processors with security levels adjustable per applications
CN109871698B (zh) * 2019-01-14 2021-10-26 深圳市奥特尔软件技术有限公司 数据处理方法、装置、计算机设备和存储介质
US10809925B2 (en) * 2019-01-28 2020-10-20 Macronix International Co., Ltd. Configurable security memory region
CN112015668B (zh) * 2019-05-31 2023-03-31 西安诺瓦星云科技股份有限公司 物理地址获取方法及装置和多媒体播放盒
US11099788B2 (en) * 2019-10-21 2021-08-24 Advanced Micro Devices, Inc. Near-memory data reduction
CN112825098A (zh) * 2019-11-21 2021-05-21 杭州海康威视数字技术股份有限公司 数据保护方法、装置、计算设备及存储介质
US11483147B2 (en) * 2020-01-23 2022-10-25 Bank Of America Corporation Intelligent encryption based on user and data properties
CN111625784B (zh) * 2020-05-29 2023-09-12 重庆小雨点小额贷款有限公司 一种应用的反调试方法、相关装置及存储介质
US11438315B1 (en) * 2021-06-15 2022-09-06 Lawrence Liu Methods, systems, apparatuses, and devices for providing durable forward confidentiality during communications between devices
TWI819635B (zh) * 2022-06-01 2023-10-21 瑞昱半導體股份有限公司 記憶體控制系統與記憶體控制方法
TWI818732B (zh) * 2022-09-16 2023-10-11 新唐科技股份有限公司 記憶體裝置及其操作方法
EP4372567A1 (en) 2022-11-18 2024-05-22 Thales Dis France Sas Processor and method for modifying processor behavior based on memory attributes and instruction type

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047972A1 (en) * 2004-08-27 2006-03-02 Microsoft Corporation System and method for applying security to memory reads and writes
US20140223197A1 (en) * 2011-06-29 2014-08-07 Shay Gueron Method and apparatus for memory encryption with integrity check and protection against replay attacks
US20150089173A1 (en) * 2013-09-24 2015-03-26 Siddhartha Chhabra Secure memory repartitioning
US20150154423A1 (en) * 2000-06-30 2015-06-04 Millind Mittal Method and Apparatus for Secure Execution Using a Secure Memory Partition

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8379846B2 (en) * 2009-05-21 2013-02-19 Freescale Semiconductor, Inc. Encryption apparatus and method therefor
EP2375355A1 (en) 2010-04-09 2011-10-12 ST-Ericsson SA Method and device for protecting memory content
WO2013095461A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Secure direct memory access
US9959418B2 (en) * 2015-07-20 2018-05-01 Intel Corporation Supporting configurable security levels for memory address ranges

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150154423A1 (en) * 2000-06-30 2015-06-04 Millind Mittal Method and Apparatus for Secure Execution Using a Secure Memory Partition
US20060047972A1 (en) * 2004-08-27 2006-03-02 Microsoft Corporation System and method for applying security to memory reads and writes
US20140223197A1 (en) * 2011-06-29 2014-08-07 Shay Gueron Method and apparatus for memory encryption with integrity check and protection against replay attacks
US20150089173A1 (en) * 2013-09-24 2015-03-26 Siddhartha Chhabra Secure memory repartitioning

Also Published As

Publication number Publication date
EP3326107A1 (en) 2018-05-30
EP3326107B1 (en) 2021-07-21
US9959418B2 (en) 2018-05-01
CN107851170A (zh) 2018-03-27
WO2017014858A1 (en) 2017-01-26
EP3326107A4 (en) 2019-02-20
CN107851170B (zh) 2022-06-24
TWI770689B (zh) 2022-07-11
US20180365438A1 (en) 2018-12-20
US10671740B2 (en) 2020-06-02
TW202137011A (zh) 2021-10-01
TW201717030A (zh) 2017-05-16
US20170024573A1 (en) 2017-01-26

Similar Documents

Publication Publication Date Title
TWI712887B (zh) 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體
EP3757856A1 (en) Cryptographic isolation of memory compartments in a computing environment
TWI690822B (zh) 安全區之平台遷移
KR102269010B1 (ko) 보호 영역에서의 메모리 초기화
US9910793B2 (en) Memory encryption engine integration
JP6344614B2 (ja) セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理
US9448950B2 (en) Using authenticated manifests to enable external certification of multi-processor platforms
US9852301B2 (en) Creating secure channels between a protected execution environment and fixed-function endpoints
US11531772B2 (en) Support for increased number of concurrent keys within multi-key cryptographic engine
CN110661767A (zh) 在微处理器架构内保护密钥和敏感数据免受攻击
US9501668B2 (en) Secure video ouput path
US20170063532A1 (en) Efficient sharing of hardware encryption pipeline for multiple security solutions
US10255199B1 (en) Evicting clean secure pages without encryption
US10230528B2 (en) Tree-less integrity and replay memory protection for trusted execution environment
CN110472444A (zh) 防止对加密存储器的未授权访问
US11204874B2 (en) Secure memory repartitioning technologies
JP2021057879A (ja) プライベートパイプラインを持つプロセッサ
CN117546168A (zh) 用于瞬态侧信道安全的使用上下文信息的密码计算
TWI842912B (zh) 處理系統,系統單晶片及用於履行算術運算之方法