TW202225961A - 可組配的容錯機制 - Google Patents

可組配的容錯機制 Download PDF

Info

Publication number
TW202225961A
TW202225961A TW110135650A TW110135650A TW202225961A TW 202225961 A TW202225961 A TW 202225961A TW 110135650 A TW110135650 A TW 110135650A TW 110135650 A TW110135650 A TW 110135650A TW 202225961 A TW202225961 A TW 202225961A
Authority
TW
Taiwan
Prior art keywords
area
update
boot
backup
primary
Prior art date
Application number
TW110135650A
Other languages
English (en)
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 TW202225961A publication Critical patent/TW202225961A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)

Abstract

本案揭示一種用以促進一電腦系統平台中之韌體容錯的設備。該設備包含:一非依電性記憶體,其用以儲存用於一電腦系統平台之韌體,其中該韌體包含:一主級啟動區,其包括啟動碼;以及一備份啟動區,其包括該啟動碼之一備份複本;多個暫存器,其用以儲存與該主級啟動區及該備份啟動區相關聯之位址;以及更新硬體,其用以執行該主級啟動區之一更新,且在判定該更新已中斷後即刻存取該等暫存器以執行一平台啟動。

Description

可組配的容錯機制
本發明係有關於可組配的容錯機制。
發明背景
系統單晶片(SOC)為整合電腦或其他電子系統之所有組件之積體電路。此等組件包括中央處理單元(CPU)、記憶體、輸入/輸出(IO)埠以及次級儲存器,其全部包括於單一基體或微晶片上。另外,SOC經由標準化晶粒上互連協定實現第三方組件之整合。然而,添加此等組件可能導致安全性漏洞。
依據本發明之一實施例,係特地提出一種用以促進一電腦系統平台中之韌體容錯的設備,其包含:一非依電性記憶體,其用以儲存用於該電腦系統平台之韌體,其中該韌體包含:一主級啟動區,其包括啟動碼;及一備份啟動區,其包括該啟動碼之一備份複本;多個暫存器,其用以儲存與該主級啟動區及該備份啟動區相關聯之位址;以及更新硬體,其用以執行該主級啟動區之一更新,且在判定該更新已中斷後即刻存取該等暫存器以執行一平台啟動。
較佳實施例之詳細說明
在以下描述中,闡述眾多特定細節以提供對本發明實施例之更透徹理解。然而,熟習此項技術者將顯而易見,本發明實施例可在無此等特定細節中之一或多者之情況下加以實踐。在其他情況下,未描述眾所周知的特徵以便避免混淆本發明實施例。
在實施例中,提供一種機制以促進電腦系統平台中之韌體容錯。在此類實施例中,更新硬體對於與硬體中之主級及備份啟動區相關聯之位址使用硬體暫存器,且在判定主級啟動區之更新已中斷後即刻自暫存器擷取位址。
對「一個實施例」、「一實施例」、「實例實施例」、「各種實施例」等之參考指示如此描述之實施例可包括特定特徵、結構或特性,但並非每一實施例必須包括該等特定特徵、結構或特性。另外,一些實施例可具有針對其他實施例所描述之特徵中之一些、全部或不具有該等特徵中之任一者。
在以下描述及申請專利範圍中,可使用「耦接」一詞及其衍生詞。「耦接」用以指示兩個或更多個元件彼此合作或相互作用,但該等元件在其間可具有或可不具有介入的實體或電氣組件。
如申請專利範圍中所使用,除非另外規定,否則使用序數形容詞「第一」、「第二」、「第三」等等描述共同元件僅指示正參照之類似元件之不同例子,且不意欲暗示如此描述之元件必須處於給定順序,無論時間、空間、等級上抑或以任何其他方式。
圖1說明計算裝置100之一個實施例。根據一個實施例,計算裝置100包含代管積體電路(「IC」)之電腦平台,諸如系統單晶片(「SoC」或「SOC」),從而將計算裝置100之各種硬體及/或軟體組件整合於單一晶片上。如所說明,在一個實施例中,計算裝置100可包括任何數目及類型之硬體及/或軟體組件,諸如(但不限於)圖形處理單元114 (「GPU」或簡稱「圖形處理器」)、圖形驅動器116(亦稱為「GPU驅動器」、「圖形驅動器邏輯」、「驅動器邏輯」、使用者模式驅動器(UMD)、UMD、使用者模式驅動器框架(UMDF)、UMDF,或簡稱「驅動器」)、中央處理單元112 (「CPU」或簡稱「應用程式處理器」)、記憶體108、網路裝置、驅動器等,以及輸入/輸出(I/O)源104,諸如觸控螢幕、觸控面板、觸控板、虛擬或規則鍵盤、虛擬或規則滑鼠、埠、連接器等。計算裝置100可包括充當計算裝置100之硬體及/或實體資源與使用者之間的介面的作業系統(OS) 106。
應瞭解,對於某些實施,與上文所描述之實例相比,具較少或較多裝備之系統可能為較佳的。因此,計算裝置100之組配可取決於諸如價格約束、效能要求、技術改良或其他情況之眾多因素而隨實施而變化。
實施例可實施為以下各者中之任一者或組合:使用父板(parentboard)互連之一或多個微晶片或積體電路、硬連線邏輯、由記憶體裝置儲存且由微處理器執行之軟體、韌體、特殊應用積體電路(ASIC)及/或場可規劃閘陣列(FPGA)。「邏輯」、「模組」、「組件」、「引擎」及「機制」等詞可包括(作為實例)軟體或硬體及/或其組合,諸如韌體。
實施例可使用以下各者實施:一或多個記憶體晶片、控制器、中央處理單元(CPU)、使用主機板互連之微晶片或積體電路、特殊應用積體電路(ASIC),及/或場可規劃閘陣列(FPGA)。「邏輯」一詞可包括(作為實例)軟體或硬體及/或軟體與硬體之組合。
圖2A 至圖2C說明包括類似於上文所論述之計算裝置100之SOC 210的平台200之實施例。如 2A中所示,平台200包括經由CPU 112以通訊方式耦接至一或多個軟體組件280之SOC 210。另外,SOC 210包括經由系統網狀架構205耦接之其他計算裝置組件(例如,記憶體108)。在一個實施例中,系統網狀架構205包含整合式晶片上系統網狀架構(IOSF)以提供用於耦接SOC 210內之互連協定(IP)代理230 (例如,IP代理230A及230B)的標準化晶粒上互連協定。在此實施例中,互連協定提供標準化介面以使得第三方能夠設計諸如IP代理之邏輯以併入於SOC 210中。
根據實施例,IP代理230可包括通用處理器(例如,依序或亂序核心)、固定功能單元、圖形處理器、I/O控制器、顯示控制器等。在此實施例中,每一IP代理230包括硬體介面235 (例如,介面235A及235B)以提供標準化以使得IP代理230能夠與SOC 210組件通訊。舉例而言,在IP代理230為第三方視覺處理單元(VPU)之一實施例中,介面235提供標準化以使得VPU能夠經由網狀架構205存取記憶體108。
SOC 210亦包括安全性控制器240,該安全性控制器作為安全性引擎操作以執行用於SOC 210之各種安全性操作(例如,安全性處理、密碼編譯功能等)。在一個實施例中,安全性控制器240包含IP代理230,其經實施以執行安全性操作。另外,SOC 210包括非依電性記憶體250。非依電性記憶體250可實施為周邊組件高速互連(PCIe)儲存驅動器,諸如固態磁碟機(SSD)或非依電性記憶體高速(NVMe)驅動器。在一個實施例中,非依電性記憶體250經實施以儲存平台200的韌體。舉例而言,非依電性記憶體250儲存啟動韌體(例如,基本輸入/輸出系統(BIOS))及裝置(例如,IP代理230及安全性控制器240)韌體。
圖2B說明平台200之另一實施例,其包括經由IP代理230A耦接至SOC 210之組件260。在一個實施例中,IP代理230A作為將組件260連接至SOC 210之橋接器(諸如PCIe根埠)而操作。在此實施例中,組件260可實施為包括硬體介面235之PCIe裝置(例如,開關或端點),以使得組件260能夠與SOC 210組件通訊。 2C說明平台200之又一實施例,其包括經由雲端網路201耦接至平台200之計算裝置270。在此實施例中,計算裝置270包含經由軟體280提供對SOC 210之存取的雲端代理。
圖3說明平台200之再一實施例,其包括經由串列周邊介面(SPI) 301耦接至SOC 210之非依電性記憶體250。如上文所提及,非依電性記憶體250係實施為用於平台韌體310之儲存器。在一個實施例中,為儲存於非依電性記憶體250中之韌體提供彈性支援。SPI控制器340亦耦接至系統網狀架構205。在一個實施例中,SPI控制器340為經實施以控制經由SPI 301對非依電性記憶體250之存取的快閃控制器。在另一實施例中,SPI控制器340促進韌體310之更新。
韌體,諸如韌體310,通常需要定期更新以提供功能性維護及漏洞修復。現代基礎結構定期推送諸如平台200之系統上的韌體更新。然而,此等更新之終端使用者實施常常為低的,此係由於更新失敗可能導致僅可藉由運送待修復之系統而復原的平台故障。
當前系統可實施容錯更新機制,其允許在起始主級韌體複本上之更新之前將包括於韌體中之啟動塊之冗餘(或備份複本)存檔。因此,在更新期間發生故障之情況下,容錯更新機制使得重設向量位址能夠自動地切換至啟動塊之冗餘複本,而非由重設向量指向之錯誤的主級韌體複本。
然而,容錯更新機制當前僅允許固定的冗餘啟動塊大小。此在更新整個韌體或2 n大小(例如,4 MB或8 MB)啟動塊時效果良好。然而,當僅更新特定韌體子組件(例如微碼)時,必須存檔4 MB之整個啟動塊,即使子組件為該大小之分率(例如,120k修補程式)亦如此。 4A說明韌體組配2 n大小容錯區。如 4A中所示,容錯區為必須更新的最小1 MB,即使當嘗試僅更新主韌體的一部分時亦如此。
圖4B說明另一韌體組配。如 4B中所示,容錯區固定至整個啟動塊大小(2 n之大小)以允許容錯更新機制切換至不同重設向量。同樣,需要存檔整個容錯區,即使微碼韌體佔據故障區域之極小部分。
根據一個實施例,提供可縮放及可組配的容錯區,其使得能夠對整個啟動塊以及在啟動塊區內之較小模組化子組件進行容錯更新。參考 3,SPI控制器340包括更新代理342,以在判定在系統起動(或啟動)期間存在待決韌體更新後即刻組配具有容錯複本之韌體310的備份區(或塊)。儘管展示為包括於SPI控制器340中,但其他實施例之特徵可為更新代理342併入於平台200硬體之其他組件(例如,CPU 112)中。
在另一實施例中,平台200包括容錯硬體暫存器,該等容錯硬體暫存器由更新代理342組配以儲存正更新之韌體310中的主級啟動區之位址以及在開始韌體310更新之前的容錯複本之位址。如 3中所示,CPU 112包括暫存器380。在一個實施例中,暫存器380包括源基底、經修補大小及目標基底暫存器以實施啟動區更新(或修補)。源基底暫存器提供經修補啟動(或主級修補程式)區的基底位址,經修補大小暫存器提供經修補區的大小,且目標基底暫存器提供自源(例如,備份修補程式)區指向之啟動區的基底位址。因此,藉由實施上述暫存器組之數目(N)個複本,可映射多個區。然而,在其他實施例中,一個大修補程式區可劃分成多個較小區。
根據一個實施例,更新代理342藉由更新韌體310之主級修補程式區而開始更新程序。然而,在判定更新已中斷(例如,經由電力故障中斷或重啟)後,CPU 112即刻將與主級修補程式區相關聯之位址空間重新映射至與備份修補程式區相關聯之位址空間。在一個實施例中,更新代理342自常規重設向量恢復啟動碼,且確保原始啟動區藉由恢復複本復原。在此實施例中,更新代理342存取暫存器380,以擷取與主級修補程式區及備份修補程式區相關聯之位址,且使用與備份修補程式區相關聯之位址來存取主級修補程式區之備份啟動碼,且在與主級修補程式區相關聯之位址處用備份啟動碼的內容復原主級修補程式區。隨後,更新代理342重新開始更新韌體310之主級修補程式區之過程。
圖5說明模組化容錯韌體更新組配之一個實施例。如 5中所示,韌體區內之微碼組件經更新,而其他組件(例如,初始啟動塊及密碼服務)未經更新。在更新之前,在韌體310中之不同位置中備份微碼區。結果,待更新之區的基底、其大小及韌體310中之備份微碼區的位置為更新的暫存器380,如上文所描述。隨後,可開始更新。
圖6為說明容錯更新過程之一個實施例的流程圖。在處理區塊605處,接收更新主級修補程式區之請求。在處理區塊610處,使用暫存器380 (例如,源暫存器及目的地暫存器)產生容錯修補程式區。在處理區塊615處,更新開始。在處理區塊620處,偵測更新之中斷。在處理區塊625處,重啟平台。在處理區塊630處,存取容錯暫存器以擷取與主級修補程式區及備份修補程式區相關聯之位址。在處理區塊635處,使用所擷取位址來用備份修補程式區之內容復原主級修補程式區。在處理區塊640處,重新開始韌體修補程式更新。
上述機制提供選擇容錯修補向量及下載小於完整啟動塊之模組更新的靈活性。
圖7為根據一些實施例之用以實現針對敵對攻擊之增強保護的說明性電子計算裝置之示意圖。在一些實施例中,計算裝置700包括一或多個處理器710,該一或多個處理器包括一或多個處理器核心718及TEE 764,該TEE包括機器學習服務指定位址空間(MLSE) 780。在一些實施例中,計算裝置700包括硬體加速器768,該硬體加速器包括密碼編譯引擎782及機器學習模型784。在一些實施例中,計算裝置將提供針對ML敵對攻擊之增強保護,如 1 至圖 6中所提供。
計算裝置700可另外包括以下各者中之一或多者:快取記憶體762、圖形處理單元(GPU) 712 (在一些實施中,其可為硬體加速器)、無線輸入/輸出(I/O)介面720、有線I/O介面730、記憶體電路740、功率管理電路750、非暫時性儲存裝置760及用於連接至網路772之網路介面770。以下論述提供對形成說明性計算裝置700之組件的簡要、通用描述。實例非限制性計算裝置700可包括桌上型計算裝置、刀鋒伺服器裝置、工作站或類似裝置或系統。
在實施例中,處理器核心718能夠執行機器可讀指令集714、自一或多個儲存裝置760讀取資料及/或指令集714且將資料寫入至一或多個儲存裝置760。熟習相關技術者將瞭解,所說明實施例以及其他實施例可用其他基於處理器之裝置組配加以實踐,包括攜帶型電子裝置或手持型電子裝置,例如智慧型電話、攜帶型電腦、可佩戴式電腦、消費型電子裝置、個人電腦(「PC」)、網路PC、微型電腦、伺服器刀鋒、大型電腦,等等。
處理器核心718可包括任何數目個硬連線或可組配電路,其中一些或全部可包括部分或完全安置於PC、伺服器或能夠執行處理器可讀指令之其他計算系統中的電子組件、半導體裝置及/或邏輯元件之可規劃及/或可組配組合。
計算裝置700包括可通訊地耦接且促進包括處理器核心718、快取記憶體762、圖形處理器電路712、一或多個無線I/O介面720、一或多個有線I/O介面730、一或多個儲存裝置760及/或一或多個網路介面770之各種系統組件之間的資訊及/或資料交換的匯流排或類似通訊連結716。計算裝置700可在本文中以單數提及,但此並不意欲將實施例限於單一計算裝置700,此係因為在某些實施例中,可存在併有、包括或含有任何數目個可通訊地耦接、共置或遠端聯網電路或裝置的多於一個計算裝置700。
處理器核心718可包括能夠執行機器可讀指令集之當前可用或未來開發之裝置的任何數目、類型或組合。
處理器核心718可包括(或耦接至)但不限於任何當前或未來開發之單核心或多核心處理器或微處理器,諸如:一或多個系統單晶片(SOC);中央處理單元(CPU);數位信號處理器(DSP);圖形處理單元(GPU);特殊應用積體電路(ASIC)、可規劃邏輯單元、場可規劃閘陣列(FPGA),等等。除非另外描述,否則 7中所展示之各種區塊之構造及操作具有習知設計。因此,無需在本文中進一步詳細描述此類區塊,此係因為其將由熟習相關技術者理解。將計算裝置700之組件中之至少一些互連的匯流排716可使用任何當前可用或未來開發之串列或並列匯流排結構或架構。
系統記憶體740可包括唯讀記憶體(「ROM」) 742及隨機存取記憶體(「RAM」) 746。ROM 742之一部分可用以儲存或以其他方式保持基本輸入/輸出系統(「BIOS」) 744。BIOS 744將基本功能性提供給計算裝置700,例如藉由使處理器核心718載入及/或執行一或多個機器可讀指令集714。在實施例中,一或多個機器可讀指令集714中之至少一些使得處理器核心718之至少一部分提供、建立、產生、轉換及/或充當專用、具體及特定機器,例如文字處理機器、數位影像獲取機器、媒體播放機器、遊戲系統、通訊裝置、智慧型電話,等等。
計算裝置700可包括至少一個無線輸入/輸出(I/O)介面720。至少一個無線I/O介面720可通訊地耦接至一或多個實體輸出裝置722 (觸覺裝置、視訊顯示器、音訊輸出裝置、畫面複本輸出裝置等)。至少一個無線I/O介面720可通訊地耦接至一或多個實體輸入裝置724 (指標裝置、觸控螢幕、鍵盤、觸覺裝置,等)。至少一個無線I/O介面720可包括任何當前可用或未來開發之無線I/O介面。實例無線I/O介面包括但不限於:BLUETOOTH®、近場通訊(NFC),等等。
計算裝置700可包括一或多個有線輸入/輸出(I/O)介面730。至少一個有線I/O介面730可通訊地耦接至一或多個實體輸出裝置722 (觸覺裝置、視訊顯示器、音訊輸出裝置、畫面複本輸出裝置,等)。至少一個有線I/O介面730可通訊地耦接至一或多個實體輸入裝置724 (指標裝置、觸控螢幕、鍵盤、觸覺裝置,等)。有線I/O介面730可包括任何當前可用或未來開發之I/O介面。實例有線I/O介面包括但不限於:通用串列匯流排(USB)、IEEE 1394 (「火線」),等等。
計算裝置700可包括一或多個可通訊地耦接之非暫時性資料儲存裝置760。資料儲存裝置760可包括一或多個硬碟機(HDD)及/或一或多個固態儲存裝置(SSD)。一或多個資料儲存裝置760可包括任何當前或未來開發的儲存器具、網路儲存裝置及/或系統。此類資料儲存裝置760的非限制性實例可包括但不限於任何當前或未來開發的非暫時性儲存器具或裝置,諸如一或多個磁性儲存裝置、一或多個光學儲存裝置、一或多個電阻式儲存裝置、一或多個分子儲存裝置、一或多個量子儲存裝置,或其各種組合。在一些實施中,一或多個資料儲存裝置760可包括一或多個可移除式儲存裝置,諸如一或多個快閃驅動器、快閃記憶體、快閃儲存單元或能夠通訊地耦接至計算裝置700且自其解耦的類似器具或裝置。
一或多個資料儲存裝置760可包括以通訊方式將各別儲存裝置或系統耦接至匯流排716之介面或控制器(未展示)。一或多個資料儲存裝置760可儲存、保持或以其他方式含有機器可讀指令集、資料結構、程式模組、資料儲存區、資料庫、邏輯結構及/或適用於處理器核心718及/或圖形處理器電路712之其他資料及/或在處理器核心718及/或圖形處理器電路712上或由其執行之一或多個應用程式。在一些情況下,一或多個資料儲存裝置760可例如經由匯流排716或經由一或多個有線通訊介面730 (例如,通用串列匯流排或USB)、一或多個無線通訊介面720 (例如,Bluetooth®、近場通訊或NFC)及/或一或多個網路介面770 (IEEE 802.3或乙太網路、IEEE 802.11或Wi-Fi®等)可通訊地耦接至處理器核心718。
處理器可讀指令集714及其他程式、應用程式、邏輯組及/或模組可整體或部分地儲存於系統記憶體740中。此等指令集714可整體或部分地自一或多個資料儲存裝置760傳送。指令集714可在由處理器核心718及/或圖形處理器電路712執行期間整體或部分地載入、儲存或以其他方式保持在系統記憶體740中。
計算裝置700可包括控制能量儲存裝置752之一或多個操作態樣的功率管理電路750。在實施例中,能量儲存裝置752可包括一或多個主級(即,不可再充電)或次級(即,可再充電)電池或類似能量儲存裝置。在實施例中,能量儲存裝置752可包括一或多個超級電容器或超電容器。在實施例中,功率管理電路750可變更、調整或控制能量自外部電源754至能量儲存裝置752及/或至計算裝置700之流動。電源754可包括但不限於太陽能系統、商用電網、攜帶型發電機、外部能量儲存裝置,或其任何組合。
為方便起見,處理器核心718、圖形處理器電路712、無線I/O介面720、有線I/O介面730、儲存裝置760及網路介面770說明為經由匯流排716以通訊方式彼此耦接,藉此提供上述組件之間的連接性。在替代實施例中,上述組件可以與 7中所說明之方式不同的方式以通訊方式耦接。舉例而言,上述組件中之一或多者可直接耦接至其他組件,或可經由一或多個中間組件(未展示)彼此耦接。在另一實例中,上述組件中之一或多者可整合至處理器核心718及/或圖形處理器電路712中。在一些實施例中,可省略匯流排716之全部或一部分,且使用適當有線或無線連接將組件直接彼此耦接。
實施例可提供為例如電腦程式產品,其可包括一或多個暫時性或非暫時性機器可讀儲存媒體,該機器可讀儲存媒體具有儲存於其上之機器可執行指令,該等機器可執行指令在由諸如電腦、電腦網路或其他電子裝置之一或多個機器執行時可導致一或多個機器進行根據本文中所描述之實施例的操作。機器可讀媒體可包括但不限於軟碟、光碟、CD-ROM (緊密光碟唯讀記憶體)及磁光碟、ROM、RAM、EPROM (可抹除可規劃唯讀記憶體)、EEPROM (電可抹除可規劃唯讀記憶體)、磁性或光學卡、快閃記憶體,或適合於儲存機器可執行指令之其他類型之媒體/機器可讀媒體。
一些實施例係關於實例1,其包括一種用以促進一電腦系統平台中的韌體容錯之設備,其包含:一非依電性記憶體,其用以儲存用於一電腦系統平台之韌體,其中該韌體包含:一主級啟動區,其包括啟動碼;以及一備份啟動區,其包括該啟動碼之一備份複本;多個暫存器,其用以儲存與該主級啟動區及該備份啟動區相關聯之位址;以及更新硬體,其用以執行該主級啟動區之一更新,且在判定該更新已中斷後即刻存取該等暫存器以執行一平台啟動。
實例2包括實例1之標的物,其中在判定該更新已中斷後,該更新硬體即刻自該等暫存器擷取與該主級區及該備份區相關聯之位址。
實例3包括實例1及2之標的物,其進一步包含一處理器,該處理器用以將與該主級區相關聯之該位址重新映射至與該備份區相關聯之該位址。
實例4包括實例1至3之標的物,其中該更新硬體存取與該備份區相關聯之該位址以擷取該啟動碼之該備份複本。
實例5包括實例1至4之標的物,其中該更新硬體在與該主級啟動區相關聯之該位址處用備份啟動碼復原該主級啟動區。
實例6包括實例1至5之標的物,其中該等暫存器包含:一源基底暫存器,其用以提供該主級啟動區之一基底位址;以及一目標基底暫存器,其用以提供該備份啟動區之一基底位址。
實例7包括實例1至6之標的物,其中該更新硬體在開始該更新之前將該主級啟動區之該基底位址及該備份啟動區之該基底位址儲存於該等暫存器中。
實例8包括實例1至7之標的物,其中該等暫存器進一步包含一經修補大小暫存器,以用經更新之該主級啟動區提供一組件之一大小。
實例9包括實例1至8之標的物,其中該組件之該大小小於該主級啟動區。
實例10包括實例1至9之標的物,其中該更新硬體在該主級啟動區已復原之後重新開始該更新。
一些實施例係關於實例11,其包括一種用以促進一電腦系統平台中之韌體容錯的方法,該方法包含:執行非依電性記憶體韌體內之一主級啟動區之一更新;判定該更新已中斷;以及在判定該更新已中斷後即刻存取該平台內之暫存器以執行一平台啟動。
實例12包括實例11之標的物,其中存取該等暫存器包含:在判定該更新已中斷後,即刻自該等暫存器擷取與該主級啟動區及一備份區相關聯之位址;以及存取與該備份區相關聯之該位址,擷取與該備份區相關聯之該位址以擷取啟動碼之備份複本。
實例13包括實例11及12之標的物,其進一步包含將與該主級區相關聯之該位址重新映射至與該備份區相關聯之該位址。
實例14包括實例11至13之標的物,其進一步包含在與該主級啟動區相關聯之該位址處用備份啟動碼復原該主級啟動區。
實例15包括實例11至14之標的物,其進一步包含在開始該更新之前將該主級啟動區之基底位址及該備份啟動區之基底位址儲存於該等暫存器中。
實例16包括實例11至15之標的物,其進一步包含在該主級啟動區已復原之後重新開始該更新。
一些實施例係關於實例17,其包括至少一種電腦可讀媒體,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時使得該等處理器:執行非依電性記憶體韌體內之一主級啟動區之一更新;判定該更新已中斷;以及在判定該更新已中斷後即刻存取該平台內之暫存器以執行一平台啟動。
實例18包括實例17之標的物,其中存取該等暫存器:在判定該更新已中斷後,即刻自該等暫存器擷取與該主級啟動區及一備份區相關聯之位址;以及存取與該備份區相關聯之該位址,擷取與該備份區相關聯之該位址以擷取啟動碼之備份複本。
實例19包括實例17及18之標的物,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時進一步使得該等處理器將與該主級區相關聯之該位址重新映射至與該備份區相關聯之該位址。
實例20包括實例17至19之標的物,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時進一步使得該等處理器在與該主級啟動區相關聯之該位址處用備份啟動碼復原該主級啟動區。
實例21包括實例17至20之標的物,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時進一步使得該等處理器在開始該更新之前將該主級啟動區之基底位址及該備份啟動區之基底位址儲存於該等暫存器中。
上文已參考特定實施例描述實施例。然而,熟習此項技術者將理解,可在不脫離如所附申請專利範圍中所闡述的實施例之更廣泛精神及範疇的情況下對其進行各種修改及改變。因此,前述描述及圖式應以說明性意義來看待,而非以限制性意義來看待。
100,270,700:計算裝置 104:輸入/輸出(I/O)源 106:作業系統(OS) 108:記憶體 112:中央處理單元 114:圖形處理單元 116:圖形驅動器 200:平台 201:雲端網路 205:系統網狀架構 210:系統單晶片(SOC) 230,230A,230B:互連協定(IP)代理 235A,235B:介面 240:安全性控制器 250:非依電性記憶體 260:組件 280:軟體組件 301:串列周邊介面(SPI) 310:平台韌體 340:SPI控制器 342:更新代理 380:暫存器 605,610,615,620,625,630,635,640:處理區塊 710:處理器 712:圖形處理單元(GPU) 714:機器可讀指令集 716:匯流排/通訊連結 718:處理器核心 720:無線輸入/輸出(I/O)介面 722:實體輸出裝置 724:實體輸入裝置 730:有線I/O介面 740:記憶體電路 742:唯讀記憶體 744:基本輸入/輸出系統 746:隨機存取記憶體 750:功率管理電路 752:能量儲存裝置 754:電源 760:非暫時性資料儲存裝置 762:快取記憶體 764:TEE 770:網路介面 772:網路 780:機器學習服務指定位址空間(MLSE) 782:密碼編譯引擎 784:機器學習模型
因此,可參考實施例獲得可詳細地理解本發明實施例之上述特徵之方式、上文簡要概述之實施例之更特定描述,實施例中之一些說明於附圖中。然而,應注意,附圖僅說明此實施例之典型實施例,且因此不應將其視為限制此實施例之範疇,因為實施例可准許其他同等有效之實施例。
圖1說明計算裝置之一個實施例。
圖2A 至圖2C說明平台之實施例。
3說明平台之又一實施例。
圖4A 及圖4B說明習知韌體組配。
圖5說明韌體更新組配之一個實施例。
圖6為說明容錯更新過程之一個實施例的流程圖。
圖7說明說明性電子計算裝置之示意圖的一個實施例。
100:計算裝置
104:輸入/輸出(I/O)源
106:作業系統(OS)
108:記憶體
112:中央處理單元
114:圖形處理單元
116:圖形驅動器

