TWI524182B - 用以改變安全獨立領域的頁面之位址的處理器、方法、系統及指令 - Google Patents

用以改變安全獨立領域的頁面之位址的處理器、方法、系統及指令 Download PDF

Info

Publication number
TWI524182B
TWI524182B TW103141001A TW103141001A TWI524182B TW I524182 B TWI524182 B TW I524182B TW 103141001 A TW103141001 A TW 103141001A TW 103141001 A TW103141001 A TW 103141001A TW I524182 B TWI524182 B TW I524182B
Authority
TW
Taiwan
Prior art keywords
page
processor
independent
instruction
unit
Prior art date
Application number
TW103141001A
Other languages
English (en)
Other versions
TW201525690A (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 TW201525690A publication Critical patent/TW201525690A/zh
Application granted granted Critical
Publication of TWI524182B publication Critical patent/TWI524182B/zh

Links

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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

用以改變安全獨立領域的頁面之位址的處理器、方法、系統及指令 發明領域
此處描述之實施例大致上係有關於電腦系統及處理器。更明確言之,此處描述之實施例大致上係有關於電腦系統及處理器中之安全性。
發明背景
安全防護在一電腦系統內部之應用程式及其資料之執行及完好益發重要。已經發展出提供私密資訊之安全處理及儲存之技術。此等技術包括用以在該電腦系統內部產生及維持一安全的受保護的或隔離的分區或環境之各種辦法。
依據本發明之一實施例,係特地提出一種處理器,其包含:用以解碼一使用者層級指令之一解碼單元,該使用者層級指令用以指示一安全獨立領域之一頁面且該使用者層級指令用以指示一線性位址;以及與該解碼單元耦合之一執行邏輯,該執行邏輯可操作以回應於該使用者 層級指令來將該安全獨立領域之該頁面的一初始線性位址,其係用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立領域之該頁面的內容並無損耗。
100‧‧‧電腦系統
102、200、400、800、910、915、1015、1070、1080‧‧‧處理器
104‧‧‧執行使用者層級軟體
106‧‧‧執行特權層級軟體
110‧‧‧安全獨立領域單元
114‧‧‧安全獨立領域儲存裝置
116‧‧‧頁面、安全獨立領域頁面儲存裝置
118‧‧‧安全獨立領域頁面儲存裝置元資料單元
120‧‧‧線性位址
122‧‧‧轉譯後備緩衝器(TLB)
129‧‧‧習知耦合機構
130、940、1032、1034‧‧‧記憶體
132‧‧‧特權層級軟體之一部分
134‧‧‧使用者層級軟體
136‧‧‧安全獨立領域
138‧‧‧安全碼及/或資料、安全獨立領域
140‧‧‧獨立領域頁面元資料修正及安全保護邏輯
142、242‧‧‧使用者層級獨立領域頁面元資料修正指令
144、444‧‧‧特權層級安全保護機制更新指令
208、408‧‧‧解碼單元、解碼器
212、412‧‧‧安全獨立領域執行邏輯
218、418‧‧‧獨立領域儲存裝置元資料單元
220-I‧‧‧初始線性位址
220-N‧‧‧新線性位址
240‧‧‧獨立領域頁面元資料修正邏輯
250‧‧‧元資料
252‧‧‧線性位址欄位
254、454‧‧‧指示器
256-I、456-I‧‧‧初始指示
256-N、456-N‧‧‧新或已更新指示
370、580‧‧‧方法
371-372、581-583‧‧‧方塊
440‧‧‧獨立領域頁面修正安全保護邏輯
460‧‧‧安全保護機制
600‧‧‧處理器管線
602‧‧‧提取階段
604‧‧‧長度解碼階段
606‧‧‧解碼階段
608‧‧‧配置階段
610‧‧‧重新命名階段
612‧‧‧排程階段
614‧‧‧暫存器讀取/記憶體讀取階段
616‧‧‧執行階段
618‧‧‧回寫/記憶體寫入階段回寫/記憶體寫入階段
622‧‧‧例外處理階段
624‧‧‧委付階段
630‧‧‧前端單元
632‧‧‧分支預測單元
634‧‧‧指令快取單元
636‧‧‧指令轉譯後備緩衝器(TLB)
638‧‧‧指令提取單元
640‧‧‧解碼單元
650‧‧‧執行引擎單元
652‧‧‧重新命名/配置器單元
654‧‧‧報廢單元
656‧‧‧排程器單元
658‧‧‧實體暫存器檔案單元
660‧‧‧執行簇集
662‧‧‧執行單元
664‧‧‧記憶體存取單元
670‧‧‧記憶體單元
672‧‧‧資料TLB單元
674‧‧‧資料快取單元
676、704‧‧‧層級2(L2)快取單元
690‧‧‧處理器核心
700‧‧‧指令解碼器
702‧‧‧晶粒上互連網路
706‧‧‧層級1(L1)快取
706A‧‧‧L1資料快取
708‧‧‧純量單元
710‧‧‧向量單元
712‧‧‧純量暫存器
714‧‧‧向量暫存器
720‧‧‧調和單元
722A-B‧‧‧數值轉換單元
724‧‧‧複製單元
726‧‧‧寫入遮罩暫存器
728‧‧‧16-寬算術邏輯單元(ALU)
802A-N‧‧‧核心
804A-N‧‧‧快取單元
806‧‧‧分享快取單元
808‧‧‧特用邏輯
810‧‧‧系統代理器單元
812‧‧‧以環型為基礎之互連單元
814‧‧‧集積式記憶體控制器單元
816‧‧‧匯流排控制器單元
900、1000、1100‧‧‧系統
920‧‧‧控制器中樞器
945、1038、1220‧‧‧共處理器
950‧‧‧輸入/輸出中樞器(IOH)
960、1014、1114‧‧‧輸入/輸出(I/O)裝置
990‧‧‧圖形記憶體控制中樞器(GMCH)
995‧‧‧類似連結
1000‧‧‧多處理器系統
1016、1020‧‧‧匯流排
1018‧‧‧匯流排橋接器
1022‧‧‧鍵盤/滑鼠
1024‧‧‧音訊I/O
1027‧‧‧通訊裝置
1028‧‧‧資料儲存裝置
1030‧‧‧指令/碼及資料
1039‧‧‧高效能介面
1050‧‧‧點對點互連體、P-P介面
1072、1082‧‧‧整合式記憶體控制器(IMC)單元、整合式記憶體及I/O控制邏輯(CL)
1076、1078、1086、1088、1096‧‧‧P-P介面
1076、1086、1094、1098‧‧‧P-P介面電路
1090‧‧‧晶片組
1200‧‧‧單晶片系統(SoC)
1202‧‧‧互連單元
1210‧‧‧應用程式處理器
1230‧‧‧靜態隨機存取記憶體(SRAM)單元
1232‧‧‧直接記憶體存取(DMA)單元
1240‧‧‧顯示單元
1302‧‧‧高階語言
1304‧‧‧x86編譯器
1306‧‧‧x86二進碼
1308‧‧‧替代指令集編譯器
1310‧‧‧替代指令集二進碼
1312‧‧‧指令轉換器
1314‧‧‧沒有至少一個x86指令集核心之處理器
1316‧‧‧有至少一個x86指令集核心之處理器
藉參考後文詳細說明部分及用以例示實施例之附圖將最明白地瞭解本發明。於該等附圖中:圖1為一電腦系統之一實施例之方塊圖,該系統可操作以提供一安全獨立領域,及於其中可具現本發明之實施例。
圖2為處理器之一實施例之方塊圖,該處理器可操作以執行一使用者層級獨立領域頁面元資料修正指令之一實施例。
圖3為處理一使用者層級獨立領域頁面元資料修正指令之方法之一實施例之方塊流程圖。
圖4為處理器之一實施例之方塊圖,該處理器可操作以執行一特權層級安全保護機制更新指令之一實施例。
圖5為處理一使用者層級獨立領域頁面元資料修正指令之方法之一實施例之方塊流程圖。
圖6A為一方塊圖例示依據本發明之實施例一有序管線實施例及一暫存器重新命名亂序簽發/執行管線實施例兩者。
圖6B為一方塊圖例示依據本發明之實施例欲含 括於一處理器的一有序架構核心實施例及一暫存器重新命名亂序簽發/執行架構核心實施例兩者。
圖7A為依據本發明之實施例一單一處理器核心連同其連結至晶粒上互連網路及連同該層級2(L2)快取記憶體之其本地子集之方塊圖。
圖7B為依據本發明之實施例於圖7A中之該處理器核心之部分之一放大視圖。
圖8為依據本發明之實施例一處理器之方塊圖,該處理器可具有多於一個核心,可具有一整合式記憶體控制器,及可具有整合式圖形。
圖9為依據本發明之一個實施例一系統之方塊圖。
圖10顯示為依據本發明之一實施例一第一更特定系統實例之一方塊圖。
圖11顯示為依據本發明之一實施例一第二更特定系統實例之一方塊圖。
圖12顯示為依據本發明之一實施例一SoC之一方塊圖。
圖13為一方塊圖對比依據本發明之實施例,一軟體指令轉換器之使用以將在一來源指令集中之二進位指令轉換成在一目標指令集中之二進位指令。
較佳實施例之詳細說明
此處揭示者為指令,用以執行該等指令之處理 器,當處理或執行該等指令時由該等處理器執行之方法,及結合一或多個處理器以處理或執行該等指令之系統。於後文詳細說明部分中,陳述無數特定細節(例如特定指令操作、處理器組態、微架構細節、操作順序等)。但可無此等特定細節而實施實施例。於其它情況下,眾所周知之電路、結構及技術並不以細節顯示以免遮蔽了對本文描述之瞭解。
圖1為一電腦系統100之一實施例之方塊圖,該系統可操作以提供一安全獨立領域136及於其中可具現本發明之實施例。該電腦系統包括一處理器102。於若干實施例中,該處理器可為通用處理器(例如用在桌上型電腦、膝上型電腦或其它電腦之該型通用微處理器)。另外,該處理器可為特用處理器。合宜特用處理器之實施例包括,但非限制性,網路處理器、通訊處理器、密碼處理器、圖形處理器、共處理器、嵌置式處理器、數位信號處理器(DSP)、及控制器(例如微控制器),只列舉數個實施例。該處理器可為各種複雜指令集電腦(CISC)處理器、各種精簡指令集電腦(RISC)處理器、各種極長指令字(VLIW)處理器、其各種混合、或其它型別之處理器中之任一者。
該電腦系統也可包括一記憶體130。該處理器及該記憶體係藉一習知耦合機構129(例如透過一或多個匯流排、中樞器、記憶體控制器、晶片組組件等)耦合或否則彼此通訊。該記憶體可包括一或多個不同記憶體裝置及/或一或多個不同型記憶體。
該記憶體中已經儲存特權層級或監督層級軟體132,諸如一或多個作業系統(OS)、虛擬機器監視器(VMM)、於環0操作之軟體等。該記憶體中也已經儲存使用者層級軟體134,諸如一或多個使用者層級應用程式(例如圖形應用程式、文字處理應用程式、財務金融應用程式等)。於操作期間,一部分使用者層級軟體134可由該處理器執行為執行使用者層級軟體104。同理,一部分特權層級軟體132可由該處理器執行或進行為執行特權層級軟體106。該執行軟體可包括由該處理器提取、解碼、及執行的巨集指令或指令集架構(ISA)指令。本執行軟體可提供給一解碼單元108(以及該處理器管線中之其它組件(例如提取單元、指令佇列、執行單元等)。
於若干實施例中,該電腦系統100也可操作以提供該安全獨立領域136。於該例示中只顯示單一安全獨立領域,但須瞭解選擇性地可有多個安全獨立領域。如此處使用,「安全獨立領域」該詞係廣義地用以指一安全的、受保護的或隔離的環境或容器,其中可操作、執行、載入或否則存在有一應用程式或其它軟體。安全獨立領域之實施例包括,但非限制性,安全容器、安全執行環境、隔離執行環境等。舉例言之,碼及/或資料138(例如與使用者層級軟體134相關聯)可置於該安全獨立領域內及自其中執行。於若干實施例中,該安全獨立領域可在該應用程式之位址空間中提供一受保護區域(例如於一線性位址空間中之一連續範圍),其可提供對抗軟體及硬體攻擊的保密性及完好 性,一般而言即便於特權惡意軟體存在下亦復如此。該安全獨立領域可針對軟體(例如使用者層級軟體134)提供一安全處所以放置及執行代碼及儲存於一特權層級軟體處理脈絡中之資料。
於實施例中,處理器102可包括處理器擴延以實例例證、管理、及否則支援該安全獨立領域138。於若干實施例中,該等擴延可操作以阻止不駐在該安全獨立領域內的任何軟體,含特權惡意軟體存取該安全獨立領域記憶體區域。於若干實施例中,該等處理器擴延可包括該處理器之一指令集之指令以及硬體及/或其上晶粒上邏輯以支援該安全獨立領域。如圖顯示,該處理器可具有一安全獨立領域單元110。該安全獨立領域單元可操作以協助與形成及維持該安全獨立領域有關的各項操作。該安全獨立領域單元可具現於硬體(例如電路)、韌體(例如儲存在非依電性記憶體(NVM)上之控制信號)、軟體、或其若干組合(例如硬體潛在組合若干韌體及/或若干軟體)。該等處理器擴延之一個合宜實施例包括英特爾®軟體防護擴延(Intel® SGX),其可加至未來英特爾®架構處理器,但本發明之範圍並非受此所限。Intel® SGX於此處也可簡稱為SGX。若有所需,SGX之進一步細節可得自英特爾公司軟體防護擴延規劃參考,文件編號329298-001US,2013年9月出版。SGX之進一步細節以及其它合宜擴延也描述於美國專利申請案第13/527,547號,名稱「提供安全應用程式執行之方法及設備」,申請日2012年6月19日。
如圖顯示,於若干實施例中,該安全獨立領域單元110可包括一安全獨立領域頁面儲存裝置116,其可由該處理器用以儲存針對一或多個執行獨立領域具有獨立領域碼及/或獨立領域資料之頁面116。舉例言之,如用於SGX具現的該安全獨立領域頁面儲存裝置之一個合宜實施例為一獨立領域頁面快取(EPC)。該安全獨立領域可操作或自安全獨立領域頁面儲存裝置執行。該安全獨立領域頁面儲存裝置可表示實體記憶體之一區。於一個面向中,該等頁面116可藉該特權層級軟體載入該獨立領域頁面儲存裝置內。當在該獨立領域頁面儲存裝置內部時,該等頁面可保護免於使用由該處理器提供之存取控制機制進行非獨立領域記憶體存取。舉例言之,該安全獨立領域單元可具有一存取控制機制(例如存取控制邏輯、範圍暫存器等)以防止存取該獨立領域頁面儲存裝置內部之該等頁面,除非由在該頁面經配置的該安全獨立領域內部之處理器上操作的一應用程式存取)。於若干實施例中,每當一安全獨立領域之一頁面係從該獨立領域頁面儲存裝置去除時,密碼保護可用以保護該安全獨立領域之機密性,及當該頁面被回載入該獨立領域頁面儲存裝置時偵測篡改。該安全獨立領域可藉該特權層級軟體加諸的分段及傳呼策略堅持。舉例言之,OS及/或VMM-管理的頁面表及擴延頁面表可針對安全獨立領域之頁面提供位址轉譯。該處理器可具有硬體或邏輯以保護該等頁面將對映至該獨立領域頁面儲存裝置。失敗可能潛在產生例外。
再度參考圖1,於若干實施例中,安全獨立領域單元110也可包括一安全獨立領域頁面儲存裝置元資料單元118,其可針對獨立領域頁面儲存裝置114之該等頁面116儲存元資料。舉例言之,用在SGX具現之該安全獨立領域頁面儲存裝置元資料單元之一個合宜實施例為獨立領域頁面快取對映圖(EPCM)。該安全獨立領域頁面儲存裝置元資料單元可表示該處理器之一內部微架構資料結構(例如硬體具現資料結構)。於該例示實施例中,該安全獨立領域頁面儲存裝置元資料單元係顯示為與該獨立領域頁面儲存裝置114之一分開結構,雖於其它實施例中,其可取而代之而整合為單一組件。於一個面向中,該安全獨立領域頁面儲存裝置元資料單元可針對該獨立領域頁面儲存裝置中之各個頁面儲存一分錄或另一元資料集合。如圖顯示,於若干實施例中,該等分錄或元資料集合可包括線性位址120,經由此位址許可該(等)安全獨立領域存取該等頁面116。該處理器可具有一轉譯後備緩衝器(TLB)122,其可快取可用以存取該等記憶體之該等線性頁面之轉譯。於若干實施例中,該元資料也可選擇性地包括一區塊化位元或狀態以指示該頁面係為或非為於一區塊化態。合宜型別之元資料的其它實施例包括,但非限制性,就有效性及存取能力而言安全獨立領域頁面之狀態、相對應於該等頁面之該安全獨立領域情況之一ID、該等頁面之讀取及/或寫入及/或執行許可、頁面之型別及其組合。該處理器及/或該安全獨立領域單元可操作以使用該安全獨立領域頁面儲存裝置元資料單 元以執行該安全獨立領域頁面儲存裝置中之該等頁面之存取控制。於若干實施例中,該安全獨立領域頁面儲存裝置元資料單元無法由軟體存取。
該等處理器擴延也可包括指令以實例例證、管理、及否則支援該安全獨立領域。於若干實施例中,該等指令可包括兩個不同型別之指令。更明確言之,第一型指令只能由該執行使用者層級軟體104及/或在非特權狀態(例如在環型3)執行或從事。第二型指令只能由該執行特權層級或督導層級軟體106及/或在特權狀態(例如在環型0)執行或從事。舉例言之,於SGX具現中,該等指令可於兩個指令助記符下組織為所謂「葉片功能」,亦即ENCLSx用於特權層級型指令,及ENCLUx用於非特權或使用者層級型指令。但如先前敘述,實施例並不限於SGX,反而可用於安全獨立領域之其它具現。
於SGX具現中,該ENCLSx助記符係用於一特定葉片號碼之獨立領域系統功能。該等ENCLSx指令只能由特權層級軟體(例如於環型0)執行。此等指令用以執行特權SGX葉片功能,其係用於管理獨立領域,除錯獨立領域等。該等ENCLSx指令可調用該經載明之特權SGX葉片功能。以SGX為例,軟體藉由設定適當值(例如葉片功能指數)於該暗示通用x86暫存器EAX作為輸入可載明該葉片功能。於SGX之情況下,該等通用暫存器RBX、RCX及RDX可具有特定葉片用途,例如提供輸入,提供輸出,或可未經使用。使用或不使用此等額外暫存器可藉個別葉片功能指數暗示或 針對其暗示。
該ENCLUx助記符係用於一特定葉片號碼之獨立領域使用者功能。該等ENCLUx指令只能由使用者層級或非特權軟體(例如於環型3)執行。此等指令用以執行用於操作該等獨立領域之非特權SGX葉片功能。該等ENCLUx指令可調用該經載明之特權SGX葉片功能。以SGX為例,軟體藉由設定適當值(例如葉片功能指數)於該暗示通用x86暫存器EAX作為輸入可載明該葉片功能。於SGX之情況下,該等通用暫存器RBX、RCX及RDX可具有特定葉片用途,例如提供輸入,提供輸出,或可未經使用。使用或不使用此等額外暫存器可藉個別葉片功能指數暗示或針對其暗示。
用於該等ENCLSx及ENCLUx助記符,各個葉片功能指數也可與一獨特特定葉片助記符相關聯。一SGX指令之長型表示可具有形式ENCLx[LEAF_MNEMONIC],於該處「x」可為「S」以標示一特權層級軟體可執行指令,或可為「U」以標示一使用者層級軟體可執行指令。為求簡明,長型指令於此處也可單獨以其「leaf_mnemonic」指稱。提出各種不同指令以實例例證、管理、除錯、或否則支援該安全獨立領域。舉例言之,SGX包括督導指令以產生一安全獨立領域、初始化一安全獨立領域、增加一頁面、自EPC移除一頁面、擴延一EPC頁面度量等。舉例言之,一EADD指令可用以增加一頁面。執行該EADD指令可使得該處理器初始化一EPCM分錄,及於該分錄增加於其它元資料中之該線性位址,其將由該安全獨立領域用以存取該新增 加的頁面。SGX也包括使用者層級指令以進入一獨立領域,退出一獨立領域,再度進入一獨立領域等。該安全獨立領域單元110可包括安全獨立領域執行邏輯112以執行此等指令之各項操作或功能。須瞭解執行邏輯中之部分可為該安全獨立領域單元內部或外部(例如可潛在使用不限於該安全獨立領域單元的某個邏輯)。此等各項指令之進一步細節出現於軟體防護擴延規劃參考。
習知地,安全獨立領域之具現,例如SGX安全獨立領域之具現通常不允許動態頁面重新配置。舉例言之,SGX具現提供某些方式,其中特權層級軟體可動態地管理屬於一受保護執行區的該記憶體。如先前描述,SGX中有指令(例如指令葉片)以增加一葉片,去除一葉片,阻擋一EPC葉片,擴延一EPC葉片度量等。但目前於SGX可用的該等記憶體管理選項係限於配置在一固定線性位址的記憶體頁面。該記憶體頁面之線性位址於該資料壽命期間通常無法改變(亦即不毀損資料)。結果,於SGX之目前具現中,為了將一受保護之記憶體頁面從一個線性位址重新配置至另一個位址,通常涉及首先釋放該受保護之記憶體頁面,及然後在該新的線性位址重新配置之,但如此使得該受保護之記憶體頁面之內容歸零或毀損。結果,SGX之目前具現不允許實際動態頁面重新配置,其中於該頁面之使用壽命期間,該頁面之該線性位址被改變而不會造成歸零、抹除、覆寫、或否則喪失該頁面之全部內容。結果,安全獨立領域之SGX具現通常不允許動態程式庫載入器在該等安全獨 立領域內部操作。於該載入處理期間,動態程式庫載入器通常配置記憶體頁面於一專用線性位址,及然後動態地重新配置該記憶體頁面至該目標線性位址。此種辦法用以滿足其安全性目標。當針對動態程式庫載入器執行此種動態頁面重新配置時,當該等頁面被動態重新配置時,該等頁面內容不應歸零或否則毀損。
再度參考圖1,於若干實施例中,該處理器之該指令集可包括一使用者層級獨立領域頁面元資料修正指令142,其可由使用者層級軟體(例如軟體134)執行。於若干實施例中,該處理器之指令集也可選擇性地包括一特權層級安全保護機制更新指令144,其可由特權層級軟體(例如132)執行。於若干實施例中,該處理器及/或該安全獨立領域單元110可包括獨立領域頁面元資料修正及安全保護邏輯140,該邏輯可回應該使用者層級獨立領域頁面元資料修正指令142及/或該特權層級安全保護機制更新指令144。於若干實施例中,該邏輯140可分布於該安全獨立領域單元之不同組件間,諸如安全獨立領域執行邏輯、獨立領域頁面儲存裝置元資料單元等。於若干實施例中,該邏輯140可包括本文它處所顯示的及描述的邏輯中之任一者(例如結合圖2-3)。
於若干實施例中,該使用者層級獨立領域頁面元資料修正指令142可經操作以使得該處理器及/或該獨立領域頁面元資料修正及安全保護邏輯140以改變或修正一獨立領域頁面(例如頁面116中之一者)之元資料。於若干實施 例中,該指令可經操作以使得該處理器及/或邏輯140於其使用壽命期間改變或修正該獨立領域頁面之一線性位址及/或不會歸零或毀損該獨立領域頁面之該等內容。於若干實施例中,此點可用以在一安全獨立領域內部執行動態頁面重新配置,諸如由動態程式庫載入器所常用的該型動態頁面重新配置。於若干實施例中,該使用者層級獨立領域頁面元資料修正指令142也可選擇性地操作以讓該處理器及/或邏輯140組配一指示,指示該頁面之屬性或元資料已經修正,及針對該頁面之一安全保護機制(例如追蹤或阻擋機制)已陳舊或過時。於若干實施例中,該使用者層級獨立領域頁面元資料修正指令142可包括結合圖2顯示的及描述的該等指令之特性或屬性中之任一者。
於若干實施例中,該特權層級安全保護機制更新指令144可經操作以讓該處理器及/或該獨立領域頁面元資料修正及安全保護邏輯140更新與元資料經修正之該頁面相關聯的一安全保護機制(例如阻擋機制或追蹤機制)。優異地,更新該安全保護機制可輔助阻止存取至元資料(例如線性位址)經修正之該頁面直到可安全地進行為止。該安全保護機制可輔助避免由於該處理器之轉譯後備緩衝器(TLB)及/或其它快取或緩衝結構,而執行緒或其它實體觀察或存取獨立領域頁面之不同視圖的可能(例如修正之前及之後)。舉例言之,該安全保護機制可輔助限制存取至一獨立領域頁面直到已經從該處理器之轉譯後備緩衝器(TLB)及/或其它轉譯相關之快取或緩衝結構中清除全部相關的頁面 轉譯為止。於若干實施例中,該特權層級安全保護機制更新指令144也可操作以讓該處理器及/或該獨立領域頁面元資料修正及安全保護邏輯140組配該指令,該指令先前因指令142已經組配,以指示該安全保護機制已經被更新或不再過時。於若干實施例中,該特權層級安全保護機制更新指令144可包括結合圖4顯示的及描述的該等指令之特性或屬性中之任一者。
優異地,該指令142及該邏輯140可用以許可獨立領域頁面之線性位址被修正而不會歸零或毀損該獨立領域頁面之該等內容(例如於該等獨立領域頁面之進行中使用壽命期間)。於若干實施例中,此點可用以在一安全獨立領域內部進行動態頁面重新配置,諸如常見由動態程式庫載入器使用的該型動態頁面重新配置。如此可允許動態程式庫載入器在一安全獨立領域內部操作。如此轉而允許更寬廣類別之軟體在該等安全獨立領域內部操作。如此也可輔助顯著改良在該等安全獨立領域內部操作之應用程式之效能。指令144及邏輯140可允許該安全保護機制經更新,於線性位址改變之情況下,其可輔助阻止存取該等安全獨立領域直到可安全存取為止(例如直到全部相關頁面轉譯皆已從該處理器之轉譯後備緩衝器及/或其它轉譯相關結構清除為止)。
圖2為處理器200之一實施例之方塊圖,該處理器200可操作以執行一使用者層級獨立領域頁面元資料修正指令242之一實施例。於實施例中,該處理器200可具有先 前就圖1之處理器100描述的組件、特性件、及/或特定選擇性細節中之任一者。另外,該處理器200可具有相似的或不同的組件、特性件、及/或細節。
該例示處理器包括一解碼單元或解碼器208。該解碼單元可接收及解碼該使用者層級獨立領域頁面元資料修正指令242。該指令242為一使用者層級指令。舉例言之,於一SGX實作之一實施例中,該指令可為該ENCLU指令之一葉片(例如ENCLU[EMODPLA])。於此種SGX具現中,該指令242部分可藉於一通用暫存器EAX內之一值辨識,但本發明之範圍並非受此所限。於若干實施例中,該指令242只可在相關安全獨立領域內執行。該指令242可表示一相當高階巨集指令、機器碼指令、或組合語言指令。該解碼器可解碼該指令,及輸出一或多個相對低階微指令、微運算、微碼載入點、或其它相對低階指令或控制信號其反映、表示及/或推衍自該指令242。該等一或多個低階指令或控制信號可經由一或多個低階(例如電路層級或硬體層級)操作而具現該指令242。該解碼單元可使用各種不同機構具現包括,但非限制性,微碼唯讀記憶體(ROM)、詢查表、硬體具現、可規劃邏輯陣列(PLA)、及用以具現技藝界已知之解碼單元的其它機構。
再度參考圖2,獨立領域頁面元資料修正邏輯240係耦合該解碼單元208之輸出。該獨立領域頁面元資料修正邏輯240包括獨立領域頁面儲存裝置元資料單元218。於若干實施例中,該獨立領域頁面儲存裝置元資料單元可包括 一獨立領域頁面快取對映圖(EPCM),且可具有技藝界已知之一EPCM之任何特性,但本發明之範圍並非受此所限。該獨立領域頁面儲存裝置元資料單元可包括針對獨立領域頁面之元資料,包括針對一給定獨立領域頁面之元資料250。如圖顯示,於若干實施例中,該元資料250可包括針對該給定獨立領域頁面之一線性位址欄位252。初始地,該線性位址欄位可儲存用以存取該給定獨立領域頁面之一初始線性位址220-I。如圖顯示,於若干實施例中,該元資料250也可包括一指示器254指示與該相對應於獨立領域頁面相關聯的一安全保護機制是否過時或陳舊。初始地,該指示器254可儲存一指示256-I該安全保護機制並非過時或陳舊。該元資料250也可包括各種其它型別之元資料(圖中未顯示),諸如於若干實施例中,讀取及/或寫入及/或執行許可一EPCM中之其它型別之元資料等。本發明之範圍並不限於此等其它型別之元資料,其可含括或可不含括於該特定具現中。
該獨立領域頁面元資料修正邏輯240也包括安全獨立領域執行邏輯212耦接至該解碼單元之輸出。該執行邏輯212可接收該等一或多個表示及/或推衍自該指令242之已解碼或否則已經轉換之指令或控制信號。該執行邏輯可回應於及/或由於該使用者層級獨立領域頁面元資料修正指令242(例如回應於解碼自該指令242之一或多個指令或控制信號)之結果可操作以改變或修改該元資料250。例如,如圖顯示,於若干實施例中,該執行邏輯可將於該線性位址欄位252中之該初始線性位址220-I改變或修改成一 新線性位址220-N。於若干實施例中,該指令242可提供舊線性位址及新線性位址於二暗示性指示的暫存器內。於其它實施例中,該指令242可明確地載明兩個暫存器具有舊及新線性位址。於若干實施例中,可達成該線性位址之此項改變或修改而未歸零或毀損該相對應獨立領域頁面之該等內容。於若干實施例中,此點可結合動態頁面重新配置完成。於若干實施例中,此點可藉一動態程式庫載入器達成,其於若干實施例中,可於該相對應安全獨立領域(例如該獨立領域藉其它元資料對映至該獨立領域頁面)內操作。另外,於其它實施例中,該指令可用以修正其它型別的元資料(例如讀取/寫入/執行一獨立領域頁面之許可,執行其它合法存取權利修正等)。
於若干實施例中,該執行邏輯也可回應於及/或因使用者層級獨立領域頁面元資料修正指令242之結果(例如回應於自該指令242解碼的一或多個指令或控制信號)選擇性地可操作以組配該指示器254該安全保護機制為(或至少相信潛在地)過時或陳舊。舉例言之,如圖顯示,於若干實施例中,該執行邏輯可改變該安全保護機制為非過時的或陳舊的該初始指示256-I,成為該安全保護機制為(或至少相信潛在地)過時或陳舊之一新或更新指示256-N。於若干實施例中,使用者層級軟體透過該使用者層級指令242可修正或組配該指示器254以指示針對一頁面的元資料已經修正,例如該頁面的一線性位址已經修正,及針對該獨立領域頁面(例如經封阻階段(blocked epoch))之該相對應於安全 保護機制可為陳舊或過時。舉例言之,該過時指示可解譯為一指示該已修正頁面未經追蹤及/或該已修正頁面之經封阻階段為陳舊。於若干實施例中,該使用者層級軟體可能無法更新該安全保護機制(例如可能無法產生一新經封阻階段以置換陳舊或過時的經封阻階段),原因在於更新該安全保護機制可被保留用於特權層級軟體(例如該使用者層級軟體可能不具有足夠存取至該安全獨立領域之該硬體安全保護機制)。舉例言之,此點可為輔助避免有問題的併同互動或與ENCLS葉片衝突的情況。取而代之,該使用者層級軟體透過該使用者層級指令242可修改或組配該指示器254以指示該安全保護機制為陳舊或過時。該特權層級軟體(例如OS、VMM等)能夠讀取或觀察該指示器254。如此,於若干實施例中,該指示器254可用作為一提示或扳機通訊一需要自該使用者層級軟體更新該安全保護機制(例如需要一新經封阻階段)給該特權層級軟體。
不同型指示器254適合不同實施例。於若干實施例中,該指示器254可為該處理器之一硬體具現指示器。於若干實施例中,每個獨立領域頁面可有一個此種指示器。此種硬體具現指示器之使用可輔助提供優於一軟體具現指示器之改良安全性。合宜指示器之實施例包括,但非限制性,位元、旗標、暫存器中之欄位或值、硬體具現資料結構中之欄位或值等。於若干實施例中,該指示器可為架構上可見。於若干實施例中,該指示器可包括一或多個位元、欄位一分錄之部分、或一EPCM之其它部分,但本發明之範 圍並非受此所限。舉例言之,於一個具體實施例中,該指示器可為一新位元,此處稱作一U-位元,其可被加至一EPCM(例如每個分錄及/或每個獨立領域頁面一個U-位元)。根據一個可能習慣,該U-位元可由使用者層級軟體設定為邏輯值1以指示該安全保護機制為過時(例如一經封阻階段為陳舊),且可由特權層級軟體被清除為邏輯值零,以指示該安全保護機制為最新的或目前的(例如已經產生一新經封阻階段)。於替代實施例中,相反習慣亦屬可能。須瞭解此點僅為一個實施例,可選擇性地使用取代的另一形式指示器以取而代之。
該執行邏輯及/或該處理器可包括特定或特殊邏輯(例如電晶體、積體電路、或潛在地組合韌體(例如儲存於非依電性記憶體中之指令)及/或軟體之其它硬體),其可操作以執行該指令242及/或回應於該指令242(例如回應於解碼自或否則推衍自該指令242之一或多個指令或控制信號)而修正該獨立領域頁面之該元資料。
圖3為處理一使用者層級獨立領域頁面元資料修正指令之方法370之一實施例之方塊流程圖。於各種實施例中,該方法可藉一處理器、指令處理設備、或其它數位邏輯裝置執行。於若干實施例中,圖3之操作及/或方法可由圖1及/或圖2之該處理器執行或在處理器內部執行。針對圖1及/或圖2之該處理器及/或設備此處描述的該等組件、特性件、及特定選擇性細節也選擇性地適用至圖3之操作及/或方法。另外,圖3之操作及/或方法可由相似的或不同的該 處理器或設備執行及/或在其內部執行。再者,圖1及/或圖2之該處理器可與圖3之該處理器相同地、相似地、或不同地執行操作及/或方法。
於方塊371,該方法包括接收一使用者層級軟體。於若干實施例中,該使用者層級指令可指示一安全獨立領域之一頁面及可指示一線性位址。於各種面向中,該指令可接收在處理器、指令處理裝置、或其部分(例如指令提取單元、解碼單元、匯流排介面單元等)。於各種面向中,該指令可接收自一非在晶粒上來源(例如自記憶體、互連體等)或自一晶粒上來源(例如自一指令快取、指令佇列等)。該方法包括回應於該使用者層級指令,改變儲存於一獨立領域頁面儲存裝置元資料單元中之該安全獨立領域之該頁面的一初始線性位址成由該使用者層級指令指示之該線性位址,於方塊372。於若干實施例中,此點可完成而不歸零、抹除、或否則喪失安全獨立領域之頁面內容。於若干實施例中,該指令可選擇性地指示兩個暫存器,一個具有欲被改變的該初始線性位址,及另一個具有該新線性位址。於若干實施例中,該方法也可選擇性地包括組配一硬體具現指示器以指示與該頁面相關聯的一安全保護機制為陳舊或過時。
圖4為處理器400之一實施例之方塊圖,該處理器可操作以執行一特權層級安全保護機制更新指令444之一實施例。於實施例中,該處理器400可具有前文針對圖1之處理器100描述的組件、特性件、及/或特定選擇性細節中 之任一者。另外,該處理器400可具有相似的或不同的組件、特性件、及/或細節。
該例示處理器包括一解碼單元或解碼器408。該解碼單元可接收及解碼該特權層級安全保護機制更新指令444。該指令444為一特權層級指令。舉例言之,於一SGX具現之一實施例中,該指令可為ENCLS指令之一葉片(例如ENCLS[ETRACKPG])。於此種SGX具現中,該指令444可由於一通用暫存器EAX中之一值部分辨識,但本發明之範圍並非受此所限。於若干實施例中,該指令444只能由特權或督導層級軟體執行。於若干實施例中,該指令可指示該目標獨立領域頁面之一位址(例如暗示地指示一通用暫存器具有該目標獨立領域頁面之該位址)。該指令444可表示一相對高階巨集指令、機器碼指令、或組合語言指令。該解碼器可解碼該指令,及輸出一或多個相對低階微指令、微運算、微碼載入點、或其它相對低階指令或控制信號其反映、表示及/或推衍自該指令444。該等一或多個低階指令或控制信號可經由一或多個低階(例如電路層級或硬體層級)操作而具現該指令444。該解碼單元可使用各種不同機構具現包括,但非限制性,微碼唯讀記憶體(ROM)、詢查表、硬體具現、可規劃邏輯陣列(PLA)、及用以具現技藝界已知之解碼單元的其它機構。
再度參考圖4,獨立領域頁面修正安全保護邏輯440係耦合該解碼單元408之輸出。該獨立領域頁面修正安全保護邏輯440包括獨立領域頁面儲存裝置元資料單元 418。該獨立領域頁面儲存裝置元資料單元418可類似或相同本文它處描述者(例如單元118、218等)。於若干實施例中,該獨立領域頁面儲存裝置元資料單元可包括一獨立領域頁面快取對映圖(EPCM),且可具有技藝界已知之一EPCM之任何特性,但本發明之範圍並非受此所限。
該獨立領域頁面元資料修正邏輯440也包括耦合該解碼單元之輸出之安全獨立領域執行邏輯412。該執行邏輯412可接收該等一或多個表示及/或推衍自該指令444之已解碼或否則已經轉換之指令或控制信號。該執行邏輯可回應於及/或由於該特權層級安全保護機制更新指令444(例如回應於解碼自該指令444之一或多個指令或控制信號)之結果可操作以更新與對應於一指示器454之一獨立領域頁面相關聯之一安全保護機制460,該指示器454指示其相關聯的安全保護機制為過時或陳舊。該安全保護機制可輔助避免在該處理器之TLB及其它轉譯相關快取或緩衝結構之存在下,該系統內之執行緒或其它實體存取或觀看獨立領域頁面之不同版本(例如修正之前及之後)。舉例言之,於若干實施例中,更新該安全保護機制可包括產生或設定與該獨立領域頁面相關聯的一新經封阻階段,相對應於該指示器454指示其相關聯的安全保護機制為過時或陳舊(例如以該經封阻階段對該頁面加戳記)。該階段可經操作以防止存取該經修正之獨立領域頁面,直到全部相關轉譯對映關係皆已經從該處理器之該TLB及/或其它相關結構清除為止。舉例言之,該經封阻階段可造成用於該獨立領域頁面的一 修正位元維持設定,直到具有比該已更新經封阻階段更小的階段之全部執行緒皆離開該安全獨立領域為止,但本發明之範圍並非受此所限。另外,取而代之,可使用其它安全保護機制。舉例言之,該等TLB可經掃除。至於另一實施例,特定線性位址可自該等TLB掃除。其它形式之安全保護機制將為熟諳技藝人士顯然易知且從本文揭示獲益。
於若干實施例中,該執行邏輯412也可選擇性地回應於及/或由於該特權層級安全保護機制更新指令444之結果(例如回應於自該指令444解碼之一或多個指令或控制信號)可操作以修正或組配該指示器454指示該安全保護機制為非過時或為現行的。先前描述之指示器中之任一者皆適合(例如結合圖2討論之EPCS中之U-位元及/或任何其它者)。如圖顯示,於若干實施例中,該執行邏輯可改變該初始指示456-I指示該安全保護機制為過時或陳舊,成一新或更新之指示456-N指示該安全保護機制為非過時或為現行的。於若干實施例中,在讀取該初始過時指示456-I或否則得知該過時指示之後,特權層級軟體可執行該特權層級指令444。換言之,特權層級軟體可將該初始過時指示456-I視為一暗示或扳機指示該執行安全保護機制460須被更新,且可回應地執行該特權層級指令444以更新該安全保護機制。
該執行邏輯及/或該處理器可包括特定或特殊邏輯(例如電晶體、積體電路、或潛在地組合韌體(例如儲存於非依電性記憶體中之指令)及/或軟體之其它硬體),其可操 作以執行該指令444及/或回應於該指令444(例如回應於解碼自或否則推衍自該指令444之一或多個指令或控制信號)而修正該獨立領域頁面之該元資料。
圖5為處理一特權層級獨立領域頁面元資料修正指令之方法580之一實施例之方塊流程圖。於各種實施例中,該方法可藉一處理器、指令處理設備、或其它數位邏輯裝置執行。於若干實施例中,圖5之操作及/或方法可由圖1及/或圖4之該處理器執行或在處理器內部執行。針對圖1及/或圖4之該處理器及/或設備此處描述的該等組件、特性件、及特定選擇性細節也選擇性地適用至圖5之操作及/或方法。另外,圖5之操作及/或方法可由相似的或不同的該處理器或設備執行及/或在其內部執行。再者,圖1及/或圖4之該處理器可與圖5之該處理器相同地、相似地、或不同地執行操作及/或方法。
該方法包括於方塊581接收一特權層級指令指示一安全獨立領域之一頁面。於若干實施例中,該指令可指示該目標獨立領域頁面之一位址(例如暗示性地指示具有該目標獨立領域頁面之該位址之一通用暫存器)。於各種面向中,該指令可接收在處理器、指令處理裝置、或其部分(例如指令提取單元、解碼單元、匯流排介面單元等)。於各種面向中,該指令可接收自一非在晶粒上來源(例如自記憶體、互連體等)或接收自一晶粒上來源(例如自一指令快取、指令佇列等)。該方法包括於方塊582,回應於該特權層級指令,更新與該安全獨立領域之該指示頁面相關聯的一安 全保護機制。於各種實施例中,此點可以本文它處描述之多種方式中之任一者完成。該方法包括於方塊583,組配一硬體具現的指示器其係相對應於該安全獨立領域之頁面,及其可存取至少一個使用者層級指令以回應於該使用者層級指令,指示與該安全獨立領域之頁面相關聯的該安全保護機制係最新的。
核心架構、處理器、及電腦架構實施例
處理器核心可以不同方式,針對不同目的,及於不同處理器內具現。舉例言之,此等核心之具現可包括:1)意圖用於通用計算之一通用有序核心;2)意圖用於通用計算之一高效能通用亂序核心;3)意圖主要用於圖形及/或科學(通量)計算之一特用核心。不同處理器之具現可包括:1)一CPU包括意圖用於通用計算之一或多個通用有序核心及/或意圖用於通用計算之一或多個通用亂序核心;及2)一共處理器包括意圖主要用於圖形及/或科學(通量)之一或多個特用核心。此等不同處理器結果導致不同電腦系統架構,其可包括:1)在與該CPU分開的一晶片上之該共處理器;2)在與該CPU相同封裝體內之一分開晶粒上之該共處理器;3)在與該CPU相同晶粒上之該共處理器(於該種情況下,此種共處理器偶爾稱作特用邏輯,諸如整合式圖形及/或科學(通量)邏輯,或稱作特用核心);及4)一單晶片系統其可包括在相同晶粒上的所描述之CPU(偶爾稱作應用核心或應用處理器)、前文描述之共處理器、及額外功能。其次描述核心架構實例,接著為處理器及電腦架構實施例之描述。
核心架構實施例
有序及亂序核心方塊圖
圖6A為一方塊圖例示依據本發明之實施例一有序管線實施例及一暫存器重新命名亂序簽發/執行管線實施例兩者。圖6B為一方塊圖例示依據本發明之實施例欲含括於一處理器的一有序架構核心實施例及一暫存器重新命名亂序簽發/執行架構核心實施例兩者。圖6A-B中之實線框例示該有序管線及有序核心,而虛線框之選擇性增加例示該暫存器重新命名亂序簽發/執行管線及核心。設該有序面向為該亂序面向之一子集,將描述該亂序面向。
於圖6A中,一處理器管線600包括一提取階段602、一長度解碼階段604、一解碼階段606、一配置階段608、一重新命名階段610、一排程(也稱調度或簽發)階段612、一暫存器讀取/記憶體讀取階段614、一執行階段616、一回寫/記憶體寫入階段618、一例外處理階段622、及一委付階段624。
圖6顯示處理器核心690包括一前端單元630耦接至一執行引擎單元650,及兩者係耦接至一記憶體單元670。該核心690可為一精簡指令集計算(RISC)核心、一複雜指令集計算(CISC)核心、一極長指令字(VLIW)核心、或一混合或替代核心型別。至於又另一選項,該核心690可為一特用核心諸如網路或通訊核心、壓縮引擎、共處理器核心、通用計算圖形處理單元(GPGPU)核心、圖形核心等。
該前端單元630包括一分支預測單元632耦接至 一指令快取單元634,其係耦接至一指令轉譯後備緩衝器(TLB)636,其係耦接至一指令提取單元638,其係耦接至一解碼單元640。該解碼單元640(或解碼器)可解碼指令,及產生一或多個微運算、微碼載入點、微指令、或其它控制信號其係解碼自,或否則其係反映或推衍自該等原先指令作為輸出。該解碼單元640可使用各種不同機制具現。合宜機制之實施例包括,但非限制性,詢查表、硬體具現、可規劃邏輯陣列(PLA)、微碼唯讀記憶體(ROM)等。於一個實施例中,該核心690包括一微碼ROM或儲存針對某些巨集指令之微碼的其它媒體(例如於解碼單元640或否則於前端單元630內部)。該解碼單元640係耦接至該執行引擎單元650中之一重新命名/配置器單元652。
該執行引擎單元650包括該重新命名/配置器單元652耦接至一報廢單元654及一或多個排程器單元656之一集合。該排程器單元656表示任何數目之不同排程器,包括預約站台、中央指令窗等。該排程器單元656係耦接至該實體暫存器檔案單元658。該等實體暫存器檔案單元658各自表示一或多個實體暫存器檔案,其中之不同者儲存一或多個不同資料型別,諸如純量整數、純量浮點、壓縮整數、壓縮浮點、向量整數、向量浮點、狀態(例如一指令指標器其為下個欲執行指令之位址)等。於一個實施例中,該實體暫存器檔案單元658包含一向量暫存器單元、一寫入遮罩暫存器單元、及一純量暫存器單元。此等暫存器單元可提供架構向量暫存器、向量遮罩暫存器、及通用暫存器。該(等) 實體暫存器檔案單元658係由一報廢單元654疊置以例示可具現暫存器重新命名及亂序執行的各種方式(例如使用整序緩衝器及報廢暫存器檔案;使用未來檔案、歷史緩衝器及報廢暫存器檔案;使用暫存器對映圖及一集合之暫存器等)。該報廢單元654及實體暫存器檔案單元658係耦接至該執行簇集660。該執行簇集660包括一集合之一或多個執行單元662及一集合之一或多個記憶體存取單元664。該等執行單元662可執行各項操作(例如移位、加、減、乘)及於各型資料上執行(例如純量浮點、壓縮整數、壓縮浮點、向量整數、向量浮點)。雖然若干實施例可包括專用於特定功能或功能集合之多個執行單元,但其它實施例可包括只有一個執行單元或多個執行單元其全部執行全部功能。排程器單元656、實體暫存器檔案單元658、及執行簇集660顯示可能為多數,原因在於某些實施例針對某型資料/操作形成分開管線(例如一純量整數管線、一純量浮點/壓縮整數/壓縮浮點/向量整數/向量浮點管線、及/或一記憶體存取管線其各自具有其本身的排程器單元、實體暫存器檔案單元、及/或執行簇集;及以一分開記憶體存取管線為例,具現某些實施例其中只有此一管線的執行簇集具有記憶體存取單元664)。也須瞭解當使用分開管線時,此等管線中之一或多者可為亂序簽發/執行,而其餘管線為有序。
該集合之記憶體存取單元664係耦接至該記憶體單元670,其包括一資料TLB單元672耦接至一資料快取單元674耦接至一層級2(L2)快取單元676。於一個具體實施例 中,記憶體存取單元664可包括一負載單元、一儲存位址單元、及一儲存資料單元,其各自係耦接至該記憶體單元670中之該資料TLB單元672。該指令快取單元634係進一步耦接至該記憶體單元670中之一層級2(L2)快取單元676。該L2快取單元676係耦接至快取記憶體之一或多個其它層級及最終耦接至一主記憶體。
舉例言之,該暫存器重新命名亂序簽發/執行核心架構實例可具現該管線600如下:1)指令提取單元638執行提取及長度解碼階段602及604;2)解碼單元640執行該解碼階段606;3)重新命名/配置器單元652執行該配置階段608及重新命名階段610;4)該(等)排程器單元656執行排程階段612;5)實體暫存器檔案單元658及記憶體單元670執行暫存器讀取/記憶體讀取階段614;該執行簇集660執行執行階段616;6)記憶體單元670及實體暫存器檔案單元658執行回寫/記憶體寫入階段618;7)各種單元可涉及該例外處理階段622;及8)報廢單元654及實體暫存器檔案單元658執行該委付階段624。
該核心690可支援一或多個指令集(例如x86指令集(具有若干擴延已經增加較新版本);加州山尼維爾之MIPS技術公司的MIPS指令集;加州山尼維爾之ARM控股公司之ARM指令集(具有選擇性額外擴延諸如NEON)),包括此處描述之該(等)指令。於一個實施例中,該核心690包括邏輯以支援一壓縮資料指令集擴延(例如AVX1、AVX2),藉此許可由許多多媒體應用程式使用的運算將使用壓縮資 料進行。
須瞭解該核心可支援多執行緒(執行二或多個運算或執行緒之並列集合),且可以多種方式達成包括時間截割多執行緒、同時多執行緒(於該處一單一實體核心針對該實體核心同時執行多執行緒的該等執行緒各自提供一邏輯核心),或其組合(例如時間截割提取及解碼,及其後同時多執行緒,諸如英特爾®超執行緒技術)。
雖然暫存器重新命名係以亂序執行脈絡描述,但須瞭解暫存器重新命名可用於一有序架構。雖然該處理器之例示實施例也包括分開的指令及資料快取單元634/674及一分享L2快取單元676,但替代實施例可具有一單一內部快取記憶體用於指令及資料兩者,諸如層級1(L1)內部快取記憶體,或內部快取記憶體之多個層級。於若干實施例中,該系統可包括一內部快取記憶體與在該核心及/或記憶體外部之一外部快取記憶體之組合。另外,全部快取記憶體可在該核心及/或記憶體之外部。
有序核心架構之特定實例
圖7A-B例示有序核心架構之一更特定實施例之方塊圖,該核心將為晶片中之數個邏輯區塊中之一者(包括同型及/或不同型之其它核心)。取決於應用,該等邏輯區塊經由一高頻寬互連網路(例如環型網路)與某個固定功能邏輯、記憶體I/O介面、及其它必需I/O邏輯通訊。
圖7A為依據本發明之實施例一單一處理器核心連同其連結至晶粒上互連網路702及連同該層級2(L2)快取 記憶體704之其本地子集之方塊圖。於一個實施例中,一指令解碼器700支援具有一壓縮資料指令集擴延之x86指令集。一L1快取706許可低延遲存取快取記憶體進入該純量及向量單元。雖然於一個實施例(以簡化設計)中,純量單元708及向量單元710使用分開的暫存器集合(分別為純量暫存器712及向量暫存器714),在其間轉移之資料被寫至記憶體,及然後自一層級1(L1)快取706回讀,本發明之替代實施例可利用不同辦法(例如使用單一暫存器集合,或包括一通訊路徑其許可資料在兩個暫存器檔案間轉移而不被寫入及回讀)。
該L2快取704之本地子集為一通用L2快取之一部分,該通用L2快取被分割成分開的本地子集,每個處理器核心各一個。各個處理器核心具有一直接存取路徑至該L2快取704之其本身的本地子集。由一處理器核心讀取之資料係儲存於其L2快取子集704且與其它處理器核心存取其本身的L2快取子集並列地可被快速存取。若有所需,由一處理器核心寫入之資料係儲存於其本身的L2快取子集704,且從其它子集中被掃除。環型網路確保了針對分享資料為同調。該環型網路為雙向性以許可該晶片內部的代理器諸如處理器核心、L2快取及其它邏輯區塊彼此通訊。各個環型資料路徑為每個方向1012-位元寬。
圖7B為依據本發明之實施例圖7A中之該處理器核心部分之一放大視圖。圖7B包括該L1快取704之一L1資料快取706A部分,以及有關該向量單元710及向量暫存器 714之更多細節。更明確言之,該向量單元710為一16-寬向量處理單元(VPU)(參考16-寬ALU 728),其執行整數、單精度浮點、及雙精度浮點中之一或多者。該VPU支援使用調和單元720之調和該暫存器輸入,使用數值轉換單元722A-B之數值轉換,及在該記憶體輸入上使用複製單元724之複製。寫入遮罩暫存器726允許預測結果所得向量寫入。
具有整合式記憶體控制器及圖形之處理器
圖8為依據本發明之實施例一處理器800之方塊圖,該處理器可具有多於一個核心,可具有一整合式記憶體控制器,及可具有整合式圖形。圖8中之實線框例示一處理器800具有單一核心802A、一系統代理器810、一或多個匯流排控制器單元816之一集合,而選擇性增加的虛線框例示一替代處理器800具有多個核心802A-N、於該系統代理器810內之一或多個整合式記憶體控制器單元814之一集合、及特用邏輯808。
如此,該處理器800之不同具現可包括:1)一CPU具有該特用邏輯808為整合式圖形及/或科學(通量)邏輯(其可包括一或多個核心),及核心802A-N為一或多個通用核心(例如通用有序核心、通用亂序核心、兩者之組合);2)一共處理器具有核心802A-N為大量特用核心主要意圖用於圖形及/或科學(通量);及3)一共處理器具有核心802A-N為大量通用有序核心。因此,該處理器800可為通用處理器、共處理器或特用處理器,諸如網路或通訊處理器、壓縮引擎、圖形處理器、通用計算圖形處理單元(GPGPU)、高通量許 多整合式核心(MIC)共處理器(含30個或以上之核心)、嵌入式處理器等。該處理器可具現於一或多個晶片上。該處理器800可為一或多個基體之一部分及/或使用多種處理技術諸如BiCMOS、CMOS、或NMOS中之任一者而在一或多個基體上具現。
記憶體階層包括在該核心內部之一或多個層級的快取記憶體、一集合或一或多個分享快取單元806、及耦接至該集合之整合式記憶體控制器單元814的外接記憶體(圖中未顯示)。該集合之分享快取單元806可包括一或多個中間層級快取記憶體,諸如層級2(L2)、層級3(L3)、層級4(L4)、或其它層級快取記憶體、最末層級快取(LLC)、及/或其組合。雖然於一個實施例中以環型為基礎之互連單元812互連該整合式圖形邏輯808、該集合之分享快取單元806、及系統代理器單元810/整合式記憶體控制器單元814,但替代實施例可使用任何數目之眾所周知技術用以互連此等單元。於一個實施例中,在一或多個快取單元806與核心802A-N間維持同調。
於若干實施例中,核心802A-N中之一或多者能夠執行多執行緒。系統代理器810包括協調及操作核心802A-N之該等組件。該系統代理器單元810可包括例如一電力控制單元(PCU)及一顯示單元。該PCU可為或可包括調節核心802A-N及整合式圖形邏輯808之電力態所需邏輯及組件。顯示單元係用以驅動一或多個外接顯示器。
就架構指令集而言,該等核心802A-N可為同質 或非同質;換言之,該等核心802A-N中之二或多者能夠執行相同指令集,而其它只能執行該指令集之一子集或一不同指令集。
電腦架構實例
圖9-12為電腦架構實例之方塊圖。技藝界已知用於膝上型電腦、桌上型電腦、手持式PC、個人數位助理器(PDA)、工程工作站、伺服器、網路裝置、網路中樞器、交換器、嵌入式處理器、數位信號處理器(DSP)、圖形裝置、視訊遊戲裝置、機上盒、微控制器、手機、可攜式媒體播放器、手持式裝置、及各種其它電子裝置的其它系統設計及組態亦屬適宜。概略言之,能夠結合如此處揭示之處理器及/或其它執行邏輯的大量多種系統或電子裝置通常亦屬適合。
現在參考圖9,顯示依據本發明之一個實施例一系統900之方塊圖。該系統900可包括一或多個處理器910、915,其係耦接至一控制器中樞器920。於一個實施例中,該控制器中樞器920包括一圖形記憶體控制中樞器(GMCH)990及一輸入/輸出中樞器(IOH)950(其可在分開的晶片上);該GMCH 990包括記憶體控制器及圖形控制器,其係耦合記憶體940及一共處理器945;該IOH 950係耦合輸入/輸出(I/O)裝置960至該GMCH 990。另外,該等記憶體控制器及圖形控制器中之一或二者係整合於該處理器內部(如此處描述),該記憶體940及共處理器945係直接耦接至該處理器910,及該控制器中樞器920與該IOH 950在單一晶片 內。
額外處理器915之選擇性本質係於圖9中以虛線標示。各個處理器910、915可包括此處描述之處理核心中之一或多者且可為該處理器800之某個版本。
該記憶體940例如可為動態隨機存取記憶體(DRAM)、相變記憶體(PCM)、或兩者的組合。針對至少一個實施例,該控制器中樞器920透過多點匯流排與處理器910、915通訊,諸如前端匯流排(FSB)、點對點介面諸如快速路徑互連(QPI)、或類似連結995。
於一個實施例中,該共處理器945為一特用處理器,諸如高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器等。於一個實施例中,控制器中樞器920可包括一整合式圖形加速器。
就一範圍之優劣量表而言,包括架構、微架構、熱、功耗特性等,該等實體資源910、915間有多項差異。
於一個實施例中,該處理器910執行指令其控制一般型別之資料處理操作。嵌置於該等指令內部者可為共處理器指令。該處理器910辨識此等共處理器指令屬於須由附接的共處理器945執行之型別。據此,該處理器910在一共處理器匯流排或其它互連體簽發此等共處理器指令(或表示共處理器指令之控制信號)給共處理器945。共處理器945接受與執行該所接收的共處理器指令。
現在參考圖10,顯示依據本發明之一實施例系統1000之第一更特定實例之方塊圖。如圖10顯示,多處理器 系統1000乃一點對點互連系統,及包括透過一點對點互連體1050耦合之一第一處理器1070及一第二處理器1080。處理器1070及1080各自可為處理器800之某個版本。於本發明之一個實施例中,處理器1070及1080分別為處理器910及915,而共處理器1038為共處理器945。於另一個實施例中,處理器1070及1080分別為處理器910共處理器945。
處理器1070及1080顯示為分別包括整合式記憶體控制器(IMC)單元1072及1082。處理器1070也包括點對點(P-P)介面1076及1078作為其匯流排控制器單元之部件;同理第二處理器1080包括P-P介面1086及1088。處理器1070、1080可使用P-P介面電路1078、1088透過點對點(P-P)介面1050交換資訊。如圖10顯示,IMC 1072及1082耦合該等處理器至個別記憶體,亦即記憶體1032及記憶體1034,其可為本地附接至個別處理器之主記憶體之部分。
處理器1070、1080可使用點對點介面電路1076、1094、1086、1098透過個別P-P介面1052、1054與一晶片組1090各自交換資訊。晶片組1090可透過一高效能介面1039與該共處理器1038選擇性地交換資訊。於一個實施例中,該共處理器1038為一特用處理器諸如,高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器等。
一分享快取記憶體(圖中未顯示)可含括於任一處理器內或二處理器外部,但仍透過P-P互連體而連結該等處理器,使得若一處理器係置於低功率模式,則任一或二 處理器的本地快取資訊可儲存於該分享快取記憶體。
晶片組1090可透過一介面1096而耦接至一第一匯流排1016。於一個實施例中,該第一匯流排1016可為一週邊組件互連(PCI)匯流排,或一匯流排諸如PCI快速匯流排或另一第三代I/O互連匯流排,但本發明之範圍並非受此所限。
如圖10中顯示,各種I/O裝置1014可耦接至第一匯流排1016,連同一匯流排橋接器1018其耦合第一匯流排1016至一第二匯流排1020。於一個實施例中,一或多個額外處理器1015諸如共處理器、高通量MIC處理器、GPGPU、加速器(例如圖形加速器或數位信號處理器(DSP)單元)、可現場程式規劃閘陣列或任何其它處理器係耦接至第一匯流排第一匯流排1016。於一個實施例中,第二匯流排1020可為一低接腳數目(LPC)匯流排。於一個實施例中,各種裝置可耦接至一第二匯流排1020,包括例如鍵盤及/或滑鼠1022、通訊裝置1027及一儲存單元1028諸如碟片驅動裝置或其它大容量儲存裝置其可包括指令/碼及資料1030。又,音訊I/O 1024可耦接至第二匯流排1020。注意其它架構為可能。舉例言之,替代圖10之點對點架構,一系統可具現多點匯流排或其它此種架構。
現在參考圖11,顯示依據本發明之一實施例第二更特定系統1100實施例之方塊圖。圖10及圖11中之相似元件載有相似元件符號,及圖10之某些面向已自圖11刪除以避免遮掩圖11之其它面向。
圖11例示處理器1070、1080分別地可包括整合式記憶體及I/O控制邏輯(CL)1072及1082。如此,該CL 1072、1082包括整合式記憶體控制器單元且包括I/O控制邏輯。圖11例示不僅記憶體1032、1034耦接至CL 1072、1082,同時I/O裝置1114也耦接至控制邏輯1072、1082。舊式I/O裝置1115係耦接至晶片組1090。
現在參考圖12,顯示依據本發明之一實施例一SoC 1200實施例之方塊圖。圖8中之相似元件載有相似元件符號。又,虛線框為更先進SoC上之選擇性特性件。於圖12中,一互連單元1202係耦接至:一應用處理器1210其包括一集合之一或多個核心202A-N及分享快取單元806;一系統代理器單元810;一匯流排控制器單元816;一整合式記憶體控制器單元814;一集合或一或多個共處理器1220其可包括整合式圖形邏輯、一影像處理器、一音訊處理器、及一視訊處理器;一靜態隨機存取記憶體(SRAM)單元1230;一直接記憶體存取(DMA)單元1232;及一顯示單元1240用以耦接至一或多個外接顯示器。於一個實施例中,該(等)共處理器1220包括一特用處理器諸如,網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、高通量MIC處理器、嵌入式處理器等。
此處揭示之機制之實施例可具現於硬體、軟體、韌體、或此等具現辦法之一組合。本發明之實施例可具現為在可規劃系統上執行的電腦程式或程式碼,該系統包含至少一個處理器、儲存系統(包括依電性及非依電性記憶體 及/或儲存元件)、至少一個輸入裝置、及至少一個輸出裝置。
程式碼諸如圖10中例示之碼1030可施用至輸入指令以執行此處描述之功能及產生輸出資訊。該輸出資訊可以已知方式施加至一或多個輸出裝置。為了達成本案之目的,一處理系統包括任何系統其具有一處理器,諸如數位信號處理器(DSP)、微控制器、特定應用積體電路(ASIC)、或微處理器。
該程式碼可以高階程序或目的導向程式語言具現以與一處理系統通訊。若有所需,該程式碼也可以組合語言或機器語言具現。實際上,此處描述之機制之範圍上並不限於任何特定程式語言。總而言之,該語言可為編譯語言或解譯語言。
至少一個實施例之一或多個面向可藉儲存在一機器可讀取媒體上之代表性指令具現,其表示在該處理器內部之各種邏輯,其當由一機器讀取時造成該機器製造邏輯以從事此處描述之技術。此種表示型態稱作為「IP核心」可儲存於具體有形機器可讀取媒體上,及供給各種客戶或製造廠以載入實際上製造該邏輯或處理器的製造機器內。
此等機器可讀取儲存媒體可包括,但非限制性,由機器或裝置製造或製成的非暫時性具體有形對象配置,包括儲存媒體諸如硬碟、任何其它型別之碟片包括軟碟、光碟、光碟-唯讀記憶體(CD-ROM)、可覆寫式光碟(CD-RW)、及磁光碟;半導體裝置諸如唯讀記憶體(ROM)、隨機存取記憶體(RAM)諸如動態隨機存取記憶體 (DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可規劃唯讀記憶體(EPROM)、快閃記憶體、可電氣抹除可規劃唯讀記憶體(EEPROM)、相變記憶體(PCM)、磁卡或光卡、或適用以儲存電子指令之任何其它型別之媒體。
因此,本發明之實施例也包括非暫時性具體有形機器可讀取媒體含有指令或含有設計資料,諸如硬體描述語言(HDL),其界定此處描述之結構、電路、設備、處理器及/或系統特性件。此等實施例也可稱作為程式產品。
模擬(包括二進位轉譯、碼變形等)
於某些情況下,一指令轉換器可用以將一指令自一來源指令集轉換成一目標指令集。舉例言之,該指令轉換器可將一指令轉譯(例如使用靜態二進位轉譯、動態二進位轉譯包括動態編譯)、變形、模擬、或以其它方式轉換成欲藉該核心處理之一或多個其它指令。該指令轉換器可具現於軟體、硬體、韌體、或其組合。該指令轉換器可為於處理器上、非在處理器上、或部分在及部分非在處理器上。
圖13為方塊圖對比依據本發明之實施例,一軟體指令轉換器之使用以將在一來源指令集中之二進位指令轉換成在一目標指令集中之二進位指令。於該例示實施例中,該指令轉換器為一軟體指令轉換器,但另外該指令轉換器可具現於軟體、硬體、韌體、或其各種組合。圖13顯示於高階語言1302之一程式,可使用x86編譯器1304編譯以產生x86二進碼1306,其可由具有至少一個x86指令集核心之一處理器1316本機執行。具有至少一個x86指令集核心之 該處理器1316表示能夠執行與具有至少一個x86指令集核心之英特爾處理器實質上相同指令之任何處理器,該執行係藉可相容地執行或以其它方式處理(1)英特爾x86指令集核心之該指令集之一實質部分;或(2)靶定在具有至少一個x86指令集核心之一英特爾處理器上操作的應用程式或其它軟體之目標碼版本,以便達成與具有至少一個x86指令集核心之一英特爾處理器之實質上相同結果。x86編譯器1304表示可操作以產生x86二進碼1306(例如目標碼)之一編譯器,其有或無額外鏈結處理,可在具有至少一個x86指令集核心之該處理器1316上執行。同理,圖13顯示於高階語言1302之該程式可使用替代指令集編譯器1308編譯以產生替代指令集二進碼1310,其可藉沒有至少一個x86指令集核心之一處理器1314本機執行(例如一處理器具有核心其執行加州山尼維爾之MIPS技術公司的MIPS指令集及/或執行加州山尼維爾之ARM控股公司之ARM指令集)。該指令轉換器1312係用以將該x86二進碼1306轉換成可由沒有一x86指令集核心之該處理器1314本機執行。此種轉換碼不可能與替代指令集二進碼1310相同,原因在於難以製作出能夠達成此目的之一指令轉換器;但已轉換碼將完成通用操作且由得自另一指令集之指令組成。如此,指令轉換器1312表示軟體、韌體、硬體、或其組合,透過仿真、模擬或任何其它處理,許可不具有x86指令集處理器或核心之一處理器或其它電子裝置執行該x86二進碼1306。
針對此處描述之之設備中之任一者此處描述之 組件、特性件、及細節也選擇性地使用於及/或應用至此處描述之該等方法中之任一者,該等方法於實施例中可藉及/或使用此等設備具現。
於該詳細說明部分及申請專利範圍中,可使用「耦合」及/或「連結」連同其衍生詞。此等術語並非意圖為彼此之同義詞。反而於實施例中,「連結」可用以指示二或多個元件係彼此直接實體接觸及/或電氣接觸。「耦合」可表示二或多個元件彼此直接實體接觸及/或電氣接觸。但「耦合」也可表示二或多個元件並非彼此直接接觸,但仍然彼此協作或彼此互動。舉例言之,一執行單元可透過一中間組件而耦合一解碼單元。於該等圖式中,箭頭係用以顯示連結及耦合。
於該詳細說明部分及/或申請專利範圍中,可使用「邏輯」、「單元」、「模組」或「組件」。此等術語中之各者可用以指稱硬體、韌體、軟體、或其各種組合。於具體實施例中,此等術語中之各者可指稱積體電路、特定應用積體電路、類比電路、數位電路、可規劃邏輯裝置、含指令之記憶體裝置及其類、及其各項組合。於若干實施例中,此等可包括至少若干硬體(例如電晶體、閘、其它電路組件等)。
也已經使用「及/或」該詞。如此處使用,「及/或」一詞係指一者或另一者或兩者(例如A及/或B表示A或B或A及B兩者)。
於前文描述中,已經陳述特定細節以供徹底瞭解 本發明。但可無此等特定細節部分而予實施其它實施例。本發明之範圍並非由前文提供之特定實施例決定,反而由後文申請專利範圍決定。於其它情況下,已經以方塊圖形式及/或沒有細節顯示眾所周知之電路、結構、裝置、及操作以免遮掩了對詳細說明部分之瞭解。當視為適當時,元件符號或元件符號之端部已在各幅圖間重複以指示相對應的或類似的元件,除非另行載明或顯然易見否則可選擇性地具有相似的或相同的特性。
已經描述各種操作及方法。該等方法部分已經以流程圖以相當基本形式描述,但操作可選擇性地加至及/或自該等方法中移除。此外,雖然流程圖顯示依據具體實施例之一特定操作順序,但該特定順序僅供舉例說明之用。替代實施例可以不同順序,組合某些操作,重疊某些操作等選擇性地執行該等操作。
某些操作可由硬體組件執行,或可以機器可執行指令或電路可執行指令具體實施,其可用以使得及/或導致一機器、電路或硬體組件(例如處理器、部分處理器、電路等)以從事該等操作之指令規劃。該等操作也可選擇性地由硬體與軟體之一組合執行。一處理器、機器、電路或硬體可包括特定或特殊電路或可操作以執行該指令之其它邏輯(例如硬體潛在組合韌體及/或軟體)。
若干實施例包括含機器可讀取媒體之一製造件(例如電腦程式產品)。該媒體可包括一機構其以可由該機器讀取形式提供例如儲存資訊。該機器可讀取媒體可提供, 或其上已經儲存一指令或一序列之指令,該指令若及/或當由一機器執行時可操作以使得機器執行及/或導致該機器執行此處揭示之操作、方法、或技術中之一或多者。該機器可讀取媒體可提供例如儲存此處揭示之該等指令實施例中之一或多者。
於若干實施例中,該機器可讀取媒體可包括具體有形及/或非具體有形機器可讀取儲存媒體。舉例言之,該具體有形及/或非具體有形機器可讀取儲存媒體可包括軟碟、光學儲存媒體、光碟、光學資料儲存裝置、CD-ROM、磁碟、磁光碟、唯讀記憶體(ROM)、可規劃ROM(PROM)、可抹除可規劃ROM(EPROM)、可電氣抹除可規劃ROM(EEPROM)、隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、快閃記憶體、相變記憶體、相變資料儲存材料、非依電性記憶體、非依電性資料儲存裝置、非暫時性記憶體、非暫時性資料儲存裝置等。
適宜機器之實例包括,但非限制性,通用處理器、特用處理器、指令處理裝置、數位邏輯電路、積體電路等。適宜機器之又其它實例包括含一處理器、指令處理裝置、數位邏輯電路、或積體電路之一計算裝置或其它電子裝置。此等計算裝置及電子裝置之實例包括,但非限制性,桌上型電腦、膝上型電腦、筆記型電腦、平板電腦、筆記型易網機、智慧型電話、手機、伺服器、網路裝置(例如路由器及交換器)、行動網際網路裝置(MID)、媒體播放器、智慧型電視、桌上型易網機、機上盒、及視訊遊戲控 制器。
於本說明書中全文述及例如「一個實施例」、「一實施例」、「一或多個實施例」、「若干實施例」指示一特定特性件可含括於本發明之實施中但非必要如此。同理,於該詳細說明部分中,為了揭示內容之流暢及有助於本發明之各個面向的瞭解目的,各種特性件偶爾被集結於一單一實施例、圖式、或其描述中。但本文揭示之方法並非解譯為反映出意圖本發明要求比較於申請專利範圍各項中明確引述更多的特性件。反而如下申請專利範圍各項反映出本發明之面向在於比單一揭示實施例之全部特性件更少的特性件。因此,接續在該詳細說明部分後方之該申請專利範圍藉此明確地結合於本詳細說明部分,而申請專利範圍各項本身獨立地表示為本發明之一分開實施例。
具體實施例
下列實施例係有關於進一步實施例。實施例中之特定規格可用於一或多個實施例之任何位置。
實施例1一種處理器或其它設備其包括一解碼單元以解碼一使用者層級指令。該使用者層級指令用以指示一安全獨立領域之一頁面且該使用者層級指令用以指示一線性位址。該處理器也包括與該解碼單元耦合之一執行邏輯,該執行邏輯可操作以回應於該使用者層級指令來將該安全獨立領域之該頁面的一初始線性位址,其係用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立 領域之該頁面的內容並無損耗。
實施例2包括實施例1之處理器,其中該執行邏輯係用以將該初始線性位址改變成該線性位址,其係用以被由該使用者層級指令所指示用於動態頁面重新配置。
實施例3包括任何先前實施例之處理器,其中該使用者層級指令係用以包含一動態程式庫載入器之一指令其係用以在該安全獨立領域內操作。
實施例4包括任何先前實施例之處理器,其進一步包含該處理器之一硬體具現之指示器,且其中回應於該使用者層級指令,該執行邏輯係用以組配該硬體具現之指示器而指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
實施例5包括實施例4之處理器,其中該硬體具現之指示器包含該獨立領域頁面儲存裝置元資料單元之一或多個位元,其對應於該安全獨立領域之該頁面。
實施例6包括實施例5之處理器,其中該獨立領域頁面儲存裝置元資料單元包含一獨立領域頁面快取對映圖(EPCM)。
實施例7包括任何先前實施例之處理器,其中該解碼單元係用以解碼該使用者層級指令,該使用者層級指令係用以暗示地指示通用暫存器EAX且係用以指示一第二通用暫存器為該線性位址之一來源。
實施例8為一種於一處理器中之方法,其包括接收一使用者層級指令。該使用者層級指令指示一安全獨立 領域之一頁面及指示一線性位址。回應於該使用者層級指令,將該安全獨立領域之該頁面的一初始線性位址,其係儲存於一獨立領域頁面儲存裝置元資料單元,改變成係由該使用者層級指令所指示的該線性位址,而不損耗該安全獨立領域之該頁面的內容。
實施例9包括實施例8之方法,其進一步包括回應於該使用者層級指令,組配該處理器的一硬體具現之指示器以指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
實施例10為一種包括一硬體具現之指示器之處理器或其它設備,其係用以對應於一安全獨立領域之一頁面,且其係要為可存取至至少一個使用者層級指令。該處理器也包括一解碼單元以解碼一特權層級指令。該特權層級指令用以指示該安全獨立領域之該頁面。該處理器也包括與該解碼單元耦接之一執行邏輯,該執行邏輯可操作以回應於該特權層級指令來更新與該安全獨立領域之經指示的該頁面相關聯的一安全保護機制;及組配該硬體具現之指示器以指示與該安全獨立領域之經指示的該頁面相關聯的該安全保護機制係最新的。
實施例11包括實施例10之處理器,其中該執行邏輯係可操作以回應於該特權層級指令來更新該安全保護機制以阻止存取至該安全獨立領域之經指示的該頁面直到針對該安全獨立領域之該頁面的一線性位址之全部已快取轉譯皆已自該處理器被清除為止。
實施例12包括實施例10-11中任一者之處理器,其中該執行邏輯係可操作以回應於該特權層級指令來藉由將一新經封阻階段與該安全獨立領域之該頁面相關聯而更新該安全保護機制。
實施例13包括實施例10-12中任一者之處理器,其中該硬體具現之指示器包含該處理器的一獨立領域頁面儲存裝置元資料單元之一或多個位元。
實施例14包括實施例10-13中任一者之處理器,其中該獨立領域頁面儲存裝置元資料單元包含該處理器之一獨立領域頁面快取對映圖(EPCM)。
實施例15包括實施例10-14中任一者之處理器,其中該解碼單元係用以解碼該特權層級指令,該特權層級指令係用以暗示地指示通用暫存器EAX。
實施例16為一種用以處理指令之系統,其包括一互連體及與該互連體耦合之一處理器。該處理器用以接收一使用者層級指令。該使用者層級指令用以指示一安全獨立領域之一頁面,且該使用者層級指令用以指示一線性位址。該處理器可操作以回應於該使用者層級指令來將該安全獨立領域之該頁面的一初始線性位址,其係用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立領域之該頁面的內容並無損耗。該系統也包括與該互連體耦合之一動態隨機存取記憶體(DRAM)。
實施例17包括實施例16之系統,其中該處理器係 用以改變該初始線性位址成該線性位址,其係用以由該使用者層級指令所指示用於動態頁面重新配置。該處理器進一步包括一硬體具現之指示器。該處理器回應於該使用者層級指令,係用以組配該硬體具現之指示器而指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
實施例18為一種包括一非暫時性機器可讀取儲存媒體之製造物件。該非暫時性機器可讀取儲存媒體儲存一使用者層級指令。該使用者層級指令用以指示一安全獨立領域之一頁面,且該使用者層級指令用以指示一線性位址。該使用者層級指令若由一機器所執行時可操作以致使該機器執行包括下列之操作:將該安全獨立領域之該頁面的一初始線性位址,其係用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立領域之該頁面的內容並無損耗。
實施例19包括實施例18之製造物件,其中該使用者層級指令若由該機器所執行時係用以致使該機器組配該機器的一硬體具現之指示器而指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
實施例20包括一處理器或其它設備,其可操作以執行實施例8-9中任一者之方法。
實施例21包括一處理器或其它設備,其包括用於執行實施例8-9中任一者之方法之構件。
實施例22包括一處理器其包括模組、單元、邏 輯、電路、構件、或其任何組合以執行實施例8-9中任一者之方法。
實施例23包括一種電腦系統或其它電子裝置包括一互連體,耦合該互連體之一處理器,及耦合該互連體之至少一個組件其係選自一DRAM、一圖形晶片、一無線通訊晶片、一相變記憶體、及一視訊相機,該電腦系統或其它電子裝置係用以執行實施例8-9中任一者之方法。
實施例24包括一選擇性地非暫時性機器可讀取媒體,其選擇性地儲存或否則提出一指令,該指令若及/或當由一處理器、電腦系統、或其它機器執行時可操作以讓該機器執行實施例8-9中任一者之方法。
實施例25包括一處理器或其它設備,其係可操作以執行實質上如此處描述之一或多個操作或任何方法。
實施例26包括一處理器或其它設備,其包括用以執行實質上如此處描述之一或多個操作或任何方法之構件。
實施例27包括一處理器或其它設備,其係可操作以執行實質上如此處描述之該等指令中之任一者。
實施例28包括一處理器或其它設備,其包括用以執行實質上如此處描述之該等指令中之任一者之構件。
200‧‧‧處理器
208‧‧‧解碼單元
212‧‧‧安全獨立領域執行邏輯
218‧‧‧獨立領域頁面儲存裝置元資料單元
220-I‧‧‧初始線性位址
220-N‧‧‧新線性位址
240‧‧‧獨立領域頁面元資料修正邏輯
242‧‧‧使用者層級獨立領域頁面元資料修正指令
250‧‧‧頁面元資料
252‧‧‧線性位址
254‧‧‧指示器
256-I‧‧‧初始非陳舊指令
256-N‧‧‧陳舊指令

Claims (19)

  1. 一種處理器,其包含:用以解碼一使用者層級指令之一解碼單元,該使用者層級指令用以指示一安全獨立領域之一頁面且該使用者層級指令用以指示一線性位址;以及與該解碼單元耦合之一執行邏輯電路,該執行邏輯電路可操作以回應於該使用者層級指令來將該安全獨立領域之該頁面的一初始線性位址,其係用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立領域之該頁面的內容並無損耗。
  2. 如請求項1之處理器,其中該執行邏輯電路係用以將該初始線性位址改變成該線性位址,其係用以被由該使用者層級指令所指示用於動態頁面重新配置。
  3. 如請求項1之處理器,其中該使用者層級指令係用以包含一動態程式庫載入器之一指令其係用以在該安全獨立領域內操作。
  4. 如請求項1之處理器,其進一步包含該處理器之一硬體具現之指示器,且其中回應於該使用者層級指令,該執行邏輯電路係用以組配該硬體具現之指示器而指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
  5. 如請求項4之處理器,其中該硬體具現之指示器包含該獨立領域頁面儲存裝置元資料單元之一或多個位元, 其對應於該安全獨立領域之該頁面。
  6. 如請求項5之處理器,其中該獨立領域頁面儲存裝置元資料單元包含一獨立領域頁面快取對映圖(EPCM)。
  7. 如請求項1之處理器,其中該解碼單元係用以解碼該使用者層級指令,該使用者層級指令係用以暗示地指示通用暫存器EAX且係用以指示一第二通用暫存器為該線性位址之一來源。
  8. 一種於一處理器中之方法,該方法包含下列步驟:接收一使用者層級指令,該使用者層級指令指示一安全獨立領域之一頁面及指示一線性位址;以及回應於該使用者層級指令,將該安全獨立領域之該頁面的一初始線性位址,其係儲存於一獨立領域頁面儲存裝置元資料單元,改變成係由該使用者層級指令所指示的該線性位址,而不損耗該安全獨立領域之該頁面的內容。
  9. 如請求項8之方法,其進一步包含回應於該使用者層級指令,組配該處理器的一硬體具現之指示器以指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
  10. 一種處理器,其包含:一硬體具現之指示器,其係用以對應於一安全獨立領域之一頁面,且其係要為可存取至至少一個使用者層級指令;一解碼單元用以解碼一特權層級指令,該特權層級指令用以指示該安全獨立領域之該頁面;以及 與該解碼單元耦接之一執行邏輯電路,該執行邏輯電路可操作以回應於該特權層級指令來進行下列動作:更新與該安全獨立領域之經指示的該頁面相關聯的一安全保護機制;及組配該硬體具現之指示器以指示與該安全獨立領域之該頁面相關聯的該安全保護機制係最新的。
  11. 如請求項10之處理器,其中該執行邏輯電路係可操作以回應於該特權層級指令來更新該安全保護機制以阻止存取至該安全獨立領域之經指示的該頁面直到針對該安全獨立領域之該頁面的一線性位址之全部已快取轉譯皆已自該處理器被清除為止。
  12. 如請求項10之處理器,其中該執行邏輯電路係可操作以回應於該特權層級指令來藉由將一新經封阻階段與該安全獨立領域之該頁面相關聯而更新該安全保護機制。
  13. 如請求項10之處理器,其中該硬體具現之指示器包含該處理器的一獨立領域頁面儲存裝置元資料單元之一或多個位元。
  14. 如請求項13之處理器,其中該獨立領域頁面儲存裝置元資料單元包含該處理器之一獨立領域頁面快取對映圖(EPCM)。
  15. 如請求項10之處理器,其中該解碼單元係用以解碼該特權層級指令,該特權層級指令係用以暗示地指示通用暫存器EAX。
  16. 一種用以處理指令之系統,其包含: 一互連體;與該互連體耦合之一處理器,該處理器用以接收一使用者層級指令,該使用者層級指令用以指示一安全獨立領域之一頁面,且該使用者層級指令用以指示一線性位址,該處理器可操作以回應於該使用者層級指令來將該安全獨立領域之該頁面的一初始線性位址,其係用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立領域之該頁面的內容並無損耗;以及與該互連體耦合之一動態隨機存取記憶體(DRAM)。
  17. 如請求項16之處理器,其中該處理器係用以改變該初始線性位址成該線性位址,其係用以由該使用者層級指令所指示用於動態頁面重新配置,及進一步包含該處理器之一硬體具現之指示器,且其中回應於該使用者層級指令,該處理器係用以組配該硬體具現之指示器而指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
  18. 一種包含一非暫時性機器可讀取儲存媒體之製造物件,該非暫時性機器可讀取儲存媒體儲存一使用者層級指令,該使用者層級指令用以指示一安全獨立領域之一頁面,且該使用者層級指令用以指示一線性位址,且該使用者層級指令若由一機器所執行時可操作以致使該機器執行包含下列之操作:將該安全獨立領域之該頁面的一初始線性位址,其係 用以被儲存於一獨立領域頁面儲存裝置元資料單元,改變成係用以由該使用者層級指令所指示的該線性位址,而該安全獨立領域之該頁面的內容並無損耗。
  19. 如請求項18之製造物件,其中該使用者層級指令若由該機器所執行時係用以致使該機器組配該機器的一硬體具現之指示器而指示與該安全獨立領域之該頁面相關聯的一安全保護機制為過時的。
TW103141001A 2013-12-27 2014-11-26 用以改變安全獨立領域的頁面之位址的處理器、方法、系統及指令 TWI524182B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/142,732 US9311508B2 (en) 2013-12-27 2013-12-27 Processors, methods, systems, and instructions to change addresses of pages of secure enclaves

Publications (2)

Publication Number Publication Date
TW201525690A TW201525690A (zh) 2015-07-01
TWI524182B true TWI524182B (zh) 2016-03-01

Family

ID=53482132

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103141001A TWI524182B (zh) 2013-12-27 2014-11-26 用以改變安全獨立領域的頁面之位址的處理器、方法、系統及指令

Country Status (2)

Country Link
US (2) US9311508B2 (zh)
TW (1) TWI524182B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311508B2 (en) 2013-12-27 2016-04-12 Intel Corporation Processors, methods, systems, and instructions to change addresses of pages of secure enclaves
US20150278512A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Virtualization based intra-block workload isolation
US20160085695A1 (en) 2014-09-24 2016-03-24 Intel Corporation Memory initialization in a protected region
CN106295385B (zh) 2015-05-29 2019-10-22 华为技术有限公司 一种数据保护方法和装置
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
US9798641B2 (en) * 2015-12-22 2017-10-24 Intel Corporation Method to increase cloud availability and silicon isolation using secure enclaves
US11442760B2 (en) 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US10191791B2 (en) * 2016-07-02 2019-01-29 Intel Corporation Enhanced address space layout randomization
US10409603B2 (en) * 2016-12-30 2019-09-10 Intel Corporation Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory
US11036875B2 (en) * 2017-01-24 2021-06-15 Microsoft Technology Licensing, Llc Dependent enclave binaries
US10540291B2 (en) * 2017-05-10 2020-01-21 Intel Corporation Tracking and managing translation lookaside buffers
US20180341494A1 (en) * 2017-05-26 2018-11-29 Intel Corporation Accelerating network security monitoring
CN111259380B (zh) * 2017-08-22 2021-02-12 海光信息技术股份有限公司 内存页转移方法和函数调用方法
CN109947666B (zh) * 2019-02-27 2023-04-25 余炀 可信执行环境缓存隔离方法及装置、电子设备和存储介质
CN113139175A (zh) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法
TWI818732B (zh) * 2022-09-16 2023-10-11 新唐科技股份有限公司 記憶體裝置及其操作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4985825A (en) * 1989-02-03 1991-01-15 Digital Equipment Corporation System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
DE19928057B4 (de) * 1999-06-15 2005-11-10 Francotyp-Postalia Ag & Co. Kg Sicherheitsmodul und Verfahren zur Sicherung der Postregister vor Manipulation
US20070022141A1 (en) * 2005-07-19 2007-01-25 Singleton Shawn D System and method for acquiring and assembling real property data
US20080052467A1 (en) * 2006-08-25 2008-02-28 Advanced Micro Devices, Inc. System for restricted cache access during information transfers and method thereof
US7788433B2 (en) 2008-05-24 2010-08-31 Via Technologies, Inc. Microprocessor apparatus providing for secure interrupts and exceptions
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
WO2013095521A1 (en) 2011-12-22 2013-06-27 Intel Corporation Instructions processors, methods, and systems to process blake secure hashing algorithm
JP2014182449A (ja) * 2013-03-18 2014-09-29 Toshiba Corp メモリコントローラ
US9311508B2 (en) 2013-12-27 2016-04-12 Intel Corporation Processors, methods, systems, and instructions to change addresses of pages of secure enclaves

Also Published As

Publication number Publication date
US9959409B2 (en) 2018-05-01
TW201525690A (zh) 2015-07-01
US20150186678A1 (en) 2015-07-02
US20160188906A1 (en) 2016-06-30
US9311508B2 (en) 2016-04-12

Similar Documents

Publication Publication Date Title
TWI524182B (zh) 用以改變安全獨立領域的頁面之位址的處理器、方法、系統及指令
US11782849B2 (en) Processors, methods, systems, and instructions to support live migration of protected containers
EP3516577B1 (en) Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory
TWI574156B (zh) 具有獨立的使用者和監管者域的記憶體保護鑰結構
JP5984865B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
TWI516937B (zh) 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體
US9317441B2 (en) Indexed page address translation to reduce memory footprint in virtualized environments
US10263988B2 (en) Protected container key management processors, methods, systems, and instructions
WO2018063719A1 (en) Supporting oversubscription of guest enclave memory pages
US20220398017A1 (en) Independently controlled dma and cpu access to a shared memory region
US20220414022A1 (en) Apparatus, system, and method for secure memory access control

Legal Events

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