JP2019133633A - 電子コンピュータ装置及び方法 - Google Patents

電子コンピュータ装置及び方法 Download PDF

Info

Publication number
JP2019133633A
JP2019133633A JP2018212412A JP2018212412A JP2019133633A JP 2019133633 A JP2019133633 A JP 2019133633A JP 2018212412 A JP2018212412 A JP 2018212412A JP 2018212412 A JP2018212412 A JP 2018212412A JP 2019133633 A JP2019133633 A JP 2019133633A
Authority
JP
Japan
Prior art keywords
firmware image
control circuit
shadow
image
memory
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2018212412A
Other languages
English (en)
Inventor
英哲 張
ying zhe Zhang
英哲 張
坤龍 蔡
Kun Long Cai
坤龍 蔡
文華 駱
wen hua Luo
文華 駱
俊宏 蔡
Chun-Hung Tsai
俊宏 蔡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
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 Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2019133633A publication Critical patent/JP2019133633A/ja
Pending legal-status Critical Current

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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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
    • 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/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/1441Resetting or repowering

Abstract

【課題】ファームウェアイメージの自動回復システム及び方法を開示する。【解決手段】不揮発性メモリにおけるファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成することと、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断することと、シャドウファームウェアイメージを記憶装置から回復させることと、シャドウファームウェアイメージを不揮発性メモリにコピーすることと、を備えるファームウェアイメージの自動回復方法。【選択図】図1

Description

