TWI791913B - 經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法 - Google Patents

經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法 Download PDF

Info

Publication number
TWI791913B
TWI791913B TW108138073A TW108138073A TWI791913B TW I791913 B TWI791913 B TW I791913B TW 108138073 A TW108138073 A TW 108138073A TW 108138073 A TW108138073 A TW 108138073A TW I791913 B TWI791913 B TW I791913B
Authority
TW
Taiwan
Prior art keywords
firmware
remote access
access controller
version
gate array
Prior art date
Application number
TW108138073A
Other languages
English (en)
Other versions
TW202026938A (zh
Inventor
喬漢 拉哈爾佐
帕凡 K 蓋瓦拉
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 TW202026938A publication Critical patent/TW202026938A/zh
Application granted granted Critical
Publication of TWI791913B publication Critical patent/TWI791913B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, 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/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/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

本發明揭露了一種韌體恢復方法,藉以經由邊帶管理匯流排恢復諸如場域可程式閘陣列卡之裝置的韌體,前述場域可程式閘陣列卡係安裝於資訊處理系統內。資訊處理系統之遠端存取控制器可為裝置生成安全密鑰並將此安全密鑰傳送至裝置。遠端存取控制器可請求裝置報告透過裝置所使用韌體之版本。基於安全密鑰可對來自裝置之響應進行認證。判斷主韌體版本是否符合透過裝置所報告之韌體版本。若所報告之韌體版本與該主韌體的版本不符,則使裝置中止並透過主韌體替換裝置之當前韌體。進而,透過用於更新裝置韌體之主韌體對裝置進行初始化。

Description

經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法 發明領域
本發明係關於一種資訊處理系統(HIS,information handling system),更具體而言,本發明關於針對資訊處理系統之組件所進行之管理。
發明背景
隨著資訊之價值與應用的與日俱增,個人和企業皆需要尋求多種額外之方式對資訊進行處理與儲存。而對於用戶來講,資訊處理系統係為一種可行之選擇。通常,資訊處理系統可出於商業目的、個人目的或其它目的而對資訊或資料進行處理、編譯、儲存和/或傳送,因此資訊處理系統可使資訊之價值得以為用戶所利用。鑒於不同用戶或應用程式間之對於技術與資訊處理之需求和要求各有不同,故資訊處理系統可依所處理之資訊、處理資訊之方式、被處理/儲存或傳送之資訊的數量以及被處理/儲存或傳送之資訊的速度及有效性而作出改變。同時,資訊處理系統中之前述改變可使資訊處理系統成為通用之系統或特定用戶所使用之系統,或者前述改變可使資訊處理系統用於諸如金融交易過程、航班預訂、企業資料儲存或全球通信等特定用途。此外,資訊處理系統亦可包含用於處理、儲存和傳送資訊之各種硬體組件和軟體組件,並且此資訊處理系統還可包含一個或多個電腦系統、資料儲存系統和網路系統。
長久以來,透過資訊處理系統執行軟體程式一直是用以定制資訊處理系統之作業的最為常見之技術。近來,人們嘗試著透過場域可程式閘陣列(FPGA,Field Programmable Gate Array)卡以硬體速度定制資訊處理系統功能,同時這種嘗試所花費之價格也是可以承受的。其中,場域可程式閘陣列卡係依據韌體指令而進行作業。但是,場域可程式閘陣列卡所使用之韌體的損毀亦會危及到場域可程式閘陣列卡之作業。
發明概要
本發明之多個實施例揭露了一種韌體恢復方法,其中具有韌體之裝置安裝於資訊處理系統內,其中可經由邊帶管理匯流排(sideband management bus)恢復韌體。這種韌體恢復方法包含:為裝置生成安全密鑰,將安全密鑰傳送至裝置,請求裝置報告透過裝置所使用韌體之版本,基於安全密鑰對來自裝置之韌體版本響應進行認證;判斷主韌體之主韌體版本是否符合透過裝置所報告之韌體版本;以及若所報告之韌體版本與主韌體版本不符,韌體恢復方法進一步包含:中止裝置之作業;透過主韌體替換裝置之韌體;及用更新後之韌體使裝置進行初始化。
在關於前述韌體恢復方法之其他實施例中,可用安全密鑰對韌體版本響應進行數位簽名。在關於前述韌體恢復方法之其他實施例中,可依據透過裝置所提供之數位簽名對韌體版本響應進行認證。在關於前述韌體恢復方法之其他實施例中,裝置每次重啟時可產生用於使裝置報告韌體之版本的請求。在關於前述韌體恢復方法之其他實施例中,可透過對韌體版本響應中包含之韌體標頭所指明的版本與主韌體之標頭所指明的版本進行比較,確定所報告之韌體是否符合主韌體。在關於前述韌體恢復方法之其他實施例中,裝置可將韌體保存於現用分區與恢複分區中。在關於前述韌體恢復方法之其他實施例中,裝 置係為一場域可程式閘陣列卡。
本發明之實施例揭露了一種韌體恢復系統,其中具有韌體之裝置位於資訊處理系統內。這種韌體恢復系統包含:遠端存取控制器,遠端存取控制器經由邊帶管理匯流排連接於裝置,其中遠端存取控制器係用於:為裝置生成安全密鑰;將安全密鑰傳送至裝置;請求裝置報告透過裝置所使用韌體之版本;基於安全密鑰對來自裝置之響應進行認證;判斷主韌體之主韌體版本是否符合透過裝置所報告之韌體版本;以及若所報告之韌體版本與主韌體的版本不符,則韌體恢復系統進行下列作業:使裝置中止;並且透過主韌體替換裝置之韌體;其中裝置依據一現用分區內所儲存之韌體進行作業,其中裝置還用於:傳送韌體版本響應,韌體版本響應用於報告現用分區內所儲存之韌體的版本;接收主韌體,藉以替換現用分區內之韌體;基於更新之韌體分區進行初始化。
在關於前述韌體恢復系統之其他實施例中,可用安全密鑰對韌體版本響應進行數位簽名。在關於前述韌體恢復系統之其他實施例中,可依據透過裝置所提供之數位簽名對韌體版本響應進行認證。在關於前述韌體恢復系統之其他實施例中,裝置每次重啟時可產生用於使裝置報告韌體之版本的請求。在關於前述韌體恢復系統之其他實施例中,可透過對韌體版本響應中包含之一韌體標頭所指明的版本與主韌體之標頭所指明的版本進行比較,確定所報告之韌體是否符合主韌體。在關於前述韌體恢復系統之其他實施例中,裝置可為一場域可程式閘陣列卡。
本發明之多個實施例揭露了一種遠端存取控制器,這種遠端存取控制器係用於透過資訊處理系統之邊帶管理匯流排恢復裝置之韌體。這種遠端存取控制器係包含:一個或多個處理器;以及一記憶體裝置,記憶體裝置係與一個或多個處理器相耦合,記憶體裝置儲存有多個機讀指令,當透過一個或多個處理器執行等機讀指令時,遠端存取控制器用於:為裝置生成安全密鑰;將 安全密鑰傳送至裝置;請求裝置報告當前韌體版本;基於安全密鑰對來自裝置之響應進行認證;判斷主韌體版本是否符合透過裝置所報告之現用韌體版本;若所報告之現用韌體版本與主韌體版本不符,則使裝置中止;透過主韌體替換裝置之現用韌體;及用更新後之韌體使裝置進行初始化。
在關於前述遠端存取控制器之其他實施例中,可用安全密鑰對響應進行數位簽名。在關於前述遠端存取控制器之其他實施例中,可依據透過裝置所提供之數位簽名對響應進行認證。在關於前述遠端存取控制器之其他實施例中,裝置每次重啟時可產生用於向裝置報告當前韌體版本的請求。在關於前述遠端存取控制器之其他實施例中,可對主韌體中所包含之一韌體標頭所指明的版本與響應中所包含之韌體標頭所指明的版本進行比較,藉以確定所報告之韌體是否符合主韌體。在關於前述遠端存取控制器之其他實施例中,裝置可為場域可程式閘陣列卡。在關於前述遠端存取控制器之其他實施例中,裝置可將韌體保存於現用分區與恢複分區中。
11:遮罩膜
13:圖案化
50a,50b:模板的中心部,邊緣部
51:鐳射貫穿孔
100:機架
101,102:遮罩的一面,另一面
105a-105n:計算插座
110,110’,110”:遮罩膜,遮罩金屬膜
110a-110n:遠端存取控制器
115a-115n:儲存插座
125:機架管理控制器
125a:外接設備
125b:降溫模組
125c:儲存模組
130:降溫風扇
135:供電單元
135a-135n:儲存控制器
140:網路控制器
145:輸入/輸出控制器
150:小型電腦系統介面擴展器
155:磁碟組儲存驅動器
160:機架背板
160a-160n:場域可程式閘陣列卡
200:資訊處理系統,框架
205:處理器
205a:記憶體控制器
205b:記憶體匯流排介面
210:系統記憶體
210a-210n:可移式記憶體模組
215:匯流排
220:場域可程式閘陣列卡
220a:內部積體電路端點控制器
220b:場域可程式閘陣列電路,場域可程式閘陣列集成電路
220c:韌體
220d:現用分區
220e:恢複分區
225:網路控制器
225a:內部積體電路端點控制器
225c:網路適配器
230:儲存控制器
230a:內部積體電路端點控制器
235:圖形處理器
250:輸入/輸出埠
255:遠端存取控制器
255a:服務處理器
255b:內部積體電路協處理器
255d:內部積體電路多工器
260:電源管理單元
275a-275d:內部積體電路邊帶匯流排連接器
280:感測器
280a:內部積體電路端點控制器
305-355:方框
可以結合附圖來閱讀說明性實施例之描述。應當理解,為了說明的簡單和清楚,附圖中示出的元件不一定按比例繪製。
圖1為本發明之某些實施例中機架之某些部件經由邊帶管理匯流排恢復場域可程式閘陣列卡韌體之示意圖。
圖2為本發明之某些實施例中以資訊處理系統之某些組件作為機架組件排經由邊帶管理匯流排恢復場域可程式閘陣列卡韌體之示意圖。
圖3為用於對本發明之某些實施例中經由邊帶管理匯流排恢復場域可程式閘陣列卡韌體之恢復方法中某些步驟進行描述之流程圖。
具體實施方式圖1係為機架100中部分組件之方框圖,其中此機架 100包含一個或多個計算插座(sled)105a至105n和一個或多個儲存插座115a至115n,藉以實現本發明所揭露之系統及方法。同時,機架100還可包含一個或多個托架(bay),其中每個托架可容納一個獨立的插座(也可另稱之為或代稱之為「托盤」,「刀片」(blade)和/或「節點」),上述插座可以是諸如計算插座105a至105n與儲存插座115a至115n之插座。其中,機架100可支持具有各種數量(例如4個、8個、16個、32個)各種尺寸(例如單寬度,雙寬度)及各種物理結構之托架。而本發明其它實施例中也可包含多種類型之插座,藉以提供各種類型之儲存能力和/或處理能力。並且,其它類型之插座還可以提供電源管理功能與聯網功能。同時,插座可以獨立地安裝於機架100上並從機架100卸下,因此透過插座與其它類型之插座間的更替,可重新對機架之計算功能與儲存功能進行配置,並且在許多狀況下這種插座間之更替都不會影響安裝在機架中的其它插座之作業。
同時,可將多個機架100置於框架(rack)內。資料中心可使用大量之框架,且在具有各種結構之框架中又可安裝各種不同類型之機架。因此,由插座、機架及框架所提供之模組化構架可令計算插座105a至105n和儲存插座115a至115n對諸如降溫資源、供電資源與網路帶寬資源之類的某些資源進行共享,進而提高效率並可支持更大之計算量負載。
機架100可安裝於框架結構內,此框架結構可供機架100進行完全降溫或部分降溫。對於進行通風降溫之狀況,框架可包含一組或多組降溫風扇,這些降溫風扇可用於使框架內所容納之機架100中的熱空氣流通。與之相似的是,在本發明可替代性實施例或其它實施例中,機架100也可包含一個或多個降溫風扇130,藉以使機架內所安裝之計算插座105a至105n與儲存插座115a至115n中的熱空氣流通。因此,前述框架與安裝在框架內之機架100可利用降溫風扇的各種配置及組合對機架100內所容納之計算插座105a至105n、儲存插座115a至 115n與其它組件進行降溫。
其中透過與機架100所提供之托架相對應的連接件,可使計算插座105a至105n與儲存插座115a至115n中之各插座與機架100進行耦合,並且這些連接件可使獨立的插座與機架背板160進行物理上的耦合與電耦合。其中,機架背板160可以是包含有電跡線(electrical trace)之印刷電路板,且連接件可用於在與機架背板160相連之機架100中的各部件之間傳送訊號。在本發明之多個實施例中,機架背板160可包含諸如電纜、電線、中段背板(midplane)、背板、連接件、擴展插槽及多工器之各種其它組件。在本發明之某些實施例中,機架背板160可為包含其上安裝有各種電子組件之母板。安裝於機架背板160上之此類組件可包含用於執行串行連接小型電腦系統介面(SAS,Serial Attached SCSI)擴展器150、輸入/輸出控制器145、網路控制器140及供電單元135之全部功能或部分功能之組件。
在某些本發明實施例中,計算插座105a至105n可以是資訊處理系統,例如圖2所示之資訊處理系統200。其中,計算插座105a至105n可提供多種計算處理資源,其中這些計算處理資源可支持電子商務應用程式、多媒體應用程式、商業應用程式及科學計算應用程式中的各種應用程式,例如透過雲端所提供之服務。通常,計算插座105a至105n配設有可提供前沿計算能力之硬體與軟體。因此,透過前述計算能力所提供之服務通常可作為能以最小宕機時間進行作業之高效系統。在對圖2所進行之更為詳盡的描述中,計算插座105a至105n可用於多功能計算任務或對特定計算任務進行優化。
如圖所示,計算插座105a至105n中之每一計算插座係包含遠端存取控制器(RAC,remote access controller)110a至110n。在對圖2所進行之更為詳盡的描述中,遠端存取控制器110a至110n可為計算插座105a至105n提供遠端監視功能與遠端管理功能。為了支持前述遠端監視功能與遠端管理功能,遠端存 取控制器110a至110n可透過帶內(in-band)通訊與邊帶(sideband)通訊(即,帶外(out-of-band)通訊)連接至計算插座105a至105n中之不同組件與機架100。遠端存取控制器110a至110n可從機架100處收集諸如溫度感測器讀數之類的感測器資料,藉以對機架100、計算插座105a至105n及儲存插座115a至115n進行通風降溫。此外,遠端存取控制器110a至110n中之每一遠端存取控制器可實現與計算插座105a至105n相關之各種監視功能與管理功能,其中這些遠端存取控制器110a至110n需要各計算插座105a至105n之各種內部組件以及邊帶匯流排連接器。
如圖所示,機架100還包含一個或多個儲存插座115a至115n,其中,與計算插座105a至105n類似,前述儲存插座可連接於機架背板160並安裝於機架100之一個或多個托架內。其中,儲存插座115a至115n中之每一儲存插座可以包含數量不同且類型不同之多個儲存裝置。例如,儲存插座115a至115n可包含:串行連接小型電腦系統介面(SAS,Serial Attached SCSI)磁碟驅動器、串列進階技術附接(SATA,Serial Advanced Technology Attachment)磁碟驅動器、固態磁碟驅動器(SSD,solid-state drive)及其它類型之儲存驅動器的多種組合。其中,藉助於與機架100相耦合之計算插座,儲存插座115a至115n可應用於各種儲存配置中。
各計算插座105a至105n包含儲存控制器135a至135n,前述儲存控制器可用於透過機架100對儲存驅動器進行存取,其中機架100可對儲存驅動器進行存取。在獨立的儲存控制器135a至135n中,一些儲存控制器可用於邏輯電路儲存驅動器及物理儲存驅動器之獨立磁碟冗餘陣列結構(RAID,Redundant Array of Independent Disks),例如,前述存儲驅動器可為透過儲存插座115a至115n所提供之儲存驅動器。在本發明之一些實施例中,儲存控制器135a至135n中的一些儲存控制器或全部儲存控制器可以是主機匯流排適配器(HBA,Host Bus Adapters),這種主機匯流排適配器可經由儲存控制器135a至135n和/或串行 連接小型電腦系統擴展器150在對物理儲存驅動器進行存取之過程提供更多限制能力。
如圖所示,各計算插座105a至105n還包含場域可程式閘陣列(FPGA)卡160a至160n,其中這種場域可程式閘陣列卡可用於定制計算插座105a至105n之作業。在對圖2與圖3所進行之更為詳盡的描述中,由於場域可程式閘陣列卡160a至160n可能使用了已受損之韌體指令來進行作業,所以會使場域可程式閘陣列卡無法使用並且可能暴露出計算插座105a至105n與整個機架100之安全隱患。在本發明各種實施例中,遠端存取控制器110a至110n可透過場域可程式閘陣列卡監視正在使用中之韌體,並且,當透過場域可程式閘陣列對使用中之韌體中的誤差進行檢測時,可透過遠端存取控制器所保留之主副本來替換場域可程式閘陣列卡之韌體。
除透過儲存插座115a至115n所提供之資料儲存功能以外,機架100還可對其它儲存資源進行存取,其中前述其它儲存資源可以是安裝於機架100中之組件和/或被安裝於容納有諸如儲存刀片之機架100的框架內之其它位置。在某些情況下,可以透過耦合至機架100之機架背板160的串行連接小型電腦系統介面擴展器150對這種儲存資源進行存取。串行連接小型電腦系統介面擴展器150可與具有多個磁碟組(JBOD,Just a Bunch Of Disks)儲存驅動器155進行連接,其中可獨立地對前述磁碟組儲存驅動器155進行配置與管理,同時不在磁碟組儲存驅動器155上產生資料冗餘。其中,其它的磁碟組儲存資源155也可以位於安裝有機架100之資料中心內的其它位置。同時,前述其它的磁碟組儲存資源155也可位於遠端。
如圖所示,圖1所示之機架100包含有網路控制器140,前述網路控制器140可對安裝於機架內之計算插座105a至105n與儲存插座115a至115n進行網路存取。其中,網路控制器140可包含各種交換機、適配器、控制器與連接器, 藉以使機架100直接連接於網路或透過其它網路組件連接於網路,同時還可使機架100透過安裝有機架100之框架連接於所配設之連接器。與之相似地,機架100可包含供電單元135,此供電單元135可向機架之組件提供各種電平之直流電,此直流電可來自於一交流電源或來自於經由安裝有機架100之框架提供之供電系統所傳送之電力。在本發明之某些實施例中,供電單元135可位於插座內,為前述插座為底架100提供了多餘且可進行熱抽換之供電單元。
同時,機架100還可包含多種輸入/輸出控制器145,這些輸入/輸出控制器可用於各種輸入/輸出埠,例如,前述輸入/輸出埠可以是支持鍵盤輸入功能、鍵鼠輸入功能和/或視訊顯示功能之通用串列匯流排埠。進而,輸入/輸出控制器145便可透過機架管理控制器125使各種外接設備125a(鍵盤、視訊顯示器及鍵鼠)具備供用管理者與機架100進行交流之能力。其中,機架管理控制器125還可包含儲存模組125c,這種儲存模組具備對機架100之儲存裝置的某些特性進行管理與配置之能力,例如,前述儲存裝置可以是位於儲存插座115a至115n內之儲存裝置以及位於磁碟組儲存驅動器155內之儲存裝置。
除了為外接設備125a提供管理機架100之能力以外,機架管理控制器125還提供了可用於對機架100之基礎結構資源進行共享的多種附加功能。在某些情況下,機架管理控制器125還可經由機架100而作為對供電單元135、網路控制器140及降溫風扇130進行管理之工具。如上所述,透過機架100所應用之降溫風扇130可包含降溫系統,此降溫系統係由可能安裝有機架100之框架所提供並由機架管理控制器125之降溫模組125b進行管理。
為實現本發明之目的,資訊處理系統可用以基於商業目的、科學目的、進行控制之目的或其它目的對具有任何形式之資訊、情報或資料進行計算、運算、判斷、處理、傳輸、接收、檢索、生產、交換、儲存、顯示、通信、驗證、檢測、記錄、複製、處理或應用之任意技術手段或技術手段之集合。例 如,資訊處理系統可以是個人電腦(例如,臺式電腦或筆記本電腦)、平板電腦、移動設備(例如,個人數位助理或智慧型手機)、伺服器(例如刀片式伺服器或機架伺服器)、網路儲存裝置或任何其它適當之裝置,而上述裝置在尺寸、形狀、性能、功能與價格等方面可能是各不相同的。其中,資訊處理系統可包含:隨機存取記憶體(RAM,Random Access Memory);諸如中央處理器(CPU,Central Processing Unit)、硬體控制邏輯電路或軟體控制邏輯電路之一個或多個處理資源;唯讀記憶體(ROM,Read-Only Memory)和/或其它類型之非易失性記憶體。並且,此資訊處理系統中之其它組件還可包含:一個或多個磁碟驅動器、一個或多個用於與外部設備進行通訊之網路埠以及諸如鍵盤、鍵鼠、觸控屏和/或視訊顯示器之各種輸入/輸出裝置。如本發明說明書所述,資訊處理系統還可包含一個或多個匯流排,前述匯流排可用於在各種硬體組件之間進行通訊。下文將對資訊處理系統之一實例進行更為詳盡之描述。
圖2示出了資訊處理系統200用於實現本發明所揭露之系統及方法之實例。應當理解的是,雖然在說明書所描述之實施例中資訊處理系統為機架之托架內所使用的計算插座或類似之計算組件,但本發明其它實施例亦可使用其它類型之資訊處理系統。在圖2所示之示意性實施例中,資訊處理系統200可以是計算組件,例如,前述計算組件可以是用於對由機架100所提供之基礎結構資源進行共享之計算插座105a至105n。
圖2所示之資訊處理系統200可以是計算插座,如圖1所示之可安裝於機架內之計算插座105a至105n,其中亦可轉而將前述機架安裝到框架內。進而,依照前述方式所安裝之資訊處理系統200可使用透過機架和/或框架所提供之用以共享的電源資源、網路資源與降溫資源。其中,資訊處理系統200可使用一個或多個處理器205。在本發明之一些實施例中,處理器205可包含:主處理器與協處理器,並且主處理器和協處理器中之各處理器可包含有多個處理核心, 在某些情況下,各處理核心可用於運行伺服器進程之實例。在本發明某些實施例中,在資訊處理系統200已配置為支持諸如多媒體服務應用程式與圖形應用程式之功能的情況下,所有處理器205或是其中一台處理器205可以是圖形處理單元(GPU,graphics processing unit)。
如圖所示,處理器205所包含之記憶體控制器205a可直接集成於處理器205之電路內或作為獨立集體電路而與處理器205位於同一晶片(die)上。其中,記憶體控制器205a可用於管理經由高速記憶體介面205b從資訊處理系統205之系統記憶體210傳送的資料或傳送至資訊處理系統205之系統記憶體210的資料。
可透過記憶體匯流排介面205b使系統記憶體210與處理器205相耦合,藉以於透過處理器205執行電腦程式指令之過程中為處理器205提供高速記憶體。因此,系統記憶體210可包含諸如靜態隨機存取記憶體(SRAM,static RAM),動態隨機存取記憶體(DRAM,dynamic RAM),與非(NAND)閃存之類的適於透過處理器205進行高速記憶體作業之記憶體組件。在本發明之某些實施例中,系統記憶體210可為持久性非易失性記憶體與易失性記憶體之組合。
在本發明之某些實施例中,系統記憶體210可由多個可移式記憶體模組組成。在所示出之實施例中,系統記憶體210包含有可移式記憶體模組210a至210n。其中,可移式記憶體模組210a至210n中之各可移式記憶體模組可與接收可移式記憶體模組210a至210n的印刷電路板儲存插槽相對應,例如,這些印刷電路板儲存插槽可以是雙列直插式儲存模組(DIMM,Dual In-line Memory Module),可移式記憶體模組210a至210n可與插槽相耦合,進而可在需要時(例如在升級記憶體功能或更換故障組件時)從插槽上拆下這些可移式記憶體模組。在本發明之其它實施例中,資訊處理系統系統記憶體210可配置有與不同類 型之可移式記憶體模組形狀因素相對應之記憶體插槽介面,例如前述可移式記憶體模組可以是雙列直插式封裝(DIP,Dual In-line Package)記憶體、單列直插式引腳封裝(SIPP,Single In-line Pin Package)記憶體、單列直插式內存模組(SIMM,Single In-line Memory Module)和/或球形陣列(BGA)記憶體。
資訊處理系統200可使用透過連接於各處理器205之積體電路所實現之晶片組。其中,可直接於獨立之處理器205的積體電路內實現整個晶片組或實現晶片組之一部分。前述晶片組可使一個或多個處理器205透過一個或多個匯流排215對各種資源進行存取。而在本發明之某些實施例中,還可使用任意數量之匯流排形成圖中所示之由匯流排215的多條路徑。在本發明之某些實施例中,匯流排215可包含可透過快速週邊組件互連根聯合體進行存取之快速週邊組件互連(PCIe,PCI Express)交換結構(switch fabric)。資訊處理系統200還可包含諸如快速週邊組件互連埠之一個或多個輸入/輸出埠250,前述輸入/輸出埠250可用於使資訊處理系統200直接與其它資訊處理系統、儲存資源或其它外圍組件相耦合。
如圖所示,各種資源可透過匯流排215與資訊處理系統200之處理器205相耦合。例如,處理器205可與網路控制器225相耦合,例如,前述網路控制器可為路介面控制器(NIC,Network Interface Controller),此路介面控制器可與資訊處理系統200相耦合並使資訊處理系統200可經由外部網路(例如網際網路或區域網路)進行通訊。同時,此處理器205還可與電源管理單元260相耦合,其中此電源管理單元260可連接於安裝有計算插座的資訊處理系統中機架100之供電單元135。在本發明某些實施例中,圖形處理器235可包含於作為資訊處理系統200之組件所安裝之一個或多個視訊卡或圖形卡或者嵌入式控制器內。在本發明某些實施例中,圖形處理器235可集成於遠端存取控制器255內,並且此圖形處理器可透過顯示裝置來顯示與資訊處理系統200相關之診斷介面 及管理介面,其中前述顯示裝置可直接地與遠端存取控制器255相耦合或是在遠端與遠端存取控制器255相耦合。
如本發明說明書所述,資訊處理系統200可包含一個或多個場域可程式閘陣列卡220。並且,除了可透過場域可程式閘陣列卡220之編程功能在部署資訊處理系統200後對場域可程式閘陣列積體電路進行重新配設之外,透過資訊處理系統200所支持之各場域可程式閘陣列卡220還可包含各種處理資源與各種記憶體資源。其中,可以對獨立的各個場域可程式閘陣列卡220進行優化,藉以執行特定之處理任務和/或支持與資訊處理系統200相耦合之特定硬體,其中前述特定之處理任務諸如:特定訊號處理功能、安全功能、資料挖掘功能和人工智慧功能。
如圖所示,場域可程式閘陣列卡220包含有場域可程式閘陣列集成電路220b,其中可對此場域可程式閘陣列集成電路220b進行重新編程,藉以對透過場域可程式閘陣列卡220所執行之作業進行修改。在本發明之某些實施例中,程式邏輯陣列集成電路220b之作業可基於場域可程式閘陣列卡220之非易失性記憶體內所儲存之韌體220c之指令而進行。其中,韌體220c可實現場域可程式閘陣列電路220b之多種作業,例如初始化進程、執行安全協定以及配置輸入/輸出功能。在某些情況下,韌體220c可包含對場域可程式閘陣列電路220b之內部結構進行配置過程中所使用之位元流。因此,韌體220c受損會危及到場域可程式閘陣列220b之作業。在某些情況下,韌體220c受損會致使場域可程式閘陣列220b無法進行作業。
如圖所示,場域可程式閘陣列220b之韌體220c可儲存於現用分區220d與恢複分區220e內。其中,場域可程式閘陣列220b可使用儲存於現用分區220d內之韌體指令進行作業。在某些情況下,恢複分區220e所包含之韌體指令與現用分區220d中所儲存之韌體指令具有相同之版本。但是,在許多情況下, 恢複分區220e僅用於儲存韌體指令之先前版本,藉以提供回滾功能。在許多情況下,提供給恢複分區220e之儲存空間可能無法同時容納現用分區220d之備份副本以及回滾作業所還原到的韌體之先前版本。
在通常情況下,場域可程式閘陣列可用恢複分區中所儲存之韌體替換現用分區中受損之韌體。在這種狀況下,僅當場域可程式閘陣列已被重設為匯流排端點之後,方可用恢複分區中所儲存之韌體對進行場域可程式閘陣列重新初始化,此時使用恢複分區韌體進行配置。而於裝置管理匯流排上對於場域可程式閘陣列進行重設之過程會導致延遲並會觸發可能產生級聯效應之匯流排死鎖。如上所述,在許多情況下,恢複分區中所儲存之韌體可能不同於現用分區中之韌體。在前述狀況下,恢複分區中之韌體可能會暴露出場域可程式閘陣列之安全隱患,而這些安全隱患已由現用分區中韌體之更新的版本解決。在這種情況下,恢復使用恢複分區中之韌體會致使場域可程式閘陣列之作業遭到惡意行為者之濫用。在下文對本發明實施例所作出之更為詳盡之闡釋中,遠端存取控制器255可用於對場域可程式閘陣列220b之現用分區220d中韌體之受損情況加以檢測,並且此遠端存取控制器255還可在不依賴於場域可程式閘陣列卡之恢複韌體分區220e的狀況下對受損之韌體進行替換。
如圖所示,場域可程式閘陣列卡220還可包含管理控制器220a,這種管理控制器可透過邊帶裝置管理匯流排275a與遠端存取控制器255進行互操作。在下文對本發明實施例所作出之更為詳盡之闡釋中,在對場域可程式閘陣列卡220中韌體之受損情況進行檢測的過程中以及透過遠端存取控制器255所保存之場域可程式閘陣列的主副本替換受損之韌體的過程中,管理控制器220a可與遠端存取控制器255進行互操作。在本發明之某些實施例中,管理控制器220a可用於對場域可程式閘陣列卡的現用分區220d與恢複韌體分區220e中所出現之任何改變進行檢測。
當檢測到改變時,管理控制器220a可將現用分區220d與恢複韌體分區220e中韌體之副本傳送至遠端存取控制器255,藉以保留韌體之主副本。在本發明之某些實施例中,遠端存取控制器255可在將所接收之韌體作為主副本之前對其真實性進行認證。在本發明之某些實施例中,遠端存取控制器255可基於核對和(checksum)計算對韌體進行認證。在本發明之某些實施例中,遠端存取控制器255經由對韌體之完整性及來源加以認證,進而對所接收到之韌體加以認證。
在本發明之某些實施例中,資訊處理系統200可以使用基本輸入/輸出系統(BIOS,Basic Input/Output System)進行作業,其中此基本輸入/輸出系統儲係存於可透過處理器205進行存取之非易失性記憶體中。其中,基本輸入/輸出系統可以提供抽象化層(abstraction layer),進而資訊處理系統200之作業系統可透過此抽象化層與此資訊處理系統之硬體組件進行連接。進而,當對資訊處理系統200進行供電或重啟資訊處理系統200時,處理器205可利用基本輸入/輸出系統指令對與資訊處理系統200相耦合之硬體組件進行初始化與測試,其中前述硬體組件可包含:永久性地作為資訊處理系統200之主板組件而進行安裝的組件;以及安裝於資訊處理系統200所支持的各種擴展插槽內的可移式組件。同時,前述基本輸入/輸出系統指令還可用於加載資訊處理系統200所使用之作業系統。在本發明之某些實施例中,資訊處理系統200還可利用在上述基本輸入/輸出系統之外的或替代基本輸入/輸出系統的統一可擴展韌體介面(UEFI,Unified Extensible Firmware Interface)。在本發明之某些實施例中,可透過遠端存取控制器255實現由基本輸入/輸出系統所提供之全部功能或部分功能。
在本發明某些實施例中,可透過處理器205之其它供電層與資訊處理系統200的其它組件使遠端存取控制器255進行作業,因此在資訊處理系統200斷電時可使遠端存取控制器255繼續進行作業並繼續執行管理任務。如上所述, 可透過遠端存取控制器255執行基本輸入/輸出系統所提供之包含有啟動資訊處理系統200之作業系統在內的各種功能。在本發明之一些實施例中,遠端存取控制器255可以執行多種功能,藉以在資訊處理系統200進行初始化(即,處於裸機狀態)之前對資訊處理系統200及其硬體組件之完整性進行認證。
其中,遠端存取控制器255可包含服務處理器255a或專用微控制器,前述服務處理器或專用微控制器用於操控可對資訊處理系統200進行遠端監控與管理之管理軟體。其中,遠端存取控制器255可安裝於資訊處理系統200之主板上或是透過主板所提供之擴展插槽與資訊處理系統200相耦合。為了支持遠端監控功能,網路適配器225c可透過各種網路技術以有線網路連接和/或無線網路連接之形式與遠端存取控制器255相連接。此處,遠端存取控制器之一非限制性示例係為戴爾公司出產之改進型積體遠端存取控制器(iDRAC,integrated Dell® Remote Access Controller),這種改進型積體遠端存取控制器係嵌入於標識為「PowerEdgeTM」之戴爾公司出產的伺服器中,並且這種改進型積體遠端存取控制器具有可協助資訊技術(IT)管理員進行部署、更新、監視與維護之功能。
在本發明之一些實施例中,遠端存取控制器255可透過邊帶匯流排介面對資訊處理系統的各種被管理裝置(如,場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280)進行監視與管理。例如,可以使用內部積體電路(I2C)邊帶匯流排連接器275a至275d對裝置管理中所使用之訊息進行傳送,其中可透過遠端存取控制器之內部積體電路多工器255d之作業分別為場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280中之每一個被管理裝置單獨建立內部積體電路邊帶匯流排連接器。如圖所示,可透過諸如快速週邊組件互連根聯合體之成行的匯流排215使資訊處理系統200之某些被管理裝置(例如,場域可程式閘陣列卡220、遠端存取控制器255及儲 存控制器230)與資訊處理系統之處理器205相耦合,其中成行的匯流排215與用於設備管理之內部積體電路邊帶匯流排連接器275a至275d是相互分開的。同時,遠端存取控制器255之管理功能可利用位於資訊處理系統內之各種被管理的感測器280所收集到之資訊。例如,遠端存取控制器255可使用由感測器280所收集之溫度資料來對資訊處理系統200進行閉環氣流降溫。
在本發明某些實施例中,遠端存取控制器255之服務處理器255a可依內部積體電路協處理器255b而於遠端存取控制器255與資訊處理系統的被管理裝置(如,場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280)之間實現邊帶內部積體電路通訊。其中,內部積體電路協處理器255b可以是專用協處理器或微控制器,這些處理器係用於經由邊帶內部積體電路匯流排介面與資訊處理系統的被管理裝置(場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280)進行連接。在本發明之某些實施例中,內部積體電路協處理器255b可以是服務處理器255a之集成組件,此集成組件諸如具有服務處理器255a特性之外圍片載系統。雖然,圖2中以單條線路之形式示出了內部積體電路邊帶匯流排連接器275a至275d。但是,內部積體電路邊帶匯流排連接器275a至275d中之各內部積體電路邊帶匯流排連接器可包含時脈線與資料線,這些時脈線與資料線可使遠端存取控制器255與被設計為模組化場域可更換單元(FRU,field replaceable units)之內部積體電路端點控制器220a、內部積體電路端點控制器225a、內部積體電路端點控制器230a及內部積體電路端點控制器280a相耦合。
如圖所示,經由透過內部積體電路多工器255d所選出的各內部積體電路邊帶匯流排連接器275a至275d,內部積體電路協處理器255b可與各被管理裝置(場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280)相連。進而,經由此內部積體電路多工器255d所執行之切換作業,可透 過內部積體電路協處理器255b與單個被管理裝置(場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280)間之直接耦合形成內部積體電路邊帶匯流排連接器275a至275d。
在提供邊帶管理能力之過程中,內部積體電路協處理器255b可分別與相應的內部積體電路端點控制器220a、內部積體電路端點控制器225a、內部積體電路端點控制器230a及內部積體電路端點控制器280a進行互操作,其中前述內部積體電路端點可分別為場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280實現內部積體電路通訊。其中,內部積體電路端點控制器220a、內部積體電路端點控制器225a、內部積體電路端點控制器230a及內部積體電路端點控制器280a可為用於以邊帶內部積體電路訊息與遠端存取控制器255進行通信之專用微控制器;或者,內部積體電路端點控制器220a、內部積體電路端點控制器225a、內部積體電路端點控制器230a及內部積體電路端點控制器280a可集成場域可程式閘陣列卡220、遠端存取控制器255、儲存控制器230及感測器280之中各被管理裝置之處理器的片載系統功能中。在本發明某些實施例中,場域可程式閘陣列卡220之內部積體電路端點控制器280a可與上述管理控制器220a相對應。
在本發明之不同實施例中,資訊處理系統200不必包含有圖2所示之每一組件。同時,在本發明之不同實施例中,除了圖2所示的組件之外,資訊處理系統200還可以包含各種其它組件。此外,在本發明某些實施例中,圖2中示為獨立之組件之某些組件亦可集成於其它組件內。例如,在某些實施例中,圖中示出之組件所提供的全部功能或部分功能可由集成於一個或多個處理器205而作為片載系統之組件提供。
圖3為本發明某些實施例中藉由邊帶管理匯流排恢復場域可程式閘陣列卡韌體之方法的流程圖。如圖2所示,可對場域可程式閘陣列卡進行安裝 藉以使其作為資訊處理系統之組件,其中遠端存取控制器可透過邊帶管理匯流排對前述資訊處理系統進行管理。圖中所示出之實施例開始於方框305處,其中可安裝場域可程式閘陣列卡,藉以使其作為資訊處理系統之組件,進而使場域可程式閘陣列卡可經由邊帶管理匯流排而與資訊處理系統之遠端存取控制器相耦合。
在方框310中,當檢測到已安裝場域可程式閘陣列卡時,遠端存取控制器的服務處理器為被檢測之場域可程式閘陣列卡生成唯一的安全密鑰。在方框315中,將前述安全密鑰儲存於遠端存取控制器之安全儲存器中並將副本傳送至場域可程式閘陣列卡,其中可將此副本保存於遠端存取控制器之安全儲存器中。如上所述,除進行初始化過程之外,場域可程式閘陣列卡還可以根據儲存在現用韌體分區中之韌體指令開始進行作業。在本發明之某些實施例中,在初次啟動場域可程式閘陣列卡時,可將現用分區中之韌體副本和/或恢複分區中之韌體副本提供至遠端存取控制器,其中可將韌體存為主副本,藉以對損毀的場域可程式閘陣列卡韌體進行替換。與之類似地,當檢測到對場域可程式閘陣列卡之韌體作出了任何修改時,場域可程式閘陣列卡管理控制器可將現用分區中之場域可程式閘陣列韌體的副本和/或恢複分區中之場域可程式閘陣列韌體的副本提供到遠端管理控制器。因此,在方框320中,場域可程式閘陣列卡進行開始作業,直至重啟場域可程式閘陣列卡和/或安裝有此場域可程式閘陣列卡之資訊處理系統。
在方框325中,在資訊處理系統和/或場域可程式閘陣列卡進行初始化之過程中,遠端存取控制器之服務處理器可經由邊帶管理匯流排向場域可程式閘陣列卡發出請求,藉以報告場域可程式閘陣列所使用的現用分區中之韌體的當前版本。在圖2所進行之描述中,遠端存取控制器可用於對各種基本輸入/輸出系統功能進行控制,例如,前述基本輸入/輸出系統功能可以是啟動資訊處 理系統之作業系統及對資訊處理系統之各種組件進行初始化。因此,在本發明某些實施例中,遠端存取控制器可用於中止場域可程式閘陣列卡和/或資訊處理系統之初始化,直至圖3所示之對受損場域可程式閘陣列卡韌體所進行之恢復過程結束。
當初始化保持中止時,場域可程式閘陣列卡可接收針對韌體版本資訊之請求;並且,在方框330中,場域可程式閘陣列卡可生成響應,此響應詳細說明了當前儲存於在現用分區中之韌體的版本。在本發明之某些實施例中,針對韌體識別請求之響應可包含韌體之副本或者包含有指明韌體版本之標頭的韌體之一部分。在本發明之某些實施例中,場域可程式閘陣列卡管理控制器可使韌體版本響應包含有:依據現用分區中之韌體指令和/或恢複分區中之韌體指令所計算出的雜湊值。而在本發明某些實施例中,場域可程式閘陣列卡可用於方框315中從遠端存取控制器所接收到之安全密鑰對韌體版本響應進行數位簽名。而後,場域可程式閘陣列卡管理控制器可經由邊帶管理匯流排將經簽名後之響應傳送到遠端存取控制器。
在方框335處,服務處理器可對來自場域可程式閘陣列卡之響應進行認證。在本發明某些實施例中,服務處理器可透過判斷是否在方框310中用為場域可程式閘陣列卡所生產之安全密鑰對響應進行了數位簽名對響應加以認證。若來自場域可程式閘陣列卡之響應不能通過服務處理器之認證,鑒於場域可程式閘陣列卡之現用韌體可能已受損,可在方框345中止場域可程式閘陣列卡之初始化。而在某些情況下,即使不對場域可程式閘陣列卡進行初始化,亦可繼續對資訊處理系統進行初始化。
若來自場域可程式閘陣列卡之響應可正確地通過認證,則服務處理器可在方框340中對由場域可程式閘陣列卡所報告之韌體是否與透過遠端存取控制器所儲存之韌體的主副本相匹配進行判斷。在前述響應包含有韌體標頭 之實施例中,可對所提供之標頭中所指明之版本與遠端存取控制器於主副本中維護之韌體標頭資訊進行比較。在本發明之某些實施例中,可對響應中提供之雜湊值與遠端存取控制器基於韌體的主副本所計算出之雜湊值進行比較,藉以確定場域可程式閘陣列韌體之完整性。若場域可程式閘陣列卡所報告之韌體與韌體的主副本相匹配,則可繼續進行場域可程式閘陣列卡和/或資訊處理系統之初始化,並使程式邏輯陣列卡用現用分區中的韌體進行作業。
在方框340中,若服務處理器檢測到韌體之主副本與場域可程式閘陣列卡所報告之韌體間存在差異,則在方框345中令服務處理器中止場域可程式閘陣列卡和/或資訊處理系統之初始化。而在這種狀況中,韌體可能已經受損。因此,在方框350中,服務處理器可用遠端存取控制器所儲存之韌體主副本的版本替換儲存於場域可程式閘陣列卡之現用分區與恢複分區中所儲存之韌體。在更換韌體時,可用目前儲存於場域可程式閘陣列卡之現用分區中的韌體繼續啟動場域可程式閘陣列卡和/或資訊處理系統。如圖所示,在進行啟動時,此過程回到框310,其中服務處理器為場域可程式閘陣列卡生成新的安全密鑰,進而可將新的安全密鑰分發至場域可程式閘陣列卡並用新的安全密鑰對後續之韌體版本響應進行數位簽名。
應當理解的是,本發明說明書中所述及之各種作業可由邏輯電路、處理電路、硬體、前述電路組合或電路與硬體之組合所執行之軟體實現。可對說明書中所揭露之方法中各作業之順序進行改變,同時,也可對各種作業進行添加、重排、組合、省略、修改等操作。說明書對本發明所進行之描述旨在囊括本發明之所有改動與變化,因此本發明應被視為進行了具有說明性之闡釋,而非對本發明加以限制。
儘管說明書參照示意性實施例對本發明進行了描述,惟對本發明所進行之改動與改變並未脫離本發明專利申請範圍中所闡明之保護範圍。因此 本發明說明書及圖式僅用於進行說明而非進行限定,且針對本發明所進行之所有改動皆涵蓋於本發明所欲保護之範圍內。同時,本發明說明書中所涉及之任何優點、益處、解決技術問題所採用之技術方案皆不應被解讀為任何一請求項或全部請求項中之關鍵技術特徵、必要技術特徵或特定技術特徵。
除非另有說明,說明書中所使用之術語「第一」與「第二」旨在使一元件有別於另一元件。因此,這些術語既不代表時間順序也不表示其它順序。說明書中所使用之術語「耦合」與「可操作耦合」意為進行連接,而前述連接既不必是直接線路也不必是機械性連接。除另有說明外,說明書中所使用之術語「一」意為一個或多個。說明書中所使用之術語「包含」、術語「具有」、術語「包括」、術語「含有」及這些術語之其它形式應解讀為開放式連接詞。
因此,當述及系統、裝置或設備「包含」、「具有」、「包括」或「含有」一個或多個元素時,上述系統、裝置或設備擁有此元素,但並非僅擁有此元素。與之相似地,當述及方法或過程「包含」、「具有」、「包括」或「含有」一種或多種作業時,上述方法或過程擁有此作業,但並非僅擁有此作業。
305-355:方框

Claims (14)

  1. 一種韌體恢復方法,其中具有一韌體之一裝置安裝於一資訊處理系統內,該韌體恢復方法包含:為安裝於該資訊處理系統內之該裝置生成一安全密鑰,其中該安全密鑰係藉由一遠端存取控制器所生成,該遠端存取控制器也安裝於該資訊處理系統內並且提供該裝置之遠端管理,且其中該遠端存取控制器係經由一邊帶管理匯流排耦合至該裝置,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑,且其中該裝置係經由一成行的匯流排耦合至該資訊處理系統之一處理器,且其中該資訊處理系統之該遠端存取控制器儲存該裝置之韌體之一主副本;以及其中該裝置包含一場域可程式閘陣列,其經由該邊帶管理匯流排耦合至該遠端存取控制器,該邊帶管理匯流排在該資訊處理系統內於該場域可程式閘陣列與該遠端存取控制器之間提供一傳訊路徑,且其中該場域可程式閘陣列包含一管理控制器,其經由該邊帶管理匯流排在該資訊處理系統內將該場域可程式閘陣列耦合至該遠端存取控制器;藉由該遠端存取控制器將該安全密鑰經由該邊帶管理匯流排傳送至該裝置,該邊帶裝置管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑;藉由該遠端存取控制器經由該邊帶管理匯流排請求該裝置去報告透過該裝置所使用韌體之版本,該邊帶管理匯流排在該資訊處理系統內提供至該裝置的一傳訊路徑,其中該場域可程式閘陣列之該管理控制器經由該邊帶管理匯流排對該遠端存取控制器報告韌體版本響應;藉由該遠端存取控制器基於該安全密鑰對來自該裝置之韌體版本響應進行認證,該安全密鑰儲存在該遠端存取控制器之一安全記憶體中;藉由該遠端存取控制器判斷一主韌體版本何時符合透過該裝置所報告之韌 體版本;以及在所報告之韌體版本與該主韌體版本不符時,該韌體恢復方法進一步包含:中止該裝置之作業;透過該主韌體替換該裝置之韌體,該主韌體由該遠端存取控制器儲存,其中該主韌體係經由該邊帶管理匯流排傳送至該裝置,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑;及用該主韌體使該裝置進行初始化。
  2. 如請求項1所述之韌體恢復方法,其中該裝置每次重啟時藉由該遠端存取控制器產生用於使該裝置去報告韌體之版本的請求。
  3. 如請求項1所述之韌體恢復方法,其中透過對該韌體版本響應中包含之一韌體標頭所指明的版本與由該遠端存取控制器所儲存的該主韌體之標頭所指明的版本進行比較,確定所報告之韌體是否符合該主韌體。
  4. 如請求項1所述之韌體恢復方法,其中該場域可程式閘陣列將該韌體保存於一現用分區與一恢複分區中,且其中該遠端存取控制器透過由該遠端存取控制器所儲存的該主韌體來替換在該場域可程式閘陣列之該現用分區及該恢複分區中之韌體。
  5. 如請求項4所述之韌體恢復方法,其中由該遠端存取控制器所儲存的該主韌體在該場域可程式閘陣列之該恢複分區未被用來操作該場域可程式閘陣列之情況下,替換在該等現用及恢複分區中之該韌體。
  6. 一種韌體恢復系統,其中具有一韌體之一裝置位於一資訊處理系統內,該韌體恢復系統包含:安裝於該資訊處理系統內之一遠端存取控制器,該遠端存取控制器經由一邊帶管理匯流排耦合至該裝置,該邊帶管理匯流排在該資訊處理系統內於該遠 端存取控制器與該裝置之間提供一傳訊路徑,其中該裝置係經由一成行的匯流排耦合至該資訊處理系統之一處理器,且其中該遠端存取控制器提供該裝置之遠端管理,且其中該遠端存取控制器儲存該裝置之韌體之一主副本,且其中該裝置包含一場域可程式閘陣列,其經由該邊帶管理匯流排耦合至該遠端存取控制器,該邊帶管理匯流排在該資訊處理系統內於該場域可程式閘陣列與該遠端存取控制器之間提供一傳訊路徑,且其中該場域可程式閘陣列包含一管理控制器,其經由該邊帶管理匯流排在該資訊處理系統內將該場域可程式閘陣列耦合至該遠端存取控制器,該遠端存取控制器經組配用以:為安裝於該資訊處理系統內之該裝置生成一安全密鑰,其中所生成之該安全密鑰係儲存在安裝於該資訊處理系統內之該遠端存取控制器的一安全記憶體中;經由該邊帶管理匯流排將該安全密鑰傳送至該裝置,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑;經由該邊帶管理匯流排請求該裝置去報告透過該裝置所使用韌體之版本,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑,其中該場域可程式閘陣列之該管理控制器經由該邊帶管理匯流排對該遠端存取控制器報告韌體版本響應;基於該安全密鑰對來自該裝置之一響應進行認證,該安全密鑰儲存在該遠端存取控制器之該安全記憶體中;判斷由該遠端存取控制器所儲存之該韌體之該主副本是否符合透過該裝置所報告之現用韌體版本;以及若所報告之該現用韌體版本與該主韌體的版本不符,則該韌體恢復系統進行下列作業: 使該裝置中止;並且透過該主韌體替換該裝置之該現用韌體;其中該裝置經組配以依據一現用韌體分區內所儲存之韌體進行作業,其中該裝置還經組配用以:經由該邊帶管理匯流排於該遠端存取控制器與該裝置之間傳送該韌體版本響應,該韌體版本響應用於報告該現用韌體分區內之韌體的版本;經由該邊帶管理匯流排接收該主韌體,藉以替換該現用分區內之韌體,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑;基於更新之該現用韌體分區進行初始化作業。
  7. 如請求項6所述之韌體恢復系統,其中該裝置每次重啟時藉由該遠端存取控制器產生用於使該裝置去報告韌體之版本的請求。
  8. 如請求項6所述之韌體恢復系統,其中透過對該韌體版本響應中包含之一韌體標頭所指明的版本與由該遠端存取控制器所儲存的該主韌體之標頭所指明的版本進行比較,確定所報告之韌體是否符合該主韌體。
  9. 如請求項6所述之韌體恢復系統,其中由該裝置所報告之該韌體版本包含一基於現用韌體分區中之該裝置的韌體指令所計算之簽名。
  10. 一種遠端存取控制器,該遠端存取控制器係用於恢復一裝置之韌體且用於該裝置之遠端管理,其中該遠端存取控制器包含:一邊帶管理匯流排,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑,且其中該裝置係經由一成行的匯流排耦合至該資訊處理系統之一處理器,其中該裝置包含一場域可程式閘陣列,其經由該邊帶管理匯流排耦合至該遠端存取控制器,該邊帶管理匯流排在該資訊處 理系統內於該場域可程式閘陣列與該遠端存取控制器之間提供一傳訊路徑,且其中該場域可程式閘陣列包含一管理控制器,其經由該邊帶管理匯流排在該資訊處理系統內將該場域可程式閘陣列耦合至該遠端存取控制器;一個或多個處理器;以及一記憶體裝置,該記憶體裝置係與該一個或多個處理器相耦合,其中該記憶體裝置儲存該裝置之韌體之一主副本及該裝置之一安全密鑰,且其中該記憶體裝置儲存有多個機讀指令,當透過該一個或多個處理器執行該等機讀指令時,致使該遠端存取控制器用以:為該裝置生成該安全密鑰;經由該邊帶管理匯流排將該安全密鑰傳送至該裝置,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑;經由該邊帶管理匯流排請求該裝置去報告一當前韌體版本,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑,其中該場域可程式閘陣列之該管理控制器經由該邊帶管理匯流排對該遠端存取控制器報告韌體版本響應;基於由該遠端存取控制器所儲存之該安全密鑰對來自該裝置之一響應進行認證;判斷由該遠端存取控制器所儲存之該韌體之該主副本是否符合透過該裝置所報告之一現用韌體版本;若所報告之該現用韌體版本與該主韌體版本不符,則進行下列作業:使該裝置中止;經由該邊帶管理匯流排將該主韌體傳送至該裝置,該邊帶管理匯流排在該資訊處理系統內於該遠端存取控制器與該裝置之間提供一傳訊路徑; 透過該主韌體替換該裝置之現用韌體;及用更新後之韌體使裝置進行初始化。
  11. 如請求項10所述之遠端存取控制器,其中該裝置每次重啟時藉由該遠端存取控制器產生用於使該裝置去報告一當前韌體版本的請求。
  12. 如請求項10所述之遠端存取控制器,其中透過對該韌體版本響應中包含之一韌體標頭所指明的版本與由該遠端存取控制器所儲存的該主韌體之標頭所指明的版本進行比較,藉以確定所報告之韌體是否符合該主韌體。
  13. 如請求項10所述之遠端存取控制器,其中由該裝置所報告之韌體版本包含一基於現用韌體分區中之該裝置的韌體指令所計算之簽名。
  14. 如請求項10所述之遠端存取控制器,其中該場域可程式閘陣列將該韌體保存於一現用分區與一恢複分區中,且其中該遠端存取控制器透過由該遠端存取控制器所儲存的該主韌體來替換在該場域可程式閘陣列之該現用分區及該恢複分區中之韌體。
TW108138073A 2018-10-25 2019-10-22 經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法 TWI791913B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/171,168 2018-10-25
US16/171,168 US11100228B2 (en) 2018-10-25 2018-10-25 System and method to recover FPGA firmware over a sideband interface
WOPCT/US19/46466 2019-08-14
PCT/US2019/046466 WO2020086143A1 (en) 2018-10-25 2019-08-14 System and method to recover fpga firmware over a sideband interface

Publications (2)

Publication Number Publication Date
TW202026938A TW202026938A (zh) 2020-07-16
TWI791913B true TWI791913B (zh) 2023-02-11

Family

ID=70328753

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108138073A TWI791913B (zh) 2018-10-25 2019-10-22 經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法

Country Status (4)

Country Link
US (1) US11100228B2 (zh)
EP (1) EP3871080A4 (zh)
TW (1) TWI791913B (zh)
WO (1) WO2020086143A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220321403A1 (en) * 2021-04-02 2022-10-06 Nokia Solutions And Networks Oy Programmable network segmentation for multi-tenant fpgas in cloud infrastructures
US20220334820A1 (en) * 2021-04-20 2022-10-20 Dell Products, L.P. System and method for intermediate software upgrades for information handling systems
US11977877B2 (en) * 2022-09-26 2024-05-07 Dell Products, L.P. Systems and methods for personality based firmware updates

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200715115A (en) * 2005-07-28 2007-04-16 Advanced Micro Devices Inc Resilient system partition for personal internet communicator
US20070169088A1 (en) * 2006-01-13 2007-07-19 Dell Products, L.P. Automatic firmware corruption recovery and update
TW201351282A (zh) * 2012-02-23 2013-12-16 Hewlett Packard Development Co 用以修改運作韌體之套裝韌體
US20140129834A1 (en) * 2012-11-02 2014-05-08 Jacob Andrew Brill Providing User Authentication
TW201545927A (zh) * 2014-06-12 2015-12-16 Jingtek Electronics Technology Co Ltd 電動車雲端韌體軟體更新系統裝置
WO2016101712A1 (zh) * 2014-12-22 2016-06-30 小米科技有限责任公司 固件恢复方法、装置和终端
CN107924443A (zh) * 2015-07-23 2018-04-17 菲尼克斯电气公司 用于过程控制的控制装置的固件升级方法及其系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918027B2 (en) * 2001-07-30 2005-07-12 Hewlett-Packard Development Company, L.P. System and method for in-system programming through an on-system JTAG bridge of programmable logic devices on multiple circuit boards of a system
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
KR20060065078A (ko) 2004-12-09 2006-06-14 삼성전자주식회사 시스템의 펌웨어 업-데이트 방법 및 장치
US8161227B1 (en) * 2006-10-30 2012-04-17 Siliconsystems, Inc. Storage subsystem capable of programming field-programmable devices of a target computer system
WO2010093538A1 (en) * 2009-02-11 2010-08-19 Rambus Inc. Shared access memory scheme
US20100241838A1 (en) * 2009-03-20 2010-09-23 Jason Cohen Method and system for firmware updates
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US8813202B2 (en) * 2012-01-03 2014-08-19 General Instrument Corporation Mechanism to determine source device service tier based on the version of the HDCP key
US9910659B2 (en) * 2012-11-07 2018-03-06 Qualcomm Incorporated Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory
KR20140099757A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 전자장치 및 전자장치의 펌웨어 업그레이드 방법
KR20140131781A (ko) * 2013-05-06 2014-11-14 삼성전자주식회사 메모리 제어 장치 및 방법
GB2518257A (en) * 2013-09-13 2015-03-18 Vodafone Ip Licensing Ltd Methods and systems for operating a secure mobile device
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
JP6073854B2 (ja) * 2014-12-26 2017-02-01 京セラドキュメントソリューションズ株式会社 電子機器及びファームウェア復旧プログラム
US9930051B1 (en) * 2015-11-06 2018-03-27 Amazon Technologies, Inc. Remote management of hardware hosts in cloud infrastructure
JP6676162B2 (ja) * 2016-06-13 2020-04-08 オリンパス株式会社 メモリアクセス制御装置、画像処理装置、および撮像装置
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
US10114633B2 (en) * 2016-12-08 2018-10-30 International Business Machines Corporation Concurrent I/O enclosure firmware/field-programmable gate array (FPGA) update in a multi-node environment
US10158426B2 (en) * 2017-04-28 2018-12-18 Dell Products L.P. Firmware updates using visible light medium
CN107066305B (zh) * 2017-05-11 2020-07-28 北京百度网讯科技有限公司 用于更新服务器的服务器固件的方法和装置以及服务器
US10031993B1 (en) * 2017-06-12 2018-07-24 Intel Corporation Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA)
US10289333B2 (en) * 2017-06-14 2019-05-14 Western Digital Technologies, Inc. Data storage device configured to perform operations using a wireless interface
US10810311B2 (en) * 2017-09-21 2020-10-20 Samsung Electronics Co., Ltd. Internet-of-things module
US20190116690A1 (en) * 2017-10-12 2019-04-18 Quanta Computer Inc. Dynamically adjust maximum fan duty in a server system
US11716614B2 (en) * 2018-08-16 2023-08-01 Comcast Cable Communications, Llc Secured data derivation for user devices
US10922413B2 (en) * 2018-09-27 2021-02-16 Intel Corporation Methods and apparatus to apply a firmware update to a host processor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200715115A (en) * 2005-07-28 2007-04-16 Advanced Micro Devices Inc Resilient system partition for personal internet communicator
US20070169088A1 (en) * 2006-01-13 2007-07-19 Dell Products, L.P. Automatic firmware corruption recovery and update
TW201351282A (zh) * 2012-02-23 2013-12-16 Hewlett Packard Development Co 用以修改運作韌體之套裝韌體
US20140129834A1 (en) * 2012-11-02 2014-05-08 Jacob Andrew Brill Providing User Authentication
TW201545927A (zh) * 2014-06-12 2015-12-16 Jingtek Electronics Technology Co Ltd 電動車雲端韌體軟體更新系統裝置
WO2016101712A1 (zh) * 2014-12-22 2016-06-30 小米科技有限责任公司 固件恢复方法、装置和终端
CN107924443A (zh) * 2015-07-23 2018-04-17 菲尼克斯电气公司 用于过程控制的控制装置的固件升级方法及其系统

