用于硬件平臺的固件的系統(tǒng)內(nèi)供應的制作方法
【專利摘要】一種硬件平臺,包括可以存儲系統(tǒng)固件以及針對用于硬件平臺的主要操作系統(tǒng)的代碼的非易失性存儲設備。硬件平臺包括確定硬件平臺缺少從存儲設備啟動主要操作系統(tǒng)的功能固件的控制器??刂破鲝膶佑布脚_外部的設備的外部接口訪問固件圖像,其中外部設備是固件圖像源。控制器從外部設備向存儲設備供應固件并且從所供應的固件發(fā)起啟動序列。
【專利說明】
用于硬件平臺的固件的系統(tǒng)內(nèi)供應
技術領域
[0001]本發(fā)明的實施例一般涉及系統(tǒng)固件供應,并且更特別地涉及當組件在硬件平臺中的系統(tǒng)內(nèi)時供應硬件平臺固件。
[0002]版權聲明/許可
本專利文檔的公開部分可能包含受到版權保護的資料。因其出現(xiàn)在專利和商標局專利文件或記錄中,版權所有人不反對任何人復制該專利文檔或?qū)@_,但否則無論如何都保留所有版權權利。版權聲明應用于以下所描述的所有數(shù)據(jù),并且在所附的附圖中,以及以下所描述的任何軟件:版權◎ 2014,英特爾公司,保留所有權利。
【背景技術】
[0003]計算設備具有各種組件一起耦合在其上以提供用于計算設備的功能的硬件平臺。通常,計算設備包括處理器、短期存儲器(易失性存儲器)和較長期存儲器(非易失性存儲裝置)。典型地,硬件平臺上的一個或多個組件執(zhí)行存儲在只讀存儲器(ROM)中的基本初始代碼,其允許硬件平臺加載控制硬件組件的固件。固件然后從存儲裝置向易失性存儲器中加載代碼和數(shù)據(jù)(諸如主機操作系統(tǒng))以供處理器執(zhí)行。
[0004]固件傳統(tǒng)上存儲在分離組件(例如閃速存儲設備)中,該分離組件添加在組件自身方面的成本,以及附加設計和制造成本以將組件放置在硬件平臺上。ROM代碼固定在硬件中并且不能取代現(xiàn)代計算平臺上的固件的角色。因此,在沒有硬件平臺上的固件的情況下,平臺傳統(tǒng)上不能夠發(fā)起操作。另外,如果固件代碼在某種程度上受到損壞(corrupt1n)或攻擊的危害,存在對施行硬件平臺的恢復的能力的限制。
【附圖說明】
[0005]以下描述包括具有作為本發(fā)明的實施例的實現(xiàn)方式的示例給出的圖示的圖的討論。附圖應當被理解為示例,而非限制。如本文所使用的,對一個或多個“實施例”的引用要理解為描述包括在本發(fā)明的至少一個實現(xiàn)方式中的特定特征、結構和/或特性。因此,出現(xiàn)在本文中的諸如“在一個實施例中”或“在可替換的實施例中”之類的短語描述本發(fā)明的各種實施例和實現(xiàn)方式,并且不一定都是指相同的實施例。然而,它們也不一定是相互排他的。
[0006]圖1是向非易失性存儲設備上供應固件的系統(tǒng)的實施例的框圖。
[0007]圖2是具有協(xié)調(diào)來自計算系統(tǒng)外部的源的固件供應的可管理性引擎的計算系統(tǒng)的實施例的框圖。
[0008]圖3是其中可管理性引擎與非易失性存儲設備對接的系統(tǒng)的實施例的框圖。
[0009]圖4是其中固件可以從USB設備供應的系統(tǒng)的實施例的框圖。
[0010]圖5是用于訪問可以供應系統(tǒng)內(nèi)固件的系統(tǒng)中的操作固件的過程的實施例的流程圖。
[0011]圖6A是用于供應用于計算系統(tǒng)的初始操作的固件的過程的實施例的流程圖。
[0012]圖6B是用于結合固件更新供應固件的過程的實施例的流程圖。
[0013]圖6C是用于供應用于從錯誤恢復的固件的過程的實施例的流程圖。
[0014]圖6D是用于結合存儲系統(tǒng)固件的設備的硬件升級供應固件的過程的實施例的流程圖。
[0015]圖7是用于從可管理性引擎訪問下一代存儲器設備接口的過程的實施例的流程圖。
[0016]圖8是用于向通過下一代存儲器設備接口的交換應用安全性的過程的實施例的流程圖。
[0017]圖9是其中可以實現(xiàn)系統(tǒng)內(nèi)固件供應的計算系統(tǒng)的實施例的框圖。
[0018]圖10是其中可以實現(xiàn)系統(tǒng)內(nèi)固件供應的移動設備的實施例的框圖。
[0019]以下是某些細節(jié)和實現(xiàn)方式的描述,包括圖的描述,其可以描繪以下描述的實施例中的一些或全部,以及討論本文所呈現(xiàn)的發(fā)明概念的其它潛在實施例或?qū)崿F(xiàn)方式。
【具體實施方式】
[0020]如本文所描述的,硬件平臺包括非易失性存儲設備,其可以存儲用于初始啟動操作的系統(tǒng)固件,以及用于針對硬件平臺的主要操作系統(tǒng)的代碼。在正常啟動序列中,硬件平臺上的控制器從存儲設備加載功能固件以發(fā)起硬件平臺。在某些環(huán)境中,存儲設備可以不存儲功能固件。因此,控制器確定硬件平臺缺少功能固件來從存儲設備啟動主要操作系統(tǒng),并且發(fā)起操作以從外部固件源供應固件圖像??刂破鹘?jīng)由到硬件平臺外部的設備的接口從外部源訪問固件圖像??刂破鲝耐獠吭O備向存儲設備供應固件并且從所供應的固件發(fā)起啟動序列。控制器可以實現(xiàn)安全過程以確保在固件的供應期間以及在已經(jīng)供應固件之后維持平臺的安全性。
[0021]硬件平臺在存儲設備上存儲固件,并且因而不需要諸如閃速存儲器之類的分離組件以存儲固件。在沒有硬件平臺上的固件的情況下,硬件平臺被視為“裸露(bare)金屬”。裸露金屬硬件平臺是指僅包括硬件組件并且不包括可寫入固件組件的硬件平臺。硬件組件可以包括ROM(只讀存儲器)設備。硬件組件還可以包括用于存儲固件和軟件的組件,但是不預加載有可寫入固件。因此存儲在平臺上的任何軟件將不可訪問以供執(zhí)行。ROM可以提供控制邏輯(或只讀可執(zhí)行固件)以訪問和供應用于硬件平臺的固件。硬件平臺可能由于以下固件“生命周期”事件中的一個而缺少功能固件:制造之后的初始啟動、固件損壞、平臺故障、固件更新或存儲固件的硬件組件的升級或改變。
[0022]當計算設備上電或功率循環(huán)或從睡眠或低功率狀態(tài)轉(zhuǎn)變到操作狀態(tài)時,具有代碼的平臺上的電子組件(例如ROM代碼和/或固件)還從掉電狀態(tài)或在低功率狀態(tài)中轉(zhuǎn)變到處于上電或操作狀態(tài)。從低功率或無功率轉(zhuǎn)變到被上電通常被稱為“喚醒”。當電子組件喚醒時,其發(fā)起其ROM代碼,如果其具有任何代碼的話。對于一般依賴于固件以用于初始操作的組件(例如存儲設備、可管理性引擎或其它平臺控制器、處理器或系統(tǒng)自身),其ROM代碼包括使組件對預期存儲固件圖像的位置尋址的邏輯。當組件找到位置處的有效固件圖像時,固件加載并且執(zhí)行。如本文所描述的,固件的位置是非易失性存儲設備。這樣的訪問在非易失性存儲設備包括允許其如同易失性存儲器設備那樣被訪問的接口時或許是可能的。如本文所描述的,當固件圖像丟失或無效時,硬件平臺控制器從硬件平臺外部的源訪問固件。平臺控制器包括在不存在存儲在非易失性存儲設備上的有效圖像時使得其能夠訪問外部接口的ROM代碼。
[0023]下一代非易失性存儲技術預期具有相對于當前代非易失性存儲技術降低的訪問時間。某些下一代非易失性存儲設備預期具有與當前代易失性存儲器設備相當?shù)脑L問時間,其一般比當前代非易失性存儲設備訪問時間快超過一個數(shù)量級。因此,下一代非易失性存儲設備(稱為NGD或簡稱為下一代設備)可以利用與易失性存儲器訪問命令一致的接口來訪問。在一個實施例中,N⑶可以直接安裝在硬件平臺上(例如作為“芯片組”的部分)而不是經(jīng)由傳統(tǒng)存儲接口。N⑶可以具有與當前代非易失性存儲設備相當?shù)娜萘?,并且?jīng)由不同接口直接可訪問。因此,NGD可以降低或消除對于存儲固件的閃速設備的需要。當前固件大小一般比預期N⑶的容量的百分之一小得多。因此,N⑶可以存儲固件,如果它們具有適當?shù)慕涌诓⑶胰绻嬖谙虼鎯υO備供應固件的機制的話。此外,NGD可以存儲固件的備份副本以幫助恢復。
[0024]在一個實施例中,平臺控制器和NGD中的ROM代碼可以允許設備跨下一代設備接口(NGI)與彼此通信。傳統(tǒng)上,存儲固件的平臺閃速設備還存儲用于使用高速接口的訓練信息。將理解的是,高速接口典型地必須“被訓練”,因為需要設置特定時序參數(shù)以使得能夠?qū)崿F(xiàn)高速信號的交換。在沒有閃速設備的情況下,將不存在為接口存儲的訓練數(shù)據(jù)。在沒有訓練數(shù)據(jù)的情況下,兩個設備之間的信令的時序?qū)缀醣厝蝗鄙僬_地傳送和接收命令和數(shù)據(jù)所必要的同步性。在一個實施例中,平臺控制器和N⑶中的ROM代碼進入低速通信模式或狀態(tài)以訓練接口,并且然后參與高速模式或狀態(tài)以供應固件。在一個實施例中,接口的訓練可以被視為固件的初始供應。這樣的訓練機制可以用于初始啟動以及用于恢復操作。
[0025]在一個實施例中,平臺控制器利用以下更加詳細描述的一個或多個安全性機制管理接口。簡而言之,安全性機制可以確保在安全環(huán)境之下施行供應。安全性還可以提供抵抗重播攻擊的保護。
[0026]在一個實施例中,硬件平臺是配置為兩級存儲器(2LM)系統(tǒng)的系統(tǒng),或者具有兩級存儲器的系統(tǒng)。在2LM配置中,硬件平臺可以包括第一級存儲器,其可以被稱為近存儲器。在一個實施例中,近存儲器實現(xiàn)為易失性存儲器。硬件平臺還可以包括第二級存儲器,其可以稱為遠存儲器。在一個實施例中,遠存儲器實現(xiàn)為非易失性存儲器。遠存儲器比近存儲器更大且更慢。近存儲器可以提供用于遠存儲器的低等待時間和高帶寬高速緩存。
[0027]在一個實施例中,近存儲器由近存儲器控制器(匪C)通過近存儲器接口(匪I)管理,并且遠存儲器由遠存儲器控制器(FMC)通過遠存儲器接口(FMI)管理。在一個實施例中,F(xiàn)MC將遠存儲器作為主存儲器向在硬件平臺上執(zhí)行的主機操作系統(tǒng)報告。在這樣的實現(xiàn)方式中,近存儲器可以操作為遠存儲器的透明高速緩存,并且主機操作系統(tǒng)不需要分離地配置成識別或?qū)ぶ方鎯ζ?。在一個實施例中,非易失性存儲裝置實現(xiàn)為下一代存儲器,并且經(jīng)由下一代接口(NGI)與處理器對接。在一個實施例中,下一代接口(NGI)是遠存儲器接口。
[0028]NGD可以是或包括以下存儲器技術中的任一個。在一個實施例中,N⑶是三維交叉點存儲器設備。不同于基于塊的基于閃速存儲器的設備,三維交叉點存儲器設備是字節(jié)可尋址的并且可以用于取代DRAM(動態(tài)隨機存取存儲器)作為用于系統(tǒng)的主存儲器。N⑶可以包括其它字節(jié)可尋址存儲器技術,包括但不限于相變存儲器(PCM)、三維交叉點存儲器、電阻存儲器、納米線存儲器、鐵電晶體管隨機存取存儲器(FeTRAM)、合并憶阻器技術的磁阻隨機存取存儲器(MRAM)、自旋轉(zhuǎn)移矩(STT)-MRAM或其它字節(jié)可尋址存儲器設備,或組合。這樣的非易失性存儲器的使用可以使得存儲器能夠被用作系統(tǒng)主存儲器,以及允許存儲固件圖像以用于系統(tǒng)啟動,并且存儲主機OS、應用和/或其它程序。
[0029]關于2LM系統(tǒng)、近存儲器、遠存儲器和FMI的細節(jié)可以在2010年12月22日提交的題為“Two-Level System Main Memory”并且轉(zhuǎn)讓給與本專利申請相同的公司實體的美國專利申請?zhí)?2/976,545中找到。2LM系統(tǒng)的實施例可以實現(xiàn)在本文所描述的系統(tǒng)的任何實施例中,其中這樣的2LM系統(tǒng)和作為NGI的FMI可以依照在該專利申請中描述的內(nèi)容來理解。
[0030]圖1是向非易失性存儲設備上供應固件的系統(tǒng)的實施例的框圖。系統(tǒng)100包括硬件平臺102和耦合到硬件平臺102的外部固件源150。硬件平臺102表示其上處理器、非易失性存儲設備和外部硬件接口耦合在一起以用于任何類型的計算設備或計算系統(tǒng)的硬件平臺。硬件平臺102可以合并到各種計算機系統(tǒng)、手持設備、商用電子設備、消費電子設備或其它設備中的任一個中。
[0031]在一個實施例中,硬件平臺102包括片上系統(tǒng)(SOC)設計,其包括處理資源。將理解的是,SOC還可以作為分離組件實現(xiàn)在硬件平臺上。SOC 110表示主要處理器設備或主機處理器設備,諸如中央處理單元(CPU),以用于硬件平臺102 JOC 110還可以理解為包括平臺控制器設備。在一個實施例中,處理器設備是平臺控制器。在一個實施例中,SOC 110包括處理器設備和分離的控制器設備二者。將理解的是,控制器設備可以實現(xiàn)為處理器設備,其可以特定用于控制平臺,而不是通用處理器。主機處理器執(zhí)行操作或執(zhí)行主機操作系統(tǒng)以控制硬件平臺102合并在其中的系統(tǒng)。
[0032]SOC 110包括ROM 112,其表示發(fā)起硬件平臺102合并在其中的計算系統(tǒng)的啟動或初始化的SOC 110上的硬編碼邏輯。ROM 112包括當SOC通電時發(fā)起SOC 110上的一個或多個設備的操作的邏輯。將理解的是,除SOC 110通電之外,ROM代碼或ROM 112的邏輯還可以在SOC 110從低功率或睡眠狀態(tài)轉(zhuǎn)變到正常操作狀態(tài)時執(zhí)行。ROM 112包括足以訪問用于SOC110的固件的邏輯。在系統(tǒng)100中,用于SOC 110的固件是存儲在非易失性(NV)存儲裝置120中的固件122。存儲裝置120是非易失性的,因為即便中斷到存儲設備的功率其內(nèi)容也保持確定。將非易失性存儲裝置120與易失性存儲器130對照。存儲器130被視為易失性的,因為如果在超過短時間段(在幾分之一秒的量級上)內(nèi)中斷功率則其內(nèi)容變得不確定。
[0033]在傳統(tǒng)系統(tǒng)中,固件存儲在閃速設備中并且主機操作系統(tǒng)存儲在分離的存儲設備中,存儲裝置120存儲系統(tǒng)固件122和主機操作系統(tǒng)(0S)124二者。因此,存儲裝置120是用于硬件平臺102的主要非易失性存儲設備。固件122提供初始軟件和邏輯以加載主機OS 124。固件122還可以提供用于硬件平臺102的操作(諸如互連平臺的組件的基本操作)的其它邏輯。固件122的一個或多個部分可以與主機OS 124并行并且在其背景中操作。
[0034]易失性存儲器130可以存儲代碼的易失性、工作圖像以及供硬件平臺102執(zhí)行的工作數(shù)據(jù)。更特別地,存儲器130存儲主機OS 124的圖像以及存儲在存儲裝置120中的應用的圖像以供主機處理器執(zhí)行。存儲器130典型地限于是存儲裝置120的存儲容量的一小部分。在一個實施例中,存儲裝置130是下一代存儲設備(NGD),其具有與存儲器130相當?shù)脑L問時間。不管具有類似的訪問時間和多得多的存儲,硬件平臺102可以包括存儲器130和NGD存儲裝置120二者。在一個實施例中,存儲裝置120可以解碼存儲器訪問命令。因此,SOC 110可以包括到存儲裝置120的接口,其允許將傳統(tǒng)存儲訪問命令以及存儲器訪問命令二者傳遞到存儲裝置120。
[0035]外部接口140表示使得硬件平臺102能夠連接到外部設備的硬件平臺102上的硬件接口。在一個實施例中,外部接口 140是硬件平臺102上的通用串行總線(USB)端口。然而,將理解的是,外部接口 140可以是另一類型的硬件接口,諸如以太網(wǎng)端口或其它網(wǎng)絡接口、無線接口設備、另一設備到設備總線(諸如火線或其它互連)或?qū)S猛獠炕ミB。在一個實施例中,SOC 110包括外部接口 140。因此,外部接口 140可以是直接構建到主機處理器系統(tǒng)中的硬件電路,其允許平臺控制器直接訪問接口。硬件接口 140可以是除到相同端口連接器的其它硬件接口之外的到端口連接器的接口。固件源150表示經(jīng)由硬件接口 140與平臺對接的硬件平臺102外部的設備。因此,固件源150包括使得其能夠經(jīng)由外部接口 140訪問的兼容連接器接口。
[0036]在正常操作中,固件122存在(存儲)于存儲裝置130中,并且是有效的。然而,若干生命周期事件中的任一個可以呈現(xiàn)其中固件122丟失或損壞的情形。另一生命周期事件發(fā)生在固件122有效并且起作用但是應當進行更新時。這樣的事件可以包括硬件平臺102的制造、固件122的現(xiàn)場更新(例如B1S(基本輸入/輸出系統(tǒng))或其它固件的新版本)、現(xiàn)場升級(例如從160GB存儲設備升級到320GB存儲設備)或其中固件122被不合法地修改(例如攻擊)或固件122的部分由于盤錯誤而丟失的刷新或損壞事件。因此,在這些情形中的任一個中,固件122不被視為起作用的固件,因為其丟失或損壞,或者其不能被執(zhí)行,因為其被更新的版本取代。
[0037]在一個實施例中,當ROM112遇到從存儲裝置120訪問有效固件圖像的錯誤時,ROM112包括邏輯以使其經(jīng)由外部接口 140訪問固件源150。硬件平臺控制器然后可以從固件源150向存儲設備120上供應固件。以下提供關于從外部源供應固件的更多細節(jié)。一旦固件122被供應到存儲裝置120,硬件平臺102可以加載固件并且從所供應的固件發(fā)起啟動序列。
[0038]在一個實施例中,系統(tǒng)100配置為兩級存儲器(2LM)系統(tǒng),或具有兩級存儲器的系統(tǒng)。在2LM配置中,系統(tǒng)100可以包括作為遠存儲器的非易失性存儲裝置120和作為近存儲器的易失性存儲器130。因此,在一個實施例中,易失性存儲器130可以用作用于非易失性存儲裝置120的高速緩存。在一個實施例中,遠存儲器由下一代接口控制,其可以是將非易失性存儲裝置120連接到SOC 110的遠存儲器接口(FMI)。
[0039]圖2是具有協(xié)調(diào)從計算系統(tǒng)外部的源的固件供應的可管理性引擎的計算系統(tǒng)的實施例的框圖。系統(tǒng)200表示硬件平臺,并且可以是圖1的硬件平臺102的一個示例。并不是系統(tǒng)200的每一個元件都將存在于每一個實現(xiàn)方式中。在一個實施例中,系統(tǒng)200包括SOC210,其包括處理器220、解碼器212、存儲器控制器214和CSME 230。在一個實施例中,系統(tǒng)200包括作為沒有配置在片上系統(tǒng)中的分離組件的SOC 210的元件。在一個實施例中,系統(tǒng)200包括SOC 210中所示的等效組件結構。
[0040]處理器220是用于系統(tǒng)200的主機處理器或主機處理單元。處理器可以是單核或多核設備。處理器220典型地執(zhí)行來自高速緩存設備(未具體示出)和/或來自存儲器260的指令。存儲器260表示易失性存儲器設備,并且經(jīng)由存儲器控制器214可訪問。存儲器控制器214表示基于針對如由解碼器212解碼的數(shù)據(jù)的請求生成存儲器訪問命令的邏輯。解碼器212提供由處理器220執(zhí)行的指令的解碼,其影響系統(tǒng)200中存儲的數(shù)據(jù)。在一個實施例中,存儲器260在指令涉及未高速緩存在存儲器260中的數(shù)據(jù)或代碼時經(jīng)由直接訪問路徑(未具體示出)訪問非易失性存儲裝置240。
[0041 ] CSME 230表示可管理性引擎??晒芾硇砸媸且环N類型的硬件平臺控制器。在一個實施例中,CSME 230可以是整合安全性和可管理性引擎,其包括施行涉及硬件平臺系統(tǒng)200上的安全性以及對硬件平臺上的資源的訪問的管理二者的操作的邏輯。出于系統(tǒng)200的目的,CSME 230確定硬件平臺是否包括非易失性存儲設備240上的有效或起作用的固件。在一個實施例中,CSME 230訪問外部接口 250以獲取固件,如果硬件平臺缺少起作用的固件的話。在一個實施例中,存儲裝置240存儲主要固件圖像和一個或多個備份固件圖像。因此,CSME 230可以首先確定存儲裝置240是否包括起作用或操作的主要固件圖像。如果不存在起作用的主要固件圖像,CSME 230可以請求存儲裝置240獲取備份或次級固件圖像。如果不存在起作用的固件圖像,CSME 230訪問外部接口 250以獲取固件圖像。在一個實施例中,SOC210不包括CSME 230,并且將包括用以訪問固件的ROM代碼和/或控制器設備,其可以施行關于訪問和供應固件描述的操作。
[0042]存儲裝置240可以包括用于使用固件的硬件平臺上的任何組件的固件。例如,在一個實施例中,存儲裝置240存儲用于CSME 230、存儲設備240和處理器220的一個或多個固件圖像(例如主要的和一個或多個備份每一個)。如所圖示的,CMSE固件242表示用于CSME 230的固件。當CSME 230開始操作時,其執(zhí)行ROM代碼232AOM代碼232將嘗試訪問CMSE固件242。系統(tǒng)固件244表示用于處理器220的固件,其還可以是用于整個系統(tǒng)的固件。例如,系統(tǒng)固件244可以表示用于使主機處理器在準備中執(zhí)行以加載主機OS的B1S。存儲固件246表示要由存儲設備自身(未明確示出)中的控制器執(zhí)行的固件。如果存儲裝置240未能找到其自身的固件,其ROM代碼(未具體示出)可以生成到CSME 230(平臺控制器)的消息,以指示其不能訪問起作用的固件圖像。CSME 230然后可以訪問外部接口 250以獲取固件圖像。
[0043]在一個實施例中,CSME230發(fā)起系統(tǒng)固件244的執(zhí)行,并且將因而確定是否存在起作用的固件圖像。在一個實施例中,處理器220包括ROM并且可以發(fā)起其自身的固件,在該情況下其可以向CSME 230指示其缺少固件。CSME 230然后可以訪問外部接口250以獲取固件圖像。因此,CSME 230首先訪問存儲裝置240以得到固件圖像,并且如果存儲裝置240不具有有效固件圖像,CSME 230訪問外部接口以獲取固件圖像。相比之下,在傳統(tǒng)系統(tǒng)中,平臺控制器將訪問閃速設備以訪問固件。因此,將理解的是,CMSE 230或處理器220或SOC 210的另一控制器將嘗試訪問用于系統(tǒng)和/或控制器設備自身的固件。在一個實施例中,CMSE 230或處理器220或SOC 210的另一控制器將嘗試訪問用于處理器220的固件,如果這樣的固件從系統(tǒng)固件分離的話。
[0044]外部接口 250表示CSME 230可以經(jīng)由ROM 232直接訪問的任何一個或多個硬件接口。典型地,ROM 232將配置成訪問單個外部接口以用于供應固件。在一個實施例中,ROM232可以配置成訪問多個不同的硬件接口以獲取要供應的固件圖像。在ROM 232配置成訪問多個不同接口的情況下,將理解的是,可以存在優(yōu)選的配置次序,其中首先嘗試一個接口,并且如果第一接口不包括有效的固件圖像則嘗試下一接口。外部接口250的示例可以包括但不限于USB 252、網(wǎng)絡接口254和其它接口256。網(wǎng)絡接口254可以包括廣域網(wǎng)接口、局域網(wǎng)接口、有線接口、無線接口或接口的某種組合。其它接口 256可以表示未具體標識的接口,包括配置成提供用于固件圖像的外部源的專用接口。
[0045]圖3是其中可管理性引擎與非易失性存儲設備對接的系統(tǒng)的實施例的框圖。系統(tǒng)300表示硬件平臺的元件,并且可以是圖1的系統(tǒng)100或圖的系統(tǒng)200的元件的示例。更特別地,系統(tǒng)300包括CSME 310,其表示用于計算設備的可管理性引擎或平臺控制器。將理解的是,CSME 310可以實現(xiàn)為一個或多個分立元件,并且可以比系統(tǒng)300中圖示的更復雜或更不復雜。在一個實施例中,CSME 310作為片上系統(tǒng)和/或多芯片封裝而與主機處理器(未示出)集成。
[0046]在一個實施例中,CSME 310是或包括處理器設備或控制器設備。CSME 310包括ROM代碼(在系統(tǒng)300中未具體示出),其每當CSME 310上電或從低功率狀態(tài)喚醒時發(fā)起操作。用于平臺控制器的ROM代碼傳統(tǒng)上非?;?,并且允許控制器訪問其固件。用于CSME 310的ROM代碼包括與傳統(tǒng)提供的相同的基本功能,并且還可以確定在平臺上是否存在不起作用的固件,并且從外部源供應固件。
[0047]在一個實施例中,CSME 310包括外部接口驅(qū)動器330。驅(qū)動器330可以是用于直接提供在CSME 310上的硬件接口的控制器。因此,CSME 310可以直接控制外部接口以用于供應固件。在可替換的實施例中,CSME 310經(jīng)由具有其ROM代碼中的邏輯的CSME 310片外的硬件控制器訪問外部接口。外部接口驅(qū)動器330可以是例如驅(qū)動到USB端口的硬件??商鎿Q地,驅(qū)動器330可以驅(qū)動不同類型的總線或接口,如以上所描述的。除了其它驅(qū)動器,驅(qū)動器330可以在用于相同接口的硬件平臺內(nèi)。在一個實施例中,CSME 310僅在其確定硬件平臺缺少起作用的固件時訪問驅(qū)動器330。否則,CSME 310可以將驅(qū)動器330保持在高阻抗或其它非活躍狀態(tài)中以防止加載接口。
[0048]在一個實施例中,CSME310從主機處理器接收傳統(tǒng)上將發(fā)送至閃速設備的請求。例如,傳統(tǒng)上將在啟動流期間發(fā)送至閃速設備以用于讀取、寫入和/或擦除閃存的命令可以經(jīng)由CSME 310發(fā)送至非易失性(NV)存儲設備340XSME 310通過非易失性存儲器接口320與存儲設備340對接。在其中存儲設備340是下一代設備(NGD)的實施例中,接口320還可以被稱為下一代設備接口(NGI)。存儲設備340包括接口 350,其對應于存儲器接口 340,并且提供配對接口。接口320出于啟動的目的而可以向存儲設備340發(fā)送的命令的示例可以包括:讀取、寫入、擦除、讀取SFDP、讀取JEDEC ID、讀取狀態(tài)和寫入狀態(tài)。
[0049]在一個實施例中,CSME 310的接口320和存儲設備340的接口350二者支持低速操作和高速操作。低速322和低速352表示低速操作或低速模式,而高速324和高速354表示高速操作或高速模式。將理解的是,“低速”和“高速”是相對的術語。一般如本文所使用的,高速指示要求訓練以找到設置從而能夠滿足通信容限的接口之上的通信速度。低速指示其中容限足夠?qū)捠沟靡话悴灰笥柧氁哉业秸_的接口設置的通信速度。因此,低速操作可以在沒有訓練的情況下參與,而高速操作要求通過訓練找到的設置。訓練是指在接口之上交換已知消息和針對正確傳送和接收的測試。訓練往往是迭代的以測試多個不同設置并且選擇提供最佳結果(例如一時間段或數(shù)據(jù)量上的最少錯誤或錯誤的最低百分數(shù))的(多個)設置。在一個實施例中,低速模式322和高速模式324使用相同的硬件接口機制(例如信道、引腳、寄存器、驅(qū)動器和其它資源),但是在如何操作接口方面不同(例如使用高速時鐘、使用用于讀取/解碼的不同設置)。
[0050]在一個實施例中,接口配置數(shù)據(jù)在默認低速模式中接收,該接口配置數(shù)據(jù)然后允許接口 320和350偏好使用高速通信或高速模式324,其使得能夠?qū)崿F(xiàn)更大的吞吐量。在一個實施例中,CMSE 310確定其是否具有存儲以使得能夠?qū)崿F(xiàn)高速模式324的訓練數(shù)據(jù)或設置。在一個實施例中,訓練數(shù)據(jù)包括時序參數(shù)或用于接口的時序設置。時序參數(shù)可以指示如何同步采樣信號以確保通過接收器的數(shù)據(jù)采樣與通過傳送器的數(shù)據(jù)傳送時序?qū)省?br>[0051 ] 如果CSME 310確定接口320未被訓練,CSME 310參與低速模式322以用于與存儲設備340的初始通信。在一個實施例中,CSME 310嘗試高速模式324,但是發(fā)現(xiàn)存儲設備340不支持高速模式354。因此,CSME 310可以參與低速模式322以經(jīng)由低速模式354與接口350通信,直到可以訓練高速通信。在一個實施例中,在經(jīng)由低速模式322,352向存儲設備340發(fā)送啟動命令或信息之前或取代于它,CMSE 310通過接口320參與對接口350的訓練。在利用針對系統(tǒng)300的設置訓練接口之后,CSME 310可以參與或恢復高速模式324,354以繼續(xù)啟動操作。在一個實施例中,CSME 310僅經(jīng)由高速模式324,354從外部固件源向存儲設備340供應固件。
[0052]在一個實施例中,CSME310和存儲設備340提供用于通過接口320和350的交換的安全性。將理解的是,為了施行通過接口的安全性,耦合到接口的兩個設備包括支持實現(xiàn)的安全性的組件。因此,CMSE 310可以包括安全性引擎312、安全性密鑰314和隨機數(shù)生成器316,而存儲設備340可以包括對應的安全性引擎342、安全性密鑰344和隨機數(shù)生成器346。出于簡化的目的,安全性操作的討論參照CSME 310及其安全性組件和接口,并且可以理解成適用于存儲設備340及其安全性組件和接口。
[0053]安全性引擎312表示使得CSME310能夠應用用于經(jīng)由接口320的通信的安全性的邏輯。在一個實施例中,安全性引擎312實現(xiàn)在用于CSME 310的ROM代碼中。在一個實施例中,安全性引擎312包括從用于CSME 310的固件執(zhí)行的元件,并且因此直到CSME 310執(zhí)行有效固件之前不被應用。例如,CSME 310可以在加載固件之前應用用于通過接口320的通信的基于指數(shù)的安全性過程,并且然后可以在加載固件之后應用用于通過接口 320的通信的共享密鑰安全性過程。在一個實施例中,ROM代碼可以配置成從基于指數(shù)的安全性過程生成共享密鑰。
[0054]如本領域技術人員將理解的,常見的基于指數(shù)的安全性過程是Diffie-Helman實現(xiàn)方式,其中CSME 310和存儲設備340二者包括(或者在ROM中,或者融合在固定位置中)基礎值(被稱為“G”)。分離設備然后利用隨機數(shù)生成器(316和346)生成分離的指數(shù),該指數(shù)被稱為“a”和“b”。CSME 310然后可以生成通過G~a簽名的請求,并且存儲設備340可以生成通過G~b簽名的響應。設備然后可以執(zhí)行握手過程,其在接口上建立會話加密密鑰。在建立會話加密密鑰之后,CSME 310和存儲設備340然后可以在使用會話加密密鑰在加密的交換中通過接口交換共享密鑰或根密鑰以交換經(jīng)加密的根密鑰。假定生成共享安全性密鑰314,344的過程是公知的。安全性引擎312和342施行生成密鑰(非對稱和/或?qū)ΨQ的二者)的操作和其它安全性交換操作。
[0055]將理解的是,共享密鑰或根密鑰可以通過占有攻擊(其中攻擊者能夠訪問硬件和接口)來獲取。這樣的攻擊可以稱為“重放攻擊”,其中攻擊者嘗試重放之前通過接口傳輸?shù)慕粨Q以嘗試繞過安全性。在一個實施例中,CSME 310可以通過監(jiān)視共享安全性密鑰314的生成和使用來保護系統(tǒng)300免受重放攻擊。在一個實施例中,CSME 310包括片上熔絲318以監(jiān)視密鑰使用。例如,安全性引擎312可以燒斷或設置用于所生成的每一個共享密鑰的熔絲或熔絲圖案。因此,CSME 310經(jīng)由安全性引擎312可以保證一次僅一個密鑰有效。如果攻擊者嘗試利用之前的密鑰對消息進行簽名,CSME 310可以檢測到其不是當前有效密鑰,并且防止攻擊。典型地,使用每個密鑰單個熔絲將是足夠的,但是本領域技術人員將理解的是,可以理解更復雜的熔絲圖案。
[0056]本領域技術人員將認識到作為已知共享加密密鑰安全性過程的HMAC(散列消息驗證代碼)。利用HMAC,發(fā)送設備利用共享密鑰對消息進行簽名并且傳輸經(jīng)簽名/驗證的消息。接收設備接收經(jīng)簽名的消息并且利用共享密鑰解碼它。如果消息沒有利用共享密鑰正確地驗證,接收設備不施行所請求的操作或命令。如果消息驗證,接收設備執(zhí)行所請求的操作或命令。在一個實施例中,系統(tǒng)300采用安全散列算法(SHA),諸如HMAC-SHA-256,作為安全性/簽名協(xié)議。因此,根密鑰(存儲在安全性密鑰314中)可以跨接口 320,350保密。
[0057]在一個實施例中,安全性引擎312支持經(jīng)驗證的命令以供應和對共享密鑰保密。例如,如以上所提到的,可以參與基于指數(shù)的安全性以生成共享密鑰。經(jīng)驗證的命令可以包括但不一定限于經(jīng)驗證的根密鑰寫入,以及經(jīng)驗證的共享密鑰更新。在一個實施例中,CSME310維持重放保護的單調(diào)計數(shù)器(RPMC)(例如經(jīng)由安全性引擎312 )。在其中包括RPMC的實施例中,附加命令可以包括經(jīng)驗證的計數(shù)器讀取,以及經(jīng)驗證的計數(shù)器遞增。
[0058]存儲設備340包括固件370。固件370包括用于硬件平臺的硬件組件(諸如CSME310、存儲設備340和主機處理器(未具體示出))的固件。CSME 310從硬件平臺外部的源經(jīng)由外部接口驅(qū)動器330向存儲設備340上供應固件370。固件圖像372-0到372-(Ν-1)包括用于每一個設備的主要固件圖像,并且可以包括用于任何一個或多個組件的零或更多備份主要圖像。不一定所有組件都具有存儲在存儲設備340上的相同數(shù)目的固件圖像。常見實現(xiàn)方式將是存儲用于硬件平臺的每一個硬件組件的主要和次級固件圖像。
[0059]圖4是其中可以從USB設備供應固件的系統(tǒng)的實施例的框圖。系統(tǒng)400表示硬件平臺的元件,并且可以是圖的系統(tǒng)200或圖1的系統(tǒng)100的元件的示例。系統(tǒng)400的硬件平臺包括由CSME 410表示的硬件平臺控制器、由CPU 430表示的主機處理器、由NG(下一代)存儲器460表示的非易失性存儲設備以及由USB接口 480表示的外部硬件接口。USB接口 480連接到USB設備490,其表示外部固件源。在一個實施例中,硬件平臺包括將命令從CPU 430對接到NG存儲器460的控制器元件,所述命令傳統(tǒng)上被路由至存儲固件的閃速設備。控制器元件可以包括通過SPI到NGI 440表示的命令轉(zhuǎn)換器和NGI控制器450。
[0060]CSME 410包括當CSME 410發(fā)起操作時開始操作的ROM代碼412XSME 410在“生命周期事件”時發(fā)起操作,該事件可以包括系統(tǒng)400的制造,以及從損壞恢復、涉及固件更新的系統(tǒng)400的初始化、涉及NG存儲器460的升級的系統(tǒng)400的初始化或平臺控制器的其它功率循環(huán)事件。當CSME ROM代碼412發(fā)起時,其尋找與CSME 410相關聯(lián)的固件。在一個實施例中,CSME 410可以配置成直接訪問下一代存儲器設備。在一個實施例中,如所示,硬件平臺可以利用將允許傳統(tǒng)路徑被重新路由至NG存儲器460的元件進行修改。
[0061]在一個實施例中,CSME 410包括控制硬件平臺上的SPI(串行外圍接口)通信的控制器,其被示出為PCH(外圍控制器中樞)SPI控制器420。將理解的是,SPI是使得能夠?qū)崿F(xiàn)共享硬件平臺的設備或芯片的互連的主-從接口協(xié)議。從設備典型地是主機控制器或系統(tǒng)400的主機SOC的“外圍”設備。因此,CSME 410可以發(fā)起對用于固件的CSME ROM代碼412中所指示的位置的訪問。CSME 410最初不具有固件,并且在某些生命周期事件中,NG存儲器460也將不具有所存儲的有效固件。
[0062]在一個實施例中,SPI控制器420,取代于訪問將存儲固件的外部SPI閃存,經(jīng)由SPI到NGI(下一代接口)440將訪問操作解碼成用于NG存儲器460的指令。NGI表示到下一代存儲器設備的接口,下一代存儲器設備預期不同于傳統(tǒng)存儲設備,以及不同于傳統(tǒng)SPI設備,或連接到SPI控制器420的設備。SPI到NGI 440將經(jīng)由SPI協(xié)議發(fā)送的命令和請求轉(zhuǎn)換成NG存儲器460所理解的命令和請求。NGI控制器450表示控制硬件接口的硬件和/或邏輯(例如用于傳輸?shù)尿?qū)動引腳和用于接收的采樣引腳)C=NGI控制器462表示完成從CSME 410的接口的NG存儲器460內(nèi)的控制器或控制邏輯。
[0063]NG存儲器460包括ROM代碼464,其表示存儲器設備在上電或功率循環(huán)(無論是通過斷開功率源和設備的硬功率循環(huán),還是通過將設備置于低功率、睡眠或掛起狀態(tài)的軟功率循環(huán))時將執(zhí)行的代碼。NG ROM代碼464尋找本地存儲在存儲設備上的固件圖像。NG ROM代碼464包括對參與和CSME 410的通信以供應固件468必要的邏輯。固件468存儲在NG存儲器460的下一代存儲技術466中。將理解的是,NG存儲器460還存儲主機操作系統(tǒng)和用于系統(tǒng)400的應用。固件468可以在NG存儲器460中在系統(tǒng)內(nèi)供應。主機操作系統(tǒng)和應用還可以在系統(tǒng)內(nèi)供應到NG存儲器460。
[0064]在一個實施例中,CSME410確定其是否存儲訓練數(shù)據(jù)(例如時序參數(shù)或其它參數(shù)或設置)以供NGI控制器450在向NG存儲器460發(fā)送請求時使用。如果不存在訓練數(shù)據(jù),CSME410可以使用低速接口模式以向NG存儲器406發(fā)送固件請求。如果存在可用的訓練數(shù)據(jù),CSME 410可以使用高速接口模式以發(fā)送請求。在一個實施例中,當NG存儲器460沒有存儲由CSME 410請求的起作用或有效的固件圖像時,NG存儲器460拒絕請求。CSME 410 (經(jīng)由CSMEROM代碼412)從NG存儲器460接收拒絕并且然后從外部源請求固件。因此,CSME ROM代碼412可以配置成首先檢查NG存儲器460上的固件,并且然后如果沒有找到有效的固件則針對固件檢查外部接口。在一個實施例中,CSME 410和NG存儲器460可以在低速模式中訓練接口以使得能夠使用高速模式來供應固件。
[0065]為了訪問外部接口,CSME ROM代碼412可以訪問PCH USB控制器470或另一接口控制器(未示出)以訪問適當?shù)挠布涌?。系統(tǒng)400中的硬件接口是USB接口480,其連接到USB設備490,其進而存儲固件圖像492。在一個實施例中,CSME 410經(jīng)由主-從配置(類似于SPI協(xié)議)訪問USB設備490,其中USB設備490是主機并且CSME 410是從機。在這樣的配置中,CSME 410可以充當用于USB設備490的存儲接收器,其中CSME 410向NG存儲器460傳遞固件圖像。
[0066]因此,CSME ROM代碼412可以從USB設備490讀取固件圖像492并且將數(shù)據(jù)寫入到SPI控制器420 JPI控制器420然后可以向SPI到NGI解碼器440轉(zhuǎn)發(fā)數(shù)據(jù),并且通過NGI控制器450到NG存儲器460的NGI控制器462。最終,NG ROM代碼464將圖像作為固件468寫入在NG存儲裝置466中。將理解的是,固件圖像492到固件468的讀取和寫入將典型地經(jīng)由將重復直到完整的圖像被寫入到NG存儲器460的多個讀取和寫入操作而發(fā)生。
[0067]在一個實施例中,在向NG存儲器460供應固件之后,CSME ROM代碼412將重復例程的執(zhí)行以從NG存儲器460尋找固件。因此,CSME 410將經(jīng)由SPI控制器420,跨SPI到NGI 430和NGI控制器450生成請求。在一個實施例中,CSME ROM代碼412在低速模式中發(fā)起每一個固件請求,并且參與訓練序列以使得能夠?qū)崿F(xiàn)高速模式。當CSME ROM代碼412在已經(jīng)供應固件之后請求固件時,NG存儲器460滿足請求,導致成功的啟動操作。在固件468損壞的事件中,在一個實施例中,適當?shù)腞OM代碼(例如在對用于C SME 410的固件的損壞的情況下的CSMEROM代碼412,或者在對用于NG存儲器460的固件的損壞的情況下的NG ROM代碼464)可以請求固件的次級圖像。如果不存在有效固件,CSME 410再次從外部源供應固件圖像492。
[0068]在一個實施例中,NGI接口(SPI控制器420,到SPI到NGI 440,到NGI控制器450,到NGI控制器462)支持標準SPI接口功能的轉(zhuǎn)換。因此,標準SPI讀取、寫入和擦除操作可以映射到用于NG存儲器460的相當?shù)牟僮鳌4送?,在一個實施例中,系統(tǒng)400支持RPMC。如果支持RPMC,NGI接口可以將RPMC功能映射到唯一 I /0 (輸入/輸出)傳遞命令。這樣的傳遞命令允許使用RPMC命令,其可以通過NG ROM代碼464解碼。在一個實施例中,NGI控制器450支持由CPU430發(fā)起的SPI命令的終止,該SPI命令可以包括標準模式命令、SMM(系統(tǒng)管理模式)命令和來自CSME 410的執(zhí)行引擎的命令。
[0069]圖5是用于訪問可以供應系統(tǒng)內(nèi)固件的系統(tǒng)中的操作固件的過程500的實施例的流程圖。在一個實施例中,平臺控制器(例如可管理性引擎或整合的安全性和可管理性引擎)檢測喚醒觸發(fā),502。喚醒觸發(fā)發(fā)起控制器的執(zhí)行,并且可以是軟重啟(例如中斷以從低功率狀態(tài)喚醒設備)或硬重啟(例如對設備上電)??刂破黜憫趩拘延|發(fā)而發(fā)起其ROM代碼的執(zhí)行,504 AOM代碼執(zhí)行基本初始操作以開始控制器的操作。ROM代碼控制的一個操作是訪問提供用于控制器的運行時執(zhí)行邏輯的固件。在一個實施例中,控制器還發(fā)起主機處理器,并且可以除自身之外訪問用于主機處理器的固件圖像。在一個實施例中,主機處理器充當平臺控制器。
[0070]在一個實施例中,控制器參與安全性過程以保護從控制器到其中應當存儲固件圖像的非易失性存儲設備的接口,506??刂破骺梢詤⑴c基于指數(shù)的安全性過程、共享密鑰安全性過程或另一安全性過程??刂破髟L問NGM接口,508,并且經(jīng)由接口訪問NGM設備以獲取固件,510。響應于來自控制器的針對固件的請求,NGM設備可以確定其是否具有有效固件。在一個實施例中,做出關于是否存在有效固件的確定包括NGM設備確定是否存在有效的主要固件圖像,512。將理解的是,控制器可以訪問其固件和用于主機處理器的固件。NGM可以訪問其固件并且如果其不能找到有效的固件圖像則向控制器指示。
[0071]如果NGM設備確定存在有效的固件圖像,514“是”分支,其參與正常啟動序列,530。在一個實施例中,如果NGM設備確定不存在有效的固件圖像,514“否”分支,其可以確定是否存在有效的次級或備份固件圖像,516。如果存在有效的次級圖像,518“是”分支,NGM設備可以向控制器遞送固件圖像并且從備份圖像恢復主要固件圖像,520??刂破魅缓髨?zhí)行正常啟動序列,530 ο如果NGM設備不具有有效的次級圖像,518 “否”分支,NGM設備向控制器指示不存在有效的固件,并且控制器訪問外部接口以獲取固件圖像,522??刂破魅缓髲倪B接到外部接口的源向NGM設備供應系統(tǒng)內(nèi)的固件圖像,524。在供應固件之后,控制器然后可以從NGM設備請求固件,該NGM設備將向控制器提供固件。然后控制器然后可以發(fā)起正常啟動序列,530。
[0072]在正常啟動序列中,控制器從NGM設備訪問固件,532,并且加載固件以供執(zhí)行。加載固件的部分可以包括加載用于主機處理器的系統(tǒng)固件以初始化系統(tǒng),534。主機處理器執(zhí)行系統(tǒng)固件并且發(fā)起系統(tǒng)操作,536。發(fā)起系統(tǒng)的部分包括從NGM設備訪問主機操作系統(tǒng)并且在系統(tǒng)上加載它。系統(tǒng)然后可以繼續(xù)正常操作,538。
[0073]圖6A是用于供應用于計算系統(tǒng)的初始操作的固件的過程610的實施例的流程圖。計算系統(tǒng)的初始操作可以是用于平臺控制器將針對其供應新固件的硬件平臺上的固件的生命周期事件的一個示例。制造商制造包括具有主機處理器和/或平臺控制器、NGM設備和可以被訪問以供應固件圖像的外部硬件接口的硬件平臺,612。在一個實施例中,初始系統(tǒng)是裸露金屬,并且因而將需要在能夠啟動之前供應固件。制造商在外部接口處提供外部固件源(例如將源插入到USB端口或其它硬件接口中)并且為設備供電以用于第一操作,614。系統(tǒng)對操作為喚醒觸發(fā)的平臺控制器上電,和/或生成針對平臺控制器的喚醒觸發(fā),616??刂破鳈z測喚醒觸發(fā)并且發(fā)起操作,502(來自過程500)。
[0074]圖6B是用于結合固件更新供應固件的過程620的實施例的流程圖。固件更新可以是用于平臺控制器將針對其供應新固件的硬件平臺上的固件的生命周期事件的一個示例。假定系統(tǒng)正常操作,538(來自過程500),當系統(tǒng)檢測到固件更新就緒時,622。將理解的是,固件更新還可以在系統(tǒng)恢復事件(其在圖6C的過程630中解決)中提供。在一個實施例中,夕卜部固件源向平臺控制器指示固件。控制器或其它邏輯(例如用于存儲器設備固件更新的NGM設備上的控制器)可以使NGM設備上的一個或多個(在備份的情況下)當前固件圖像無效,624。在一個實施例中,在使當前固件圖像無效之后,系統(tǒng)然后可以被觸發(fā)以重啟,這將使其遇到其中不存在硬件平臺上的有效固件的情形,并且因此控制器將從外部源尋找固件。因此,系統(tǒng)可以觸發(fā)用于控制器的睡眠或掉電狀態(tài),626。系統(tǒng)還可以生成用于控制器的喚醒事件,502(來自過程500),這將使控制器尋找固件并且當沒有找到有效固件時供應固件。
[0075]圖6C是用于供應固件以用于從錯誤恢復的過程630的實施例的流程圖。從錯誤或損壞恢復可以是用于平臺控制器將針對其供應新固件的硬件平臺上的固件的生命周期事件的一個示例。可以假定,在某個時間點處,在損壞事件之前,系統(tǒng)正常操作,538(來自過程500)。數(shù)個計算機故障或攻擊中的任一個可以發(fā)生,這危害了固件圖像,632。將理解的是,當固件圖像被非法修改(例如沒有利用有效驗證來執(zhí)行)時,固件圖像將不再被視為有效。控制器可以檢測到固件圖像受損,634,并且使固件圖像無效。在一個實施例中,系統(tǒng)實現(xiàn)次級固件圖像,其也存儲在NGM設備上。當使用次級固件圖像時,控制器可以請求NGM設備確定是否存在有效次級圖像,516(來自過程500)??商鎿Q地,如果系統(tǒng)不實現(xiàn)備份固件圖像,類似于固件更新事件,系統(tǒng)可以被觸發(fā)以重啟,這將使其遇到其中不存在硬件平臺上的有效固件的情形。因此,控制器將從外部源尋找固件,并且系統(tǒng)生成用于控制器的喚醒事件,502(來自過程500),這將使控制器尋找固件并且當沒有找到有效固件時供應固件。
[0076]圖6D是用于結合存儲系統(tǒng)內(nèi)的設備的硬件升級供應固件的過程640的實施例的流程圖。硬件升級可以是用于平臺控制器將針對其供應新固件的硬件平臺上的固件的生命周期事件的一個示例??梢约俣ㄏ到y(tǒng)在硬件升級之前正常操作,538(來自過程500)。用戶或計算系統(tǒng)管理員確定更換NGM設備,642 AGM設備存儲用于硬件平臺的固件圖像。在一個實施例中,更換NGM設備可以成功地預加載有前一存儲設備的內(nèi)容,在該情況下固件可以被成功地轉(zhuǎn)移。在一個實施例中,用于更換NGM設備的安裝過程可以損壞預加載到更換NGM設備上的數(shù)據(jù)??商鎿Q地,利用存儲在當前NGM設備上的數(shù)據(jù)預加載更換NGM設備可以是不方便或困難的。因此,將從外部位置向更換NGM設備供應數(shù)據(jù),所述外部位置將包括固件圖像。
[0077]為了使得能夠?qū)崿F(xiàn)這樣的更換,管理員將數(shù)據(jù)內(nèi)容拷貝到備份位置,644,離開硬件平臺或在將不提供用于執(zhí)行的固件圖像的不同存儲設備中。管理員更換NGM設備,646,并且在硬件平臺的外部接口處提供固件圖像,648。源可以是數(shù)據(jù)內(nèi)容的備份副本的位置。在一個實施例中,控制器訪問外部接口以獲取固件圖像,522,并且從外部源向(更換)NGM設備供應固件圖像,524(來自過程500)。系統(tǒng)然后可以從前一 NGM設備恢復數(shù)據(jù)內(nèi)容到更換NGM設備并且執(zhí)行正常操作,650。
[0078]圖7是用于從平臺控制器或可管理性引擎訪問下一代存儲器設備接口的過程700的實施例的流程圖。在一個實施例中,平臺控制器發(fā)起其ROM代碼的執(zhí)行,504(來自過程500)??刂破鱎OM代碼執(zhí)行,702,其可以使控制器訪問NGM接口(NGI),508。出于本文的目的,控制器將訪問NGI的主要目的是訪問和/或供應固件。在一個實施例中,控制器ROM代碼確定其是否具有用于NGI的訓練數(shù)據(jù),704。如果接□經(jīng)訓練,706“是”分支,控制器以用于接口的高速模式繼續(xù)訪問操作,708??刂破骺梢栽诟咚倌J街型ㄟ^經(jīng)訓練的NGI發(fā)送訪問請求和接收響應,710。
[0079]如果NGI未經(jīng)訓練,706“否”分支,控制器ROM代碼可以進入用于NGI的低速模式,712。在一個實施例中,控制器ROM代碼在低速模式中發(fā)起訓練序列,714。一旦訓練序列成功完成,控制器ROM代碼然后可以參與用于NGI的高速模式,716。在進入高速模式之后,控制器和NGM設備可以以高速模式通過NGI通信,710。
[0080]圖8是用于向通過下一代存儲器設備接口的交換應用安全性的過程800的實施例的流程圖。在一個實施例中,平臺控制器參與安全性過程以結合從NGM設備獲取和/或供應固件圖像來保護NGI,506??刂破骺梢园l(fā)起安全交換,802。在一個實施例中,所使用的安全交換將取決于控制器和NGM設備是否已經(jīng)建立共享密鑰交換。因此,控制器可以確定是否存在有效、匹配對稱或共享密鑰,804 ο如果存在共享密鑰,806 “是”分支,控制器和NGM設備使用密鑰交換簽名消息,808。發(fā)射設備利用密鑰對消息簽名并且將它們發(fā)送到接收設備。接收設備接收加密消息并且利用密鑰解碼它們。
[0081 ]在一個實施例中,如果不存在共享密鑰,808 “否”分支,控制器可以參與基于指數(shù)的安全性過程(例如Diffie-Helman)。因此,控制器可以生成用于基于指數(shù)的安全性交換的隨機數(shù)指數(shù),810??刂破骱蚇GM設備然后可以使用基于指數(shù)的安全性過程建立對稱加密密鑰,812。在一個實施例中,控制器管理和監(jiān)視所有共享密鑰的使用。例如,控制器可以具有與共享密鑰的使用相關聯(lián)的熔絲,并且設置熔絲圖案或響應于創(chuàng)建密鑰而設置熔絲。密鑰然后可以與熔絲圖案相關聯(lián),并且將僅在密鑰與預期熔絲圖案匹配時有效??刂破骱蚇GM設備使當前密鑰有效并且還可以使之前密鑰無效,814。在一個實施例中,有效和無效通過使用片上熔絲或控制器所采用的其它追蹤/監(jiān)視機制而發(fā)生。
[0082]圖9是其中可以實現(xiàn)系統(tǒng)內(nèi)固件供應的計算系統(tǒng)的實施例的框圖。系統(tǒng)900表示依照本文所描述的任何實施例的計算設備,并且可以是膝上型計算機、臺式計算機、服務器、游戲或娛樂控制系統(tǒng)、掃描儀、復印機、打印機、路由或交換設備或其它電子設備。系統(tǒng)900包括處理器920,其提供用于系統(tǒng)900的指令的處理、操作管理和執(zhí)行。處理器920可以包括任何類型的微處理器、中央處理單元(CPU)、處理核或其它處理硬件以提供用于系統(tǒng)900的處理。處理器920控制系統(tǒng)900的總體操作,并且可以是或包括一個或多個可編程通用或?qū)S梦⑻幚砥?、?shù)字信號處理器(DSP)、可編程控制器、專用集成電路(ASIC)、可編程邏輯設備(PLD)等或這樣的設備的組合。
[0083]存儲器子系統(tǒng)930表示系統(tǒng)900的主存儲器,并且為要由處理器920執(zhí)行的代碼或要在執(zhí)行例程中使用的數(shù)據(jù)值而提供臨時存儲。存儲器子系統(tǒng)930可以包括諸如只讀存儲器(R0M)、閃速存儲器、一種或多種隨機存取存儲器(RAM)之類的一個或多個存儲器設備、或其它存儲器設備,或者這樣的設備的組合。存儲器子系統(tǒng)930除其它事情外尤其存儲和托管操作系統(tǒng)(OS)936以提供用于系統(tǒng)900中的指令的執(zhí)行的軟件平臺。此外,其它指令938被存儲并自存儲器子系統(tǒng)930被執(zhí)行以提供系統(tǒng)900的邏輯和處理。OS 936和指令938由處理器920執(zhí)行。存儲器子系統(tǒng)930包括存儲器設備932,其中它存儲數(shù)據(jù)、指令、程序或其它項。在一個實施例中,存儲器子系統(tǒng)包括存儲器控制器934,其是生成和向存儲器設備932發(fā)布命令的存儲器控制器。要理解的是,存儲器控制器934可以是處理器920的物理部分。
[0084]處理器920和存儲器子系統(tǒng)930耦合到總線/總線系統(tǒng)910。總線910是表示任何一個或多個分離的物理總線、通信線/接口和/或點對點連接(由適當?shù)臉颉⑦m配器和/或控制器連接)的抽象。因此,總線910可以包括例如系統(tǒng)總線、外圍組件互連(PCI)總線、超傳輸或工業(yè)標準架構(ISA)總線、小型計算機系統(tǒng)接口(SCSI)總線、通用串行總線(USB)或電氣與電子工程師協(xié)會(IEEE)標準1394總線(通常稱為“火線”)中的一個或多個??偩€910的總線還可以對應于網(wǎng)絡接口 950中的接口。
[0085]系統(tǒng)900還包括一個或多個輸入/輸出(I/O)接口 940、網(wǎng)絡接口 950、一個或多個內(nèi)部大容量存儲設備960以及耦合到總線910的外圍接口 970。1/0接口 940可以包括用戶通過其而與系統(tǒng)900交互(例如視頻、音頻和/或字母數(shù)字對接)的一個或多個接口組件。網(wǎng)絡接口 950為系統(tǒng)900提供通過一個或多個網(wǎng)絡與遠程設備(例如服務器、其它計算設備)通信的能力。網(wǎng)絡接口 950可以包括以太網(wǎng)適配器、無線互連組件、USB(通用串行總線)或其它基于有線或無線標準的或?qū)S媒涌凇?br>[0086]外圍接口970可以包括并非以上特別提及的任何硬件接口。外圍設備一般是指依賴性地連接到系統(tǒng)900的設備。依賴性連接是其中系統(tǒng)900提供在其上執(zhí)行操作并且用戶利用其進行交互的軟件和/或硬件平臺的一種連接。
[0087]在一個實施例中,存儲裝置960可以是或者包括用于以非易失性方式存儲大量數(shù)據(jù)的任何常規(guī)介質(zhì),諸如一個或多個基于磁、固態(tài)或光學的盤或組合。存儲裝置960還可以包括下一代存儲器技術,如以上所描述的。存儲裝置960以持久狀態(tài)(S卩,盡管去往系統(tǒng)900的功率中斷也保留值)持有代碼或指令和數(shù)據(jù)962。存儲裝置960還存儲供可管理性引擎(ME)922或另一平臺控制器使用的固件圖像。存儲裝置960可以一般被視為“存儲器”,盡管存儲器930是向處理器920提供指令的執(zhí)行或操作存儲器。存儲器930可以包括易失性存儲器(即,如果中斷去往系統(tǒng)900的功率則數(shù)據(jù)的值或狀態(tài)是不確定的),而存儲裝置960是非易失性的。ME 922可以從外部接口(諸如網(wǎng)絡接口950或外圍接口970)向存儲裝置960供應固件。ME 922—般將響應于固件生命周期事件而供應固件,其中不存在存儲于存儲裝置960上的有效主要固件圖像。
[0088]圖10是其中可以實現(xiàn)系統(tǒng)內(nèi)固件供應的移動設備的實施例的框圖。設備1000表示移動計算設備,諸如計算平板、移動電話或智能電話、無線使能的電子閱讀器、可穿戴計算設備或其它移動設備。將理解到,一般地示出組件中的某些,并且在設備1000中并未示出這樣的設備的全部組件。
[0089]設備1000包括執(zhí)行設備1000的主要處理操作的處理器1010。處理器1010可以包括一個或多個物理設備,諸如微處理器、應用處理器、微控制器、可編程邏輯設備或其它處理構件。由處理器1010執(zhí)行的處理操作包括其上執(zhí)行應用和/或設備功能的操作平臺或操作系統(tǒng)的執(zhí)行。處理操作包括有關與人類用戶或與其它設備的1/0(輸入/輸出)的操作、有關功率管理的操作和/或有關將設備1000連接到另一設備的操作。處理操作還可以包括有關音頻I/o和/或顯示I/O的操作。
[0090]在一個實施例中,設備1000包括音頻子系統(tǒng)1020,其表示與向計算設備提供音頻功能相關聯(lián)的硬件(例如音頻硬件和音頻電路)和軟件(例如驅(qū)動器、編解碼器)組件。音頻功能可以包括揚聲器和/或耳機輸出,以及麥克風輸入。用于這樣的功能的設備可以集成到設備1000中,或者連接到設備1000。在一個實施例中,用戶通過提供由處理器1010接收和處理的音頻命令來與設備1000交互。
[0091]顯示子系統(tǒng)1030表示提供用于用戶與計算設備交互的視覺和/或觸覺顯示的硬件(例如顯示設備)和軟件(例如驅(qū)動器)組件。顯示子系統(tǒng)1030包括顯示接口 1032,其包括用于向用戶提供顯示的特定屏幕或硬件設備。在一個實施例中,顯示接口 1032包括與處理器1010分離的邏輯以執(zhí)行有關顯示的至少一些處理。在一個實施例中,顯示子系統(tǒng)1030包括向用戶提供輸出和輸入二者的觸摸屏設備。
[0092]I/O控制器1040表示有關與用戶的交互的硬件設備和軟件組件。I/O控制器1040可以操作成管理作為音頻子系統(tǒng)1020和/或顯示子系統(tǒng)1030的部分的硬件。此外,I/O控制器1040說明了用于連接到用戶可以通過其而與系統(tǒng)交互的設備1000的附加設備的連接點。例如,可以附接到設備1000的設備可以包括麥克風設備、揚聲器或立體聲系統(tǒng)、視頻系統(tǒng)或其它顯示設備、鍵盤或小鍵盤設備或供特定應用使用的其它I/O設備(諸如讀卡器或其它設備)。
[0093]如以上提到的,I/O控制器1040可以與音頻子系統(tǒng)1020和/或顯示子系統(tǒng)1030交互。例如,通過麥克風或其它音頻設備的輸入可以提供用于設備1000的一個或多個應用或功能的輸入或命令。此外,可以提供音頻輸出來替代于或附加于顯示輸出。在另一示例中,如果顯示子系統(tǒng)包括觸摸屏,則顯示設備還充當輸入設備,其可以至少部分地被I/O控制器1040管理。在設備1000上還可以存在附加按鈕或開關以提供受I/O控制器1040管理的I/O功會K。
[0094]在一個實施例中,I/O控制器1040管理諸如加速度計、相機、光傳感器或其它環(huán)境傳感器、陀螺儀、全球定位系統(tǒng)(GPS)或可以包括在設備1000中的其它硬件之類的設備。輸入可以是直接用戶交互的部分,以及向系統(tǒng)提供環(huán)境輸入以影響其操作(諸如針對噪聲而濾波、針對亮度檢測而調(diào)整顯示、針對相機而應用閃光、或其它特征)。在一個實施例中,設備1000包括功率管理1050,其管理電池功率使用、電池的充電和有關功率節(jié)約操作的特征。
[0095]存儲器子系統(tǒng)1060包括用于存儲設備1000中信息的(多個)存儲器設備1062。存儲器子系統(tǒng)1060可以包括非易失性(如果去往存儲器設備的功率中斷則狀態(tài)不改變)和/或易失性(如果去往存儲器設備的功率中斷則狀態(tài)不確定)存儲器設備。存儲器1060可以存儲應用數(shù)據(jù)、用戶數(shù)據(jù)、音樂、照片、文檔或其它數(shù)據(jù),以及有關系統(tǒng)1000的應用和功能的執(zhí)行的系統(tǒng)數(shù)據(jù)(無論長期還是臨時的)。在一個實施例中,存儲器子系統(tǒng)1060包括存儲器控制器1064 (其還可以被視為系統(tǒng)1000的控制的部分,并且可以潛在地被視為處理器11的部分)。存儲器控制器1064包括生成和向存儲器設備1062發(fā)布命令的調(diào)度器。
[0096]連接性1070包括使得設備1000能夠與外部設備通信的硬件設備(例如無線和/或有線連接器和通信硬件)和軟件組件(例如驅(qū)動器、協(xié)議棧)。外部設備可以是分離的設備,諸如其它計算設備、無線接入點或基站,以及外圍設備,諸如耳機、打印機或其它設備。
[0097]連接性1070可以包括多個不同類型的連接性。為了一般化,設備1000被圖示有蜂窩式連接性1072和無線連接性1074。蜂窩式連接性1072—般是指由無線運營商提供的蜂窩式網(wǎng)絡連接性,諸如經(jīng)由GSM(全球移動通信系統(tǒng))或變型或派生物、CDMA(碼分多址)或變型或派生物、TDM(時分復用)或變型或派生物、LTE(長期演進一一也稱為“4G”)或其它蜂窩式服務標準所提供。無線連接性1074是指不是蜂窩式的無線連接性,并且可以包括個域網(wǎng)(諸如藍牙)、局域網(wǎng)(諸如WiFi)和/或廣域網(wǎng)(諸如WiMax)或其它無線通信。無線通信是指通過借由非固體介質(zhì)的調(diào)制電磁輻射的使用而傳輸數(shù)據(jù)。有線通信通過固體通信介質(zhì)發(fā)生。
[0098]外圍連接1080包括硬件接口和連接器,以及軟件組件(例如驅(qū)動器、協(xié)議棧)以進行外圍連接。將理解到,設備1000可以既是去往其它計算設備的外圍設備(“去往” 1082),以及又具有連接到它的外圍設備(“來自”1084)。設備1000通常具有“塢接(docking)”連接器以連接到其它計算設備用于諸如管理(例如下載和/或上載、改變、同步)設備1000上的內(nèi)容之類的目的。此外,塢接連接器可以允許設備1000連接到允許設備1000控制例如到視聽或其它系統(tǒng)的內(nèi)容輸出的某些外圍設備。
[0099]除專用塢接連接器或其它專用連接硬件之外,設備1000可以經(jīng)由公共或基于標準的連接器來做出外圍連接1080。公共類型可以包括通用串行總線(USB)連接器(其可以包括許多不同硬件接口中的任一個)、包括迷你顯示端口(MDP)的顯示端口、高清多媒體接口(HDMI)、火線或其它類型。
[0100]除以上所討論的之外,存儲器子系統(tǒng)1060可以包括如以上所描述的下一代存儲器技術。存儲器子系統(tǒng)1060以非易失性狀態(tài)存儲固件圖像以供可管理性引擎(ME)1012或另一平臺控制器使用。ME 1012可以從外部接口(諸如連接性1070或外圍連接1080)向存儲器子系統(tǒng)1060中的非易失性存儲裝置供應固件。ME 1012—般將響應于固件生命周期事件而供應固件,其中不存在存儲于存儲器子系統(tǒng)1060中的有效主要固件圖像。
[0101]在一個方面中,一種方法包括:在包括處理器、非易失性存儲設備和對接硬件平臺外部的設備的外部接口的硬件平臺中,確定硬件平臺缺少啟動硬件平臺的功能固件;經(jīng)由外部接口從源訪問固件;向存儲設備供應固件;以及從供應到存儲設備的固件啟動硬件平臺。
[0102]在一個實施例中,存儲設備包括字節(jié)可尋址存儲器設備。在一個實施例中,硬件平臺包括兩級存儲器系統(tǒng),其中非易失性存儲設備配置為用于處理器的主存儲器,并且還包括配置為用于非易失性存儲設備的高速緩存的易失性存儲器設備。在一個實施例中,確定硬件平臺缺少功能固件包括確定硬件平臺缺少有效主要固件圖像并且缺少有效備份固件圖像。在一個實施例中,供應固件包括針對固件生命周期事件供應固件,該固件生命周期事件包括制造之后的初始啟動、對固件的現(xiàn)場更新、非易失性存儲設備升級或損壞恢復中的一個。在一個實施例中,供應固件還包括:檢測用于到存儲設備的接口的時序參數(shù)未經(jīng)訓練;進入低速模式以訓練時序參數(shù);以及進入高速傳輸模式以供應固件。在一個實施例中,供應固件還包括參與到存儲設備的接口之上的安全性。在一個實施例中,參與安全性還包括:采用基于指數(shù)的安全性握手過程以建立對稱密鑰。在一個實施例中,參與安全性還包括:利用對稱密鑰交換來交換經(jīng)加密的消息。在一個實施例中,參與安全性還包括:監(jiān)視對稱密鑰使用以防止重放攻擊。在一個實施例中,監(jiān)視對稱密鑰使用以防止重放攻擊還包括:利用相關聯(lián)的熔絲管理對稱密鑰使用,其中對稱密鑰僅在與預確定的熔絲圖案相關聯(lián)時有效。
[0103]在一個方面中,一種用于計算設備的硬件平臺包括:執(zhí)行操作的處理器;對接硬件平臺外部的設備的外部硬件接口;耦合到處理器的非易失性存儲設備;以及耦合到處理器、外部硬件接口和存儲設備的控制器設備,控制器設備確定硬件平臺缺少啟動硬件平臺的功能固件,經(jīng)由外部接口訪問固件,向存儲設備供應固件,并且從供應到存儲設備的固件發(fā)起用于硬件平臺的啟動序列。
[0104]在一個實施例中,存儲設備包括解碼存儲器訪問命令以供存儲設備操作的接口。在一個實施例中,存儲設備包括字節(jié)可尋址存儲器設備。在一個實施例中,硬件平臺還包括易失性存儲器設備,其中硬件平臺包括兩級存儲器系統(tǒng),其中非易失性存儲設備配置為用于處理器的主存儲器,并且易失性存儲器設備配置為用于非易失性存儲設備的高速緩存。在一個實施例中,控制器設備包括可管理性引擎。在一個實施例中,控制器設備包括整合的安全性和可管理性引擎。在一個實施例中,控制器設備訪問和供應用于控制器設備的固件。在一個實施例中,控制器設備訪問和供應用于處理器的固件。在一個實施例中,控制器設備確定硬件平臺缺少有效主要固件圖像并且缺少有效備份固件圖像。在一個實施例中,控制器設備針對固件生命周期事件供應固件,該固件生命周期事件包括制造之后的初始啟動、對固件的現(xiàn)場更新、非易失性存儲設備升級或損壞恢復中的一個。在一個實施例中,外部硬件接口包括與通用串行接口、局域網(wǎng)接口或廣域網(wǎng)接口中的一個兼容的硬件接口。在一個實施例中,控制器還檢測用于到存儲設備的接口的時序參數(shù)未經(jīng)訓練;進入低速模式以訓練時序參數(shù);并且進入高速傳輸模式以供應固件。在一個實施例中,控制器還參與到存儲設備的接口之上的安全性。在一個實施例中,控制器還包括:與關于存儲設備的對稱密鑰安全性協(xié)議相關聯(lián)的片上熔絲,其中控制器針對所生成的每一個對稱密鑰熔斷熔絲。在一個實施例中,控制器還采用基于指數(shù)的安全性握手過程以建立對稱密鑰。在一個實施例中,控制器還利用對稱密鑰交換來交換經(jīng)加密的消息。在一個實施例中,控制器還監(jiān)視對稱密鑰使用以防止重放攻擊。在一個實施例中,控制器還利用相關聯(lián)的熔絲管理對稱密鑰使用,其中對稱密鑰僅在與預確定的熔絲圖案相關聯(lián)時有效。
[0105]在一個方面中,一種電子設備包括:用于計算設備的硬件平臺,該硬件平臺包括:執(zhí)行操作的處理器;對接硬件平臺外部的設備的外部硬件接口;耦合到處理器的非易失性存儲設備;以及耦合到處理器、外部硬件接口和存儲設備的控制器設備,控制器設備確定硬件平臺缺少啟動硬件平臺的功能固件,經(jīng)由外部接口訪問固件,向存儲設備供應固件,并且從供應到存儲設備的固件發(fā)起用于硬件平臺的啟動序列;以及耦合到硬件平臺以存儲從非易失性存儲設備訪問以供處理器執(zhí)行的操作數(shù)據(jù)的同步動態(tài)隨機存取存儲器(SDRAM)設備。
[0106]在一個方面中,一種制造品,包括具有存儲在其上的內(nèi)容的計算機可讀存儲介質(zhì),該內(nèi)容在被執(zhí)行時施行包括以下的操作:在包括處理器、非易失性存儲設備和對接硬件平臺外部的設備的外部接口的硬件平臺中,確定硬件平臺缺少啟動硬件平臺的功能固件;經(jīng)由外部接口從源訪問固件;向存儲設備供應固件;以及從供應到存儲設備的固件啟動硬件平臺。制造品可以包括用于施行操作以執(zhí)行如以上所闡述的方法的任何實施例的內(nèi)容。
[0107]在一個方面中,一種裝置包括:包括處理器、非易失性存儲設備和對接硬件平臺外部的設備的外部接口的硬件平臺;用于確定硬件平臺缺少啟動硬件平臺的功能固件的構件;用于經(jīng)由外部接口從源訪問固件的構件;用于向存儲設備供應固件的構件;以及用于從供應到存儲設備的固件啟動硬件平臺的構件。裝置可以包括用于施行操作以執(zhí)行如以上所闡述的方法的任何實施例的構件。
[0108]如本文所圖示的流程圖提供各種過程動作的序列的示例。流程圖可以指示由軟件或固件例程執(zhí)行的操作,以及物理操作。在一個實施例中,流程圖可以說明有限狀態(tài)機(FSM)的狀態(tài),該有限狀態(tài)機(FSM)可以實現(xiàn)在硬件和/或軟件中。盡管以特定序列或次序示出,但是除非另行指定,否則可以修改動作的次序。因此,所圖示的實施例應當僅被理解為示例,并且過程可以以不同的次序執(zhí)行,并且一些動作可以并行執(zhí)行。此外,一個或多個動作可以在各種實施例中省略;因此,并非所有動作在每個實施例中都是需要的。其它過程流是可能的。
[0109]到各種操作或功能在本文中被描述的程度,它們可以被描述或限定為軟件代碼、指令、配置和/或數(shù)據(jù)。內(nèi)容可以是直接可執(zhí)行的(“對象”或“可執(zhí)行”形式)、源代碼或差分代碼(“增量”或“補丁”代碼)。本文所描述的實施例的軟件內(nèi)容可以經(jīng)由具有存儲在其上的內(nèi)容的制造品提供,或者經(jīng)由操作通信接口以經(jīng)由通信接口發(fā)送數(shù)據(jù)的方法提供。機器可讀存儲介質(zhì)可以使得機器執(zhí)行所描述的功能或操作,并且包括以機器(例如計算設備、電子系統(tǒng)等)可訪問的形式存儲信息的任何機制,諸如可記錄/非可記錄介質(zhì)(例如只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁盤存儲介質(zhì)、光學存儲介質(zhì)、閃速存儲器設備等)。通信接口包括對接到硬連線、無線、光學等介質(zhì)中任一個以與另一設備通信的任何機制,諸如存儲器總線接口、處理器總線接口、因特網(wǎng)連接、盤控制器等。通信接口可以通過提供配置參數(shù)和/或發(fā)送信號以使通信接口準備提供描述了軟件內(nèi)容的數(shù)據(jù)信號而被配置。通信接口可以經(jīng)由被發(fā)送到通信接口的一個或多個命令或信號而被訪問。
[0110]本文所描述的各種組件可以是用于執(zhí)行所描述的操作或功能的構件。本文所描述的每個組件包括軟件、硬件或這些的組合。組件可以實現(xiàn)為軟件模塊、硬件模塊、特殊用途硬件(例如專用硬件、專用集成電路(ASIC)、數(shù)字信號處理器(DSP)等)、嵌入式控制器、硬連線電路等。
[0111]除了本文所描述的之外,可以對本發(fā)明的所公開的實施例和實現(xiàn)做出各種修改而不脫離于其范圍。因此,本文中的圖示和示例應當在說明性而非限制性的意義上來解釋。本發(fā)明的范圍應當僅僅通過參考隨后的權利要求來衡量。
【主權項】
1.一種用于系統(tǒng)內(nèi)供應用于硬件平臺的固件的方法,包括: 在包括處理器、非易失性存儲設備和對接硬件平臺外部的設備的外部接口的硬件平臺中,確定硬件平臺缺少啟動硬件平臺的功能固件; 經(jīng)由外部接口從源訪問固件; 向存儲設備供應固件;以及 從供應到存儲設備的固件啟動硬件平臺。2.權利要求1的方法,其中存儲設備包括字節(jié)可尋址存儲器設備。3.權利要求1的方法,其中硬件平臺包括兩級存儲器系統(tǒng),其中非易失性存儲設備配置為用于處理器的主存儲器,并且還包括配置為用于非易失性存儲設備的高速緩存的易失性存儲器設備。4.權利要求1的方法,其中確定硬件平臺缺少功能固件包括確定硬件平臺缺少有效主要固件圖像并且缺少有效備份固件圖像。5.權利要求1的方法,其中供應固件包括針對固件生命周期事件供應固件,該固件生命周期事件包括制造之后的初始啟動、對固件的現(xiàn)場更新、非易失性存儲設備升級或損壞恢復中的一個。6.權利要求1的方法,其中供應固件還包括: 檢測用于到存儲設備的接口的時序參數(shù)未經(jīng)訓練; 進入低速模式以訓練時序參數(shù);以及 進入高速傳輸模式以供應固件。7.權利要求1的方法,其中供應固件還包括參與到存儲設備的接口之上的安全性。8.權利要求7的方法,其中參與安全性還包括: 采用基于指數(shù)的安全性握手過程以建立對稱密鑰。9.權利要求7的方法,其中參與安全性還包括: 利用對稱密鑰交換來交換經(jīng)加密的消息。10.權利要求9的方法,其中參與安全性還包括: 監(jiān)視對稱密鑰使用以防止重放攻擊。11.權利要求10的方法,其中監(jiān)視對稱密鑰使用以防止重放攻擊還包括: 利用相關聯(lián)的熔絲管理對稱密鑰使用,其中對稱密鑰僅在與預確定的熔絲圖案相關聯(lián)時有效。12.—種用于系統(tǒng)內(nèi)供應用于硬件平臺的固件的用于計算設備的硬件平臺,包括: 執(zhí)行操作的處理器; 對接硬件平臺外部的設備的外部硬件接口 ; 耦合到處理器的非易失性存儲設備;以及 耦合到處理器、外部硬件接口和存儲設備的控制器設備,控制器設備確定硬件平臺缺少啟動硬件平臺的功能固件,經(jīng)由外部接口訪問固件,向存儲設備供應固件,并且從供應到存儲設備的固件發(fā)起用于硬件平臺的啟動序列。13.權利要求12的硬件平臺,其中存儲設備包括解碼存儲器訪問命令以供存儲設備操作的接口。14.權利要求12的硬件平臺,其中存儲設備包括字節(jié)可尋址存儲器設備。15.權利要求12的硬件平臺,還包括易失性存儲器設備,其中硬件平臺包括兩級存儲器系統(tǒng),其中非易失性存儲設備配置為用于處理器的主存儲器,并且易失性存儲器設備配置為用于非易失性存儲設備的高速緩存。16.權利要求12的硬件平臺,其中控制器設備包括可管理性引擎。17.權利要求16的硬件平臺,其中控制器設備包括整合的安全性和可管理性引擎。18.權利要求12的硬件平臺,其中控制器設備訪問和供應用于控制器設備的固件。19.權利要求12的硬件平臺,其中控制器設備訪問和供應用于處理器的固件。20.權利要求12的硬件平臺,其中控制器設備確定硬件平臺缺少有效主要固件圖像并且缺少有效備份固件圖像。21.權利要求12的硬件平臺,其中控制器設備針對固件生命周期事件供應固件,該固件生命周期事件包括制造之后的初始啟動、對固件的現(xiàn)場更新、非易失性存儲設備升級或損壞恢復中的一個。22.權利要求12的硬件平臺,其中外部硬件接口包括與通用串行接口、局域網(wǎng)接口或廣域網(wǎng)接口中的一個兼容的硬件接口。23.權利要求12的硬件平臺,其中控制器還: 檢測用于到存儲設備的接口的時序參數(shù)未經(jīng)訓練; 進入低速模式以訓練時序參數(shù);并且 進入高速傳輸模式以供應固件。24.權利要求12的硬件平臺,其中控制器還參與到存儲設備的接口之上的安全性。25.權利要求24的硬件平臺,其中控制器還包括: 與關于存儲設備的對稱密鑰安全性協(xié)議相關聯(lián)的片上熔絲,其中控制器針對所生成的每一個對稱密鑰熔斷熔絲。26.權利要求24的硬件平臺,其中控制器還采用基于指數(shù)的安全性握手過程以建立對稱密鑰。27.權利要求24的硬件平臺,其中控制器還利用對稱密鑰交換來交換經(jīng)加密的消息。28.權利要求27的硬件平臺,其中控制器還監(jiān)視對稱密鑰使用以防止重放攻擊。29.權利要求28的硬件平臺,其中控制器還利用相關聯(lián)的熔絲管理對稱密鑰使用,其中對稱密鑰僅在與預確定的熔絲圖案相關聯(lián)時有效。30.—種用于系統(tǒng)內(nèi)供應用于硬件平臺的固件的制造品,包括具有存儲在其上的內(nèi)容的計算機可讀存儲介質(zhì),該內(nèi)容在由計算設備執(zhí)行時施行操作以執(zhí)行依照權利要求1至11中任一項的方法。31.—種用于系統(tǒng)內(nèi)供應用于硬件平臺的固件的裝置,包括用于施行操作以執(zhí)行依照權利要求1至11中任一項的方法的構件。
【文檔編號】G06F21/62GK106030525SQ201580010756
【公開日】2016年10月12日
【申請日】2015年3月27日
【發(fā)明人】N.薩朗哈, R.小羅耶, E.H.烏伊, B.麥克法萊恩, M.卡塔里亞
【申請人】英特爾公司