本発明は、ファームウェアの回復方法に関し、特に、コンピュータ装置におけるファームウェアイメージの自動回復システムに関する。
代表的なコンピュータは、例えば、プロセッサー、ベースボードメモリコントローラ、インタフェース部品、メモリ等の様々なハードウェア回路モジュールを含む。コンピュータは、そのプログラミングによって異なる機能を実行させるプログラム命令を書き込む。ファームウェアは、下位制御を装置における特別なハードウェアに提供することができる専門的なプログラム命令である。ファームウェアは、一般的に、例えば、読み出し専用メモリ(Read-only memory)、電気的に消去・書き換え可能な読み出し専用メモリ(Electrically Erasable Programmable Read-Only Memory;EEPROM)又はフラッシュメモリ(Flash memory)のような不揮発性メモリ等の装置に記憶される。ファームウェアは、一般的に、例えば、中央処理装置又はベースボード管理コントローラ(Baseboard Management Controller)のようなマスターチップにより操作される。作業効率を向上させるために、永久記憶装置(Permanent Memory)におけるファームウェアは、マスターチップ(例えば、プロセッサー)がコンピュータにおける部品を制御するための重要な操作命令を読み取る準備ができ(ready)、また快速に読み取れるようにする。
ハードウェア配線回路(hardwired circuit)によるファームウェアは、快速に読み取って実行することができるというメリットがある。従来的に、ハードウェア配線回路の装置のファームウェアをあまり頻繁に取り替えるべきではない。例としては、読み出し専用メモリ(ROM)のような従来のファームウェアメモリ装置に永久回路が取り付けられ、且つ工業で生産された後で取り替えることはできない。最近、ファームウェアは、電気的に消去・書き換え可能な読み出し専用メモリ(EEPROM)のような消去可能な不揮発性メモリ(Erasable non-volatile memory)に記憶されることができるようになる。このようなメモリは、従来のメモリ装置のハードウェア特性を留めるので、ファームウェアを快速に読み取りまた実行することを許可する。しかしながら、消去可能特性を持つメモリは、メモリ装置全体を取り替えずに、ファームウェアの更新やミスの更正を許可する。
コンピュータシステムでは、例えば、中央処理装置(CPU)、ベースボード管理コントローラ(BMC)又はマイクロコントローラユニット(MCU)のマスターチップによってファームウェアを実行することで、システム全体を制御する。ファームウェアは、コンピュータシステムの正常な作業を確保するように設計される。「ファームウェアイメージ(firmware image)」という用語は、不揮発性メモリに記憶されたファームウェアプログラムコードのコピーとして定義される。異常イベントでは、例えば、電源投入シーケンスが中断になると、マスターチップは、この異常イベントを記録して、潜在の故障を使用者に知らせる。ある場合、異常イベントにより、ファームウェアイメージが崩壊することがある。例えば、ファームウェアイメージがマスターチップにロードされる場合、電力損失の状況が発生すると、更新されたファームウェアイメージが正確にロードされず、又は非確定のファームウェアイメージがロードされてしまう。この場合、マスターチップは、ファームウェアイメージを読み取らず成功に起動できないので、システム操作を実行することはできない。
従って、電力損失の場合、ファームウェアイメージの自動回復を可能にするシステムが望まれている。また、ファームウェアイメージの自動回復のために、ファームウェアイメージが他のメモリに記憶されることを可能にするシステムが望まれている。更に、ファームウェアイメージを更新する場合にファームウェアイメージの自動的な記憶やバックアップを可能にするシステムが望まれている。
なお、本発明に関して記載すべき先行技術文献はない。出願人が知っている先行技術が文献公知発明に係るものではないからである。
1つの開示例は、不揮発性メモリにおけるファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成する工程と、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断する工程と、記憶装置からシャドウファームウェアイメージを回復させる工程と、シャドウファームウェアイメージを不揮発性メモリにコピーする工程と、を備えるコンピュータ装置のファームウェアイメージの回復方法である。
別の開示例は、ファームウェアイメージを記憶する不揮発性メモリと、ファームウェアイメージを実行するマスターチップと、シャドウファームウェアイメージを記憶する記憶装置と、不揮発性メモリのファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成することと、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断することと、記憶装置からシャドウファームウェアイメージを回復させることと、シャドウファームウェアイメージを不揮発性メモリにコピーすることと、を行う制御回路と、を備える電子コンピュータ装置である。
上記は、公開の全ての実施例又は本開示の全ての方面を示すためのものではない。それに対して、前記説明は、本明細書で述べられるある新規性の方面や技術特徴の例を提供するものだけである。添付図面及び特許請求の範囲に合わせると、下記で本発明の代表的な実施例やモードを詳しく説明し、本発明の上記特徴やメリット、及び他の特徴やメリットが明らかになる。
添付図面に合わせて、下記で説明される例示的な実施例を参照すれば、本開示は、容易に理解される。
ファームウェアイメージ自動回復システムを有するコンピュータ装置の例示的なブロック図である。 図1におけるシステムの電源起動過程を説明する流れ図である。 コンピュータ装置によりシャドウファームウェアイメージの回復を実行する流れ図である。 コンピュータ装置によりファームウェアイメージの回復を実行する流れ図である。 図1における制御回路によりシャドウファームウェアイメージの作成ルーチンを実行する流れ図である。 図1における制御回路によりファームウェアイメージの更新ルーチンを実行する流れ図である。 図1における制御回路が記憶装置からファームウェアイメージを回復させるルーチンの流れ図である。 本開示は、様々な修正や取り替え形態を許可し、且つある代表的な実施例が既に添付図面における例により公開され、本明細書で詳しく説明される。しかしながら、理解すべきなのは、本発明は、公開された特定形態を制限するためのものではない。それに対して、本開示は、添付の特許請求の範囲により限定される精神や範囲内の全ての修正や、等同物、取り替え提案を含む。
本発明は、様々な異なる形態で実施されてよい。代表的な実施例を全て図面で示し、且つ詳しく説明する。本開示は、本発明の原理の例や説明であるが、本開示の他の方面の説明の実施例を制限するためのものではない。これについては、例えば、要約書、概要及び詳しい説明部分で公開された元素及び制限(しかし、特許請求の範囲に明確に述べられていない)は、別個に又は集合的な示唆、推断又は他の形態によって請求項に合併されるべきではない。詳しく説明するために、明確に否定されない限り、単数は複数を含むが、逆も同様である。また、「含む」という語彙は、「含むがそれに限定されない」という意味である。また、「約」、「殆ど」、「基本的に」、「近似」等の近似な語彙は、本明細書で「接近」又は「3〜5%内にある」又は「認められる製造公差内にある」又はその如何なる論理的組み合わせを示すことに用いられることができる。
図1は、ファームウェアイメージの自動回復システムを備える例示的なコンピュータ装置100のブロック図である。コンピュータ装置100は、中央処理装置(CPU)110と、ベースボード管理コントローラ(BMC)112と、を備える。この例において、自動回復システムは、制御集積回路120により操作される。システムバス(System Bus)は、装置部品と中央処理装置110、ベースボード管理コントローラ112及び制御集積回路120等のマスターチップとの間のデータ及びコマンドの交換を可能にする。ファームウェアイメージ(firmware image)は、永久記憶装置、又は電気的に消去・書き換え可能な読み出し専用メモリ(EEPROM)130のような不揮発性メモリに記憶されてよい。制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ(EEPROM)130と中央処理装置(CPU)110との間で信号を発信することを選択するように、マルチプレクサ(MUX)132を制御することができる。制御回路120は、記憶装置134に結合される。記憶装置134は、例えば、フラッシュメモリ(Flash Memory)又はハードディスクドライブ(Hard Disk Drive)のような永久記憶装置であってよい。この例において、記憶装置134は、元々EEPROM130に記憶されるファームウェアイメージのコピーを記憶することができる。記憶されるコピーは、シャドウファームウェアイメージ(shadow firmware image)と呼ばれる。この例において、プラットフォームコントローラセンター(Platform Controller Hub;PCH)136は、中央処理装置110の部品である。或いは、プラットフォームコントローラセンター136は、中央処理装置110から独立した独立回路であってもよい。
制御回路120は、内部メモリ(internal memory)140を含む。内部メモリ140は、完全的に制御回路120内に含まれる。内部メモリ140は、制御回路120の操作に有利であるデータを快速に読み取ることを許可する。内部メモリ140は、制御回路120による装置100の状態に対する判断を許可できる一連の状態ビット(status bits)を含む。内部メモリ140に記憶される状態ビットは、電源確認ビット142、チップ異常ビット144、イメージ異常ビット146、イメージ同期ビット148及びファームウェア更新ビット150を含む。例えば、中央処理装置110又は制御回路120のマスターチップは、電源確認ビット142を設定して、装置100のパワーオン(power on)が正常であるかを制御回路120に知らせる。チップ異常ビット144は、電気的に消去・書き換え可能な読み出し専用メモリ130に記憶されるファームウェアイメージが正確であるが、マスターチップが正常にパワーオンにされていないことを指示する。イメージ異常ビット146は、マスターチップが正常にパワーオンにされないことで電気的に消去・書き換え可能な読み出し専用メモリ130に記憶されるファームウェアイメージが不正確になることを指示する。イメージ同期ビット148は、電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージと、記憶装置134におけるシャドウファームウェアイメージとが同一であるかを指示する。この例において、イメージ同期ビット148における「1」は、記憶装置134におけるシャドウファームウェアイメージと、電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージとが同一であることを指示する。イメージ同期ビット148における「0」は、記憶装置134におけるシャドウファームウェアイメージと、電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージとが異なることを示す。例としては、電気的に消去・書き換え可能な読み出し専用メモリ130に記憶されるファームウェアイメージが更新されるので、ファームウェアの更新によりイメージ同期ビット148が「0」に設定されるようになる。ファームウェアイメージ更新ビット150における「1」は利用可能な更新があることを示すが、「0」は利用可能な更新がないことを示す。
自動回復システムの機能的部品は、制御回路120、電気的に消去・書き換え可能な読み出し専用メモリ130、中央処理装置110、ベースボード管理コントローラ112、記憶装置134、プラットフォームコントローラセンター136及び内部メモリ140を含む。この例において、制御回路120は、自動回復機能の全体を監視する。
ファームウェアイメージの自動回復過程の操作形態は、4つのルーチン(routine)を備える。第一、制御回路120は、パワーオン検査ルーチンを行う。パワーオン検査ルーチンによって装置100の電源が正常に動作するかを確認する。第二、その後で、制御回路は、イメージシャドウルーチンを行う。イメージシャドウルーチンによって電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージをシャドウファームウェアイメージとして記憶装置134にバックアップする。その後で、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130のイメージ更新ルーチンを実行する。第三、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130のファームウェアが更新されるかを検出する。最後、制御回路120は、イメージ回復ルーチンを行い、シャドウファームウェアイメージを電気的に消去・書き換え可能な読み出し専用メモリ130にコピーすることで、電気的に消去・書き換え可能な読み出し専用メモリ130で壊れた如何なるファームウェアイメージを回復することができる。或いは、中央処理装置110は、自動回復処理の機能を行う。ベースボード管理コントローラ112のような他のマスターチップは、自動回復過程の機能を実行することができる。
図2は、図1に示す装置100のパワーオン機能を示す流れ図である。装置100がパワーオンにされると、通電状態は、交流電源が安定であることを示す。制御回路120は、電源投入シーケンス及びウォッチドッグタイマープログラム(watch dog timer routine)200を起動させる。ウォッチドッグタイマープログラムと中央処理装置110のベーシックインプット/アウトプットシステム(Basic Input/Output System;BIOS)とは協力して計時する。ウォッチドッグタイマープログラムは、時間値をトリガーする。下記のように、ウォッチドッグタイマーの値が、電源の支度が整ったことを示した場合、プラットフォームコントローラセンター136の電源に対する起動計数ロジックの準備が既にでき、且つ電気的に消去・書き換え可能な読み出し専用メモリ130からのファームウェアイメージの読み取りに成功し、プラットフォームコントローラセンター136が電源確認ビット142を「1」として制御回路120に書き込む。システム電源が起動されると、ウォッチドッグタイマープログラムは、計時カウンタの計数を開始する。計時カウンタの計数がウォッチドッグタイマーの値より小さく、且つ電源確認ビット142が電源確認ビット142を「1」として検査すると、プラットフォームコントローラセンターの電源が正常に動作し、シャドウファームウェアイメージが作成されることを示す。電源確認ビット142が「0」であると、プラットフォームコントローラセンターの電源が異常であることを示す。その後、システムは、ファームウェアイメージを回復させる。
従って、制御回路120は、内部メモリ140における電源確認ビット142を検査する(202)。「0」は、電源確認ビット142において、中央処理装置110の通電が失敗になることを示す。これは、中央処理装置110が既に失効になり、或いは電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージが既に損なわれたことを示す。その後、制御回路120は、イメージ同期ビット148が「1」であるかを検査する(204)。工程202において電源確認ビット142が「1」であれば、制御回路120は、中央処理装置110が既に通電されたと確認する。制御回路120は、続けてファームウェアのイメージシャドウルーチンをアクティブにする(206)。以下、図4を参照してファームウェアのイメージシャドウルーチンをより詳しく検討する。従って、下記のように、中央処理装置110の電源が正常に作動し且つ読み取られるファームウェアイメージが完成になると、制御回路120は、装置100を待機モードに設定し且つイメージシャドウルーチンを実行する。
イメージ同期ビット148の検査結果が「1」ではないと(204)、電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージが損なわれることを示すので、制御回路120は、イメージ異常ビット146(図1参照)を「1」に設定する。その後、制御回路120は、図4に詳しく述べられるイメージ回復流れを起動させる。イメージ回復流れの処理が終了すると、制御回路120は、再び、電源確認ビット142を検査することに戻る(202)。イメージ同期ビット148の検査結果が「1」であると、中央処理装置110に故障が発生したことを示すので、制御回路120は、チップ異常ビット144を「1」に設定する(210)。この例において、装置100は、マスターチップ故障を使用者に知らせる。
図3は、中央処理装置110、ベースボード管理コントローラ112及び制御回路120(図1参照)により過程を実行する流れ図である。シャドウファームウェアイメージを作成するために、図2に示す工程206を参照されたい。装置100がパワーオンにされる場合、通電状態は、交流電源が安定であることを示す(300)。制御回路120は、電源投入シーケンス及びウォッチドッグタイマー機能を起動させる(302)。中央処理装置110が成功に通電されると、電源及び電源投入シーケンスが成功になり、電気的に消去・書き換え可能な読み出し専用メモリ130からファームウェアイメージを取出する。ファームウェアイメージが成功に取得されると、中央処理装置110は、内部メモリ140における(図1参照)電源確認ビット142を「1」に設定する(304)。中央処理装置110は、バスによって制御回路120にコマンドを発信することで、電源確認ビット142を設定する。
制御回路120は、ウォッチドッグタイマープログラムを実行し、及び計時(time-out)を実行する。制御回路120は、電源確認ビット142が「1」に設定されたかを検査する。その後、制御回路120は、装置100がイメージシャドウルーチンを起動させるように待機モードになるまで、持続的に待つ(306)。装置100が待機モードになると、制御回路120は、制御回路120がイメージ検査過程を起動させていることをベースボード管理コントローラ112に知らせる(308)。ベースボード管理コントローラ112は、ベースボード管理コントローラ112の回復機能を無効(disable)にするというコマンドをプラットフォームコントローラセンター(PCH)136に発信する(310)。
その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリのオーナーを制御回路120に切り替える(312)。その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130に記憶されたファームウェアイメージのチェックサム(Checksum)と記憶装置134に記憶されるファームウェアイメージのチェックサム(Checksum)とを比較する(314)。制御回路120は、更に、イメージ同期ビット148(図1参照)が「0」に設定されたかを判断し、「0」はイメージ同士が同期されていないことを指示する。チェックサムが異なり、或いはイメージ同期ビット148が「0」に設定されると、シャドウイメージを作成する必要がある。何れの場合で、制御回路120は、シャドウイメージルーチンを起動させる(316)。シャドウイメージルーチンは、電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージを記憶装置134にコピーする。シャドウイメージルーチンを図5で更に詳しく説明する。シャドウイメージルーチンが完成すると、制御回路120は、イメージの更新が完成したことをベースボード管理コントローラ112に知らせる(318)。その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130のオーナーを中央処理装置110に切り替える(320)。ベースボード管理コントローラ112は、ベースボード管理コントローラ112の回復機能を起動させるというコマンドをプラットフォームコントローラセンター136に発信する(322)。その後、制御回路120は、電源シーケンスを起動させる(324)。ベースボード管理コントローラ112は、検索されたファームウェアイメージを電気的に消去・書き換え可能な読み出し専用メモリ130に記憶し戻ろうとするように、電気的に消去・書き換え可能な読み出し専用メモリ130を動態的に設定する。(326)。電気的に消去・書き換え可能な読み出し専用メモリ130におけるファームウェアイメージが既に記憶装置134にコピーされたことを確認することで、記憶装置134におけるシャドウファームウェアイメージが更新及び反映される。
図4は、中央処理装置110、ベースボード管理コントローラ112及び制御回路120(図1参照)によりファームウェアイメージを回復させる過程の流れ図である。装置100(図1参照)がパワーオンにされる場合、通電状態は、交流電源が安定であることを指示する(400)。制御回路120は、電源投入シーケンス及びウォッチドッグタイマープログラムを開始させる(402)。中央処理装置110は、電気的に消去・書き換え可能な読み出し専用メモリ130からファームウェアイメージを取出してみる(404)。取回の試みが失敗になったら、制御回路120により実行されるウォッチドッグタイマープログラムにより、ベーシックインプット/アウトプットシステム(BIOS)による計時が取り消される。制御回路120は、判断電源確認ビット142が「0」であるかを検査し、「0」であれば、電源が正常状態ではないことを指示する。制御回路120は、装置100がイメージ回復流れを起動させるように待機モードになるまで待つ(406)。
一旦、装置100が待機モードになると、制御回路120は、制御回路120がイメージ検査流れを起動させていることをベースボード管理コントローラ112に知らせる(408)。ベースボード管理コントローラ112は、ベースボード管理コントローラ112の回復機能のコマンドを無効にするというコマンドを発信する(410)。
その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130のオーナーを制御回路120に切り替える(412)。制御回路120は、イメージ回復ルーチンを起動させる(414)。イメージ回復ルーチンは、記憶装置134からファームウェアイメージを電気的に消去・書き換え可能な読み出し専用メモリ130にコピーする。イメージ回復ルーチンについては、図7で詳しく説明する。イメージ回復ルーチンが完成すると、制御回路120は、イメージ回復ルーチンが完成したことをベースボード管理コントローラ112に知らせる(416)。その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130のオーナーを中央処理装置110に切り替える(418)。ベースボード管理コントローラ112は、回復機能を起動させるというコマンドを発信する(420)。その後、制御回路120は、電源シーケンス及びウォッチドッグタイマープログラムを起動させる(422)。ベースボード管理コントローラ112は、電気的に消去・書き換え可能な読み出し専用メモリを動態的に設定して、電気的に消去・書き換え可能な読み出し専用メモリ130がファームウェアイメージを記憶するように指示する(424)。
その後、プラットフォームコントローラセンター136は、パワーオンルーチンを開始し、ウォッチドッグタイマープログラムを起動させる。プラットフォームコントローラセンター136は、電源が中央処理装置110に通電するように指示し、電気的に消去・書き換え可能な読み出し専用メモリ130からイメージを成功に取り戻す。その後、中央処理装置110は、電源確認ビット142(図1参照)に「1」を書き込む(426)。制御回路120は、電源確認ビット142が「1」に設定されることを検査する。その後、制御回路120は、イメージ同期ビット148を「1」に設定する(428)。
図5は、制御回路120(図1参照)によりシャドウファームウェアイメージの作成ルーチンを実行する流れ図である。まず、制御回路120は、ウォッチドッグタイマープログラムの機能を起動させることで、電源投入シーケンスを起動させる(500)。その後、制御回路120は、内部メモリ140(図1参照)における初回のシステム起動ビット152が「1」に設定されたかを検査する(502)。初回のシステム起動ビット152が「1」に設定されないと、制御回路120は、イメージ同期ビット148が「1」に設定されたかを検査する(504)。イメージ同期ビット148が「1」に設定されていないと、制御回路120は、図6に詳しく説明される自動回復ルーチンを起動させる(506)。
工程502において、制御回路120は、初回のシステム起動ビット152が「1」に設定されると判断すると、装置100が待機電源モードになるかを検査する(508)。装置100が待機電源モードにならないと、制御回路120は、続けて装置100が待機電源になるかを検査する(508)。制御回路120は、装置100が既に待機電源モードになったと判断した後で、電源シーケンスを保持するために、マルチプレクサ132(図1参照)によって信号を発信する(510)。工程504において、イメージ同期ビット148が「1」に設定されると、制御回路120は、また、電源シーケンスを保持するためにマルチプレクサ132によって信号を発信する(510)。その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130に記憶されたファームウェアイメージのシャドウコピーを作成する。ファームウェアイメージのシャドウコピーは、記憶装置134に記憶される(512)。一旦、ファームウェアイメージのシャドウコピーの作成が完成すると、制御回路120は、イメージ同期ビット148を「1」に設定する。制御回路120は、更に、マルチプレクサ132によって信号を発信して、制御回路120から電気的に消去・書き換え可能な読み出し専用メモリ130のオーナーを解除する。制御回路120は、また、電源シーケンスを解除する(514)。
図6は、制御回路120(図1参照)がEEPROM130に記憶されるファームウェアイメージの更新ルーチンを実行する流れ図である。ファームウェアイメージ又はファームウェアイメージを更改する場合、このルーチンは実行される。中央処理装置110は、制御回路120によって内部メモリ140におけるファームウェア更新ビット150を「1」に設定し、ファームウェア更新ビット150が「1」であると、利用可能な更新があることを指示する(600)。制御回路120は、更に、内部メモリ140におけるイメージ同期ビット148を「0」に設定する。その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリ130に記憶されたファームウェアイメージを更新し始める(602)。従って、更新されたファームウェアイメージは、電気的に消去・書き換え可能な読み出し専用メモリ130にコピーされる。ファームウェアイメージの更新が完成すると、中央処理装置110は、電源シーケンスを解除するために、制御回路120のビットを設定する(604)。
中央処理装置110は、内部メモリ140に通電ビットが設定されたかを検査する(606)。通電ビットが設定されていないと、中央処理装置110は、電源シーケンスが更新されたファームウェアイメージにより使用されていないことを制御回路120に指示するために、電源確認ビット142を「0」に設定する(608)。通電ビットが設定されると、中央処理装置110は、電気的に消去・書き換え可能な読み出し専用メモリ130における更新によってファームウェアイメージが成功に通電されることを指示するために、電源確認ビット142(図1参照)を「1」に設定する(610)。その後、制御回路120は、イメージ同期ビット148の検査結果に基づいて、上記図5に記載のシャドウイメージ処理を実行するかを判断する(512)。上記図5に示すように、イメージ同期ビット148が「0」に設定されると、制御回路120は、シャドウイメージ処理を実行するために、システムの直流電源がオフされるまで待つ。
図7は、制御回路120(図1参照)が記憶装置134からファームウェアイメージを自動回復させるようにする過程である。従って、ファームウェアイメージが電気的に消去・書き換え可能な読み出し専用メモリ130において壊れたと、システムは、記憶装置134からファームウェアイメージを自動的に回復させることができる。中央処理装置110(図1参照)は、交流電源がオンにされたかを判断する(700)。システムは、交流電源がオンにされたかを判断した後で、制御回路120が通電されたかを判断し検査する(702)。制御回路120が通電されていないと、中央処理装置110は、再び、制御回路120が通電されたかを判断することを続ける(702)。制御回路120が通電されると、CPU110は、バスによって電源確認ビット142を「1」に設定する(704)。他の何れの場合にも、電源確認ビット142が「0」に設定される。その後、制御回路120は、電源確認ビット142が「1」に設定されたかを検査する(706)。電源確認ビット142が「0」に設定されると、通電が失敗になり、且つ制御回路120は、再び、電源確認ビット142を検査することを続ける。電源確認ビット142が「1」に設定されると、制御回路120は、イメージ同期ビット148が「0」に設定されたかを検査する(708)。イメージ同期ビット148が「1」に設定されると、制御回路120は、チップ異常ビット144を「1」に設定する(710)。
工程708においてイメージ同期ビットが「0」であれば、制御回路120は、マルチプレクサ132に信号を発信して、読み取り/書き込み軌跡を選択し、電源投入シーケンスを保持する(712)。その後、制御回路120は、記憶装置134からファームウェアイメージを回復して、電気的に消去・書き換え可能な読み出し専用メモリ130にコピーする(714)。一旦、ファームウェアイメージの回復が電気的に消去・書き換え可能な読み出し専用メモリ130で完成されると、制御回路120は、イメージ同期ビット148を「1」に設定する(716)。その後、制御回路120は、電気的に消去・書き換え可能な読み出し専用メモリのオーナーを解除し、電源シーケンスを解除するように、信号をマルチプレクサ132に発信する。
この例において、図5、図6及び図7におけるルーチンの読み取り可能な命令コンピュータは、(a)プロセッサー、(b)コントローラ、及び/又は(c)1つ又は複数の他の適切な処理装置のような実行可能なアルゴリズムを含むコンピュータである。このアルゴリズムは、フラッシュメモリ、CD-ROM、フロッピーディスク(Floppy Disk)、ハードディスクドライブ、デジタルビデオ(通用)ディスク(DVD)又は他の記憶装置のような、有形メディアのソフトウェアに記憶にされるように達成されてよい。しかしながら、本分野又は他の技術者であれば、アルゴリズム全体且つ/又は他の部分が取り替え可能なアルゴリズム実行装置は、プロセッサー以外の装置で実行し、及び/又は周知の形態でファームウェア又は既知のハードウェアで達成させることで(例えば、特定用途向け集積回路(Application Specific Integrated Circuit;ASIC)、プログラマブルロジックデバイス(programmable logic device;PLD)、フィールドプログラマブルロジックデバイス(field-programmable logic device;FPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array;FPGA)、個別論理等)実現することができることは、容易に理解できる。例としては、インタフェースの如何なる又は全部の部品は、ソフトウェア、ハードウェア及び/又は固体によって達成されてよい。そして、図5、図6及び図7の流れ図に示すある又は全部のコンピュータの読み取り可能な命令は、手動で達成されてもよい。また、図5、図6及び図7に示す流れ図を参照すると、例におけるアルゴリズムが説明されるが、本分野又は他の技術者であれば、他の数多くの方法で例におけるコンピュータの読み取り可能な命令を達成することができることは、容易に理解できる。例えば、ブロックの実行順位を変更し、及び/又は説明されるあるブロックを変更、除去し又は組み合わせてもよい。
本明細書で使用する「部品」、「モジュール」、「システム」等の用語は、一般的に、コンピュータ関連エンティティ、ハードウェア(例えば、回路)、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は1つ以上の特定の機能を有する操作機械のエンティティを指す。例えば、部品は、プロセッサー(例えば、データ信号プロセッサー)、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び/又はコンピュータであってもよいが、これらに限定されない。説明として、コントローラ上で動作するアプリケーション及びコントローラは、何れも部品であってもよい。1つ又は複数の部品は、プログラム及び/又は実行スレッド内に存在してもよく、部品は、1つのコンピュータに配置されてもよく、及び/又は2つ以上のコンピュータの間に分散されてもよい。また、「装置」は、ハードウェアが特別に設計される形態、ハードウェアが特定な機能を実行するようにするソフトウェアを実行させるために専門的に製造された汎用ハードウェア、ソフトウェアがコンピュータ可読インタフェースに記憶されるもの又はそれらの組み合わせであってよい。
コンピュータ装置は、代表的には、コンピュータ可読媒体及/又は通信媒体を含むことができる様々な媒体を備え、本明細書で2つの用語は互いに異なり、以下のように使用されることができる。コンピュータ可読媒体は、コンピュータによってアクセス可能な任意の利用可能な記憶媒体であってもよく、一般的に非一時的であり、揮発性及び不揮発性媒体、取外し可能および取外し不可能媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ可読命令、プログラムモジュール、構造化データ又は非構造化データのような情報を記憶するための任意の方法又は技術との組み合わせを実現することができる。コンピュータ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、及び他の記憶技術、CD−ROMドライブ、デジタル多用途ディスクプレーヤ(DVD)又は他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、或いは所望の情報を格納するために使用される他の有形及び/又は非一時的媒体を含むが、これらに限定されない。コンピュータ可読媒体は、媒体による情報を記憶するための様々な動作に対処するために、アクセスニーズ、クエリ、又は他のデータ検索プロトコルのような、1つ又は複数のローカル又はリモートコンピューティング装置を介してアクセスすることができる。
本明細書において、本文で冠詞について特に限定しない限り、「一つ」と「前記」は、単一又は複数のものを指してよい。更に理解すべきなのは、本明細書に用いる「備える」、「含む」、「有する」及び類似な語彙は、記載される特徴、領域、整数、工程、操作、部品と/又は部品を明らかに示すが、述べられる又は別の1つ又は複数の他の特徴、領域、整数、工程、操作、部品、と/又はそれらの群を排除しない。
別に定義されない限り、本明細書に用いるすべての語彙(技術及び科学用語を含む)は、当業者に理解される一般的な意味を有する。更に、上記の語彙は、普通の常用の辞典における定義は、本明細書の内容において本発明の関連分野と一致である意味として理解される。特に明確に定義されない限り、これらの語彙は、理想化又はあまり正式的な意味に解釈されるべきではない。
以上、本開示の様々な実施例について詳細に説明したが、それらは例示にすぎず、限定ではないことを理解されたい。本開示の精神又は範囲から逸脱しない限り、本明細書の開示に基づいて、開示された実施例に多くの修正を加えることができる。従って、本開示の幅及び範囲は、上記の実施例のいずれによっても制限されるべきではない。反対に、本開示の範囲は、添付の特許請求の範囲及びそれらの等価物によって定義されるべきである。
本発明では、1つ又は複数の実施形態を説明したが、本明細書及び添付図面を読んで理解した後で、本分野の他の技術者は、等同の変更や修正を想到することもできる。また、本発明の特定な特徴の1つのみが公開される可能性があるが、このような特徴は他の実施形態の1つ又は複数の他の特徴と組み合わせてもよく、これは如何なる既定又は特定な適用に対しては所望及び有利なものである。
100 コンピュータ装置
110 中央処理装置
112 ベースボード管理コントローラ
120 制御回路
130 電気的に消去・書き換え可能な読み出し専用メモリ
132 マルチプレクサ
134 記憶装置
136 プラットフォームコントローラセンター
140 内部メモリ
142 電源確認ビット
144 チップ異常ビット
146 イメージ異常ビット
148 イメージ同期ビット
150 ファームウェア更新ビット
200〜210、300〜326、400〜428、500〜514、600〜612、700〜714 工程

