(57)【要約】【課題】ファームウェアイメージの自動回復システム及び方法を開示する。【解決手段】不揮発性メモリにおけるファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成することと、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断することと、シャドウファームウェアイメージを記憶装置から回復させることと、シャドウファームウェアイメージを不揮発性メモリにコピーすることと、を備えるファームウェアイメージの自動回復方法。【選択図】図１
2019133633.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリにおけるファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成する工程と、
ファームウェアイメージに影響を与えた異常イベントがあるかを判断する工程と、
前記記憶装置から前記シャドウファームウェアイメージを回復させる工程と、
前記シャドウファームウェアイメージを不揮発性メモリにコピーする工程と、
を備えるコンピュータ装置におけるファームウェアイメージの回復方法。
【請求項２】
前記不揮発性メモリにおける前記ファームウェアイメージを更新する工程と、
前記シャドウファームウェアイメージが前記ファームウェアイメージと同一であるかを判断する工程と、
前記不揮発性メモリにおける更新された前記ファームウェアイメージで前記記憶装置における前記シャドウファームウェアイメージを置き換える工程と、
を更に備える請求項１に記載の方法。
【請求項３】
前記シャドウファームウェアイメージが前記ファームウェアイメージと同一であるかを判断する場合、前記シャドウファームウェアイメージのチェックサム及び前記ファームウェアイメージのチェックサムを判断する請求項２に記載の方法。
【請求項４】
シーケンスに基づいてマスターチップに通電する工程と、
前記コンピュータ装置を操作するために、前記マスターチップによって前記ファームウェアイメージを取得する工程と、
更に備える請求項１〜３の何れか１項に記載の方法。
【請求項５】
前記マスターチップは、中央処理装置、ベースボード管理コントローラ、又はマイクロコントローラユニットである請求項４に記載の方法。
【請求項６】
前記異常イベントは、前記マスターチップの電源不足である請求項４又は５に記載の方法。
【請求項７】
前記不揮発性メモリは、電気的に消去・書き換え可能な読み出し専用メモリである請求項１〜６の何れか１項に記載の方法。
【請求項８】
制御回路によって前記シャドウファームウェアイメージの回復を実行し及び前記不揮発性メモリにおける前記シャドウファームウェアイメージをコピーする請求項１〜７の何れか１項に記載の方法。
【請求項９】
前記制御回路は、異常イベントを指示する内部ビット及び前記シャドウファームウェアイメージと前記ファームウェアイメージとが異なることを指示する内部ビットを含む内部メモリを備える請求項８に記載の方法。
【請求項１０】
ファームウェアイメージを記憶するための不揮発性メモリと、
前記ファームウェアイメージを実行するためのマスターチップと、
シャドウファームウェアイメージを記憶するための記憶装置と、
前記不揮発性メモリの前記ファームウェアイメージから前記記憶装置における前記シャドウファームウェアイメージを作成することと、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断することと、前記記憶装置から前記シャドウファームウェアイメージを回復させることと、前記シャドウファームウェアイメージを前記不揮発性メモリにコピーすることと、を行うための制御回路と、
を備える電子コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアの回復方法に関し、特に、コンピュータ装置におけるファームウェアイメージの自動回復システムに関する。
【背景技術】
【０００２】
代表的なコンピュータは、例えば、プロセッサー、ベースボードメモリコントローラ、インタフェース部品、メモリ等の様々なハードウェア回路モジュールを含む。コンピュータは、そのプログラミングによって異なる機能を実行させるプログラム命令を書き込む。ファームウェアは、下位制御を装置における特別なハードウェアに提供することができる専門的なプログラム命令である。ファームウェアは、一般的に、例えば、読み出し専用メモリ（Ｒｅａｄ-ｏｎｌｙ  ｍｅｍｏｒｙ）、電気的に消去・書き換え可能な読み出し専用メモリ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ-Ｏｎｌｙ  Ｍｅｍｏｒｙ；ＥＥＰＲＯＭ）又はフラッシュメモリ（Ｆｌａｓｈ  ｍｅｍｏｒｙ）のような不揮発性メモリ等の装置に記憶される。ファームウェアは、一般的に、例えば、中央処理装置又はベースボード管理コントローラ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）のようなマスターチップにより操作される。作業効率を向上させるために、永久記憶装置（Ｐｅｒｍａｎｅｎｔ  Ｍｅｍｏｒｙ）におけるファームウェアは、マスターチップ（例えば、プロセッサー）がコンピュータにおける部品を制御するための重要な操作命令を読み取る準備ができ（ｒｅａｄｙ）、また快速に読み取れるようにする。
【０００３】
ハードウェア配線回路（ｈａｒｄｗｉｒｅｄ  ｃｉｒｃｕｉｔ）によるファームウェアは、快速に読み取って実行することができるというメリットがある。従来的に、ハードウェア配線回路の装置のファームウェアをあまり頻繁に取り替えるべきではない。例としては、読み出し専用メモリ（ＲＯＭ）のような従来のファームウェアメモリ装置に永久回路が取り付けられ、且つ工業で生産された後で取り替えることはできない。最近、ファームウェアは、電気的に消去・書き換え可能な読み出し専用メモリ（ＥＥＰＲＯＭ）のような消去可能な不揮発性メモリ（Ｅｒａｓａｂｌｅ  ｎｏｎ-ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）に記憶されることができるようになる。このようなメモリは、従来のメモリ装置のハードウェア特性を留めるので、ファームウェアを快速に読み取りまた実行することを許可する。しかしながら、消去可能特性を持つメモリは、メモリ装置全体を取り替えずに、ファームウェアの更新やミスの更正を許可する。
【０００４】
コンピュータシステムでは、例えば、中央処理装置（ＣＰＵ）、ベースボード管理コントローラ（ＢＭＣ）又はマイクロコントローラユニット（ＭＣＵ）のマスターチップによってファームウェアを実行することで、システム全体を制御する。ファームウェアは、コンピュータシステムの正常な作業を確保するように設計される。「ファームウェアイメージ（ｆｉｒｍｗａｒｅ  ｉｍａｇｅ）」という用語は、不揮発性メモリに記憶されたファームウェアプログラムコードのコピーとして定義される。異常イベントでは、例えば、電源投入シーケンスが中断になると、マスターチップは、この異常イベントを記録して、潜在の故障を使用者に知らせる。ある場合、異常イベントにより、ファームウェアイメージが崩壊することがある。例えば、ファームウェアイメージがマスターチップにロードされる場合、電力損失の状況が発生すると、更新されたファームウェアイメージが正確にロードされず、又は非確定のファームウェアイメージがロードされてしまう。この場合、マスターチップは、ファームウェアイメージを読み取らず成功に起動できないので、システム操作を実行することはできない。
【０００５】
従って、電力損失の場合、ファームウェアイメージの自動回復を可能にするシステムが望まれている。また、ファームウェアイメージの自動回復のために、ファームウェアイメージが他のメモリに記憶されることを可能にするシステムが望まれている。更に、ファームウェアイメージを更新する場合にファームウェアイメージの自動的な記憶やバックアップを可能にするシステムが望まれている。
なお、本発明に関して記載すべき先行技術文献はない。出願人が知っている先行技術が文献公知発明に係るものではないからである。
【発明の概要】
【０００６】
１つの開示例は、不揮発性メモリにおけるファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成する工程と、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断する工程と、記憶装置からシャドウファームウェアイメージを回復させる工程と、シャドウファームウェアイメージを不揮発性メモリにコピーする工程と、を備えるコンピュータ装置のファームウェアイメージの回復方法である。
【０００７】
別の開示例は、ファームウェアイメージを記憶する不揮発性メモリと、ファームウェアイメージを実行するマスターチップと、シャドウファームウェアイメージを記憶する記憶装置と、不揮発性メモリのファームウェアイメージから記憶装置におけるシャドウファームウェアイメージを作成することと、ファームウェアイメージに影響を与えた異常イベントが発生したかを判断することと、記憶装置からシャドウファームウェアイメージを回復させることと、シャドウファームウェアイメージを不揮発性メモリにコピーすることと、を行う制御回路と、を備える電子コンピュータ装置である。
【０００８】
上記は、公開の全ての実施例又は本開示の全ての方面を示すためのものではない。それに対して、前記説明は、本明細書で述べられるある新規性の方面や技術特徴の例を提供するものだけである。添付図面及び特許請求の範囲に合わせると、下記で本発明の代表的な実施例やモードを詳しく説明し、本発明の上記特徴やメリット、及び他の特徴やメリットが明らかになる。
【図面の簡単な説明】
【０００９】
添付図面に合わせて、下記で説明される例示的な実施例を参照すれば、本開示は、容易に理解される。
【図１】ファームウェアイメージ自動回復システムを有するコンピュータ装置の例示的なブロック図である。
【図２】図１におけるシステムの電源起動過程を説明する流れ図である。
【図３】コンピュータ装置によりシャドウファームウェアイメージの回復を実行する流れ図である。
【図４】コンピュータ装置によりファームウェアイメージの回復を実行する流れ図である。
【図５】図１における制御回路によりシャドウファームウェアイメージの作成ルーチンを実行する流れ図である。
【図６】図１における制御回路によりファームウェアイメージの更新ルーチンを実行する流れ図である。
【図７】図１における制御回路が記憶装置からファームウェアイメージを回復させるルーチンの流れ図である。  本開示は、様々な修正や取り替え形態を許可し、且つある代表的な実施例が既に添付図面における例により公開され、本明細書で詳しく説明される。しかしながら、理解すべきなのは、本発明は、公開された特定形態を制限するためのものではない。それに対して、本開示は、添付の特許請求の範囲により限定される精神や範囲内の全ての修正や、等同物、取り替え提案を含む。
【発明を実施するための形態】
【００１０】
本発明は、様々な異なる形態で実施されてよい。代表的な実施例を全て図面で示し、且つ詳しく説明する。本開示は、本発明の原理の例や説明であるが、本開示の他の方面の説明の実施例を制限するためのものではない。これについては、例えば、要約書、概要及び詳しい説明部分で公開された元素及び制限（しかし、特許請求の範囲に明確に述べられていない）は、別個に又は集合的な示唆、推断又は他の形態によって請求項に合併されるべきではない。詳しく説明するために、明確に否定されない限り、単数は複数を含むが、逆も同様である。また、「含む」という語彙は、「含むがそれに限定されない」という意味である。また、「約」、「殆ど」、「基本的に」、「近似」等の近似な語彙は、本明細書で「接近」又は「３〜５％内にある」又は「認められる製造公差内にある」又はその如何なる論理的組み合わせを示すことに用いられることができる。
【００１１】
図１は、ファームウェアイメージの自動回復システムを備える例示的なコンピュータ装置１００のブロック図である。コンピュータ装置１００は、中央処理装置（ＣＰＵ）１１０と、ベースボード管理コントローラ（ＢＭＣ）１１２と、を備える。この例において、自動回復システムは、制御集積回路１２０により操作される。システムバス（Ｓｙｓｔｅｍ  Ｂｕｓ）は、装置部品と中央処理装置１１０、ベースボード管理コントローラ１１２及び制御集積回路１２０等のマスターチップとの間のデータ及びコマンドの交換を可能にする。ファームウェアイメージ（ｆｉｒｍｗａｒｅ  ｉｍａｇｅ）は、永久記憶装置、又は電気的に消去・書き換え可能な読み出し専用メモリ（ＥＥＰＲＯＭ）１３０のような不揮発性メモリに記憶されてよい。制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ（ＥＥＰＲＯＭ）１３０と中央処理装置（ＣＰＵ）１１０との間で信号を発信することを選択するように、マルチプレクサ（ＭＵＸ）１３２を制御することができる。制御回路１２０は、記憶装置１３４に結合される。記憶装置１３４は、例えば、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）又はハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）のような永久記憶装置であってよい。この例において、記憶装置１３４は、元々ＥＥＰＲＯＭ１３０に記憶されるファームウェアイメージのコピーを記憶することができる。記憶されるコピーは、シャドウファームウェアイメージ（ｓｈａｄｏｗ  ｆｉｒｍｗａｒｅ  ｉｍａｇｅ）と呼ばれる。この例において、プラットフォームコントローラセンター（Ｐｌａｔｆｏｒｍ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ；ＰＣＨ）１３６は、中央処理装置１１０の部品である。或いは、プラットフォームコントローラセンター１３６は、中央処理装置１１０から独立した独立回路であってもよい。
【００１２】
制御回路１２０は、内部メモリ（ｉｎｔｅｒｎａｌ  ｍｅｍｏｒｙ）１４０を含む。内部メモリ１４０は、完全的に制御回路１２０内に含まれる。内部メモリ１４０は、制御回路１２０の操作に有利であるデータを快速に読み取ることを許可する。内部メモリ１４０は、制御回路１２０による装置１００の状態に対する判断を許可できる一連の状態ビット（ｓｔａｔｕｓ  ｂｉｔｓ）を含む。内部メモリ１４０に記憶される状態ビットは、電源確認ビット１４２、チップ異常ビット１４４、イメージ異常ビット１４６、イメージ同期ビット１４８及びファームウェア更新ビット１５０を含む。例えば、中央処理装置１１０又は制御回路１２０のマスターチップは、電源確認ビット１４２を設定して、装置１００のパワーオン（ｐｏｗｅｒ  ｏｎ）が正常であるかを制御回路１２０に知らせる。チップ異常ビット１４４は、電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶されるファームウェアイメージが正確であるが、マスターチップが正常にパワーオンにされていないことを指示する。イメージ異常ビット１４６は、マスターチップが正常にパワーオンにされないことで電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶されるファームウェアイメージが不正確になることを指示する。イメージ同期ビット１４８は、電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージと、記憶装置１３４におけるシャドウファームウェアイメージとが同一であるかを指示する。この例において、イメージ同期ビット１４８における「１」は、記憶装置１３４におけるシャドウファームウェアイメージと、電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージとが同一であることを指示する。イメージ同期ビット１４８における「０」は、記憶装置１３４におけるシャドウファームウェアイメージと、電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージとが異なることを示す。例としては、電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶されるファームウェアイメージが更新されるので、ファームウェアの更新によりイメージ同期ビット１４８が「０」に設定されるようになる。ファームウェアイメージ更新ビット１５０における「１」は利用可能な更新があることを示すが、「０」は利用可能な更新がないことを示す。
【００１３】
自動回復システムの機能的部品は、制御回路１２０、電気的に消去・書き換え可能な読み出し専用メモリ１３０、中央処理装置１１０、ベースボード管理コントローラ１１２、記憶装置１３４、プラットフォームコントローラセンター１３６及び内部メモリ１４０を含む。この例において、制御回路１２０は、自動回復機能の全体を監視する。
【００１４】
ファームウェアイメージの自動回復過程の操作形態は、４つのルーチン（ｒｏｕｔｉｎｅ）を備える。第一、制御回路１２０は、パワーオン検査ルーチンを行う。パワーオン検査ルーチンによって装置１００の電源が正常に動作するかを確認する。第二、その後で、制御回路は、イメージシャドウルーチンを行う。イメージシャドウルーチンによって電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージをシャドウファームウェアイメージとして記憶装置１３４にバックアップする。その後で、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０のイメージ更新ルーチンを実行する。第三、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０のファームウェアが更新されるかを検出する。最後、制御回路１２０は、イメージ回復ルーチンを行い、シャドウファームウェアイメージを電気的に消去・書き換え可能な読み出し専用メモリ１３０にコピーすることで、電気的に消去・書き換え可能な読み出し専用メモリ１３０で壊れた如何なるファームウェアイメージを回復することができる。或いは、中央処理装置１１０は、自動回復処理の機能を行う。ベースボード管理コントローラ１１２のような他のマスターチップは、自動回復過程の機能を実行することができる。
【００１５】
図２は、図１に示す装置１００のパワーオン機能を示す流れ図である。装置１００がパワーオンにされると、通電状態は、交流電源が安定であることを示す。制御回路１２０は、電源投入シーケンス及びウォッチドッグタイマープログラム（ｗａｔｃｈ  ｄｏｇ  ｔｉｍｅｒ  ｒｏｕｔｉｎｅ）２００を起動させる。ウォッチドッグタイマープログラムと中央処理装置１１０のベーシックインプット／アウトプットシステム（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ；ＢＩＯＳ）とは協力して計時する。ウォッチドッグタイマープログラムは、時間値をトリガーする。下記のように、ウォッチドッグタイマーの値が、電源の支度が整ったことを示した場合、プラットフォームコントローラセンター１３６の電源に対する起動計数ロジックの準備が既にでき、且つ電気的に消去・書き換え可能な読み出し専用メモリ１３０からのファームウェアイメージの読み取りに成功し、プラットフォームコントローラセンター１３６が電源確認ビット１４２を「１」として制御回路１２０に書き込む。システム電源が起動されると、ウォッチドッグタイマープログラムは、計時カウンタの計数を開始する。計時カウンタの計数がウォッチドッグタイマーの値より小さく、且つ電源確認ビット１４２が電源確認ビット１４２を「１」として検査すると、プラットフォームコントローラセンターの電源が正常に動作し、シャドウファームウェアイメージが作成されることを示す。電源確認ビット１４２が「０」であると、プラットフォームコントローラセンターの電源が異常であることを示す。その後、システムは、ファームウェアイメージを回復させる。
【００１６】
従って、制御回路１２０は、内部メモリ１４０における電源確認ビット１４２を検査する（２０２）。「０」は、電源確認ビット１４２において、中央処理装置１１０の通電が失敗になることを示す。これは、中央処理装置１１０が既に失効になり、或いは電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージが既に損なわれたことを示す。その後、制御回路１２０は、イメージ同期ビット１４８が「１」であるかを検査する（２０４）。工程２０２において電源確認ビット１４２が「１」であれば、制御回路１２０は、中央処理装置１１０が既に通電されたと確認する。制御回路１２０は、続けてファームウェアのイメージシャドウルーチンをアクティブにする（２０６）。以下、図４を参照してファームウェアのイメージシャドウルーチンをより詳しく検討する。従って、下記のように、中央処理装置１１０の電源が正常に作動し且つ読み取られるファームウェアイメージが完成になると、制御回路１２０は、装置１００を待機モードに設定し且つイメージシャドウルーチンを実行する。
【００１７】
イメージ同期ビット１４８の検査結果が「１」ではないと（２０４）、電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージが損なわれることを示すので、制御回路１２０は、イメージ異常ビット１４６（図１参照）を「１」に設定する。その後、制御回路１２０は、図４に詳しく述べられるイメージ回復流れを起動させる。イメージ回復流れの処理が終了すると、制御回路１２０は、再び、電源確認ビット１４２を検査することに戻る（２０２）。イメージ同期ビット１４８の検査結果が「１」であると、中央処理装置１１０に故障が発生したことを示すので、制御回路１２０は、チップ異常ビット１４４を「１」に設定する（２１０）。この例において、装置１００は、マスターチップ故障を使用者に知らせる。
【００１８】
図３は、中央処理装置１１０、ベースボード管理コントローラ１１２及び制御回路１２０（図１参照）により過程を実行する流れ図である。シャドウファームウェアイメージを作成するために、図２に示す工程２０６を参照されたい。装置１００がパワーオンにされる場合、通電状態は、交流電源が安定であることを示す（３００）。制御回路１２０は、電源投入シーケンス及びウォッチドッグタイマー機能を起動させる（３０２）。中央処理装置１１０が成功に通電されると、電源及び電源投入シーケンスが成功になり、電気的に消去・書き換え可能な読み出し専用メモリ１３０からファームウェアイメージを取出する。ファームウェアイメージが成功に取得されると、中央処理装置１１０は、内部メモリ１４０における（図１参照）電源確認ビット１４２を「１」に設定する（３０４）。中央処理装置１１０は、バスによって制御回路１２０にコマンドを発信することで、電源確認ビット１４２を設定する。
【００１９】
制御回路１２０は、ウォッチドッグタイマープログラムを実行し、及び計時（ｔｉｍｅ-ｏｕｔ）を実行する。制御回路１２０は、電源確認ビット１４２が「１」に設定されたかを検査する。その後、制御回路１２０は、装置１００がイメージシャドウルーチンを起動させるように待機モードになるまで、持続的に待つ（３０６）。装置１００が待機モードになると、制御回路１２０は、制御回路１２０がイメージ検査過程を起動させていることをベースボード管理コントローラ１１２に知らせる（３０８）。ベースボード管理コントローラ１１２は、ベースボード管理コントローラ１１２の回復機能を無効（ｄｉｓａｂｌｅ）にするというコマンドをプラットフォームコントローラセンター（ＰＣＨ）１３６に発信する（３１０）。
【００２０】
その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリのオーナーを制御回路１２０に切り替える（３１２）。その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶されたファームウェアイメージのチェックサム（Ｃｈｅｃｋｓｕｍ）と記憶装置１３４に記憶されるファームウェアイメージのチェックサム（Ｃｈｅｃｋｓｕｍ）とを比較する（３１４）。制御回路１２０は、更に、イメージ同期ビット１４８（図１参照）が「０」に設定されたかを判断し、「０」はイメージ同士が同期されていないことを指示する。チェックサムが異なり、或いはイメージ同期ビット１４８が「０」に設定されると、シャドウイメージを作成する必要がある。何れの場合で、制御回路１２０は、シャドウイメージルーチンを起動させる（３１６）。シャドウイメージルーチンは、電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージを記憶装置１３４にコピーする。シャドウイメージルーチンを図５で更に詳しく説明する。シャドウイメージルーチンが完成すると、制御回路１２０は、イメージの更新が完成したことをベースボード管理コントローラ１１２に知らせる（３１８）。その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０のオーナーを中央処理装置１１０に切り替える（３２０）。ベースボード管理コントローラ１１２は、ベースボード管理コントローラ１１２の回復機能を起動させるというコマンドをプラットフォームコントローラセンター１３６に発信する（３２２）。その後、制御回路１２０は、電源シーケンスを起動させる（３２４）。ベースボード管理コントローラ１１２は、検索されたファームウェアイメージを電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶し戻ろうとするように、電気的に消去・書き換え可能な読み出し専用メモリ１３０を動態的に設定する。（３２６）。電気的に消去・書き換え可能な読み出し専用メモリ１３０におけるファームウェアイメージが既に記憶装置１３４にコピーされたことを確認することで、記憶装置１３４におけるシャドウファームウェアイメージが更新及び反映される。
【００２１】
図４は、中央処理装置１１０、ベースボード管理コントローラ１１２及び制御回路１２０（図１参照）によりファームウェアイメージを回復させる過程の流れ図である。装置１００（図１参照）がパワーオンにされる場合、通電状態は、交流電源が安定であることを指示する（４００）。制御回路１２０は、電源投入シーケンス及びウォッチドッグタイマープログラムを開始させる（４０２）。中央処理装置１１０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０からファームウェアイメージを取出してみる（４０４）。取回の試みが失敗になったら、制御回路１２０により実行されるウォッチドッグタイマープログラムにより、ベーシックインプット／アウトプットシステム（ＢＩＯＳ）による計時が取り消される。制御回路１２０は、判断電源確認ビット１４２が「０」であるかを検査し、「０」であれば、電源が正常状態ではないことを指示する。制御回路１２０は、装置１００がイメージ回復流れを起動させるように待機モードになるまで待つ（４０６）。
【００２２】
一旦、装置１００が待機モードになると、制御回路１２０は、制御回路１２０がイメージ検査流れを起動させていることをベースボード管理コントローラ１１２に知らせる（４０８）。ベースボード管理コントローラ１１２は、ベースボード管理コントローラ１１２の回復機能のコマンドを無効にするというコマンドを発信する（４１０）。
【００２３】
その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０のオーナーを制御回路１２０に切り替える（４１２）。制御回路１２０は、イメージ回復ルーチンを起動させる（４１４）。イメージ回復ルーチンは、記憶装置１３４からファームウェアイメージを電気的に消去・書き換え可能な読み出し専用メモリ１３０にコピーする。イメージ回復ルーチンについては、図７で詳しく説明する。イメージ回復ルーチンが完成すると、制御回路１２０は、イメージ回復ルーチンが完成したことをベースボード管理コントローラ１１２に知らせる（４１６）。その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０のオーナーを中央処理装置１１０に切り替える（４１８）。ベースボード管理コントローラ１１２は、回復機能を起動させるというコマンドを発信する（４２０）。その後、制御回路１２０は、電源シーケンス及びウォッチドッグタイマープログラムを起動させる（４２２）。ベースボード管理コントローラ１１２は、電気的に消去・書き換え可能な読み出し専用メモリを動態的に設定して、電気的に消去・書き換え可能な読み出し専用メモリ１３０がファームウェアイメージを記憶するように指示する（４２４）。
【００２４】
その後、プラットフォームコントローラセンター１３６は、パワーオンルーチンを開始し、ウォッチドッグタイマープログラムを起動させる。プラットフォームコントローラセンター１３６は、電源が中央処理装置１１０に通電するように指示し、電気的に消去・書き換え可能な読み出し専用メモリ１３０からイメージを成功に取り戻す。その後、中央処理装置１１０は、電源確認ビット１４２（図１参照）に「１」を書き込む（４２６）。制御回路１２０は、電源確認ビット１４２が「１」に設定されることを検査する。その後、制御回路１２０は、イメージ同期ビット１４８を「１」に設定する（４２８）。
【００２５】
図５は、制御回路１２０（図１参照）によりシャドウファームウェアイメージの作成ルーチンを実行する流れ図である。まず、制御回路１２０は、ウォッチドッグタイマープログラムの機能を起動させることで、電源投入シーケンスを起動させる（５００）。その後、制御回路１２０は、内部メモリ１４０（図１参照）における初回のシステム起動ビット１５２が「１」に設定されたかを検査する（５０２）。初回のシステム起動ビット１５２が「１」に設定されないと、制御回路１２０は、イメージ同期ビット１４８が「１」に設定されたかを検査する（５０４）。イメージ同期ビット１４８が「１」に設定されていないと、制御回路１２０は、図６に詳しく説明される自動回復ルーチンを起動させる（５０６）。
【００２６】
工程５０２において、制御回路１２０は、初回のシステム起動ビット１５２が「１」に設定されると判断すると、装置１００が待機電源モードになるかを検査する（５０８）。装置１００が待機電源モードにならないと、制御回路１２０は、続けて装置１００が待機電源になるかを検査する（５０８）。制御回路１２０は、装置１００が既に待機電源モードになったと判断した後で、電源シーケンスを保持するために、マルチプレクサ１３２（図１参照）によって信号を発信する（５１０）。工程５０４において、イメージ同期ビット１４８が「１」に設定されると、制御回路１２０は、また、電源シーケンスを保持するためにマルチプレクサ１３２によって信号を発信する（５１０）。その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶されたファームウェアイメージのシャドウコピーを作成する。ファームウェアイメージのシャドウコピーは、記憶装置１３４に記憶される（５１２）。一旦、ファームウェアイメージのシャドウコピーの作成が完成すると、制御回路１２０は、イメージ同期ビット１４８を「１」に設定する。制御回路１２０は、更に、マルチプレクサ１３２によって信号を発信して、制御回路１２０から電気的に消去・書き換え可能な読み出し専用メモリ１３０のオーナーを解除する。制御回路１２０は、また、電源シーケンスを解除する（５１４）。
【００２７】
図６は、制御回路１２０（図１参照）がＥＥＰＲＯＭ１３０に記憶されるファームウェアイメージの更新ルーチンを実行する流れ図である。ファームウェアイメージ又はファームウェアイメージを更改する場合、このルーチンは実行される。中央処理装置１１０は、制御回路１２０によって内部メモリ１４０におけるファームウェア更新ビット１５０を「１」に設定し、ファームウェア更新ビット１５０が「１」であると、利用可能な更新があることを指示する（６００）。制御回路１２０は、更に、内部メモリ１４０におけるイメージ同期ビット１４８を「０」に設定する。その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０に記憶されたファームウェアイメージを更新し始める（６０２）。従って、更新されたファームウェアイメージは、電気的に消去・書き換え可能な読み出し専用メモリ１３０にコピーされる。ファームウェアイメージの更新が完成すると、中央処理装置１１０は、電源シーケンスを解除するために、制御回路１２０のビットを設定する（６０４）。
【００２８】
中央処理装置１１０は、内部メモリ１４０に通電ビットが設定されたかを検査する（６０６）。通電ビットが設定されていないと、中央処理装置１１０は、電源シーケンスが更新されたファームウェアイメージにより使用されていないことを制御回路１２０に指示するために、電源確認ビット１４２を「０」に設定する（６０８）。通電ビットが設定されると、中央処理装置１１０は、電気的に消去・書き換え可能な読み出し専用メモリ１３０における更新によってファームウェアイメージが成功に通電されることを指示するために、電源確認ビット１４２（図１参照）を「１」に設定する（６１０）。その後、制御回路１２０は、イメージ同期ビット１４８の検査結果に基づいて、上記図５に記載のシャドウイメージ処理を実行するかを判断する（５１２）。上記図５に示すように、イメージ同期ビット１４８が「０」に設定されると、制御回路１２０は、シャドウイメージ処理を実行するために、システムの直流電源がオフされるまで待つ。
【００２９】
図７は、制御回路１２０（図１参照）が記憶装置１３４からファームウェアイメージを自動回復させるようにする過程である。従って、ファームウェアイメージが電気的に消去・書き換え可能な読み出し専用メモリ１３０において壊れたと、システムは、記憶装置１３４からファームウェアイメージを自動的に回復させることができる。中央処理装置１１０（図１参照）は、交流電源がオンにされたかを判断する（７００）。システムは、交流電源がオンにされたかを判断した後で、制御回路１２０が通電されたかを判断し検査する（７０２）。制御回路１２０が通電されていないと、中央処理装置１１０は、再び、制御回路１２０が通電されたかを判断することを続ける（７０２）。制御回路１２０が通電されると、ＣＰＵ１１０は、バスによって電源確認ビット１４２を「１」に設定する（７０４）。他の何れの場合にも、電源確認ビット１４２が「０」に設定される。その後、制御回路１２０は、電源確認ビット１４２が「１」に設定されたかを検査する（７０６）。電源確認ビット１４２が「０」に設定されると、通電が失敗になり、且つ制御回路１２０は、再び、電源確認ビット１４２を検査することを続ける。電源確認ビット１４２が「１」に設定されると、制御回路１２０は、イメージ同期ビット１４８が「０」に設定されたかを検査する（７０８）。イメージ同期ビット１４８が「１」に設定されると、制御回路１２０は、チップ異常ビット１４４を「１」に設定する（７１０）。
【００３０】
工程７０８においてイメージ同期ビットが「０」であれば、制御回路１２０は、マルチプレクサ１３２に信号を発信して、読み取り／書き込み軌跡を選択し、電源投入シーケンスを保持する（７１２）。その後、制御回路１２０は、記憶装置１３４からファームウェアイメージを回復して、電気的に消去・書き換え可能な読み出し専用メモリ１３０にコピーする（７１４）。一旦、ファームウェアイメージの回復が電気的に消去・書き換え可能な読み出し専用メモリ１３０で完成されると、制御回路１２０は、イメージ同期ビット１４８を「１」に設定する（７１６）。その後、制御回路１２０は、電気的に消去・書き換え可能な読み出し専用メモリのオーナーを解除し、電源シーケンスを解除するように、信号をマルチプレクサ１３２に発信する。
【００３１】
この例において、図５、図６及び図７におけるルーチンの読み取り可能な命令コンピュータは、（ａ）プロセッサー、（ｂ）コントローラ、及び／又は（ｃ）１つ又は複数の他の適切な処理装置のような実行可能なアルゴリズムを含むコンピュータである。このアルゴリズムは、フラッシュメモリ、ＣＤ-ＲＯＭ、フロッピーディスク（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ハードディスクドライブ、デジタルビデオ（通用）ディスク（ＤＶＤ）又は他の記憶装置のような、有形メディアのソフトウェアに記憶にされるように達成されてよい。しかしながら、本分野又は他の技術者であれば、アルゴリズム全体且つ／又は他の部分が取り替え可能なアルゴリズム実行装置は、プロセッサー以外の装置で実行し、及び／又は周知の形態でファームウェア又は既知のハードウェアで達成させることで（例えば、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ；ＡＳＩＣ）、プログラマブルロジックデバイス（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ；ＰＬＤ）、フィールドプログラマブルロジックデバイス（ｆｉｅｌｄ-ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ；ＦＰＬＤ）、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ-ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ；ＦＰＧＡ）、個別論理等）実現することができることは、容易に理解できる。例としては、インタフェースの如何なる又は全部の部品は、ソフトウェア、ハードウェア及び／又は固体によって達成されてよい。そして、図５、図６及び図７の流れ図に示すある又は全部のコンピュータの読み取り可能な命令は、手動で達成されてもよい。また、図５、図６及び図７に示す流れ図を参照すると、例におけるアルゴリズムが説明されるが、本分野又は他の技術者であれば、他の数多くの方法で例におけるコンピュータの読み取り可能な命令を達成することができることは、容易に理解できる。例えば、ブロックの実行順位を変更し、及び／又は説明されるあるブロックを変更、除去し又は組み合わせてもよい。
【００３２】
本明細書で使用する「部品」、「モジュール」、「システム」等の用語は、一般的に、コンピュータ関連エンティティ、ハードウェア（例えば、回路）、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は１つ以上の特定の機能を有する操作機械のエンティティを指す。例えば、部品は、プロセッサー（例えば、データ信号プロセッサー）、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び／又はコンピュータであってもよいが、これらに限定されない。説明として、コントローラ上で動作するアプリケーション及びコントローラは、何れも部品であってもよい。１つ又は複数の部品は、プログラム及び／又は実行スレッド内に存在してもよく、部品は、１つのコンピュータに配置されてもよく、及び／又は２つ以上のコンピュータの間に分散されてもよい。また、「装置」は、ハードウェアが特別に設計される形態、ハードウェアが特定な機能を実行するようにするソフトウェアを実行させるために専門的に製造された汎用ハードウェア、ソフトウェアがコンピュータ可読インタフェースに記憶されるもの又はそれらの組み合わせであってよい。
【００３３】
コンピュータ装置は、代表的には、コンピュータ可読媒体及／又は通信媒体を含むことができる様々な媒体を備え、本明細書で２つの用語は互いに異なり、以下のように使用されることができる。コンピュータ可読媒体は、コンピュータによってアクセス可能な任意の利用可能な記憶媒体であってもよく、一般的に非一時的であり、揮発性及び不揮発性媒体、取外し可能および取外し不可能媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ可読命令、プログラムモジュール、構造化データ又は非構造化データのような情報を記憶するための任意の方法又は技術との組み合わせを実現することができる。コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、及び他の記憶技術、ＣＤ−ＲＯＭドライブ、デジタル多用途ディスクプレーヤ（ＤＶＤ）又は他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、或いは所望の情報を格納するために使用される他の有形及び／又は非一時的媒体を含むが、これらに限定されない。コンピュータ可読媒体は、媒体による情報を記憶するための様々な動作に対処するために、アクセスニーズ、クエリ、又は他のデータ検索プロトコルのような、１つ又は複数のローカル又はリモートコンピューティング装置を介してアクセスすることができる。
【００３４】
本明細書において、本文で冠詞について特に限定しない限り、「一つ」と「前記」は、単一又は複数のものを指してよい。更に理解すべきなのは、本明細書に用いる「備える」、「含む」、「有する」及び類似な語彙は、記載される特徴、領域、整数、工程、操作、部品と／又は部品を明らかに示すが、述べられる又は別の１つ又は複数の他の特徴、領域、整数、工程、操作、部品、と／又はそれらの群を排除しない。
【００３５】
別に定義されない限り、本明細書に用いるすべての語彙（技術及び科学用語を含む）は、当業者に理解される一般的な意味を有する。更に、上記の語彙は、普通の常用の辞典における定義は、本明細書の内容において本発明の関連分野と一致である意味として理解される。特に明確に定義されない限り、これらの語彙は、理想化又はあまり正式的な意味に解釈されるべきではない。
【００３６】
以上、本開示の様々な実施例について詳細に説明したが、それらは例示にすぎず、限定ではないことを理解されたい。本開示の精神又は範囲から逸脱しない限り、本明細書の開示に基づいて、開示された実施例に多くの修正を加えることができる。従って、本開示の幅及び範囲は、上記の実施例のいずれによっても制限されるべきではない。反対に、本開示の範囲は、添付の特許請求の範囲及びそれらの等価物によって定義されるべきである。
【００３７】
本発明では、１つ又は複数の実施形態を説明したが、本明細書及び添付図面を読んで理解した後で、本分野の他の技術者は、等同の変更や修正を想到することもできる。また、本発明の特定な特徴の１つのみが公開される可能性があるが、このような特徴は他の実施形態の１つ又は複数の他の特徴と組み合わせてもよく、これは如何なる既定又は特定な適用に対しては所望及び有利なものである。
【符号の説明】
【００３８】
１００  コンピュータ装置
１１０  中央処理装置
１１２  ベースボード管理コントローラ
１２０  制御回路
１３０  電気的に消去・書き換え可能な読み出し専用メモリ
１３２  マルチプレクサ
１３４  記憶装置
１３６  プラットフォームコントローラセンター
１４０  内部メモリ
１４２  電源確認ビット
１４４  チップ異常ビット
１４６  イメージ異常ビット
１４８  イメージ同期ビット
１５０  ファームウェア更新ビット
２００〜２１０、３００〜３２６、４００〜４２８、５００〜５１４、６００〜６１２、７００〜７１４  工程
【図１】
2019133633.tif 000003
【図２】
2019133633.tif 000004
【図３】
2019133633.tif 000005
【図４】
2019133633.tif 000006
【図５】
2019133633.tif 000007
【図６】
2019133633.tif 000008
【図７】
2019133633.tif 000009