Claims (21)

  1. 一種用以促進一電腦系統平台中之韌體容錯的設備,其包含: 一非依電性記憶體,其用以儲存用於該電腦系統平台之韌體,其中該韌體包含: 一主級啟動區,其包括啟動碼;及 一備份啟動區,其包括該啟動碼之一備份複本; 多個暫存器,其用以儲存與該主級啟動區及該備份啟動區相關聯之位址;以及 更新硬體,其用以執行該主級啟動區之一更新,且在判定該更新已中斷後即刻存取該等暫存器以執行一平台啟動。
  2. 如請求項1之設備,其中在判定該更新已中斷後,該更新硬體即刻自該等暫存器擷取與該主級區及該備份區相關聯之該等位址。
  3. 如請求項2之設備,其進一步包含一處理器用以將與該主級區相關聯之該位址重新映射至與該備份區相關聯之該位址。
  4. 如請求項2之設備,其中該更新硬體存取與該備份區相關聯之該位址以擷取該啟動碼之該備份複本。
  5. 如請求項4之設備,其中該更新硬體在與該主級啟動區相關聯之該位址處用該啟動碼之該備份複本復原該主級啟動區。
  6. 如請求項5之設備,其中該等暫存器包含:一源基底暫存器,其用以提供該主級啟動區之一基底位址;以及一目標基底暫存器,其用以提供該備份啟動區之一基底位址。
  7. 如請求項6之設備,其中該更新硬體在開始該更新之前將該主級啟動區之該基底位址及該備份啟動區之該基底位址儲存於該等暫存器中。
  8. 如請求項6之設備,其中該等暫存器進一步包含一經修補大小暫存器,以用經更新之該主級啟動區提供一組件之一大小。
  9. 如請求項8之設備,其中該組件之該大小小於該主級啟動區。
  10. 如請求項5之設備,其中該更新硬體在該主級啟動區已復原之後重新開始該更新。
  11. 一種用以促進一電腦系統平台中之韌體容錯的方法,其包含: 執行非依電性記憶體韌體內之一主級啟動區之一更新; 判定該更新已中斷;以及 在判定該更新已中斷後即刻存取該平台內之暫存器以執行一平台啟動。
  12. 如請求項11之方法,其中存取該等暫存器包含: 在判定該更新已中斷後,即刻自該等暫存器擷取與該主級啟動區及一備份區相關聯之位址;以及 存取與該備份區相關聯之該位址,擷取與該備份區相關聯之該位址以擷取啟動碼之備份複本。
  13. 如請求項12之方法,其進一步包含將與該主級區相關聯之該位址重新映射至與該備份區相關聯之該位址。
  14. 如請求項13之方法,其進一步包含在與該主級啟動區相關聯之該位址處用該啟動碼之該備份複本復原該主級啟動區。
  15. 如請求項14之方法,其進一步包含在開始該更新之前將該主級啟動區之基底位址及該備份啟動區之基底位址儲存於該等暫存器中。
  16. 如請求項15之方法,其進一步包含在該主級啟動區已復原之後重新開始該更新。
  17. 一種具有指令儲存於其上之至少一電腦可讀媒體,該等指令在由一或多個處理器執行時使得該等處理器用以: 執行非依電性記憶體韌體內之一主級啟動區之一更新; 判定該更新已中斷;以及 在判定該更新已中斷後即刻存取該平台內之暫存器以執行一平台啟動。
  18. 如請求項17之電腦可讀媒體,其中存取該等暫存器: 在判定該更新已中斷後,即刻自該等暫存器擷取與該主級啟動區及一備份區相關聯之位址;以及 存取與該備份區相關聯之該位址,擷取與該備份區相關聯之該位址以擷取啟動碼之備份複本。
  19. 如請求項17之電腦可讀媒體,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時進一步使得該等處理器將與該主級區相關聯之該位址重新映射至與該備份區相關聯之該位址。
  20. 如請求項19之電腦可讀媒體,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時進一步使得該等處理器在與該主級啟動區相關聯之該位址處用該啟動碼之該備份複本復原該主級啟動區。
  21. 如請求項20之電腦可讀媒體,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時進一步使得該等處理器在開始該更新之前將該主級啟動區之基底位址及該備份啟動區之基底位址儲存於該等暫存器中。
