TW202132982A - 監控及復原異質性元件的系統及方法 - Google Patents

監控及復原異質性元件的系統及方法 Download PDF

Info

Publication number
TW202132982A
TW202132982A TW109133443A TW109133443A TW202132982A TW 202132982 A TW202132982 A TW 202132982A TW 109133443 A TW109133443 A TW 109133443A TW 109133443 A TW109133443 A TW 109133443A TW 202132982 A TW202132982 A TW 202132982A
Authority
TW
Taiwan
Prior art keywords
integrated circuit
bmc
fpga
image file
firmware image
Prior art date
Application number
TW109133443A
Other languages
English (en)
Other versions
TWI781452B (zh
Inventor
陳羿仲
林家彧
Original Assignee
廣達電腦股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 廣達電腦股份有限公司 filed Critical 廣達電腦股份有限公司
Publication of TW202132982A publication Critical patent/TW202132982A/zh
Application granted granted Critical
Publication of TWI781452B publication Critical patent/TWI781452B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • External Artificial Organs (AREA)
  • Stored Programmes (AREA)

Abstract

一種監控及復原異質性(heterogeneous)積體電路(integrated circuit;IC)的系統及方法,該異質性積體電路可例如為搭載韌體而運作的一場域可程式邏輯陣列(field programmable gate array;FPGA)。積體電路之韌體映像檔被儲存在一儲存裝置中。積體電路的運作狀況經由一控制器而被週期性地判斷,該控制器可例如為一基板管理控制器(baseboard management controller;BMC)。韌體映像檔被安裝在積體電路上。控制器判斷韌體映像檔之安裝是否致使積體電路之復原。

Description

監控及復原異質性元件的系統及方法
本揭露主要涉及客製化(custom)積體電路(integrated circuit;IC)的韌體復原。更具體地說,本揭露之觀點涉及例如為一場域可程式化邏輯閘陣列(field programmable gate array;FPGA)的客製化積體電路的韌體復原。
伺服器被大量地運用在高需求的應用中,例如基於網路的系統(network based systems)或資料中心。運算應用的雲端之出現,已增加對於資料中心的需求,及其他重度的運作需求。資料中心具有為數眾多的伺服器,該等伺服器儲存資料並運行被遠端連接的電腦裝置的使用者所存取之應用。典型的資料中心具有附帶供電及通訊連接的物理機箱結構。每個機架可支承多個運算伺服器及儲存伺服器。
由於潛在的專業化應用之種類增加,最近幾年伺服器設計已移往異質性(heterogeneous)運算架構。使用異質性運算架構允許分擔系統中的CPU負載,以及處理特定任務的資料。因此,異質性架構透過負載分擔及共享多個專業化功能的命令,改善了伺服器效能。這些改善盛行於用在新一代科技例如人工智慧(artificial intelligence;AI)、5G、機器學習以及大數據分析應用的伺服器上。
客製化積體電路(custom integrated circuit),例如場域可程式化邏輯閘陣列(field programmable gate array;FPGA),通常被使用在異質性運算架構中,因為FPGA具有彈性設計的好處。FPGA允許使用者為FPGA上的多個邏輯閘設計不同的功能。使用FPGA的好處是,使用者能使用軟體來「程式化」FPGA IC的邏輯閘硬體,以執行特定的任務或其他任務。由於FPGA係硬體,FPGA執行專業化任務,比執行軟體程式的同質的(homogeneous)處理器快。因此,FPGA可被「程式化」來以硬體的速度執行多個不同的任務,藉此免除需要專業化硬體來執行這種任務。
由於這種客製化IC係被使用者所設置,在設置軟體中可能存在設計缺陷,因而導致在IC執行期間的系統停機(hang-up)或錯誤。因此,需要有客製化IC的自動復原機制,來改善這種系統的可靠性。然而,在現有的伺服器中,並沒有客製化IC的自動復原機制。
因此,需要有一系統包含自動復原機制,以監控及復原客製化IC的韌體。也需要有一系統能夠在復原客製化IC的韌體的同時,監控及復原基板管理控制器(baseboard management controller;BMC)。更進一步需要一系統,不需要CPU週期(CPU cycle)時間來處理輪詢(polling)程序,以改善系統效能。另外需要一系統,儘管端點錯誤(side errors)發生,藉由復原韌體來改善系統的可靠性。
被揭露的範例係一種提供監控及復原異質性元件的系統。系統包含以韌體運作的積體電路。系統包含被耦接至積體電路的儲存裝置。儲存裝置儲存積體電路之韌體映像檔。控制器被耦接至積體電路。控制器可運作來週期性地判斷積體電路之運作狀態,並從已判斷的運作狀態來判斷積體電路之故障。控制器發送被儲存的韌體映像檔給積體電路,並將韌體映像檔安裝在積體電路上。控制器判斷韌體映像檔之安裝是否致使積體電路之復原。
在被揭露的範例系統的其他實施中,控制器係基板管理控制器(baseboard management controller;BMC)或場域可程式邏輯陣列(field programmable gate array;FPGA)。在另一實施中,積體電路係FPGA或BMC的其中之一。在另一實施中,控制器可運作來響應於偵測到故障,重設積體電路。在另一實施中,積體電路發送週期性的命令給控制器,且控制器基於週期性的命令判斷故障。在另一實施中,系統包含被耦接至積體電路及控制器的非揮發性隨機存取記憶體(non-volatile random access memory;NVRAM)。積體電路週期性地將狀態資料寫入NVRAM。控制器基於狀態資料判斷積體電路之故障。在另一實施中,儲存裝置係快閃記憶體。在另一實施中,控制器與作業系統或基本輸入輸出系統(basic input output system;BIOS)的其中之一聯繫。在另一實施中,若韌體映像檔之安裝並沒有致使積體電路之復原,則作業系統或BIOS可運作來停用連接至積體電路的硬體埠(hardware port)。
另一被揭露的範例係一種監控及復原以韌體運作的異質性積體電路的方法。積體電路之韌體映像檔被儲存在儲存裝置中。經由控制器,週期性地判斷積體電路之運作狀態。積體電路之故障被判斷。被儲存的韌體映像檔被發送給積體電路。韌體映像檔被安裝在積體電路上。控制器判斷韌體映像檔之安裝是否致使積體電路之復原。
在被揭露的範例方法的其他實施中,控制器係BMC或FPGA。在另一實施中,積體電路係FPGA或BMC的其中之一。在另一實施中,方法包含響應於偵測到故障,重設積體電路。在另一實施中,故障係基於積體電路發送給控制器的週期性命令所判斷。在另一實施中,週期性地判斷積體電路之運作狀態,包含積體電路將狀態資料寫入NVRAM,及控制器讀取被寫入的狀態資料。在另一實施中,儲存裝置係快閃記憶體。在另一實施中,控制器被OS或BIOS所指揮。在另一實施中,方法包含若韌體映像檔之安裝並沒有致使積體電路之復原,則停用連接至積體電路的硬體埠。
另一被揭露的範例係一種包含以韌體運作的FPGA積體電路的運算系統。系統包含被耦接至FPGA積體電路、儲存FPGA積體電路之韌體映像檔的儲存裝置。系統包含被耦接至FPGA積體電路的BMC。BMC可運作來週期性地判斷FPGA積體電路之運作狀態。BMC從被判斷的運作狀態來判斷FPGA積體電路是否有故障。BMC發送被儲存的韌體映像檔給FPGA積體電路。BMC將韌體映像檔安裝在FPGA積體電路上。BMC判斷韌體映像檔之安裝是否致使FPGA積體電路之復原。
在被揭露的運算系統的其他實施中,FPGA積體電路可運作來週期性地判斷BMC之運作狀態;從已判斷的運作狀態來判斷BMC之故障;從儲存裝置發送被儲存的一BMC韌體映像檔給BMC;將BMC韌體映像檔安裝在BMC上;及判斷BMC韌體映像檔之安裝是否致使BMC之復原。
以上發明內容並非意圖代表本揭露的每個實施例或每個觀點。相反地,前述的發明內容僅提供在此列舉的某些新穎的觀念及特徵之範例。以上特徵及優點,以及本揭露的其他特徵及優點,當關聯於搭配的圖式及附加的請求項,從以下用來實行本發明的代表性實施例及模式的詳細敘述中,將會輕易地清晰可見。
本發明能以許多不同的形式實施。代表性的實施例被顯示在圖式中,並將在此被詳細敘述。本揭露係本發明的原則之範例或圖解,且並非意圖將本揭露之廣泛的觀點限制於繪式的實施例。在此基礎上,例如在摘要、發明內容及實施方式等段落中被揭露,但並未明確地在請求項中列舉的元件及限制,不應被單獨地、集體地、暗示地、推論地或其他方式地併入至請求項中。為了本詳細敘述之目的,除非被具體地否認,否則單數形包含複數形,反之亦然;且「包含」一詞意指「無限制地包含」。此外,表近似的詞彙,例如「約」、「幾乎」、「大體上」、「大概」及類似的詞彙,能在此被用來意指「在」、「近」、「近於」、「3-5%的範圍內」或「可接受的製造公差內」,或者其任何的邏輯組合。
本揭露涉及提供在儲存裝置(例如快閃記憶體)中,備援的專業化積體電路映像檔。積體電路被週期性地檢驗,且若偵測到故障(failure),映像檔可被提供來重設積體電路之運作。
第1圖顯示允許對例如為積體電路的異質性元件監控及復原的系統100。經由被整合的控制器之韌體映像檔,藉由使用系統100之現有的控制器,復原可被自動地執行。系統100包含一基板管理控制器(BMC)110、一例如為場域可程式化邏輯閘陣列(FPGA)120的專業化積體電路,以及一例如為快閃記憶體130的儲存裝置。在此範例中,FPGA 120係一Intel Arria 10 FPGA單晶片系統(System on a Chip;SoC),但其他專業化異質性積體電路,例如複雜可程式化邏輯裝置(complex programmable logic device;CPLD),可運用在此被敘述的原則。在此範例中,快閃記憶體130包含FPGA韌體及BMC韌體之韌體映像檔150。BMC 110及FPGA 120被耦接至快閃記憶體130。在此範例中,一智慧型平台管理介面(Intelligent Platform Management Interface;IPMI)匯流排160將BMC 110與FPGA 120連接起來。
系統100藉由監控及復原,為BMC 110及FPGA 120提供可靠的運作程序。韌體映像檔150中的韌體映像檔,係為了復原BMC 110或FPGA 120之運作的可靠的備援韌體映像檔。這些映像檔被儲存在快閃記憶體130中。一看門狗計時器(watch dog timer)為了FPGA 120及BMC 100兩者而設置。
FPGA 120經由IPMI匯流排160上的命令,週期性地發送資訊給BMC 110(170:發送狀態命令供檢驗)。當接收到該命令時,BMC 110回應FPGA 120。該命令包含來自FPGA 120的狀態及錯誤資訊。BMC 110對該命令的回應包含BMC狀態資訊,以供FPGA 120檢驗。若在給BMC 110的命令中有錯誤資訊,或者在看門狗計時器所設定的時間屆滿前該命令未被接收到,BMC 110將發送檢驗狀態命令給FPGA 120。在此範例中,檢驗狀態命令將被BMC 110發送三次。若沒有接收到對於檢驗狀態命令的回應,或者FPGA 120回應錯誤狀態,BMC 110將記錄故障狀態。同樣地,若沒有接收到對該命令的回應,或者在來自BMC 110的回應中接收到錯誤狀態,則FPGA 120能發送檢驗狀態命令給BMC 110。若沒有接收到對於檢驗狀態命令的回應,或者來自BMC 110的回應指示為故障,則FPGA 120可為BMC 110記錄故障狀態。
當沒有接收到對於檢驗狀態命令的回應,或者接收到錯誤回應時,FPGA 120或BMC 110將嘗試重設程序(172:發送重設命令)。若重設程序成功,系統將回到正常的運作。若重設程序不成功,檢驗狀態命令將再次被呼叫。若檢驗狀態命令失敗,或者接收到錯誤回應,FPGA 120或BMC 110將呼叫快閃復原程序(flash recovery procedure),以從快閃記憶體130復原FPGA/BMC韌體映像檔150(174:發送快閃命令)。韌體映像檔150因此被從快閃記憶體130發送給BMC 110或FPGA 120(176:執行快閃程序)。若韌體安裝成功,BMC 110或FPGA 120將BMC 110或FPGA 120已被復原的消息通知系統例行程序(system routine),例如基本輸入輸出系統(basic input output system;BIOS)或作業系統(operating system;OS)。系統100於是回傳至週期性發送資訊給BMC 110的FPGA 120。
若對檢驗狀態命令的回應為故障,且快閃韌體映像檔故障,則系統將例如為BMC 110或FPGA 120的硬體已故障的消息通知BIOS及OS。BIOS/OS於是停用連接至BMC 110或FPGA 120的硬體埠(hardware port)。OS停止存取FPGA 120或BMC 110,並發送錯誤訊息給管理者。
第2圖係被第1圖中的系統100之作業系統所執行的復原例行程序(recovery routine)200的流程圖。復原例行程序200備份一可靠的韌體映像檔,例如在韌體映像檔150中的BMC及FPGA韌體映像檔,以供FPGA/BMC的復原(步驟210)。一FPGA/BMC看門狗計時器被設置(步驟212)。FPGA 120根據看門狗計時器,經由IPMI命令週期性地發送狀態資訊給BMC 110(步驟214)。當接收到IPMI命令,BMC 110將狀態資訊回應給FPGA 120。若該回應為正常(步驟216,否),則例行程序返回並繼續經由IPMI命令發送資訊給BMC 110,以及將來自BMC 110的回應發送給FPGA 120(步驟214)。若該回應或命令包含錯誤資訊,或者在看門狗期間並未接收到回應(步驟216,是),則例行程序發送檢驗狀態命令給FPGA 120或BMC 110(步驟218)。對應的FPGA 120或BMC 110判斷對於檢驗狀態命令的回應是否為故障,或者沒有接收到回應(步驟220)。若檢驗狀態命令指示為故障,或者沒有接收到回應,BMC 110或FPGA 120都不會提供故障狀態紀錄入口(fail state log entry)(步驟222)。
若對於任何檢驗狀態命令有正面的回應(步驟220,否),則例行程序返回至FPGA 120發送週期性命令給BMC 110所在的看門狗狀態(步驟214)。若接收到指示為故障的回應,或者對於檢驗狀態命令沒有回應,則提供故障狀態紀錄入口(步驟222)。FPGA 120或BMC 110於是呼叫重設程序,以分別復原FPGA 120或BMC 110(步驟224)。重設程序於是被FPGA 120或BMC 110初始化。若FPGA 120或BMC 110傳達,因而指示重設係成功的(步驟226,否),則例行程序將BMC 110或FPGA 120已復原的消息通知BIOS或作業系統(OS)(步驟228)。例行程序返回並繼續經由IPMI命令發送資訊給BMC 110(步驟214)。
若重設程序分別復原FPGA 120或BMC 110失敗,則例行程序發送一系列檢驗狀態命令給FPGA 120(步驟230)。例行程序判斷是否有對於任何檢驗狀態命令的正面回應(步驟232)。若對於任何檢驗狀態命令有正面回應(步驟232,否),則例行程序返回至FPGA 120發送週期性命令給BMC 110所在的看門狗狀態(步驟214)。若對於任何檢驗狀態命令皆無回應,或者接收到故障回應(步驟232,是),則BMC 110及FPGA 120提供故障狀態紀錄入口(步驟234)。FPGA 120或BMC 110於是呼叫快閃程序,將來自快閃記憶體130中所儲存的韌體映像檔150的適當的韌體映像檔,復原至FPGA 120或BMC 110(步驟236)。來自韌體映像檔150的被儲存的韌體映像檔,被安裝在FPGA 120或BMC 110上。例行程序於是判斷FPGA 120或BMC 110是否藉著被安裝的韌體映像檔而正確地運行(步驟238)。若FPGA 120或BMC 110正確地運行,則例行程序將BMC 110或FPGA 120已復原的消息通知BIOS或OS(步驟228)。例行程序返回並繼續經由IPMI命令發送資訊給BMC 110(步驟214)。
若快閃程序失敗(步驟238,是),則例行程序將BMC 110或FPGA 120已故障的消息通知BIOS及OS(步驟240)。BIOS或OS將停用連接至故障的BMC 110或故障的FPGA 120的硬體埠(步驟242)。BIOS或OS將發送錯誤訊息給管理者(步驟244)。
第3圖係允許對異質性積體電路監控韌體的另一範例系統300的方塊圖。系統300包含一基板管理控制器(BMC)310、一例如為場域可程式化邏輯閘陣列(FPGA)320的專業化積體電路,以及一快閃記憶體330。在此範例中,快閃記憶體330包含一韌體映像檔340,韌體映像檔340包含FPGA及BMC韌體的映像檔。BMC 310及FPGA 320被耦接至快閃記憶體330。
BIOS 360被耦接至快閃記憶體330及BMC 310。一非揮發性隨機存取記憶體(non-volatile random access memory;NVRAM)370被連接至BIOS 360、BMC 310及FPGA 320。BIOS 360、BMC 310及FPGA 320個別將狀態資料寫入至NVRAM 370。FPGA 320及BMC 310皆能從NVRAM 370讀取狀態資料,並且可因此判斷其他元件的狀態。BIOS狀態亦可被FPGA 320或BMC 310所監控。
系統300為FPGA 320提供可靠的運作程序。儲存在快閃記憶體330中的韌體映像檔340,係為了復原BMC 310或FPGA 320之運作的可靠的備援韌體映像檔。一看門狗計時器為了FPGA 320及BMC 310兩者而設置。
BMC 310、FPGA 320及BIOS 360個別以週期性的方式將狀態資料寫入至NVRAM 370(350:將狀態資料寫入至NVRAM;以及380:讀取/寫入狀態)。BMC 310讀取關於FPGA 320及BIOS 360的被寫入的狀態資料。FPGA 320亦讀取來自BMC 310、關於BMC 310的被寫入的狀態資料(380:讀取/寫入狀態)。若在來自FPGA 320的狀態資料中發現錯誤資訊,則BMC 310將發送檢驗狀態命令給FPGA 320。若在來自BMC 310的狀態資料中發現錯誤資訊,則FPGA 320將發送檢驗狀態命令給BMC 310。在此範例中,檢驗狀態命令將被BMC 310或FPGA 320發送三次。若沒有接收到對於檢驗狀態命令的回應,或者接收到的回應指示為故障,BMC 310或FPGA 320將記錄故障狀態。
當沒有接收到對於檢驗狀態的回應,或者故障被指示,FPGA 320或BMC 310將嘗試重設BMC 310或FPGA 320(382:發送重設命令)。若重設程序成功,系統將回到正常的運作。若重設程序不成功,檢驗狀態命令將再次被呼叫。若檢驗狀態失敗,FPGA 320或BMC 310將呼叫快閃程序,以藉由存取來自被儲存在快閃記憶體330中的韌體映像檔340的韌體映像檔,復原FPGA/BMC之韌體(384:發送快閃命令)。韌體映像檔因此被發送給BMC 310或FPGA 320(386:執行快閃程序)。若韌體安裝成功,BMC 310或FPGA 320將BMC 310或FPGA 320已被復原的消息通知系統例行程序,例如BIOS 360或作業系統。系統300於是回到正常的運作。
若對檢驗狀態命令的回應為故障,且快閃韌體映像檔故障,則系統將硬體已故障的消息通知BIOS 360。BIOS/作業系統停用連接至BMC 310或FPGA 320的硬體埠,且作業系統停止存取FPGA 320或BMC 310,並發送錯誤訊息給管理者。BMC 310亦可從被寫進NVRAM 370的狀態資訊中,獨立地監控BIOS 360之狀態。若狀態資訊指示為BIOS故障,則BMC 310可嘗試發送重設命令,且若發送重設命令失敗,可從快閃記憶體330復原BIOS韌體映像檔。
第4圖係被系統300之作業系統所執行的復原例行程序400的流程圖。復原例行程序400備份一可靠的韌體映像檔,例如在韌體映像檔340(第3圖中所示)中韌體映像檔,以供FPGA/BMC的復原(步驟410)。一FPGA/BMC看門狗計時器被設置(步驟412)。BMC 310、FPGA 320及BIOS 360個別週期性地將對應的狀態資料寫入至NVRAM 370(步驟414)。FPGA 320及BMC 310檢驗來自NVRAM 370的被寫入的狀態資料(步驟416)。若狀態資料指示為FPGA 320及BMC 310的正常運作(步驟418,否),則例行程序返回,且BMC 310、FPGA 320及BIOS 360繼續將狀態資料寫入至NVRAM 370(步驟414)。若狀態資料包含錯誤資訊,或者在看門狗期間並未接收到回應(步驟418,是),則例行程序發送檢驗狀態命令給FPGA 320(步驟420)。
例行程序判斷是否有對於任何檢驗狀態命令的正面回應(步驟422)。若有正面回應(步驟422,否),則例行程序返回至BMC 310、FPGA 320及BIOS 360將狀態資料寫入至NVRAM 370所在的看門狗狀態(步驟414)。若對於任何檢驗狀態命令皆無接收到回應,或者接收到指示為故障的回應(步驟422,是),則BMC 310或FPGA 320提供故障狀態紀錄入口(步驟424)。FPGA 320或BMC 310於是呼叫重設程序,以分別復原FPGA 320或BMC 310(步驟426)。重設程序於是被BMC 310或FPGA 320所嘗試。若FPGA 320或BMC 310傳達回應指示重設係成功的(步驟428,否),則例行程序將BMC 310或FPGA 320已復原的消息通知BIOS或作業系統(OS) (步驟430)。例行程序返回,且BMC 310、FPGA 320及BIOS 360繼續將狀態資料寫入至NVRAM 370(步驟414)。
若重設程序分別復原FPGA 320或BMC 310失敗(步驟428,是),則例行程序發送一系列檢驗狀態命令給FPGA 320或BMC 310(步驟432)。例行程序於是判斷是否有對於任何檢驗狀態命令的正面回應(步驟434)。若對於任何檢驗狀態命令有正面回應(步驟434,是),則例行程序返回至BMC 310、FPGA 320及BIOS 360將狀態資料寫入至NVRAM 370所在的看門狗狀態(步驟414)。若對於任何檢驗狀態命令皆無回應,或者接收到故障回應(步驟434,是),則BMC 310或FPGA 320提供故障狀態紀錄入口(步驟436)。FPGA 320或BMC 310於是呼叫快閃程序,將來自快閃記憶體330中所儲存的韌體映像檔340的韌體映像檔,復原至FPGA 320或BMC 310(步驟438)。在韌體映像檔已分別被安裝在FPGA 320或BMC 310上之後,例行程序於是判斷FPGA 320或BMC 310是否正確地運行(步驟440)。若FPGA 320或BMC 310正確地運行,則例行程序將BMC 310或FPGA 320已復原的消息通知BIOS或OS(步驟430)。例行程序於是返回,且BMC 310、FPGA 320及BIOS 360繼續將狀態資料寫入至NVRAM 370(步驟414)。
若快閃程序失敗(步驟440,是),則例行程序將BMC 310或FPGA 320已故障的消息通知BIOS 360及OS(步驟442)。BIOS 360或OS停用連接至故障的BMC 310或FPGA 320的硬體埠(步驟444)。BIOS 360或OS發送錯誤訊息給管理者(步驟446)。
本程序的好處是,允許具有第三方客製的積體電路自動地復原故障的積體電路。因此,本程序藉由避免系統在涉入積體電路的運行時間運作(run time operation)上停機,改善系統的可靠性。以上範例例行程序不需要CPU週期時間來處理輪詢程序,且不需要額外的硬體來復原,因為已存在於異質性運算架構中的組件被使用於復原例行程序。於是故障的積體電路之自動復原無須仰賴網路管理員來處理錯誤。因此,具有積體電路的系統可在短時間內被復原。此外,系統允許同時監控BMC,並允許BMC記錄及監控更多第三方的積體電路資訊。
根據本揭露之某些觀點,第2圖及第4圖係例如那些在第1圖及第3圖中,包含專業化積體電路的系統之自動復原例行程序的流程圖。第2圖及第4圖中的流程圖,係專業化積體電路之自動復原程序的範例機器可讀指令(machine readable instruction)之代表。在此範例中,機器可讀指令包括給(a)一處理器;(b)一控制器;及/或(c)一個或更多其他合適的處理裝置來執行的一演算法。該演算法可在被儲存於實體的媒體上的軟體所實施,實體的媒體可例如為快閃記憶體、光碟唯讀記憶體(CD-ROM)、磁片(floppy disk)、硬碟、數位影音光碟/數位多功能光碟(digital video disk/digital versatile disk;DVD),或其他記憶體裝置。然而,本技術領域之普通技術之人將輕易地理解,整個演算法及/或其部分能替代地被處理器之外的裝置所執行,且/或以熟知的方式(例如,可被專用積體電路(application specific integrated circiut;ASIC)、可程式邏輯裝置(programmable logic device;PLD)、場域可程式邏輯裝置(field programmable logic device;FPLD)、場域可程式邏輯陣列(field programmable gate array;FPGA)、離散邏輯(discrete logic)等所實施)被實施於韌體或專用的硬體中。舉例而言,介面之任何或所有的元件能被軟體、硬體及/或韌體所實施。並且,被流程圖所代表的某些或所有的機器可讀指令可被手動實施。此外,雖然範例演算法係參考第3-4圖中所繪示的流程圖而敘述,本技術領域之普通技術之人將輕易地理解,實施範例機器可讀指令的許多其他方法,可被替代地使用。舉例而言,各方塊的執行順序可被改變,且/或某些被敘述的方塊可被改變、刪減或合併。
如本申請中所使用的「元件」、「模組」、「系統」或類似的詞彙,通常係指與電腦相關的實體,可以是硬體(例如電路)、硬體與軟體之組合、軟體,或者與運作機器相關、具有一種或更多種特定功能的實體。舉例而言,元件可以是但不限於在處理器(例如數位信號處理器)上執行的程序、處理器、物件、可執行檔、執行緒(thread of execution)、程式,及/或電腦。作為示例,在控制器上執行的應用,以及控制器本身,皆可為元件。一個或更多個元件可常駐於程序及/或執行緒之內,且一個元件可被侷限在一台電腦上及/或分散在兩台或更多台電腦之間。此外,「裝置」可出自於特殊設計的硬體之形式;藉由執行其上使硬體能執行特定功能的軟體所特製出的通用硬體;儲存在電腦可讀取媒體上的軟體;或者其組合。
在此所使用的術語僅以敘述特定的實施例為目的,而並非意圖限制本發明。如在此所使用的,單數形「一」及「該」意圖亦包含複數形,除非文意明顯另有所指。此外,倘若「包含」、「具有」一詞或者其變形,被使用在詳細敘述及/或請求項中,這類詞彙意圖被包含在類似於「包括」一詞的方式中。
除非另有定義,在此所使用的所有詞彙(包含技術性及科學性的詞彙),與本技術領域之普通技術之人一般所理解的,具有相同的含意。此外,像是被定義在一般所使用的字典中的詞彙,應被解讀為具有與它們在相關技術的文意中一致的含意,且除非在此被明確地如此定義,否則該等詞彙不會被解讀為理想化或過度正式的概念。
雖然本發明之各種實施例已被敘述如上,應被理解的是,該等實施例僅被呈現來作為範例,而非限制。即使本發明已參考一種或更多種實施方式所繪示及敘述,當閱讀及理解本說明書及附加的圖式時,均等的替換及修改將可被其他熟習此項技術者想到或知曉。此外,雖然本發明之特定的特徵可僅被數個實施例的其中之一所揭露,這種特徵可與其他實施例的一個或更多個其他特徵組合,而此其他特徵對於任何給定的或特定的應用可能是期望的或有利的。因此,本發明之廣度及範圍不應受限於任何以上敘述的實施例。反之,本發明之範圍應根據以下的請求項及其均等物所定義。
100:系統 110:BMC 120:FPGA 130:快閃記憶體 150:韌體映像檔 160:IPMI匯流排 170:發送狀態命令供檢驗 172:發送重設命令 174:發送快閃命令 176:執行快閃程序 200:復原例行程序 210-244:步驟 300:系統 310:BMC 320:FPGA 330:快閃記憶體 340:韌體映像檔 350:將狀態資料寫入至NVRAM 360:BIOS 370:NVRAM 380:讀取/寫入狀態 382:發送重設命令 384:發送快閃命令 386:執行快閃程序 400:復原例行程序 410-446:步驟
本揭露將可從以下示範的實施例之敘述搭配附帶的圖式更佳地理解,其中: 第1圖係根據本揭露之某些觀點,一種基於FPGA的範例系統的方塊圖。 第2圖係根據本揭露之某些觀點,第1圖中的範例FPGA系統之韌體復原例行程序的流程圖。 第3圖係根據本揭露之某些觀點,另一種基於FPGA的系統的方塊圖。 第4圖係根據本揭露之某些觀點,第3圖中的範例系統之韌體復原例行程序的流程圖。
本揭露容許各式各樣的修改及替代的形式。某些代表性的實施例已藉由圖式中的範例所顯示,並將在此被詳細敘述。然而應被理解的是,本發明並非意圖受限於被揭露的特定形式。相反地,本揭露欲涵蓋落在如附加的請求項所定義本發明之精神與範圍內的所有修改、均等物及替代選項。
100:系統
110:BMC
120:FPGA
130:快閃記憶體
150:韌體映像檔
160:IPMI匯流排
170:發送狀態命令供檢驗
172:發送重設命令
174:發送快閃命令
176:執行快閃程序

Claims (10)

  1. 一種監控及復原異質性元件的系統,包括: 一積體電路,以韌體運作; 一儲存裝置,被耦接至該積體電路,該儲存裝置儲存該積體電路之一韌體映像檔; 一控制器,被耦接至該積體電路,該控制器可運作以下步驟: 週期性地判斷該積體電路之運作狀態; 從已判斷的運作狀態來判斷該積體電路之故障; 發送被儲存的該韌體映像檔給該積體電路; 將該韌體映像檔安裝在該積體電路上;及 判斷該韌體映像檔之安裝是否致使該積體電路之復原。
  2. 如請求項1之系統,其中該控制器係一基板管理控制器(baseboard management controller;BMC)或一場域可程式邏輯陣列(field programmable gate array;FPGA)。
  3. 如請求項1之系統,更包括一非揮發性隨機存取記憶體(non-volatile random access memory;NVRAM),被耦接至該積體電路及該控制器,其中該積體電路週期性地將狀態資料寫入該NVRAM,且其中該控制器基於該狀態資料判斷該積體電路之故障。
  4. 如請求項1之系統,其中該控制器與一作業系統或一基本輸入輸出系統(basic input output system;BIOS)的其中之一聯繫。
  5. 如請求項4之系統,其中若該韌體映像檔之安裝並沒有致使該積體電路之復原,則該作業系統或該BIOS可運作來停用連接至該積體電路的一硬體埠(hardware port)。
  6. 一種監控及復原異質性元件的方法,包括以下步驟: 將該積體電路之一韌體映像檔儲存在一儲存裝置中; 經由一控制器,週期性地判斷該積體電路之運作狀態; 判斷該積體電路之故障; 發送被儲存的該韌體映像檔給該積體電路; 將該韌體映像檔安裝在該積體電路上;及 判斷該韌體映像檔之安裝是否致使該積體電路之復原。
  7. 如請求項6之方法,其中該控制器係一BMC或一FPGA。
  8. 如請求項6之方法,其中週期性地判斷該積體電路之運作狀態,包含該積體電路將狀態資料寫入一NVRAM,及該控制器讀取被寫入的該狀態資料。
  9. 如請求項6之方法,其中該控制器被一OS或一BIOS所指揮。
  10. 如請求項9之方法,更包括若該韌體映像檔之安裝並沒有致使該積體電路之復原,則停用連接至該積體電路的一硬體埠。
TW109133443A 2020-02-26 2020-09-26 監控及復原異質性元件的系統及方法 TWI781452B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/802,230 US11099838B1 (en) 2020-02-26 2020-02-26 Method and system for recovery for custom integrated circuit
US16/802,230 2020-02-26

Publications (2)

Publication Number Publication Date
TW202132982A true TW202132982A (zh) 2021-09-01
TWI781452B TWI781452B (zh) 2022-10-21

Family

ID=77366893

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109133443A TWI781452B (zh) 2020-02-26 2020-09-26 監控及復原異質性元件的系統及方法

Country Status (3)

Country Link
US (1) US11099838B1 (zh)
CN (1) CN113312198A (zh)
TW (1) TWI781452B (zh)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318116B2 (en) * 2002-11-08 2008-01-08 International Business Machines Corporation Control path failover in an automated data storage library
US7966039B2 (en) * 2007-02-02 2011-06-21 Microsoft Corporation Bidirectional dynamic offloading of tasks between a host and a mobile device
TWI529738B (zh) * 2009-02-11 2016-04-11 Stec股份有限公司 具有經由組態資料匯流排可用之健康狀態及/或狀態資訊的快閃回存dram模組
US20130036300A1 (en) * 2010-02-26 2013-02-07 Samsung Electronics Co., Ltd Method of fixing error of boot image for fast booting and image forming apparatus for performing the method
CN102455945A (zh) * 2010-10-27 2012-05-16 鸿富锦精密工业(深圳)有限公司 基板管理控制器恢复系统及其使用方法
US8631239B2 (en) * 2012-01-12 2014-01-14 Facebook, Inc. Multiple system images for over-the-air updates
US20160294614A1 (en) * 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US10678552B2 (en) * 2015-04-28 2020-06-09 Hewlett Packard Enterprise Development Lp Hardware for system firmware use
CN106484442B (zh) * 2015-08-25 2020-07-21 佛山市顺德区顺达电脑厂有限公司 服务器系统及更新开机映像档的方法
US9921915B2 (en) * 2015-10-16 2018-03-20 Quanta Computer Inc. Baseboard management controller recovery
US10127032B2 (en) * 2015-11-05 2018-11-13 Quanta Computer Inc. System and method for unified firmware management
TWI595760B (zh) * 2015-12-01 2017-08-11 廣達電腦股份有限公司 伺服器資源之管理系統及其管理方法
US10360114B2 (en) * 2016-02-24 2019-07-23 Quanta Computer Inc. Hardware recovery systems
US10333772B2 (en) * 2016-06-07 2019-06-25 Quanta Computer Inc. Remote keyboard-video-mouse technologies
TWI607381B (zh) * 2016-08-10 2017-12-01 神雲科技股份有限公司 用於電腦裝置的系統資訊存取方法
US10331434B2 (en) * 2016-12-21 2019-06-25 Quanta Computer Inc. System and method for remotely updating firmware
WO2018125031A1 (en) * 2016-12-27 2018-07-05 Intel Corporation Cross-component health monitoring and improved repair for self-healing platforms
US10997296B2 (en) * 2017-03-22 2021-05-04 Oracle International Corporation System and method for restoration of a trusted system firmware state
US10824517B2 (en) * 2017-05-08 2020-11-03 American Megatrends International, Llc Backup and recovery of configuration files in management device
US10846160B2 (en) * 2018-01-12 2020-11-24 Quanta Computer Inc. System and method for remote system recovery
US10395038B2 (en) * 2018-02-01 2019-08-27 Quanta Computer Inc. System and method for automatic recovery of firmware image

Also Published As

Publication number Publication date
TWI781452B (zh) 2022-10-21
US11099838B1 (en) 2021-08-24
CN113312198A (zh) 2021-08-27
US20210263727A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
US9542195B1 (en) Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
US9026860B2 (en) Securing crash dump files
US7900090B2 (en) Systems and methods for memory retention across resets
US11526411B2 (en) System and method for improving detection and capture of a host system catastrophic failure
US20090150721A1 (en) Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System
US20140019814A1 (en) Error framework for a microprocesor and system
US11314866B2 (en) System and method for runtime firmware verification, recovery, and repair in an information handling system
US20140095948A1 (en) Memory testing in a data processing system
US20090300408A1 (en) Memory preserved cache failsafe reboot mechanism
US10635553B2 (en) Error recovery in non-volatile storage partitions
US7831858B2 (en) Extended fault resilience for a platform
TWI779682B (zh) 電腦系統、電腦伺服器及其啟動方法
US11726879B2 (en) Multiple block error correction in an information handling system
US10635554B2 (en) System and method for BIOS to ensure UCNA errors are available for correlation
TW202040361A (zh) 伺服器及錯誤事件紀錄登載功能的控制方法
KR20220008237A (ko) 임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치
JP2017078998A (ja) 情報処理装置およびログ管理方法、並びにコンピュータ・プログラム
TWI777628B (zh) 電腦系統及其專用崩潰轉存硬體裝置與記錄錯誤資料之方法
TWI781452B (zh) 監控及復原異質性元件的系統及方法
US11593209B2 (en) Targeted repair of hardware components in a computing device
JP6911591B2 (ja) 情報処理装置、制御装置および情報処理装置の制御方法
JP7430220B2 (ja) システム管理割り込みデータの収集に用いる方法及びシステム
US11797368B2 (en) Attributing errors to input/output peripheral drivers
US11742054B2 (en) Memory power fault resilience in information handling systems

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent