進入安全系統(tǒng)環(huán)境的定向喚醒的制作方法
【專利摘要】本文公開了用于定向喚醒進入安全系統(tǒng)環(huán)境的處理器、方法和系統(tǒng)的諸個實施例。在一個實施例中,處理器包括解碼單元,控制單元,消息傳遞單元。解碼單元用于接收安全系統(tǒng)環(huán)境喚醒指令??刂茊卧糜跒閷⒁槐3衷谒郀顟B(tài)的多個響應(yīng)邏輯處理器中的每個響應(yīng)邏輯處理器設(shè)置喚醒抑制指示符。消息傳遞單元用于將喚醒消息發(fā)送至多個響應(yīng)邏輯處理器,其中該喚醒消息將被設(shè)置有所述喚醒抑制指示符的多個響應(yīng)邏輯處理器的每個響應(yīng)邏輯處理器所忽略。
【專利說明】進入安全系統(tǒng)環(huán)境的定向喚醒
【技術(shù)領(lǐng)域】
[0001] 本公開文本屬于信息處理領(lǐng)域,并且更具體地,屬于信息處理系統(tǒng)中的安全性領(lǐng) 域。
【背景技術(shù)】
[0002] 信息處理系統(tǒng),諸如那些包括來自英特爾公司的英特爾酷睿⑧處理器家族的處 理器之類的,可支持在安全系統(tǒng)環(huán)境內(nèi)的操作。安全系統(tǒng)環(huán)境可包括可信部分和不可信部 分。該系統(tǒng)的裸平臺硬件以及可信軟件可被包括于可信部分中。從不可信部分至可信部分 源的直接訪問可被阻止,以保護該系統(tǒng)可能包含的任何秘密免于被發(fā)現(xiàn)或更改。這些秘密 可包括在該信息處理系統(tǒng)上生成的或存儲的密碼、密鑰以及私人的或保密的信息。
[0003] 經(jīng)由安全系統(tǒng)進入?yún)f(xié)議的執(zhí)行,該系統(tǒng)的裸平臺硬件可被包括在可信部分或域 中。例如,初始化處理器可執(zhí)行安全進入("SENTER")指令,該系統(tǒng)中的所有代理必須按順 序?qū)Π踩M入指令進行適當(dāng)響應(yīng),為了該協(xié)議能夠成功。這些響應(yīng)代理可被阻止在安全輸 入過程中執(zhí)行任何程序指令或處理任何外部事務(wù),由此,初始化處理器可:驗證簽名密碼模 塊是認(rèn)證的及可信的,執(zhí)行該簽名密碼模塊來配置系統(tǒng)以支持可信操作,(使用哈希擴展功 能加密地)測量并隨后初始化已測量的虛擬機監(jiān)視器("MVMM")的執(zhí)行。該MVMM可創(chuàng)造 一個或多個虛擬機環(huán)境,在該虛擬機環(huán)境中運行不可信軟件,如此,不可信軟件就不具備對 系統(tǒng)資源的直接訪問。
[0004] 附圖描沭
[0005] 本發(fā)明是通過附隨附圖中的示例而非限制來進行說明的。
[0006] 圖1示出信息處理系統(tǒng),其中本發(fā)明的實施例可以是現(xiàn)存的和/或可操作。
[0007] 圖2示出處理器,其中本發(fā)明的實施例可以是現(xiàn)存的和/或可操作。
[0008] 圖3示出芯片集,其中本發(fā)明的實施例可以是現(xiàn)存的和/或可操作。
[0009] 圖4示出根據(jù)本發(fā)明實施例的定向喚醒進入安全系統(tǒng)環(huán)境的方法。
【具體實施方式】
[0010] 下文描述的是用于定向喚醒進入安全系統(tǒng)的裝置,方法以及系統(tǒng)的實施例。在本 說明說,諸如組件以及系統(tǒng)配置之類的許多具體細(xì)節(jié)是為了提供對本發(fā)明更徹底的理解而 被闡述。然而,本領(lǐng)域技術(shù)人員將理解的是本發(fā)明可在沒有此類具體細(xì)節(jié)的情況下予以實 踐。另外,一些熟知的結(jié)構(gòu),電路以及類似物并未詳細(xì)示出,以避免不必要地模糊本發(fā)明。此 夕卜,本說明會使用根據(jù)一個實施例中的指令名稱(例如,"SENTER")來提及指令;其他實施 例中,這些指令或相似指令可具有不同名稱。
[0011] 本發(fā)明的諸個實施例可被用于安全系統(tǒng)環(huán)境中的功耗管理。根據(jù)本發(fā)明實施例的 技術(shù)可被用于在進入安全系統(tǒng)環(huán)境之后有選擇地喚醒處理器以及其他代理,以便系統(tǒng)功耗 可予以降低。
[0012] 圖1示出信息處理系統(tǒng)100中的本發(fā)明實施例。信息處理系統(tǒng)100可以是個人計 算機、大型機、便攜式計算機、手持式設(shè)備、機頂盒、服務(wù)器、或者其他任何計算系統(tǒng)。本實施 例中,系統(tǒng)100包括裸平臺硬件110,其進而包括處理器120U30以及140、系統(tǒng)存儲器150、 芯片集160、令牌170、設(shè)備180、以及非易失性存儲器190。
[0013] 處理器120、130以及140中的每一個處理器可代表具有一個或多個執(zhí)行核的組 件,其中每個執(zhí)行核可基于任何各種各樣不同形式的處理器,包括通用功能微處理器(諸 如來自英特爾?酷睿?處理器家族的或來自英特爾公司其他處理器家族中的處理器),或 來自另一個公司的另一種處理器,或者專用處理器或微控制器,或者可以是可重構(gòu)核(例 如,現(xiàn)場可編程門陣列)。雖然圖1示出三個此類處理器,但系統(tǒng)100可包括任何數(shù)量的處 理器,每個處理器包括以任何組合形式的任何數(shù)量的執(zhí)行核以及執(zhí)行線程。在某些實施例 中,處理器120、130或140任何一個或所有處理器可代表在一個或多個物理處理器上運行 的獨立的硬件執(zhí)行線程或"邏輯處理器"。
[0014] 系統(tǒng)存儲器150可以是其上存儲有諸如數(shù)據(jù)和/或程序代碼之類的信息的任何諸 如動態(tài)隨機存取存儲器之類的任何介質(zhì),或者處理器120、130和140可讀的任何其他形式 的介質(zhì),或者此類介質(zhì)的任何組合。
[0015] 芯片集160可代表任何一組電路以及邏輯,該組電路和邏輯支持存儲器操作、輸 入/輸出("I/O")操作、配置、控制、內(nèi)部或外部接口、連接、或通信功能(例如,"黏合"邏 輯和總線橋)、和/或處理器120、130以及140和/或系統(tǒng)100的任何相似功能。芯片集 160的獨立兀件可在一塊單獨芯片上,一對芯片上被組合在一起,分散在多個芯片上,和/ 或被部分地、全部地、多余地、或根據(jù)分布式方法被集成至一個或多個包括處理器120U30 和140中任何一個的處理器。
[0016] 令牌170可包括可信平臺模塊("TPM")172以及平臺配置寄存器("PCR")174。 TPM 172可以是包括微控制器的組件,用于安全地存儲密鑰、密碼、數(shù)字證書、以及其他用于 建立和維持安全性的信息。PCR 174可包括任何數(shù)量的用于存儲系統(tǒng)配置信息的寄存器和 /或其他儲存位置。TPM 172和/或PCR 174被配置成僅可被特定代理和/或在特定條件 下被訪問。令牌170和/或TPM 172和PCR 174中的所有或任何一個均可被包括于芯片集 160或系統(tǒng)100中的任何組件內(nèi)。
[0017] 設(shè)備180可代表任何數(shù)量的任何形式的I/O設(shè)備、外圍設(shè)備、或其他設(shè)備,諸如鍵 盤、鼠標(biāo)、軌跡球、定位設(shè)備、監(jiān)視器、打印機、媒體卡、網(wǎng)絡(luò)接口、信息存儲設(shè)備等等。設(shè)備 180可體現(xiàn)在分立組件中,或可包括于與任何其他設(shè)備相集成的組件中。在一個實施例中, 設(shè)備180可代表在多功能I/O設(shè)備、外圍設(shè)備、或其他設(shè)備中的單獨功能。
[0018] 處理器120、130和140、系統(tǒng)存儲器150、芯片集160、令牌170、以及設(shè)備180可彼 此耦合或通信,根據(jù)諸如直接地或間接地通過一個或多個并行、連續(xù)、流水、異步、同步、有 線、無線、或其他總線或點對點連接之類的任何已知的方法。系統(tǒng)100還可包括任何數(shù)量的 附加設(shè)備、代理、組件或連接。
[0019] 圖2示出處理器200,其可代表圖1中處理器120、130和140中的任何一個,或根 據(jù)本發(fā)明實施例的任何其他處理器。
[0020] 處理器200可包括高速緩存210,其可以是靜態(tài)隨機存取存儲器,或其他任何形式 的存儲器,用于存儲諸如從系統(tǒng)存儲器150處復(fù)制的數(shù)據(jù)之類的信息。處理器200 (或高速 緩存210)還可包括高速緩存控制邏輯220,用于控制高速緩存210是否運作在正常模式還 是高速緩存作為隨機存取存儲器("CRAM")模式。正常模式中,高速緩存210響應(yīng)于高速 緩存命中而滿足存儲器請求,響應(yīng)于高速緩存未命中而替換高速緩存線,并響應(yīng)于偵聽請 求而使高速緩存線無效或替換高速緩存線。CRAM模式中,高速緩存210如隨機存取存儲器 般運作,其中在該高速緩存存儲器存儲范圍內(nèi)的請求被該高速高速緩存存儲器滿足,并且 該高速緩存線不因響應(yīng)于偵聽請求而被替換或失效。
[0021] 處理器200還可包括指令單元230、控制單元240、執(zhí)行單元250、消息傳遞單元 260、以及儲存器270。儲存器270是用于存儲對本發(fā)明實施例的實施有用的任何信息或參 數(shù),并且可包括任何形式的處理器200可訪問的存儲器,諸如寄存器或只讀或可讀寫存儲 器的陣列,或不同形式存儲器的任何組合。圖2中,儲存器270可代表多個儲存位置,其可 以是在處理器200中被物理地分開的,諸如若干個通用功能處理器寄存器、若干個特定模 式寄存器、以及若干個機器狀態(tài)儲存位置。
[0022] 指令單元230可包括任何電路、邏輯、或其他硬件或結(jié)構(gòu),諸如解碼器,用于接收、 識別、解碼、或以其他方式接收指令。控制單元240可包括任何電路、邏輯、或其他硬件或結(jié) 構(gòu),諸如微代碼、狀態(tài)機邏輯、可編程邏輯,或任何其他形式的控制邏輯,用于生成控制信號 或以其他方式響應(yīng)于由指令單元230接收的指令和/或消息傳遞單元260接收的消息而控 制處理器200。
[0023] 執(zhí)行單元250可包括任何電路、邏輯、或其他硬件或結(jié)構(gòu),用于執(zhí)行由指令單元 230接收的指令。執(zhí)行單元250可基于由控制單元240生成的控制信號來運作。消息傳遞 單元260可包括任何電路、邏輯、或其他硬件或結(jié)構(gòu),用于生成消息,該消息由處理器200發(fā) 送至系統(tǒng)100中的其他組件或代理,并且還用于接收被系統(tǒng)100中的其他組件或代理發(fā)送 至處理器200的消息。
[0024] 在處理器200的一個實施例中,指令單元210可以是用來接收處理器200的指令 ("SENTER"指令),該指令使處理器200開始過程,以在系統(tǒng)100中建立安全環(huán)境("SENTER" 過程)。響應(yīng)于該SENTER指令,控制單元240生成控制信號,以使消息傳遞單元260生成 "SENTER"總線消息(或系統(tǒng)中其他形式的消息,該系統(tǒng)中處理器和其他代理通過除總線以 外的方式進行通信),該"SENTER"總線消息被其他處理器和代理的消息傳遞單元認(rèn)作是 SENTER總線消息。執(zhí)行該SENTER指令并發(fā)送該SENTER總線消息的處理器或執(zhí)行線程被稱 為"初始化邏輯處理器"("ILP")。
[0025] 系統(tǒng)中接收該SENTER總線消息的每個處理器、執(zhí)行線程、或其他代理被稱為"響 應(yīng)邏輯處理器"("RLP")。響應(yīng)于該SENTER總線消息,每個RLP執(zhí)行動作來為安全環(huán)境的 建立而做準(zhǔn)備,并且允許ILP繼續(xù)啟動安全環(huán)境。這些動作的其中之一可以是為了它們的 消息傳遞單元生成"ACK"總線消息,來確認(rèn)收到SENTER總線消息。另一個動作可以是在確 認(rèn)收到該SENTER總線消息之后進入睡眠狀態(tài)。該睡眠狀態(tài)可以是如下模式:其中RLP等待 ILP指示SENTER過程的成功完成,并且不執(zhí)行任何指令或不做出訪問任何系統(tǒng)資源的任何 嘗試。
[0026] 圖3示出芯片集300,其可代表芯片集160,或者執(zhí)行根據(jù)本發(fā)明實施例的芯片集 160功能的任何其他芯片集或組件。芯片集300可包括消息傳遞單元310、控制單元320、 "EXISTS"儲存位置330、" JOINS"儲存位置340,以及"ALL_J0INED"儲存位置350。
[0027] 消息傳遞單元310可包括任何電路、邏輯、或其他硬件或結(jié)構(gòu),用于生成被芯片集 300發(fā)送至系統(tǒng)100中的其他組件或代理的消息,并用于接收由系統(tǒng)100中其他組件或代理 所發(fā)送的消息??刂茊卧?20可包括任何電路、邏輯或者諸如微代碼、狀態(tài)機邏輯、可編程 邏輯之類的其他硬件或結(jié)構(gòu),或任何其他形式的控制邏輯,用于生成控制信號或以其他方 式響應(yīng)于被消息傳遞單元310接收的消息而控制芯片集200。
[0028] "EXISTS" 儲存位置 330, "JOINS" 儲存位置 340,以及"ALL_J0INED" 儲存位置 350 中的每一個可包括寄存器或任何其他形式的信息儲存器,也可包括任何位數(shù)的儲存器。在 一個實施例中,控制單元320可使用EXISTS儲存位置330來跟蹤在系統(tǒng)100中運作的所有 邏輯處理器以及其他代理,并且使用JOINS儲存位置340來跟蹤所有已經(jīng)確認(rèn)SENTER總線 消息的邏輯處理器以及其他代理。當(dāng)系統(tǒng)100中的如在EXISTS儲存位置330中反映的所 有處理器和其他代理已經(jīng)確認(rèn)SENTER總線消息,如在JOINS儲存位置340中所反映的那 樣,則控制單元320可在"ALL_J0INED"儲存位置350中設(shè)置指示符以向ILP指示:安全環(huán) 境的初始化可繼續(xù)。應(yīng)注意,在SENTER過程的本說明中,如在本說明的其他部分中一樣,不 被要求描述的并且促使本發(fā)明實施例的許多細(xì)節(jié)已被省略,并且該過程的許多改變是可能 的。例如,通過前端處理器總線("FSB"),ILP和RLP被連接,其中FSB事務(wù)可包括每個事 務(wù)的發(fā)起者的標(biāo)識符,并且芯片集300可被連接至該FSB以跟蹤所有FSB邏輯處理器或其 他總線代理。
[0029] 回到圖1,非易失性儲存器190可代表系統(tǒng)100中任何數(shù)量的分立的非易失性儲存 介質(zhì),諸如半導(dǎo)體閃存或磁性盤或光盤。非易失性儲存器190可被用于存儲在本發(fā)明實施 例中使用的軟件組件。例如,非易失性儲存器190可存儲驗證碼模塊("ACM")192以及已 測量的虛擬機監(jiān)視器("MVMM")194。
[0030] ACM 192可在SENTER過程中被一個處理器或多個處理器執(zhí)行,以執(zhí)行建立安全環(huán) 境中涉及的任何數(shù)量的操作。例如,ACM 192可被用于初始化、配置、并測試系統(tǒng)100中的 組件,以使它們參與安全環(huán)境。在一個實施例中,ACM 192可被用于測試系統(tǒng)100的存儲器 配置(這由系統(tǒng)100中任何處理器,芯片集,或其他組件的存儲器控制功能所控制),以確保 對系統(tǒng)存儲器150的特定頁面或部分的訪問可被限制或控制,以便使保護系統(tǒng)100所使用 的MVMM 194和/或其他軟件當(dāng)被存儲于系統(tǒng)存儲器150中時可被保護。在另一個實施例 中,ACM 192可被用于驗證安全環(huán)境中使用的MVMM 194和其他任何軟件,并且可被用于啟 動MVMM 194的執(zhí)行。
[0031] MVMM 194可以是任何虛擬機監(jiān)視器、管理程序、或其他此類的軟件程序,它是在 SENTER過程中被調(diào)用的可信實體,用于控制一個或多個虛擬機去執(zhí)行其他軟件程序(常被 稱為已測量的啟動環(huán)境,或"MLE"),其中某些軟件程序是可信的,某些是不可信的。
[0032] 為了在系統(tǒng)100中建立安全環(huán)境,諸如操作系統(tǒng)("0S")或基本輸入/輸出系統(tǒng) ("BIOS")之類的在系統(tǒng)100中的處理器120、130、140或任何其他處理器上運行的系統(tǒng)軟 件可將ACM 192以及MVMM 194從非易失性存儲器190轉(zhuǎn)移至系統(tǒng)存儲器150,隨后使這些 處理器的其中之一(例如處理器120)執(zhí)行SENTER指令。SENTER指令的執(zhí)行可使處理器 120作為ILP以:發(fā)出SENTER總線消息,輪詢ALL_J0INED儲存位置350直到所有RLP已確 認(rèn)該SNETER總線消息,配置高速緩存122運行于CRAM模式,并將ACM 192加載至高速緩存 122。高速緩存122可被配置成運行于CRAM模式,以使得高速緩存122可作為私有安全存 儲器,其中處理器120可認(rèn)證ACM 192。
[0033] ACM 192可包括安全初始化("SINIT")模塊,其可被用于驗證多種硬件設(shè)置,并且 執(zhí)行其他功能作為建立安全系統(tǒng)環(huán)境中的一部分。完成后,該SINIT模塊可使用指令(例 如,"EXITAC"指令)以退出驗證碼執(zhí)行模式,并跳轉(zhuǎn)至MVMM執(zhí)行入口點。
[0034] 在處理器200的一個實施例中,指令單元210還可用于接收處理器200的指令 ("WAKEUP"指令),來將RLP從睡眠狀態(tài)中喚醒。舉例而言,該指令可被MVMM用作為SENTER 過程完成的一部分。響應(yīng)于該WAKEUP指令,控制單元240生成控制信號以使消息傳遞單元 260生成"WAKEUP"總線消息(或系統(tǒng)中的其他消息,該系統(tǒng)中處理器以及其他代理通過除 總線之外的方式進行通信),該總線消息被其他處理器的消息傳遞單元識別為WAKEUP總線 消息。僅有ILP可成功執(zhí)行WAKEUP指令并發(fā)送WAKEUP總線消息。
[0035] 本發(fā)明實施例提供通過將喚醒消息定向至特定RLP來選擇性地喚醒一個或多個 RLP。本發(fā)明實施例可被用于指定喚醒消息是被定向至哪些RLP。
[0036] 在一個實施例中,其中ILP是英特爾?奔騰?處理器家族中的處理器,SENTER和 WAKEUP指令可以是更高級別指令(例如,GETSEC)的葉函數(shù),并且存儲器270可包括該處理 器的EAX、EBX、ECX以及EDX寄存器。葉函數(shù)可被識別并進一步由這些或其他寄存器或儲 存位置中的值來定義。例如,軟件可預(yù)加載具有"〇4h"(其中"h"指的是十六進制表示法) 或"08h"的EAX寄存器,隨后使用GETSEC指令來使處理器200分別執(zhí)行SENTER或WAKEUP 指令。
[0037] 另一個由"07h"的EAX值定義的葉函數(shù)(諸如SMCTRL)可被用于提供安全執(zhí)行環(huán) 境控制能力,諸如非屏蔽系統(tǒng)管理中斷。該葉函數(shù)還可被用于切換進入定向喚醒模式以及 切換離開定向喚醒模式。在一個實施例中,EBX寄存器中有"Olh"值的被執(zhí)行的SMCTRL指 令可被用于切換進入定向喚醒模式,并且EBX寄存器中有"02h"值的被執(zhí)行的SMCTRL指令 可被用于切換離開定向喚醒模式。
[0038] 換言之,當(dāng)不在定向喚醒模式中的WAKEUP指令的執(zhí)行可導(dǎo)致所有RLP的喚醒,當(dāng) 在定向喚醒模式中的WAKEUP指令的執(zhí)行可僅導(dǎo)致特定RLP的喚醒。在一個實施例中,將被 喚醒的特定RLP可通過ECX和/或EDX寄存器中的值來被確定。
[0039] 每個RLP可通過諸如其相應(yīng)的本地高級可編程中斷控制器("APIC")的標(biāo)識值之 類的唯一的標(biāo)識("ID")值來識別。然后,ECX和EDX寄存器中的值可被用作掩碼,由此, 在該ID值上和掩碼值上進行的邏輯AND操作的結(jié)果可指示該RLP是否將被喚醒。
[0040] 例如,假設(shè)RLP可以是多處理器封裝中的多核處理器的多線程核中的線程。則在 一個實施例中,可使用8位ID值,其最高兩位(位7 :6)可被用于識別封裝,并且中間五位 (位5:1)可被用于識別核,并且最低位(位0)可被用于識別線程。在雙封裝、雙核超線程 啟用的處理器的情況下,該ID值可被賦值如下(其中"P"指示封裝號,"C"指示核號,且"T" 指示線程號):
[0041] 對 P0C0T0,將 00h (或者 0000_0000b)賦值給 ID 值。
[0042] 對 P0C0T1,將 Olh (或者 0000_0001b)賦值給 ID 值。
[0043] 對 P0C1T0,將 02h (或者 0000_0010b)賦值給 ID 值。
[0044] 對 P0C1T1,將 03h (或者 0000_0011b)賦值給 ID 值。
[0045] 對 P1C0T0,將 40h (或者 0100_0000b)賦值給 ID 值。
[0046] 對 P1C0T1,將 41h (或者 0100_0001b)賦值給 ID 值。
[0047] 對 P1C1T0,將 42h (或者 0100_0010b)賦值給 ID 值。
[0048] 對 P1C1T1,將 43h (或者 0100_0011b)賦值給 ID 值。
[0049] 假設(shè)P0C0T0是ILP,則掩碼值可被用于指定哪個線程或哪幾個線程在執(zhí)行WAKEUP 指令后將被保持在睡眠狀態(tài)。然后,如果線程的ID值上的邏輯AND操作的結(jié)果以及掩碼值 是零,則該線程被喚醒。
[0050] 例如,如果所有RLP線程在執(zhí)行WAKEUP指令后應(yīng)被喚醒,則ECX以及EDX值應(yīng)被 設(shè)置為〇h。這可被用作默認(rèn)配置?;蛘?,為了將所有RLP線程在執(zhí)行WAKEUP指令后保持在 睡眠狀態(tài),ECX以及EDX值應(yīng)均被設(shè)為FFFF_FFFFh?;蛘撸瑸榱藛拘阉芯哂?0"封裝ID 和"3"核ID的線程,ECX值應(yīng)被設(shè)為FFFF_FFF8h且EDX值應(yīng)被設(shè)為FFFF_FFFFh?;蛘?,為 了喚醒所有具有" 1"封裝ID的線程,無論核或線程ID,ECX值應(yīng)被設(shè)為FFFF_FF80h且EDX 值應(yīng)被設(shè)為FFFF_FFFFh。
[0051] 在其他實施例中,ID和掩碼值可以是不同大小和/或格式,并且可被用于確定哪 個RLP根據(jù)任何其他方法將被喚醒。
[0052] 對每個將被保持在睡眠狀態(tài)的RLP來說,ILP可在芯片集160或系統(tǒng)100中的任 何地方內(nèi)設(shè)置指示符。在一個實施例中,PIC_EVENT_INHIBIT[LT_DOORBELL]控制位可被使 用,其中LT-WAKEUP事件是在LT-D00RBELL類別下的諸個子事件的其中之一。如果該控制 位是為特定線程而設(shè)置,那么該LT-WAKEUP事件將被RLP忽略。然后,作為安全系統(tǒng)環(huán)境退 出過程的一部分,例如,響應(yīng)于GETSEC指令的SEXIT葉函數(shù),這些控制位將被清除,以便這 些RLP可被喚醒用于EXIT事件。
[0053] 在其他實施例中,不同邏輯約定可被用于任何或所有位、指示符、或者其他值。例 如,指示符將被清除,而非被設(shè)為指示W(wǎng)AKEUP事件將被忽略,等等。
[0054] 圖4示出本發(fā)明的方法實施例,根據(jù)本發(fā)明實施例的定向喚醒進入安全系統(tǒng) 環(huán)境的方法400。為了達(dá)到說明性目的,方法400的說明可涉及圖1、2或3,和/或 英特爾?酷睿⑧處理器家族的指令和總線消息,然而本發(fā)明的方法200以及其他方法實施 例并不旨在為這些參考所限制。此外,方法400可代表對諸個分立方法的編譯,這些方法的 每一個均在不同位置可由不同實體或人或自動執(zhí)行。
[0055] 例如,方法400中執(zhí)行的特定操作可由處理器200響應(yīng)于由控制單元240而執(zhí)行, 或由芯片集300響應(yīng)于由控制單元320生成的控制信號而執(zhí)行。響應(yīng)于指令單元230將指 令解碼成一個或多個微指令或微操作,和/或響應(yīng)于消息傳遞單元260接收總線消息或其 他事務(wù),處理器200中的控制信號可以被輪流生成;并且響應(yīng)于消息傳遞單元310接收總線 消息或其他事務(wù),芯片集300中的控制信號可被輪流生成。
[0056] 在框410中,系統(tǒng)100對安全系統(tǒng)環(huán)境的進入可由例如BIOS、引導(dǎo)加載器、0S向 ILP (例如,處理器120)發(fā)送SENTER指令來初始化。在框412中,處理器120可發(fā)送SENTER 總線消息。在框414中,系統(tǒng)100中的每個RLP(例如,處理器130和140)可發(fā)送ACK總線 消息。在框416中,所有RLP都已加入SENTER過程的指示可被設(shè)置在例如ALL_J0INED儲 存位置350中。
[0057] 在框420中,ILP可開始執(zhí)行它的ACM。在框422中,ACM的執(zhí)行可初始化MVMM。
[0058] 在框430中,啟用定向喚醒,例如,經(jīng)由執(zhí)行在EBX寄存器中具有"Olh"值的 SMCTRL指令。在框432中,例如,基于ECX和/或EDX值中的數(shù)值而識別將被喚醒的RLP。 在框434中,為每個將被保持在睡眠狀態(tài)中的RLP設(shè)置喚醒抑制指示符。
[0059] 在框440中,ILP接收WAKEUP指令。在框442中,ILP發(fā)送WAKEUP總線消息。在 框444中,設(shè)置有喚醒抑制指示符的RLP忽略該WAKEUP消息并處于睡眠狀態(tài)。在框446中, 沒有設(shè)置喚醒抑制指示符的RLP響應(yīng)于總線消息而被喚醒。
[0060] 在框450中,進行安全系統(tǒng)環(huán)境中應(yīng)用程序和其他軟件的執(zhí)行。
[0061] 在框460中,ILP接收SEXIT指令。在框462中,所有喚醒抑制指示符被清除。在 框464中,安全系統(tǒng)環(huán)境被退出。
[0062] 在本發(fā)明范圍內(nèi),圖5中所示方法可按不同順序來執(zhí)行、省略所示框、添加額外 框、或以重排序、省略、或額外的框的組合方式被執(zhí)行。例如,框444和446可同時發(fā)生。 [〇〇63] 因此,進入安全系統(tǒng)環(huán)境定向喚醒的裝置,方法,以及系統(tǒng)已被公開。雖然特定實 施例已被公開,并在隨附的附圖中示出,但應(yīng)理解此類實施例僅是說明性的而非廣大發(fā)明 的限制,并且本發(fā)明并未受限于已示出和已說明的特定結(jié)構(gòu)和安排,因為本領(lǐng)域技術(shù)人員 基于對本公開文本的學(xué)習(xí)可想到各種各樣的其他更改。在諸如此類的【技術(shù)領(lǐng)域】中,發(fā)展是 快速的,并且進一步的提高并非是易于預(yù)見的,已公開的實施例可借助于已授權(quán)的技術(shù)改 進,且不背離本公開文本的原理或隨附權(quán)利要求的范圍,而在安排和細(xì)節(jié)中被更改。
【權(quán)利要求】
1. 一種處理器,包括: 解碼單元,用于接收安全系統(tǒng)環(huán)境喚醒指令; 控制單元,用于為將要被保持在睡眠狀態(tài)的多個響應(yīng)邏輯處理器中的每個響應(yīng)邏輯處 理器設(shè)置喚醒抑制指示符; 消息傳遞單元,用于將喚醒消息發(fā)送至所述多個響應(yīng)邏輯處理器,其中所述喚醒消息 將被設(shè)置有所述喚醒抑制指示符的所述多個響應(yīng)邏輯處理器的每個響應(yīng)邏輯處理器所忽 略。
2. 如權(quán)利要求1所述的處理器,其中所述控制單元還用于確定所述多個響應(yīng)邏輯處理 器其中的哪些響應(yīng)邏輯處理器將被保持在睡眠狀態(tài)。
3. 如權(quán)利要求2所述的處理器,其中所述解碼單元還用于接收安全系統(tǒng)環(huán)境喚醒指 令,以提供用于確定所述多個響應(yīng)邏輯處理器中的哪些響應(yīng)邏輯處理器將被保持在睡眠狀 態(tài)的信息。
4. 如權(quán)利要求3所述的處理器,其中所述信息是掩碼。
5. 如權(quán)利要求4所述的處理器,進一步包括AND邏輯,用于在掩碼以及用于每個響應(yīng)邏 輯處理器的標(biāo)識值上執(zhí)行邏輯AND操作,以確定所述多個邏輯處理器中的哪些響應(yīng)邏輯處 理器將被保持在睡眠狀態(tài)。
6. 如權(quán)利要求1所述的處理器,其中所述解碼單元還用于接收安全系統(tǒng)環(huán)境退出指 令,并且所述控制單元還用于響應(yīng)于所述解碼單元接收所述安全系統(tǒng)環(huán)境退出指令而清除 所述多個響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯處理器的喚醒抑制指示符。
7. -種方法,包括: 接收安全系統(tǒng)環(huán)境喚醒指令; 為將要被保持在睡眠狀態(tài)的多個響應(yīng)邏輯處理器中的每個響應(yīng)邏輯處理器設(shè)置使喚 醒抑制指示符;以及 將喚醒消息發(fā)送至所述多個響應(yīng)邏輯處理器,其中所述喚醒消息將被設(shè)置有所述喚醒 抑制指示符的所述多個響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯處理器所忽略。
8. 如權(quán)利要求7所述的方法,進一步包括:確定所述多個響應(yīng)邏輯處理器中的哪些響 應(yīng)邏輯處理器將被保持在睡眠狀態(tài)。
9. 如權(quán)利要求8所述的方法,進一步包括:接收安全系統(tǒng)環(huán)境喚醒指令,以提供用于確 定所述多個響應(yīng)邏輯處理器中的哪些響應(yīng)邏輯處理器將被保持在睡眠狀態(tài)的信息。
10. 如權(quán)利要求9所述的方法,其中所述信息是掩碼。
11. 如權(quán)利要求10所述的方法,進一步包括:在掩碼以及用于每個響應(yīng)邏輯處理器的 標(biāo)識值上執(zhí)行邏輯AND操作,以確定所述多個邏輯處理器中的哪些響應(yīng)邏輯處理器將被保 持在睡眠狀態(tài)。
12. 如權(quán)利要求7所述的方法,進一步包括:接收安全系統(tǒng)環(huán)境退出指令。
13. 如權(quán)利要求12所述的方法,進一步包括:響應(yīng)于接收所述安全系統(tǒng)環(huán)境退出指令, 清除所述多個響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯處理器的喚醒抑制指示符。
14. 如權(quán)利要求7所述的方法,進一步包括:設(shè)置有對應(yīng)的喚醒抑制指示符的所述多個 響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯處理器忽略所述喚醒消息。
15. 如權(quán)利要求14所述的方法,進一步包括:響應(yīng)于所述喚醒消息,對應(yīng)的喚醒抑制指 示符被清除的每一個響應(yīng)邏輯處理器被喚醒。
16. -種系統(tǒng),包括: 多個響應(yīng)邏輯處理器; 初始化邏輯處理器包括: 解碼單元,用于接收安全系統(tǒng)環(huán)境喚醒指令, 控制單元,用于確定多個響應(yīng)邏輯處理器中的哪些響應(yīng)邏輯處理器將被保持在睡眠狀 態(tài),以及 消息傳遞單元,用于將喚醒消息發(fā)送至所述多個響應(yīng)邏輯處理器;以及 多個喚醒抑制指示符,所述多個響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯處理器有一個喚 醒抑制指示符。 其中設(shè)置有對應(yīng)的喚醒抑制指示符的所述多個響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯 處理器忽略所述喚醒消息。
17. 如權(quán)利要求16所述的系統(tǒng),其中所述解碼單元還用于接收安全系統(tǒng)環(huán)境喚醒指 令,以提供用于確定所述多個響應(yīng)邏輯處理器中的哪些響應(yīng)邏輯處理器將被保持在睡眠狀 態(tài)的信息。
18. 如權(quán)利要求17所述的系統(tǒng),其中所述信息是掩碼。
19. 如權(quán)利要求18所述的系統(tǒng),進一步包括AND邏輯,用于在掩碼以及用于每個響應(yīng)邏 輯處理器的標(biāo)識值上執(zhí)行邏輯AND操作,以確定所述多個邏輯處理器中的哪些響應(yīng)邏輯處 理器將被保持在睡眠狀態(tài)。
20. 如權(quán)利要求16所述的系統(tǒng),其中所述解碼單元還用于接收安全系統(tǒng)環(huán)境退出指 令,并且所述控制單元還用于響應(yīng)于所述解碼單元接收所述安全系統(tǒng)環(huán)境退出指令而清除 所述多個響應(yīng)邏輯處理器中的每一個響應(yīng)邏輯處理器的喚醒抑制指示符。
【文檔編號】G06F21/30GK104115153SQ201280070088
【公開日】2014年10月22日 申請日期:2012年2月20日 優(yōu)先權(quán)日:2012年2月20日
【發(fā)明者】T·E·林, W·C·泰赫 申請人:英特爾公司