Claims (10)

  1. 不揮発性メモリにおけるファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成する工程と、
    ファームウェアイメージに影響を与えた異常イベントがあるかを判断する工程と、
    前記記憶装置から前記シャドウファームウェアイメージを回復させる工程と、
    前記シャドウファームウェアイメージを不揮発性メモリにコピーする工程と、
    を備えるコンピュータ装置におけるファームウェアイメージの回復方法。
  2. 前記不揮発性メモリにおける前記ファームウェアイメージを更新する工程と、
    前記シャドウファームウェアイメージが前記ファームウェアイメージと同一であるかを判断する工程と、
    前記不揮発性メモリにおける更新された前記ファームウェアイメージで前記記憶装置における前記シャドウファームウェアイメージを置き換える工程と、
    を更に備える請求項1に記載の方法。
  3. 前記シャドウファームウェアイメージが前記ファームウェアイメージと同一であるかを判断する場合、前記シャドウファームウェアイメージのチェックサム及び前記ファームウェアイメージのチェックサムを判断する請求項2に記載の方法。
  4. シーケンスに基づいてマスターチップに通電する工程と、
    前記コンピュータ装置を操作するために、前記マスターチップによって前記ファームウェアイメージを取得する工程と、
    更に備える請求項1〜3の何れか1項に記載の方法。
  5. 前記マスターチップは、中央処理装置、ベースボード管理コントローラ、又はマイクロコントローラユニットである請求項4に記載の方法。
  6. 前記異常イベントは、前記マスターチップの電源不足である請求項4又は5に記載の方法。
  7. 前記不揮発性メモリは、電気的に消去・書き換え可能な読み出し専用メモリである請求項1〜6の何れか1項に記載の方法。
  8. 制御回路によって前記シャドウファームウェアイメージの回復を実行し及び前記不揮発性メモリにおける前記シャドウファームウェアイメージをコピーする請求項1〜7の何れか1項に記載の方法。
  9. 前記制御回路は、異常イベントを指示する内部ビット及び前記シャドウファームウェアイメージと前記ファームウェアイメージとが異なることを指示する内部ビットを含む内部メモリを備える請求項8に記載の方法。
  10. ファームウェアイメージを記憶するための不揮発性メモリと、
    前記ファームウェアイメージを実行するためのマスターチップと、
    シャドウファームウェアイメージを記憶するための記憶装置と、
    前記不揮発性メモリの前記ファームウェアイメージから前記記憶装置における前記シャドウファームウェアイメージを作成することと、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断することと、前記記憶装置から前記シャドウファームウェアイメージを回復させることと、前記シャドウファームウェアイメージを前記不揮発性メモリにコピーすることと、を行うための制御回路と、
    を備える電子コンピュータ装置。
