平臺(tái)非易失性存儲(chǔ)區(qū)管理和平臺(tái)配置的制作方法
【專利說(shuō)明】
【背景技術(shù)】
[0001]計(jì)算設(shè)備經(jīng)常根據(jù)統(tǒng)一可擴(kuò)展固件接口(“UEFI”)規(guī)范執(zhí)行引導(dǎo)過(guò)程,該規(guī)范具有由統(tǒng)一 EFI論壇出版的若干版本。UEFI規(guī)范指定計(jì)算設(shè)備的固件和計(jì)算設(shè)備的操作系統(tǒng)之間的接口。UEFI規(guī)范指定針對(duì)在預(yù)操作系統(tǒng)環(huán)境中執(zhí)行的固件驅(qū)動(dòng)程序和應(yīng)用程序的標(biāo)準(zhǔn)模型。除了執(zhí)行傳統(tǒng)引導(dǎo)和初始化任務(wù)以外,這樣的驅(qū)動(dòng)程序和應(yīng)用程序可以執(zhí)行其他任務(wù),諸如診斷、維護(hù)或管理任務(wù)。
[0002]現(xiàn)代計(jì)算機(jī)系統(tǒng)允許引導(dǎo)和運(yùn)行時(shí)應(yīng)用程序,諸如操作系統(tǒng)驅(qū)動(dòng)程序,以在平臺(tái)非易失性(“NV” )存儲(chǔ)器存儲(chǔ)區(qū)中存儲(chǔ)變量。例如,UEFI規(guī)范定義若干變量函數(shù),其允許對(duì)NV存儲(chǔ)區(qū)的訪問(wèn)。然而,NV存儲(chǔ)區(qū)通常是必須由平臺(tái)固件以及固件配置變量共享的小量的存儲(chǔ)器。固件在執(zhí)行引導(dǎo)操作時(shí)通常也需要臨時(shí)的NV存儲(chǔ)區(qū)中的小量的空間。當(dāng)試圖在其期間NV存儲(chǔ)區(qū)被完全填滿的時(shí)間處引導(dǎo)時(shí),固件可能崩潰、中止、無(wú)法引導(dǎo)或以其他方式使平臺(tái)不可用。不可用平臺(tái)的該條件有時(shí)被稱為“變磚(bricked)”一即平臺(tái)與磚一樣有用,盡管通常有點(diǎn)不太耐用。
[0003]此外,包括處理器、芯片組以及其他支持特征的現(xiàn)代計(jì)算機(jī)平臺(tái)具有許多配置設(shè)置和選項(xiàng)。通常,設(shè)備制造商建立平臺(tái)的基本配置,并且平臺(tái)固件在引導(dǎo)時(shí)配置平臺(tái)。一些配置設(shè)置例如通過(guò)預(yù)引導(dǎo)基本輸入/輸出系統(tǒng)(“B1S”)接口可用于用戶,或可用于操作系統(tǒng);然而,許多配置設(shè)置不可用于用戶或操作系統(tǒng)。對(duì)配置設(shè)置的改變可能需要例如通過(guò)重刷平臺(tái)NV存儲(chǔ)區(qū)來(lái)更新平臺(tái)固件。配置錯(cuò)誤可以極大地降低平臺(tái)的性能。
【附圖說(shuō)明】
[0004]本文中描述的概念經(jīng)由示例并不經(jīng)由限制被圖示在附圖中。為了說(shuō)明的簡(jiǎn)單和清楚,附圖中圖示的元件不一定被成比例繪制。在認(rèn)為適當(dāng)?shù)那闆r下,參考標(biāo)記已在圖之間進(jìn)行重復(fù),以指示對(duì)應(yīng)或類似的元件。
[0005]圖1是針對(duì)平臺(tái)非易失性存儲(chǔ)區(qū)管理和平臺(tái)配置的系統(tǒng)的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
圖2是圖1的系統(tǒng)的計(jì)算設(shè)備的環(huán)境的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
圖3是圖1的計(jì)算設(shè)備的另一環(huán)境的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
圖4是可以由圖1和2的計(jì)算設(shè)備執(zhí)行的根據(jù)UEFI規(guī)范的引導(dǎo)過(guò)程的至少一個(gè)實(shí)施例的簡(jiǎn)化不意圖;
圖5A-5D是可以由圖1和2的計(jì)算設(shè)備執(zhí)行的用于平臺(tái)非易失性存儲(chǔ)區(qū)管理的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖;
圖6A-6B是可以由圖1和2的計(jì)算設(shè)備執(zhí)行的用于平臺(tái)配置的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖;以及圖7是可以由圖1的系統(tǒng)的管理服務(wù)器執(zhí)行的用于平臺(tái)配置的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖。
【具體實(shí)施方式】
[0006]雖然本公開的概念容許各種修改和可替換形式,但是其特定實(shí)施例已經(jīng)由示例被示出在繪圖中并且將在本文中被詳細(xì)描述。然而,應(yīng)該理解的是,沒(méi)有意圖限制本公開的概念到公開的特定形式,但與此相反,意圖是覆蓋與本公開和所附權(quán)利要求一致的所有修改、等價(jià)物和替換物。
[0007]在說(shuō)明書中對(duì)“一個(gè)實(shí)施例”、“實(shí)施例”、“說(shuō)明性實(shí)施例”等的引用指示描述的實(shí)施例可以包括特定的特征、結(jié)構(gòu)或特性,但每個(gè)實(shí)施例可以或可以不一定包括該特定特征、結(jié)構(gòu)或特性。此外,這樣的短語(yǔ)不一定指代相同實(shí)施例。此外,當(dāng)特定的特征、結(jié)構(gòu)或特性結(jié)合實(shí)施例進(jìn)行描述時(shí),主張的是,結(jié)合其他實(shí)施例實(shí)現(xiàn)這樣的特征、結(jié)構(gòu)或特性是在本領(lǐng)域技術(shù)人員的知識(shí)內(nèi),無(wú)論是否被明確描述。此外,應(yīng)該領(lǐng)會(huì)的是,被包括在形式為“至少一個(gè)A、B和C”的列表中的項(xiàng)目可以表示(A) ; (B) ; (C): (A和B) ; (B和C) ; S(A、B和C)。類似地,以“A、B和C中的至少一個(gè)”的形式列出的項(xiàng)目可以表示(A) ; (B) ; (C): (A和B) ; (B和C) ; S(A、B和C)。
[0008]在一些情況下,可以在硬件、固件、軟件或其任何組合中實(shí)施公開的實(shí)施例。公開的實(shí)施例也可以被實(shí)施為由臨時(shí)性或非臨時(shí)性機(jī)器可讀(例如,計(jì)算機(jī)可讀)存儲(chǔ)介質(zhì)承載或存儲(chǔ)在該存儲(chǔ)介質(zhì)上的指令,其可以由一個(gè)或多個(gè)處理器讀取和執(zhí)行。機(jī)器可讀存儲(chǔ)介質(zhì)可以被體現(xiàn)為任何存儲(chǔ)設(shè)備、機(jī)構(gòu)或其他物理結(jié)構(gòu)用于以由機(jī)器(例如,易失性或非易失性存儲(chǔ)器、媒體光盤或其他媒體設(shè)備)可讀的形式來(lái)存儲(chǔ)或傳輸信息。
[0009]在繪圖中,一些結(jié)構(gòu)或方法特征可能以特定布置和/或排序示出。然而,應(yīng)該領(lǐng)會(huì)的是,這樣的特定布置和/或排序可能不是需要的。而是,在一些實(shí)施例中,這樣的特征可以以與在說(shuō)明性附圖中示出的相比不同的方式和/或順序來(lái)布置。此外,在特定附圖中包括結(jié)構(gòu)或方法特征不意在暗示這樣的特征在所有實(shí)施例中是需要的,并且在一些實(shí)施例中可能不被包括或可能與其他特征組合。
[0010]現(xiàn)在參考圖1,在一個(gè)實(shí)施例中,用于非易失性存儲(chǔ)區(qū)管理和平臺(tái)配置的系統(tǒng)100包括能夠通過(guò)網(wǎng)絡(luò)106通信的計(jì)算設(shè)備102。在一些實(shí)施例中,系統(tǒng)100包括與計(jì)算設(shè)備102通信的管理服務(wù)器104。在使用中,如下文描述的,計(jì)算設(shè)備102根據(jù)一個(gè)或多個(gè)平臺(tái)策略管理對(duì)平臺(tái)非易失性(“NV”)存儲(chǔ)器存儲(chǔ)區(qū)的訪問(wèn)。計(jì)算設(shè)備102也導(dǎo)出平臺(tái)配置設(shè)置到運(yùn)行時(shí)操作系統(tǒng)。運(yùn)行時(shí)操作系統(tǒng)可以確定計(jì)算設(shè)備102未被最優(yōu)配置,并可以生成配置指令,以改進(jìn)計(jì)算設(shè)備102的配置。配置指令可以在運(yùn)行時(shí)被執(zhí)行或可以被安全地傳送到要在重新引導(dǎo)時(shí)執(zhí)行的平臺(tái)固件。在一些實(shí)施例中,使配置設(shè)置可用于管理服務(wù)器104,其可以經(jīng)由計(jì)算設(shè)備102的帶外可管理性引擎?zhèn)鬏斉渲弥噶畹接?jì)算設(shè)備102。公開的技術(shù)允許由受信任和不受信任的應(yīng)用程序繼續(xù)使用平臺(tái)NV存儲(chǔ)區(qū),同時(shí)提高系統(tǒng)的安全性和穩(wěn)定性。另外,公開的技術(shù)允許在不更換或重刷平臺(tái)固件的情況下在部署后優(yōu)化計(jì)算設(shè)備102的配置。
[0011]計(jì)算設(shè)備102可以被體現(xiàn)為用于執(zhí)行本文中描述的功能的任何類型的設(shè)備。例如,計(jì)算設(shè)備102可以被體現(xiàn)為(沒(méi)有限制)智能電話、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、移動(dòng)計(jì)算設(shè)備、蜂窩電話、手機(jī)、消息傳遞設(shè)備、車輛遠(yuǎn)程信息處理設(shè)備、服務(wù)器計(jì)算機(jī)、工作站、分布式計(jì)算系統(tǒng)、多處理器系統(tǒng)、消費(fèi)電子設(shè)備和/或配置成執(zhí)行本文中描述的功能的任何其他計(jì)算設(shè)備。如圖1中示出的,說(shuō)明性計(jì)算設(shè)備102包括處理器120、輸入/輸出子系統(tǒng)122、存儲(chǔ)器124和數(shù)據(jù)存儲(chǔ)設(shè)備126。當(dāng)然,在其他實(shí)施例中,計(jì)算設(shè)備102可以包括其他或附加的部件,諸如通常在移動(dòng)和/或固定的計(jì)算機(jī)(例如,各種輸入/輸出設(shè)備)中找到那些部件。此外,在一些實(shí)施例中,說(shuō)明性部件中的一個(gè)或多個(gè)可以被并入另一部件中,或以其他方式形成另一部件的一部分。例如,存儲(chǔ)器124或其部分在一些實(shí)施例中可以被并入處理器120中。
[0012]處理器120可以被體現(xiàn)為能夠執(zhí)行本文中描述的功能的任何類型的處理器。例如,處理器120可以被體現(xiàn)為(一個(gè)或多個(gè))單核或多核處理器、數(shù)字信號(hào)處理器、微控制器,或其他處理器或處理/控制電路。類似地,存儲(chǔ)器124可以被體現(xiàn)為能夠執(zhí)行本文中描述的功能的任何類型的易失性或非易失性存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)。在操作中,存儲(chǔ)器124可以存儲(chǔ)在計(jì)算設(shè)備102的操作期間使用的各種數(shù)據(jù)和軟件,諸如操作系統(tǒng)、應(yīng)用、程序、庫(kù)和驅(qū)動(dòng)程序。存儲(chǔ)器124經(jīng)由I/O子系統(tǒng)122通信地耦合到處理器120,所述I/O子系統(tǒng)122可以被體現(xiàn)為促進(jìn)與計(jì)算設(shè)備102的處理器120、存儲(chǔ)器124和其他部件的輸入/輸出操作的電路和/或部件。例如,I/O子系統(tǒng)122可以被體現(xiàn)為或以其他方式包括:存儲(chǔ)器控制器集線器、輸入/輸出控制集線器、固件設(shè)備、通信鏈路(即點(diǎn)對(duì)點(diǎn)鏈路、總線鏈路、電線、電纜、光導(dǎo)、印刷電路板跡線等)和/或用于促進(jìn)輸入/輸出操作的其他部件和子系統(tǒng)。在一些實(shí)施例中,I/O子系統(tǒng)122可以形成片上系統(tǒng)(SoC)的一部分,并且連同計(jì)算設(shè)備102的處理器120、存儲(chǔ)器124和其他部件一起被并入在單個(gè)集成電路芯片上。
[0013]數(shù)據(jù)存儲(chǔ)設(shè)備126可以被體現(xiàn)為配置用于數(shù)據(jù)的短期或長(zhǎng)期存儲(chǔ)的任何類型的一個(gè)或多個(gè)設(shè)備,諸如例如,存儲(chǔ)器設(shè)備和電路、存儲(chǔ)器卡、硬磁盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或其他數(shù)據(jù)存儲(chǔ)設(shè)備。數(shù)據(jù)存儲(chǔ)設(shè)備126可以包括存儲(chǔ)用于計(jì)算設(shè)備102的數(shù)據(jù)和固件代碼的系統(tǒng)分區(qū)。數(shù)據(jù)存儲(chǔ)設(shè)備126也可以包括存儲(chǔ)用于計(jì)算設(shè)備102的操作系統(tǒng)的數(shù)據(jù)文件和可執(zhí)行文件的操作系統(tǒng)分區(qū)。
[0014]計(jì)算設(shè)備102進(jìn)一步包括非易失性(“NV”)存儲(chǔ)區(qū)128。當(dāng)計(jì)算設(shè)備102掉電或與電源斷開時(shí),NV存儲(chǔ)區(qū)128可以被體現(xiàn)為配置用于數(shù)據(jù)的永久存儲(chǔ)的任何設(shè)備。在說(shuō)明性實(shí)施例中,NV存儲(chǔ)區(qū)128是閃速存儲(chǔ)器芯片。在其他實(shí)施例中,NV存儲(chǔ)區(qū)128可以被體現(xiàn)為與備用電池或其他非易失性存儲(chǔ)器耦合的小量的互補(bǔ)型金屬氧化物半導(dǎo)體(“CMOS”)存儲(chǔ)器。NV存儲(chǔ)區(qū)128可以用于存儲(chǔ)用于計(jì)算設(shè)備102的平臺(tái)固件,以及固件配置變量,諸如配置設(shè)置、弓丨導(dǎo)目標(biāo)和跨重新引導(dǎo)應(yīng)該存留的其他信息。NV存儲(chǔ)區(qū)28與數(shù)據(jù)存儲(chǔ)設(shè)備126相比通常具有相對(duì)小的存儲(chǔ)容量,但在初始引導(dǎo)時(shí)可用于計(jì)算設(shè)備102。在一些實(shí)施例中,NV存儲(chǔ)區(qū)128可以被并入到計(jì)算設(shè)備102的一個(gè)或多個(gè)其他部件中,例如到I/O子系統(tǒng)122中。
[0015]計(jì)算設(shè)備102進(jìn)一步包括顯示器130。顯示器130可以被體現(xiàn)為能夠顯示數(shù)字信息的任何類型的顯示器,諸如液晶顯示器(IXD)、發(fā)光二極管(LED)、等離子顯示器、陰極射線管(CRT)或其他類型的顯示設(shè)備。在一些實(shí)施例中,顯示器130可以耦合到觸摸屏,以允許用戶與計(jì)算設(shè)備102交互。
[0016]計(jì)算設(shè)備102進(jìn)一步包括通信電路132,所述通信電路132可以被體現(xiàn)為任何通信電路、設(shè)備或其集合,其能夠?qū)崿F(xiàn)在計(jì)算設(shè)備102、管理服務(wù)器104和/或其他遠(yuǎn)程設(shè)備之間的通信。通信電路132可以配置成使用任何一個(gè)或多個(gè)通信技術(shù)(例如,無(wú)線或有線通信)和關(guān)聯(lián)的協(xié)議(例如,以太網(wǎng)、藍(lán)牙?、W1-Fi ?、WiMAX等)來(lái)實(shí)現(xiàn)這樣的通信。通信電路132可以被體現(xiàn)為網(wǎng)絡(luò)適配器,包括無(wú)線網(wǎng)絡(luò)適配器。
[0017]說(shuō)明性計(jì)算設(shè)備102也包括可管理性引擎134??晒芾硇砸?34被體現(xiàn)為提供對(duì)計(jì)算設(shè)備102的遠(yuǎn)程配置、控制或管理的設(shè)備。說(shuō)明性可管理性引擎134包括帶外處理器136。帶外處理器136與計(jì)算設(shè)備102的主處理器120分離且不同。照此,可管理性引擎134能夠獨(dú)立于計(jì)算設(shè)備102的其余部分的狀態(tài)進(jìn)行操作。即,可管理性引擎134能夠操作而不管處理器120的操作狀態(tài),包括當(dāng)計(jì)算設(shè)備102斷電時(shí),當(dāng)計(jì)算設(shè)備102執(zhí)行預(yù)引導(dǎo)固件環(huán)境時(shí),當(dāng)計(jì)算設(shè)備102的操作系統(tǒng)活動(dòng)時(shí),和當(dāng)操作系統(tǒng)崩潰或以其他方式為非活動(dòng)時(shí)??晒芾硇砸?34也能夠獨(dú)立于計(jì)算設(shè)備102的狀態(tài)使用通信電路132進(jìn)行通信,也被稱為“帶夕卜”通信。在一些實(shí)施例中,除了經(jīng)由通信電路132連接以外或替代經(jīng)由通信電路132連接,可管理性引擎134可以包括用于這樣的帶外通信的專用網(wǎng)絡(luò)適配器??晒芾硇砸?34也能夠帶外訪問(wèn)NV存儲(chǔ)區(qū)128;即,可管理性引擎134能夠獨(dú)立于計(jì)算設(shè)備102的狀態(tài)訪問(wèn)NV存儲(chǔ)區(qū)128。可管理性引擎134也可能能夠訪問(wèn)不可由計(jì)算設(shè)備102的其他部件訪問(wèn)的NV存儲(chǔ)區(qū)128內(nèi)的安全存儲(chǔ)區(qū)域。在一些實(shí)施例中,可管理性引擎134可以被并入到I/O子系統(tǒng)122中或以其他方式形成I/O子系統(tǒng)122的一部分。
[0018]在包括管理服務(wù)器104的系統(tǒng)100的實(shí)施例中,管理服務(wù)器104配置成從計(jì)算設(shè)備102接收導(dǎo)出的配置設(shè)置并且傳輸配置指令到計(jì)算設(shè)備102。管理服務(wù)器104可以直接與可管理性引擎134通信,可管理性引擎134可以作為在網(wǎng)絡(luò)