TWI866411B - 用於初始化計算系統的電腦實施方法、電腦程式產品、以及計算系統 - Google Patents
用於初始化計算系統的電腦實施方法、電腦程式產品、以及計算系統 Download PDFInfo
- Publication number
- TWI866411B TWI866411B TW112132096A TW112132096A TWI866411B TW I866411 B TWI866411 B TW I866411B TW 112132096 A TW112132096 A TW 112132096A TW 112132096 A TW112132096 A TW 112132096A TW I866411 B TWI866411 B TW I866411B
- Authority
- TW
- Taiwan
- Prior art keywords
- cpu
- memory
- bmc
- bios firmware
- computing system
- Prior art date
Links
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/4403—Processor initialisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
示例性電腦實施方法用於初始化計算系統。此電腦實施方法包括響應於直接從一快閃記憶體執行的基本輸入/輸出系統(Basic Input/Output System,BIOS)編碼,使快取記憶體在該計算系統的中央處理單元(Central Processing Unit,CPU)中被初始化。此外,初始化通訊路徑,且此通訊路徑在CPU與應於計算系統的基板管理控制器(Baseboard Management Controller,BMC)的記憶體之間延伸。BIOS韌體從BMC的記憶體複製到CPU的快取記憶體,且BIOS韌體從CPU的快取記憶體中啟動。電腦實施方法包括使CPU的記憶體控制器被初始化,且使BIOS韌體的一部份從CPU的快取記憶體複製到對應CPU的記憶體。此外,BIOS韌體的上述部分從CPU的記憶體啟動。
Description
本發明是有關於一種儲存系統,特別是有關於一種用於初始化計算系統的程序。
計算裝置通常是由作業系統運行的複雜系統。這些作業系統包括支援計算裝置的基本功能的軟體,例如調度任務和執行應用。然而,在作業系統能夠在通電時與計算裝置設備互動之前,必須首先進行一些預備步驟。例如,首先檢查計算裝置中所包含的各種組件,以確保它們已被初始化並且可以運行。這有助於防止加載作業系統後才發現嚴重錯誤正在阻止計算裝置正常運行的情況。
雖然執行這些預備步驟有助於確保計算裝置在通電後能夠正常運行,但目前常見的產品因這些預備步驟而導致效率低下。例如,預備步驟的類型以及它們的執行方式不合需要地導致啟動期間的大量延遲。這些目前常見的產品還對計算裝置中的物理組件施加了很大的應變。隨著時間的推移,這種應變會導致組件過
早失效,從而進一步導致效率低下和系統停機以執行維修和/或更換。
因此,目前常見的產品因計算裝置的啟動程序而導致效率低下。此外,這些低效率問題尚未得到解決。因此,需要能夠改進在啟動期間管理計算系統的程序的方法、計算機程序產品和系統。此外,必須在不對系統效能產生負面影響的情況下實施這些改進。
術語實施例和類似術語,例如實施、配置、方面、示例、方法、和選項,旨在廣泛地指代本公開的所有標的和下面申請專利範圍。包含這些術語的陳述應理解為不限制本說明書所述的標的或限制所附請求項的含義或範圍。此處所涵蓋的本揭露的實施例由所附請求項而不是本發明內容所限定。發明內容是對本揭露的各個方面的高階概述,並介紹了在下面的實施方式部分中進一步描述的一些概念。發明內容並非旨在識別要求保護的標的的關鍵或基本特徵。發明內容也非旨在孤立地用於確定要求保護的標的的範圍。應當通過參考本揭露的整個說明書的適當部分、任何或所有附圖、以及每項請求項來理解標的。
還應注意,雖然本說明書的各種實施例是在快閃記憶體的上下文中描述的,但這絕非旨在限制。本說明書的實施例可以在具有任何期望類型的隨機存取、非揮發性記憶體的系統中實施,其將受益於本說明書的各種成就,如本領域中具有通常知識者在閱讀本說明書後所能理解的。
本發明提供一種電腦實施方法,用於初始化計算系統。電腦實施方法包括響應於直接從一快閃記憶體執行的基本輸入/輸出系統(Basic Input/Output System,BIOS)編碼,使快取記憶體在該計算系統的中央處理單元(Central Processing Unit,CPU)中被初始化。此外,初始化通訊路徑,且此通訊路徑在CPU與應於計算系統的基板管理控制器(Baseboard Management Controller,BMC)的記憶體之間延伸。BIOS韌體從BMC的記憶體複製到CPU的快取記憶體,且BIOS韌體從CPU的快取記憶體中啟動。電腦實施方法包括使CPU的記憶體控制器被初始化,且使BIOS韌體的一部份從CPU的快取記憶體複製到對應CPU的記憶體。此外,BIOS韌體的上述部分從CPU的記憶體啟動。
在一些實施方式中,使BIOS韌體從CPU的快取記憶體中啟動包括調用CPU的快取記憶體中的BIOS韌體中預可延伸韌體介面(pre-Extensible Firmware Interface,pre-EFI)初始化(pre-EFI Initialization,PEI)入口點,從而啟動初始化計算系統的PEI階段。在其他實施方式中,電腦實施方法更包括調用CPU的快取記憶體中的複數PEI模組(PEI Module,PEIM),這些PEIM用於初始化CPU的記憶體控制器。
在一些實施方式中,BMC的記憶體包括隨機存取記憶體(Random Access Memory,RAM)。在其他實施方式中,通訊路徑在CPU與BMC的記憶體的一共享部分之間延伸,BMC的記憶體的共享部分可供CPU和BMC存取。
在一些實施方式中,電腦實施方法更包括調用在CPU的記憶體中的複數預可延伸韌體介面初始化模組(pre-EFI
Initialization Module,PEIM);使BIOS韌體從BMC的記憶體複製到CPU的記憶體;以及使BIOS韌體從CPU的記憶體啟動。
在一些實施方式中,從BMC的記憶體複製到CPU的記憶體的BIOS韌體包括驅動程式執行環境(Driver Execution environment,DXE)基礎編碼。此外,使BIOS韌體從CPU的記憶體啟動包括調用DXE基礎編碼中的一DXE入口點,從而啟動初始化計算系統的DXE階段。在其他實施方式中,快閃記憶體包括串列週邊介面NOR快閃記憶體。
本發明提供一種電腦程式產品,用於初始化計算系統。電腦程式產品包括具有複數程式指令的電腦可讀存儲媒體。此外,程式指令由一處理器讀取和/或執行以使處理器執行前述方法。
本發明提供一種計算系統,其包括快閃記憶體、CPU、以及BMC。該系統還包括處理器和與該處理器集成和/或由該處理器執行的邏輯。此外,此邏輯用於執行上述方法。
發明內容並不代表本發明的每個實施例或每個方面。相反地,發明內容僅提供了本文闡述的一些新穎方面和特徵的示例。當結合附圖和所附的申請專利範圍時,本揭露的上述特徵和優點以及其他特徵和優點將從用於實施本發明的代表性實施例和模式的以下詳細描述中而得知。鑑於參考附圖做出的各種實施例的詳細描述,本揭露的附加方面對於本領域具有通常知識者而言將是可得知的,以下提供其簡要描述。
100:計算系統
102:中央處理單元(CPU)
104:記憶體模組
106:快取記憶體
108:週邊控制器
110:基板管理控制器(BMC)
111:網路連接埠
112:網路
114:記憶體模組
116:記憶體的一部分
118:多工器(MUX)
120:快閃記憶體模組
122:控制引腳
124:平台信任根處理器(PRoT)
150:輔助系統
152:控制器
154:儲存模組
200:方法
202,203:節點
204,206,208,210,212,214,216,218,220,222,224,240,242,244:操作
250:方法
252,254,256,258,260,262,264,266:操作
透過以下代表性實施例的描述並參考附圖,將更好
地理解本發明及其優點和附圖。這些附圖僅描繪了代表性實施例,因此不應被視為對各種實施例或申請專利範圍的限制。
第1圖表示根據本發明一實施例的計算系統的示意圖。
第2A圖表示根據本發明一,用於初始化計算系統的示例方法的流程圖。
第2B圖根據本發明一實施例,在第2A圖的方法中的多個操作之一的子操作的流程圖。
第2C圖是根據本發明另一實施例,用於初始化計算系統的示例方法的流程圖。
為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉一較佳實施例,並配合所附圖式,作詳細說明如下。
本發明為針對一種用於初始化計算系統的以電腦實施的方法。以電腦實施的方法包括響應於直接從快閃記憶體執行BIOS編碼,使快取記憶體在計算系統的CPU中初始化。此外,一通訊路徑被初始化,此通訊路徑在CPU與對應於計算系統的BMC的記憶體之間延伸。BIOS韌體從BMC記憶體複製到CPU快取記憶體,且BIOS韌體從CPU快取記憶體啟動。以電腦實施的方法除了使一部分的BIOS韌體CPU快取記憶體複製到對應於CPU的記憶體之外,還包括使CPU的記憶體控制器被初始化。此外,一部分的BIOS韌體是從CPU記憶體啟動的。
參考,描述了各種實施例,其中,貫穿使用相同的附圖標記來表示相似或等同的元件。附圖不一定按比例繪製並且僅
被提供以說明本發明的各方面和特徵。闡述了許多具體細節、關係和方法以提供對本發明的某些方面和特徵的全面理解,儘管相關領域中具有通常知識者將理解到這些方面和特徵可以在沒有一個或多個上述具體細節的情況下而以其他關係或其他方法來實踐。在某些情況下,為了能清楚說明,而沒有詳細示出眾所周知的結構或操作。此處揭露的各種實施例不一定受限於所述的動作或事件的順序,因為一些動作可以以不同的順序發生以及/或可以與其他動作或事件同時發生。此外,並非所有說明的動作或事件都是在實施本發明的某些方面和特徵時所必需的。
出於本詳細描述的目的,除非特別聲明,在適當的情況下,單數包括複數,反之亦然。“包括”一詞的意思是“包括但不限於”。此外,諸如“大約”、“幾乎”、“基本上”、“大約”等近似詞在本說明書中可用於表示“在”、“附近”、“幾乎在”、“在3~5%以內”、“在可接受的製造容許差異範圍內”、或其任何邏輯組合。相似地,術語“垂直”、“水平”、“平行”、和“正交”分別意在額外包括在垂直、水平、平行、或正交定向的“3-5%以內”。此外,從被引用的對像或元件的上下文理解,例如從對像或元素的常用位置,或如本說明書所述,諸如“頂部”、“底部”、“左”、“右”、“上方”、和“下方”之類的方向術語旨在與參考圖式中描繪的等效方向相關。
如前所述,計算系統通常複雜且昂貴,這使得這些系統遇到的故障成為一個重要問題。因此,在作業系統能夠在通電時與計算裝置互動之前,首先執行一些預備步驟。例如,首先檢查計算裝置中所包含的各種組件,以確保它們已被初始化並且可以運行。這有助於防止加載作業系統後才發現嚴重錯誤正在阻止計算裝
置正常運行的情況。
雖然執行這些預備步驟有助於確保計算裝置在通電後能夠正常運行,但目前常見的產品因這些預備步驟而導致效率低下。例如,預備步驟的類型及它們的執行方式不合需要地導致目前常見的產品在啟動期間的大量延遲。這些目前常見的產品還對計算裝置中的物理組件施加了很大的應變。隨著時間的推移,這種應變會導致組件過早失效,從而進一步導致效率低下和系統停機以執行維修和/或更換。
與這些常見缺點形成鮮明對比的是,本案所包括的實施方式能夠在啟動期間成功且有效地管理計算系統。此外,這些改進是在不負面影響系統效能的情況下來實施的,如下文將進一步詳細描述。
參閱第1圖,根據一實施方式描繪了計算系統100。作為一種選擇,此計算系統100可以結合來本說明書列出的任何其他實施方式的特徵來實施,例如,參考其他圖式所描述的實施方式。然而,此本說明書所呈現的計算系統100和其他計算系統可用於各種應用和/或排列,其可能在或可能未在本說明書列出的說明性實施方式中具體描述。此外,本說明書所述的計算系統100可以在任何期望的環境中使用。因此,第1圖(和其他圖)可以被認為包括任何可能的排列。
例如,計算系統100包括以一特定佈局來配置的多個組件。然而,應該注意的是,第1圖中所示的配置絕非試圖對本案進行限制。例如,組件可以相對於彼此而不同地定向、以不同方式彼此連接等。與附圖所示的相比,一些實施方式甚至可以包括更少
的組件或額外的組件。
如圖所示,CPU 102耦接到記憶體模組104。根據實施方式,記憶體模組104可以包括不同類型的物理記憶體和/或物理記憶體的邏輯表示。例如,在一些實施方式中,記憶體模組104包括隨機存取記憶體(Random Access Memory,RAM)。在這樣的實施方式中,一邏輯-物理表單可用於識別各種資料儲存在RAM中的何處並幫助促進對其的邏輯存取。然而,記憶體模組104可以附加地或二者擇一地包括其他類型的記憶體,例如,直接存取資料儲存媒體。例如,記憶體模組104可以包括硬碟、磁帶等等。
因此,CPU 102能夠與記憶體模組104進行通訊。這允許在CPU 102和記憶體模組104之間發送資訊、資料、元資料、指令、命令、請求、檔案等等。然而,CPU 102本身也可以在其中儲存資料。在一些實施方式中,CPU 102包括能夠在其中儲存資訊(例如,資料、元資料、指令等)的快取記憶體(cache)106。在一些實施方式中(例如,參閱下文的方法2A的操作212),快取記憶體106中的資訊可被接收以作為計算系統100的啟動程序的一部分。
雖然與計算系統100中的其他記憶體(例如,記憶體模組104或甚至是CPU 102中的其他記憶體)相比,快取記憶體106本身可能具有更小的儲存容量,但是與這些其他類型的記憶體相比,快取記憶體106能夠實施更高的效能。例如,快取記憶體106通常能夠實施更快的資料存取時間,與RAM(更不用說是線性存取類型的記憶體)相比,能減少延遲。因此,快取記憶體106可用於暫時儲存資訊,例如,在計算系統100的啟動期間使用的韌體,於如下文中將更詳細地描述。
CPU 102還耦接到週邊控制器108。週邊控制器108藉此能夠將各種資訊(例如,訊號、資料、命令等)直接鏈接到CPU以用於資料控制和存取。例如,週邊控制器108可用於管理輸入/輸出(I/O)操作並將它們呈現給CPU 102。由此可見,週邊控制器108可使用控制器積體通道電路(controller integrated channel circuitry)來與CPU 102和/或耦接到週邊控制器108的其他組件進行通訊。在一些實施方式中,週邊控制器108包括南橋模組。在其他實施方式中,週邊控制器108包括北橋模組,包括南橋模組和北橋模塊兩者,或者包括其他類型的晶片組等等。
週邊控制器108還連接到BMC 110。BMC 110作為一專用處理器,以用於實施不同功能。例如,在一些實施方式中,BMC 110可用於實施計算系統100的遠程監控和管理。根據一示例,BMC 110可以是一專用服務處理器,用以監控在計算系統100中使用感測器並透過獨立連接與系統管理員進行通訊的組件(例如,硬體裝置)的物理狀態。
如圖所示,BMC 110耦接到網路連接埠111。網路連接埠111能夠建立和維持到網路112的連接。因此,計算系統100可以發送和/或接收來自也連接到網路112的任何位置的資訊(例如,資料、元資料、請求、指令、命令等等)。例如,具有控制器152和儲存模組154的輔助系統150顯示為也連接到網路112。
因此,計算系統100和輔助系統150可以根據需要在彼此之間交換資訊。根據此方法,網路連接埠111可以實施物理電性連接(例如,電線、電纜、匯流排等等)和/或無線電性連接(例如,Wi-Fi、藍牙等等)以實施並維持到網路112的連接。
儘管網路112在第1圖中顯示為將計算系統100連接到輔助系統150,然而,應當注意,網路112可以用於連接能夠連接到網路112的任何期望數量的裝置(例如,位置)。此外,網路112本身可以是任何期望的類型。例如,在一些方法中,網路112是廣域網路(wide area network,WAN),例如網際網路(Internet)。然而,網路112可實施的其他網路類型的示例列表包括但不限於,局域網路(local area network,LAN)、公共交換電話網路(public switched telephone network,PSTN)、儲存區域網路(storage area network,SAN)、內部電話網路等等。因此,計算系統100和輔助系統150能夠相互通訊,而不管它們之間存在的分隔量如何,例如,位於不同的地理位置。
BMC 110也連接到記憶體模組114。根據此實施方式,記憶體模組114可以包括不同類型的物理記憶體和/或物理記憶體的邏輯表示。例如,在一些實施方式中,記憶體模組114包括隨機存取記憶體(RAM)。在這樣的實施方式中,一邏輯-物理表單可用於識別各種資料儲存在RAM中的何處並幫助促進對其的邏輯存取。然而,記憶體模組114可以附加地或二者擇一地包括其他類型的記憶體,如上文關於記憶體模組104所描述的。由此可見,記憶體模組104和114可以在其中包括相同、相似、或不同類型的記憶體。
BMC 110優選地能夠與記憶體模組114進行通訊。這允許在BMC 110和記憶體模組114之間發送資料、元資料、指令、命令、請求、檔案等等。記憶體模組114的至少一部分116可以被計算系統100中的其他組件存取。換句話說,記憶體模組114中的記憶體的一部分116可以被計算系統100中的組件讀取,例如,CPU
102。這允許從記憶體模組114讀取資訊並將其直接複製到CPU 102中的快取記憶體106和/或記憶體模組104。
基於此方法,可以使用任何程序、次常式(subroutine)、操作等從記憶體模組114複製資訊和/或將資訊寫入記憶體模組114,這對於本領域中具有通常知識者在閱讀本說明書後將是可理解的。根據一示例,可以獲取記憶體模組114的共享部分116的快照(snapshot)並將其發送到CPU 102,以更新其中的記憶體。然而,BMC 110本身也可以在其中儲存資料。在一些實施方式中,BMC 110包括能夠在其中儲存資訊(例如,資料、元資料、指令等等)的快取記憶體(未顯示於圖式中)。
繼續參閱第1圖,BMC 110與週邊控制器108皆耦接至多工器(multiplexer,MUX)118。多工器118可藉此用於選擇性地將週邊控制器108與BMC 110其中之一者連接至快閃記憶體模組(flash memory module;在第1圖中以”Flash”表示)120。換言之,多工器118可用於將(i)週邊控制器108和(ii)BMC 110其中之一者連接到快閃記憶體模組120,如本領域中具有通常知識者在閱讀本說明書後所能理解的。在一些實施方式中,多工器118的啟動可以由BMC 110來決定。因此,控制引腳122被顯示為連接BMC 110和多工器118,使得BMC 110能夠控制是週邊控制器108還是BMC 110連接到快閃記憶體模組120。然而,在其他實施方式中,CPU可以附加地或二者擇一地透過一控制引腳連接到多工器118。
根據此實施方式,快閃記憶體模組120可以具有任何期望的大小(例如,具有任何期望的儲存容量),並且可以根據
需要進行組織(例如,分區)。例如,快閃記憶體模組120可以具有一安全記憶體分區,其可以在邏輯上和/或物理上與快閃記憶體模組120中的剩餘記憶體分開。快閃記憶體模組120也可以根據實施方式而具有不同的配置。例如,在一些實施方式中,快閃記憶體模組120包括串列週邊介面(serial peripheral interface,SPI)NOR快閃記憶體,而在其他實施方式中,快閃記憶體模組120可以包括其他類型的快閃記憶體,例如,NAND快閃記憶體。
耦接到快閃記憶體模組120的平台信任根(platform root of trust,PRoT)處理器(在第1圖中以”PRoT”表示)124可以用於掃描快閃記憶體模組120的安全記憶體分區和/或其他部分。因此,可以使用PRoT處理器124驗證和確認存儲在快閃記憶體模組120中的至少一些資料、編碼、韌體、指令等沒有被破壞。
例如,PRoT處理器124可透過在計算系統100中的其他組件能夠存取(例如,執行)BIOS韌體以開始初始化之前確保韌體未損壞,來驗證和確認存儲在快閃記憶體模組120中的BIOS韌體。在一些實施方式中,PRoT處理器124可以響應於計算系統100的通電來驗證存儲在快閃記憶體模組120中的至少一部分資訊,這將透過下文而能理解。
繼續參閱第1圖,應注意,計算系統100中的各種組件優選地連接於一物理電性連接,例如電線、電纜、匯流排等等。然而,在某些示例中,可以實施無線連接以在它們之間建立通訊路徑。因此,儘管某些類型的物理電性連接可以在本方法中實施,但這絕非試圖對本案進行限制。在一些示例中,週邊控制器108和
BMC 110可以通過快速週邊組件互連(Peripheral Component Interconnect Express,PCIe)鏈路連接。週邊控制器108和BMC 110中的每一者也可以通過獨立的SPI介面連接到多工器118。如圖所示,與控制引腳122相比,SPI介面可以是不同的物理電性連接。在另一示例中,多工器118通過SPI介面連接到快閃記憶體模組120。
透過實施具有本說明書所述且第1圖所示的物理配置的計算系統,初始化計算系統的程序得到了顯著改進。例如,現在參閱第2A圖,其顯示了根據一個實施例的以電腦實施的方法200的流程圖。方法200可以根據本發明在第1圖所示的任何環境中執行,除此之外,還可在其他實施例中執行。當然,與第2A圖中具體描述的那些操作相比,更多或更少的操作可以被包括在方法200中,如同本領域中具有通常知識者在閱讀本說明書後所能理解的。
方法200的每個步驟都可以由操作環境的任何合適組件來執行。例如,方法200的流程圖中所示的節點202與203中的每一者可以對應於位在計算系統中不同位置的一個或多個處理組件。此外,一個或多個組件中的每一者優選地被配置為彼此通訊。
在各種實施例中,方法200可以部分地或完全地由控制器、處理器來執行,或者由於其中具有一個或多個處理器的一些其他設備來執行。以硬體和/或軟體來實施並且優選地具有至少一個硬體組件的處理器(例如,處理電路、晶片和/或模組)可以在任何裝置中使用,以執行方法200的一個或多個步驟。示例的處理器包括,但不限於,CPU、特定應用積體電路(Application Specific Integrated Circuit,ASIC)、現場可程式化邏輯閘陣列(Field
Programmable Gate Array,FPGA)等,或者前述的組合,或者本領域中已知的任何其他合適的計算裝置。
如上所述,第2A圖包括不同的節點202和203,每個節點代表位於計算系統中的不同位置的一個或多個處理器、控制器、電腦等,。例如,節點203可以包括BMC和/或連接到BMC的記憶體(例如,上述第1圖的BMC 110和/或BMC記憶體模組114)。此外,節點202可以包括CPU(例如,上述第1圖的CPU 102)。如此一來,節點202和203中任一處的任何組件能夠相互通訊。因此,可以根據此方法在節點202和203中的每一個之間發送命令、資料、請求等等。此外,應該注意的是,方法200中所包括的各種程序絕非試圖對本案進行限制,如同本領域中具有通常知識者在閱讀本說明書後所能理解的。例如,在一些方法中,從節點202發送到節點203的資料可以以從節點203發送到節點202的請求作為開頭。
如圖所示,方法200的操作204包括接收計算系統已經開啟的指示。換句話說,操作204包括識別出計算系統已經通電。雖然操作204被顯示為由節點202執行,但這絕非試圖對本案進行限制。可以在節點202和203中的任一個處接收計算系統已經開啟的任何類型的指示,並且將其傳輸到其餘節點。
方法200從操作204進行到操作206,其包括執行BIOS編碼的一初始部分。執行BIOS編碼的初始部分有效地啟動計算系統的啟動程序。在一些實施方式中,BIOS編碼的初始部分是啟動過程的安全階段的一部分。根據一個示例,這絕非試圖對本案進行限制,執行BIOS編碼的初始部分可能涉及指示一PRoT處理器(例如,第1圖的PRoT處理器124)去驗證和確認儲存在快閃記憶
體模組(例如,第1圖的快閃記憶體模組120)處的BIOS韌體。因此,PRoT處理器可能夠在計算系統中的其他組件被允許存取以開始初始化之前,確保BIOS韌體不被破壞。
上述初始部分可以由一個或多個標記(例如,旗標)來識別,其存儲在記憶體中的預定位置,或者由一個或多個指標來標定等等。此外,可以使用位於節點202處的任何期望的處理組件來執行BIOS編碼。
方法200從操作206進行到操作208。如圖所示,在本實施方式中,操作208是在節點202處執行,然而這絕非試圖對本案進行限制。關於本實施方式,操作208包括使快取記憶體在計算系統的CPU中被初始化。一快取記憶體通常包括揮發性記憶體。因此,快取記憶體通常會在斷電後(例如,在關機程序後)丟失儲存在其中的任何資訊。
初始化快閃記憶體的程序可能因實施方式而異。例如,一些實施方式涉及讀取和執行允許形成(例如,分配)快取記憶體的儲存配置文件。快取記憶體的大小也可以在初始化程序中選擇。如上所述,與其他類型的記憶體(例如,RAM)相比,快取記憶體具有更高的效能,但也更昂貴。因此,雖然快取記憶體的存儲容量在一些實施方式中是有限的,但是快取記憶體優選地足夠大以儲存除了BIOS韌體之外的任何期望的操作資料。
如上所述,將至少一些BIOS韌體本地存儲在CPU的快取記憶體中,有助於實施此處所述的改善。例如,CPU能夠比系統中的其他組件更快、更高效率地執行BIOS韌體。因此,透過初始化CPU快取記憶體,使其具有足夠的儲存容量來保持操作資料以
及BIOS韌體,可以顯著提高計算系統啟動的效率,如於下文中將進一步詳細描述的。
進行到操作210,初始化在節點202與節點203之間延伸的通訊路徑。在優選的方法中,此通訊路徑在CPU與計算系統的BMC記憶體模組的共享部分之間延伸。因此,CPU和BMC都可以存取BMC記憶體模組的共享部分。這允許將資訊(包括BIOS韌體)從BMC記憶體模組複製到CPU以供執行。如此一來,操作212包括將BIOS韌體從BMC記憶體模組直接複製到CPU快取記憶體。
在閱讀本說明書之後,可以使用本領域中具有通常知識者能理解的任何程序來配置通訊路徑。例如,在一些方法中,可以響應於CPU和BMC記憶體之間的交握程序被滿足,來建立通訊路徑。此通訊路徑理想地允許CPU和BMC記憶體交換信息(例如,BIOS韌體),而不管任何其他系統設置(例如,多工器狀態)。
如前所述,CPU快取記憶體能夠實施高程度的效能,特別是在與其他組件(例如,快閃記憶體)相比的情況下。因此,複製到CPU快取記憶體的BIOS韌體優選地包括可以從CPU快取記憶體執行的部分,如本領域中具有通常知識者在閱讀本說明書後所能理解的。例如,在一些實施方式,從BMC記憶體的共享部分複製到CPU快取記憶體和/或CPU記憶體模組的BIOS韌體包括驅動程式執行環境(Driver Execution environment,DXE)基礎編碼(foundation code)。例如,使BIOS韌體從CPU記憶體啟動包括調用DXE基礎編碼中的DXE入口點,從而啟動初始化計算系統的DXE階段。然而,在其他方法中,可以將DXE從BMC記憶體模組直接複製或傳輸到CPU記憶體模組(例如,參見下文第2B圖的子操
作242)。
需要說明的是,BMC記憶體模組的共享部分中所儲存的BIOS韌體可以直接由CPU執行,無需先將BIOS韌體複製到CPU中。如上所述,通訊路徑提供對BMC記憶體模組的共享部分的存取。然而,透過將BIOS韌體複製到CPU,即使在具有不支援隨機存取的不同種類的資料儲存源的情況下,也可以實施本說明書所包括的實施方式。例如,本說明書的方法可以用NAND快閃記憶體來實施。
此外,在執行BIOS韌體以初始化計算系統硬體的過程中,在CPU與BMC共享記憶體之間延伸的通訊路徑可能為不可用。然而,如果BIOS韌體已經被複製到CPU快取記憶體並直接從CPU快取記憶體執行,那麼在整個BIOS執行過程期間中則不需要維護通訊路徑。如上所述,這有利地提高了計算系統的效能和其被初始化的功率。
繼續參閱第2A圖,操作214包括從CPU快取記憶體啟動BIOS韌體。啟動BIOS韌體的過程可能涉及某些方式中的附加和/或預備步驟。例如,操作216包括調用在CPU快取記憶體的BIOS韌體中的預先EFI初始化(pre-EFI Initialization,PEI)入口點。PEI入口點可以使用一個或多個標記(例如,旗標)來識別,其儲存在記憶體中的預定位置,或者由一個或多個指標來標定等等。此外,可以使用位於節點202處的任何期望的處理組件來執行BIOS編碼。
調用BIOS韌體中的PEI入口點能有效地結束了計算系統初始化程序的安全階段,並啟動了此程序的PEI階段。因此,操作218還包括調用CPU快取記憶體中的PEI模組(PEI Module,
PEIM)。換言之,操作218包括與PEIM進行通訊。在優選方法中,每個PEIM都被單獨地調用。作為對PEIM進行調用的結果,PEIM可以至少部分地用於初始化CPU的一記憶體控制器。參閱操作220。初始化CPU的記憶體控制器的過程允許耦接到CPU的記憶體模組為可存取的。例如,作為始化CPU存儲器控制器的結果,耦接到CPU的CPU RAM模組對於CPU而言為可以用(例如,可由其使用)。因此,資訊可以儲存在CPU RAM模組中,並根據需要而由CPU來存取。
現在檢視操作222,BIOS韌體的至少一部分被從CPU快取記憶體製到對應於CPU的記憶體。例如,在一些實施方式中,可以將尚未執行的BIOS韌體的任何部分複製到CPU記憶體模組。如上所述,在優選方法中,BIOS韌體可以從CPU快取記憶體複製到具有RAM的CPU記憶體模組。根據示例性方法,將對應於PEI基礎和PEIM的指令編碼從CPU快取記憶體複製到CPU RAM模組中。這至少釋放了CPU快取記憶體中的一些有限儲存容量,同時還允許BIOS韌體直接由CPU執行,而不是總體計算系統中的其他組件,例如,快閃記憶體模組。如上所述,由此可以顯著提高執行BIOS韌體的效率,特別是在與目前常見的產品相比的情況下。
方法200從操作222進行到操作224,其包括使BIOS韌體的其餘部分由CPU記憶體模組啟動。再次說明,透過使用CPU和CPU記憶體模組來執行BIOS韌體,大大提高了操作效率。與目前常見的產品的效能相比尤其如此,其因強制系統停機以及頻繁且冗長的更新程序而遭受嚴重的延遲問題。
如前所述,啟動BIOS韌體的過程可能涉及某些方
法中的補充(例如,預備)步驟。例如,可以使用BIOS韌體中的PEI入口點。PEI入口點可以使用一個或多個標記(例如,旗標)來識別,其存儲在記憶體中的預定位置,或者由一個或多個指標來標定等等。參照第2B圖,根據一個實施例,說明了從CPU記憶體模組啟動BIOS韌體的示例性子操作。這些子操作中的一個或多個可用於執行第2A圖的操作224。再次說明,通過使用CPU和CPU記憶體模組來執行BIOS韌體,這大大提高了操作效率。
然而,應該注意的是,根據一實施例的第2B圖的子程序是用來示例說明的,絕非試圖對本案進行限制。例如,包括在第2B圖的多個子操作的一個或多個可被實施,以在計算系統中的不同位置啟動BIOS韌體。例如,包括在第2B圖中的任何子操作可被實施,以從CPU快取記憶體啟動BIOS韌體(例如,參閱第2A圖的操作214)。
檢視第2B圖,從CPU記憶體模組啟動BIOS韌體的程序包括調用CPU記憶體模組中的PEIM。參閱子操作240。每個PEIM可以是可以被調用以執行一特定功能的電腦編碼單元(例如,邏輯指令)。此外,PEIM在啟動程序的PEI階段期間被調用。在優選方法中,每個PEIM被單獨調用(例如,一個接一個)以完成與PEI階段相關聯的給定任務。例如,每個PEIM可以在CPU和/或CPU RAM初始化期間單獨調用,如本領域中具有通常知識者在閱讀本說明書後所能理解的。
子操作242還包括將BIOS韌體從BMC記憶體模組的共享部分複製到CPU記憶體模組,而子操作244包括從CPU記憶體啟動BIOS韌體。如上所述,在某些實施方式中,BIOS韌體可以
從BMC記憶體模組的共享部分直接複製到CPU記憶體模組。複製到CPU記憶體模組的BIOS韌體可能包含DXE基礎編碼。因此,在此類方法中,可以通過調用DXE基礎編碼中的DXE入口點,從CPU記憶體模組啟動BIOS韌體。調用DXE入口點可因此啟動初始化計算系統的DXE階段。此外,可以使用本領域中具有通常知識者在閱讀本說明書後所能理解的任何程序來調用DXE入口點。
因此,在方法200中實施操作允許計算系統被成功且有效地初始化。計算系統本身的效能在初始化後也得到改善。例如,由於BIOS韌體從快閃記憶體複製到RAM的共享部分,因此,接收對在快閃記憶體本身中的實施的一更新的可能性大大降低。這又降低了經歷因快閃記憶體中物理記憶體組件磨損而導致的快閃記憶體錯誤的風險。相比之下,對BIOS韌體的任何更新可以直接在RAM中實施,這比在快閃記憶體中實施更有效率,如本領域具有通常知識者在閱讀本說明書後所能理解的。此外,由於因BIOS韌體傳輸而使儲存在快閃記憶體中的訊息量減少,因此與目前常見的產品相比之下,被執行的對快閃記憶體的任何更新具有明顯縮短的更新時間。
由於應用方法200中的操作,在實施之前驗證BIOS韌體的程序也得到改進。如上所述,儲存在快閃記憶體中的一些資訊可以使用PRoT(例如,第1圖中的PRoT處理器124)來驗證。然而,透過將BIOS韌體的一部分複製到可由CPU和/或BMC存取的記憶體的共享部分,CPU和/或BMC本身可用於執行BIOS韌體的任何所需驗證。儘管PRoT可用於執行一些驗證,但複製BIOS韌體顯著地減少整個計算系統的延遲,從而允許BIOS韌體的驗證比習知方
法更快地進行。
與困擾目前常見的產品的缺點相比,作為實施本說明書所包括的各種實施方式的結果而達到的上述改進尤其令人滿意。例如,目前常見的產品由於簡單地更新BIOS韌體件而導致嚴重的延遲和系統停機。此外,使用較低級別的處理組件(例如,快閃記憶體)來實施BIOS韌體而導致的故障會降低整個計算系統的效率。
應當注意,儘管本說明書中的某些操作和/或子操作被描述為由特定位置(例如,節點)處的特定組件執行,但絕非試圖對本案進行限制。例如,任何操作和/或子操作可以被配置為由計算系統的CPU和/或CPU記憶體模組執行(例如,第1圖的CPU 102和/或CPU記憶體模組104)。然而,在其他方法中,操作和/或子操作可以被配置為由計算系統的BMC和/或BMC記憶體模組執行(例如,第1圖的BMC 110和/或BMC記憶體模組114)。
例如,第2C圖顯示了由CPU和/或CPU記憶體模組所實施用來初始化計算系統的方法250的流程圖。包括在方法250中的具體操作絕非試圖對本案進行限制,並且根據特定實施而可以包括更多或更少的操作。
操作252包括響應於系統的通電,使BIOS編碼直接從快閃記憶體中執行。此外,操作254包括初始化計算系統的CPU中的快取記憶體,而操作256包括初始化在CPU與BMC記憶體模組之間延伸的通訊路徑。如上所述,此通訊路徑優選地在BMC記憶體模組的共享部分與CPU快取記憶體之間延伸,但可以根據此方法而以不同的方式實施。
為了響應建立此通訊路徑,BIOS韌體可以從BMC記憶體模組直接複製到CPU快取記憶體。參見操作258。此外,操作260包括使BIOS韌體從CPU快取記憶體啟動。關於本說明書,應當注意,在一些示例中,快閃記憶體模組可以不包括處理器。因此,儲存在快閃記憶體中的BIOS編碼,實際上可以由對來自快閃記憶體的BIOS編碼進行存取的處理器核心來執行。在其他示例中,BIOS編碼可以由用快閃記憶體模組實施的處理器來執行。
此外,操作262包括使CPU的記憶體控制器被初始化,從而使CPU記憶體模組(例如,RAM)為可用的。響應於CPU記憶體模組為可用的,操作264包括將BIOS韌體的一部分從CPU快取記憶體複製到CPU記憶體模組。操作266還包括啟動來自CPU記憶體模組的BIOS韌體的複製部分。
再次說明,各種實施方式能夠在不限制效能的情況下顯著地提高系統的操作效率。這至少部分地透過在比習知方法的可能時間更短的時間內,執行相同數量的步驟(例如,操作)來實施。換言之,本說明書包括的實施方法將允許控制器在比習知方法實施的時間更短的時間內,執行給定數量的資料操作。如本說明書所指出的,優選實施方式能夠改進諸如BIOS韌體之類的資訊的可存取性。
因此,這允許成功且有效地初始化計算系統。計算系統本身的效能在初始化後也得到改善。由於本說明書所述的各種方法,在實施之前驗證BIOS韌體的過程也得到了改善。再次說明,與困擾目前常見的產品的缺點相比,這些改進尤其令人滿意。例如,目前常見的產品由於簡單地更新BIOS韌體而導致嚴重的延遲和系
統停機。
儘管大多數BIOS韌體以儲存在BMC記憶體和/或CPU記憶體中並從中實施為較佳,但一些資訊可能保留在快閃記憶體中和/或以不同方式實施。例如,以TianoCore EDK II作為BIOS設計的例子,這絕非試圖對本案進行限制,在BIOS執行之前由CPU或南橋等系統硬體直接加載的非BIOS韌體(例如,CPU微碼)可能至少在部分初始化過續中保留在快閃記憶體。此外,初始BIOS執行階段在系統重置期間或響應於電源開啟,直接由CPU加載。在本示例中,此初始BIOS執行階段包括SEC階段編碼。此外,一些區域被用作非揮發性儲存,以維持即使在BIOS韌體未更新時也可能改變的資料。例如,BIOS設定和其他非揮發性UEFI變量可能保留在快閃記憶體中。
根據一個使用中的例子,但這絕非試圖對本案進行限制,總體BIOS韌體的大小為16MB的BIOS設計可能具有佔用大約1MB的CPU微編碼,SEC階段編碼(例如,初始BIOS韌體)可能約為32KB,且用於保存資料的非揮發性區域約佔512KB。所有其他BIOS資訊(例如,韌體、編碼等等)都可以複製到BMC記憶體模組的共享部分,如本說明書的各種實施方式中所述。
由此可見,此處包括的實施方式不僅減少了資料存取時間,而且還減少了在初始化計算系統時所執行的步驟數。因此,計算系統執行較少的計算工作,同時還能夠並行增加操作吞吐量(throughput)。
還應當注意,本說明書的各種實施方式可以是在任何可能的技術細節集成級別的系統、方法和/或電腦程式產品。電腦
程式產品可以包括電腦可讀儲存媒體,其具有電腦可讀程式指令以用於使處理器執行本發明的各方面實施方式。
電腦可讀儲存媒體可以是可保留和儲存指令以供指令執行裝置置使用的有形裝置。電腦可讀儲存媒體可以是,但不限於,例如電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述的任何合適的組合。電腦可讀儲存媒體的更具體示例的非詳盡列表包括以下內容:可攜式電腦軟片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(Read-Only Memory,ROM)、可抹除可編程唯讀記憶體(Erasable Programmable Read-Only Memory,EPROM;或快閃記憶體)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)、可攜式光碟唯讀記憶體(Compact Disc Read-Only Memory,CD-ROM)、數位光碟(Digital Versatile Disk,DVD)、記憶條、軟碟、機械編碼裝置(例如,打孔卡,或在凹槽中記錄有指令的凸起結構),以及上述任何合適的組合。如本說明書所使用,電腦可讀儲存媒體不應被解釋為瞬態訊號本身,例如,無線電波或其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,透過光纖電纜的光脈衝)、或透過電線傳輸的電訊號。
此處描述電腦可讀程式指令可以從電腦可讀儲存媒體下載到各個計算/處理裝置,或者通過網絡下載到外部電腦或外部儲存裝置,網路例如為網際網路、局域網路、廣域網路和/或無線網路。網絡可以包括銅傳輸電纜、光傳輸光纖、無線傳輸、路由器、防火牆、交換機、閘道電腦和/或邊緣伺服器。每個計算/處理裝置中的網路配接器或網路介面從網路接收電腦可讀程式指令並轉發電腦
可讀程式指令以儲存在相應計算/處理裝置內的電腦可讀儲存媒體中。
用於執行本發明的操作的電腦可讀程式指令可以是組譯器指令、指令集架構(instruction-set-architecture,ISA)指令、機器指令、機器相關指令、微編碼、韌體指令、狀態設定資料、基體電路的配置資料、或以一種或多種程式設計語言的任意組合編寫的源編碼或目標編碼,包括物件導向程式設計語言,例如,Smalltalk、C++等,以及程序式程式設計語言,如“C”程式設計語言或類似程式設計語言。電腦可讀程式指令可以完全在用戶的電腦上執行、部分在用戶的電腦上作為獨立的軟體封包執行、部分在用戶的電腦上且部分在遠程電腦上執行、或者完全在遠程電腦或伺服器上執行。在後面的情況下,遠程電腦可以通過任何類型的網路(包括LAN或WAN)連接到用戶的電腦,或者可以連接到外部電腦(例如,使用網際網路服務提供商透過網際網路)。在一些實施例中,包括例如可編程邏輯電路、現場可程式化邏輯閘陣列(FPGA)、或可編程邏輯陣列(Programmable Logic Array,PLA)的電子電路系統可以透過利用電腦可讀程式指令的狀態資訊來執行電腦可讀程式指令以個性化電子電路系統,以便執行本發明的各方面實施方式。
在參考根據本發明的實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或方塊圖來描述本發明的各方面實施方式。應當理解,流程圖和/或方塊圖的每個方塊,以及流程圖和/或方塊圖中的方塊組合,可以由電腦可讀程式指令來實施。
可以將這些電腦可讀程式指令提供給電腦的處理器或其他可編程資料處理裝置,以產生機器,使得經由電腦的處理
器或其他可編程資料處理裝置執行的指令創建了用於實施流程圖和/或方塊的方塊所指定的功能/動作的手段。這些電腦可讀程序程式也可以儲存在電腦可讀儲存媒體中,該電腦可讀儲存媒體可以指示電腦、可編程資料處理裝置、和/或其他裝置以特定方式運行,使得其中儲存有指令的電腦可讀儲存媒體包括製造品,其包括實施流程圖和/或方塊圖的方塊指定的功能/動作的各方面的指令。
電腦可讀程式指令也可以加載到電腦、其他可編程資料處理裝置、或其他設備上,以導致在電腦、其他可編程裝置、或其他裝置上執行一系列操作步驟,以產生電腦實施程序,使得在電腦、其他可編程裝置或其他裝置上執行的指令實施流程圖和/或方塊圖的方塊所指定的功能/動作。
圖式中的流程圖和方塊圖說明了根據本發明的各種實施例的系統、方法和電腦程式產品的可能實施方式的架構、功能、和操作。就此而言,流程圖或方塊圖中的每個方塊可以表示指令的一模組、一區段、或一部分,其包括用於實施指定邏輯功能的一個或多個可執行指令。在一些替代實施方式中,方塊中標註的功能可以不按圖中標註的順序發生。例如,連續顯示的兩個方塊實際上可以作為一個步驟來完成,其同時執行、基本上同時執行、以部分或完全時間重疊的方式執行,或者這些方塊有時可以相反的順序執行,這取決於所涉及的功能。還應注意,方塊圖和/或流程圖圖式的每個方塊,以及方塊圖和/或流程圖圖式中方塊的組合,可以由基於專用硬體的系統來實施,這些系統執行指定的功能或操作或者執行專用硬體與電腦指令的組合。
由此可見,雖然本說明書的實施方式的各個方面已
經被說明為包括具體設計、定向、組件數量等,但這絕非試圖對本案進行限制。相反地,本說明書的實施方式僅出於示例性目的而呈現,並且可以根據所需方法而在設計、定向、組件數量等方面有所不同。還應注意,術語“底部”、“下部”、“頂部”、“上部”等的使用絕非試圖對本案進行限制。用於描述本說明書各種實施方式的任何參考是僅出於說明目的而被選擇並且可以根據需要進行調整。
還應注意,雖然已針對一種或多種方法來說明和描述所揭露的實施方式,但在閱讀和理解本說明書和所附的圖式後,本領域中具有通常知識者員將理解或已知等同的變更和修改。此外,雖然本發明的特定特徵可能僅針對幾個實施方式中的一個被被揭露,但是這些特徵可以與其他實施方式的一個或多個其他特徵組合,這對於任何給定或特定應用來說可能是期望的和有利的。
還應當理解,本揭露的各種實施方式僅以示例的方式而非限制的方式呈現。在不脫離本揭露的精神或範圍的情況下,可以根據本文的揭露對所揭露的實施例進行許多改變。因此,本揭露的廣度和範圍不應受到上述任何實施例的限制。相反,本揭露的範圍應當根據所附申請專利範圍及其等同物來限定。
100:計算系統
102:中央處理單元(CPU)
104:記憶體模組
106:快取記憶體
108:週邊控制器
110:基板管理控制器(BMC)
111:網路連接埠
112:網路
114:記憶體模組
116:記憶體的一部分
118:多工器(MUX)
120:快閃記憶體模組
122:控制引腳
124:平台信任根處理器(PRoT)
150:輔助系統
152:控制器
154:儲存模組
Claims (9)
- 一電腦實施方法,用於初始化一計算系統,該電腦實施方法包括:響應於直接從一快閃記憶體執行的一基本輸入/輸出系統(Basic Input/Output System,BIOS)編碼,使一快取記憶體在該計算系統的一中央處理單元(Central Processing Unit,CPU)中被初始化;使一通訊路徑被初始化,其中,該通訊路徑在該CPU與對應於該計算系統的一基板管理控制器(Baseboard Management Controller,BMC)的一記憶體之間延伸;使一BIOS韌體從該BMC的該記憶體複製到該CPU的該快取記憶體;使該BIOS韌體從該CPU的該快取記憶體中啟動;調用在該CPU的一記憶體中的複數預可延伸韌體介面初始化模組(pre-EFI Initialization Module,PEIM);使該CPU的一記憶體控制器被初始化;使該BIOS韌體的一部份從該CPU的該快取記憶體複製到對應該CPU的該記憶體;以及使該BIOS韌體的該部分從該CPU的該記憶體啟動。
- 如請求項1的電腦實施方法,其中,使該BIOS韌體從該CPU的該快取記憶體中啟動包括:調用該CPU的該快取記憶體中的該BIOS韌體中一預可延伸韌體介面(pre-Extensible Firmware Interface,pre-EFI)初始化 (pre-EFI Initialization,PEI)入口點,從而啟動初始化該計算系統的一PEI階段。
- 如請求項2之電腦實施方法,更包括:調用該CPU的該快取記憶體中的複數PEI模組(PEI Module,PEIM),該等PEIM用於初始化該CPU的該記憶體控制器。
- 如請求項1的電腦實施方法,其中,該BMC的該記憶體包括一隨機存取記憶體(Random Access Memory,RAM)。
- 如請求項1的電腦實施方法,其中,該通訊路徑在該CPU與該BMC的該記憶體的一共享部分之間延伸,該BMC的該記憶體的該共享部分可供該CPU和該BMC存取。
- 如請求項1之電腦實施方法,其中,從該BMC的該記憶體複製到該CPU的該記憶體的該BIOS韌體包括一驅動程式執行環境(Driver Execution environment,DXE)基礎編碼,以及其中,使該BIOS韌體從該CPU的該記憶體啟動包括:調用該DXE基礎編碼中的一DXE入口點,從而啟動初始化該計算系統的一DXE階段。
- 如請求項1的電腦實施方法,其中,該快閃記憶體包括一串列週邊介面NOR快閃記憶體。
- 一種電腦程式產品,用於初始化一計算系統,該電腦程式產品包括具有複數程式指令的一電腦可讀儲存媒體,該等程式指令由一處理器讀取和/或執行以使處理器執行:響應於直接從一快閃記憶體執行的一基本輸入/輸出系統(Basic Input/Output System,BIOS)編碼,由該處理器使一快取記憶體在該計算系統的一中央處理單元(Central Processing Unit,CPU)中被初始化;由該處理器使一通訊路徑被初始化,其中,該通訊路徑在該CPU與對應於該計算系統的一基板管理控制器(Baseboard Management Controller,BMC)的一記憶體之間延伸;由該處理器使一BIOS韌體從該BMC的該記憶體複製到該CPU的該快取記憶體;由該處理器使該BIOS韌體從該CPU的該快取記憶體中啟動;調用在該CPU的一記憶體中的複數預可延伸韌體介面初始化模組(pre-EFI Initialization Module,PEIM);由該處理器使該CPU的一記憶體控制器被初始化;由該處理器使該BIOS韌體的一部份從該CPU的該快取記憶體複製到對應該CPU的該記憶體;以及由該處理器使該BIOS韌體的該部分從該CPU的該記憶體啟動。
- 一種計算系統,包括:一快閃記憶體;一中央處理單元(Central Processing Unit,CPU);一基板管理控制器(Baseboard Management Controller,BMC);一處理器;以及與該處理器集成和/或由該處理器執行的一邏輯,該邏輯經配置以:響應於直接從該快閃記憶體執行的一基本輸入/輸出系統(Basic Input/Output System,BIOS)編碼,由該處理器使一快取記憶體在該CPU中被初始化; 由該處理器使一通訊路徑被初始化,其中,該通訊路徑在該CPU與對應於該BMC的一記憶體之間延伸;由該處理器使一BIOS韌體從該BMC的該記憶體複製到該CPU的該快取記憶體;由該處理器使該BIOS韌體從該CPU的該快取記憶體中啟動;調用在該CPU的一記憶體中的複數預可延伸韌體介面初始化模組(pre-EFI Initialization Module,PEIM);由該處理器使該CPU的一記憶體控制器被初始化;由該處理器使該BIOS韌體的一部份從該CPU的該快取記憶體複製到對應該CPU的該記憶體;以及由該處理器使該BIOS韌體的該部分從該CPU的該記憶體啟動。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/184,518 US12112176B1 (en) | 2023-03-15 | 2023-03-15 | Selective firmware placement during initialization of compute systems |
US18/184,518 | 2023-03-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202439131A TW202439131A (zh) | 2024-10-01 |
TWI866411B true TWI866411B (zh) | 2024-12-11 |
Family
ID=92715005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112132096A TWI866411B (zh) | 2023-03-15 | 2023-08-25 | 用於初始化計算系統的電腦實施方法、電腦程式產品、以及計算系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12112176B1 (zh) |
TW (1) | TWI866411B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201530315A (zh) * | 2014-01-29 | 2015-08-01 | Transcend Information Inc | 用於儲存裝置的初始化方法與系統 |
TW202125233A (zh) * | 2019-12-27 | 2021-07-01 | 廣達電腦股份有限公司 | 從分離的bios映像檔啟動的方法及系統 |
US11222120B2 (en) * | 2019-11-19 | 2022-01-11 | Dell Products L.P. | Storage device firmware bootloader recovery system and method therefor |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563437B2 (en) * | 2014-06-27 | 2017-02-07 | Intel Corporation | Technologies for pre-memory phase initialization of a computing device |
US10318417B2 (en) * | 2017-03-31 | 2019-06-11 | Intel Corporation | Persistent caching of memory-side cache content |
-
2023
- 2023-03-15 US US18/184,518 patent/US12112176B1/en active Active
- 2023-08-25 TW TW112132096A patent/TWI866411B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201530315A (zh) * | 2014-01-29 | 2015-08-01 | Transcend Information Inc | 用於儲存裝置的初始化方法與系統 |
US11222120B2 (en) * | 2019-11-19 | 2022-01-11 | Dell Products L.P. | Storage device firmware bootloader recovery system and method therefor |
TW202125233A (zh) * | 2019-12-27 | 2021-07-01 | 廣達電腦股份有限公司 | 從分離的bios映像檔啟動的方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
US12112176B1 (en) | 2024-10-08 |
TW202439131A (zh) | 2024-10-01 |
US20240311160A1 (en) | 2024-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990411B2 (en) | System and method to install firmware volumes from NVMe boot partition | |
CN110063051B (zh) | 用于重新配置服务器的系统和方法以及服务器 | |
US11106622B2 (en) | Firmware update architecture with OS-BIOS communication | |
ES2632512T3 (es) | Conversión de máquinas a máquinas virtuales | |
US6993642B2 (en) | Method and system for creating and employing an operating system having selected functionality | |
US9176744B2 (en) | Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot | |
US20170228228A1 (en) | Remote launch of deploy utility | |
KR20040038714A (ko) | 네트워크 스위치 구성 시스템 및 방법 | |
US12067411B2 (en) | Hot growing a cloud hosted block device | |
TWI813887B (zh) | 從分離的bios映像檔啟動的方法及系統 | |
US20090125709A1 (en) | System And Method For A Remote Information Handling System Boot | |
US12197939B2 (en) | Provisioning DPU management operating systems | |
US9672047B1 (en) | Systems and methods for accessing a bootable partition on a serial peripheral interface device | |
CN114756290B (zh) | 一种操作系统安装方法、设备及可读存储介质 | |
US11263023B1 (en) | System and method for updating host operating system drivers from a management controller | |
TWI866411B (zh) | 用於初始化計算系統的電腦實施方法、電腦程式產品、以及計算系統 | |
US20060047927A1 (en) | Incremental provisioning of software | |
US7506115B2 (en) | Incremental provisioning of software | |
US11295018B1 (en) | File system modification | |
US10102020B2 (en) | Methods, systems, and computer readable media for virtual machine (VM) deployment using read-only memory | |
TWI840849B (zh) | 計算系統、電腦實施方法及電腦程式產品 | |
US11977753B2 (en) | BIOS NVRAM storage extension system and method for secure and seamless access for various boot architectures | |
WO2024022212A1 (zh) | 配置信息的管理方法、装置及服务器 | |
KR100947136B1 (ko) | 소프트웨어의 증분 프로비져닝 | |
US20240103837A1 (en) | Seamless and secure motherboard replacement system and method |