用于在系統(tǒng)改變之后驗證計算設備的適當操作的方法和系統(tǒng)的制作方法
【專利摘要】用于以自動化方式應用系統(tǒng)改變并且在系統(tǒng)改變之后驗證計算設備的正確操作的方法和系統(tǒng)包括:允許計算設備使用操作系統(tǒng)和BIOS組件至少臨時地應用系統(tǒng)改變的機會,確定系統(tǒng)改變是否成功,以及如果系統(tǒng)改變不成功,則將其丟棄。
【專利說明】用于在系統(tǒng)改變之后驗證計算設備的適當操作的方法和系統(tǒng)
【背景技術】
[0001]不時地,計算設備可能要求系統(tǒng)級改變,以維持適當?shù)暮?或高效的操作。這樣的改變的示例可以包括對B1S的改變、針對處理器微代碼的補丁、固件更新、安全補丁、配置改變和/或其他。然而,實施系統(tǒng)改變可以使計算設備進入不能操作的狀態(tài)。結果,以自動化(例如,無人值守的)方式執(zhí)行系統(tǒng)級改變可能是危險的。事實上,如果計算設備接收對于自動化系統(tǒng)改變的請求,則可以不管安裝系統(tǒng)改變的潛在益處而忽略或拒絕該請求,以便不冒系統(tǒng)故障的危險。
【專利附圖】
【附圖說明】
[0002]在附圖中作為示例而非作為限制來圖示出在本文描述的本發(fā)明。為圖示的簡單和清楚起見,不必然地按比例繪制在圖中圖示的要素。例如,為了清楚,可以相對于其他要素來增大一些要素的尺寸。進一步,在被適當考慮的情況下,在圖中重復參考標記,以指示對應的或類似的要素。
[0003]圖1是計算設備的至少一個實施例的簡化框圖;
圖2是圖1的計算設備的操作階段和操作模式的至少一個實施例的簡化模塊圖;
圖3是用于在預啟動過程期間確定至少兩個可能的系統(tǒng)配置中的哪一個適用的方法的至少一個實施例的簡化流程圖;
圖4是用于發(fā)起系統(tǒng)改變的方法的至少一個實施例的簡化流程圖;
圖5是用于處理與未決的系統(tǒng)改變有關的通信的方法的至少一個實施例的簡化流程圖;以及
圖6是用于驗證未決的系統(tǒng)改變的方法的至少一個實施例的簡化流程圖。
【具體實施方式】
[0004]盡管本公開的概念容許各種修改和替換形式,但是已經(jīng)在附圖中作為示例示出了其特定示例性實施例,并且將在本文詳細描述該特定示例性實施例。然而,應當理解,并不旨在將本公開的概念限制為所公開的特定形式,而是相反地,旨在覆蓋落入在如所附權利要求所限定的本發(fā)明的精神和范圍內(nèi)的所有修改、等同物和替換。
[0005]在以下描述中,闡述諸如邏輯實施方式、操作代碼、指定操作數(shù)的方式、資源分割/共享/復制實施方式、系統(tǒng)組件的類型和相互關系,和邏輯分割/集成選擇之類的很多特定細節(jié),以便提供對本公開的更徹底的理解。然而,本領域技術人員將理解的是,在沒有這樣的特定細節(jié)的情況下也可以實踐本公開的實施例。在其他的實例中,沒有詳細地示出控制結構、門級電路和全部軟件指令序列,以便不使本發(fā)明模糊。通過所包括的描述,本領域普通技術人員將能夠在沒有過度的實驗的情況下實施適當?shù)墓δ堋?br>
[0006]在說明書中對“ 一個實施例”、“實施例”、“示例實施例”等等的引用指示所描述的實施例可以包括特定特征、結構,或特性,但是每個實施例可以不必然地包括特定特征、結構,或特性。此外,這樣的用語不一定指相同的實施例。此外,當與實施例結合來描述特定特征、結構或特性時,在此提出,不管是否被明確地描述,與其他實施例結合而實現(xiàn)這樣的特征、結構或特性在本領域技術人員的知識內(nèi)。
[0007]可以以硬件、固件、軟件或其任何組合來實施本發(fā)明的實施例。在計算機系統(tǒng)中實施的本發(fā)明的實施例可以包括組件之間的一個或多個基于總線的互連和/或組件之間的一個或多個點到點互連。本發(fā)明的實施例也可以被實施為可以由一個或多個處理器讀取和執(zhí)行的、由暫時型或非暫時型機器可讀媒介承載的或存儲在暫時型或非暫時型機器可讀媒介上的指令。機器可讀媒介可以被體現(xiàn)為用于存儲或傳送可由機器(例如,計算設備)讀取的形式的信息的任何設備、機構或物理結構。例如,機器可讀媒介可以被體現(xiàn)為只讀存儲器(ROM);隨機存取存儲器(RAM);磁盤存儲媒介;光存儲媒介;閃速存儲器設備;袖珍或微型SD卡、存儲棒、電信號及其他。
[0008]在附圖中,可以為了便于描述而示出諸如表示設備、模塊、指令塊和數(shù)據(jù)要素的那些要素之類的示意性要素的特定布置或次序。然而,本領域技術人員應當理解,附圖中的示意性要素的特定次序或布置并不意味著暗示要求處理的特定順序或序列,或者過程的分離。進一步,在附圖中包括示意性要素并不意味著暗示在所有實施例中要求這樣的要素或者在一些實施例中由這樣的要素表示的特征可以不被包括進來或者可以與其他要素組合。
[0009]通常,可以使用諸如軟件或固件應用、程序、功能、模塊、例程、過程、流程、插件、小程序、構件、代碼段和/或其他之類的任何適當形式的機器可讀指令來實施用于表示指令塊的示意性要素,并且可以使用任何適當?shù)木幊陶Z言、庫、應用編程接口(API)和/或其他軟件開發(fā)工具來實施每個這樣的指令。例如,可以使用機器級指令、C、C++和/或其他編程語言來實施一些實施例。
[0010]類似地,可以使用諸如寄存器、數(shù)據(jù)存儲、表、記錄、陣列、索引、散列、映射、樹、列表、圖形、(任何文件類型的)文件、文件夾、目錄、數(shù)據(jù)庫和/或其它之類的任何適當?shù)碾娮硬贾没蚪Y構來實施用于表示數(shù)據(jù)或信息的示意性要素。
[0011]進一步,在附圖中,在諸如實或虛線或箭頭之類的連接要素用于圖示兩個示意性要素之間或更多其他示意性要素之間的連接、關系或關聯(lián)的情況下,任何這樣的連接要素的缺少并不意味著暗示連接、關系或關聯(lián)可能不存在。換句話說,可能在附圖中沒有示出要素之間的一些連接、關系或關聯(lián),以便不使本公開模糊。而且,為了易于說明,單個連接要素可以用于表示要素之間的多個連接、關系或關聯(lián)。例如,在連接要素表示信號、數(shù)據(jù)或指令的通信的情況下,本領域技術人員應當理解,這樣的要素可以表示如可能需要的那樣的、實現(xiàn)通信的一個或多個信號路徑(例如,總線)。
[0012]現(xiàn)在參照圖1,用于在實施系統(tǒng)改變之后驗證計算設備100的適當操作的說明性系統(tǒng)被體現(xiàn)為Ο/s代理130和B1S / SMI邏輯134。如以下詳細描述的,0/S代理130與B1S / SMI邏輯134進行通信,以允許以自動化方式(例如,在沒有人的干預的情況下)至少臨時地在計算設備100上安裝系統(tǒng)改變。如果系統(tǒng)改變的安裝不成功,則0/S代理130和B1S / SMI邏輯134允許操作系統(tǒng)128安全地返回到其先前(在系統(tǒng)改變之前)的配置中。這樣,能夠在降低系統(tǒng)故障的風險的情況下以自動化方式實施系統(tǒng)級改變。
[0013]計算設備100可以被體現(xiàn)為任何類型的電子設備,其可以包括但不限于:移動設備、個人數(shù)字助理、移動計算設備、智能電話、蜂窩式電話、手機、單向傳呼機、雙向傳呼機、消息發(fā)送設備、計算機、個人計算機(PC)、臺式計算機、膝上型計算機、筆記本計算機、手持式計算機、平板式計算機、服務器、服務器陣列或服務器場、web服務器、網(wǎng)絡服務器、因特網(wǎng)服務器、工作站、袖珍計算機、大型計算機、超級計算機、網(wǎng)絡裝置、web裝置、分布式計算系統(tǒng)、多處理器系統(tǒng)、基于處理器的系統(tǒng)、消費者電子設備、可編程消費者電子設備、電視、數(shù)字電視、機頂盒、無線接入點、基站、訂戶站、移動訂戶中心、無線電網(wǎng)絡控制器、路由器、集線器、網(wǎng)關、網(wǎng)橋、交換機、機器,或者上述任何的任何組合。說明性的計算設備100包括通信方式耦合到至少一個存儲器112和輸入/輸出(I/O)子系統(tǒng)114的至少一個處理器110。取決于特定應用,計算設備100可以被體現(xiàn)為任何類型的計算設備,諸如像臺式計算機、膝上型或平板式計算機、服務器、企業(yè)計算機系統(tǒng)、計算機網(wǎng)絡、移動或手持計算設備或具有計算能力的其他電子設備(具有任何尺寸形狀因數(shù))。
[0014]說明性處理器110包括至少一個處理器核126。除高速緩存存儲器的量之外,存儲器112可以被體現(xiàn)為任何類型的適當?shù)拇鎯ζ髟O備,諸如動態(tài)隨機存取存儲器設備(DRAM)、同步動態(tài)隨機存取存儲器設備(SDRAM)、雙數(shù)據(jù)速率動態(tài)隨機存取存儲器設備(DDRSDRAM)和/或其他易失性存儲器設備。
[0015]在一些實施例中,I/O子系統(tǒng)114可以包括存儲器控制器(例如,存儲器控制器子系統(tǒng)或北橋)和/或輸入/輸出控制器(例如,輸入/輸出控制器或子系統(tǒng)或南橋)(未不出)。在其他的實施例中,可以使用具有其他配置的I/o子系統(tǒng)。例如,在一些實施例中,I/O子系統(tǒng)114可以形成片上系統(tǒng)(SoC)的一部分并且可以與處理器110和計算設備100的其他組件一起被合并在單個集成電路芯片上。照此,將理解的是,在一些實施例中,I/o子系統(tǒng)114的每個組件可以位于公共集成電路芯片上。
[0016]說明性I/O子系統(tǒng)114通信方式耦合到存儲器112、至少一個數(shù)據(jù)存儲設備116、至少一個固件設備118、中斷控制器120、計時器122,以及可選地,一個或多個外圍設備124。數(shù)據(jù)存儲設備116的各部分可以被體現(xiàn)為用于存儲數(shù)據(jù)和/或計算機指令的任何適當?shù)脑O備,諸如磁盤存儲設備(例如硬盤)、物理和/或邏輯存儲設備的網(wǎng)絡,和/或其他。在說明性實施例中,操作系統(tǒng)(0/S)128、0/S代理130和一個或多個軟件應用136駐留數(shù)據(jù)存儲設備116上。在一些實施例中,操作系統(tǒng)128例如可以是微軟視窗(MICROSOFT WINDOWS)、LINUX、蘋果(APPLE) 1S或其他操作系統(tǒng),或者是可以特定地針對諸如分立的、手持的或便攜式電子設備之類的某一類型的計算設備所設計的他類似的指令集。上述示例性操作系統(tǒng)是或者可以是它們的相應所有者的注冊或未注冊的商標。在一些實施例中,(一個或多個)軟件應用136可以是任意的,例如,能夠在計算設備100上運行的或者可以特定地針對諸如分立的、手持的或便攜式電子設備之類的某一類型的計算設備所設計的任何軟件應用。為了更快處理或為了其他原因,在操作期間,操作系統(tǒng)128、0/S代理130和/或(一個或多個)軟件應用136的各部分可以被復制到存儲器112。
[0017]說明性固件設備118被體現(xiàn)為非易失性存儲器或諸如閃速存儲器之類的只讀存儲器(ROM)設備。在說明性實施例中,固件設備118存儲通常被稱為基本輸入/輸出系統(tǒng)(B10S)132的例程集合,該例程集合包括B1S / SMI邏輯134、數(shù)據(jù)、指令和/或其他信息。B1S / SMI邏輯134包括B1S早期啟動邏輯222和B10S/SMI運行時間邏輯232,他們在圖2中被示出并且在以下被描述。
[0018]說明性B1S 132使得計算設備100能夠啟動操作系統(tǒng)128并且與耦合到1/0子系統(tǒng)114的各種其他(一個或多個)設備進行通信。取決于特定處理器體系結構,可以使用統(tǒng)一可擴展固件接口(UEFI)或其他指令來代替B1S ;然而,為了便于描述,可以在本文中使用術語B1S來更一般地指代B10S、UEFI或任何類似的這樣的機制。在操作期間,為了更快執(zhí)行或其他理由,B1S 132和/或B1S / SMI邏輯134的各部分可以被復制到存儲器112。
[0019]盡管為了易于說明而被分開地示出,但在各個實施例中,中斷控制器120和/或計時器122中的每個或任一個可以被體現(xiàn)在I/O子系統(tǒng)114、固件118和/或處理器110中。中斷控制器120和計時器122被配置為促進0/S代理130和B1S / SMI邏輯134之間的通信,并且允許以專用操作模式執(zhí)行一些功能或處理。在一些計算環(huán)境中,專用操作模式被稱為系統(tǒng)管理模式(SMM),并且在本文中可以使用該術語來更一般地指代這樣的專用操作模式??梢允褂肧MM來處理全系統(tǒng)范圍的功能,諸如像功率管理、硬件控制和/或錯誤處理。
[0020]一般而言,SMM是通常對操作系統(tǒng)128隱藏的平臺服務。取決于特定處理器體系結構,可以通過諸如系統(tǒng)管理中斷(SMI)或平臺管理中斷(PMI)之類的管理中斷事件的生成來發(fā)起系統(tǒng)管理模式的使用。這些中斷事件通常是不可屏蔽的并且因此優(yōu)先于可屏蔽中斷和其他事件。通常,管理中斷發(fā)起與可能正在執(zhí)行的任何操作系統(tǒng)過程并發(fā)地運行的異步過程。如以下描述的,響應于某些事件的出現(xiàn),說明性中斷控制器120生成管理中斷(諸如SMI或PMI)。能夠?qū)⒄f明性計時器122實現(xiàn)為對所確定的或可編程時間段(例如,在大約5分鐘的范圍內(nèi))進行倒計時,以使得該時間段的期滿發(fā)起管理中斷。
[0021]例如取決于計算設備100的預期使用,1/0子系統(tǒng)114可以通信方式耦合到一個或多個其他外圍設備124,諸如網(wǎng)絡接口、圖形驅(qū)動器、音頻驅(qū)動器和/或其他(未示出)。進一步,但應當理解,計算設備100可以包括其他組件、子組件和設備,為了描述清楚而在圖1中未圖示。
[0022]通常,通過被示意地表示為雙頭箭頭的一個或多個信號路徑,計算設備100的組件如圖1中所示的那樣以通信方式耦合。這樣的信號路徑可以被體現(xiàn)為能夠促進相應的設備之間的通信的任何類型的有線或無線信號路徑。例如,信號路徑可以被體現(xiàn)為任何數(shù)量的導線、印刷電路板跡線、通孔、總線、點到點互連、介入設備和/或類似物。
[0023]在操作中,操作系統(tǒng)128可以在其在計算設備100上開始運行之后的任何時間(例如,在運行時間)接收實施系統(tǒng)級改變的請求。這樣的請求可以涉及例如軟件或固件更新、對中央處理單元(CPU)或處理器微代碼的補丁、對B1S的改變、安全補丁和/或配置改變。為了易于討論,每個、任何或所有這樣的改變和/或更新或其組合可以在本文中被稱為“系統(tǒng)改變”,并且包括一個或多個系統(tǒng)改變的系統(tǒng)配置可以被稱為“未決配置”。
[0024]舉例來說,在一些情況下,當處理器110、操作系統(tǒng)128或軟件應用136開始操作時,其可以自動地檢查(例如,通過進入因特網(wǎng)網(wǎng)站或遠程服務器)以查看是否存在尚未被安裝在計算設備100上的系統(tǒng)改變。如果存在可以用來安裝在計算設備100上的系統(tǒng)改變,則0/S代理130與B1S / SMI邏輯134進行通信以利用未決的系統(tǒng)改變來嘗試操作系統(tǒng)128的一次性“試驗”啟動。如果0/S代理130確定試驗啟動已經(jīng)失敗,則利用其先前的配置(例如,在沒有系統(tǒng)改變的情況下)重新啟動操作系統(tǒng)128。
[0025]現(xiàn)在參照圖2,模塊圖圖示在計算設備100被加電之后出現(xiàn)的計算設備100的操作階段。因為計算設備100的至少一個實施例能夠以正常(例如,CPU)操作模式210和專用(例如,SMM)操作模式200操作,所以圖2也圖示出現(xiàn)在那些模式的每一個中的指令、例程、
過程等等。
[0026]計算設備100的操作階段包括固件初始化或“B1S”階段212、操作系統(tǒng)啟動階段214和操作系統(tǒng)運行階段216。B1S階段212和0/S啟動階段214可以被更一般地稱為“預啟動”階段,而0/S運行階段216可以被稱為“運行時間”階段。階段212、214、216通常一個接一個地出現(xiàn);例如,0/S啟動階段214通常直到B1S階段212完成才開始。同樣地,該0/S運行階段216通常直到0/S啟動階段214完成才開始。在任何階段212、214、216期間,操作模式200、210可以并發(fā)地運行。
[0027]在B1S階段212期間,計算設備100執(zhí)行計算機化邏輯以完成由框220和222標識的任務。以正常操作模式210完成這些任務。在框220,初始化B1S 132和SMM 200。在框222,B10S 132執(zhí)行早期啟動邏輯,早期啟動邏輯被配置為在啟動操作系統(tǒng)128時確定使用哪個系統(tǒng)配置(例如,利用巳知的“好的”配置進行啟動還是利用包括系統(tǒng)改變的新的或“未決”的配置進行啟動)。用于完成框222的任務的說明性方法300被示出在以下描述的圖3中。在框224,利用由B1S 132在框222所確定的配置,B1S 132加載和啟動操作系統(tǒng)128。在框224在計算機化邏輯的執(zhí)行期間,計算設備100處于0/S啟動階段214并且處于正常操作模式210中。
[0028]一旦啟動或重新啟動操作系統(tǒng)128 (例如,圖2的步驟(I)或步驟(3)),計算設備100就操作在0/S運行階段216和正常操作模式210中。如由框226所圖示的,在0/S運行階段216期間,計算設備100可以運行(一個或多個)軟件應用136、經(jīng)由一個或多個外圍設備124與用戶交互,和/或執(zhí)行其他活動或操作。在0/S運行階段216期間的任何時間,0/S代理230可以接收如上所述的對于系統(tǒng)改變的請求228。例如,請求228可以始自于在計算設備100上運行的另一個過程,或者始自于計算設備100的用戶。響應于請求228,在圖2的步驟(2),0/S代理130發(fā)起所請求的系統(tǒng)改變的實施。在以下描述的圖4中示出用于完成圖2的步驟(2)的(一個或多個)任務的說明性方法400。例如,使用SMI消息,0/S代理130調(diào)用B1S / SMI邏輯134以至少臨時地應用所請求的系統(tǒng)改變。B1S / SMI邏輯134以專用操作模式(例如,SMM 200)運行,如由框232所示。在以下描述的圖5中示出用于完成框232的(一個或多個)任務的說明性方法500。0/S代理130然后重新啟動具有系統(tǒng)改變的操作系統(tǒng)128 (圖2的步驟(3)),并且在圖2的步驟(4)例如通過執(zhí)行一個或多個系統(tǒng)級測試來驗證系統(tǒng)改變。在以下描述的圖6中示出用于完成圖2的步驟(4)的(一個或多個)任務的說明性方法600。
[0029]現(xiàn)在參照圖3,示出用于完成圖2的框222的任務(例如,用于確定在啟動操作系統(tǒng)128時使用哪個配置)的說明性方法300。方法300可以被體現(xiàn)為被配置用于由B1S 132執(zhí)行的計算機化邏輯(例如,被體現(xiàn)為B1S早期啟動邏輯222)。在框310,將計算設備100加電或以其它方式開啟(或重新開啟)。以虛線示出框310以指示:在說明性實施例中,框310僅僅是出現(xiàn)在方法300的隨后的框(例如,312、314、316、318、320、322)之前的事件并且不必被包括在方法300的任何計算機化邏輯中。
[0030]在框312,B1S早期啟動邏輯222確定“啟動未決”標志是否已經(jīng)被置位。在說明性實施例中,如果系統(tǒng)改變是未決的(例如,0/S代理130已經(jīng)接收到安裝包括系統(tǒng)改變的新配置的請求),則啟動未決標志僅是被打開的比特(例如,被分配值“ I ”),或者如果不存在等待被安裝的系統(tǒng)改變,則啟動未決標志被被分配值“O”。在說明性實施例中,啟動未決標志被存儲在B1S存儲設備(例如,閃速存儲器)中。如果沒有系統(tǒng)改變是未決的,那么在框314,B1S早期啟動邏輯222應用巳知“好的”配置(例如,在系統(tǒng)改變之前存在的系統(tǒng)配置)。
[0031]如果系統(tǒng)改變是未決的,則在框316,B1S早期啟動邏輯222清除啟動未決標志(例如,將啟動未決標志從值“ I ”改變?yōu)橹怠癘”,或者反之亦然)。在說明性實施例中,啟動未決標志用于保證僅僅進行一次嘗試來利用包含未決系統(tǒng)改變的配置啟動操作系統(tǒng)128,除非未決配直的啟動成功地完成。
[0032]在框318,計時器122被配置為對一個時間段倒計時,以便當該時間段期滿時,操作系統(tǒng)128自動關閉并且重新啟動。在說明性實施例中,該時間段被設定為在時間期滿之前允許計算設備100有足夠時間去嘗試利用未決配置進行成功啟動。在框320,B1S早期啟動邏輯222然后應用未決配置。在框322,B1S早期啟動邏輯222視情況使用在框314確立的巳知配置或者在框320應用的未決配置來發(fā)起操作系統(tǒng)128的啟動。如果未決配置成功,則在計時器122期滿之前將已經(jīng)成功地完成了框320和322的任務。如果在完成框320和322的任務之前計時器122期滿,則未決配置被認為已經(jīng)失敗。
[0033]現(xiàn)在參照圖4,示出用于完成圖2的步驟(2)的(一個或多個)任務(例如,用于發(fā)起未決配置的啟動)的說明性方法400。方法400可以被體現(xiàn)為被配置用于由0/S代理230執(zhí)行的計算機化邏輯。在框410,0/S代理230接收應用(例如,安裝)包括系統(tǒng)改變的未決系統(tǒng)配置的請求(例如,圖2中圖示的請求228)。如上所述,請求例如可以始自于另一個過程或用戶。以虛線描繪框410以指示:在說明性實施例中,框410僅僅是出現(xiàn)在方法400的隨后的框(例如,412、414、416)之前的事件并且不必被包括在方法400的任何計算機化邏輯中。
[0034]在框412,0/S代理向B10S/SMI運行時間邏輯232發(fā)送消息(例如,SMI ),該消息指令B10S/SMI運行時間邏輯232上載該消息中所包括的未決配置。從以下描述的圖5的框528開始,由B10S/SMI運行時間邏輯232以專用的操作模式200進行未決配置的進一步處理。與此同時,在框414,0/S代理230從B10S/SMI運行時間邏輯232等待指示其已經(jīng)完成圖5的框528、530、532、538處的處理的消息。在框416,0/S代理230利用包含系統(tǒng)改變的未決配置發(fā)起操作系統(tǒng)128的重新啟動(被圖示為圖2的步驟(3))。
[0035]現(xiàn)在參照圖5,示出用于完成框232的(一個或多個)任務的說明性方法500。方法500可以被體現(xiàn)為被配置用于由B1S 132執(zhí)行的計算機化邏輯(例如,被體現(xiàn)為B1S運行時間邏輯232)。該說明性方法500被配置為在未決配置的處理期間從0/S代理230接收許多不同的消息(例如,SMI)。在說明性實施例中,每當B10S/SMI運行時間邏輯232從OS代理230接收消息時,執(zhí)行方法500。
[0036]在框510,B10S/SMI運行時間邏輯232從0/S代理230接收消息(例如,SMI)。在說明性實施例中,由0/S代理230在圖4的框412、圖6的框612、圖6的框618或圖6的框624生成由B10S/SMI運行時間邏輯232在框510接收的消息。以虛線描繪框510以指示:在說明性實施例中,框510僅僅是出現(xiàn)在方法500的隨后的框(例如,框512、518、528、534和隨后的框)之前的事件并且不必被包括在方法500的任何計算機化邏輯中。如圖2中所示,使用專用操作模式200來執(zhí)行B10S/SMI運行時間邏輯232。
[0037]在框512,方法500確定來自0/S代理230的消息是否指示未決配置已被成功應用并且通過所有可應用的測試(例如,“提交未決(commit pending)”消息)。在說明性實施例中,在以下描述的圖6的框624處由0/S代理230向B10S/SMI運行時間邏輯232發(fā)送“提交未決”消息。如果由B10S/SMI運行時間邏輯232在框512接收的消息是“提交未決”消息,那么在框514處方法500利用包括系統(tǒng)改變的未決配置來替換巳知的“好的”配置,并且在框516向0/S代理230返回指示該任務成功完成的狀態(tài)消息。在說明性實施例中,由0/S代理230接收框516的“成功”消息,并且在以下描述的圖6的框626處將控制返回到正常操作模式210。
[0038]如果來自0/S代理230的消息不是“提交未決”消息,則方法500繼續(xù)到框518。在框518,方法500確定來自0/S代理230的消息是否指示0/S代理230正在請求關于當前配置的狀態(tài)的信息,即,當前正在使用巳知的“好的”配置還是使用包含系統(tǒng)改變的未決配置(例如,“哪個配置”消息)。在說明性實施例中,在以下描述的圖6的框612處,由0/S代理230向B10S/SMI運行時間邏輯232發(fā)送“哪個配置”消息。
[0039]如果由B10S/SMI運行時間邏輯232在框518接收的消息是“哪個配置”消息,那么在框520,方法500確定操作系統(tǒng)128最后一次被啟動時是否使用了未決配置。在說明性實施例中,通過參考如上所述的啟動未決標志來確定這一點。如果最后的啟動使用了未決配置,那么在框522,禁用計時器122,并且在框524,由B10S/SMI運行時間邏輯232向0/S代理230發(fā)送指示應當使用未決配置的狀態(tài)消息。在框522禁用計時器122,這是因為,基于啟動未決標志,B10S/SMI運行時間邏輯232已經(jīng)推斷出未決配置被成功應用。如果最后的啟動沒有使用未決配置,那么在框526,由B10S/SMI運行時間邏輯232向0/S代理230發(fā)送指示應當使用巳知的“好的”配置的狀態(tài)消息。在說明性實施例中,視情況,由0/S代理230接收框524的“使用未決配置”消息或框526的“使用巳知的配置”消息,并且在以下描述的圖6的框614將控制返回到正常操作模式210。
[0040]如果來自0/S代理230的消息不是“哪個配置”消息,則方法500繼續(xù)到框528。在框528,方法500確定來自0/S代理230的消息是否包括包含系統(tǒng)改變的未決配置(例如,其是否是“新配置”消息)。在說明性實施例中,在如上所述圖4的框412處,由0/S代理230向B10S/SMI運行時間邏輯232發(fā)送“新配置”消息。
[0041]如果由B10S/SMI運行時間邏輯232在框528處接收的消息是“新配置”消息,那么在框530,方法500創(chuàng)建包括包含在“新配置”消息中的數(shù)據(jù)的未決配置,在框532如上所述將啟動未決標志置位,并且在框538向0/S代理230發(fā)送指示已經(jīng)成功創(chuàng)建未決配置的消息。如上所述,無論何時0/S代理230接收到對于系統(tǒng)改變228的請求,就調(diào)用框528。在說明性實施例中,由0/S代理230接收框538的“成功”消息,并且在如上所述圖4的框414處將控制返回到正常操作模式210。
[0042]如果來自0/S代理230的消息不是“新配置”消息,則在至少一些實施例中,方法500繼續(xù)到框534。在框534,方法500確定來自0/S代理230的消息是否指示未決配置沒有通過所有可應用測試并且因此應當被丟棄(例如,其是否是“丟棄未決”消息)。在說明性實施例中,在以下描述的圖6的框618處,由0/S代理230向B10S/SMI運行時間邏輯232發(fā)送“丟棄未決”消息。
[0043]如果由B10S/SMI運行時間邏輯232在框534接收的消息是“丟棄未決”消息,那么在框536,方法500刪除未決配置并且向Ο/S代理230發(fā)送指示未決配置被成功刪除的狀態(tài)消息。如上所提及的,以專用操作模式200中執(zhí)行方法500,并且在圖5的框516、524、526、528和536處,將控制返回到正常CPU操作模式210。
[0044]現(xiàn)在參照圖6,示出用于完成圖2的步驟(4)的(一個或多個)任務(例如,用于驗證未決配置的成功安裝)的說明性方法600。方法600可以被體現(xiàn)為被配置用于由0/S代理230執(zhí)行的計算機化邏輯。一旦在圖4的框416處已經(jīng)利用未決配置重新啟動了操作系統(tǒng)128,就調(diào)用方法600。相應地,以虛線描繪框610以指示:在說明性實施例中,框610僅僅是出現(xiàn)在方法600的隨后的框(例如,框612和隨后的框)之前的事件并且不必被包括在方法600的任何計算機化邏輯中。
[0045]在框612,0/S代理230向B10S/SMI運行時間邏輯232發(fā)送用于確定是巳知的“好的”配置還是未決配置在使用中的、如上所述的“哪個配置”消息。在框614,0/S代理230接收上述的由B10S/SMI運行時間邏輯232在圖5的框524或框526生成的消息。如果在框614由0/S代理230從B10S/SMI運行時間邏輯232接收的消息指示巳知的“好的”配置在使用中,那么0/S代理230能夠推斷出利用未決配置的一次性試驗啟動不是成功的(例如,在啟動完成之前計時器122期滿并且因此利用巳知的“好的”配置發(fā)起了重新啟動,或者用戶按下了電源或重置按鈕)。在這樣的事件中,在框616,0/S代理230響應于失敗嘗試而發(fā)起計算機化錯誤處理邏輯,并且在至少一些實施例中,在框618,向B10S/SMI運行時間邏輯232發(fā)送上述的“丟棄未決”消息。錯誤處理邏輯的一些示例可以包括保持啟動未決配置的失敗嘗試的日志和/或與其相關的其他數(shù)據(jù)、創(chuàng)建與一個或多個這樣的失敗嘗試有關的報告、向計算設備100的(一個或多個)用戶、輸出設備(諸如顯示器或揚聲器)、網(wǎng)絡或遠程計算設備發(fā)送一個或多個警告,和/或其他補救措施。由0/S代理230在框616處進行的一個或多個補救措施可以根據(jù)計算設備100的特定系統(tǒng)設計或配置的要求而變化。
[0046]如果在框614處由0/S代理230從B10S/SMI運行時間邏輯232接收到指示未決配置在使用中的消息,那么Ο/S代理230能夠推斷出利用未決配置的啟動是成功的,并且能夠繼續(xù)到框620。然而,即使未決配置的啟動成功完成,仍然可能存在如下風險:系統(tǒng)具有不穩(wěn)定性或其他操作問題。因此,在框620,0/S代理230進行一個或多個診斷、系統(tǒng)測試、操作系統(tǒng)測試、機內(nèi)自測試(BIST)和/或其他功能測試或系列測試,以確定計算設備100在利用未決配置啟動之后是否適當?shù)夭僮?。?/S代理230在框620處進行的一個或多個測試可以根據(jù)計算設備100的特定系統(tǒng)設計或配置的要求而變化。
[0047]如果未決配置成功地完成了由0/S代理230在框620處進行的一個或多個測試和/或診斷,那么在框624,0/S代理230向B10S/SMI運行時間邏輯232發(fā)送上述的“提交未決”消息,以指令B10S/SMI運行時間邏輯232利用未決配置來替換巳知的“好的”配置。在框626,0/S代理230接收由B10S/SMI運行時間邏輯232在圖5的框516處生成的“成功”狀態(tài)消息,并且發(fā)起與未決配置的成功實施有關的事件邏輯。這樣的事件邏輯的一些示例可以包括記錄啟動未決配置的成功嘗試和/或與其相關的其他數(shù)據(jù)、創(chuàng)建與一個或多個這樣的成功嘗試有關的報告、向計算設備100的一個或多個用戶、輸出設備(諸如顯示器或揚聲器)、網(wǎng)絡或遠程計算設備發(fā)送一個或多個警告,和/或其他事件報告措施。由0/S代理230在框626處進行的一個或多個事件報告措施可以根據(jù)計算設備100的特定系統(tǒng)設計或配置的要求而變化。
[0048]如果未決配置沒有完成由0/S代理230在框620進行的一個或多個測試和/或診斷,那么在框618,0/S代理230向B10S/SMI運行時間邏輯232發(fā)送上述的“丟棄未決”消息,以指令B10S/SMI運行時間邏輯232刪除未決配置并且維持巳知的“好的”配置。在各個實施例中,0/S代理230可以使用任何標準或許多標準來基于計算設備100的特定系統(tǒng)設計或配置的要求確定是否接受未決配置。例如,在一些實施例中,通過少于所有進行的測試和/或診斷的100%可能被認為是“通過”,而在其他的實施例中,可能要求通過所有進行的測試和/或診斷。
[0049]示例
以下提供本文中公開的設備、系統(tǒng)和方法的說明性示例。設備、系統(tǒng)和方法的實施例可以包括以下描述的示例的任何一個或更多以及任何組合。
[0050]在一個示例中,被配置為實施系統(tǒng)級改變的計算設備可以包括至少一個處理器核和耦合到該至少一個處理器核的存儲器設備,存儲器設備在其中存儲有多個指令,當由該至少一個處理器核執(zhí)行時,該多個指令使該至少一個處理器核執(zhí)行如下操作:在操作系統(tǒng)和B1S在計算設備上運行時,由向B1S發(fā)送消息的操作系統(tǒng)發(fā)起系統(tǒng)改變。在一示例中,該至少一個處理器可以通過B1S啟動計時器,該計時器被配置為在一時間段期滿之后重新啟動操作系統(tǒng)。在一示例中,該至少一個處理器可以啟動具有系統(tǒng)改變的操作系統(tǒng)。在一示例中,該至少一個處理器可以通過與B1S進行通信的操作系統(tǒng)來確定具有系統(tǒng)改變的啟動是否成功。在一示例中,該至少一個處理器可以響應于確定系統(tǒng)改變是否成功而由B1S處理系統(tǒng)改變。在一示例中,操作系統(tǒng)可以被配置為接收對于系統(tǒng)改變的請求。在一示例中,B1S可以被配置為置位指示系統(tǒng)改變未決的標志。在一示例中,B1S可以被配置為確定標志是否被置位并且響應于標志被置位而啟動具有系統(tǒng)改變的操作系統(tǒng)。在一示例中,BI OS可以被配置為確定標志是否被置位并且響應于標志沒有被置位而啟動不具有系統(tǒng)改變的操作系統(tǒng)。在一示例中,B1S可以被配置為響應于確定具有系統(tǒng)改變的啟動成功來禁用計時器。在一示例中,計算設備可以被配置為響應于一時間段的期滿來重新啟動操作系統(tǒng)。在一示例中,操作系統(tǒng)可以被配置為執(zhí)行至少一個測試,該至少一個測試被配置為響應于啟動具有系統(tǒng)改變的操作系統(tǒng)而驗證計算設備的適當操作。在一示例中,操作系統(tǒng)可以被配置為向B1S發(fā)送指示系統(tǒng)改變是否成功的消息。在一示例中,操作系統(tǒng)和B1S可以在計算設備上按第一配置運行,并且B1S可以被配置為響應于操作系統(tǒng)確定系統(tǒng)改變成功來利用包括系統(tǒng)改變的第二配置替換第一配置。在一示例中,操作系統(tǒng)和B1S可以在計算設備上以第一配置運行,并且B1S可以被配置為響應于操作系統(tǒng)確定系統(tǒng)改變不成功來刪除系統(tǒng)改變并且維持第一配置。在一示例中,操作系統(tǒng)可以被配置為響應于確定系統(tǒng)改變是否成功來向用戶、輸出設備、網(wǎng)絡和遠程計算設備中的至少一個報告系統(tǒng)改變的狀態(tài)。
[0051]在另一個示例中,方法可以包括:在運行操作系統(tǒng)和與操作系統(tǒng)進行通信的B1S的計算設備處,在操作系統(tǒng)在計算設備上運行時,由操作系統(tǒng)發(fā)起對計算設備的系統(tǒng)改變。在一示例中,該方法可以包括B1S至少臨時地應用系統(tǒng)改變。在一示例中,該方法可以包括操作系統(tǒng)確定系統(tǒng)改變是否成功。在一示例中,該方法可以包括響應于確定系統(tǒng)改變是否成功,B1S處理系統(tǒng)改變。在一示例中,該方法可以包括B1S配置計時器,以允許操作系統(tǒng)嘗試具有系統(tǒng)改變的啟動并且響應于確定系統(tǒng)改變不成功而嘗試不具有系統(tǒng)改變的重新啟動。在一示例中,該方法可以包括響應于至少臨時應用系統(tǒng)改變,操作系統(tǒng)執(zhí)行執(zhí)行至少一個診斷。
[0052]在另一個示例中,計算設備可以包括至少一個處理器;和耦合到該至少一個處理器的計算機電路,計算機電路被布置為使該至少一個處理器執(zhí)行任何上述方法。在另一個示例中,至少一個計算機可存取媒介可以包括響應于被執(zhí)行而導致計算設備執(zhí)行任何上述方法的多個指令。
[0053]在另一個示例中,用于實施系統(tǒng)改變的方法可以包括:在操作系統(tǒng)和B1S在計算設備上運行時,B1S從操作系統(tǒng)接收對計算設備進行系統(tǒng)改變的請求。該方法可以包括:B1S發(fā)起具有所請求的系統(tǒng)改變的操作系統(tǒng)的啟動。該方法可以包括:B10S從操作系統(tǒng)接收系統(tǒng)改變是否成功的指示。該方法可以包括:響應于系統(tǒng)改變是否成功的指示來處理系統(tǒng)改變。
[0054]在一示例中,被配置為實施系統(tǒng)改變的計算設備可以包括至少一個處理器;和耦合到該至少一個處理器的計算機電路,其中計算機電路可以被布置為使該至少一個處理器執(zhí)行上述方法。在一示例中,至少一個計算機可存取媒介可以包括:響應于被執(zhí)行而導致計算設備執(zhí)行上述方法的多個指令。
[0055]在另一個示例中,用于實施系統(tǒng)改變的方法可以包括:在操作系統(tǒng)和B1S在計算設備上運行時,操作系統(tǒng)從B1S接收指示操作系統(tǒng)的第一配置和包括系統(tǒng)改變的操作系統(tǒng)的第二配置中的哪一個正在運行的消息。該方法可以包括:響應于來自B1S的指示第二配置在運行的消息而執(zhí)行至少一個測試以確定計算設備是否適當?shù)夭僮?。該方法可以包?向B1S發(fā)送指示利用第二配置的計算設備是否適當?shù)夭僮鞯南ⅰ?br>
[0056]在另一個示例中,被配置為實施系統(tǒng)改變的計算設備可以包括:至少一個處理器;和耦合到該至少一個處理器的計算機電路;其中計算機電路可以被布置為使該至少一個處理器執(zhí)行上述方法。在另一個示例中,被配置為實施系統(tǒng)改變的至少一個計算機可存取媒介可以包括響應于被執(zhí)行而導致計算設備執(zhí)行上述方法的多個指令。
[0057]盡管已經(jīng)在附圖和之前的描述中詳細圖示和描述了本公開,但這樣的圖示和描述將被認為在性質(zhì)上是示例性而非限制性的,要理解,僅僅已經(jīng)示出和描述了說明性實施例,并且期望保護進入本公開的精神的范圍內(nèi)的所有改變和修改。另外,盡管已經(jīng)在計算設備的上下文中描述了本公開的各方面,但將理解,各個方面具有其他應用,例如期望自動地發(fā)起系統(tǒng)級改變或更新的任何應用。這樣的應用例如可以包括具有一個或多個計算機控制特征的任何設備,諸如個人電子設備、“智能”裝置和/或其他產(chǎn)品。
【權利要求】
1.一種被配置為實施系統(tǒng)級改變的計算設備,所述計算設備包括: 至少一個處理器核;和 耦合到所述至少一個處理器核的存儲器設備,存儲器設備在其中存儲有多個指令,當由所述至少一個處理器核執(zhí)行時,所述多個指令使所述至少一個處理器核執(zhí)行如下操作: 在操作系統(tǒng)和B1S在計算設備上運行時,由向B1S發(fā)送消息的所述操作系統(tǒng)發(fā)起系統(tǒng)改變; 由B1S啟動計時器,計時器被配置為在一時間段期滿之后重新啟動所述操作系統(tǒng); 啟動具有所述系統(tǒng)改變的所述操作系統(tǒng); 由與B1S進行通信的所述操作系統(tǒng)確定具有系統(tǒng)改變的所述啟動是否成功;以及 響應于確定所述系統(tǒng)改變是否成功,由B1S處理所述系統(tǒng)改變。
2.根據(jù)權利要求1所述的計算設備,其中,所述操作系統(tǒng)被配置為接收對于系統(tǒng)改變的請求。
3.根據(jù)權利要求1所述的計算設備,其中,B1S被配置為置位指示所述系統(tǒng)改變未決的標志。
4.根據(jù)權利要求3所述的計算設備,其中,B1S被配置為確定標志是否被置位并且響應于標志被置位而啟動具有所述系統(tǒng)改變的所述操作系統(tǒng)。
5.根據(jù)權利要求3所述的計算設備,其中,B1S被配置為確定標志是否被置位并且響應于標志沒有被置位而啟動不具有所述系統(tǒng)改變的所述操作系統(tǒng)。
6.根據(jù)權利要求1所述的計算設備,其中,B1S被配置為響應于確定具有系統(tǒng)改變的啟動成功而禁用計時器。
7.根據(jù)權利要求1所述的計算設備,其中,所述計算設備被配置為響應于所述時間段的期滿而重新啟動所述操作系統(tǒng)。
8.根據(jù)權利要求1所述的計算設備,其中,所述操作系統(tǒng)被配置為執(zhí)行至少一個測試,所述至少一個測試被配置為響應于啟動具有所述系統(tǒng)改變的所述操作系統(tǒng)而驗證所述計算設備的適當操作。
9.根據(jù)權利要求1所述的計算設備,其中,所述操作系統(tǒng)被配置為向B1S發(fā)送指示所述系統(tǒng)改變是否成功的消息。
10.根據(jù)權利要求1所述的計算設備,其中,所述操作系統(tǒng)和B1S在所述計算設備上以第一配置運行,并且B1S被配置為響應于所述操作系統(tǒng)確定所述系統(tǒng)改變成功而利用包括所述系統(tǒng)改變的第二配置來替換第一配置。
11.根據(jù)權利要求1所述的計算設備,其中,所述操作系統(tǒng)和B1S在計算設備上以第一配置運行,并且B1S被配置為響應于操作系統(tǒng)確定系統(tǒng)改變不成功而刪除所述系統(tǒng)改變并且維持第一配置。
12.根據(jù)權利要求1所述的計算設備,其中,所述操作系統(tǒng)被配置為響應于確定所述系統(tǒng)改變是否成功而向用戶、輸出設備、網(wǎng)絡和遠程計算設備中的至少一個來報告所述系統(tǒng)改變的狀態(tài)。
13.一種用于實施系統(tǒng)改變的方法,包括: 在運行操作系統(tǒng)和與所述操作系統(tǒng)進行通信的B1S的計算設備上進行如下步驟: 在所述操作系統(tǒng)在所述計算設備上運行時,由所述操作系統(tǒng)發(fā)起對所述計算設備的系統(tǒng)改變; 至少臨時地通過B1S應用所述系統(tǒng)改變; 由所述操作系統(tǒng)確定所述系統(tǒng)改變是否成功;以及 由B1S響應于確定所述系統(tǒng)改變是否成功來處理所述系統(tǒng)改變。
14.根據(jù)權利要求13所述的方法,其中,所述方法包括:由B1S配置計時器,以允許所述操作系統(tǒng)嘗試具有系統(tǒng)改變的啟動并且響應于確定所述系統(tǒng)改變不成功而嘗試不具有所述系統(tǒng)改變的重新啟動。
15.根據(jù)權利要求13所述的方法,其中,所述方法包括:響應于至少臨時地應用所述系統(tǒng)改變,由操作系統(tǒng)執(zhí)行至少一個診斷。
16.一種被配置為實施系統(tǒng)改變的計算設備,包括: 至少一個處理器;和 耦合到所述至少一個處理器的計算機電路,所述計算機電路被布置為使所述至少一個處理器執(zhí)行根據(jù)權利要求13-15中的任一項所述的方法。
17.被配置為實施系統(tǒng)改變的至少一個計算機可存取媒介,包括響應于被執(zhí)行而導致計算設備執(zhí)行根據(jù)權利要求13-15中的任一項所述的方法的多個指令。
18.一種用于實施系統(tǒng)改變的方法,包括: 在操作系統(tǒng)和B1S在計算設備上運行時,B1S進行如下步驟: 從所述操作系統(tǒng)接收對所述計算設備進行系統(tǒng)改變的請求; 發(fā)起具有所請求的系統(tǒng)改變的操作系統(tǒng)的啟動; 從所述操作系統(tǒng)接收所述系統(tǒng)改變是否成功的指示;以及 響應于所述系統(tǒng)改變是否成功的指示來處理所述系統(tǒng)改變。
19.一種被配置為實施系統(tǒng)改變的計算設備,包括: 至少一個處理器;和 耦合到所述至少一個處理器的計算機電路,所述計算機電路被布置為使所述至少一個處理器執(zhí)行根據(jù)權利要求18所述的方法。
20.被配置為實施系統(tǒng)改變的至少一個計算機可存取媒介,包括響應于被執(zhí)行而導致計算設備執(zhí)行根據(jù)權利要求18所述的方法的多個指令。
21.一種用于實施系統(tǒng)改變的方法,包括: 在操作系統(tǒng)和B1S在計算設備上運行時,所述操作系統(tǒng)進行如下步驟: 從B1S接收指示所述操作系統(tǒng)的第一配置和所述操作系統(tǒng)的第二配置中哪一個正在運行的消息,第二配置包括系統(tǒng)改變; 響應于來自B1S的、指示第二配置在在運行的消息,執(zhí)行至少一個測試以確定所述計算設備是否適當?shù)夭僮?;以? 向B1S發(fā)送指示計算設備是否正在利用第二配置適當?shù)夭僮鞯南ⅰ?br>
22.一種被配置為實施系統(tǒng)改變的計算設備,包括: 至少一個處理器;和 耦合到所述至少一個處理器的計算機電路,該計算機電路被布置為使所述至少一個處理器執(zhí)行根據(jù)權利要求21所述的方法。
23.被配置為實施系統(tǒng)改變的至少一個計算機可存取媒介,包括響應于被執(zhí)行而導致計算設備執(zhí)行根據(jù)權利要求21所述的方法的多個指令。
【文檔編號】G06F9/24GK104185836SQ201280072107
【公開日】2014年12月3日 申請日期:2012年3月31日 優(yōu)先權日:2012年3月31日
【發(fā)明者】J.B.富里斯塔爾 申請人:英特爾公司