JP2018212412A 2018-02-01 2018-11-12 電子コンピュータ装置及び方法 Pending JP2019133633A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/886,425 US10395038B2 (en) 2018-02-01 2018-02-01 System and method for automatic recovery of firmware image
US15/886,425 2018-02-01

Publications (1)

Publication Number Publication Date
JP2019133633A true JP2019133633A (ja) 2019-08-08

Family

ID=63787693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018212412A Pending JP2019133633A (ja) 2018-02-01 2018-11-12 電子コンピュータ装置及び方法

Country Status (5)

Country Link
US (1) US10395038B2 (ja)
EP (1) EP3522021A1 (ja)
JP (1) JP2019133633A (ja)
CN (1) CN110109682A (ja)
TW (1) TW201935251A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020121109A1 (de) * 2019-09-20 2021-03-25 Samsung Electronics Co., Ltd. Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen
WO2021154200A1 (en) * 2020-01-27 2021-08-05 Hewlett-Packard Development Company, L.P. Firmware corruption recovery
US11099838B1 (en) * 2020-02-26 2021-08-24 Quanta Computer Inc. Method and system for recovery for custom integrated circuit
US20200226260A1 (en) * 2020-03-27 2020-07-16 Intel Corporation Firmware resiliency mechanism
KR20230068824A (ko) * 2021-11-11 2023-05-18 삼성전자주식회사 스토리지 장치, 이에 대한 동작 방법 및 메모리 시스템

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5878256A (en) * 1991-10-16 1999-03-02 International Business Machine Corp. Method and apparatus for providing updated firmware in a data processing system
US6337954B1 (en) * 1993-01-28 2002-01-08 Nikon Corporation Camera having a display unit including multiple display areas and a connector mounted parallel to said multiple display areas
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
JP3853581B2 (ja) * 2000-08-22 2006-12-06 株式会社デジタル 制御装置、および、そのプログラムが記録された記録媒体
US7055148B2 (en) * 2000-12-07 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for updating firmware
US6904457B2 (en) * 2001-01-05 2005-06-07 International Business Machines Corporation Automatic firmware update of processor nodes
JP2004054616A (ja) * 2002-07-19 2004-02-19 Hitachi Ltd ファームウェア自動修復機能を有する情報処理装置
US7318151B1 (en) * 2004-11-04 2008-01-08 Network Appliance, Inc. Method and system for firmware management
US7996829B2 (en) * 2006-07-31 2011-08-09 Hewlett-Packard Development Company, L.P. Managing software revisions for servers in an infrastructure
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8214653B1 (en) * 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8601170B1 (en) * 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
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 鸿富锦精密工业(深圳)有限公司 基板管理控制器恢复系统及其使用方法
US8881308B2 (en) * 2012-09-12 2014-11-04 GM Global Technology Operations LLC Method to enable development mode of a secure electronic control unit
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US9921915B2 (en) 2015-10-16 2018-03-20 Quanta Computer Inc. Baseboard management controller recovery
CN106814968B (zh) * 2015-11-27 2020-03-17 群联电子股份有限公司 存储器管理方法与系统及其存储器存储装置
US10101928B2 (en) * 2016-02-19 2018-10-16 Dell Products L.P. System and method for enhanced security and update of SMM to prevent malware injection
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices

