TW202125233A - 從分離的bios映像檔啟動的方法及系統 - Google Patents
從分離的bios映像檔啟動的方法及系統 Download PDFInfo
- Publication number
- TW202125233A TW202125233A TW109123282A TW109123282A TW202125233A TW 202125233 A TW202125233 A TW 202125233A TW 109123282 A TW109123282 A TW 109123282A TW 109123282 A TW109123282 A TW 109123282A TW 202125233 A TW202125233 A TW 202125233A
- Authority
- TW
- Taiwan
- Prior art keywords
- image file
- bios image
- bios
- area
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000015654 memory Effects 0.000 claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
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)
- Stored Programmes (AREA)
- Saccharide Compounds (AREA)
Abstract
啟動電腦系統的一種系統及方法被揭露。編碼從儲存在電子抹除式可程式唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory, EEPROM)上的次BIOS映像檔被載入至中央處理單元之快取。中央處理單元從次BIOS映像檔執行編碼,以初始化系統記憶體。經由控制器,主BIOS映像檔從遠端站點被存取。來自主映像檔的編碼被載入至系統記憶體。經由中央處理單元,來自主映像檔的編碼被執行,以啟動作業系統。
Description
本揭露涉及運算裝置之啟動(power-up)的例行程序(routines),特別涉及一系統,該系統從多個遠端的基本輸入輸出系統(basic input output system, BIOS)映像檔中的至少一個映像檔啟動。
伺服器被大量地運用在高需求的應用,例如網路為基系統(network based systems)或者資料中心(data centers)。供運算應用的雲之出現,增加了對於資料中心的需求。資料中心具有為數眾多的伺服器,以儲存資料並且運行被遠端連接的電腦裝置之使用者所存取的應用。一個典型的資料中心具有實體的底架結構(chassis structures),伴隨著電力及通訊的連接。每個機架(rack)可支承多個運算伺服器(computing servers)及儲存伺服器(storage servers)。每個個別的伺服器通常伴隨一開機自我檢測(power-on self-test, POST)例行程序而啟動以開始運作。在運算系統(例如伺服器上的處理器核心)的POST例行程序之期間,基本輸入輸出系統(BIOS)被處理器核心所執行,以初始化(initialize)伺服器的硬體。
BIOS韌體(BIOS映像檔)通常係被儲存在伺服器主機板上的串列週邊介面(Serial Peripheral Interface, SPI)電子抹除式可程式唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory, EEPROM)上。用來儲存BIOS映像檔的可用空間,依據硬體的設計,取決於EEPROM的容量。這使BIOS映像檔的大小受限於SPI EEPROM的記憶體容量。這種限制意味著,增加模組(modules)或驅動程式以儲存BIOS韌體的容量是有限的。因此,可被增量添加(incrementally added)的BIOS韌體之特徵的延展,是受限的。
為了增加彈性,對於需要不同特徵的不同情況,硬體設計可用兩個SPI EEPROMs來儲存多個BIOS映像檔。這種配置允許使用兩個EEPROMs中較大的一者來容納較大的BIOS韌體。然而,額外的EEPROM會增加硬體的成本。此外,若想要有更多的BIOS映像檔,EEPROM的尺寸仍然受限於BIOS映像檔儲存裝置。
BIOS韌體的升級或降級是道複雜的程序,視EEPROM的尺寸,需要3到6分鐘。對於伺服器系統而言,升級BIOS通常係透過基板管理控制器(Baseboard Management Controller, BMC)。對於這種升級而言,伺服器管理者必須將系統關機;將升級的BIOS映像檔載入至BMC中;清除BIOS EEPROM;然後將升級的BIOS映像檔寫入至EEPROM中。當升級完成時,伺服器管理者必須將系統開機,以確認BIOS升級是否成功。由於BIOS韌體的升級是複雜且又不彈性的,BIOS升級目前僅在嚴重問題發生時才發生。尤其對於為數眾多的伺服器之安裝而言,例如資料中心,BIOS韌體更新需要大量的時間,因此造成伺服器服務被中止。伺服器可用性(availability)之延誤是令人不悅的,因為任何的延誤增加使用者完成資料處理或應用執行之類的任務必須等待的時間。在資料中心中,這種隨著伺服器之龐大數量而加成的延誤,會妨礙資料中心之整體運作。
第1圖係被儲存在主機板10之快閃記憶體(flash memory) 12之EEPROM上的BIOS映像檔之先前技術結構。快閃記憶體12被劃分為敘述符(descriptor)區20、管理引擎(management engine, ME)區22、10GbE A區24,以及BIOS區26。敘述符區20包含BIOS映像檔之敘述資訊。ME區22儲存嵌入式管理控制器之編碼。10GbE A區24儲存用於平台路徑控制器(platform control hub, PCH)之10 GbE 控制器之編碼。BIOS區26儲存BIOS映像檔30。
BIOS映像檔30包含用來儲存資料的非揮發性隨機存取記憶體(non-volatile random access memory, NVRAM)區32。BIOS映像檔30亦包含驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區34、可延伸韌體介面前初始化(pre-EFI initialization, PEI)區36,以及安全(security, SEC)區38。DXE/BDS區34、PEI區36與安全區38分別儲存用來執行「執行環境/啟動裝置選擇」、「可延伸韌體介面前初始化」與「授權(authentication)」等不同BIOS功能之編碼。
第2圖係用BIOS的啟動程序中所使用之元件之先前技術硬體示意圖。第2圖因此顯示第1圖中的主機板10之不同元件,以及從快閃記憶體12中的BIOS映像檔啟動之程序。主機板10包含CPU 40、系統記憶體42、平台路徑控制器(platform control hub, PCH)44,以及BIOS快閃記憶體12。
當系統被開機時,啟動程序開始進行。PCH 44將SEC/PEI(安全及可延伸韌體介面前初始化:security and pre-EFI initialization)編碼從快閃記憶體12上的BIOS映像檔映射至CPU 40之內部快取(internal cache)60。CPU 40將內部快取60用作為隨機存取記憶體(random access memory, RAM),以執行SEC/PEI編碼。BIOS將剩餘的編碼(DXE/BDS) 從快閃記憶體12之SPI EEPROM載入至系統記憶體42中。然後,CPU 40執行系統記憶體42上剩餘的BIOS編碼,直到開機自我檢測(power on self-test, POST)例行程序終止且BIOS啟動至作業系統(operating system, OS)。這種先前技術系統之BIOS編碼,受限於快閃記憶體12上的EEPROM的尺寸。因此,BIOS編碼的更新無法被輕易地採用。此外,囿於空間限制,其他BIOS映像檔無法被使用。
因此,需要有一系統,該系統包含可在一系列產品中被使用的主機板,不必更新主機板上的BIOS。需要有一系統,隨著BIOS的韌體變大,該系統不需要更大的EEPROM。也需要有經由基板管理控制器的BIOS韌體版本之統一控制,無論主機板上的BIOS版本為何。更進一步需要一系統,該系統允許不同的BIOS映像檔被使用。
被揭露的範例係一種系統,包含電子抹除式可程式唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory, EEPROM),EEPROM儲存次BIOS映像檔(minor BIOS image)。系統包含系統記憶體以及中央處理單元(central processing unit),中央處理單元具有快取(cache)。中央處理單元可用來從快取上的次BIOS映像檔(minor BIOS image)執行編碼,以初始化系統記憶體。遠端站點(remote site)儲存主BIOS映像檔(major BIOS image)。控制器將編碼從主BIOS映像檔載入至系統記憶體。中央處理單元從主BIOS映像檔執行編碼,以啟動作業系統。
範例系統更進一步的一實施例係在於,控制器係一基板管理控制器(baseboard management controller)。另一實施例係在於,主BIOS映像檔係選取自儲存在遠端站點的複數個主BIOS映像檔的其中之一。另一實施例係在於,遠端站點係一網路可存取裝置(network accessible device),經由一網路耦接至控制器。另一實施例係在於,次BIOS映像檔支援若控制器之通訊未建立則啟動作業系統的複數個不同模式的其中一種模式。另一實施例係在於,次BIOS映像檔包含驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區,且若控制器之通訊未建立,中央處理單元可用來從次BIOS映像檔之DXE/BDS區載入編碼。另一實施例係在於,次BIOS映像檔包含非揮發性隨機存取記憶體(non-volatile random access memory)區、可延伸韌體介面前初始化(pre-EFI initialization, PEI)區,以及安全區。另一實施例係在於,主BIOS映像檔包含驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區。另一實施例係在於,主BIOS映像檔係某一代的CPU的其中一個 BIOS版本、除錯版BIOS、測試版BIOS、特別版BIOS,或BIOS修補程式(patch)。
被揭露的另一範例係一種啟動電腦系統的方法。編碼從儲存在電子抹除式可程式唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory, EEPROM)上的次BIOS映像檔載入至中央處理單元之快取。中央處理單元從次BIOS映像檔執行編碼,以初始化系統記憶體。經由控制器,主BIOS映像檔遠端站點被存取。來自主BIOS映像檔的編碼被載入至系統記憶體。經由中央處理單元,來自主BIOS映像檔的編碼被執行,以啟動作業系統。
範例方法之另一實施例係在於,控制器係一基板管理控制器。另一實施例包含從儲存在遠端站點的複數個主BIOS映像檔的其中之一選取主BIOS映像檔。另一實施例係在於,遠端站點係一控制器可存取記憶體(controller accessible memory)。另一實施例係在於,遠端站點係一網路可存取裝置(network accessible device),經由網路耦接至控制器。另一實施例係在於,次BIOS映像檔支援一種模式,以在從主映像檔載入編碼失敗的情況下啟動作業系統。另一實施例包含判斷該控制器之通訊是否未建立;及從該次映像檔之執行驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區執行DXE/BDS。另一實施例係在於,次BIOS映像檔包含非揮發性隨機存取記憶體區、可延伸韌體介面前初始化(pre-EFI initialization, PEI)區,以及安全區。另一實施例係在於,主BIOS映像檔包含一執行驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS) 區。另一實施例係在於,主BIOS映像檔係某一代的CPU的其中一個 BIOS版本、除錯版BIOS、測試版BIOS、特別版BIOS,或BIOS修補程式。
上述發明內容並非旨於象徵本揭露的每個實施例或每個觀點。反之,前述發明內容僅提供在此列舉的某些新穎觀點及特徵。從以下用以實施本發明的代表性實施例與模式之詳細敘述,搭配伴隨的圖式及附加的請求項,上述特徵與優勢,以及本揭露的其他特徵與優勢,將會清晰而易於理解。
本發明能以許多不同的形式而實施。代表的實施例被顯示在圖式中,並將在此被詳細敘述。本揭露係本發明的原則之範例或圖示,而並非旨於將該揭露之寬廣的觀點限制於圖示之實施例。在那程度上,被揭露的元件及限制,例如在發明摘要中、在發明內容中,以及在實施方式中,但未明確列舉在請求項中的被揭露元件及限制,不應被單獨地或集體地或其他方式地納入請求項中。對於本詳細敘述,除非係被具體地否認,否則單數形包含複數形,反之亦然;且「包含」一詞意指「包含但不限於」。此外,表「近似」的詞彙,例如「約」、「幾乎」、「大體上」、「大概地」,以及類似的詞彙,可在此用來意指例如「於」、「近」,或「近於」,或「…之3-5%的範圍內」,或「在可接受的製造公差(manufacturing tolerances)範圍內」,或者其任何邏輯組合。
在此被揭露的範例包含增加計算機系統上的BIOS映像檔容量之系統及方法。被揭露的系統亦簡化BIOS升級之程序。被揭露的範例系統將BIOS映像檔分為兩部分。BIOS映像檔之主要部份係被儲存在計算機系統之外的遠端站點上。BIOS映像檔之次要部分係被儲存在計算機系統之主機板上的SPI EEPROM上。在此範例中,BIOS映像檔之主要部份儲存大部分的功能模組及驅動程式,例如BIOS DXE/BDS編碼,該等功能模組及驅動程式可被載入至系統記憶體。BIOS映像檔之次要部分儲存基本的中央處理單元(CPU)/記憶體(MEMORY)初始編碼,例如BIOS SEC/PEI編碼,該等編碼可被載入至內部的CPU快取以執行之。
被揭露的系統將BIOS之次要部分儲存在SPI EEPROM上。儲存BIOS之次要部分致使BIOS更新所需硬體協調(hardware coordination)較少,藉此避免需要去改變目前的上電時序(power-on sequence)。BIOS之主要部分,其純以軟體為基礎的設計,能確保上述概念可在下一代的平台上被實施。
為了使BIOS映像檔之執行更有彈性,BIOS映像檔之主要部分被遠端地從系統之基板管理控制器(baseboard management controller, BMC)端載入。BMC端具有可用的記憶體,以儲存多個BIOS映像檔,該等BIOS映像檔可在啟動程序之期間被提供。因此,透過BMC,主機系統能載入特定的BIOS版本。藉著多個BIOS映像檔,主機系統能輕易地將BIOS版本切換至所欲特定的BIOS映像檔,而不用經過需耗費額外時間的一般BIOS升級步驟。在BMC可用記憶體中的BIOS映像檔可被預先管理。這種BIOS映像檔,在主機系統之重新啟動(reboot)中,僅接受另一種安排。從下一次的啟動開始,主機系統會載入特定的BIOS。此程序避免目前韌體升級所需的長久時間。「遠端站點(remote site)」可以係支援與主機系統之BIOS進行網路通訊的能力之任何裝置或系統。
在此被敘述的系統使用BMC共享記憶體(shared memory)作為遠端站點。BMC共享記憶體適用於實施被敘述的原則。BIOS在非常早期的階段初始化系統記憶體。當系統記憶體被初始化,剩餘的主BIOS模組(major BIOS module)能被從BMC共享記憶體載入至系統記憶體中。因此,啟動可在不過分修改BIOS內容的情況下被完成。
在BIOS已完成初始化記憶體之後,從遠端站點載入剩餘的模組、而非從EEPROM載入,允許更高的彈性及效率。這部分的修改能由BIOS本身去作,而毋須硬體修改。在BIOS啟動之早期階段,網路初始化發生並具體指明載入剩餘的BIOS模組之網路位址。BMC共享記憶體亦可用來直接達成相同的效果,而不必預先初始化網路。
第3圖顯示具有系統快閃記憶體110之主機板100,快閃記憶體110可包含被削減的BIOS映像檔,或者稱次BIOS映像檔(minor BIOS image)。第4圖係允許從主機板100上的多個主BIOS映像檔的其中之一啟動的元件之硬體示意圖。主機板100包含CPU 200、平台路徑控制器(platform control hub, PCH)210、基板管理控制器(Baseboard Management Controller, BMC)220,以及系統記憶體230。作業系統240係被提供在主機系統被啟動後,用來運作主機板100之主機系統。一遠端站點可被提供而具有多個不同的主BIOS映像檔250,主BIOS映像檔250可被BMC 220存取。該遠端站點可以係可被網路260或BMC共享記憶體262兩者之一所存取之裝置,而網路260可被BMC 220存取。在此設置中,系統管理者可載入BIOS映像檔主要的部份至共享BMC記憶體262中,作為一選項。BIOS映像檔主要的部份可被儲存在網路裝置中,例如儲存伺服器或者FTP伺服器。當BMC共享記憶體262被啟用,BIOS及BMC 220會在系統記憶體230及BMC共享記憶體262兩者之上皆分配一塊記憶體區域。對記憶體230及262的存取會被彼此同步。快閃記憶體110及系統記憶體230可被CPU 200存取,以執行BIOS編碼。
如第3圖所示,快閃記憶體110被劃分為敘述符區112、管理引擎(management engine, ME)區114、10GbE A區116,以及BIOS區120。第3圖顯示可被儲存在BIOS區120中的三個可能的次BIOS映像檔130、140及150。改善的BIOS結構可具有三種模式的其中一種模式,這三種模式為空模式(empty mode)、迷你模式(mini mode)及傳統模式。這三種模式中的每一種,各自分別與次BIOS映像檔130、140及150的其中一者聯繫在一起。因此,系統所使用的模式取決於BIOS映像檔130、140及150中的何者被儲存在快閃記憶體110中,或者從快閃記憶體110中所讀取。這三個模式的差異,在於當系統載入被儲存在遠端站點中的主BIOS映像檔失敗時所提供的回應方法。
在空模式中,空模式次BIOS映像檔130被儲存在快閃記憶體110中。空模式次BIOS映像檔130包含非揮發性隨機存取記憶體(non-volatile random access memory, NVRAM)區132,以儲存資料。空模式次BIOS映像檔130亦包含可延伸韌體介面前初始化(pre-EFI initialization, PEI)區134,以及安全(security, SEC)區136。當在空模式時,只有NVRAM,以及SEC/PEI區132、134及136被儲存在快閃記憶體110之EEPROM上。在SEC/PEI區132、134及136中的SEC/PEI編碼,係用來初始化CPU 200及系統記憶體230。NVRAM 132係用來儲存BIOS之變數值。次BIOS映像檔不包含被儲存在EEPROM 110中的DXE/BDS編碼。在空模式中,若系統載入遠端的主BIOS映像檔失敗,系統將無法正確地啟動。優勢在於系統能選擇最小的EEPROM編碼,因為空模式BIOS映像檔130僅佔快閃記憶體110之EEPROM上的小量空間。
在迷你模式中,迷你模式次BIOS映像檔140被儲存在快閃記憶體110中。迷你模式BIOS映像檔140包含非揮發性隨機存取記憶體(non-volatile random access memory, NVRAM)區142、驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區144、可延伸韌體介面前初始化(pre-EFI initialization, PEI)區146,以及安全(security, SEC)區148。迷你模式從DXE/BDS區144使用最小量的DXE/BDS編碼,以給予系統基本的能力來啟動至作業系統240(在第4圖中)或BIOS外殼(BIOS shell)兩者之一。如果主BIOS映像檔從遠端站點(例如第4圖中的遠端站點)載入失敗,系統能在作業系統或BIOS外殼中發送一簡單的回應。例如,當BMC 220(在第4圖中)之韌體損毀了,系統能在作業系統或BIOS外殼環境中修復BMC 220。在作業系統或BIOS外殼中,基本的指令或程式亦能被用來判斷遠端載入失敗之原因。
在傳統模式中,被儲存在快閃記憶體110之EEPROM上的傳統模式次BIOS映像檔150,其結構類似於目前被使用的BIOS映像檔。傳統模式次BIOS映像檔150包含非揮發性隨機存取記憶體(non-volatile random access memory, NVRAM)區152、驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區154、可延伸韌體介面前初始化(pre-EFI initialization, PEI)區156,以及安全(security, SEC)區158。因此,次BIOS映像檔150係被儲存在快閃記憶體110之EEPROM上的完整BIOS版本。此BIOS版本能係來自製造商的原始版本,不然就係已被使用者驗證過的可信版本。當遠端主BIOS映像檔從遠端站點(例如第4圖中的網路或BMC共享記憶體262)載入失敗,系統會繼續用快閃記憶體110上的BIOS映像檔150來直接啟動。在此模式中,即使主BIOS映像檔從BMC 220載入失敗,系統仍然能完全且正常地啟動。唯一的差異,在於快閃記憶體110上的BIOS版本可能並非最近的BIOS版本。使用者能選擇將穩定且可靠的BIOS版本燒錄為BIOS映像檔150至快閃記憶體110,以確保系統在任何條件下皆能從信任的BIOS版本啟動。
在此範例中,在快閃記憶體110之EEPROM上的BIOS映像檔能被更新。該更新係以與目前燒錄BIOS更新相同的方式完成的。總體而言,除非BIOS映像檔在SEC/PEI編碼中具有嚴重的錯誤(bug),否則空模式BIOS映像檔130及迷你模式BIOS映像檔140不需要被更新。在傳統模式下,系統管理者不必將新版本燒錄至快閃記憶體110之EEPROM中,即可測試新版BIOS。藉由從遠端站點載入新版BIOS,系統管理者能輕易地在所有機器上測試新版BIOS。在確認新版BIOS穩定且可信之後,新版BIOS即可被燒錄為傳統模式BIOS映像檔150至快閃記憶體110中。
如第4圖所示,開機程序可使用來自快閃記憶體的次BIOS映像檔,亦可使用來自BMC 220所管理的遠端站點的主BIOSD映像檔。開機時,PCH 210致使分別來自被儲存在快閃記憶體110之EEPROM上的BIOS映像檔130、140或150之SEC/PEI編碼映射至CPU快取270。CPU 200將快取270用作為RAM,以執行被映射的SEC/PEI編碼並且初始化系統記憶體230。於是,BIOS會將剩餘的編碼(DXE/BDS)從儲存在一遠端站點上的BIOS映像檔載入至系統記憶體230中。在此範例中,剩餘的編碼,係被BMC 220從共享記憶體262所選取的主BIOS映像檔250的其中之一所取得。於是,CPU 200執行系統記憶體230上剩餘的BIOS編碼,直到開機自我檢測例行程序終止且作業系統240被啟動為止。
第5圖顯示儲存第4圖中的多個BIOS映像檔250的共享記憶體262之記憶體映像(memory map)500。共享記憶體262包含多個BIOS映像檔,此多個BIOS映像檔包含不同的BIOS映像檔510、512、514及516。第4圖中的BMC 200會準備不同的BIOS映像檔,以使系統啟動。「載入BIOS映像檔至共享記憶體中」的設定能係在BMC 220內部的一參數,或者系統管理者能藉由一介面來手動控制載入之路徑及數量。BMC 220所準備的BIOS映像檔可以有一個或更多個。每個BIOS映像檔510、512、514及516,在對應的BIOS映像檔之標頭(header)中,包含對應的主動旗標(active flag)520、522、524及526。主動旗標520、522、524及526係被設置來指示BMC 220應載入哪一個BIOS映像檔。
可用作為BIOS映像檔510、512、514及516的其中之一的BIOS映像檔之範例,包含第一代CPU之BIOS(3A01版、3A02版…等)、第二代CPU之BIOS(3B01版、3B02版…等)、除錯版BIOS、測試版BIOS、特別版BIOS,以及對於問題之暫時解決方法(workaround)之BIOS修補程式(patch),以及添加或移除某些需要在建置時間啟用或停用之特徵的BIOS。
改善的程序,與第6A圖及第6B圖所示例行程序比較而進行如下。根據本揭露之某些觀點,第6A圖係被BMC所執行以提供數個BIOS映像檔的其中之一之範例例行程序之流程圖600。根據本揭露的某些觀點,第6B圖係在開機自我檢測例行程序之期間,被主機系統所執行之範例例行程序之流程圖650。
第6A圖及第6B圖之流程圖係藉由BMC從遠端站點提供不同的BIOS映像檔之程序之典型的範例機器可讀指令(machine readable instructions)。在此範例中,機器可讀指令包括被(a)一處理器;(b)一控制器;及/或(c)一個或更多個其他適用的處理裝置所執行之演算法。該演算法可被儲存在有形媒體(tangible media)上的軟體所實施,有形媒體例如快閃記憶體、光碟唯讀記憶體(CD-ROM)、軟磁碟(floppy disk)、硬碟、數位影音(通用)磁碟(DVD),或者其他記憶體裝置。然而,本技術領域中具有通常知識者將能輕易地理解,上述的整個演算法及或其部分能以一種熟知的方式,替換地被處理器之外的裝置所執行,及/或在韌體或專用的硬體中被實施(例如,被特殊應用積體電路(application specific integrated circuit, ASIC)、可程式邏輯裝置(programmable logic device, PLD)、現場可程式邏輯裝置(field programmable logic device, FPLD)、現場可程式閘陣列(field programmable gate array, FPGA)、離散邏輯(discrete logic)…等所實施)。例如,任何或全部的介面之元件能被軟體、硬體及/或韌體所實施。並且,流程圖所象徵的某些或全部的機器可讀指令可被手動地實施。此外,雖然該範例演算法係參考第6A圖及第6B圖中所圖示的流程圖來敘述的,本技術領域中具有通常知識者將能輕易地理解,實施範例機器可讀指令的許多其他方法可被替換地使用。例如,方塊執行順序可被改變,且/或某些被敘述的方塊可被改變、刪減或組合。
如第6A圖所示,於步驟602,首先交流電力(AC power)被開啟。於步驟604,在主機板100被連接至交流電力之後,BMC(例如BMC 200)開始初始化。於步驟606,在BMC準備好之後,根據使用者所做的設定,主BIOS映像檔(例如主BIOS映像檔250)會從特定的記憶體位置被載入至BMC共享記憶體(例如共享記憶體262)中,或者第4圖所示的網路裝置中。於步驟608,基於來自不同BIOS映像檔的主動旗標,BMC 200指派一目標主BIOS映像檔。
如第6B圖中的流程圖650所示,於步驟652,直流電力(DC power)被開啟。當主機板100被開機時,PCH 210將編碼從被儲存在快閃記憶體上(例如快閃記憶體110)的次BIOS映像檔映射至CPU快取270。於步驟654,PEI編碼從CPU快取(例如第4圖中的快取270)被執行。於步驟656,PEI編碼被執行,且系統記憶體(例如記憶體230)被準備好。在初始化CPU與記憶體之後,BIOS之被執行的PEI編碼與BMC 220通訊,以確認主BIOS映像檔已被準備好。確認完之後,於步驟658,主BIOS映像檔從共享記憶體被載入,以繼續啟動程序。
於步驟660,BIOS判斷載入BIOS映像檔是否成功。若載入成功,於步驟662,DXE/BDS編碼從來自BMC的主BIOS映像檔被執行。然後,於步驟664,開機自我檢測例行程序終止。若在步驟660中載入BIOS映像檔失敗,於步驟666,事件日誌(event log)被記錄並寄送至BMC。然後,於步驟668,例行程序試圖藉由從第3圖中儲存在快閃記憶體中的次BIOS映像檔140或次BIOS映像檔150兩者之一執行DXE/BDS,以履行迷你模式或傳統模式之錯誤處置(error handling)。然後,於步驟664,例行程序迴路至終止開機自我檢測例行程序。若第3圖中的次BIOS映像檔130係被儲存在快閃記憶體中,例行程序在不完成啟動例行程序的情況下終止。
由於出貨時不必更新BIOS,在此被敘述的系統允許單一的主機板在相同系列的產品中被使用。這省去庫存管理,並簡化工廠出貨流程。遠端的BIOS映像檔免除隨著BIOS韌體變大而切換至較大的EEPROM的必要性。此外,BIOS韌體的大小不受限於EEPROM。被多個網路裝置所共享的BIOS映像檔允許存取眾多不同的BIOS映像檔。
BIOS韌體版本被BMC統一控制,允許系統管理者僅聚焦在BMC之管理上。系統管理者不需仰賴主機板上的BIOS版本。由於新的主BIOS映像檔可被載入至BMC共享記憶體,改變BIOS版本係迅速的。這提供一種便利的方法,來控制資料中心中多個伺服器的BIOS版本。BMC對多個BIOS映像檔的存取,允許在啟動時選取不同BIOS映像檔及版本的彈性。
本申請中所用的詞彙「元件」、「模組」、「系統」或者類似詞彙,總體而言涉及電腦相關實體,若非硬體(例如電路)、硬體與軟體之組合、軟體,就是涉及具有一個或更多個特定功能的運算機器之實體。例如,元件可以係但不限於運行在處理器(例如數位信號處理器)、處理器、物件、執行檔、執行緒、程式,及/或電腦上的程序。作為示例,在控器上運行的應用,以及控制器,兩者皆能係元件。一個或更多個元件可存在於一程序及/或執行緒,且一元件可被侷限在一台電腦上,及/或分布在兩台或更多台電腦之間。此外,一「裝置」能以下列形式出現:專屬設計的硬體;視軟體執行需求而在硬體上進行特製、而使硬體能夠履行特定功能的一般硬體;被儲存在電腦可讀取媒體(computer-readable medium)上的軟體;或者其組合。
在此所用的術語僅以敘述特定的實施例為目的,而並非旨於限制本發明。在此所使用的,單數形「一」及「該」旨於也包含複數形,除非文意明顯另有所指。此外,倘若「包含」、「具有」一詞或者其變形,被使用在詳細敘述及/或請求項中,這類詞彙旨於被包含在類似於「包括」一詞的方式。
除非另有定義,在此所使用的所有詞彙(包含技術性及科學性的詞彙),與本技術領域中具有通常知識者一般所理解的,具有相同的含意。此外,像是被定義在一般所使用的字典中的詞彙,應被解讀為具有與它們在相關技術的文意中一致的含意,且除非在此被明確地如此定義,否則該等詞彙不會被解讀為理想化或過度正式的概念。
雖然本發明之各種實施例已被敘述如上,應被理解的係,該等實施例僅被呈現來作為範例,而非限制。即使本發明已就一種或更多種實施方式所圖示及敘述,當閱讀及理解本說明書及附加的圖式時,均等的替換及修改將可被其他熟習此項技術者想到或知曉。此外,雖然本發明之特定的特徵可僅被數個實施例的其中之一所揭露,這種特徵可與其他實施例的一個或更多個其他特徵組合,而此其他特徵對於任何給定的或特定的應用可能是期望的或有利的。因此,本發明之廣度及範圍不應受限於任何以上敘述的實施例。反之,本發明之範圍應根據以下的請求項及其均等物所定義。
10:主機板
12:快閃記憶體
20:敘述符區
22:管理引擎區
24:10GbE A區
26:BIOS區
30:BIOS映像檔
32:NVRAM區
34:DXE/BDS區
36:PEI區
38:SEC區
40:CPU
42:系統記憶體
44:PCH
60:內部快取
100:主機板
110:快閃記憶體
112:敘述符區
114:管理引擎區
116:10GbE A區
120:BIOS區
130:空模式次BIOS映像檔
132:NVRAM區
134:PEI區
136:SEC區
38:SEC區
140:迷你模式次BIOS映像檔
142:NVRAM區
144:DXE/BDS區
146:PEI區
148:安全區
150:傳統模式次BIOS映像檔
152:NVRAM區
154:DXE/BDS區
156:PEI區
158:安全區
200:CPU
210:PCH
220:BMC
230:系統記憶體
240:作業系統
250:主BIOS映像檔
260:網路
262:BMC共享記憶體
270:快取
500:記憶體映像
510,512,514,516:BIOS映像檔
520,522,524,526:主動旗標
600:流程圖
602,604,606,608:步驟
650:流程圖
652,654,656,658,660,662,664,666,668:步驟
本揭露將可從以下示範的實施例之敘述併同參考伴隨的圖式,而更佳地被理解,其中:
第1圖係被儲存在快閃記憶體之EEPROM上的BIOS映像檔之先前技術結構;
第2圖係用BIOS的啟動程序中所使用之元件之先前技術硬體示意圖;
第3圖顯示根據本揭露的某些觀點之具有一系統快閃記憶體之主機板,該快閃記憶體可包含被削減的BIOS映像檔,或者稱次BIOS映像檔;
第4圖係根據本揭露的某些觀點的元件之硬體示意圖,此等元件允許從主機板上的多個主BIOS映像檔的其中之一啟動;
第5圖係根據本揭露的某些觀點之儲存多個BIOS映像檔的BMC之記憶體映像(memory map);
第6A圖係根據本揭露的某些觀點之被BMC所執行以提供數個BIOS映像檔的其中之一之範例例行程序之流程圖;及
第6B圖係根據本揭露的某些觀點之在開機自我檢測例行程序之期間,被主機系統所執行之範例例行程序之流程圖。
本揭露容許各種修改及替代之形式。某些具代表性的實施例已在圖式中顯示作為範例,且在此將被詳細地敘述。然而,應被理解的係,本發明並非旨於受限於被揭露的特定形式。反之,本揭露係在如附加的請求項所定義的發明之精神與範圍之內,去涵蓋所有的修改、均等物以及替代方案。
100:主機板
110:快閃記憶體
200:CPU
210:PCH
220:BMC
230:系統記憶體
240:作業系統
250:主BIOS映像檔
260:網路
262:BMC共享記憶體
270:快取
Claims (10)
- 一種從分離的BIOS映像檔啟動之系統,包括: 一電子抹除式可程式唯讀記憶體(EEPROM),儲存一個次BIOS映像檔; 一系統記憶體; 一中央處理單元(CPU),包括一快取,該中央處理單元耦接至該EEPROM及該系統記憶體,該中央處理單元從該快取上的該次BIOS映像檔執行編碼,以初始化該系統記憶體;以及 一控制器,將儲存在一遠端站點的一個主BIOS映像檔中的編碼載入至該系統記憶體,其中該中央處理單元執行來自該主BIOS映像檔的編碼,以啟動一作業系統。
- 如請求項1之系統,其中該次BIOS映像檔支援若該控制器之通訊未建立則啟動該作業系統的複數個不同模式的其中一種模式。
- 如請求項1之系統,其中該次BIOS映像檔包含一驅動程式執行環境/啟動裝置選擇(driver execution environment/boot device selection, DXE/BDS)區,且其中若該控制器之通訊未建立,該中央處理單元可用來從該次BIOS映像檔之DXE/BDS區載入編碼。
- 如請求項1之系統,其中該次BIOS映像檔包含一非揮發性隨機存取記憶體(non-volatile random access memory)區、一可延伸韌體介面前初始化(pre-EFI initialization, PEI)區,以及一安全區。
- 如請求項1之系統,其中該主BIOS映像檔包含一驅動程式執行環境/啟動裝置選擇(DXE/BDS)區。
- 一種從分離的BIOS映像檔啟動電腦系統的方法,該方法包括: 將第一編碼從儲存在一電子抹除式可程式唯讀記憶體(EEPROM)上的一個次BIOS映像檔載入至一中央處理單元之一快取; 執行來自該次BIOS映像檔的該第一編碼,以初始化一系統記憶體; 經由一控制器,從一遠端站點存取一個主BIOS映像檔; 將第二編碼從該主BIOS映像檔載入至該系統記憶體;以及 經由該中央處理單元,執行從該主BIOS映像檔載入的該第二編碼,以啟動一作業系統。
- 如請求項6之方法,其中該次BIOS映像檔支援一種模式,以在從該主映像檔載入該第二編碼失敗的情況下啟動該作業系統。
- 如請求項6之方法,更包括: 判斷該控制器之通訊是否未建立;以及 從該次映像檔之執行驅動程式執行環境/啟動裝置選擇(DXE/BDS)區,執行DXE/BDS。
- 如請求項6之方法,其中該次BIOS映像檔包含一非揮發性隨機存取記憶體區、一可延伸韌體介面前初始化(PEI)區,以及一安全區。
- 如請求項6之方法,其中該主BIOS映像檔包含一執行驅動程式執行環境/啟動裝置選擇(DXE/BDS) 區。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/728,960 | 2019-12-27 | ||
US16/728,960 US11360783B2 (en) | 2019-12-27 | 2019-12-27 | Method and system for booting from a split BIOS image |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202125233A true TW202125233A (zh) | 2021-07-01 |
TWI813887B TWI813887B (zh) | 2023-09-01 |
Family
ID=76547195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109123282A TWI813887B (zh) | 2019-12-27 | 2020-07-10 | 從分離的bios映像檔啟動的方法及系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11360783B2 (zh) |
CN (1) | CN113064637B (zh) |
TW (1) | TWI813887B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12112176B1 (en) | 2023-03-15 | 2024-10-08 | Quanta Computer Inc. | Selective firmware placement during initialization of compute systems |
TWI859090B (zh) * | 2024-03-14 | 2024-10-11 | 系微股份有限公司 | 遠端掃描韌體漏洞的方法及其系統 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11775314B2 (en) * | 2021-11-02 | 2023-10-03 | Quanta Computer Inc. | System and method for BMC and BIOS booting using a shared non-volatile memory module |
CN114595097B (zh) * | 2022-03-04 | 2024-03-26 | 北京工业大学 | 一种能在可信启动过程中辨识故障启动程序的方法 |
US20240419552A1 (en) * | 2023-06-15 | 2024-12-19 | Dell Products, L.P. | Telemetry driven platform restoration for a split boot architecture |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892297B1 (en) * | 2000-03-16 | 2005-05-10 | International Business Machines Corporation | Method and system for searching an updated version of boot code for updating current running boot code prior to loading an operating system |
US7406591B2 (en) * | 2004-06-29 | 2008-07-29 | Intel Corporation | Booting from a remote BIOS image |
CN100504779C (zh) * | 2006-06-30 | 2009-06-24 | 联想(北京)有限公司 | 一种加速bios运行的方法 |
CN106990958B (zh) * | 2017-03-17 | 2019-12-24 | 联想(北京)有限公司 | 一种扩展组件、电子设备及启动方法 |
US10671560B2 (en) * | 2017-09-27 | 2020-06-02 | Hewlett Packard Enterprise Development Lp | Serial connection between management controller and microcontroller |
CN108228394A (zh) * | 2018-01-02 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种服务器双BIOS Flash控制系统及方法 |
US11169819B2 (en) * | 2019-05-01 | 2021-11-09 | Dell Products L.P. | Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS |
-
2019
- 2019-12-27 US US16/728,960 patent/US11360783B2/en active Active
-
2020
- 2020-07-10 TW TW109123282A patent/TWI813887B/zh active
- 2020-07-28 CN CN202010735934.5A patent/CN113064637B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12112176B1 (en) | 2023-03-15 | 2024-10-08 | Quanta Computer Inc. | Selective firmware placement during initialization of compute systems |
TWI866411B (zh) * | 2023-03-15 | 2024-12-11 | 廣達電腦股份有限公司 | 用於初始化計算系統的電腦實施方法、電腦程式產品、以及計算系統 |
TWI859090B (zh) * | 2024-03-14 | 2024-10-11 | 系微股份有限公司 | 遠端掃描韌體漏洞的方法及其系統 |
Also Published As
Publication number | Publication date |
---|---|
CN113064637B (zh) | 2024-03-29 |
US20210200555A1 (en) | 2021-07-01 |
TWI813887B (zh) | 2023-09-01 |
US11360783B2 (en) | 2022-06-14 |
CN113064637A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI813887B (zh) | 從分離的bios映像檔啟動的方法及系統 | |
US11385908B1 (en) | Cloning of firmware configuration settings using rest over IPMI interface | |
US10990411B2 (en) | System and method to install firmware volumes from NVMe boot partition | |
US10860308B1 (en) | Peripheral device firmware update using rest over IPMI interface firmware update module | |
US10776492B2 (en) | Multi-stage firmware update method and system therefor | |
US9507604B2 (en) | Boot method and boot system | |
US8380973B2 (en) | Method and apparatus to support separate operating systems in partitions of a processing system | |
JP6318425B2 (ja) | リードオンリメモリのブートコードパッチ | |
US20170228228A1 (en) | Remote launch of deploy utility | |
US8352721B1 (en) | Initiating an operating system boot from firmware | |
US10853052B1 (en) | Peripheral device firmware update using rest over IPMI interface firmware shell utility | |
US20090113408A1 (en) | System synchronization in cluster | |
US10572242B1 (en) | Firmware update using rest over IPMI interface | |
US10489142B1 (en) | Secure firmware integrity monitoring using rest over IPMI interface | |
US10776286B1 (en) | Rest over IPMI interface for firmware to BMC communication | |
CN110879720A (zh) | 可配置服务器及配置服务器的功能的方法 | |
US12182602B2 (en) | Provisioning DPU management operating systems using firmware capsules | |
JP6198843B2 (ja) | ハードディスクシステム操作方法、ストレージシステム及びプロセッサ | |
US11586536B1 (en) | Remote configuration of multi-mode DIMMs through a baseboard management controller | |
US9619245B1 (en) | Method and apparatus for configuring and booting with more than one protocol using single option ROMBIOS code on multi function converged network adapter | |
US11204704B1 (en) | Updating multi-mode DIMM inventory data maintained by a baseboard management controller | |
US11169740B1 (en) | Simultaneous initiation of multiple commands for configuring multi-mode DIMMS using a BMC | |
TWI812521B (zh) | 基於硬碟類型的開機方法 | |
US12045478B1 (en) | Remote configuration of multi-mode DIMMs through firmware | |
US11204752B1 (en) | Intelligent migration of firmware configuration settings |