安全存儲(chǔ)器重新分區(qū)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)涉及計(jì)算機(jī)系統(tǒng),更具體地說(shuō),涉及存儲(chǔ)在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中的數(shù)據(jù)的保護(hù)。
【背景技術(shù)】
[0002]現(xiàn)代處理器設(shè)計(jì)成保護(hù)存儲(chǔ)器中的敏感數(shù)據(jù)免于硬件和軟件攻擊。一些處理器提供了用于加密、完整性和重放保護(hù)的密碼機(jī)制。存儲(chǔ)器加密保護(hù)了存儲(chǔ)器駐留的數(shù)據(jù)的保密性。另一方面,完整性保護(hù)防止了攻擊者引起對(duì)存儲(chǔ)器中密文(即,加密數(shù)據(jù),與是未加密數(shù)據(jù)的明文相對(duì))的任何隱藏的修改,并且回放保護(hù)消除了密文的任何未檢測(cè)到的時(shí)間上替換。在缺乏此類保護(hù)的情況下,對(duì)系統(tǒng)進(jìn)行物理訪問(wèn)的攻擊者可記錄數(shù)據(jù)線的快照,并在以后時(shí)間點(diǎn)重放。
【附圖說(shuō)明】
[0003]圖1是圖示根據(jù)一個(gè)實(shí)施例實(shí)現(xiàn)用于實(shí)現(xiàn)安全存儲(chǔ)器的存儲(chǔ)器加密引擎(MEE)的計(jì)算系統(tǒng)的框圖。
[0004]圖2圖示了根據(jù)一個(gè)實(shí)施例包含多個(gè)存儲(chǔ)器范圍的靈活保護(hù)范圍200的概念層。
[0005]圖3圖示了根據(jù)一個(gè)實(shí)施例的靈活保護(hù)范圍內(nèi)的存儲(chǔ)器的可轉(zhuǎn)換區(qū)和存儲(chǔ)器的不可轉(zhuǎn)換區(qū)。
[0006]圖4A是圖示根據(jù)一個(gè)實(shí)施例的靈活保護(hù)范圍的可轉(zhuǎn)換頁(yè)的狀態(tài)轉(zhuǎn)變的狀態(tài)圖。
[0007]圖4B是圖示根據(jù)一個(gè)實(shí)施例的靈活保護(hù)范圍的可轉(zhuǎn)換區(qū)的狀態(tài)轉(zhuǎn)變的狀態(tài)圖。
[0008]圖5A是根據(jù)一個(gè)實(shí)施例的可轉(zhuǎn)換頁(yè)的安全存儲(chǔ)器重新分區(qū)的方法的流程圖。
[0009]圖5B是根據(jù)一個(gè)實(shí)施例的可轉(zhuǎn)換區(qū)的安全存儲(chǔ)器重新分區(qū)的方法的流程圖。
[0010]圖6A是圖示根據(jù)一個(gè)實(shí)施例的有序流水線和寄存器重命名階段、無(wú)序發(fā)出/執(zhí)行流水線的框圖。
[0011]圖6B圖示了根據(jù)一個(gè)實(shí)施例實(shí)現(xiàn)安全存儲(chǔ)器重新分區(qū)的處理器的微架構(gòu)的框圖。
[0012]圖7圖示了根據(jù)一個(gè)實(shí)施例的處理器的微架構(gòu)的框圖,其包含執(zhí)行安全存儲(chǔ)器重新分區(qū)的邏輯電路。
[0013]圖8是根據(jù)一個(gè)實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)的框圖。
[0014]圖9是根據(jù)另一實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)的框圖。圖10是根據(jù)一個(gè)實(shí)現(xiàn)的片上系統(tǒng)的框圖。
[0015]圖11圖示了計(jì)算系統(tǒng)的框圖的另一實(shí)現(xiàn)。
[0016]圖12圖示了計(jì)算系統(tǒng)的框圖的另一實(shí)現(xiàn)。
【具體實(shí)施方式】
[0017]描述了安全存儲(chǔ)器重新分區(qū)技術(shù)。處理器包含處理器核以及耦合在處理器核與主存儲(chǔ)器之間的存儲(chǔ)器控制器。存儲(chǔ)器范圍包括可被轉(zhuǎn)換成安全頁(yè)或不安全頁(yè)的可轉(zhuǎn)換頁(yè)的多個(gè)區(qū)。處理器上的軟件執(zhí)行可標(biāo)識(shí)要轉(zhuǎn)換的主存儲(chǔ)器中的頁(yè),并且可使用頁(yè)轉(zhuǎn)換指令來(lái)轉(zhuǎn)換該頁(yè)。處理器核響應(yīng)于頁(yè)轉(zhuǎn)換指令而根據(jù)該指令確定要轉(zhuǎn)換的存儲(chǔ)器范圍內(nèi)的可轉(zhuǎn)換頁(yè),并將可轉(zhuǎn)換頁(yè)轉(zhuǎn)換成安全頁(yè)或不安全頁(yè)。標(biāo)識(shí)可被轉(zhuǎn)換的頁(yè)是系統(tǒng)軟件(例如OS或VMM)的責(zé)任。例如,如果OS需要不安全頁(yè),則它標(biāo)識(shí)安全頁(yè)(如果不安全頁(yè)不可用的話),并在此安全頁(yè)上執(zhí)行頁(yè)轉(zhuǎn)換指令。存儲(chǔ)器范圍還可包含可響應(yīng)于本文所描述的區(qū)轉(zhuǎn)換指令而轉(zhuǎn)換的多個(gè)可轉(zhuǎn)換區(qū)(本文也稱為硬件保留區(qū))。
[0018]存儲(chǔ)器加密保護(hù)了存儲(chǔ)器駐留的數(shù)據(jù)的保密性。存儲(chǔ)器加密主要設(shè)計(jì)成保護(hù)不受被動(dòng)攻擊,其中當(dāng)數(shù)據(jù)線移入和移出處理器管芯時(shí),攻擊者嘗試默默地觀察數(shù)據(jù)線。一些處理器包含加密模塊,加密模塊在數(shù)據(jù)被存儲(chǔ)到存儲(chǔ)器的保護(hù)區(qū)域中之前對(duì)敏感數(shù)據(jù)加密。在對(duì)保護(hù)區(qū)域進(jìn)行存儲(chǔ)器讀取時(shí),對(duì)數(shù)據(jù)線解密,之后饋送到處理器。加密和解密算法可基于用戶需要的安全性等級(jí)選擇。
[0019]本文描述的實(shí)施例可用于創(chuàng)建安全容器,本文稱為安全飛地(enclaveXSEXSE被設(shè)計(jì)成保護(hù)第三方秘密免于硬件和軟件攻擊。SE可通過(guò)確保飛地秘密當(dāng)駐留在平臺(tái)存儲(chǔ)器中時(shí)被加密存儲(chǔ)來(lái)保護(hù)飛地秘密的保密性。為了提供免于硬件攻擊的完全保護(hù),SE需要提供完整性保護(hù)和重放保護(hù)。在缺乏此類保護(hù)的情況下,對(duì)系統(tǒng)進(jìn)行物理訪問(wèn)的攻擊者可記錄飛地高速緩存線的快照,并在以后時(shí)間點(diǎn)重放。為了實(shí)現(xiàn)這些保護(hù),SE采用存儲(chǔ)器加密引擎(MEE),其提供了用于加密、完整性和重放保護(hù)的密碼機(jī)制。MEE是實(shí)現(xiàn)當(dāng)頁(yè)在存儲(chǔ)器中時(shí)保護(hù)它們安全的密碼功能性的硬件單元。更確切地說(shuō),MEE可對(duì)被驅(qū)逐出處理器的任何高速緩存線加密,如果它屬于安全頁(yè)的話,并且MEE還提供對(duì)于安全頁(yè)的完整性保護(hù)和重放保護(hù)。常規(guī)策略在引導(dǎo)時(shí)間靜態(tài)保留平臺(tái)存儲(chǔ)器范圍,并且僅在這個(gè)存儲(chǔ)器范圍上施加密碼保護(hù)。這個(gè)安全存儲(chǔ)器范圍被稱為飛地頁(yè)高速緩存(EPC)。從EPC滿足飛地存儲(chǔ)器請(qǐng)求。
[0020]如果分區(qū)要求隨時(shí)間改變,則存儲(chǔ)器的靜態(tài)分區(qū)可能產(chǎn)生問(wèn)題。作為一個(gè)示例,數(shù)據(jù)中心在白天執(zhí)行事務(wù)處理和在晚上切換到電影流播基于運(yùn)行在數(shù)據(jù)中心上的這些工作負(fù)荷可對(duì)于安全存儲(chǔ)器具有大大不同的要求。在一個(gè)實(shí)現(xiàn)中,128MB的系統(tǒng)存儲(chǔ)器被保留為EPC。然而,為了允許安全服務(wù)器應(yīng)用有效地使用SE,將需要大EPC。用當(dāng)前的靜態(tài)分區(qū),這將要求系統(tǒng)存儲(chǔ)器的多吉字節(jié)分區(qū)被保留為EPC,其不能被收回用于不安全使用。此外,具有有限系統(tǒng)存儲(chǔ)器的移動(dòng)裝置可要求存儲(chǔ)器的動(dòng)態(tài)重新分區(qū)允許安全存儲(chǔ)器被收回用于不安全用途。
[0021]本文描述的實(shí)施例提供了靈活EPC架構(gòu),該架構(gòu)提供了操作系統(tǒng)(0S)可訪問(wèn)的頁(yè)粒度(或區(qū)粒度)轉(zhuǎn)換指令。靈活EPC架構(gòu)將EPC定義為可以是安全或不安全的平臺(tái)上的可轉(zhuǎn)換存儲(chǔ)器,并引入了新保護(hù)機(jī)制,諸如用于可轉(zhuǎn)換存儲(chǔ)器管理的新環(huán)0葉功能。使用靈活EPC的本文描述的實(shí)施例允許EPC存儲(chǔ)器的動(dòng)態(tài)重新分區(qū),進(jìn)行需要大量EPC存儲(chǔ)器的服務(wù)器上和具有有限存儲(chǔ)器系統(tǒng)的移動(dòng)平臺(tái)上的更有效SE實(shí)現(xiàn)。
[0022]圖1是圖示根據(jù)一個(gè)實(shí)施例實(shí)現(xiàn)用于實(shí)現(xiàn)安全存儲(chǔ)器的存儲(chǔ)器加密引擎(MEE)150的計(jì)算系統(tǒng)100的框圖。在引導(dǎo)時(shí)間由基本輸入輸出系統(tǒng)(B1S)設(shè)置安全存儲(chǔ)器范圍(也稱為可轉(zhuǎn)換范圍)。處理器110執(zhí)行指令以轉(zhuǎn)換由在處理器110(諸如本文所描述的操作系統(tǒng)
(0S)或虛擬機(jī)監(jiān)視器(VMM))上執(zhí)行的軟件所指導(dǎo)的這些可轉(zhuǎn)換范圍內(nèi)的頁(yè)。還有,由MEE提供的存儲(chǔ)器保護(hù)在處理器不必須執(zhí)行用于提供保密性、完整性和重放保護(hù)的任何指令的意義上是透明的。例如,當(dāng)屬于安全頁(yè)的任何高速緩存線被驅(qū)逐時(shí),MEE自動(dòng)向那個(gè)高速緩存線提供這些保護(hù)。處理器110可用在系統(tǒng)中,該系統(tǒng)包含但不限于臺(tái)式計(jì)算機(jī)、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、上網(wǎng)本、筆記本計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、服務(wù)器、工作站、蜂窩電話、移動(dòng)計(jì)算裝置、智能電話、因特網(wǎng)設(shè)施或任何其它類型的計(jì)算裝置。在另一實(shí)施例中,處理器110可用在片上系統(tǒng)(SoC)系統(tǒng)中。
[0023]計(jì)算系統(tǒng)100表示基于從加利福尼亞圣塔克拉拉的英特爾公司可得到的PENTIUMIII ? ^PENTIUM 4 ?、Xeon ?、Itanium、XScale ? 和/或StrongARM ? 微處理器的處理系統(tǒng),不過(guò)也可使用其它系統(tǒng)(包含具有其它微處理器的PC、工程設(shè)計(jì)工作站、機(jī)頂盒等)。在一個(gè)實(shí)施例中,樣本系統(tǒng)100執(zhí)行從華盛頓雷蒙德的微軟公司可得到的WINDOWS ?操作系統(tǒng)的某個(gè)版本,不過(guò)也可使用其它操作系統(tǒng)(例如UNIX和Linux)、嵌入式軟件和/或圖形用戶界面。從而,本發(fā)明的實(shí)施例不限于硬件電路和軟件的任何特定組合。
[0024]處理器110包含執(zhí)行系統(tǒng)指令的一個(gè)或多個(gè)處理器核140。處理器核140包含但不限于取指令的預(yù)取邏輯、解碼指令的解碼邏輯、執(zhí)行指令的執(zhí)行邏輯等。處理器110包含高速緩存指令和/或數(shù)據(jù)的高速緩存160。高速緩存160包含但不限于級(jí)1、級(jí)2和最后一級(jí)高速緩存(LLC)165或處理器110內(nèi)的高速緩沖存儲(chǔ)器的任何其它配置。在另一實(shí)施例中,計(jì)算系統(tǒng)100包含按照本文描述的實(shí)施例采用包含執(zhí)行用于處理數(shù)據(jù)的算法的邏輯的執(zhí)行單元的組件,諸如處理器110。
[0025]存儲(chǔ)器控制器130執(zhí)行使處理器110能夠訪問(wèn)包含易失性存儲(chǔ)器和/或非易失性存儲(chǔ)器的主存儲(chǔ)器120并與之通信的功能。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130耦合到包含MEE150的系統(tǒng)代理180。在一個(gè)實(shí)施例中,MEE 150位于最后一級(jí)高速緩存165與存儲(chǔ)器控制器130之間,以執(zhí)行移入和移出主存儲(chǔ)器120的保護(hù)區(qū)域125的數(shù)據(jù)線的加密、解密和認(rèn)證。MEE150位于處理器管芯上,而存儲(chǔ)器120位于處理器管芯外。
[0026]根據(jù)本發(fā)明的一個(gè)實(shí)施例,MEE 150處理多個(gè)存儲(chǔ)器讀取請(qǐng)求,同時(shí)改進(jìn)對(duì)保護(hù)區(qū)域125的訪問(wèn)等待時(shí)間。MEE 150執(zhí)行計(jì)數(shù)器模式加密,這要求加密種子對(duì)于數(shù)據(jù)線在時(shí)間上和空間上都是唯一的??臻g唯一性可通過(guò)使用要訪問(wèn)的數(shù)據(jù)線的地址來(lái)實(shí)現(xiàn),而時(shí)間唯一性可通過(guò)使用充當(dāng)該版本數(shù)據(jù)線的計(jì)數(shù)器來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,MEE 150還使用計(jì)數(shù)器樹(shù)結(jié)構(gòu)來(lái)保護(hù)主存儲(chǔ)器120的保護(hù)區(qū)域125中的數(shù)據(jù)線,其中僅樹(shù)的根被存儲(chǔ)在管芯上并形成信任的根(即信任邊界)。數(shù)據(jù)線的版本是此計(jì)數(shù)器樹(shù)結(jié)構(gòu)的一部分。備選地,可使用其它保護(hù)機(jī)制用于重放保護(hù)。例如,與安全高速緩存線關(guān)聯(lián)的消息認(rèn)證代碼(MAC)可被存儲(chǔ)在管芯上,因?yàn)槌晒χ胤殴魧⑿枰胤艛?shù)據(jù)線及其關(guān)聯(lián)的MAC。然而,這個(gè)解決方案具過(guò)分高的管芯上存儲(chǔ)要求。
[0027]對(duì)于如下描述,使用如下術(shù)語(yǔ)用于主存儲(chǔ)器120:主存儲(chǔ)器120被劃分成區(qū)域,包含一個(gè)或多個(gè)保護(hù)區(qū)域125(在本文也稱為安全存儲(chǔ)器范圍或MEE區(qū)域)。每個(gè)區(qū)域都具有多個(gè)區(qū),EPC區(qū)(其在頁(yè)粒度上是可轉(zhuǎn)換的)、重放保護(hù)和完整性元數(shù)據(jù)的硬件保留區(qū)(其在區(qū)粒度上是可轉(zhuǎn)換的)以及另一硬件保留區(qū)(其是內(nèi)部實(shí)現(xiàn)的,并且不可用于轉(zhuǎn)換)。在一個(gè)實(shí)施例中,保護(hù)區(qū)域(MEE區(qū)域)可以是固定范圍,或者多個(gè)保護(hù)區(qū)域(MEE區(qū)域)可以是多個(gè)固定范圍的集合。在另一實(shí)施例中,整個(gè)存儲(chǔ)器可配置為靈活存儲(chǔ)器,劃分成多個(gè)MEE區(qū)域。在啟動(dòng)時(shí),整個(gè)存儲(chǔ)器開(kāi)始作為不安全的,并且系統(tǒng)軟件如系統(tǒng)上的安全存儲(chǔ)器的需求所指導(dǎo)的轉(zhuǎn)換它。如本文所描述的,主存儲(chǔ)器120可包含多個(gè)安全MEE區(qū)域,并且還可包含不安全存儲(chǔ)器范圍。
[0028]在一個(gè)實(shí)施例中,處理器110包含一個(gè)或多個(gè)處理器核140。在處理器核140上執(zhí)行的軟件(例如OS或VMM)可標(biāo)識(shí)主存儲(chǔ)器120中的存儲(chǔ)器范圍(標(biāo)記為保護(hù)區(qū)域125 )中的可轉(zhuǎn)換頁(yè),并使用頁(yè)轉(zhuǎn)換指令來(lái)轉(zhuǎn)換可轉(zhuǎn)換頁(yè)。處理器核140響應(yīng)于頁(yè)轉(zhuǎn)換指令而根據(jù)頁(yè)轉(zhuǎn)換指令確定保護(hù)區(qū)域125中的哪個(gè)可轉(zhuǎn)換頁(yè)要轉(zhuǎn)換,并將可轉(zhuǎn)換頁(yè)轉(zhuǎn)換成安全頁(yè)或不安全頁(yè)中的至少一個(gè)。在一個(gè)實(shí)施例中,頁(yè)轉(zhuǎn)換指令是第一轉(zhuǎn)換指令或第二轉(zhuǎn)換指令中的一個(gè)。響應(yīng)于第一轉(zhuǎn)換指令,處理器核140將可轉(zhuǎn)換頁(yè)從不安全頁(yè)轉(zhuǎn)換成安全頁(yè)。響應(yīng)于第二轉(zhuǎn)換指令,處理器核140將可轉(zhuǎn)換頁(yè)從安全頁(yè)轉(zhuǎn)換成不安全頁(yè)。例如,在操作期間,頁(yè)轉(zhuǎn)換在具體時(shí)間可由對(duì)存儲(chǔ)器系統(tǒng)的需求指導(dǎo)。如果0S/VMM確定它在不安全存儲(chǔ)器上低速運(yùn)行(例如由于大量飛地運(yùn)行引起的),并且需要向非飛地應(yīng)用分配存儲(chǔ)器,則0S/VMM將確定它想要從安全轉(zhuǎn)換成不安全的頁(yè),并執(zhí)行本文所描述的用于轉(zhuǎn)換的過(guò)程。應(yīng)該指出,本文的描述互換地使用不安全和非安全。
[0029]在一個(gè)實(shí)施例中,處理器核140響應(yīng)于從不安全轉(zhuǎn)換到安全的第一轉(zhuǎn)換指令而執(zhí)行如下操作:1)確保作為參數(shù)傳給指令的頁(yè)的地址指向可轉(zhuǎn)換成安全頁(yè)的頁(yè);2)驗(yàn)證對(duì)應(yīng)于可轉(zhuǎn)換頁(yè)的頁(yè)高速緩存映射條目(未圖示)的安全位被設(shè)置成不安全;3)使來(lái)自處理器110的高速緩存160的所高速緩存的頁(yè)內(nèi)容無(wú)效;4)將頁(yè)高速緩存映射條目的安全位設(shè)置成安全;以及5)使處理器核140的地址的變換無(wú)效。應(yīng)該指出,在具有兩個(gè)線程的超線程處理器中,存在兩個(gè)邏輯處理器。在此情況下,將被無(wú)效的變換用于來(lái)自當(dāng)前邏輯處理器的地址。應(yīng)該指出,如下描述指示,處理器核的變換可用于當(dāng)前邏輯處理器的地址變換。
[0030]在一個(gè)實(shí)施例中,處理器核140響應(yīng)于從安全轉(zhuǎn)換到不安全的第二指令而執(zhí)行如下操作:1)確保作為參數(shù)傳給指令的頁(yè)的地址指向可轉(zhuǎn)換成不安全頁(yè)的頁(yè);2)驗(yàn)證對(duì)應(yīng)于所述可轉(zhuǎn)換頁(yè)的頁(yè)高速緩存映射條目的安全位被設(shè)置成安全;3)驗(yàn)證頁(yè)高速緩存映射條目的有效位被設(shè)置成無(wú)效,其中有效位指示該頁(yè)當(dāng)前是否映射到飛地;4)使來(lái)自所述處理器的高速緩存的所高速緩存的頁(yè)內(nèi)容無(wú)效;5)將頁(yè)高速緩存映射條目的安全位設(shè)置成不安全;以及使所述處理器核的所述地址的變換無(wú)效。
[0031 ]在另外實(shí)施例中,安全存儲(chǔ)器范圍(保護(hù)區(qū)域125)進(jìn)一步包含第二區(qū),在本文稱為硬件保留區(qū)。硬件保留區(qū)是可轉(zhuǎn)換區(qū)。主存儲(chǔ)器130還可包含不可轉(zhuǎn)換的另一硬件保留區(qū)。處理器核140響應(yīng)于區(qū)轉(zhuǎn)換指令而配置成將硬件保留區(qū)轉(zhuǎn)換成安全區(qū)或不安全區(qū)中的至少一個(gè)。在一個(gè)實(shí)施例中,區(qū)轉(zhuǎn)換指令是第三轉(zhuǎn)換指令或第四轉(zhuǎn)換指令中的一個(gè)。響應(yīng)于從不安全轉(zhuǎn)換到安全的第三轉(zhuǎn)換指令,處理器核140將硬件保留區(qū)從不安全區(qū)轉(zhuǎn)換成安全區(qū)。響應(yīng)于從安全轉(zhuǎn)換到不安全的第四轉(zhuǎn)換指令,處理器核140將硬件保留區(qū)從安全區(qū)轉(zhuǎn)換成不安全區(qū)。硬件保留區(qū)當(dāng)轉(zhuǎn)換成安全時(shí)存儲(chǔ)那個(gè)安全存儲(chǔ)器范圍的重放保護(hù)和完整性元數(shù)據(jù)(即具體MEE區(qū)域)。軟件(0S/VMM)負(fù)責(zé)判定轉(zhuǎn)換的區(qū)域。一旦進(jìn)行了判定,0S/VMM就執(zhí)行區(qū)轉(zhuǎn)換指令以將該區(qū)轉(zhuǎn)換成不安全或安全。處理器核140需要轉(zhuǎn)換的區(qū)中的任何頁(yè)的地址。
[0032]在一個(gè)實(shí)施例中,處理器核140響應(yīng)于將硬件保留區(qū)從不安全轉(zhuǎn)換到安全的第三指令而執(zhí)行如下操作:1)確保作為參數(shù)傳給指令的頁(yè)的地址指向硬件保留區(qū)中的頁(yè);2)確保硬件保留區(qū)被設(shè)置為可轉(zhuǎn)換,當(dāng)前不安全;3)指令所述MEE安裝所述硬件保留區(qū)的重放保護(hù)過(guò)濾器;以及4)指令所述MEE將所述硬件保留區(qū)置于初始化狀態(tài)。應(yīng)該指出,重放保護(hù)過(guò)濾器(例如重放保護(hù)樹(shù)過(guò)濾器)不同于重放保護(hù)機(jī)制。例如,重放保護(hù)樹(shù)包含用于提供完整性和重放保護(hù)的元數(shù)據(jù)。作為其操作的一部分,MEE高速緩存其內(nèi)部高速緩存中的這個(gè)元數(shù)據(jù)。然而,當(dāng)同一區(qū)被用作不安全區(qū)時(shí),就像系統(tǒng)上的任何其它數(shù)據(jù),來(lái)自這個(gè)區(qū)的數(shù)據(jù)可在處理器高速緩存中高速緩存?,F(xiàn)在轉(zhuǎn)換時(shí),理想上,應(yīng)該使在處理器高速緩存中高速緩存的不安全數(shù)據(jù)無(wú)效。然而,由于重放保護(hù)區(qū)由多頁(yè)構(gòu)成,因此它變得刷新來(lái)自處理器高速緩存的所有頁(yè)的內(nèi)容非常低效。因此,是硬件過(guò)濾器的重放保護(hù)過(guò)濾器可安裝在MEE。重放保護(hù)過(guò)濾器在將重放保護(hù)區(qū)從不安全轉(zhuǎn)換成安全時(shí)激活,而在轉(zhuǎn)換回到不安全時(shí)去激活。當(dāng)激活時(shí),重放保護(hù)過(guò)濾器可放棄從處理器高速緩存到已經(jīng)安裝它的區(qū)的任何寫回,由此確保現(xiàn)在用于存儲(chǔ)重放保護(hù)元數(shù)據(jù)的區(qū)數(shù)據(jù)不被破壞。
[0033]在一個(gè)實(shí)施例中,處理器核140響應(yīng)于將硬件保留區(qū)從安全轉(zhuǎn)換到安全的第四指令而執(zhí)行如下操作:1)確保作為參數(shù)傳給指令的頁(yè)的地址指向硬件保留區(qū)中的頁(yè);2)確保對(duì)應(yīng)于被轉(zhuǎn)換的硬件保留區(qū)的EPC區(qū)中的所有頁(yè)都處于不安全狀態(tài);3)指令MEE卸載硬件保留區(qū)的重放保護(hù)過(guò)濾器;以及4)指令MEE刷新來(lái)自其內(nèi)部高速緩存的硬件保留區(qū)(例如重放保護(hù)區(qū))的內(nèi)容。刷新來(lái)自MEE內(nèi)部高速緩存的內(nèi)容確保,當(dāng)它被用作不安全區(qū)時(shí),內(nèi)容驅(qū)逐將不破壞該區(qū)。
[0034]應(yīng)該指出,主存儲(chǔ)器120可包含多個(gè)安全存儲(chǔ)器范圍(本文稱為MEE區(qū)域)。主存儲(chǔ)器120還可包含不安全存儲(chǔ)器范圍。下面參考圖2詳細(xì)描述存儲(chǔ)器120的靈活保護(hù)范圍的實(shí)施例,包含多個(gè)MEE區(qū)域和不安全存儲(chǔ)器范圍。
[0035]實(shí)施例不限于計(jì)算機(jī)系統(tǒng)。本發(fā)明的備選實(shí)施例可用在其它裝置諸如手持裝置和嵌入式應(yīng)用中。手持裝置的一些示例包含蜂窩電話、因特網(wǎng)協(xié)議裝置、數(shù)字相機(jī)、個(gè)人數(shù)字助理(PDA)和手持PC。嵌入式應(yīng)用可包含微控制器、數(shù)字信號(hào)處理器(DSP)、片上系統(tǒng)、網(wǎng)絡(luò)計(jì)算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)或可執(zhí)行按照至少一個(gè)實(shí)施例的一個(gè)或多個(gè)指令的任何其它系統(tǒng)。
[0036]一個(gè)實(shí)施例可在單個(gè)處理器臺(tái)式計(jì)算機(jī)或服務(wù)器系統(tǒng)的上下文中描述,而備選實(shí)施例可包含在多處理器系統(tǒng)中。系統(tǒng)100可以是“集線器”系統(tǒng)架構(gòu)的示例。計(jì)算機(jī)系統(tǒng)100包含處理數(shù)據(jù)信號(hào)的處理器110。作為一個(gè)說(shuō)明性示例,處理器110包含復(fù)雜指令集計(jì)算機(jī)(CISC)微處理器、精簡(jiǎn)指令集計(jì)算(RISC)微處理器、超長(zhǎng)指令字(VLIW)微處理器、實(shí)現(xiàn)指令集組合的處理器或其它處理裝置,諸如例如數(shù)字信號(hào)處理器。處理器110耦合到處理器總線,處理器總線在處理器110與系統(tǒng)100中的其它組件(諸如存儲(chǔ)指令、數(shù)據(jù)或它們的任何組合的存儲(chǔ)器120)之間傳送數(shù)據(jù)信號(hào)。系統(tǒng)100的其它組件可包含圖形加速器、存儲(chǔ)器控制器集線器、I/O控制器集線器、無(wú)線收發(fā)器、閃速B1S、網(wǎng)絡(luò)控制器、音頻控制器、串行擴(kuò)展端口、I/o控制器等。這些元件執(zhí)行本領(lǐng)域技術(shù)人員眾所周知的它們的常規(guī)功能。
[0037]在一個(gè)實(shí)施例中,處理器110包含級(jí)1 (LI)內(nèi)部高速緩存存儲(chǔ)器160。根據(jù)該架構(gòu),處理器110可具有單個(gè)內(nèi)部高速緩存或內(nèi)部高速緩存的多級(jí)。其它實(shí)施例根據(jù)具體實(shí)現(xiàn)和需要包含內(nèi)部和外部高速緩存的組合。寄存器文件將不同類型的數(shù)據(jù)存儲(chǔ)在各種寄存器中,包含整數(shù)寄存器、浮點(diǎn)寄存器、向量寄存器、堆積寄存器、陰影寄存器、檢查點(diǎn)寄存器、狀況寄存器、配置寄存器和指令點(diǎn)寄存器。
[0038]應(yīng)該指出,執(zhí)行單元可具有或沒(méi)有浮點(diǎn)單元。在一個(gè)實(shí)施例中,處理器110包含存儲(chǔ)微代碼的微代碼(uCode)R0M,微代碼當(dāng)執(zhí)行時(shí)執(zhí)行用于某些宏指令的算法或處置復(fù)雜情形。在此,微代碼潛在地可更新以處置處理器110的邏輯漏