Also Published As

Publication number Publication date
US11100228B2 (en) 2021-08-24
CN112868013A (zh) 2021-05-28
EP3871080A1 (en) 2021-09-01
WO2020086143A1 (en) 2020-04-30
EP3871080A4 (en) 2022-07-20
US20200134183A1 (en) 2020-04-30
TW202026938A (zh) 2020-07-16

Similar Documents

Publication Publication Date Title
TWI768296B (zh) 用於組態漂移偵測及補救之系統及方法
US10846159B2 (en) System and method for managing, resetting and diagnosing failures of a device management bus
TWI791913B (zh) 經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法
US10855739B2 (en) Video redirection across multiple information handling systems (IHSs) using a graphics core and a bus bridge integrated into an enclosure controller (EC)
US10852352B2 (en) System and method to secure FPGA card debug ports
US11985258B2 (en) Split chain of digital certificates for supply chain integrity
US11514193B2 (en) Validating secure assembly and delivery of multiple information handling systems installed in a shared chassis
US10606784B1 (en) Software filtering of redundant sideband device management bus communications
US10852792B2 (en) System and method for recovery of sideband interfaces for controllers
US20220121619A1 (en) Systems and methods for remote management of non-standard devices
US10719310B1 (en) Systems and methods for reducing keyboard, video, and mouse (KVM) downtime during firmware update or failover events in a chassis with redundant enclosure controllers (ECs)
US20240103828A1 (en) Systems and methods for thermal monitoring during firmware updates
US10409940B1 (en) System and method to proxy networking statistics for FPGA cards
CN112868013B (zh) 经由边带接口恢复场域可程序门阵列固件的系统及方法
US20240232363A9 (en) Systems and methods to securely configure a factory firmware in a bmc
US20240134988A1 (en) Systems and methods to securely configure a factory firmware in a bmc
US20240235818A9 (en) Systems and methods for secure secret provisioning of remote access controllers
US20240137209A1 (en) Systems and methods for secure secret provisioning of remote access controllers
US11977877B2 (en) Systems and methods for personality based firmware updates
US20240037206A1 (en) CENTRALIZED MANAGEMENT OF ADDON BASEBOARD MANAGEMENT CONTROLLERS (BMCs) THROUGH AN INTEGRATED SERVER REMOTE ACCESS CONTROLLER USING SECURE TOKENS
US20240103849A1 (en) Systems and methods for supporting rebootless firmware updates
US11755334B2 (en) Systems and methods for augmented notifications in remote management of an IHS (information handling system)
US20240103836A1 (en) Systems and methods for topology aware firmware updates in high-availability systems
US20240103720A1 (en) SYSTEMS AND METHODS FOR SUPPORTING NVMe SSD REBOOTLESS FIRMWARE UPDATES
US20240104214A1 (en) Systems and methods for updates during firmware authentication