TWI784526B - 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片 - Google Patents

預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片 Download PDF

Info

Publication number
TWI784526B
TWI784526B TW110117844A TW110117844A TWI784526B TW I784526 B TWI784526 B TW I784526B TW 110117844 A TW110117844 A TW 110117844A TW 110117844 A TW110117844 A TW 110117844A TW I784526 B TWI784526 B TW I784526B
Authority
TW
Taiwan
Prior art keywords
setting
bios
settings
routine
configuration
Prior art date
Application number
TW110117844A
Other languages
English (en)
Other versions
TW202234239A (zh
Inventor
周永豐
廖國鈞
洪震安
王美珍
Original Assignee
廣達電腦股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 廣達電腦股份有限公司 filed Critical 廣達電腦股份有限公司
Publication of TW202234239A publication Critical patent/TW202234239A/zh
Application granted granted Critical
Publication of TWI784526B publication Critical patent/TWI784526B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在電腦系統中,預防看門狗超時開始之後停機的一種系統及方法。啟動常式(start-up routine)經由基本輸入輸出系統(basic input output system;BIOS)而執行。啟動常式套用硬體元件之設定。看門狗計時器(watch dog timer)會被判斷是否於先前啟動常式執行期間超時而觸發重新啟動。若看門狗計時器觸發重新啟動,系統檢查儲存每一複數個硬體元件之設定的資料庫,以取得硬體元件之適當的設定。系統為硬體元件從資料庫套用設定。

Description

預防於開機自我檢測常式中因錯誤的BIOS設定所造成停機的方法、系統及BIOS晶片
本揭露廣泛地涉及運算裝置的作業可靠性(operating reliability),更特別涉及預防於開機自我檢測(power-on self-test;POST)常式(routine)期間,因錯誤的基本輸入輸出系統(basic input output system;BIOS)設定而停機(hang-up)的一種系統。
伺服器被大量地運用在高需求應用中,像是基於網路的系統或資料中心。雲端運算運用的出現,增加了對於資料中心的需求。資料中心擁有許多伺服器,儲存資料並執行遠端連線的電腦裝置使用者所存取的應用。典型的資料中心具有物理的機架(rack)結構,伴隨著電力與通訊的連接。每一機架可承受多個運算伺服器及儲存伺服器。每一伺服器通常包含硬體元件,像是處理器、記憶體裝置、網路介面卡、電源供應,及其他專用硬體。每一伺服器通常包含基板管理控制器(baseboard management controller;BMC),管理伺服器的運作,以及將運算數據傳達至管理機架之伺服器的中央管理站。
典型的伺服器具有處理單元,處理單元可具有多個供運算作業的核心(cores)。這些核心是由作業系統所執行,以與其他伺服器內的硬體元件進行溝通。作業系統的其中一項功能,是判別出於啟動期間指示硬體元件故障的錯誤。作業系統是透過基本輸入輸出系統(basic input output system;BIOS)所啟動。BIOS通常是以安裝在伺服器之主機板上的硬體晶片所提供。BIOS執行開機自我檢測(power-on self-test;POST)常式(routine),當系統啟動時,POST檢查伺服器之硬體元件的狀態。為了預防系統當機卡死,看門狗計時器(watch dog timer)可被包含為部分的BIOS。看門狗計時器倒數計時,若它沒有週期性地重置,則會重新啟動BIOS。當看門狗計時器重置,則表示系統已成功啟動並且運作中。
於開機自我檢測(POST)常式期間,BIOS會參考儲存在韌體中的設定,以初始化運算系統之硬體元件。若是使用了不恰當的BIOS設定以初始化運算系統之任何硬體元件,則運算系統可能會在BIOS POST常式期間停機(hang-up),而無法成功啟動。舉例來說,對於快捷周邊元件互連介面(peripheral component interconnect express;PCIe)卡的BIOS設定,可以是介面卡與基址暫存器(base address register)之間的記憶體映射關係。現有的BIOS晶片並無提供任何方法以預防系統在BIOS使用不恰當的設定時停機。舉例來說,若沒有適當安排BIOS PCIe記憶體資源,則BIOS將會停機。當BIOS POST超過了看門狗計時器的時間,看門狗計時器會重新啟動系統。於是,當系統繼續運作,提供看門狗超時(watch-dog timeout),並將錯誤設定相關資料保存在BMC所儲存的系統錯誤日誌(system error log)中。BIOS不會嘗試啟動系統,且在系統成功啟動之前,必須鑑別出錯誤的設定並套用正確的設定。
舉例來說,運算系統可具有PCIe擴充卡,伴隨圖形處理單元(graphic processing unit;GPU)。於是,在啟動期間,BIOS需要為PCIe擴充卡設定適當的記憶體對映輸入輸出(memory mapped input/output;MMIO)大小,及適當的基址暫存器設定。在GPU的案例中,GPU需要適當的MMIO,以儲存其韌體並初始化GPU擴充卡。若BIOS無法提供適當的MMIO大小及基址暫存器設定,則系統會在BIOS POST常式期間停機。另一範例可能是當擴充卡的某個功能需要大於MMIO大小的記憶體時,而因此導致停機。
在此案例中,一旦發生停機,使用者可拔出GPU擴充卡,並藉由為GPU擴充卡輸入正確的設定,以嘗試找出系統停機的根本原因。當運算系統僅具有單獨一張擴充卡,對於使用者而言,要為這張單獨的擴充卡找出正確的BIOS設定,並不複雜。然而,目前的伺服器設計是具有多張擴充卡及其他的裝置,像是專用處理器、非揮發性記憶體規範(Non-Volatile Memory Express;NVMe)裝置,及容錯式廉價磁碟陣列(redundant array of inexpensive disks;RAID)裝置。因此,對於使用者而言,要為特定的出錯裝置找出適當的BIOS設定通常是非常困難的,因為可能會有多個裝置的設定,而其中任何裝置都可能有不恰當的設定。
因此,需要有一種機制,能在初次啟動引發看門口超時的時候,使啟動常式(start-up routine)得以為附加的裝置使用適當的BIOS設定,以預防系統停機。也需要有一種系統常式(system routine)的指定,得以檢查系統組態,並將組態不正確的裝置停用,以預防系統停機。又需要有一種系統,包含資料庫以儲存先前的組態設定,而得以在系統於POST期間停機之後,判別出適當的組態。
「實施例」一詞及類似的詞彙旨在廣泛地指代本發明及以下請求項的所有申請標的。包含這些詞彙的陳述不應被理解為限制在此所述的申請標的或限制以下的請求項的含義或範圍。在此所涵蓋的本揭露之實施例,是由以下的請求項而非本發明內容所限定。本發明內容是本揭露之各方面的高階綜述,並且介紹了一些概念,這些概念在以下實施方式的段落中會進一步描述。本發明內容並不旨在標識出所請求的申請標的之必要特徵,也不旨在單獨用於決定所請求的申請標的之範圍。藉由參考本發明的整個說明書的適當部分、任何或所有的圖式,以及每個請求項,應當理解本申請標的。
所揭露的範例是一種容許停機後再啟動的系統,停機係不恰當的硬體設定所造成,該系統包含:BIOS,執行啟動常式(start-up routine),啟動常式套用硬體元件之設定;複數個硬體元件,每一硬體元件需要BIOS所套用適當的設定以運作;資料庫,儲存每一該硬體元件之設定;看門狗計時器(watch dog timer),在啟動常式期間觸發重新啟動;在重新啟動期間,當看門狗計時器觸發重新啟動,啟動常式存取資料庫,以取得至少一硬體元件之適當的設定。
在本範例系統之一實施例中,資料庫是被儲存在BIOS所能存取的記憶體裝置上。在另一實施例中,運算裝置為伺服器。在另一實施例中,若在資料庫中找不到適當的設定,BIOS停用至少一硬體元件。在另一實施例中,BIOS觸發警報信號(alert),表示複數個硬體元件之設定已改變。在另一實施例中,複數個硬體元件為快捷周邊元件互連介面(peripheral component interconnect express;PCIe)裝置。在另一實施例中,設定包含記憶體對映輸入輸出(memory mapped input/output;MMIO)大小,及基址暫存器(base address register)設定。在另一實施例中,資料庫包含組態檔案,組態檔案包含每一硬體元件之設定,及BIOS設定。在另一實施例中,當設定改變時,新組態檔案被創建出來。當存取資料庫時,啟動常式首先檢查最近的組態檔案。
所揭露的另一範例是一種容許系統停機後再啟動的方法,包含:經由BIOS執行啟動常式,啟動常式套用複數個硬體元件之設定;判斷看門狗計時器(watch dog timer)是否從先前該啟動常式執行時的超時觸發重新啟動;若看門狗計時器觸發重新啟動,檢查儲存每一硬體元件之設定的資料庫,以取得至少一硬體元件之適當的設定;以及為至少一硬體元件從資料庫套用設定。
在本範例方法之一實施例中,資料庫是被儲存在BIOS所能存取的記憶體裝置上。在另一實施例中,運算裝置為伺服器。在另一實施例中,該方法更包含若在資料庫中找不到適當的設定,停用至少一硬體元件。在另一實施例中,該方法更包含觸發警報信號(alert),表示設定已改變。在另一實施例中,複數個硬體元件為快捷周邊元件互連介面(peripheral component interconnect express;PCIe)裝置。在另一實施例中,設定包含適當的記憶體對映輸入輸出(memory mapped input/output;MMIO)大小,及基址暫存器(base address register)設定。在另一實施例中,資料庫包含組態檔案,組態檔案包含每一硬體元件之設定,及BIOS設定。在另一實施例中,該方法更包含當設定改變時,創建新組態檔案;以及當存取該資料庫時,首先檢查最近的組態檔案。
所揭露的另一範例是一種用於電腦系統的基本輸入輸出系統(basic input output system;BIOS)晶片。該BIOS晶片包含處理器所執行的指令,以運作:執行啟動常式(start-up routine),啟動常式套用電腦系統的複數個硬體元件之設定;判斷看門狗計時器(watch dog timer)是否於先前啟動常式執行期間超時而觸發重新啟動;若看門狗計時器觸發重新啟動,檢查儲存每一硬體元件之設定的資料庫,以取得至少一硬體元件之適當的設定;以及為至少一硬體元件,從資料庫套用設定。
本發明可以許多不同的形式所實施。代表性的實施例被圖式所顯示,並將在此被詳細地敘述。本揭露為本發明的原則之範例或圖解,且並非意圖將本揭露之廣泛的觀點限制於繪式的實施例。在此基礎上,例如在摘要、發明內容及實施方式等段落中被揭露,但並未明確地在請求項中列舉的元件及限制,不應被單獨地、集體地、暗示地、推論地或其他方式地併入至請求項中。為了本詳細敘述之目的,除非被具體地否認,否則單數形包含複數形,反之亦然;且「包含」一詞意指「無限制地包含」。此外,表近似的詞彙,例如「約」、「幾乎」、「大體上」、「大概」及類似的詞彙,能在此被用來意指「在」、「近」、「近於」、「3-5%的範圍內」或「可接受的製造公差內」,或者其任何的邏輯組合。
本揭露直指一種常式(routine),該常式為硬體裝置決定適當的BIOS設定,以預防電腦系統中的啟動常式之停機(hang up)。首先,若系統在執行開機自我檢測(POST)常式時停機,將會出現看門狗超時並重新啟動系統。當重新啟動後,範例常式會為硬體裝置檢查系統組態設定。接著,範例常式從資料庫提供適當的BIOS設定給硬體裝置,以預防系統在重新啟動後停機。
此資料庫式儲存在BIOS可存取的記憶體中,並儲存像是「平台PCIe組態」及「BIOS設定」之類的裝置設定。資料庫提供看門狗超時隨後重啟的復原方法之基礎。啟動常式對資料庫進行存取以提供適當的設定,以避免對硬體裝置(像是系統上的PCIe卡)使用不正確的BIOS設定。
第1圖是電腦系統100之元件的方塊圖,其中電腦系統100執行一常式,以預防前一次停機所觸發的看門狗計時器所設定的看門狗計時器旗標被設定之後停機。當看門狗超時後重新啟動時,電腦系統100會從資料庫讀取硬體裝置之正確的組態設定,或者是停用那部硬體裝置,因而得以避免電腦系統100在任何一種案例中停機及重啟。
範例的電腦系統100包含中央處理單元(CPU)110、基本輸入/輸出系統(BIOS)112、基板管理裝置(BMC)114,及一系列擴充槽116。在本範例中,BMC 114存取像是電子抹除式可複寫唯讀記憶體(EEPROM)之類的記憶體裝置,儲存帶有先前組態設定的資料庫120。在本範例中,電腦系統100可以是帶有處理器、作業系統以及需要適當的設定以運作的硬體元件的任何裝置,像是伺服器、儲存系統、開關、路由器之類。在本範例中,CPU 110包含看門狗計時器122,若看門狗計時器122達到一既定時間,會重新啟動電腦系統100之運作。看門狗計時器122可由電腦系統100上的其他控制器所實作。
BMC 114耦接至儲存BMC韌體的非揮發性記憶體,像是EEPROM。在本範例中,非揮發性記憶體可以是快閃記憶體,但可使用任何適用的非揮發性記憶體。BIOS 112是在電腦系統100啟動後,於啟動程序中所使用的韌體。在本範例中,BIOS 112可以是自舉處理器核心(bootstrap processor core)可存取的晶片,其中自舉處理器核心是部分的CPU 110。BIOS 112包含當硬體元件被初始化為電腦系統之部分的啟動程序時,將設定套用至這種硬體元件的常式。在本範例中,BIOS 112包含初始的開機自我檢測(POST)常式,該POST常式可以是部分的BIOS統一可延伸韌體介面(Unified Extensible Firmware Interface;UEFI)程序,像是可延伸韌體介面預備環境(Pre-EFI initialization environment;PEI),或是驅動程式執行環境(Driver Execution Environment;DXE)。
擴充槽116可以是帶有符合PCIe標準的適當連接器的PCIe擴充槽。在本範例中,不同的PCIe裝置130a、130b、130c、130d及130e被***擴充槽116中。每一PCIe裝置130a-130e具有必須被BIOS 112所套用以正確運作的組態設定。舉例來說,PCIe裝置可包含擴充卡,像是網路介面卡(Network Interface Cards;NIC)、容錯式廉價磁碟陣列(redundant array of inexpensive disks;RAID)卡、場域可程式化邏輯閘陣列(field programmable gate array;FPGA)卡、固態磁碟(solid state drive;SSD)卡、雙列直插式記憶體(dual in-line memory)、通用圖形處理單元(graphic processing unit;GPU)卡,及非揮發性記憶體規範(Non-Volatile Memory Express;NVMe)卡。
每一不同類型的PCIe裝置具有PCIe裝置正確運作所需之專門的設定。舉例來說,在PCIe卡的案例中,BIOS 112設定為PCIe擴充卡設定適當的記憶體對映輸入輸出(memory mapped input/output;MMIO)大小,及適當的基址暫存器(base address register)設定。具體而言,在GPU PCIe擴充卡的範例中,GPU需要適當的MMIO以儲存韌體及初始化GPU擴充卡。
其他需要適當設定的硬體元件之範例,可包含容錯式廉價磁碟陣列(RAID)裝置、場域可程式化邏輯閘陣列(FPGA)、電源供應單元(power supply units;PSU)、硬式磁碟(hard disk drives;HDD)、固態磁碟(SSD)、雙列直插式記憶體模組(dual in-line memory module;DIMM)、中央處理單元(CPU)及圖形處理單元(GPU)。
範例的電腦系統100具有一種常式,該常式包含對於導致BIOS POST常式停機的看門狗超時之偵測機制。若前一次的嘗試開機使看門狗計時器112發生看門狗超時,則範例常式會對當下的系統組態與電腦系統100前一次啟動成功時的系統組態進行比對。若比對結果顯示系統組態有改變,則BIOS常式會檢查資料庫120,以尋找一般而言關於硬體元件之適當的PCIe組態,及關於BIOS之適當的BIOS設定。舉例來說,在取得全部所需的PCIe記憶體資源後,BIOS會需要為每一PCIe裝置安排記憶體資源。若保留的記憶體資源不足以滿足當下的硬體組態,BIOS會重新啟動並嘗試重新分派與重新安排記憶體資源,直到記憶體資源已充足為止。若重新啟動時,這種重新分派與重新安排失敗,則可能發生停機。
若常式找出了資料庫120中的適當設定,則該適當設定會被套用。在系統從資料庫120套用適當的設定及組態後,系統可繼續POST常式,而免於停機。接著,常式透過警報信號(alert)通知使用者BIOS設定已改變。再來,系統會以PCIe裝置之當下的組態設定更新資料庫120。
若系統在資料庫中找不到適當的設定,則當下的PCIe組態不會被儲存在資料庫120中。接著,系統會停用硬體裝置,像是PCIe裝置130a、130b、130c、130d或130e的其中一者,以預防在接下來的POST常式期間的停機狀況。然後,系統會經由警報信號通知使用者硬體裝置之PCIe組態已改變。
若其中一個PCIe裝置,像是PCIe裝置130c,其設定已改變,則POST常式會因為PCIe裝置130c並沒有正確的或適當的設定而在啟動時停機。舉例來說,若使用者在BIOS設定選單中為PCIe韌體啟用了某些功能,則可能導致PCIe需要更多的記憶體資源,因而使BIOS無法適當地安排記憶體資源。BIOS將繼續重新啟動系統並重新分派記憶體資源,直到記憶體資源可滿足當下的硬體組態。萬一無法成功安排記憶體資源,則系統將不會成功啟動。當POST常式停機時,看門狗計時器122會觸發重新啟動。電腦系統100會再次啟動,而常式會偵測到重新啟動是由看門狗計時器122所觸發。接著,常式會在資料庫120中搜尋PCIe裝置130c之適當的組態設定。若有找出適當的組態設定,PCIe裝置130可依舊運作,而POST常式繼續執行。若在資料庫120中找不到適當的組態設定,則範例常式會停用PCIe裝置130c,並繼續POST常式。如此一來,無論硬體元件是否具有適當的組態設定,電腦系統100都將啟動,因此避免了停機。
第2圖展示資料庫120之內容。資料庫120儲存平台組態之適當的設定,像是PCIe組態及其他相關的BIOS設定。在本範例中,資料庫120包含三個組態設定檔案210、212及214。在本範例中,組態設定檔案210包含PCIe設定段220,PCIe設定段220包含第1圖中的每一PCIe裝置130a-130e之設定。組態設定檔案210亦包含BIOS設定段230,BIOS設定段230包含PCIe保留記憶體資源、選項唯讀記憶體(option read-only memory;OPROM)資料、PCIe功能,及PCIe驅動程式。同樣地,組態設定檔案212包含PCIe設定段222及BIOS設定段232,而組態設定檔案214則包含PCIe設定段224及BIOS設定段234。
如下將解釋,在成功啟動時,若改變了設定或組態,則電腦系統100的每一硬體元件之組態設定被儲存在第1圖中的資料庫120上。每一不同的檔案210、212及214代表每次組態設定改變時,依時間先後順序所儲存的組態。於是,在本範例中,最近所儲存的組態是在組態設定檔案210中,而最久遠所儲存的組態是在組態設定檔案214中。所儲存的檔案數,是受限於最大的資料庫120所能允許的數目。萬一新的設定被提供給電腦系統100,或者新的硬體被添加至電腦系統100,則可藉由遠端的伺服器或本地端的系統控制器更新資料庫120。如以上所解釋的,電腦系統100檢查資料庫120以確認任一PCIe裝置之當下的BIOS設定是否不恰當。常式將會以最新的組態檔案(像是檔案210)開始,對每個所儲存的組態檔案找尋正確的或適當的設定,直到找出PCIe裝置之適當的組態設定為止。如以上所解釋的,若在資料庫120中的組態設定檔案210、212或214的任一者中無法找出正確的一組設定,則常式會停用PCIe裝置或其他的硬體元件,以使電腦系統100得以繼續執行啟動常式。
第3圖是預防第1圖中的電腦系統100中的系統停機之範例啟動常式之流程圖300。第3圖中的流程圖300可代表範例機器可讀指令。在本範例中,機器可讀指令包括由(a)處理器;(b)控制器;及/或(c)一或多個其他合適的處理裝置所執行的演算法。該演算法可由儲存在有形媒體,諸如快閃記憶體、CD-ROM、軟碟、硬碟、數位(多功能)影音磁碟(DVD)或者其他記憶體裝置上的軟體所實施。然而,本領域普通技能之人將容易理解,該演算法的全部或部分可替代地由處理器之外的裝置所執行,及/或以習知的方式(例如以特殊應用積體電路[ASIC];可程式邏輯裝置[PLD];場域可程式邏輯裝置[FPLD]所執行),由韌體或專屬硬體所實施。舉例來說,介面的任何或所有元件可由軟體、硬體,及/或韌體所執行。同樣地,可以手動執行流程圖所代表的某些或全部的機器可讀指令。此外,雖然範例演算法是參考第3圖中所繪示的流程圖所敘述,本領域普通技能之人將容易理解,可使用許多其他方法以執行範例機器可讀指令。舉例來說,可改變區塊的執行順序,及/或可改變、刪減或合併某些所述區塊。
於區塊310,該常式首先藉由執行POST常式,開始啟動程序。於區塊312,該常式會檢查電腦系統100是否已被看門口計時器所重新啟動。若電腦系統100並未被看門口計時器122所重新啟動,則電腦系統100會將系統啟動初始進入區塊314,即驅動程式執行環境(Driver Execution Environment;DXE)階段。若於區塊312,電腦系統100被看門口計時器122所重新啟動,表示其中一個硬體元件的組態設定可能不正確,則該常式將會判斷BIOS 112是否對任一硬體裝置(像是PCIe卡)使用了不正確的組態設定。接著,於區塊316,該常式會判斷裝置之組態設定是否有改變。於是,該常式會檢查裝置組態,像是PCIe組態,以及檢查BIOS設定,像是PCIe保留記憶體資源、OPROM、PCIe驅動程式及PCIe功能。若於區塊316判斷出PCIe組態及BIOS設定並未改變,則該常式會進入區塊314,而繼續POST常式之DXE階段。這表示看門狗計時器122出於某其他原因而觸發。
若設定並未改變,則該常式進入區塊314,即DXE階段。若設定已改變,則該常式會進入區塊318,即檢查資料庫120,以判斷使硬體元件得以運作之適當的組態設定是否被儲存在其中一個組態檔案中。接著,於區塊320,該常式判斷是否有找出硬體元件之適當的設定。若在資料庫120中有找出適當的組態設定,則該常式會進入區塊322,即通知使用者組態設定已改變。BIOS將會從資料庫套用已改變的組態設定。若資料庫中找不到適當的組態設定,則該常式會進入區塊324,即停用元件。然後,於區塊322,該常式會通知使用者組態設定已改變。通知使用者後,該常式接著進入區塊314,即在DXE階段啟動。
在區塊314的DXE階段之後,於區塊326,該常式會判斷看門狗計時器是否已觸發系統停機。若於區塊326判定看門狗計時器由於停機而被觸發,則該常式會返回至區塊310,即系統啟動POST常式並重新啟動。若於區塊326判定看門狗計時器因為所有硬體元件之設定皆正確而未被觸發,則POST常式執行順利並且避免了停機。接著,於區塊328,若當下的硬體組態或BIOS設定有改變,則將新的組態設定檔案存入資料庫120。於區塊330,該常式將完成POST常式,並繼續完成電腦系統100之啟動。
如本申請中所使用的「元件」、「模組」、「系統」或類似的詞彙,通常係指與電腦相關的實體,可以是硬體(例如電路)、硬體與軟體之組合、軟體,或者與運作機器相關、具有一種或更多種特定功能的實體。舉例而言,元件可以是但不限於在處理器(例如數位信號處理器)上執行的程序、處理器、物件、可執行檔、執行緒(thread of execution)、程式,及/或電腦。作為示例,在控制器上執行的應用,以及控制器本身,皆可為元件。一個或更多個元件可常駐於程序及/或執行緒之內,且一個元件可被侷限在一台電腦上及/或分散在兩台或更多台電腦之間。此外,「裝置」可出自於特殊設計的硬體之形式;藉由執行其上使硬體能執行特定功能的軟體所特製出的通用硬體;儲存在電腦可讀取媒體上的軟體;或者其組合。
在此所使用的術語僅以敘述特定的實施例為目的,而並非意圖限制本發明。如在此所使用的,單數形「一」及「該」意圖亦包含複數形,除非文意明顯另有所指。此外,倘若「包含」、「具有」一詞或者其變形,被使用在實施方式及/或請求項中,這類詞彙意圖被包含在類似於「包括」一詞的方式中。
除非另有定義,在此所使用的所有詞彙(包含技術性及科學性的詞彙),與本技術領域之普通技術之人一般所理解的,具有相同的含意。此外,像是被定義在一般所使用的字典中的詞彙,應被解讀為具有與它們在相關技術的文意中一致的含意,且除非在此被明確地如此定義,否則該等詞彙不會被解讀為理想化或過度正式的概念。
雖然本發明之各種實施例已被敘述如上,應被理解的是,該等實施例僅被呈現來作為範例,而非限制。即使本發明已參考一種或更多種實施方式所繪示及敘述,當閱讀及理解本說明書及附加的圖式時,均等的替換及修改將可被其他熟習此項技術者想到或知曉。此外,雖然本發明之特定的特徵可僅被數個實施例的其中之一所揭露,這種特徵可與其他實施例的一個或更多個其他特徵進行組合,而此其他特徵對於任何給定的或特定的應用可能是期望的或有利的。因此,本發明之廣度及範圍不應受限於任何以上敘述的實施例。反之,本發明之範圍應根據以下的請求項及其均等物所定義。
100:電腦系統 110:中央處理單元(CPU) 112:基本輸入/輸出系統(BIOS) 114:基板管理裝置(BMC) 116:擴充槽 120:資料庫 122:看門狗計時器 130a-e:PCIe裝置 210,212,214:組態設定檔案 220,222,224:PCIe設定段 230,232,234:BIOS設定段 300:流程圖 310-330:區塊
本揭露將可從以下示範的實施例之敘述搭配附帶的圖式更佳地理解。 第1圖是一種電腦系統之元件的方塊圖,該電腦系統得以避免在POST常式期間停機。 第2圖是一種資料庫的範例圖,該資料庫儲存第1圖中的電腦系統之組態設定。 第3圖是一種常式的流程圖,該常式是用以確保組態設定適當,以避免重新啟動後停機。
本揭露可接受各式各樣的修改及替代的形式。某些代表性的實施例,已被圖式中的範例所顯示,並將在此被詳細地敘述。然而,應被理解的是,本發明並非意圖限定於所揭露的特定形式。反之,本揭露涵蓋所有的修改、均等物,以及落在如附加的請求項所定義的本發明之範圍與精神之內的替代方案。
300:流程圖
310-330:區塊
120:資料庫

Claims (10)

  1. 一種容許因BIOS設定的保留記憶體不足所造成的停機後再啟動的系統,該系統包括:複數個硬體元件;一BIOS,執行一啟動常式(start-up routine);一資料庫,儲存一或多個組態設定,其中每一組態設定包含該BIOS設定及該等硬體元件之設定,該BIOS設定包含該保留記憶體;一看門狗計時器(watch dog timer),在該啟動常式期間觸發一重新啟動;其中在該重新啟動期間,當該看門狗計時器觸發該重新啟動,該啟動常式檢查該資料庫所儲存之其中一組態設定之該BIOS設定的該保留記憶體是否滿足該等硬體元件中的設定已改變者之設定,若該組態設定之該BIOS設定的該保留記憶體滿足已改變的該硬體元件之設定,該啟動常式套用該組態設定。
  2. 如請求項1之系統,其中若在該資料庫中找不到任一組態設定之該BIOS設定的該保留記憶體滿足已改變的該硬體元件之設定,該BIOS停用已改變的該硬體元件。
  3. 如請求項1之系統,其中該BIOS觸發一警報信號(alert),該警報信號表示該複數個硬體元件之設定已改變。
  4. 如請求項1之系統,其中該複數個硬體元件為快捷周邊元件互連介面(peripheral component interconnect express;PCIe)裝置; 其中該設定包含一記憶體對映輸入輸出(memory mapped input/output;MMIO)大小,及一基址暫存器(base address register)設定。
  5. 如請求項1之系統,其中當該設定改變時,一新組態設定被創建出來,及其中當存取該資料庫時,該啟動常式首先檢查最近的該組態設定。
  6. 一種容許系統因BIOS設定的保留記憶體不足所造成的停機後再啟動的方法,該方法包括:經由一BIOS執行一啟動常式(start-up routine);判斷一看門狗計時器(watch dog timer)是否從先前該啟動常式執行時的超時觸發一重新啟動;若該看門狗計時器觸發該重新啟動,檢查一資料庫所儲存之一或多個組態設定之一者之該BIOS設定的該保留記憶體是否滿足複數個硬體元件中的設定已改變者之設定,若該組態設定之該BIOS設定的該保留記憶體滿足已改變的該硬體元件之設定,該啟動常式套用該組態設定。
  7. 如請求項6之方法,更包括:若在該資料庫中找不到任一組態設定之該BIOS設定的該保留記憶體滿足已改變的該硬體元件之設定,停用已改變的該硬體元件。
  8. 如請求項6之方法,其中該複數個硬體元件為快捷周邊元件互連介面(peripheral component interconnect express;PCIe)裝置;其中該設定包含一適當的記憶體對映輸入輸出(memory mapped input/output;MMIO)大小,及一基址暫存器(base address register)設定。
  9. 如請求項6之方法,更包括:當該設定改變時,創建一新組態檔案,及其中當存取該資料庫時,首先檢查最近的該組態設定。
  10. 一種基本輸入輸出系統(basic input output system;BIOS)晶片,用於一電腦系統,該BIOS晶片包括複數指令,當一處理器執行該等指令時,運作;執行一啟動常式(start-up routine);判斷一看門狗計時器(watch dog timer)是否於先前該啟動常式執行期間超時而觸發一重新啟動;若該看門狗計時器觸發該重新啟動,檢查一資料庫所儲存之一或多個組態設定之一者之BIOS設定的保留記憶體是否滿足複數個硬體元件中的設定已改變者之設定,若該組態設定之該BIOS設定的該保留記憶體滿足已改變的該硬體元件之設定,該啟動常式套用該組態設定。
TW110117844A 2021-02-19 2021-05-18 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片 TWI784526B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/180,402 US11789820B2 (en) 2021-02-19 2021-02-19 Methods and systems for preventing hangup in a post routine from faulty bios settings
US17/180,402 2021-02-19

Publications (2)

Publication Number Publication Date
TW202234239A TW202234239A (zh) 2022-09-01
TWI784526B true TWI784526B (zh) 2022-11-21

Family

ID=82900651

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110117844A TWI784526B (zh) 2021-02-19 2021-05-18 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片

Country Status (3)

Country Link
US (1) US11789820B2 (zh)
CN (1) CN114968382A (zh)
TW (1) TWI784526B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI767266B (zh) * 2020-06-30 2022-06-11 神雲科技股份有限公司 基於記憶體對映輸入輸出的記憶體空間自動分配方法
JP2022066083A (ja) * 2020-10-16 2022-04-28 キヤノン株式会社 情報処理装置
US11789820B2 (en) * 2021-02-19 2023-10-17 Quanta Computer Inc. Methods and systems for preventing hangup in a post routine from faulty bios settings
US20230102099A1 (en) * 2021-09-22 2023-03-30 Texas Instruments Incorporated Techniques for peripheral utilization metrics collection and reporting
US20230409423A1 (en) * 2022-06-16 2023-12-21 Dell Products L.P. Collection of forensic data after a processor freeze
WO2024072471A1 (en) * 2022-09-28 2024-04-04 Altiostar Networks India Private Limited Automated basic input/output system (bios) recovery
US20240118966A1 (en) * 2022-10-05 2024-04-11 Dell Products L.P. Error correction dynamic method to detect and troubleshoot system boot failures

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200809489A (en) * 2006-08-01 2008-02-16 Epox Comp Co Ltd BIOS damage detection and repair method and the motherboard
TW201020779A (en) * 2008-11-18 2010-06-01 Inventec Corp System for auto-operating backup firmware and method thereof
TW201337762A (zh) * 2012-03-14 2013-09-16 Omron Tateisi Electronics Co Bios啟動裝置及主機板
CN105677414A (zh) * 2016-01-06 2016-06-15 无锡中太服务器有限公司 一种在Hostboot中实现双启动的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747893B2 (en) * 2007-05-15 2010-06-29 International Business Machines Corporation Method and system for managing resources during system initialization and startup
TWI512425B (zh) * 2008-12-05 2015-12-11 Micro Star Int Co Ltd Computer motherboard with automatic adjustment of hardware parameter values
US9350828B2 (en) * 2012-08-02 2016-05-24 Facebook, Inc. Network interface device having general-purpose computing capability
TWI562071B (en) * 2015-11-04 2016-12-11 Mitac Computing Technology Corp Method for startup inspection and computer system using the same
US11789820B2 (en) * 2021-02-19 2023-10-17 Quanta Computer Inc. Methods and systems for preventing hangup in a post routine from faulty bios settings

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200809489A (en) * 2006-08-01 2008-02-16 Epox Comp Co Ltd BIOS damage detection and repair method and the motherboard
TW201020779A (en) * 2008-11-18 2010-06-01 Inventec Corp System for auto-operating backup firmware and method thereof
TW201337762A (zh) * 2012-03-14 2013-09-16 Omron Tateisi Electronics Co Bios啟動裝置及主機板
CN105677414A (zh) * 2016-01-06 2016-06-15 无锡中太服务器有限公司 一种在Hostboot中实现双启动的方法

Also Published As

Publication number Publication date
TW202234239A (zh) 2022-09-01
US20220269565A1 (en) 2022-08-25
CN114968382A (zh) 2022-08-30
US11789820B2 (en) 2023-10-17

Similar Documents

Publication Publication Date Title
TWI784526B (zh) 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US10534618B2 (en) Auto bootloader recovery in BMC
CN107122321B (zh) 硬件修复方法、硬件修复***以及计算机可读取存储装置
US10387261B2 (en) System and method to capture stored data following system crash
US9946553B2 (en) BMC firmware recovery
US9081734B2 (en) Restoring from a legacy OS environment to a UEFI pre-boot environment
US7111202B2 (en) Autonomous boot failure detection and recovery
US8918778B2 (en) Method of fail safe flashing management device and application of the same
US8595552B2 (en) Reset method and monitoring apparatus
US10896087B2 (en) System for configurable error handling
US7783872B2 (en) System and method to enable an event timer in a multiple event timer operating environment
US11144328B2 (en) System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME)
US20060036832A1 (en) Virtual computer system and firmware updating method in virtual computer system
EP3698251B1 (en) Error recovery in non-volatile storage partitions
US10491736B2 (en) Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
US7831858B2 (en) Extended fault resilience for a platform
US11106457B1 (en) Updating firmware runtime components
US10768940B2 (en) Restoring a processing unit that has become hung during execution of an option ROM
US10838737B1 (en) Restoration of memory content to restore machine state
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
US10613850B1 (en) Performant and secure storage and retrieval of firmware variables
US10691444B1 (en) Launching updated firmware files stored in a dedicated firmware volume
US20240012572A1 (en) Operationalization of memories using memory information sets
CN115686643A (zh) 嵌入式***的开机方法