TW110135650A 2020-12-24 2021-09-24 可組配的容錯機制 TW202225961A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2020/138892 WO2022133873A1 (en) 2020-12-24 2020-12-24 Configurable fault tolerant mechanism
WOPCT/CN2020/138892 2020-12-24

Publications (1)

Publication Number Publication Date
TW202225961A true TW202225961A (zh) 2022-07-01

Family

ID=82158607

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110135650A TW202225961A (zh) 2020-12-24 2021-09-24 可組配的容錯機制

Country Status (2)

Country Link
TW (1) TW202225961A (zh)
WO (1) WO2022133873A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281469B (zh) * 2008-04-11 2011-01-26 青岛海信电器股份有限公司 嵌入式系统及其启动加载的方法
CN102023908B (zh) * 2010-12-03 2015-06-03 中兴通讯股份有限公司 一种引导程序备份方法及装置
CN103123585A (zh) * 2011-11-18 2013-05-29 周增涛 嵌入式系统的更新软件
US10853179B2 (en) * 2018-12-21 2020-12-01 Dell Products L.P. Information handling system and method for restoring firmware in one or more regions of a flash memory device

Also Published As

Publication number Publication date
WO2022133873A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
US11360679B2 (en) Paging of external memory
US10719400B2 (en) System and method for self-healing basic input/output system boot image and secure recovery
US20240020003A1 (en) Hardware accessible memory fabric
US10853179B2 (en) Information handling system and method for restoring firmware in one or more regions of a flash memory device
US9916095B2 (en) Fork-safe memory allocation from memory-mapped files with anonymous memory behavior
US10114763B2 (en) Fork-safe memory allocation from memory-mapped files with anonymous memory behavior
US20210157921A1 (en) System and method for runtime firmware verification, recovery, and repair in an information handling system
US20210357202A1 (en) Firmware updating
US11928215B2 (en) Firmware verification mechanism
US9250919B1 (en) Multiple firmware image support in a single memory device
US10180800B2 (en) Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
US20200134183A1 (en) System and method to recover fpga firmware over a sideband interface
WO2024022212A1 (zh) 配置信息的管理方法、装置及服务器
US9361123B2 (en) Boot from logical volume spanning plurality of PCI devices
US20200319975A1 (en) Early boot event logging system
US20210110043A1 (en) Platform firmware boot mechanism
TW202225961A (zh) 可組配的容錯機制
CN115510803A (zh) 熔丝配方更新机制
US11568048B2 (en) Firmware descriptor resiliency mechanism
US20210109824A1 (en) Platform data resiliency mechanism
US11947969B1 (en) Dynamic determination of a leader node during installation of a multiple node environment
US20200226260A1 (en) Firmware resiliency mechanism