Also Published As

Publication number Publication date
US20190236277A1 (en) 2019-08-01
US10395038B2 (en) 2019-08-27
TW201935251A (zh) 2019-09-01
EP3522021A1 (en) 2019-08-07
CN110109682A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
JP2019133633A (ja) 電子コンピュータ装置及び方法
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
JP5909264B2 (ja) セキュア・リカバリ装置及び方法
TWI501253B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
US9286052B1 (en) Upgrading software on a pair of nodes in a clustered environment
JP6850331B2 (ja) マルチノードストレージシステムにおけるファームウェアアップグレード方法
CN111143132B (zh) 一种bios恢复方法、装置、设备及可读存储介质
JP2012243199A (ja) コンピュータ、その制御方法及びプログラム
WO2014132373A1 (ja) ストレージシステム及び記憶デバイス障害回復方法
CN111506454A (zh) 基本输入/输出系统的恢复及更新的方法及系统
CN105607972A (zh) 一种异常修复的方法及装置
KR20090091708A (ko) 정보 처리 시스템 및 이 시스템의 기동/복구 방법
US10824517B2 (en) Backup and recovery of configuration files in management device
KR100853941B1 (ko) 멀티미디어 저장장치와 데이터 복구방법
JP4741976B2 (ja) ディスクアレイ装置およびデータ管理方法
US20190138407A1 (en) Systems and methods of deploying an operating system from a resilient virtual drive
US11467898B2 (en) Information processing apparatus and method of controlling the same
JP6911591B2 (ja) 情報処理装置、制御装置および情報処理装置の制御方法
JP5398795B2 (ja) 情報処理装置及び情報処理プログラム
KR101969799B1 (ko) 전자 장치 및 제어 방법
US9971659B1 (en) Memory programming providing corruption protection
US20200021695A1 (en) Image forming apparatus, control method of image forming apparatus, and storage medium
JP4824294B2 (ja) 情報処理装置及び情報処理プログラム
JP2023119785A (ja) コンピュータ及びデータ不整合判定方法
TWI237791B (en) Control method for automatically installing operating system and automatically restoring system file

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200804