TWI911961B - 用於減少運算服務停機時間的運算系統 - Google Patents
用於減少運算服務停機時間的運算系統Info
- Publication number
- TWI911961B TWI911961B TW113139727A TW113139727A TWI911961B TW I911961 B TWI911961 B TW I911961B TW 113139727 A TW113139727 A TW 113139727A TW 113139727 A TW113139727 A TW 113139727A TW I911961 B TWI911961 B TW I911961B
- Authority
- TW
- Taiwan
- Prior art keywords
- bmc
- memory
- bios
- root
- trust
- Prior art date
Links
Abstract
一種運算系統包括CPU、藉由第一通訊協定耦接至CPU的BMC及開機非揮發性記憶體。BMC包括第一通訊協定控制器、BMC記憶體、信任根及內部BMC匯流排。內部BMC匯流排用於通訊地耦接至BMC記憶體、第一通訊協定控制器及信任根。開機非揮發性記憶體藉由第一通訊協定控制器耦接至BMC。開機非揮發性記憶體用於儲存BIOS韌體及/或BMC韌體。
Description
本發明大致有關於於運算系統中的啟動程序,更具體地,大致有關於用以於運算系統中減少因韌體檢查造成的啟動延遲的系統及方法。
運算系統(例如伺服器、桌上型電腦、筆記型電腦等)可於不同環境中應用其廣泛的功能。一些運算系統依靠電池運作,可能需要以低功耗運作以降低電池的耗電量。另一方面,一些運算系統可能插入電源插座,低功耗運作並沒有比運算效能來的重要。許多的運算系統即使插入電源插座仍然平衡其性能及功耗。無論何種類型的運算系統被使用,運算系統通常在給電啟動時初始化。初始化運算系統的程序被稱為開機(或啟動)。根據現存運算系統中的特定硬體元件,各運算系統可具有不同的啟動序列或程序。通常,運算系統會儲存啟動韌體(boot firmware)於由信任根(root of trust)驗證的非揮發性記憶體中。信任根通常在運算系統使用啟動韌體之前驗證啟動韌體。此特定程序可能會因增加啟動時間而降低啟動效能。本揭露的方向為解決有關於啟動效能的問題。
用語實施例和類似用語旨在廣義地指代本發明和以下申請專利範圍的所有主題。應當理解,包含這些用詞的陳述不應限制本發明所述的主題或限制以下申請專利範圍的含義或範圍。本發明所涵蓋的實施例由以下申請專利範圍而非本發明內容限定。發明內容是本發明的各個方面的高級概述,並且介紹了一些概念,這些概念在下面的詳細描述部分中進一步描述。發明內容並不旨在標識所要求保護的主題的關鍵或必要特徵,也不旨在單獨用於確定所要求保護的主題的範圍。藉由參考本發明的整個說明書、任何或所有圖式以及每個請求項的適當部分,應當可理解本主題。
根據本揭露之某方面,一種運算系統被提供。運算系統包括中央處理單元(central processing unit, CPU),藉由第一通訊協定耦接至中央處理單元的基板管理控制器(baseboard management controller, BMC)及開機非揮發性記憶體。基板管理控制器包括第一通訊協定控制器、BMC記憶體、信任根(root of trust)及內部BMC匯流排。內部BMC匯流排用於通訊地耦接至BMC記憶體、第一通訊協定控制器及信任根。開機非揮發性記憶體藉由第一通訊協定控制器耦接至基板管理控制器。開機非揮發性記憶體被用於儲存基本輸入/輸出系統(basic input/output system, BIOS)韌體及/或BMC韌體。
以上發明內容並非意旨在表示本揭露的每個實施例或每個方面。相反地,前述發明內容僅提供本揭露闡述的一些新穎性方面和特徵示例。當結合所附圖式和申請專利範圍時,從實施本發明的代表性實施例和模式的以下詳細描述中,本揭露的上述特徵和優點、以及其他特徵和優點將變得顯而易見。鑑於參照圖式所進行的各種實施例的詳細描述和以下提供的簡述,本揭露的其他方面對於本領域中的通常知識者將是顯而易見。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
伺服器應用多個CPU核心、記憶體模組及輸入輸出(I/O)周邊作為基礎平台,提供多種的即時商用運算服務。初始化支援此平台運作的硬體及I/O周邊的韌體,通常需要被更新以適配新的技術需要。韌體更新通常必須考慮到安全性(security)、正規性或完整性(integrity)及需要的復原機制。通常,伺服器具有於管理控制台、硬體與韌體之間的高度整合設計,以達成一系列的對韌體元件的正規性檢查、更新及復原程序。這些程序的複雜性及被延長的停機時間,使伺服器的商用服務的使用效率降低,也增加了成本。對於雲端供應商來說,伺服器停機每小時造成的直接盈利損失可能約為五百萬美金。因此,改善有關於伺服器停機的部分可同時改善伺服器的功能及正常運作的時間。
於運算系統中,處理器(例如中央處理單元,CPU)通常牽涉(involved)BIOS(基本輸入/輸出系統)的啟動。
提供兩個非揮發性記憶體模組於同一個運算系統上,其只用於初始化運算系統是浪費的。所提供的第二非揮發性記憶體模組可能佔據主機板上本可用於其他元件可以使用的空間。主機板上的實體空間是有限的,且電腦工程的尺寸趨勢係於主機板上安裝盡可能多的硬體的目標,以增強運算系統的功能。此外,尺寸趨勢有時涉及減小主機板的尺寸,使運算系統可以具有較小的外形尺寸。減少硬體元件,例如,減少提供於主機板上的非揮發性記憶體模組的數量,可以減少關於打造運算系統的財務成本。因此,本揭露提供了用於使用單一非揮發性記憶體模組以啟動BIOS及BMC兩者的系統及方法。配合共用單一非揮發性記憶體模組的啟動序列同樣被提供。
參考所附圖式描述各種實施例,其中所有圖式使用相同的元件標號來表示相似或均等的元件。圖式不一定按比例繪製並且僅被提供以說明本揭露的方面和特徵。闡述許多具體細節、關係和方法以提供對本揭露的某些方面和特徵的全面理解,儘管相關領域的具有通常知識者將認識到這些方面和特徵可以在沒有一個或多個的情況下實施具體細節、與其他關係、或與其他方法。在某些情況下,出於說明的目的,沒有詳細示出眾所周知的結構或操作。此處公開的各種實施例不一定受所說明的動作或事件的順序限制,因為一些動作可能以不同的順序發生和/或與其他動作或事件同時發生。此外,並非所有圖式的動作或事件都是實現本揭露的某些方面和特徵所必需的。
為了本詳細描述的目的,除非特別聲明,並且在適當的情況下,否則單數包括複數,反之亦然。「包括」一詞的意思是「包括但不限於此」。此外,近似的詞語,例如「大約」、「幾乎」、「基本上」、「大約」等,在本揭露中可例如用於表示「在」、「接近」、「接近於」、或「在3-5%內」、或「在可接受的製造公差範圍內」、或其任何邏輯組合。類似地,術語「垂直」或「水平」旨在各別另外包括垂直或水平方向的「3-5%內」。此外,諸如「頂部」、「底部」、「左」、「右」、「上方」和「下方」等方向詞旨在與參考圖式中描述的等同方向相關;從被引用的對象或元件上下文中理解,例如從對象或元件的常用位置;或如此處所述。
參照於第1圖,提供了運算系統100的功能方塊圖。運算系統100的多個示例包括了伺服器、筆記型電腦、桌上型電腦、智慧型手機等。運算系統100包括電路板102。電路板102可為印刷電路板(printed circuit board, PCB),作用為作為連接至運算系統100的所有元件及外部周邊裝置的通訊主鏈。於一些示例中,電路板102為包括用於電源及訊號隔離的銅連接線及銅平面的主機板。主機板可包括處理器104、(隨機存取記憶體)RAM模組106、BMC 108、BIOS 110、信任根112及/或一或多個(輸入/輸出)I/O埠114。
雖然於第1圖中示出為單數,處理器104可為一或多個處理器(例如一個處理器、兩個處理器、三個處理器等)。處理器104可包括多個中央處理單元(central processing unit, CPU)及多個圖形處理單元(graphical processing unit, GPU)。於一些實施方式中,多個GPU獨立於多個CPU,且藉由於電路板102上的一或多個 I/O埠114與多個CPU通訊。例如,I/O埠114包括用於接收多個GPU的多個周邊組件快速互連(peripheral component interconnect express, PCIe)插槽,及多個CPU可藉由PCIe匯流排標準來管理多個GPU的初始化計運作。多個GPU耦接至影像介面,允許多個監視器或螢幕連接至電路板102。處理器104可被通訊地耦接至電路板102的平台路徑控制器(platform controller hub, PCH)或晶片組。電路板102的晶片組可提供通訊標準的存取,例如串列進階技術附接(serial advanced technology attachment, SATA)裝置、PCIe裝置、網路介面卡(network interface card, NIC)、冗餘式儲存陣列(redundant array of inexpensive disks, RAID)卡、小型電腦系統介面(small computer system interface, SCSI)卡、場可程式化閘極陣列(field programmable gate array, FPGA)卡等。
RAM模組106可包括雙倍數據速率及同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory, DDR SDRAM)的雙列直插記憶體模組(dual inline memory module, DIMM)。RAM模組106為高速揮發性記憶體模組,可作為用於處理器104的主記憶體。處理器104的快取記憶體或暫存記憶體不包括處理器104所需的資訊時,使用處理器 104 的主記憶體。RAM模組106比較於處理器104的快取記憶體或暫存記憶體,為較高容量的記憶體。RAM模組106可代表多個RAM模組(例如多個DIMM,例如,兩個DIMM、四個DIMM、八個DIMM等)。
BMC 108為用於管理計算系統 100運作的專用控制器(或處理器)。於一些實施方式中,BMC 108致能運算系統100的遠端監控,具有至運算系統100的不同組件的通訊頻道。例如, BMC 108可允許風扇速度、溫度感測器、硬碟失效、供電失效、操作系統失效等的遠端監控。BMC 108可包括內部暫存快取記憶體,助於BMC 108對機器可讀取指令的處理。多個示例BMC包括ASPEED AST2300、AST2400、AST2500或AST2600等。
BIOS 110代表提供於電路板102上的唯讀記憶體(read only memory, ROM)或快閃晶片,允許運算系統100的存取及基本設定。於運算系統100啟動時,BIOS 110包括指令(或是程式碼)如何載入基本電腦硬體(例如一些先前討論的元件,像是GPU、鍵盤介面、滑鼠介面等)。BIOS 110包括自我測試,當運算系統100開啟時運行,以確保運算系統100適當的符合開機的需求。自我測試可參照為BIOS開啟自我測試(power-on self-test, POST)。當運算系統100於BIOS開啟自我測試(POST)失敗時,通常提供一系列的警示聲。警示聲的形式可指示何種硬體元件失效。BIOS自我測試(POST)可挑出基本問題,例如,BIOS開啟自我測試(POST)可提供基本記憶體檢查(例如檢查可被寫入至記憶體或是從記憶體讀取的步驟)、基本儲存檢查(例如檢查硬碟啟動及接受指令及/或旋轉及允許存取)、基本輸入及輸出裝置的檢查(例如檢查鍵盤有無卡鍵或鍵盤或滑鼠至少有一者連接)等。
於BIOS 110中的程式碼可因不同原因而更新。於一示例中,BIOS 110的韌體更新可包括驅動程式更新以更好的控制周邊裝置,例如滑鼠及鍵盤。BIOS的韌體更新可包括增加額外功能,例如更新基於文字的BIOS至基於圖形使用者介面(graphical user interface, GUI)的BIOS。通常,當對BIOS 110韌體更新時, BIOS的設定可以被覆寫。
信任根112為執行重要的安全功能的複雜可程式化邏輯裝置(complex programmable logic device, CPLD)。信任根112可包括金鑰(keys),用於加密功能(cryptographic function),及可啟動一安全啟動程序。信任根112用以驗證BMC及/或BIOS映像(image)。信任根112用於驗證更新的BIOS映像、更新的BMC映像等。信任根112可於被處理器104使用前驗證這些映像。
一或多個I/O埠114可包括SATA埠以連接匯流排轉接器至儲存裝置,例如硬碟、固態硬碟(solid state drives, SSD)、光碟等。I/O埠114可包括更多PCI或PCIe埠,用於接收介面卡,例如乙太網路卡、無線網路(Wi-Fi)卡、藍芽(Bluetooth)卡、音效卡等。I/O埠114可包括通用序列匯流排(universal serial bus, USB)埠以連接周邊裝置或高容量儲存裝置。
雖然於第1A圖中只有提供單一電路板102提供,運算系統100可包括多個具有多個電路板的節點。於一些實施方式中,各電路板為代表不同伺服器節點的伺服器電路板。於一些實施方式中,單一BMC(例如BMC 108)可管理多個電路板的運作。於一些實施方式中,多個BMC可管理多個電路板的運作,使對應的電路板具有對應的BMC。
參照於第1B圖,繪示於先前技術中用於伺服器主機板132上的BIOS快閃晶片144及BMC快閃晶片146的帶外管理(out-of-band, OOB, management)及系統130的功能方塊圖。系統130包括伺服器主機板132及外部網路134。伺服器主機板132透過乙太網路通訊協定136取得至外部網路134的存取。乙太網路通訊協定136可支援帶外(out-of-band, OOB)通訊。
伺服器主機板132為提供於運算系統(例如運算系統100)中的電路板。伺服器主機板132包括電腦處理器架構138、信任根140、BMC 142、BIOS快閃晶片144、BMC快閃晶片146及SPI多工器148a、SPI多工器148b。電腦處理器架構138可為x86架構或ARM架構。
伺服器的啟動韌體,例如BIOS或UEFI(Unified Extensible Firmware Interface),儲存於非揮發性記憶體中。於第1B圖中,非揮發性記憶體為BIOS快閃晶片144。BIOS快閃晶片144具有符合任何工業標準介面的介面,可連接於核心處理器(包括於電腦處理器架構138)及可抹除可程式化唯讀記憶體裝置之間。於伺服器平台開啟電源的期間,信任根140及被指定的處理器單元檢查BIOS快閃晶片144的部分的正規性及有效性。接著,啟動韌體(例如BIOS或UEFI)從非揮發性記憶體(例如BIOS快閃晶片144)被載入至系統記憶體(包括於電腦處理器架構138中)。核心處理器接著執行初始化程序,直到伺服器的作業系統被載入。
啟動韌體的更新可被執行於帶內(in-band)或帶外。當啟動韌體被更新時,信任根140寫入新的韌體內容至非揮發性記憶體的正確區塊。信任根140可驗證目的地分別為BIOS快閃晶片144或BMC快閃晶片146的新的BIOS映像及/或BMC映像。用語「停機時間(downtime)」是指在伺服器接收啟動韌體更新指令之後,伺服器系統、裝置或應用程式的核心服務(內部和/或外部)不可使用或無法使用(unavailability)。啟動韌體更新指令通常接著會下載一系列的啟動韌體內容,認證(verify)所下載的啟動韌體內容的檢查,應用下載的啟動韌體內容的更新,或若是下載的啟動韌體內容無法通過驗證,恢復較舊啟動韌體版本的還原程序。
電腦處理器架構138透過SPI多工器148a使用SPI協定從BIOS快閃晶片144進行讀取。BMC快閃晶片146透過SPI多工器148b接收BMC映像。信任根140設定及控制SPI多工器148a及SPI多工器148b以允許BIOS及/或BMC映像的程式化。當BIOS及/或BMC映像被電腦處理器架構138及/或BMC142使用時,信任根140同樣設定及控制SPI多工器148a及SPI多工器148b。
信任根140於BIOS快閃晶片144及/或BMC快閃晶片146上執行驗證。信任根140連接BIOS快閃晶片144及/或BMC快閃晶片146以檢查內容是否「正確(correctness)」。例如,信任根140可以檢查內容是否有正確的簽章(signature)或校驗和(checksum),及所儲存的內容是否完整。信任根140在每次啟動程序前執行這些檢查。只有在檢查完成之後,信任根140才會致能接續的啟動程序,及允許電腦處理器架構138中的核心處理器從BIOS快閃晶片144讀取,以設定及開啟伺服器所提供的服務。於BIOS映像及/或BMC映像的更新期間,信任根140連接SPI介面及程式化對應的映像至對應的快閃晶片。
信任根140通常於每次伺服器啟動時執行檢查,以確保BIOS及/或BMC映像的正規性。若BMC 142因失去電源及BIOS及/或BMC映像損壞而沒有正確升級或更新BIOS及/或BMC映像,復原機制會被觸發。於一些情形中,復原機制包括讀取復原映像回復到BIOS及/或BMC映像。伺服器主機板132提供複雜的硬體連接及韌體設計,以確保BIOS及/或BMC映像的正規性。本揭露的多個實施例提供了用於減少有關於第1B圖的硬體連接及韌體設計的複雜性的系統及方法。
通常,SPI匯流排被使用作為於電腦處理器架構138的核心處理器與可抹除可程式化唯讀記憶體(例如BIOS快閃晶片144)之間的通訊介面。核心處理器於內部創建SPI主控制邏輯,並與被設置為SPI從機(slave)的BIOS快閃晶片144通訊。通訊透過用於讀取及寫入操作的SPI工業標準介面(例如chip select (CS)、synchronous clock (SCLK)、master out slave in (MOSI)及master in slave out (MISO))來達成。無論是於伺服器啟動期間,其信任根140必須在核心處理器讀取BIOS內容之前執行內容安全性檢查,還是於BIOS更新期間,需要完成BIOS內容的先前備份,信任根140及BMC 142兩者中的不同的硬體邏輯電路要互相配合才能達成此目標。此外,信任根140、BIOS快閃晶片144及BMC快閃晶片146的電路設計中的複雜性增加,因不同的SPI主機(master)使用多個多工器用於對非揮發性記憶體 (例如BIOS快閃晶片144及BMC快閃晶片146)的讀取/寫入操作。
參照於第2圖,示出了根據本揭露之某方面提供的用於電路板上連接BIOS及BMC快閃晶片206的帶外管理及系統200的功能方塊圖。電路板類似或相同於電路板102(第1A圖)。電路板可被識別為伺服器主機板202。系統200包括伺服器主機板202及外部網路134。類似於第1B圖,伺服器主機板202透過乙太網路通訊協定136取得對於外部網路134的存取。乙太網路通訊協定136僅被提供作為一個示例,支援帶外通訊的任何的通訊協定都可被使用。雖然於此處所使用的帶外通訊作為一個示例,外部網路134的存取同樣可能使用帶內通訊。因此,支援帶外通訊或帶內通訊的任何通訊協定都可被使用。同樣的,通訊協定不需要為有線的通訊協定。無線通訊協定,例如藍芽、WiFi等都可被使用以得到對於外部網路134的存取。
伺服器主機板202為運算系統中(例如運算系統100)所提供的電路板。伺服器主機板202包括電腦處理器架構138、BMC 204及BIOS及BMC快閃晶片206。於一些實施方式中,BIOS及BMC快閃晶片206以單一快閃晶片提供。於一些實施方式中, BIOS及BMC快閃晶片206包括具有用於儲存BIOS映像的第一快閃晶片及用於儲存BMC映像的第二快閃晶片的多個快閃晶片。BIOS及BMC快閃晶片206為開機非揮發性記憶體(boot non-volatile memory)。開機非揮發性記憶體為可抹除唯讀記憶體或用於儲存BIOS映像及/或BMC映像的一些其他記憶體。
電腦處理器架構138包括核心處理器(例如處理器104 (第1A圖)中的CPU),核心記憶體(例如處理器104內部記憶體、有關於RAM模組106的記憶體等)。電腦處理器架構138被用於運行具有伺服器主機板202的伺服器的作業系統。電腦處理器架構138通常從開機非揮發性記憶體獲取BIOS韌體,以在啟動進入作業系統之前初始化與伺服器有關的硬體及服務。電腦處理器架構138可使用第一通訊協定從開機非揮發性記憶體獲取BIOS韌體。於第2圖中,第一通訊協定被提供為SPI介面226。SPI介面226有助於BMC 204與電腦處理器架構138的核心處理器之間的通訊。
BMC 204可包括SPI匯流排模擬器212。SPI匯流排模擬器212可運行於從模式(slave mode)。SPI匯流排模擬器212用於回應來自於電腦處理架構138的核心處理器對開機非揮發性記憶體的讀取及寫入要求。
BMC 204包括SPI控制器210。 SPI控制器210為第一通訊協定控制器的一個示例,有助於BMC 204與BIOS及BMC快閃晶片206之間的通訊。SPI介面222指示BMC 204透過SPI介面222讀取及/或寫入至BIOS及BMC快閃晶片206。
BMC 204可包括BMC處理器214、BMC記憶體216、信任根218及乙太網路控制器220。BMC處理器214及BMC記憶體216配合運作以提供有關於BMC 204的服務。於一些實施方式中,BMC處理器214為四核心處理器。信任根218提供類似於信任根112的功能。乙太網路控制器220用於透過乙太網路通訊協定136與外部網路134通訊。如上述所討論的,乙太網路只作為一個示例。乙太網路控制器220可為用於提供帶內及/或帶外通訊的任何網路控制器。BMC處理器214、BMC記憶體216、SPI匯流排模擬器212、SPI控制器210、信任根218及乙太網路控制器220藉由內部BMC匯流排224通訊地彼此耦接。
內部BMC匯流排224可為使用不同於SPI通訊協定的高速匯流排。內部BMC匯流排224有助於BMC 204內部多個元件之間的通訊。部分BMC記憶體216可被分配以用於儲存BIOS韌體及/或BMC韌體。BMC記憶體216被分配用於儲存BIOS韌體及/或BMC韌體的部分可由信任根218透過內部BMC匯流排224進行管理。BMC 記憶體 216 的容量可以比 BIOS 及 BMC 快閃記憶體 206 的容量大幾個數量級。於一些實施方式中,BMC記憶體216可具有至少1GB(gigabyte)的容量,且BIOS及BMC快閃晶片206可具有少於128MB(megabyte)的容量。於一些實施方式中, BMC記憶體216可約為16GB,且BIOS及BMC快閃晶片206可約為64MB。於伺服器主機板202中,因信任根218提供於BMC 204內,BIOS韌體與電腦處理器架構138的核心處理器的通訊透過BMC 204。
於系統200中,電腦處理器架構138不需知道 BIOS及BMC快閃晶片206的位置。因BMC記憶體216有非常大的容量, 其可保留BIOS韌體的多個版本。例如信任根218可於BMC記憶體216內為第一BIOS韌體分配記憶體位置或空間,及當第一BIOS韌體更新為第二BIOS韌體時,信任根218可於BMC記憶體216內創建用於第二BIOS韌體的空間。信任根218可於任何時間檢查第二BIOS韌體的內容,不需要等到伺服器重新啟動。減少對於BIOS及BMC快閃晶片206的讀取或寫入量,有助於快閃記憶體的使用壽命。
於一些實施方式中,SPI匯流排模擬器212回應核心處理器於SPI工業標準介面上的讀取及寫入要求。 核心處理器讓這些要求到達開機非揮發性記憶體(例如BIOS快閃晶片),但是被BMC 204及BMC記憶體216所截取的SPI工業標準介面訊號被用於回應於核心處理器於SPI工業標準介面上的讀取及寫入要求。SPI訊號包括CS、SCLK、MOSI及MISO,可透過BMC 204的四個通用輸入輸出(general purpose Input/Output, GPIO)接腳模擬(emulated)。BMC 204可使用有關的新運行服務(SPI模擬器運行服務)執行這些模擬,甚至可以使用BMC 204的場可程式化閘極陣列(field programmable gate array, FPGA)改善部分協定要求/回應的效能。SPI控制器210可從BIOS及BMC快閃晶片206讀取數據,從而使BIOS及BMC快閃晶片206成為任何人都可讀取及/或寫入的從裝置。比較於第1B圖的伺服器主機板132,用於對BIOS及BMC快閃晶片206讀取及寫入的通訊路徑及協定被簡化。於BMC內部的程式碼可模擬上述行為(例如FPGA邏輯)。
第3圖示出根據本揭露之某方面的,當交流(AC)電源開啟時核心處理器302、BMC 204與BIOS及BMC快閃晶片206之間的通訊300的流程圖。核心處理器302為有關於電腦處理器架構138 (第2圖)的核心處理器。於第2圖提供的BMC 204的軟體及硬體元件運行不同的服務,包括SPI模擬運行服務304、信任根服務306及SPI BIOS讀取器服務308。SPI模擬運行服務304實現上述與SPI匯流排模擬器212 (第2圖)有關的功能。信任根服務306實現上述與信任根218 (第2圖)有關的功能。SPI BIOS讀取器服務308實現與上述SPI控制器210 (第2圖)有關的功能。
於第3圖中,隨著交流電源開啟(AC power ON)及直流電源關閉(DC power off),如步驟320所指示的,BMC運行於直流待機電源(DC standby power)。於一些實施方式中,將伺服器插入至交流電源插座(AC outlet),就算於伺服器上的電源開關沒有被開啟,還是會提供直流待機電源。第3圖同樣提供當伺服器第一次插入至交流電源插座時可能會出現的動作。步驟320指示當交流電源為可用時,BMC 204開機(power on)且於待機電源運行。
於第一次插入至交流電源插座時,在BMC 204開機(power on)之後(步驟320),BMC記憶體216被假設為沒有包含有效的BIOS二進位映像(例如有效的BIOS韌體)。因此,如步驟326中所提供的,BMC記憶體216被用於BIOS二進位映像的部分被解除封存(unsealed)及未啟動的(inactivated)。
於步驟322中,SPI BIOS讀取器服務308從BIOS及BMC快閃晶片206使用SPI介面222讀取BIOS二進位映像。於步驟324中,SPI BIOS讀取器服務308上傳BIOS二進位映像至BMC記憶體216。BMC記憶體216的一部分由信任根218 (第2圖)分配以用於儲存及維護BIOS二進位映像。BMC記憶體216的此部分於本文後續將被稱為BMC分配記憶體(BMC allocated memory)。SPI BIOS讀取器服務308上傳從BIOS及BMC快閃晶片206讀取的BIOS二進位映像至BMC分配記憶體。
於步驟328中,信任根服務306起始安全程序以檢查BMC分配記憶體中的內容,確保BIOS二進位映像為有效或合法的(legitimate)。在成功地使用公鑰(public key)驗證有關於BIOS二進位映像的簽章後,於步驟330中,信任根服務306將BIOS SPI記憶體的讀取/寫入的存取權限(許可)授權給SPI模擬運行服務304。於此,讀取/寫入的存取權限被授權至與SPI模擬運行服務304連接的多個主裝置,以從BMC記憶體216的BMC分配記憶體讀取及/或寫入至BMC分配記憶體。於步驟332,BMC分配記憶體的狀態被指示為被封存(sealed)。被封存的狀態意於指示現在儲存於BMC分配記憶體中的BIOS二進位映像已經由信任根服務306驗證。
步驟340指示直流電源開啟的狀態。例如於伺服器上的電源開關被開啟,使伺服器開始啟動程序。直流電源開啟事件啟動POST程序。
在POST程序期間,於步驟342中,核心處理器302使用SPI介面226,發送讀取BIOS開機區段(boot sector)的要求至SPI模擬運行服務304。核心處理器302可根據由核心處理器302所提供的位置或位置範圍要求對BIOS開機區段的特定部分的讀取。於步驟344中,SPI模擬運行服務304從BMC分配記憶體讀取BIOS二進位映像中被要求的部分。於步驟346中,SPI模擬運行服務304提供BIOS二進位映像的被讀取部分至核心處理器302。透過步驟342至步驟346,核心處理器302儲存BIOS二進位映像的副本(copy)於與核心處理器有關的記憶體中。SPI介面226用於接收BIOS二進位映像的副本。為了簡要及清楚說明,此BIOS二進位映像的副本被稱為核心副本BIOS映像。
具有於與核心處理器302有關的記憶體中的核心副本BIOS映像,核心處理器302可使用核心副本BIOS映像以進一步執行有關於POST程序的工作。於步驟348中,核心處理器302警示信任根服務306 POST程序已完成。
於步驟350中,信任根服務306設定BMC分配記憶體的狀態為被啟動。被啟動的狀態指示於POST程序期間被核心處理器302所使用BIOS二進位映像與儲存於BMC分配記憶體中的BIOS二進位映像相同。步驟352指示BMC記憶體216的BMC分配記憶體的狀態為被封存及被啟動的。於一些實施方式中,狀態以記憶體區域的旗標(flag)來指示, 其中單一位元可以指示BMC分配記憶體的狀態為被封存的,其他單一位元可以指示其為被啟動的。兩者的旗標可設定(asserted)用以指示被封存及被啟動,以及沒有任何旗標被設定則係指示被解除封存及未啟動的。旗標中的一者可被設定以指示被封存或被啟動的。第3圖示出了信任根服務306於直流待機電源期間可執行驗證及有效性檢查,且當伺服器於第一次被啟動時不需要執行檢查。這可以節省於啟動程序所需的時間,特別是當信任根服務306進行的驗證及有效性檢查在直流電源被開啟前已經完成時。
第4圖示出根據本揭露之某方面的當直流(DC)電源開啟時核心處理器302、BMC 204與BIOS及BMC快閃晶片206之間的通訊400的流程圖。當伺服器被關閉且運行於直流待機電源的示例情況可適用於第4圖的示例。於此情況中,通訊300(第3圖)已經發生,使BMC分配記憶體的狀態為被啟動的及被封存。
步驟402指示當BMC分配記憶體被啟動時,信任根服務306可略過儲存於BMC記憶體216的BMC二進位映像的有效性檢查。因此,不需要執行類似於第3圖的步驟328至步驟332的步驟。此外,步驟404指示由於BMC分配記憶體的狀態被指示為被封存,因此SPI BIOS讀取器服務308可略過儲存於BIOS及BMC快閃晶片206中的BIOS二進位映像檔案的讀取。因此不需要執行類似於第3圖的步驟322至步驟324的步驟。
步驟440指示直流電源開啟的狀態。例如,於伺服器上的電源開關被開啟,使伺服器開始了啟動程序,類似於步驟340。直流電源開啟的事件開始了POST程序。POST程序的發生已經於前述參照於第3圖說明。例如,步驟442與步驟342相似或相同,步驟444與步驟344相似或相同,步驟446與步驟346相似或相同及步驟448與步驟348相似或相同。步驟452表示BMC分配記憶體的狀態保持於被封存及被啟動。第4圖說明不需要於每一次伺服器被重新啟動時的啟動程序中檢查BIOS二進位映像,於第1B圖的伺服器架構相反。
於一些實施方式中,第3圖及第4圖可如下列被組合。當BMC 204使用交流電源被開啟時,可假設最佳的BIOS二進位映像於製造期間已經被良好的燒錄於BIOS及BMC快閃晶片206中。新的服務名為SPI BIOS讀取器服務308可以讀取儲存於BIOS及BMC快閃晶片206中的BIOS二進位映像的完整內容至BMC分配記憶體。接著,新的BMC安全機制(例如信任根服務306)對於BMC分配記憶體中的內容進行正規性及安全性檢查,以確保內容的有效性。一旦經過確認,信任根服務306通知SPI模擬運行服務304以允許核心處理器302對於BMC記憶體216的所有讀取及寫入回應。
在核心處理器於直流電源中啟動之後,核心處理器302透過SPI模擬運行服務304從BMC分配記憶體取出BIOS二進位映像,及執行POST程序直至完成。BMC分配記憶體於POST程序完成時被設定為被啟動模式。在有效安全認證之後,於各直流電源週期,BMC可保持BIOS二進位映像於BMC分配記憶體中,無需重複的正規性及安全性檢查,比較於第1B圖的伺服器架構,減少了執行POST程序所需要的時間。
第5圖示出根據本揭露之某方面的當BIOS二進位映像被升級時,BMC 204與BIOS及BMC快閃晶片206之間的通訊500的流程圖。帶外管理502代表遠端運算裝置(例如由管理者使用的運算裝置或運算系統)。帶外管理502可透過乙太網路與BMC 204通訊,如先前所說明的。於第5圖中,乙太網路連接可於內部網路中(例如內部網路506)。BMC 204可運行一或多個服務,有助於涵蓋內部網路506的通訊。例如,於第5圖中, BMC 204運行Redfish服務504。
當直流電源被關閉時,帶外管理(OOB management)發生,且BMC 204運行於直流待機電源。於第5圖的情形中,步驟512指示BMC分配記憶體為被啟動的。步驟514指示BMC分配記憶體為被封存的。因此,類似於步驟404(第4圖),BIOS二進位映像檔案的讀取可以被略過。
於步驟516中,帶外管理502提供BMC 204執行BIOS 升級的命令至Redfish服務504。命令指示Redfish API/redfish/v1/UpdateService可使用於BIOS升級。於步驟518中,Redfish服務504通知信任根服務306,BIOS升級開始。於步驟520中,回應於BIOS升級開始,信任根服務306設定BMC分配記憶體為未啟動的。步驟522指示BMC分配記憶體為未啟動的。
於步驟524中,新的BIOS二進位映像透過Redfish服務504被上傳至BMC分配記憶體。當 BMC分配記憶體被以新的BIOS二進位映像取代,BMC分配記憶體轉變為解除封存的。於步驟526中,信任根服務306開始安全程序以檢查於BMC分配記憶體中的內容,確保BIOS二進位映像為有效的,類似於步驟328(第3圖)。當被驗證為有效的,於步驟528中,信任根服務306授權BIOS SPI記憶體的讀取/寫入的存取權限,類似於步驟330(第3圖)。
步驟508指示直流電源重啟(DC power cycle),其中直流電源被開啟。核心處理器302如上述所討論的執行POST程序(例如參照於第3圖)。於步驟548中,核心處理器302警示或通知信任根服務306關於POST程序的完成,類似於步驟348或步驟448。隨著POST程序的完成,於步驟550中,信任根服務306設定BMC分配記憶體的狀態為被啟動的。步驟552指示BMC分配記憶體為被封存及被啟動的。
於步驟560中,信任根服務306排程BMC分配記憶體的備分(例如複製BMC分配記憶體)。步驟510指示直流電源被關閉。使用直流待機電源,於步驟562中,信任根服務306通知SPI BIOS讀取器服務308備分新的BIOS二進位映像至BIOS及BMC快閃晶片206。於步驟564中,SPI BIOS讀取器服務308從BMC記憶體216讀取新的BIOS二進位映像。於步驟566中,SPI BIOS讀取器服務308將新的BIOS二進位映像程式化至BIOS及BMC快閃晶片206。
本揭露的多個實施例使用了BMC分配記憶體作為媒體以儲存更新的BIOS二進位映像(例如新的BIOS二進位映像)。信任根服務306檢查新的BIOS二進位映像及排程新的BIOS二進位映像的備份程序至BIOS及BMC快閃晶片206。於一些實施方式中,若信任根服務306無法驗證新的BIOS二進位映像(例如新的BIOS二進位映像為無效的),信任根服務306可從BIOS及BMC快閃晶片206執行復原動作。於第5圖中所提供的示例,減少了伺服器電源重啟及更新BIOS韌體所需的停機時間。
於一些實施方式中,因多個SPI主裝置而用於SPI匯流排電路及動作的SPI多工器148a及SPI多工器148b被移除。進一步,於每次伺服器直流電源開啟的常規安全檢查也不需要。本揭露的多個實施例提供在確認有效性及正確性之後, 檢查已從帶內或帶外程式化的BMC分配記憶體上更新的BIOS二進位映像,並使用公鑰驗證BIOS二進位映射的簽名。於未來的直流電源關閉的狀態,信任根服務306可排程備份BMC分配記憶體的更新的BIOS二進位映像至BIOS及BMC快閃晶片206。寫入BIOS及BMC快閃晶片206的排程可減少重複寫入至BIOS及BMC快閃晶片206,相較於第1B圖的架構,透過較低頻率的寫入而增加BIOS及BMC快閃晶片206的使用壽命。類似地,因有效性驗證及BIOS及BMC快閃晶片206的寫入發生於直流電源關閉狀態期間,伺服器的停機時間可以被更有效率的使用,且相較於第1B圖的架構,啟動程序可以更快速。當儲存於BMC記憶體216中時,BIOS二進位映像的安全被強化, 因為從伺服器的核心處理器302過來的任何於SPI介面226上的惡意攻擊可以被SPI匯流排模擬器212阻檔。
第6圖示出根據本揭露之某方面的BMC分配記憶體的狀態改變的流程圖600。
於狀態602中,伺服器由交流電源開啟(例如於前述的插入至交流電源插座)。於狀態602中,BMC分配記憶體為解除封存及未啟動的,BMC分配記憶體的BIOS二進位映像為失效的,及SPI模擬運行服務304沒有對於BMC分配記憶體讀取/寫入的存取權限。可參照步驟320及步驟326。
從狀態602開始,瞬態(transition)622於直流電源開啟之後發生,BIOS二進位映像被從BIOS及BMC快閃晶片206複製至BMC分配記憶體,信任根服務306認證被複製的BIOS二進位映像為有效的,及核心處理器302成功地完成POST程序。瞬態622導致狀態604。於狀態604中,伺服器正在運行,BMC分配記憶體為被封存及被啟動的,BMC分配記憶體的BIOS二進位映像為有效的,及SPI模擬運行服務304具有對BMC分配記憶體讀取及寫入的存取權限。
從狀態604開始,若交流電源關閉且接著被開啟,瞬態620發生以回到狀態602。若BIOS升級程序被啟動,瞬態628發生進入狀態610。於狀態610中,伺服器正在運行, BMC分配記憶體被更改至被封存及未啟動的,BMC分配記憶體的BIOS二進位映像被更改至無效的,及SPI模擬運行服務304保持對於BMC分配記憶體讀取及寫入的存取權限。從狀態604開始,若直流電源被關閉,瞬態630發生以到達狀態606。於狀態606中,伺服器運行於直流待機電源,BMC分配記憶體保持被封存及被啟動的, BMC分配記憶體的BIOS二進位映像為有效的,及SPI模擬運行服務304保持對於BMC分配記憶體讀取/寫入的存取權限。
從狀態606開始,若直流電源重新被開啟,瞬態632發生以回到狀態604。若交流電源被關閉且接著重新被開啟,瞬態620發生以回到狀態602。若BIOS升級程序開始,瞬態634發生以進入狀態608。於狀態608中,伺服器計繼續運行於直流待機電源,BMC分配記憶體被改變至被封存或未啟動的,BMC分配記憶體的BIOS二進位映像被設定為失效,且SPI模擬運行服務304保持對BMC分配記憶體的讀取/寫入存取權限。
從狀態608開始,若直流電源被重新開啟,BMC分配記憶體的BIOS二進位映像為有效的,POST程序被完成,接著瞬態624發生以回到狀態604。若交流電源被關閉且接著重新被開啟,瞬態620發生以回到狀態602。BMC分配記憶體的更新BIOS二進位映像為失效的(illegitimate或illegal),接著瞬態636出現以進入狀態612。於狀態612中,BMC分配記憶體保持被封存或未啟動的,BMC分配記憶體的BIOS二進位映像保持失效,及SPI模擬運行服務304保持對BMC分配記憶體的讀取/寫入存取權限。
當BMC分配記憶體的BIOS二進位映像為失效時,從狀態610同樣可到達狀態612。從狀態610開始,若直流電源重啟(例如直流電源開及關),BMC分配記憶體的更新BIOS二進位映像為有效的,且POST程序被成功的完成,接著瞬態626出現以進入狀態604。
從狀態612開始,在直流電源開啟之後,BIOS二進位映像被BIOS及BMC快閃晶片206複製到BMC分配記憶體。信任根服務306驗證複製的BIOS二進位映像為有效,核心處理器302成功地完成POST程序,瞬態622出現以到達狀態604。字母「A」指示狀態612至狀態604的連接。在復原程序及BIOS二進位映像從BIOS及BMC快閃晶片206中取回之後,從狀態612至狀態604中間的瞬態出現。
於伺服器上的核心處理器302及BMC 204為兩個獨立的運作生態系統。在交流電源被開啟之後,BMC 204開始本身的初始化,接著透過SPI模擬運行服務304提供核心處理器302所需的BIOS二進位映像以執行POST程序。BIOS二進位映像可透過帶外介面(OOB interface)於伺服器運行狀態或電源關閉的待機電源狀態被升級。本揭露的多個實施例使用BMC分配記憶體的兩個狀態以運作通用POST程序及升級後BIOS二進位映像的特定POST程序兩者。
此外,從伺服器的核心處理器302來看, BMC SPI模擬運行服務304可有效地將用於虛擬SPI快閃晶片的軟體及硬體需求標準化,其原因為由SPI匯流排模擬器212 (例如讀取/寫入/抹除)所提供的SPI訊號及協定為具有特定ID且固定的。因此,BMC 204可簡單地連接至不同的核心處理器平台,例如Intel或AMD,而不需考慮於伺服器核心處理器那邊的設定或相容性。第7圖至第9圖提供根據本揭露的多個特定方面的可用於橫跨多種核心處理器平台的流程及子流程的架構。
第7圖的圖式(a)為根據本揭露的多個特定方面的用於信任根服務的流程圖700。於步驟701中,信任根服務設定將變數「BMC分配記憶體」設置為解除封存及未啟動的。於步驟702中,信任根服務暫存或註冊(register)回呼程序(callback runtime)「BMC分配記憶體被更新(X)」。於步驟703中,信任根服務呼叫(invoke)「SPI BIOS讀取服務()」。於步驟704中,信任根服務呼叫「SPI模擬器運行服務啟動器()」。於步驟705中,信任根服務暫存或註冊(register)回呼程序「BIOS POST完成()」及「BIOS升級開始()」。
第7圖的圖式(b)為根據本揭露的多個特定方面的用於有關於步驟702的「BMC分配記憶體被更新(X)」的第一信任根服務子流程的流程圖710。於步驟711中,第一信任根服務子流程呼叫「驗證BIOS簽章()」。於步驟712中,根據有效性檢查的結果,第一信任根服務子流程判斷於步驟713及步驟718中,檢查BIOS二進位映像來自於BIOS及BMC快閃晶片206或來自於帶外。若有效性檢查指示為無效的BIOS簽章,且BIOS二進位映像來自於帶外,接著於步驟714中,BMC分配記憶體被設定為解除封存,並且於步驟715呼叫「SPI BIOS讀取服務()」。若有效性檢查指示為無效的BIOS簽章,且BIOS二進位映像為來自於BIOS及BMC快閃晶片206,則於步驟716中,第一信任根服務子呼叫「關閉SPI模擬器運行服務()」。之後於步驟717中,記錄(log)指示BIOS及BMC快閃晶片206被創建(created)。
若有效性檢查指示為有效的BIOS簽章,且被BIOS二進位映像為來自於BIOS及BMC快閃晶片206,第一信任根服務子流程於步驟719判斷SPI模擬器BIOS讀取服務是否已經啟動。若沒有被啟動,則在步驟720中,SPI模擬器BIOS讀取服務,然後在步驟721中將BMC分配記憶體設定為封存狀態。
第8圖的圖式(a)示出根據本揭露之某方面的有關於步驟705的「BIOS POST完成()」的第二信任根服務子流程的流程圖800。於步驟801中,若BMC分配記憶體為未啟動的,接著於步驟802中BMC分配記憶體被設定為啟動。於步驟803中,SPI BIOS讀取服務()被排程以於具有交流電源的直流待機電源執行。
第8圖的圖式(b)示出根據本揭露之某方面的有關於步驟711的「驗證BIOS簽章()」的第三信任根服務子流程的流程圖810。於步驟811中,第三信任根服務子流程從於BMC分配記憶體的清單(manifest)中搜尋簽章。於步驟812中,判斷簽章是否被找到,若沒有找到,接著於步驟813中,BMC分配記憶體的BIOS二進位映像為失效並更新結果。於步驟812中,若簽章有被找到,於步驟814中,使用公鑰(public key)解碼簽章以得到第一雜湊值(hash value)。於步驟815中,於BMC分配記憶體的BIOS二進位映像上執行雜湊操作(hash operation),以得到第二雜湊值。於步驟816中,第一雜湊值與第二雜湊值互相比較,當兩個雜湊值相等時,BMC分配記憶體的BIOS二進位映像為有效的。於步驟813,無論BIOS二進位映像是否為有效的,結果都會被更新。
第8圖的圖式(c)示出根據本揭露之某方面的有關於步驟705的「BIOS升級開始()」的第四信任根服務子流程的流程圖。於步驟817中,第四信任根子流程設定BMC分配記憶體為未啟動的。
第9圖的圖式(a)示出根據本揭露之某方面的用於Redfish服務程序的流程圖。於步驟901中,Redfish服務接收來自於帶外的BIOS二進位映像的資訊裝載量(payload)。於步驟902中,Redfish服務發送通知「BIOS升級開始()」。於步驟903中,若BMC分配記憶體為啟動的,升級程序需等待直到BMC分配記憶體為未啟動的。於步驟903中,若BMC分配記憶體為未啟動的,於步驟904中,Redfish服務上傳BMC分配記憶體的BIOS二進位映像的資訊裝載量。於步驟905中,Redfish服務發送通知「BMC分配記憶體已更新(帶外)」。
第9圖的圖式(b)示出根據本揭露之某方面的用於SPI BIOS讀取器服務程序的流程圖910。於步驟911中,若BMC分配記憶體為解除封存的,接著於步驟914中,BIOS二進位映像從BIOS及BMC快閃晶片206被讀取至BMC分配記憶體。於步驟915中,通知指示「BMC分配記憶體已更新(快閃晶片)」。於步驟911中,若BMC分配記憶體為被封存的,則於步驟912中,讀取BMC分配記憶體的BIOS二進位映像。接著於步驟913中,被讀取的BIOS二進位映像於BIOS及BMC快閃晶片206中程式化(programmed)。
第9圖的圖式(c)示出根據本揭露之某方面的用於有關於步驟704的「SPI模擬器運行服務啟動器()」的第一SPI模擬器運行服務子流程的流程圖920。於步驟921中,第一SPI模擬器運行服務子流程安裝SPI模擬器通訊協定。於步驟922中,SPI模擬器政策(policy)的讀取及寫入協定都被設定為「成立(true)」。
第9圖的圖式(d)示出根據本揭露之某方面的用於有關於步驟716的「關閉SPI模擬器運行服務 ()」的第二SPI模擬器運行服務子流程的流程圖930。於步驟931中,第二SPI模擬器運行服務子流程移除SPI模擬器通訊協定。於步驟932中,SPI模擬器政策(policy)的讀取及寫入協定都被設定為「拒絕(deny)」。
本揭露的多個實施例提供了用於運算系統(例如伺服器)的BMC的硬體及軟體的組合設計。BMC的硬體及軟體將SPI匯流排的模擬邏輯電路整合至BMC晶片組,致使BMC能夠回應於SPI匯流排對一或多個核心處理器上的讀取及寫入動作。於一些實施例中,BIOS及BMC韌體二進位映像被整合至單一快閃晶片中,接著從SPI控制器讀取BIOS韌體至BMC記憶體中。BMC的內部信任根執行檢查及BIOS韌體的驗證。當確認簽章為完整且有效的,BIOS韌體立即被保留於BMC記憶體中。不需要在每次直流電源被開啟時重複檢查。BIOS韌體的帶外更新同樣透過BMC記憶體檢查及驗證,當被確認為完整且有效的,BMC寫入新的BIOS韌體到非揮發性快閃晶片以用於備份。本揭露的多個實施例提供的是,從伺服器管理角度來看,透過減少UEFI BIOS的檢查及更新過程來增強運算系統於啟動程序的最佳化,因而減少因啟動韌體更新所需的停機時間。
本揭露的多個實施例在BMC內提供核心處理器與BIOS及BMC SPI快閃記憶體之間的新軟體堆疊(software stack)及硬體介面。新的軟體堆疊及硬體介面允許BIOS正規性檢查、存取及更新。新的軟體堆疊及硬體介面包括硬體SPI匯流排模擬器從機(slave)及相關運行服務、儲存於BMC分配記憶體的BIOS二進位映像及為 BIOS 升級而配置的信任根服務。軟體堆疊允許了BIOS二進位映像的管理。BIOS二進位映像可於任何時間由信任根服務進行檢查,而不是只能在啟動時檢查。
雖然已經就一個或多個實施例對本發明進行了說明和描述,但在閱讀和理解本說明書和所附圖式後,本領域的其他通常知識者將產生或知道等同的改變和修改。此外,雖然本發明的一個特定特徵可能只針對幾個實施方式中的其中一個公開,但此特徵可以與其他實施方式的一個或多個其他特徵相結合,因為對於任何給定的或特定的應用來說,這些特徵可能是所需的和有利的。
雖然上面已經描述了本發明的各種實施例,但應該理解,它們只是以示範例的方式提出,而並非為限制。在不脫離本揭露的精神或範圍的情況下,可以根據此處的揭露對所公開的實施例進行眾多的改變。因此,本揭露的廣度和範圍不應受到任何上述實施例的限制。相反地,本揭露的範圍應當視以下申請專利範圍及其均等物為準。
100:運算系統 102:電路板 104:處理器 106:RAM模組 108,142,204:BMC 110:BIOS 112,140,218:信任根 114:I/O埠 130,200:系統 132,202:伺服器主機板 134:外部網路 136:乙太網路通訊協定 138:電腦處理器架構 144:BIOS快閃晶片 146:BMC快閃晶片 148a,148b:SPI多工器 206:BIOS及BMC快閃晶片 210:SPI控制器 212:SPI匯流排模擬器 214:BMC處理器 216:BMC記憶體 220:乙太網路控制器 222,226:SPI介面 224:內部BMC匯流排 300,400,500:通訊 302:核心處理器 304:SPI模擬運行服務 306:信任根服務 308:SPI BIOS讀取器服務 320,326,340,352,402,404,440,452,508,510,512,514,522,552:步驟 322,324,328,330,332,342,344,346,348,350,442,444,446,448,516,518,520,524,526,528,548,550,560,562,564,566,701~705,711~721,801~803,811~817,901~905,911~915,921~922,931~932:步驟 502:帶外管理 504:Redfish服務 506:內部網路 600,700,710,800,810,900,910,920,930:流程圖 602,604,606,608,610,612:狀態 620,622,624,626,628,630,632,634,636:瞬態
從結合圖式對代表性實施例的以下描述,本揭露及其優點和圖式將易於理解。這些圖式僅描繪了代表性實施例,故不應被視為對各種實施例或申請專利範圍的範圍限制。 第1A圖示出根據本揭露之某方面的運算系統的功能方塊圖; 第1B圖示出於先前技術中的於電路板上的BIOS及BMC快閃晶片的連接的功能方塊圖; 第2圖示出根據本揭露之某方面的於電路板上的BIOS及BMC快閃晶片的連接的功能方塊圖; 第3圖示出根據本揭露之某方面的當交流(AC)電源開啟時核心處理器、BMC與BIOS及BMC快閃晶片之間的通訊的流程圖; 第4圖示出根據本揭露之某方面的當直流(DC)電源開啟時核心處理器、BMC與BIOS及BMC快閃晶片之間的通訊的流程圖; 第5圖示出根據本揭露之某方面的當BIOS被升級時BMC與BIOS及BMC快閃晶片之間的通訊的流程圖; 第6圖示出根據本揭露之某方面的BMC分配記憶體的狀態改變的流程圖; 第7圖的圖式(a)示出根據本揭露之某方面的信任根服務的流程圖; 第7圖的圖式(b)示出根據本揭露之某方面的第一信任根服務子流程的流程圖; 第8圖的圖式(a)示出根據本揭露之某方面的第二信任根服務子流程的流程圖; 第8圖的圖式(b)示出根據本揭露之某方面的第三信任根服務子流程的流程圖; 第8圖的圖式(c)示出根據本揭露之某方面的第四信任根服務子流程的流程圖; 第9圖的圖式(a)示出根據本揭露之某方面的用於Redfish服務程序的流程圖; 第9圖的圖式(b)示出根據本揭露之某方面的用於SPI BIOS讀取器服務程序的流程圖; 第9圖的圖式(c)示出根據本揭露之某方面的用於第一SPI模擬器運行服務子流程的流程圖; 第9圖的圖式(d)示出根據本揭露之某方面的用於第二SPI模擬器運行服務子流程的流程圖。
100:運算系統
102:電路板
104:處理器
106:RAM模組
108:BMC
110:BIOS
112:信任根
114:I/O埠
Claims (9)
- 一種運算系統,包括: 一中央處理單元(central processing unit, CPU); 一基板管理控制器(baseboard management controller, BMC),藉由一第一通訊協定耦接至該中央處理單元,該基板管理控制器包括: 一第一通訊協定控制器; 一BMC記憶體; 一信任根(root of trust);以及 一內部BMC匯流排,被設置以通訊地耦接至該BMC記憶體、該第一通訊協定控制器及該信任根;以及 一開機非揮發性記憶體,藉由該第一通訊協定控制器耦接至該基板管理控制器,該開機非揮發性記憶體被設置以儲存一基本輸入/輸出系統(basic input/output system, BIOS)韌體及/或一BMC韌體, 其中該信任根被設置以在儲存該BMC記憶體的一內容於該開機非揮發性記憶體中作為該基本輸入/輸出系統韌體及/或該BMC韌體之前,藉由該內部BMC匯流排認證該BMC記憶體的內容。
- 如請求項1所述之運算系統,其中該基板管理控制器更包括一第二通訊協定控制器,該第二通訊協定控制器支援帶外管理(out-of-band management)。
- 如請求項1所述之運算系統,其中該基板管理控制器被設置以執行用於藉由一SPI介面與該中央處理單元通訊的一SPI模擬器運行服務、用於設定與該BMC記憶體有關的一狀態的一信任根服務、及用於與該開機非揮發性記憶體通訊的一SPI BIOS讀取器服務。
- 如請求項3所述之運算系統,其中該信任根服務被設置以啟動或停止於該BMC記憶體中的複數個記憶體區域。
- 如請求項3所述之運算系統,其中該信任根服務被設置以封存或解除封存於該BMC記憶體中的複數個記憶體區域。
- 如請求項3所述之運算系統,其中當該BMC記憶體中的該些記憶體區域被封存及被啟動時,該開機非揮發性記憶體由該SPI BIOS讀取器服務程式化。
- 如請求項1所述之運算系統,其中該基板管理控制器被設置以從該開機非揮發性記憶體中接收該基本輸入/輸出韌體,及儲存該基本輸入/輸出韌體於該BMC記憶體中,以及該中央處理單元被設置以接收被儲存於該BMC記憶體中的該基本輸入/輸出韌體以執行啟動操作。
- 如請求項1所述之運算系統,其中該基板管理控制器更包括運行於一從模式(slave mode)的一第一通訊協定匯流排模擬器,該第一通訊協定匯流排模擬器被設置以回應於從該中央處理單元來的對該開機非揮發性記憶體的複數個讀取及寫入要求。
- 一種運算系統,包括: 一中央處理單元(central processing unit, CPU); 一基板管理控制器(baseboard management controller, BMC),藉由一第一通訊協定耦接至該中央處理單元,該基板管理控制器包括: 一第一通訊協定控制器; 一BMC記憶體; 一信任根;以及 一內部BMC匯流排,被設置以通訊地耦接至該BMC記憶體、該第一通訊協定控制器及該信任根; 一第一開機非揮發性記憶體,藉由該第一通訊協定控制器耦接至該BMC,該第一開機非揮發性記憶體被設置以儲存一BIOS韌體;以及 一第二開機非揮發性記憶體,藉由該第一通訊協定控制器耦接至該BMC,該第二開機非揮發性記憶體被設置以儲存一BMC韌體, 其中該信任根被設置以在儲存該BMC記憶體的一內容於該第一開機非揮發性記憶體或該第二開機非揮發性記憶體中作為該BMC韌體之前,藉由該內部BMC匯流排認證該BMC記憶體的內容。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US63/638,746 | 2024-04-25 | ||
| US18/816,541 | 2024-08-27 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202542733A TW202542733A (zh) | 2025-11-01 |
| TWI911961B true TWI911961B (zh) | 2026-01-11 |
Family
ID=
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150331694A1 (en) | 2014-05-14 | 2015-11-19 | American Megatrends, Inc. | Installation of operating system on host computer using virtual storage of bmc |
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150331694A1 (en) | 2014-05-14 | 2015-11-19 | American Megatrends, Inc. | Installation of operating system on host computer using virtual storage of bmc |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110032405B (zh) | 系统开机码存储器管理方法、存储器装置与应用其的电子系统 | |
| TWI840849B (zh) | 計算系統、電腦實施方法及電腦程式產品 | |
| TWI631470B (zh) | 透過一管理控制器動態重新配置一系統之至少一週邊匯流排交換器之方法及系統 | |
| US10423425B2 (en) | System and method for runtime update of ESRT table for hot-pluggable disks | |
| US20170228228A1 (en) | Remote launch of deploy utility | |
| JP2021009683A (ja) | ブートデバイスのリモート選択方法及びシステム | |
| CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
| US11341076B2 (en) | Hot-plugged PCIe device configuration system | |
| WO2016074127A1 (zh) | 计算机设备及计算机设备内存启动的方法 | |
| CN102902550B (zh) | 计算机系统及其操作系统载入方法 | |
| US11221858B1 (en) | System control processor (SCP) boot system | |
| TWI823253B (zh) | 計算系統、由電腦執行的方法以及電腦程式產品 | |
| US7080164B2 (en) | Peripheral device having a programmable identification configuration register | |
| US11915029B2 (en) | System and method of managing available memory of an information handling system | |
| US9361123B2 (en) | Boot from logical volume spanning plurality of PCI devices | |
| CN116841629A (zh) | 一种网卡功能配置方法、装置及其介质 | |
| TWI911961B (zh) | 用於減少運算服務停機時間的運算系統 | |
| TW202542733A (zh) | 用於減少運算服務停機時間的運算系統 | |
| US12204887B2 (en) | Seamless and secure motherboard replacement system and method | |
| US20250335593A1 (en) | System and method for reducing computing service downtime during firmware inspection and update processes | |
| CN118626123A (zh) | 一种基板管理控制器固件升级方法和装置 | |
| US6970986B1 (en) | Software based system and method for I/O chip hiding of processor based controllers from operating system | |
| CN116627472A (zh) | 高速外围组件设备的固件程序升级方法及服务器 | |
| CN116235175A (zh) | 加速器卡安全模式的静态配置 | |
| CN117369841B (zh) | 固件激活方法、装置、相关设备及计算机可读存储介质 |