(57)【要約】【課題】ファームウェアの異常が検出された場合に修復プログラムを起動することによりファームウェアの自動復元を行ない、人手による保守作業を不要とする信頼性の高い情報処理装置を提供すること。【解決手段】監視装置１０２は、通常運用ファームウェア１０５Ａが所定時間内に正常に起動完了しなかったことを検出して、切り替え手段によって修復用ファームウェア１０５Ｂを自動的に起動する。起動した修復用ファームウェア１０５Ｂは、ＲＯＭ１０６のファームウェア１０７を読み出してＲＯＭ１０４のファームウェア１０５Ａの復元を行なう。この復元後に監視装置１０２は修復されたファームウェア１０５Ａを切り替え手段によって直ちに起動する。これによって、装置自体がファームウェアの異常を検出し修復プログラムを起動することで、人手による作業を行なうことなく異常のあるファームウェアの自動修復を行なうことができる。【選択図】　　　　図１
2004054616.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアを実行するプロセッサと、通常の処理を行なう第１のファームウェアと前記第１のファームウェアの復元を行なう第２のファームウェアとを保持する書き換え可能な第１のプログラム記憶手段と、前記第１のファームウェアのバックアップを格納する不揮発性の第２のプログラム記憶手段と、前記第１のプログラム記憶手段に保持された前記第１と前記第２のファームウェアの内でどちらのファームウェアを起動させるかを選択する切り替え手段と、前記第１のファームウェアの起動が所定の時間内に完了しないことを検出して自動的に再起動を行なう監視手段と、を備えた情報処理装置であって、
前記監視手段は、前記所定時間内の起動未完了検出に基づいて、前記切り替え手段により前記第２のファームウェアを選択して前記情報処理装置を再起動し、前記選択された第２のファームウェアは、前記第１のファームウェアを前記第２のプログラム記憶手段から前記第１のプログラム記憶手段へ書き移して復元を行い、
さらに、前記監視手段は、前記復元後に、前記切り替え手段により前記第１のファームウェアを再び選択して前記情報処理装置を再起動する
ことを特徴とする情報処理装置。
【請求項２】
ファームウェアを実行するプロセッサと、通常の処理を行なう第１のファームウェアと前記第１のファームウェアの復元を行なう第２のファームウェアとを保持する書き換え可能な第１のプログラム記憶手段と、前記第１のファームウェアのバックアップと前記第２のファームウェアのバックアップとを格納する不揮発性の第２のプログラム記憶手段と、前記第１のプログラム記憶手段に保持された前記第１と前記第２のファームウェアの内でどちらのファームウェアを起動させるかを選択する切り替え手段と、前記第１のファームウェアの起動が所定の時間内に完了しないことを検出して自動的に再起動を行なう監視手段と、を備えた情報処理装置であって、
前記第１の記憶手段に保持された第１のファームウェアは、前記第１の記憶手段に保持された第２のファームウェアの破損の有無を検査し、破損していた場合に前記第２のファームウェアを前記第２のプログラム記憶手段から前記第１のプログラム記憶手段へ書き移して復元する機能を有し、
前記監視手段は、前記所定時間内の起動未完了検出に基づいて、前記切り替え手段により前記第２のファームウェアを選択して前記情報処理装置を再起動し、前記選択された第２のファームウェアは、前記第１のファームウェアを前記第２のプログラム記憶手段から前記第１のプログラム記憶手段へ書き移して復元を行い、
さらに、前記監視手段は、前記復元後に、前記切り替え手段により前記第１のファームウェアを再び選択して前記情報処理装置を再起動する
ことを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記第２のプログラム記憶手段に格納されたファームウェアのバックアップの代わりに、ネットワークに接続されたサーバの記憶手段に格納されたファームウェアのバックアップを用いることによって、前記第２のプログラム記憶手段を不要とする
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置、特にファームウェアの自動修復機能を有するものに関する。
【０００２】
【従来の技術】
サーバ装置のような高い信頼性を要求される情報処理装置においては、ファームウェアのアップデートミスやデータ化けおよび内在するバグによる起動障害を回避するためにファームウェアを二重化するのが一般的である。通常はファームウェアを格納するＲＯＭを２組用意し、それぞれにファームウェアを格納する構成をとる。
【０００３】
図５は従来の情報処理装置におけるファームウェア二重化の構成例である。また、ファームウェア２０５Ａとファームウェア２０５Ｂをそれぞれ独立したＲＯＭに格納している場合もある。切り替え装置２０３によりファームウェア２０５Ａ、２０５Ｂの任意の一つを選択して起動することができる。初期状態ではファームウェア２０５Ａが選択されているものとする（ファームウェア２０５Ａと２０５Ｂとは同一のものである）。図５で、監視装置２０２は装置が正常に起動したか否かを検出し、正常に起動しなかった場合は、次回の起動に使用するファームウェアをファームウェア２０５Ｂに切り替え、装置を再起動する。ファームウェア２０５Ｂに異常がなければ装置は正常に起動するため、装置の信頼性を向上することができる。
【０００４】
また、ファームウェアの更新については特開平５−１４３３１５号公報に記載されており、この公報によれば、装置本体側に設けられた不揮発性メモリに記憶されているファームウェアの内容は、装置本体側に対して着脱可能なメモリカードから読み込んだ記憶情報に基づいて更新されることが開示されている。このように、メモリカードから読み出したファームウェアの内容に書き替えるようにすることでファームウェアのバージョンアップを容易に行えるようにしている。
【０００５】
また、特開平１１−１１０２１８号公報には、不揮発性メモリを複数持つファームウェア書き換え方式において、書き換え後のＲＯＭの自動選択や、書き換え失敗時の自動回復および手動による書き換え前状態への回復に関する技術が開示されている。
【０００６】
これによると、ファームウェアを格納する複数ＦＲＯＭのうちファームウェアを実行していないＦＲＯＭに、ダウンロードファームウェアを格納した磁気テープから書き込みを行い、書き込み終了後に書き込みを行ったＦＲＯＭと今までファームウェアを実行していたＦＲＯＭのアドレス配置を入れ換える。また、装置内のＭＰＵで書き換えたファームウェアのサムチェックを行い、エラーが発見された場合にファームウェアの入れ換えを行わずに、書き換え前のファームウェアを実行ファームウェア領域に配置している。これによって、ファームウェア書き換え後、ＣＰＵは自動的に書き換えたファームウェアを実行することができ、また、ファームウェアの書き換えが失敗した場合は、書き換え前のファームウェアにてシステムの起動ができる。
【０００７】
【発明が解決しようとする課題】
上述した図５に示すファームウェアの二重化に関する従来技術では、異常のあったファームウェア２０５Ａは依然として異常を内在したままの状態であるため、後にファームウェア２０５Ｂが異常を来せば、装置を正常に起動することはできなかった。このため一方のファームウェアに異常が発生したら、他方のファームウェアに異常が生じる前に人手でよるメンテナンス作業を行なう必要があり煩わしいという欠点があった。
【０００８】
また、上述した特開平５−１４３３１５号公報の技術は、ファームウェアの更新操作を容易に実施する技術は開示されているが、ファームウェアの異常を検出し自動修復しようとする技術思想については何等開示しておりません。
【０００９】
また、上述した特開平１１−１１０２１８号公報の技術は、ファームウェアの書き込み技術並びに書き込んだファームウェアの書き換え失敗時の回復技術が開示されているが、ハードウェア組立後におけるファームウェアの変更が前提となるものであり、通常運用ファームウェアの起動不能時の自動検知、並びにこの通常運用ファームウェアにおける他の記憶手段からの更新という修復についての配慮は為されていない。即ち、上記公報の技術は、新たなファームウェアの書き換えに伴う技術を対象とするものであって、既存のファームウェアの起動時における異常事態への対処については何等配慮されていない。
【００１０】
本発明の目的は、ファームウェアの異常が検出された場合に修復プログラムを起動することによりファームウェアの自動復元を行ない、人手による保守作業を不要とする信頼性の高い情報処理装置を提供することにある。
【００１１】
【課題を解決するための手段】
前記課題を解決するために、本発明は主として次のような構成を採用する。　ファームウェアを実行するプロセッサと、通常の処理を行なう第１のファームウェアと前記第１のファームウェアの復元を行なう第２のファームウェアとを保持する書き換え可能な第１のプログラム記憶手段と、前記第１のファームウェアのバックアップを格納する不揮発性の第２のプログラム記憶手段と、前記第１のプログラム記憶手段に保持された前記第１と前記第２のファームウェアの内でどちらのファームウェアを起動させるかを選択する切り替え手段と、前記第１のファームウェアの起動が所定の時間内に完了しないことを検出して自動的に再起動を行なう監視手段と、を備えた情報処理装置であって、
前記監視手段は、前記所定時間内の起動未完了検出に基づいて、前記切り替え手段により前記第２のファームウェアを選択して前記情報処理装置を再起動し、前記選択された第２のファームウェアは、前記第１のファームウェアを前記第２のプログラム記憶手段から前記第１のプログラム記憶手段へ書き移して復元を行い、
さらに、前記監視手段は、前記復元後に、前記切り替え手段により前記第１のファームウェアを再び選択して前記情報処理装置を再起動する情報処理装置。
【００１２】
また、ファームウェアを実行するプロセッサと、通常の処理を行なう第１のファームウェアと前記第１のファームウェアの復元を行なう第２のファームウェアとを保持する書き換え可能な第１のプログラム記憶手段と、前記第１のファームウェアのバックアップと前記第２のファームウェアのバックアップとを格納する不揮発性の第２のプログラム記憶手段と、前記第１のプログラム記憶手段に保持された前記第１と前記第２のファームウェアの内でどちらのファームウェアを起動させるかを選択する切り替え手段と、前記第１のファームウェアの起動が所定の時間内に完了しないことを検出して自動的に再起動を行なう監視手段と、を備えた情報処理装置であって、
前記第１の記憶手段に保持された第１のファームウェアは、前記第１の記憶手段に保持された第２のファームウェアの破損の有無を検査し、破損していた場合に前記第２のファームウェアを前記第２のプログラム記憶手段から前記第１のプログラム記憶手段へ書き移して復元する機能を有し、
前記監視手段は、前記所定時間内の起動未完了検出に基づいて、前記切り替え手段により前記第２のファームウェアを選択して前記情報処理装置を再起動し、前記選択された第２のファームウェアは、前記第１のファームウェアを前記第２のプログラム記憶手段から前記第１のプログラム記憶手段へ書き移して復元を行い、
さらに、前記監視手段は、前記復元後に、前記切り替え手段により前記第１のファームウェアを再び選択して前記情報処理装置を再起動する情報処理装置。
【００１３】
【発明の実施の形態】
本発明の実施形態に係る情報処理装置について、図１〜図４を参照しながら以下説明する。図１は本発明の第１の実施形態に係る情報処理装置の全体構成を示すブロック図である。図２は本発明の第２の実施形態に係る情報処理装置の全体構成を示すブロック図であり、図３は本発明の第２の実施形態における第１のファームウェアに追加する処理のフローを示す図である。図４は本発明の第３の実施形態に係る情報処理装置の全体構成を示すブロック図である。
【００１４】
本発明の情報処理装置は、例えばサーバ、システム監視装置などに適用することができる。図１において、ＣＰＵ１０１と監視装置１０２がシステムバス１１０に接続される。更に、本発明の実施形態に係る情報処理装置では、第１のプログラム記憶手段として書き換え可能な不揮発性メモリ（ＲＯＭ）１０４が切り替え手段１０３を介してシステムバス１１０に接続される。図１に示す第１の実施形態では、プログラム記憶手段１０４として単一のＲＯＭを用いているが、格納するファームウェアのサイズがＲＯＭの容量に比べて大きい場合にはプログラム記憶手段１０４を複数のＲＯＭで構成することも可能である。
【００１５】
ＲＯＭ１０４には２つの異なるファームウェア１０５Ａ、１０５Ｂが格納される（ファームウェアの例としては、ブートプログラムやＢＩＯＳなどが挙げられる）。ファームウェア１０５Ａは通常運用で実行される通常運用ファームウェアであり、ファームウェア１０５Ｂはファームウェア１０５Ａが正常に起動しない場合に使用されファームウェア１０５Ａの修復を行なう修復用ファームウェアである。
【００１６】
切り替え手段１０３は、ＲＯＭ１０４のアドレシングを変換することにより任意のファームウェアＡ又はＢをＣＰＵ又はプロセッサ１０１の起動開始番地に配置する機能をもつ。例えば、バスから供給されるアドレス信号の最上位ビットを切り替え信号の状態に応じて反転させることで目的の機能を持たせることができる。これによって、情報処理装置の起動時に任意のファームウェアを選択実行することが可能である。また、選択されなかったファームウェアはこれと異なる番地に配置され、プロセッサ１０１から読み書きを行なうことができる。このときファームウェア１０５Ａは切り替え手段１０３により通常とは異なるアドレスに配置されているため、ファームウェア１０５Ｂはこれを考慮して書き換えアドレスを決定する。
【００１７】
監視装置１０２は、ファームウェア１０５Ａが一定時間内に正常終了を示す通知を行なわなかった場合にこれを検知して、切り替え手段１０３を用いてファームウェア１０５Ｂを選択し、監視装置１０２が情報処理装置の再起動を行ない、ファームウェア１０５Ｂが実行される。監視装置１０２には例えばウォッチドッグタイマを持つマイクロプロセッサを用いることができる。
【００１８】
また、システムバス１１０には、ファームウェア１０５Ａの複製であるファームウェア１０７を格納する第２のプログラム記憶手段としてＲＯＭ１０６が接続される。本実施形態ではＲＯＭを用いているが、実際にはプログラムを格納することができる不揮発性媒体であれば良く、代替可能な媒体としてはバッテリバックアップされたＲＡＭ、磁気ディスク装置（ＨＤＤ）又はＣＤ−ＲＯＭ装置などが挙げられる。
【００１９】
さて、通常の運用時において、切り替え手段１０３はファームウェア１０５Ａを選択するようになっている。ファームウェア１０５Ａの起動中に、ＲＯＭ１０４の損傷やバグによって情報処理装置が起動不能の状態に陥った場合、即ち、一定時間内に起動が正常終了できなかった場合、監視装置１０２がこれを検出し、切り替え手段１０３を用いて引き続く次の起動でファームウェア１０５Ｂを選択するように設定し、情報処理装置を再起動する。
【００２０】
ファームウェア１０５Ｂは、起動すると、ＲＯＭ１０６からファームウェア１０７を読み出し、ＲＯＭ１０４のファームウェア１０５Ａの格納アドレスへ書き込み、ファームウェア１０５Ａの修復を行なう。次に、ファームウェア１０５Ｂが修復完了を監視装置１０２に通知することで、監視装置１２は、切り替え手段１０３を操作し、次回の起動がファームウェア１０５Ａから行われるよう設定し、再起動命令を発行する。
【００２１】
以上の一連の動作により、ファームウェア１０５Ａに異常が検出された場合でもファームウェア１０５Ａは自動的に修復され装置を再起動することができる。なお、ファームウェア１０７はファームウェア１０５Ａと全く同一である必要はなく（同一であっても当然良いが）、古い安定したバージョンのものにしておくことでファームウェア１０５Ａを更新した際、内在するバグによって起動障害に陥った時にも自動的に復旧することができる。
【００２２】
次に、図２に示す本発明の第２の実施形態に係る情報処理装置は、第１の実施形態を改善した構成である。前述した第１の実施形態では、図１のファームウェア１０５Ｂが仮に破損した状態にあっても、このファームウェア１０５Ｂが通常使用されないため、情報処理装置は動作する。この状態においてファームウェア１０５Ａに異常が生じて修復乃至復旧作業が開始された場合、ファームウェア１０５Ｂが破損しているために、正常に修復乃至復旧が行われないという課題が残る。
【００２３】
そこで、第２の実施形態では、ＲＯＭ３０６にファームウェア３０５Ａのバックアップ３０７Ａだけでなく、ファームウェア３０５Ｂのバックアップ３０７Ｂをも格納する。即ち、ファームウェア３０７Ａはファームウェア３０５Ａと同一又は古い安定したバージョン、また、ファームウェア３０７Ｂはファームウェア３０５Ｂと同一又は古い安定したバージョンである。
【００２４】
そして、ファームウェア３０５Ａの起動処理部に図３に示す処理フローを加える。図３を参照して、まず、ファームウェア３０５Ａが手順５００でファームウェア３０５Ｂのチェックサム（ｃｈｅｃｋ　ｓｕｍ；データが正しくやり取りされたか否かのチェック方法）を計算する。次に、手順５１０で求めたチェックサムが正常であるか否かをファームウェア３０５Ａが確認する。
【００２５】
チェックサムが正常であれば、ファームウェア３０５Ｂは修復の必要がないため正常な起動処理を継続する。チェックサムが異常であれば、ファームウェア３０５Ｂは破損しており、手順５２０によってファームウェア３０５Ａが修復を行なう。即ち、ファームウェア３０５Ｂのバックアップ３０７Ｂを読み出してファームウェア３０５Ｂを更新する。図３に示す処理によって、ファームウェア３０５Ａ，３０５Ｂのいずれかに異常が生じた場合にも自動的に修復を行なうことができる。
【００２６】
次に、図４に示す情報処理装置は、通信機能を有する情報処理装置であり、特に通信制御装置やゲーム機に適している。図４に示す第３の実施形態に係る情報処理装置では、図１のＲＯＭ１０６の代わりに、ネットワーク４１２に接続されたネットワークアダプタ４１１を用いて、ファイルサーバ４１３からファームウェア４０５Ａ又はファームウェア４０５Ｂのバックアップ（ファームウェア４１４Ａ又はファームウェア４１４Ｂ）をダウンロードする。ダウンロード手順には、インターネット標準プロトコルであるＤＨＣＰやＴＦＴＰを用いる。第３の実施形態によれば、第１の実施形態及び第２の実施形態で必要であった第２のプログラム記憶手段を不要とすることができる。
【００２７】
以上説明したように、本発明の特徴は、図１に示した構成例を参照すると、通常用ファームウェア１０５Ａが正常に起動しなかった場合に、修復用ファームウェア１０５Ｂを自動的に起動して、ＲＯＭ１０６のファームウェアＡ１０７を用いてファームウェア１０５Ａの復元を行ない、かつ修復されたファームウェア１０５Ａを直ちに起動するシステムである。本発明によれば、情報処理装置自体がファームウェアの異常を検出して修復プログラムを起動することで、人手による作業を行なうことなく異常のあるファームウェアの自動修復を行なうことができる。
【００２８】
更に、本発明の実施形態を具体的に説明すると、本実施形態に係る情報処理装置は、通常運用ファームウェアと起動障害検出時に使用する修復用ファームウェアを記憶する第１のプログラム記憶手段と、前記通常運用ファームウェアのバックアップを記憶する第２のプログラム記憶手段と、前記通常運用ファームウェアと前記修復用ファームウェアのいずれかを実行プログラムとして選択する切り替え手段と、前記通常運用ファームウェアの実行時における障害を検知し装置を再起動する監視装置と、を備え、前記監視装置は、前記切り替え手段を用いて前記監視装置により前記通常運用ファームウェアが正常に起動しなかったとき、前記実行プログラムを前記通常運用ファームウェアから前記修復ファームウェアに切り替えて前記情報処理装置を再起動し、次いで、起動された前記修復用ファームウェアが前記第２のプログラム記憶手段から修復すべき前記通常運用ファームウェアを読み出し、前記第１のプログラム記憶手段の通常運用ファームウェア格納領域へ書き込むことにより前記通常運用ファームウェアを自動的に復元する。
【００２９】
また、本発明の他の実施形態に係る情報処理装置は、上述した情報処理装置の機能に加え、修復用ファームウェアをも第２のプログラム記憶手段に格納する。そして、通常運用ファームウェアの起動処理部に、修復用ファームウェアの正当性を検査し、異常があった場合に前記第２のプログラム記憶手段から修復すべき修復用ファームウェアを読み出し、前記第１のプログラム記憶手段の前記修復用ファームウェア格納領域へ書き込む機能を持たせる。これにより、前記通常運用ファームウェアと修復用ファームウェアのいずれに異常が生じた場合でもファームウェアを自動的に復元する。
【００３０】
また、本発明の更に他の実施形態に係る情報処理装置は、上述した情報処理装置における前記第２のプログラム記憶手段の代わりに、ネットワークに接続されたファイルサーバから前記通常運用ファームウェアないし前記修復用ファームウェアをダウンロードすることにより、前記第２のプログラム記憶手段を不要とする。
【００３１】
【発明の効果】
本発明によれば、情報処理装置自体がファームウェアの異常を検出し、修復プログラムを起動することで、人手による作業を行なうことなく異常のあるファームウェアの自動修復を行なうことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る情報処理装置の全体構成を示すブロック図である。
【図２】本発明の第２の実施形態に係る情報処理装置の全体構成を示すブロック図である。
【図３】本発明の第２の実施形態における第１のファームウェアに追加する処理のフローを示す図である。
【図４】本発明の第３の実施形態に係る情報処理装置の全体構成を示すブロック図である。
【図５】従来技術に関する情報処理装置の全体構成を示すブロック図である。
【符号の説明】
１０１，２０１，３０１，４０１　ＣＰＵ又はプロセッサ
１０２，２０２，３０２，４０２　監視装置
１０３，２０３，３０３，４０３　切り替え手段
１０４，２０４，３０４，４０４　ＲＯＭ
１０５Ａ，２０５Ａ，３０５Ａ，４０５Ａ　ファームウェアＡ
１０５Ｂ，２０５Ｂ，３０５Ｂ，４０５Ｂ　ファームウェアＢ
１０６，３０６　ＲＯＭ
１０７　ファームウェアＡのバックアップ
１１０，２１０，３１０，４１０　システムバス
３０７Ａ，４１４Ａ　ファームウェアＡのバックアップ
３０７Ｂ，４１４Ｂ　ファームウェアＢのバックアップ
４１１　ネットワークアダプタ
４１２　ネットワーク
４１３　ファイルサーバ
【図１】
2004054616.tif 000003
【図２】
2004054616.tif 000004
【図３】
2004054616.tif 000005
【図４】
2004054616.tif 000006
【図５】
2004054616.tif 000007