TWI530790B - 系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器 - Google Patents

系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器 Download PDF

Info

Publication number
TWI530790B
TWI530790B TW103108717A TW103108717A TWI530790B TW I530790 B TWI530790 B TW I530790B TW 103108717 A TW103108717 A TW 103108717A TW 103108717 A TW103108717 A TW 103108717A TW I530790 B TWI530790 B TW I530790B
Authority
TW
Taiwan
Prior art keywords
controller
electrical memory
code
memory
processor
Prior art date
Application number
TW103108717A
Other languages
English (en)
Other versions
TW201502790A (zh
Inventor
李察H 后德吉
傑佛瑞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 TW201502790A publication Critical patent/TW201502790A/zh
Application granted granted Critical
Publication of TWI530790B publication Critical patent/TWI530790B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/4406Loading of operating system
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Description

系統啟動碼恢復方法、運算系統、及供於系統中使用之控制器
本發明係有關於次級非依電性記憶體中之冗餘系統啟動碼。
一運算系統可包括用以進行該運算系統之各種起動功能的碼。此碼可包括基本輸入/輸出系統(BIOS)碼。基本輸入/輸出系統碼可為該運算系統中或來自一外部裝置之惡意軟體攻擊的對象。攻擊的結果,該基本輸入/輸出系統碼可受折損。
依據本發明之一實施例,係特地提出一種用以使用在一系統中之控制器,包含:一處理電路,該處理電路係用以進行下列動作:判定儲存在第一非依電性記憶體中之系統啟動碼是否受到折損且不可恢復,其中該第一非依電性記憶體最初可由該控制器及處理器透過一共享匯流排存取;以及響應於判定該系統啟動碼係受到折損且不可恢復,致動切換邏輯組件以將一第二非依電性記憶體連接至該共享匯流排,並將該第一非依電性記憶體與該共享匯流 排斷開,其中該第二非依電性記憶體在由該切換邏輯組件連接至該共享匯流排後係可由該處理器存取,以從該第二非依電性記憶體擷取冗餘系統啟動碼。
100‧‧‧實例運算系統
102‧‧‧嵌式控制器
104‧‧‧主要非依電性記憶體
106‧‧‧處理器
107‧‧‧主要系統韌體
108‧‧‧切換邏輯
110‧‧‧第一鏈結
112‧‧‧第二鏈結
114‧‧‧冗餘系統韌體
116‧‧‧次級非依電性記憶體
120‧‧‧共享匯流排
122‧‧‧選擇信號
124‧‧‧私用匯流排
126‧‧‧處理電路
202~206‧‧‧步驟
301‧‧‧使用者輸入裝置
302‧‧‧輸入/輸出控制器、鍵盤
303‧‧‧風扇
304‧‧‧電池
305‧‧‧電力供應
306、308‧‧‧啟動區塊
307、309‧‧‧嵌式控制器韌體
312‧‧‧密碼硬體
314‧‧‧唯讀記憶體
316‧‧‧啟動載入器
318‧‧‧加密金鑰
319‧‧‧隨機存取記憶體
322、324、340、342‧‧‧簽章
336、338‧‧‧系統資料
本發明的一些實施例係參照下列圖式來描述:圖1為根據一些實施例之一實例系統的方塊圖;圖2為根據一些實施例之一系統啟動碼恢復過程的流程圖;圖3為根據進一步之實施例之另一實例系統的方塊圖。
較佳實施例之詳細說明
針對用於進行一運算系統之起動的系統碼之惡意軟體攻擊可致使該運算系統之完整性受折損,使得會發生運算系統中之未授權存取及操作。例如,受折損系統碼可容許一惡意實體進行隱蔽遠端監視及/或控制該運算系統、容許惡意軟體進行未授權存取及/或修改該運算系統中之資料、容許該運算系統之失效等等。受折損系統碼可意指已損壞之系統碼,使得該系統碼不再可用,或替代性地,受折損系統碼可意指已以某種方式改變但仍能夠執行之系統碼。應注意到系統碼也可意外地或故意地受折損。
雖然可在運算系統中提供一保護機制以保護系統碼,此保護機制可能在某些情況下受到折損,而會使系統碼受到惡意軟體攻擊。
用來進行運算系統之起動的系統碼可包括系統 韌體,該系統碼可為能夠在運算系統之一處理器(或數個處理器)上執行的機器可讀指令之形式。「系統韌體」可涵蓋能夠進行運算系統之起動的任何機器可讀指令。運算系統之實例包括桌上型電腦、筆記型電腦、平板電腦、個人數位助理(PDA)、智慧型手機、遊戲設備、伺服器電腦、儲存節點、網路通訊節點等等。
系統韌體可包括基本輸入/輸出系統(BIOS)碼,該基本輸入/輸出系統碼可初始化運算系統之各種組件,並載入該運算系統之一作業系統(OS)。該基本輸入/輸出系統碼可進行硬體組件之檢查以確保硬體組件存在並正常運行。此可為,例如,電力開啟自我測試(POST)程序的一部分。在電力開啟自我測試程序之後,該基本輸入/輸出系統碼可進行剩餘的啟動序列,其後該基本輸入/輸出系統碼可載入該作業系統並將控制權交給該作業系統。基本輸入/輸出系統碼可包括舊有基本輸入/輸出系統碼或統一可延伸韌體介面(UEFI)碼。在一些實例中,該基本輸入/輸出系統碼可包括在該作業系統載入後執行的一運行時間部分。
系統韌體可儲存在非依電性記憶體中,諸如一快閃記憶體或任何其他可規劃之持續記憶體。一旦非依電性記憶體中的系統韌體受到折損,一種可能的補救措施可含括實體替換包括該非依電性記憶體之一組件。此種處理受折損系統韌體之技術可為勞力密集、昂貴及費時。
依據一些實施例,除了提供儲存有系統韌體之主要版本的一主要非依電性記憶體之外,可提供一次級非依 電性記憶體。該次級非依電性記憶體可儲存該系統韌體的一冗餘版本。若該主要非依電性記憶體中之系統韌體受到折損,則可使用該次級非依電性記憶體中之系統韌體作為替代。
在隨後的討論中,雖然提到了系統韌體,應注意的是此種技術或機制可應用到其他類型的系統啟動碼,其中系統啟動碼可意指可在重新起動後啟動一運算系統或可使運算系統從一低電力狀態恢復的任何碼。
圖1為一實例運算系統100之一方塊圖,包括一嵌式控制器102、一主要非依電性記憶體104、一處理器106、及一次級非依電性記憶體116。該主要非依電性記憶體104可儲存系統韌體之一主要版本(稱為「主要系統韌體」107),該主要系統韌體107可包括基本輸入/輸出系統碼。該次級非依電性記憶體106可儲存該系統韌體之一冗餘版本(稱為「冗餘系統韌體」114)。該冗餘系統韌體114可為該主要系統韌體107之一完全相同複本,或替代性地,該冗餘系統韌體114可與該主要系統韌體107不同(例如,該冗餘系統韌體109可為該系統韌體之一較早或較晚版本)。
該次級非依電性記憶體116可與該主要非依電性記憶體104實體分開(諸如實施為不同的實體記憶體裝置)。替代性地,該主要非依電性記憶體104及該次級非依電性記憶體116可實體駐留在一共用記憶體裝置上,但該主要非依電性記憶體104及該次級非依電性記憶體116係位於實體記憶體裝置之不同區段中。
一切換邏輯108也提供來選擇性地將該主要非依電性記憶體104及次級非依電性記憶體116之其中一者連接至一共享匯流排120。該共享匯流排120係可由該嵌式控制器102及該處理器106存取。雖然未顯示在圖1中,可在該處理器106與該共享匯流排120之間提供一輸入/輸出(I/O)控制器。
該切換邏輯108係透過一第一鏈結110連接至該主要非依電性記憶體104,並透過一第二鏈結112連接至該次級非依電性記憶體116。該切換邏輯108係由來自該嵌式控制器102之一選擇信號122控制。
在一些實例中,該切換邏輯108可為一多工器/解多工器。若該選擇信號122處於一第一狀態,則該切換邏輯108連接該共享匯流排120及該第一鏈結110,使得該主要非依電性記憶體104可透過該共享匯流排120存取。若該選擇信號122處於一第二、不同狀態,則該切換邏輯108連接該共享匯流排120及該第二鏈結112,使得該次級非依電性記憶體116可透過該共享匯流排120存取。
當透過該共享匯流排而可存取時,該等主要及次級非依電性記憶體104及106中之所連接者為一共享非依電性記憶體。該非依電性記憶體為「共享」,在意義上來說,意指該非依電性記憶體可由數個實體存取,包括該嵌式控制器102及至少一個其他實體(包括該處理器106)。
未由該切換邏輯108而連接至該共享匯流排120的另一個非依電性記憶體無法透過該共享匯流排120予以 存取。在一些實例中,該次級非依電性記憶體116可透過一私用匯流排124來連接至該嵌式控制器102。在該運算系統100的準備期間(諸如在工廠或在服務站),該私用匯流排124可由該嵌式控制器102使用來將該冗餘系統韌體114(及系統資料)複製到該次級非依電性記憶體116。
在其他實例中,該私用匯流排124係省略。
在一些實施例中,該運算系統100之預設配置其中一個可為該切換邏輯108由該嵌式控制器102控制以將該主要非依電性記憶體104連接至該共享匯流排120,而該次級非依電性記憶體116係藉由該切換邏輯108而與該共享匯流排120隔離。在該預設配置中,該主要系統韌體107可由該處理器106擷取且可在該處理器106上執行以進行系統啟動或回復。
在該預設配置中,若提供該私用匯流排124,則可藉由該嵌式控制器102存取該次級非依電性記憶體116,但對於該處理器106或對於該運算系統100中之其他組件係不可存取該次級非依電性記憶體116。在該預設配置中使該處理器106及其他組件不可存取該次級非依電性記憶體116保護了該次級非依電性記憶體116之內容免於未授權的竄改。
響應於偵測到該主要系統韌體107受折損,該嵌式控制器102可進行各種動作。首先,在一些實施例中,該嵌式控制器102嘗試藉由將來自該次級非依電性記憶體116之冗餘系統韌體114複製到該主要非依電性記憶體104,以 該冗餘系統韌體114來取代受折損之系統韌體107,而從該主要非依電性記憶體104中之受折損的系統韌體107恢復。
然而,在一些情況中,有可能在該運算系統100中之錯誤或故障(諸如該主要非依電性記憶體104之實體故障或該鏈結110之實體故障)可能會阻止該主要非依電性記憶體104中之系統韌體107的恢復。事實上,在該運算系統100中的錯誤或故障可有助於該主要系統韌體107之折損的偵測。在此種情況中,作為失效保全技術,該選擇信號122之狀態可改變來將該次級非依電性記憶體116連接至該共享匯流排120,並使該主要非依電性記憶體104與該共享匯流排120隔離。此種配置可稱作「次級配置」。在該次級配置中,該冗餘系統韌體114可由該處理器106擷取且可在該處理器106上執行。
若該嵌式控制器102判定該嵌式控制器102無法成功地將該冗餘系統韌體114寫入該主要非依電性記憶體104,諸如由於該主要非依電性記憶體104或該鏈結110之故障,則該嵌式控制器102可偵測出受折損的系統韌體107之恢復係不可能。替代性地,若該嵌式控制器102進行一恢復操作(來將該冗餘系統韌體114複製到該主要系統韌體107),而在此恢復操作後,該嵌式控制器102再次偵測到該主要系統韌體107仍受到折損,則該嵌式控制器102可偵測出該受折損之系統韌體107之恢復係不可能。
在一些實施例中,只有一個實體可在任意給定時間具有對於該共享匯流排120之存取,使得一次只有一個實 體可存取共享的非依電性記憶體(該主要及次級非依電性記憶體中連接至該共享匯流排120之一者)。在一些實例中,該共享匯流排120係一共享串列週邊介面(SPI)匯流排。串列週邊介面匯流排為一同步串列資料鏈結,其中在該串列週邊介面匯流排上之裝置以一主從模式操作。在其他實例中,可使用另一類型之共享匯流排120。在替代性實例中,一仲裁機制可提供來容許在該運算系統之各種狀態中,包括一低電力狀態及一正常運行時間狀態,共享存取該匯流排120。
在一些實例中,系統韌體107或114可包括一啟動區塊。該啟動區塊為基本輸入/輸出系統碼之一部分,並在該運算系統100起動時最先執行。該啟動區塊係在該基本輸入/輸出系統碼的其餘部分允許執行之前最先執行。該啟動區塊可使用來檢查該基本輸入/輸出系統碼之完整性以及進行其他初始功能。若該啟動區塊確認該基本輸入/輸出系統碼之完整性,接著該啟動區塊可將控制權交給該基本輸入/輸出系統碼之主要部分,以初始化與該基本輸入/輸出系統碼相關聯之剩餘操作。
在一些實施例中,該啟動區塊可包括用於測量之信賴核心根(CRTM)邏輯,其係由可信賴運算團體(TCG),一個工業標準工作團體,所指定之邏輯。在該運算系統100之電力開啟程序期間,該用於測量之信賴核心根邏輯可進行某些初始化任務並可做若干測量,該等測量係儲存來供以後使用。在將控制權交給該基本輸入/輸出系統碼之主要 部分前,該用於測量之信賴核心根邏輯可接著檢查該基本輸入/輸出系統碼。一旦該基本輸入/輸出系統碼完成執行並將控制權交給作業系統,該作業系統可基於該用於測量之信賴核心根邏輯所作出之測量來檢驗該運算系統100之可信任度。
該嵌式控制器102與該運算系統100之處理器106實體分離。該處理器106使用來執行該系統100中之作業系統、應用程式碼、及其他碼。該嵌式控制器102,另一方面,可使用來進行特定預定義任務。可由該嵌式控制器102進行之任務實例包括下列任一者或其一些組合:該運算系統100中之電力供應控制(用以控制供給電力供應電壓至該運算系統100中之各種組件的一電力供應)、該運算系統100中之電池的充電及控制、熱監測(用以監測該運算系統100之溫度)、風扇控制(用以控制該運算系統之一風扇)、及與一使用者輸入裝置之互動(諸如進行該運算系統100之一鍵盤的掃描或與一諸如滑鼠、觸碰板、觸碰螢幕等等之指向裝置互動)。該嵌式控制器102可以一微控制器、一應用特定積體電路(ASIC)、一可規劃閘陣列(PGA)、或任何其他類型的可規劃電路來實施。
該嵌式控制器102包括能夠進行該嵌式控制器102之特定任務的一處理電路126。該處理電路126包括硬體電路。在一些實例中,該處理電路126可執行機器可讀指令,諸如為一嵌式控制器韌體(EC韌體)或其他控制器碼之形式。注意該嵌式控制器韌體可最初儲存在該主要非依電 性記憶體104或該次級非依電性記憶體116中,並可載入該嵌式控制器102供執行使用。替代性地,應注意到可在該嵌式控制器102上執行的控制器碼可替代性地為可以機器可讀指令之形式來表示的應用程式軟體。在隨後的討論中,雖然係參照「嵌式控制器韌體」,應注意到本文之技術或機制可應用到其他形式的控制器碼108。
圖2係根據一些實施例之一過程的一流程圖。嵌式控制器102中之處理電路126在處理器106未存取主要非依電性記憶體104之期間(諸如由於該處理器106失能或以其他方式閒置)判定(在步驟202)儲存在該主要非依電性記憶體104中之主要系統韌體107是否受到折損及該嵌式控制器102是否未能恢復受折損之主要系統韌體107(如上文所討論者)。失能的處理器106意指該處理器106處於一電力關閉狀態(無電力提供至該處理器106之主要處理部分)或處於一重置狀態(例如宣告對於該處理器106的一重置信號,該重置信號阻止該處理器106執行機器可讀指令)。
響應於判定該主要系統韌體107係受折損且不可恢復,該處理電路126改變選擇信號122之狀態以致動(在步驟204)切換邏輯108來將次級非依電性記憶體116連接至共享匯流排120並將該主要非依電性記憶體104與該共享匯流排120斷開。
在由該切換邏輯108來連接至該共享匯流排120後,該次級非依電性記憶體116變成可由該處理器106來存取,該處理器106可從該次級非依電性記憶體116擷取冗餘 系統韌體114以在該處理器106執行(在步驟206)。藉由能夠進行從該主要非依電性記憶體104到該次級非依電性記憶體116的切換,使用者容許繼續使用運算系統100,儘管該主要系統韌體107為不可用。
隨後,使用者可被警告已出現失效以避免使用該主要非依電性記憶體104中之主要系統韌體107,並警告使用者運算系統當前正在運行該次級非依電性記憶體116中之冗餘系統韌體114。應安排一服務事件來解決此情形。在此情況下運行時,運算系統未具有額外的保護級別來防備系統韌體之折損,該保護級別係當該次級非依電性記憶體116將冗餘系統韌體提供至該主要非依電性記憶體104中之主要系統韌體時予以備置。因此,若該次級非依電性記憶體116中之系統韌體受到折損,運算系統可能會有失能之風險(因為此時已無冗餘)。
判定(在步驟202)系統韌體是否已受到折損可基於進行該系統韌體之檢驗。檢驗一段碼,諸如系統韌體,可意指密碼式地驗證該段碼未受改變及/或確認該段碼來自一可信賴來源。
在由處理器106執行(來自主要或次級非依電性記憶體之)系統韌體之重新起動的每個例子之前,諸如因為運算系統100之冷重置、從該運算系統100之一低電力狀態回復、一作業系統重新起動等等,該系統韌體之檢驗可由嵌式控制器102來進行。應注意到每當該運算系統100進入一低電力狀態時,該系統韌體也可由該嵌式控制器102檢 驗。在其他實例中,當該處理器106保持供電時,該嵌式控制器102也可檢驗該系統韌體。
該運算系統100之低電力狀態意指該運算系統之一狀態,其中系統100之處理器106及某些其他硬體組件為關閉(例如無電力提供至處理器及某些其他硬體組件之主要處理部分)。在低電力狀態時,電力仍可提供至嵌式控制器102。該運算系統100可在下列任何情況中轉變至一低電力狀態:(1)作為該運算系統100之一冷重置的一部分,其致使系統100電力關閉以供後續電力開啟使用、或(2)作為電力節省程序的一部分,其中在一段時間時期處於不活動狀態後、或響應於偵測到電池電量不足、或響應於使用者或應用程式命令、或其他原因,該運算系統100可從正常操作狀態轉變至睡眠狀態、休眠狀態、或關閉狀態、或(3)在任何其他情況下。
低電力狀態之實例可包括某些先進組態與電力介面(ACPI)狀態,其包括:先進組態與電力介面S3狀態(其為待機或睡眠狀態之形式,其中該運算系統100之系統上下文保留在依電性記憶體中,當該運算系統100之一些組件電力關閉時,該依電性記憶體保持供電);先進組態與電力介面S4狀態(其為休眠狀態之形式,其中該系統上下文保存到持久儲存器,以容許電力從額外的運算系統組件移除,包括依電性記憶體);及先進組態與電力介面S5狀態(其為系統關閉狀態之形式,其中電力已從該運算系統100之更多組件移除)。
在進一步的實例中,嵌式控制器102可響應於運算系統100之一暖重置而進行系統韌體之檢驗,其中該運算系統100無需移除電力到該運算系統100而重新起動。為了容許該嵌式控制器102響應於該暖重置而進行檢驗,當偵測到該暖重置時,該運算系統100可強制轉變至一合適的低電力狀態(諸如上面列出之低電力狀態的某些狀態)。
在其他實例中,嵌式控制器102可在任何時間進行檢驗,即使在運算系統並非處於低電力狀態時。例如,該嵌式控制器102可在處理器為閒置或未存取主要非依電性記憶體104時進行檢驗。在系統韌體被擷取以供處理器執行時,也可「即時」進行由該嵌式控制器102所進行之檢驗。
圖3為根據進一步之實施例之運算系統100的一方塊圖。圖3之運算系統100包括一輸入/輸出(I/O)控制器302,該輸入/輸出控制器302連接於處理器106與共享匯流排120之間。在一些實例中,該輸入/輸出控制器302可為出自Intel公司的一平台控制器集線器(PCH)。該平台控制器集線器可包括各種功能,包括一介接至一圖形子系統之顯示器介面、一介接至可連接各種輸入/輸出裝置之一系統匯流排的系統匯流排介面等等。在其他實例中,可使用其他類型的輸入/輸出控制器。
如圖3中所描繪,嵌式控制器102耦接至一使用者輸入裝置301(例如滑鼠裝置或其他類型的輸入裝置)、一鍵盤302、一風扇303、一電池304、及一電力供應305,以(在該嵌式控制器102中執行之嵌式控制器韌體的控制之下)管 理各個裝置。在該嵌式控制器102中執行之該嵌式控制器韌體可從主要非依電性記憶體104或次級非依電性記憶體116載入。
在一些實例中,主要非依電性記憶體104中之系統韌體107包括一啟動區塊306。該啟動區塊306可包括嵌式控制器韌體307。在其他實例中,該嵌式控制器韌體307可與該系統韌體107分離。同樣地,次級非依電性記憶體116中之次級系統韌體114包括一啟動區塊308及嵌式控制器韌體309。
在圖3之實例中,嵌式控制器102包括密碼硬體312,該密碼硬體312可進行密碼運算,諸如在嵌式控制器韌體及系統韌體之檢驗中所使用者。該密碼硬體312可為組配來進行密碼運算之電路的形式。
該嵌式控制器102進一步包括一唯讀記憶體(ROM)314,該唯讀記憶體314可使用來儲存一啟動載入器316及一加密金鑰318。該加密金鑰318可為使用來進行嵌式控制器韌體(307或309)之檢驗的金鑰(公用金鑰或私用金鑰)。在系統起動期間,該啟動載入器316從該唯讀記憶體314載入以於該嵌式控制器102中執行,以從主要非依電性記憶體104或次級非依電性記憶體116擷取嵌式控制器韌體至該嵌式控制器102之一隨機存取記憶體(RAM)319中。該啟動載入器316可採取措施以確保在該嵌式控制器韌體載入期間除了該嵌式控制器102之外,沒有其他實體具有對共享匯流排120的存取。
為了擷取一嵌式控制器韌體以載入至嵌式控制器102中,啟動載入器316可尋找對於一嵌式控制器韌體影像的一指標(或其他參考),其可儲存於主要非依電性記憶體104或次級非依電性記憶體116中。
所擷取之嵌式控制器韌體係由嵌式控制器102中之檢驗邏輯予以檢驗,其中該檢驗邏輯可包括啟動載入器316中的功能性,該功能性能夠引動密碼硬體以協助進行密碼運算。
從一非依電性記憶體(104或106)所擷取之嵌式控制器韌體的檢驗可於嵌式控制器102之初始化程序期間進行。該嵌式控制器102之初始化程序意指在該嵌式控制器102已重置之後或在該嵌式控制器102之一電力循環之後(其中電力被移除並接著重新施用至該嵌式控制器102),並於該嵌式控制器102第一次起動時所進行的一程序。
一旦檢驗嵌式控制器韌體並將其載入以供於嵌式控制器102上執行,在處理器106所進行之系統韌體的每個重新起動執行之前,該嵌式控制器韌體可檢驗系統韌體(107或114)。
在主要非依電性記憶體104中,一簽章322與嵌式控制器韌體108相關聯,而一簽章324與啟動區塊306相關聯。同樣地,在次級非依電性記憶體116中,一簽章340與嵌式控制器韌體309相關聯,而一簽章342與啟動區塊308相關聯。該簽章322或340係使用於各別的嵌式控制器韌體307或309之檢驗,而該簽章340或342係使用於各別的啟動區塊 306或308之檢驗。在檢驗過程中使用簽章可容許判定各別嵌式控制器韌體或啟動區塊的確實性,及判定各別嵌式控制器韌體或啟動區塊未受到折損。
在一些實施例中,嵌式控制器韌體307或309的檢驗可藉由使用儲存在嵌式控制器唯讀記憶體314中的加密金鑰318解密各別的簽章322或340而實現。解密該簽章產生可與該嵌式控制器韌體之一對應計算值(例如散列值)比較的一各別之值(例如散列值)。若前述之值匹配,則接著該嵌式控制器韌體即被檢驗。同樣的過程也可用於使用各自的數位簽章324或342來檢驗基本輸入/輸出系統啟動區塊306或308。
主要非依電性記憶體104及次級非依電性記憶體116之各者也可儲存與運算系統100之各種方面組配相關的系統資料336或338。例如,該系統資料336或338可包括機器唯一資料、網路介面控制器資料、布局描述符資料等等。
網路介面控制器資料可包括一網路介面控制器之組配資料(其係使用來透過網路進行通訊)。布局描述符資料可包括描述主要非依電性記憶體104及次級非依電性記憶體116之布局及用於輸入/輸出控制器302之組配參數的資訊。
機器唯一資料可意指對於各個特定運算系統為唯一的任何資料或設定。機器唯一資料之實例可包括下列項目的任何或一些組合:產品名稱、產品模型、庫存計量單位(SKU)號(用以識別用於銷售之各別運算系統)、運算系 統之序號、系統或商品追蹤號(用以識別運算系統之系統板)、系統組配識別符(用以識別運算系統之組配)、保證資料(用以描述與運算系統相關聯之保證)、通用唯一識別符(UUID)、基本輸入/輸出系統碼之預設設定等等。前述項目提供作為機器唯一資料之實例;在其他實例中,可提供其他或額外類型的機器唯一資料。
藉由使用依據本案一些實施例之技術或機構,即使在系統發生會阻止主要非依電性記憶體中之系統韌體的恢復之故障或錯誤的情況下,運算系統仍能夠繼續操作。能夠繼續操作的能力不必包括由人類進行的人工介入。
機器可讀指令,諸如可於嵌式控制器102或處理器106中執行的指令,可從一機器可讀或電腦可讀儲存媒體(或數個儲存媒體)載入。
該等儲存媒體可包括含有半導體記憶體裝置之不同形式的記憶體,諸如動態或靜態隨機存取記憶體(DRAM或SRAM)、可抹除及可規劃唯讀記憶體(EPROM)、電子可抹除及可規劃唯讀記憶體(EEPROM)、及快閃記憶體;諸如固定、軟式及可移式碟片之磁碟;包括磁帶之其他數個磁性媒體;諸如光碟(CD)、數位視頻碟片(DVD)之數個光學媒體;或其他類型的儲存裝置。應注意到上述討論到的指令可備置在一個電腦可讀或機器可讀儲存媒體上,或替代性地,可備置在分佈於可能具有多數個節點之大型系統中的多個電腦可讀或機器可讀儲存媒體上。此種電腦可讀或機器可讀儲存媒體或數個媒體被認為是物品(或製造物品)之一部分。物品或製造物品可意指任何經製成 的單一組件或多個組件。該儲存媒體或該等儲存媒體可設置在運行機器可讀指令之機器中,或設置在可從其透過網路下載機器可讀指令以供執行的遠程站點。
在前面的敘述中,闡明了許多細節,以提供本文所討論之標的之理解。然而,本案之實施例可在沒有一些或所有此等細節的情況下實現。其他實施例可包括來自上述討論之細節的修改或變異。附加的申請專利範圍係意圖涵蓋此種修改及變異。
202~206‧‧‧步驟

Claims (15)

  1. 一種供於系統中使用之控制器,包含:一處理電路,該處理電路用以進行下列動作:判定儲存在第一非依電性記憶體中之系統啟動碼是否受到折損且不可恢復,其中該第一非依電性記憶體最初可由該控制器及處理器透過一共享匯流排存取;以及響應於判定該系統啟動碼受到折損且不可恢復,致動切換邏輯組件以將一第二非依電性記憶體連接至該共享匯流排,並將該第一非依電性記憶體與該共享匯流排斷開,其中該第二非依電性記憶體在由該切換邏輯組件連接至該共享匯流排後可由該處理器存取,以從該第二非依電性記憶體擷取冗餘系統啟動碼。
  2. 如請求項1之控制器,其中在致動該切換邏輯組件以將該第二非依電性記憶體連接至該共享匯流排之前,該第二非依電性記憶體係與該共享匯流排隔離。
  3. 如請求項1之控制器,其中在致動該切換邏輯組件以將該第二非依電性記憶體連接至該共享匯流排之後,該第一非依電性記憶體係與該共享匯流排隔離。
  4. 如請求項1之控制器,其中判定該系統啟動碼是否受到折損,係於該系統進入一低電力狀態時或於該系統啟動碼每次在該處理器重新起動之前進行,其中該控制器具有儲存有一加密金鑰之唯讀記憶體。
  5. 如請求項4之控制器,其中判定該系統啟動碼是否受到 折損係使用於該控制器之該加密金鑰。
  6. 如請求項1之控制器,其中該控制器為一嵌式控制器。
  7. 如請求項1之控制器,其中判定該系統啟動碼是否受到折損包括判定一啟動區塊是否受到折損。
  8. 如請求項1之控制器,其進一步包含控制器碼,該控制器碼在該控制器中執行時,致使該控制器進行選自於下列項目之至少一動作:該系統中之電力供應控制、該系統中之熱監測、該系統中之風扇控制、該系統中之電池充電及控制、及與一使用者輸入裝置之互動。
  9. 如請求項1之控制器,其進一步包含檢驗邏輯組件,用以檢驗儲存在該第一非依電性記憶體或該第二非依電性記憶體中之控制器碼。
  10. 如請求項9之控制器,其中該處理電路用以響應於該檢驗而從該第一非依電性記憶體載入該控制器碼,及其中該控制器碼可於該處理電路上執行以進行該判定及該致動。
  11. 一種運算系統,包含:一處理器;一匯流排;連接至該匯流排之切換邏輯組件;一第一非依電性記憶體,用以儲存主要系統啟動碼;一第二非依電性記憶體,用以儲存冗餘系統啟動碼,其中該切換邏輯組件最初用以將該第一非依電性記憶體連接至該匯流排,及其中該處理器最初具有透過該 匯流排對於該主要系統啟動碼的存取;一嵌式控制器,用以進行下列動作:判定儲存在該第一非依電性記憶體中之該主要系統啟動碼是否受到折損且不可恢復;及響應於判定該系統啟動碼受到折損且不可恢復,致動該切換邏輯組件以將該第二非依電性記憶體連接至該匯流排,並將該第一非依電性記憶體與該匯流排斷開,其中該第二非依電性記憶體在由該切換邏輯組件而連接至該匯流排後可由該處理器存取,以從該第二非依電性記憶體擷取該冗餘系統啟動碼以供於該處理器上執行。
  12. 如請求項11之系統,其中該系統啟動碼包括一基本輸入/輸出系統(BIOS)碼之至少一部分。
  13. 如請求項11之系統,其中該嵌式控制器用以在該處理器未存取該第一非依電性記憶體的一時間時期期間判定該系統啟動碼受到折損。
  14. 如請求項11之系統,其中該等第一及第二非依電性記憶體各用以進一步儲存與該系統多個方面的組配相關之系統資料。
  15. 一種系統啟動碼恢復方法,包含下列步驟:由一控制器判定儲存在一第一非依電性記憶體中之系統啟動碼是否因為一系統中的一實體故障而受到折損且不可恢復,其中該第一非依電性記憶體最初可由該控制器及處理器透過一共享匯流排存取,及其中該系 統進一步包括一第二非依電性記憶體,該第二非依電性記憶體最初為可由該控制器存取而不可由該處理器存取的一私用非依電性記憶體;響應於判定該第一非依電性記憶體中之該系統啟動碼受到折損且不可恢復,致動切換邏輯組件以將該第二非依電性記憶體連接至該共享匯流排,並將該第一非依電性記憶體與該共享匯流排斷開;以及在致動該切換邏輯組件之後,在該處理器上執行從該第二非依電性記憶體所擷取的系統啟動碼。
TW103108717A 2013-04-23 2014-03-12 系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器 TWI530790B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/037725 WO2014175862A1 (en) 2013-04-23 2013-04-23 Redundant system boot code in a secondary non-volatile memory

Publications (2)

Publication Number Publication Date
TW201502790A TW201502790A (zh) 2015-01-16
TWI530790B true TWI530790B (zh) 2016-04-21

Family

ID=51792251

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103108717A TWI530790B (zh) 2013-04-23 2014-03-12 系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器

Country Status (5)

Country Link
US (1) US9785596B2 (zh)
EP (1) EP2989579B1 (zh)
CN (1) CN105122262B (zh)
TW (1) TWI530790B (zh)
WO (1) WO2014175862A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2989547B1 (en) 2013-04-23 2018-03-14 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
WO2014175861A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
CN104657233A (zh) * 2015-01-28 2015-05-27 加弘科技咨询(上海)有限公司 一种x86系统中bios引导块的恢复备份方法及备份系统
DE102015108504B4 (de) 2015-05-29 2019-05-02 Fujitsu Client Computing Limited Verfahren zum sicheren Booten eines Computersystems und Computersystem
FR3043228B1 (fr) 2015-11-03 2018-03-30 Proton World International N.V. Demarrage controle d'un circuit electronique
FR3043229B1 (fr) 2015-11-03 2018-03-30 Proton World International N.V. Demarrage securise d'un circuit electronique
US10223217B2 (en) * 2015-11-24 2019-03-05 Ricoh Company, Ltd. Information processing device, method for booting information processing device, and non-transitory recording medium
US9928367B2 (en) * 2015-12-03 2018-03-27 Hewlett-Packard Development Company, L.P. Runtime verification
US10019577B2 (en) * 2016-04-14 2018-07-10 Dell Products, L.P. Hardware hardened advanced threat protection
JP6740789B2 (ja) * 2016-08-03 2020-08-19 富士通株式会社 ストレージ制御装置および記憶装置管理プログラム
US10515218B2 (en) * 2016-10-01 2019-12-24 Intel Corporation Systems, apparatuses, and methods for platform security
CN108399328B (zh) * 2017-02-08 2021-04-27 新唐科技股份有限公司 系统存储器内容认证设备及方法
CN108228387B (zh) * 2017-12-27 2019-11-05 中兴通讯股份有限公司 一种启动控制方法、电子设备以及计算机可读存储介质
US11068599B2 (en) * 2018-12-19 2021-07-20 Dell Products, L.P. Secure initialization using embedded controller (EC) root of trust
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
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
EP3792801B1 (en) * 2019-09-11 2022-11-09 Secure Thingz Limited A processor system
JP6918994B2 (ja) * 2020-01-09 2021-08-11 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および情報処理方法
TWI722852B (zh) * 2020-03-30 2021-03-21 技嘉科技股份有限公司 固態硬碟以及啟動方法
WO2021216046A1 (en) * 2020-04-21 2021-10-28 Hewlett-Packard Development Company, L.P. Bios updates
WO2021242252A1 (en) * 2020-05-29 2021-12-02 Hewlett-Packard Development Company, L.P. Bios configurations via provisioning devices
FR3111441B1 (fr) * 2020-06-10 2022-08-05 Proton World Int Nv Démarrage sécurisé d'un circuit électronique
TWI760805B (zh) * 2020-07-31 2022-04-11 廣達電腦股份有限公司 具有雙重安全啟動之自動駕駛系統
US20220100504A1 (en) * 2020-09-25 2022-03-31 Advanced Micro Devices, Inc. Shared data fabric processing client reset system and method
JP7011697B1 (ja) 2020-10-09 2022-01-27 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および情報処理方法
US20220197746A1 (en) * 2020-12-18 2022-06-23 Advanced Micro Devices, Inc. Combination bios with a/b recovery
US11809876B2 (en) * 2021-04-29 2023-11-07 Dell Products L.P. Trusted platform module protection for non-volatile memory express (NVMe) recovery
US11487621B1 (en) * 2021-04-29 2022-11-01 Dell Products L.P. Linking embedded controller with memory reference code and system bios shadowing
US11803454B2 (en) * 2021-04-30 2023-10-31 Dell Products L.P. Chained loading with static and dynamic root of trust measurements

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2940480B2 (ja) 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
TW480444B (en) 2000-11-29 2002-03-21 Mitac Technology Corp Computer system boot-up method capable of completing the startup procedure even the system BIOS code is damaged
TWI280487B (en) 2004-12-15 2007-05-01 Via Tech Inc Power-on method for computer system with hyper-threading processor
US7340595B2 (en) 2005-01-07 2008-03-04 International Business Machines Corporation Multiplex execution-path system
US7193895B2 (en) 2005-06-24 2007-03-20 Chingis Technology Corporation Redundant memory content substitution apparatus and method
DE102006043636A1 (de) 2006-09-18 2008-03-27 Fujitsu Siemens Computers Gmbh Computersystem und Verfahren zum Aktualisieren von Programmcode
US7613872B2 (en) 2006-11-28 2009-11-03 International Business Machines Corporation Providing core root of trust measurement (CRTM) for systems using a backup copy of basic input/output system (BIOS)
US8190950B2 (en) 2007-12-21 2012-05-29 Atmel Corporation Dynamic column redundancy replacement
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
TWI411959B (zh) * 2008-03-21 2013-10-11 Asustek Comp Inc 具雙開機程式碼區之電腦系統及其啟動方法
US20090248955A1 (en) 2008-03-31 2009-10-01 Satoru Tamada Redundancy for code in rom
TW201007465A (en) 2008-08-13 2010-02-16 Ene Technology Inc A sharable memory architecture of cache in a embedded controller and a method of sharing memory
US8103909B2 (en) 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
TWI386852B (zh) * 2008-10-24 2013-02-21 Wistron Corp 基本輸出入系統之切換系統及其切換方法
TW201017407A (en) 2008-10-31 2010-05-01 Ind Tech Res Inst Nonvolatile data storage system and method thereof
US8151101B2 (en) 2008-11-06 2012-04-03 Lenovo (Singapore) Pte. Ltd. Method, apparatus, and system for quiescing a boot environment
TW201133342A (en) 2010-03-30 2011-10-01 Hon Hai Prec Ind Co Ltd Method for integrating OS into BIOS chip, and method for booting the OS
US8732527B2 (en) * 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method

Also Published As

Publication number Publication date
EP2989579A1 (en) 2016-03-02
CN105122262B (zh) 2018-06-05
WO2014175862A1 (en) 2014-10-30
US9785596B2 (en) 2017-10-10
TW201502790A (zh) 2015-01-16
EP2989579A4 (en) 2016-11-30
US20160055113A1 (en) 2016-02-25
EP2989579B1 (en) 2018-06-06
CN105122262A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
TWI530790B (zh) 系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器
US11520894B2 (en) Verifying controller code
TWI648652B (zh) 修復受危害之系統啓動碼之技術
TWI522838B (zh) 組配系統之技術
CN105308609B (zh) 存储事件数据的系统和方法
CN103718165B (zh) Bios闪存攻击保护和通知
CN105122259B (zh) 控制器和用于检索系统引导代码的系统及方法
EP2989547B1 (en) Repairing compromised system data in a non-volatile memory
CN108292342B (zh) 向固件中的侵入的通知
TW201937366A (zh) 具開機之可信驗證與容錯移轉之計算機系統及方法