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