TWI786871B - 電腦和系統啓動方法 - Google Patents
電腦和系統啓動方法 Download PDFInfo
- Publication number
- TWI786871B TWI786871B TW110137232A TW110137232A TWI786871B TW I786871 B TWI786871 B TW I786871B TW 110137232 A TW110137232 A TW 110137232A TW 110137232 A TW110137232 A TW 110137232A TW I786871 B TWI786871 B TW I786871B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- memory
- processor
- computer
- monitoring circuit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/4408—Boot device selection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Programmable Controllers (AREA)
Abstract
一種電腦和應用於該電腦上的啓動方法。在該電腦中,一第一記憶體儲存第一韌體,一第二記憶體儲存第二韌體。本申請提出一種程控裝置連接該第一記憶體和該第二記憶體,包括一選擇器和一監控電路。該選擇器提供一指向功能,用於選擇該第一記憶體或該第二記憶體為選定韌體。該電腦中有一處理器,連接該程控裝置,可根據該指向功能,載入並執行該選定韌體。當該電腦啓動時,該監控電路判斷該處理器是否成功載入並執行該選定韌體;如果不成功,該監控電路改變該指向功能,使該處理器重啓後載入並執行不同的選定韌體。
Description
本申請涉及一種電腦和適用該電腦的系統啓動方法,尤其涉及一種確保電腦能成功載入並執行韌體以啓動系統的方法。
目前,大部分中高端電腦的啓動韌體(BOOT Firmware)存放在外部的非揮發性記憶體,例如快閃記憶體(Flash Memory)中。系統上電或重啓後,處理器從快閃記憶體中讀取一啓動韌體並執行,使電腦可以啓動。
圖1是已知技術中的電腦100架構圖。在電腦100中,包括處理器110,通過電路102連接記憶體120。記憶體120中儲存有韌體(未圖示)。當電腦100啓動時,處理器110通過電路102從記憶體120中讀取固定的啓動韌體。因為故障修複或者功能增加等原因,有時啓動韌體需要升級。電腦100可通過外部接口(未圖示),例如網路接口等獲得新版本的啓動韌體,通過與記憶體120間的電路102進行一種線上升級。在此過程中,萬一出現斷電、系統異常、軟體缺陷等原因導致升級失敗,記憶體120啓動韌體將不能工作,電腦100也將失去功能。
為避免啓動韌體升級失敗導致系統癱瘓這種災難性事件的發生,現有一種啓動韌體備份方案是在電腦中配置有二片快閃記憶體,即電腦具有主板、處理器和二片快閃記憶體,處理器和二片快閃記憶體設置在主板上。並且主板上設置有切換電路和跳線帽,切換電路連接在處理器和二片快閃記憶體之間,跳線帽可插拔地設在主板上並連接該切換電路。跳線帽的位置變化可改變切換電路的配置,使處理器可通過切換電路電性連接至二片快閃記憶體的其中一個。當韌體升級失敗時,其中一個快閃記憶體不能工作,此時用戶可通過拔插跳線帽而轉換跳線帽的位置,使處理器可通過另一個快閃記憶體啓動,再把升級失敗的快閃記憶體再升級一次以恢復系統。現在還有一種啓動韌體備份方案是將上述跳線帽換為手撥開關。
上述兩種實現方案的缺點如下。
圖1所述的電腦100沒有考慮啓動韌體的備份,如果升級失敗了,必須打開系統外殼,用模擬器或其它輔助工具修復。或者將記憶體120從電腦100中取出,重新燒錄記憶體120中的韌體。所述操作極不便利,也不適合遠端操作和用戶機房等場合。這種具有兩片快閃記憶體的啓動韌體備份方案,不但需要操作人員手動干預,也不適合遠端操作和用戶機房等場合。因為要求操作人員熟悉晶片位置、跳線帽或手撥開關的位置,二種方法對用戶都不友好。也因為需要手動操作,二種方法的恢復效率都比較低,系統宕機時間比較長。
為了解決上述技術問題,本申請實施例提供一種可以確保電腦成功啓動的方法和該電腦。
在該電腦的一個具體實施例中,包括了至少下列組件。第一記憶體,配置為儲存第一韌體。第二記憶體,配置為儲存第二韌體。程控裝置,連接該第一記憶體和該第二記憶體,包括選擇器。該選擇器提供指向功能,用於選擇該第一記憶體的該第一韌體和該第二記憶體的該第二韌體的其中一個為選定韌體。處理器,連接該程控裝置,根據該指向功能,載入並執行該選定韌體。當該電腦啓動時,該程控裝置判斷該處理器是否成功載入並執行該選定韌體。如果不成功,該程控裝置改變該指向功能,以選擇該第一記憶體的該第一韌體或該第二記憶體的該第二韌體的另一個為該選定韌體,使該處理器重啓後載入並執行不同的該選定韌體。
在一個具體的實施方式中,該程控裝置還包括監控電路,該程控裝置被配置為通過該監控電路判斷該處理器是否成功載入並執行該選定韌體。當該電腦啓動時,該監控電路可開始計時。當該監控電路發出計時超時訊號,該監控電路可判斷該處理器沒有成功載入並執行該選定韌體。
在一個具體的實施方式中,該處理器和該程控裝置可通過一個晶片級匯流排(Inter-Integrated Chip; I2C)互相連接。
在一個具體的實施方式中,該處理器可包括一個重置(RESET)腳,用於觸發該處理器的重置。該程控裝置連接該重置腳。當一個重置訊號產生時,先由該程控裝置接收,再傳送至該重置腳,使該處理器重置。
在一個具體的實施方式中,當該處理器成功載入並執行該選定韌體後,可通過該程控裝置關閉該監控電路,然後載入作業系統和應用軟體。
在一個具體的實施方式中,該程控裝置可以是一種複雜可程式化邏輯裝置(Complex Programmable Logic Device; CPLD)。
在一個具體的實施方式中,該選擇器為晶片選擇選擇器,而該指向功能可以是一種晶片選擇訊號(Chip Select Signal)。
在一個具體的實施方式中,該第二記憶體的該第二韌體配置為默認的該選定韌體。當該電腦進行韌體升級時,該選擇器配置為默認的選擇該第二記憶體,使該處理器對該第二韌體進行升級。當該第二韌體升級完成後,該處理器重啓以載入並執行該第二韌體。當該程控裝置判斷該處理器沒有成功載入並執行該第二韌體時,該選擇器改變該指向功能以選擇該第一記憶體,使該處理器重啓後載入並執行該第一韌體。
在進一步的實施方式中,該程控裝置提供一種記錄失敗的功能,使電腦在重啓後知道前一次更新失敗,進而決定是否進行韌體還原。舉例來說,當該程控裝置判斷該處理器沒有成功載入並執行該第二韌體時,可生成一個失敗訊號。當該處理器重啓後,收到該失敗訊號,可選擇性地觸發一個用於還原該第二韌體的程序。
本申請的另一實施例是應用於該電腦的一種系統啓動方法,可確保電腦中的處理器可成功地載入並執行韌體。所述系統啓動方法可總結為以下步驟。在第一記憶體提供第一韌體,並在第二記憶體提供第二韌體。提供指向功能,用於選擇該第一記憶體的該第一韌體和該第二記憶體的該第二韌體的其中一個為選定韌體。接著,根據該指向功能的選擇結果,載入並執行該選定韌體。在啓動時,可判斷該選定韌體是否被成功載入並執行。如果判斷該選定韌體沒有被成功載入並執行,改變該指向功能,以選擇該第一記憶體的該第一韌體或該第二記憶體的該第二韌體的另一個為該選定韌體,重啓後載入並執行不同的該選定韌體。
在一個具體的實施方式中,當該電腦啓動時,可通過監控電路判斷該選定韌體是否被成功載入並執行。該監控電路可開始計時。當所述計時超時,監控電路發出計時超時訊號可判斷該處理器沒有成功載入並執行該選定韌體。
在一個具體的實施方式中,當判斷該選定韌體被成功載入並執行,可關閉該監控電路,然後載入作業系統和應用軟體。
在一個具體的實施方式中,該指向功能可以是一種晶片選擇訊號。
在一個具體的實施方式中,可默認地選擇該第二記憶體的該第二韌體為該選定韌體。當進行韌體升級時,默認地對該第二韌體進行升級。當該第二韌體升級完成後,重啓以載入並執行該第二韌體。當該第二韌體被判斷沒有被成功載入並執行時,改變該指向功能以選擇該第一記憶體,重啓後載入並執行該第一韌體。更進一步地說,當該第二韌體被判斷沒有被成功載入並執行時,可生成失敗訊號,用於在重啓後基於該失敗訊號觸發還原該第二韌體的程序。
與現有的啓動韌體快閃記憶體備份方案比較,本申請具有明顯優勢:
使用程控裝置,免除現場拆裝設備的問題。為韌體更新提供備援支持,即使更新失敗,仍能確保系統保持可啓動的狀態,以利後續還原修復工作。上述特徵,使整個升級和修復過程允許遠端操作。如果啓動韌體更新失敗,操作人員可以遠端恢復,不需借助工具,也不必去現場切換跳線帽或開關,操作方便,節省時間和人力物力。更進一步地,本申請提高了電腦的可靠性。如果啓動韌體更新失敗,無需人工干預,系統可以自動地從備份的啓動韌體啓動。避免了因為系統無法啓動而導致的災難性事件的發生。
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬本申請保護的範圍。
圖2是本申請實施例的一種電腦架構圖。電腦200包括處理器、程控裝置210、第一記憶體202和第二記憶體204。程控裝置210例如但不限於是複雜可程式化邏輯裝置(Complex Programmable Logic Device; CPLD),第一記憶體202和第二記憶體204,舉例來說,可以是但不限於是兩片快閃記憶體(FLASH Memory)。程控裝置210中包括一個選擇器212,而該第一記憶體202和第二記憶體204連接選擇器212。該第一記憶體202和第二記憶體204還進一步通過程控裝置210與處理器110連接。程控裝置210可根據切換訊號而使選擇器212切換為訊號連接第一記憶體202或訊號連接第二記憶體204,在此架構中,第一記憶體202和第二記憶體204的切換訊號是由程控裝置210處理,而第一記憶體202和第二記憶體204的其它訊號則是與處理器110直接相連。選擇器212的切換,舉例來說,可以是但不限於是由外部的切換器214控制。在一些實施例中,切換器214也可以是整合程控裝置210。切換器214可以通過外部輸入的訊號而產生對應的切換訊號,也可以通過處理器110控制而產生對應的切換訊號。在一些實施例中,切換器214整合於程控裝置210中。程控裝置210會通過切換器214來選擇從不同的快閃記憶體來啓動電腦200,再把升級失敗的快閃記憶體再升級一次以恢復系統。例如,選擇器212在預設情況下,可使處理器110訊號連接第一記憶體202並由第一記憶體202讀取出啓動韌體,以載入並執行電腦200的系統。在升級啓動韌體時,也是預設會先對第一記憶體202中的啓動韌體進行升級。程控裝置210可用於判斷啓動韌體是否成功升級或寫入至第一記憶體202,也就是判斷升級或寫入程序的完整性和正確性。程控裝置210也可以用於判斷處理器110是否成功載入或讀取第一記憶體202的啓動韌體,也就是判斷載入或讀取程序的完整性和正確性。當程控裝置210判斷啓動韌體升級失敗或載入失敗時,程控裝置210會通過切換器214改為從第二記憶體204載入啓動韌體來啓動電腦200。在一些實施例中,選擇器212的切換是通過晶片選擇機制(Chip Select),例如是一種使用可程式化邏輯裝置或選擇器晶片的晶片訊號切換選擇的機制。
圖3是本申請實施例的另一種電腦架構圖。本申請在程控裝置310中實作一種監控電路302。監控電路302可用於實現前述切換器的功能。通過程控裝置310的邏輯設計,彌補了常用啓動韌體快閃記憶體備份方案的缺陷。監控電路302的工作模式類似看門狗(Watchdog)機制,可以即時根據狀況反應,彈性實現晶片選擇機制。
處理器110和兩片快閃記憶體,即,第一記憶體202和第二記憶體204,通過程控裝置310連接。在本實施例中,僅說明程控裝置310處理第一記憶體202和第二記憶體204的晶片選擇通道的部份。至於第一記憶體202和第二記憶體204的其它訊號主要是由處理器110直接連接與處理,在本實例中不另外說明。程控裝置310中包括了一個選擇器312。程控裝置310中的監控電路302可以是一個具有計時功能的訊號產生器。默認的監控電路302時間超時值可根據系統啓動時間預先設定。當監控電路302的計時超時時,可輸出一個用於指示計時超時的訊號,使該程控裝置判斷有載入或啓動失敗的狀況,而進行對應處置。舉例來說,該監控電路302可以在計時超時時,直接輸出一個晶片選擇訊號#SL至選擇器312,使選擇器312改變原本第一晶片選擇通道CS0和第二晶片選擇通道CS1對應指向的第一記憶體202或第二記憶體204。監控電路302和處理器110之間通過一個控制匯流排304連接,可供處理器110控制監控電路302的開關。如果處理器110在載入執行韌體的過程中失敗而當機,不會通過控制匯流排304關閉監控電路302。此時監控電路302會因為等待過久而計時超時,並輸出晶片選擇訊號#SL。選擇器312收到晶片選擇訊號#SL後,會互換第一晶片選擇通道CS0和第二晶片選擇通道CS1的指向,使處理器改變了讀取到的快閃記憶體。
在本實施例中,電腦100是通過第一晶片選擇通道CS0和第二晶片選擇通道CS1連接第一記憶體202和第二記憶體204。由於處理器110的通用設計限制,在啓動時只會使用第一晶片選擇通道CS0來載入韌體。第一晶片選擇通道CS0和第二晶片選擇通道CS1的電路在經過程控裝置310時,使用了選擇器312來實作切換選擇的作用。舉例來說,在電腦300上電或重啓後,監控電路302可自動啓動,使第一晶片選擇通道CS0指向第二記憶體204,第二晶片選擇通道CS1指向第一記憶體202。監控電路302計時超時後,可發出一個晶片選擇訊號#SL給選擇器312,使第一晶片選擇通道CS0指向第一記憶體202,第二晶片選擇通道CS1指向第二記憶體204。
另外,在本實施例的程控裝置310中,原本用於發給處理器110的重置(reset)訊號,會先輸入到程控裝置310,再由程控裝置310控制輸出給處理器110。借此,程控裝置310可主動決定重置處理器110的時機,提供監控電路302和選擇器312足夠的時間來準備處理器110所需要的運作條件。
綜上所述,在圖3的電腦300具體實施例方式中,運用了至少下列組件。首先使用第一記憶體202來儲存第一韌體,第二記憶體204儲存第二韌體(未圖示)。電腦300中使用一個程控裝置310連接該第一記憶體202和該第二記憶體204。程控裝置310中包括選擇器312和監控電路。該選擇器312提供指向功能,用於選擇該第一記憶體202或該第二記憶體204為選定韌體。在本實施例中,該指向功能是一種晶片選擇(Chip Select)功能,即一種由邏輯電路產生高/低電平的訊號來實現的開關切換。借此,電腦300不再需要實體的開關機構,也不需要手動介入運作。
處理器110,連接該程控裝置310,通過選擇器312的指向功能,載入並執行該選定韌體。當該電腦300啓動時,由該監控電路302判斷該處理器110是否成功載入並執行該選定韌體。如果不成功,該監控電路302通過晶片選擇訊號#SL改變選擇器312的指向功能,使該處理器110重啓後載入並執行不同的選定韌體。
在一個具體的實施方式中,當該電腦300啓動時,該監控電路302可啓動一個計時功能。當該監控電路302的計時超時,或該處理器110超過時限沒有回報啓動成功時,則該監控電路302可判斷該處理器110沒有成功載入並執行該選定韌體。
在一個具體的實施方式中,該處理器110和該程控裝置310可通過一個控制匯流排304互相連接。
在一個具體的實施方式中,該處理器110可包括一個重置腳(未圖示),用於觸發該處理器110的重置。該程控裝置310可通過一個重置匯流排306連接處理器110的重置腳。當電腦300中有一個重置訊號#RST產生時,可先由該程控裝置310接收該重置訊號#RST,再通過該重置匯流排306送至處理器110,使該處理器110重置。另一方面,程控裝置310也可以在需要重置處理器110時,主動產生重置訊號#RST,再通過該重置匯流排306送至處理器110,使該處理器110重置。
在一個具體的實施方式中,當該處理器110成功載入並執行該選定韌體後,可通過所述控制匯流排304關閉該監控電路302。另一個做法是,當該處理器110成功載入並執行該選定韌體後,通過所述控制匯流排304回報給該監控電路302一個啓動成功的訊號,使監控電路302不再計時,以避免計時超時。該監控電路302被關閉或停止計時後,處理器110可以繼續載入作業系統和應用軟體,使電腦300進入正常運作。
在一個具體的實施方式中,該程控裝置310可以是一種複雜可程式化邏輯裝置CPLD。
圖3所述的架構尤其適合應用在需要遠端韌體升級的場合中。當該電腦300進行韌體升級時,該指向功能可配置為該第二記憶體204,使該處理器110對該第二韌體進行升級。當該第二韌體升級完成後,該處理器110重啓以載入並執行該第二韌體。當該監控電路302判斷該處理器110沒有成功載入並執行該第二韌體時,可改變該指向功能為該第一記憶體202,使該處理器110重啓後載入並執行該第一韌體。
在進一步的實施方式中,該監控電路302提供一種記錄失敗的功能,使電腦300在重啓後知道前一次更新失敗,進而決定是否進行韌體還原。舉例來說,當該監控電路302判斷該處理器110沒有成功載入並執行該第二韌體時,可生成一個失敗訊號。當該處理器110重啓後,先是以第一韌體正常的開機。接著通過控制匯流排304從監控電路302收到該失敗訊號,得知前一次升級失敗。如果第一韌體中配置有一個自動還原韌體的功能,可選擇性地觸發,以進行還原該第二韌體的程序。關於還原的方式,可以是從第一記憶體中複製第一韌體至第二記憶體中,或是從其他用戶自訂的備份地址讀取還原用的文件,再寫入該第二記憶體中。
本申請所提出的電腦300,可以是以處理器110和韌體為基礎所實現的任何應用設備,可包括但不限定於服務器、交換機、嵌入式系統,網絡監視器,網路儲存系統,或物聯網設備。尤其適合難以人力到場維護,經常需要遠端控制的設備。本申請實施例中雖然沒有明確說明,但是電腦300中可包括運作必要的其他組件,例如通信模組,網絡接口,人機界面,及儲存系統等。詳細功能與架構不在本申請限定範圍。
圖4是本申請實施例的電腦300啓動方法流程圖。基於圖3的電腦300,操作流程可以簡單總結為下列幾個步驟。首先在步驟401中,啓動電腦300。在步驟403中,當該電腦300上電或重啓後,由程控裝置310將一個重置訊號#RST通過重置匯流排306輸送給處理器110,同時使監控電路302啓動。此時選擇器312中的指向功能,依照原廠設定或客制設定,使第一晶片選擇通道CS0指向第二記憶體204,第二晶片選擇通道CS1指向第一記憶體202。在步驟405中,處理器110從第二記憶體204中讀取啓動韌體然後啓動。在步驟407中,判斷啓動是否成功。在本實施例中,啓動成功的判斷,對監控電路302而言基本上是一個計時等待的過程。如果處理器110啓動成功,監控電路302會在步驟413中被關閉。換句話說,如果處理器110成功地載入執行了韌體,會通過控制匯流排304發出一個命令關閉了監控電路302,或是發出一命令使監控電路302停止計時。相對地,如果處理器110載入韌體後的執行狀態出了問題,監控電路302不會收到任何命令,最後發生計時超時。當計時超時時,即可判定為啓動失敗,而進行步驟409。
在步驟409中,因監控電路302的計時超時,確定啓動失敗。監控電路302通過晶片選擇訊號#SL通知選擇器312,使選擇器312中的選擇倒轉,即第一晶片選擇通道CS0指向第一記憶體202, 第二晶片選擇通道CS1指向第二記憶體204。同時,程控裝置310再次通過重置匯流排306輸出重置訊號#RST給處理器110,迫使處理器110重啓。在步驟411中,重啓後的處理器110,根據選擇器312的指向,從第一記憶體202讀取啓動韌體並啓動。當處理器110成功地載入第一記憶體202並執行後,會進步驟413,關閉監控電路302。接著,處理器110可進行步驟415,正常載入作業系統和應用軟體。
本申請的啓動方法,在系統升級時,尤其能保障電腦300的正常運作。在一種實施方式中,升級啓動韌體時,默認的預設原則可以是固定只針對第二記憶體204進行文件更新。如此,萬一升級失敗,電腦300還能退一步從第一記憶體202啓動,除了保留基本運作的功能,也保留了恢復第二記憶體204,或再次升級第二記憶體204的機會。
在一些實施例中,處理器110和程控裝置310之間可通過一根I2C匯流排互連,方便系統讀取啓動原因、監控電路302等狀態信息,以及關閉監控電路302等操作。例如控制匯流排304為I2C匯流排。在一些實施例中,控制匯流排304也可以是SPI匯流排或並行匯流排。在進一步的實作方式中,也可以應用不同種類的匯流排,來實現處理器110和程控裝置310的連接。
在進一步的實施例中,每次電腦300啓動成功後,選擇器312的指向設定可被儲存起來,做為下次啓動的參考。儲存的設定可運用電腦300中既有的非揮發式記憶體裝置,例如第一記憶體或第二記憶體中的剩餘空間,或是由程控裝置310本身內建的非揮發式記憶體。
在進一步的實施例中,監控電路302的計時超時臨界值是可以通過軟體改變的。舉例來說,所述臨界值可在設定後儲存在程控裝置310中,供監控電路302開啓時即時配置。
在進一步的實施例中,選擇器312的指向設定不止是可以通過監控電路302的晶片選擇訊號#SL而改變,也可以通過軟體改變。
與現有的啓動韌體快閃記憶體備份方案比較,本申請具有明顯優勢:一是支持遠端操作。如果啓動韌體更新失敗,操作人員可以遠端恢復,不需借助工具,也不必去現場切換跳線帽或開關,操作方便,節省時間和人力物力。另一可靠性高,如果啓動韌體更新失敗,無需人工干預,系統可以自動地從備份的啓動韌體啓動。避免了因為系統無法啓動而導致的災難性事件的發生。
需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上面結合附圖對本申請的實施例進行了描述,但是本申請並不局限於上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本申請的啓示下,在不脫離本申請宗旨和請求項所保護的範圍情況下,還可做出很多形式,均屬本申請的保護之內。
100:電腦110:處理器
120:記憶體102:電路
200:電腦202:第一記憶體
204:第二記憶體210:程控裝置
212:選擇器214:切換器
CS0:第一晶片選擇通道CS1:第二晶片選擇通道
#SL:晶片選擇訊號300:電腦
302:監控電路304:控制匯流排
306:重置匯流排310:程控裝置
312:選擇器#RST:重置訊號
401~415:步驟
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中:
圖1是已知技術中的電腦架構圖。
圖2是本申請實施例的一種電腦架構圖。
圖3是本申請實施例的另一種電腦架構圖。
圖4是本申請實施例的系統啓動方法流程圖。
200:電腦
202:第一記憶體
204:第二記憶體
210:程控裝置
212:選擇器
214:切換器
CS0:第一晶片選擇通道
CS1:第二晶片選擇通道
110:處理器
Claims (11)
- 一種電腦,其中包括:一第一記憶體,配置為儲存一第一韌體;一第二記憶體,配置為儲存一第二韌體;一程控裝置,連接該第一記憶體和該第二記憶體,包括一選擇器以及一監控電路;其中該選擇器提供一指向功能,用於選擇該第一記憶體的該第一韌體和該第二記憶體的該第二韌體的其中一個為一選定韌體;及一處理器,連接該程控裝置,根據該指向功能,載入並執行該選定韌體;其中:該程控裝置被配置為通過該監控電路判斷該處理器是否成功載入並執行該選定韌體;當該電腦啟動時,該監控電路開始計時;當該監控電路的計時超時,發出一計時超時訊號;根據該計時超時訊號,該程控裝置判斷該處理器沒有成功載入並執行該選定韌體,該程控裝置改變該指向功能,以選擇該第一記憶體的該第一韌體或該第二記憶體的該第二韌體的另一個為該選定韌體,使該處理器重啟後載入並執行不同的該選定韌體。
- 如請求項1所述的電腦,其中:當該處理器成功載入並執行該選定韌體,通過晶片級匯流排關閉該監控電路,然後載入作業系統和應用軟體。
- 如請求項1所述的電腦,其中:該處理器包括一重置腳,該重置腳用於使該處理器觸發重置;該程控裝置連接該重置腳;及 該程控裝置接收或產生一重置訊號,並傳送該重置訊號至該重置腳,使該處理器重置。
- 如請求項1所述的電腦,其中:該選擇器為一晶片選擇選擇器,該指向功能是一晶片選擇訊號。
- 如請求項1所述的電腦,其中:該第二記憶體的該第二韌體配置為默認的該選定韌體,當該電腦進行韌體升級時,該選擇器配置為默認地選擇該第二記憶體,使該處理器對該第二韌體進行升級;當該第二韌體升級完成後,該處理器重啟以載入並執行該第二韌體;及當該程控裝置判斷該處理器沒有成功載入並執行該第二韌體時,該選擇器改變該指向功能以選擇該第一記憶體,使該處理器重啟後載入並執行該第一韌體。
- 如請求項5所述的電腦,其中:當該程控裝置判斷該處理器沒有成功載入並執行該第二韌體時,生成一失敗訊號,該處理器重啟後收到該失敗訊號而觸發一還原該第二韌體的程序。
- 一種系統啟動方法,其中包括:在一第一記憶體提供一第一韌體;在一第二記憶體提供一第二韌體;提供一指向功能,用於選擇該第一記憶體的該第一韌體和該第二記憶體的該第二韌體的其中一個為選定韌體;根據該指向功能的選擇結果,載入並執行該選定韌體;通過一監控電路判斷該選定韌體是否被成功載入並執行; 啟動時,使該監控電路開始計時;當所述計時超時,該監控電路發出一計時超時訊號,該計時超時訊號用於判斷該選定韌體沒有被成功載入並執行;及如果判斷該選定韌體沒有被成功載入並執行,改變該指向功能,以選擇該第一記憶體的該第一韌體或該第二記憶體的該第二韌體的另一個為該選定韌體,重啟後載入並執行不同的該選定韌體。
- 如請求項7所述的系統啟動方法,其中還包括:當判斷該選定韌體被成功載入並執行,關閉該監控電路,然後載入一作業系統和一應用軟體。
- 如請求項7所述的系統啟動方法,其中:該指向功能是一晶片選擇訊號。
- 如請求項7所述的系統啟動方法,其中還包括:默認選擇該第二記憶體的該第二韌體為該選定韌體,當進行韌體升級時,默認對該第二韌體進行升級;當該第二韌體升級完成後重啟以載入並執行該第二韌體;及當判斷該第二韌體沒有被成功載入並執行時,改變該指向功能以選擇該第一記憶體,重啟後載入並執行該第一韌體。
- 如請求項10所述的系統啟動方法,其中還包括:當判斷該第二韌體沒有被成功載入並執行時,生成一失敗訊號,用於在重啟後基於該失敗訊號觸發一還原該第二韌體的程序。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111001644.9 | 2021-08-30 | ||
| CN202111001644.9A CN114090107A (zh) | 2021-08-30 | 2021-08-30 | 计算机和系统启动方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202207027A TW202207027A (zh) | 2022-02-16 |
| TWI786871B true TWI786871B (zh) | 2022-12-11 |
Family
ID=80296128
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110137232A TWI786871B (zh) | 2021-08-30 | 2021-10-06 | 電腦和系統啓動方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20230060908A1 (zh) |
| JP (1) | JP2023035930A (zh) |
| CN (1) | CN114090107A (zh) |
| TW (1) | TWI786871B (zh) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20230139262A (ko) * | 2022-03-25 | 2023-10-05 | 삼성전자주식회사 | 시스템 부팅을 위한 컨트롤러를 포함하는 전자 장치 및 그의 동작 방법 |
| CN118974700A (zh) | 2022-03-25 | 2024-11-15 | 三星电子株式会社 | 包括用于系统启动的控制器的电子装置及其操作方法 |
| US11984175B2 (en) * | 2022-05-25 | 2024-05-14 | Advanced Micro Devices, Inc. | Automatic mirrored ROM |
| CN115904229B (zh) * | 2022-10-25 | 2025-07-04 | 苏州浪潮智能科技有限公司 | 存储服务器、多存储服务器系统及存储服务器的切换方法 |
| US12470055B2 (en) * | 2022-11-23 | 2025-11-11 | Abb Schweiz Ag | Downloadable firmware for programmable circuit breakers |
| TWI836901B (zh) * | 2023-02-14 | 2024-03-21 | 新唐科技股份有限公司 | 保持系統安全性之韌體切換方法以及其使用之電子設備 |
| US12450115B2 (en) * | 2023-06-21 | 2025-10-21 | Micron Technology, Inc. | Bootloader failure analysis of memory system |
| US20250094177A1 (en) * | 2023-09-15 | 2025-03-20 | Microsoft Technology Licensing, Llc | Firmware access agent for computing device |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201706837A (zh) * | 2015-08-13 | 2017-02-16 | 廣達電腦股份有限公司 | 電腦系統 |
| TW201935409A (zh) * | 2017-04-24 | 2019-09-01 | 美商英特爾股份有限公司 | 計算最佳化機制 |
| TWI682271B (zh) * | 2018-11-28 | 2020-01-11 | 英業達股份有限公司 | 伺服器系統 |
| CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
| US20200348946A1 (en) * | 2019-05-01 | 2020-11-05 | Dell Products L.P. | Information Handling System (IHS) And Method To Proactively Restore Firmware Components To A Computer Readable Storage Device Of An IHS |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6931519B1 (en) * | 2000-08-25 | 2005-08-16 | Sun Microsystems, Inc. | Method and apparatus for reliable booting device |
| JP2003316582A (ja) * | 2002-04-24 | 2003-11-07 | Nec System Technologies Ltd | 2重化biosの制御方法と装置 |
| CN1323361C (zh) * | 2003-06-14 | 2007-06-27 | 中兴通讯股份有限公司 | 一种使用多个启动程序存储器的处理器系统及其启动方法 |
| JP5012017B2 (ja) * | 2006-12-28 | 2012-08-29 | 富士通株式会社 | 組込装置および制御方法 |
| CN101169728A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 双引导启动装置及方法 |
| TWI355608B (en) * | 2008-01-30 | 2012-01-01 | Inventec Corp | Computer system with dual basic input output syste |
| TWI411959B (zh) * | 2008-03-21 | 2013-10-11 | Asustek Comp Inc | 具雙開機程式碼區之電腦系統及其啟動方法 |
| JP5431111B2 (ja) * | 2009-10-22 | 2014-03-05 | 株式会社日立製作所 | 情報処理装置及びシステム設定方法 |
| CN102906710B (zh) * | 2011-08-30 | 2015-07-29 | 华为技术有限公司 | 一种BootRom备份方法和装置 |
| CN103186393A (zh) * | 2011-12-30 | 2013-07-03 | 鸿富锦精密工业(深圳)有限公司 | 具有基板管理控制器固件的电子装置及固件加载方法 |
| JP2014089497A (ja) * | 2012-10-29 | 2014-05-15 | Mitsubishi Electric Corp | 情報処理装置 |
| KR101707266B1 (ko) * | 2013-08-29 | 2017-02-15 | 엘에스산전 주식회사 | Plc에서의 os의 업데이트 장치 및 방법 |
| JP6480751B2 (ja) * | 2015-02-18 | 2019-03-13 | パナソニック株式会社 | アレイアンテナ装置 |
| US11704197B2 (en) * | 2019-10-22 | 2023-07-18 | Ncr Corporation | Basic input/output system (BIOS) device management |
| CN113032788A (zh) * | 2021-03-24 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种计算机系统中的固件镜像切换方法、装置及介质 |
-
2021
- 2021-08-30 CN CN202111001644.9A patent/CN114090107A/zh active Pending
- 2021-10-06 TW TW110137232A patent/TWI786871B/zh not_active IP Right Cessation
-
2022
- 2022-08-18 US US17/890,865 patent/US20230060908A1/en not_active Abandoned
- 2022-08-23 JP JP2022132409A patent/JP2023035930A/ja active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201706837A (zh) * | 2015-08-13 | 2017-02-16 | 廣達電腦股份有限公司 | 電腦系統 |
| TW201935409A (zh) * | 2017-04-24 | 2019-09-01 | 美商英特爾股份有限公司 | 計算最佳化機制 |
| TWI682271B (zh) * | 2018-11-28 | 2020-01-11 | 英業達股份有限公司 | 伺服器系統 |
| US20200348946A1 (en) * | 2019-05-01 | 2020-11-05 | Dell Products L.P. | Information Handling System (IHS) And Method To Proactively Restore Firmware Components To A Computer Readable Storage Device Of An IHS |
| CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230060908A1 (en) | 2023-03-02 |
| TW202207027A (zh) | 2022-02-16 |
| JP2023035930A (ja) | 2023-03-13 |
| CN114090107A (zh) | 2022-02-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI786871B (zh) | 電腦和系統啓動方法 | |
| US8930931B2 (en) | Information processing apparatus using updated firmware and system setting method | |
| TWI633487B (zh) | 自動回復基本輸入輸出系統映像檔的方法及電腦系統 | |
| TWI386847B (zh) | 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置 | |
| KR100952585B1 (ko) | 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법 | |
| CN101329632B (zh) | 一种使用boot启动cpu的方法与装置 | |
| TWI467375B (zh) | 具有修復毀損bios資料功能之電腦系統及其修復方法 | |
| CN108304282B (zh) | 一种双bios的控制方法及相关装置 | |
| CN100492305C (zh) | 一种计算机系统的快速恢复方法及设备 | |
| CN105653405B (zh) | 一种通用引导程序的故障处理方法及系统 | |
| US7194614B2 (en) | Boot swap method for multiple processor computer systems | |
| TWI808362B (zh) | 可自我監視及恢復作業系統運作的電腦系統及方法 | |
| CN100395713C (zh) | 自动修复基本输入输出系统元件的方法与模块 | |
| CN113360347A (zh) | 一种服务器及其控制方法 | |
| CN101799778A (zh) | 具有自动重置的计算机装置及自动重置方法 | |
| CN111240753A (zh) | 引导程序的加载方法、存储介质及嵌入式终端 | |
| CN110119330A (zh) | 云备份bios文件自动还原服务器biosrom方法 | |
| CN101739315A (zh) | 自动启动备份韧件的系统与方法 | |
| JPH117382A (ja) | ファームウェアのバージョンアップ方法 | |
| WO2011158367A1 (ja) | 実行中のプログラムの更新技術 | |
| WO2025246557A1 (zh) | 服务器的重启方法、装置、存储介质及服务器 | |
| KR20130075807A (ko) | 백업 하드디스크 드라이브가 구비된 금융자동화기기 및 금융자동화기기의 부팅 방법 | |
| CN116737185A (zh) | 一种镜像加载方法、装置、设备及介质 | |
| CN100394392C (zh) | 计算机程序还原模式自动启动控制方法及系统 | |
| JP6911591B2 (ja) | 情報処理装置、制御装置および情報処理装置の制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |