(57)【要約】【課題】複数のＣＰＵのいずれかのファームウェアに異常が検知された場合に、ファームウェアの異常を適切に修復する。【解決手段】第１プロセッサに対応するファームウェアは、いずれかのプロセッサにおいて異常があったことを外部に対して通知する第１通知部と、異常があったプロセッサの、正常なファームウェアを取得し、取得したファームウェアで異常を修復する第１修復部と、を有し、第２プロセッサに対応するファームウェアは、異常があったプロセッサの、正常なファームウェアを取得し、取得したファームウェアで異常を修復する第２修復部、を有し、第３プロセッサに対応するファームウェアは、いずれかのプロセッサにおいて異常があったことを外部に対して通知する第３通知部、を有する。【選択図】図３
2014179047.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１プロセッサ、第２プロセッサ、及び第３プロセッサを含む複数のプロセッサと、
前記プロセッサそれぞれに対応するファームウェアと、
前記ファームウェアを起動し、前記ファームウェアの異常を検知し、異常があった場合に他の前記プロセッサの前記ファームウェアに対して通知するブートプログラムと、
を備え、
前記第１プロセッサに対応する前記ファームウェアは、
いずれかのプロセッサにおいて異常があったことを外部に対して通知する第１通知部と、
前記異常があったプロセッサの、正常な前記ファームウェアを取得し、取得した前記ファームウェアで前記異常を修復する第１修復部と、
を有し、
前記第２プロセッサに対応する前記ファームウェアは、
前記異常があったプロセッサの、正常な前記ファームウェアを取得し、取得した前記ファームウェアで前記異常を修復する第２修復部、
を有し、
前記第３プロセッサに対応する前記ファームウェアは、
いずれかのプロセッサにおいて異常があったことを外部に対して通知する第３通知部、
を有する、
ことを特徴とする情報処理装置。
【請求項２】
前記第１プロセッサの前記ファームウェアはネットワーク通信を制御可能であり、
前記第１通知部は、前記ネットワーク通信を通じて、前記プロセッサに異常が検知された旨をメールおよびブロードキャストの少なくとも一方で通知する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１プロセッサの前記ファームウェアがネットワーク通信を制御可能であり、
前記第１修復部は、前記ネットワーク通信を通じて、前記正常なファームウェアが格納されたファームウェア管理サーバから前記ファームウェアを取得する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第２修復部が、装置に挿入され、前記正常なファームウェアが格納されたＳＤカード、又はＵＳＢメモリから前記ファームウェアを取得する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記ファームウェアは、バージョン情報を有しており、
前記第１修復部は、前記ファームウェア管理サーバに対して、前記バージョン情報を通知して、最新の前記ファームウェアを取得する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記ブートプログラムは、前記ファームウェアに検知された前記異常の重要度を判断し、
前記第１通知部、又は前記第３通知部は、前記異常の重要度に応じて、通知方法を変更する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記ブートプログラムは、前記ファームウェアに検知された前記異常の重要度を判断し、
前記第１修復部、又は前記第２修復部は、前記異常の重要度に応じて、前記正常なファームウェアの取得先を変更する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記第１修復部、及び前記第２修復部は、取得した前記正常なファームウェアをメモリ上にキャッシュしたあとに、所定の前記ファームウェア用の記憶部へと書き込み、
前記ブートプログラムは、前記メモリ上にキャッシュされた前記ファームウェアと、前記記憶部に書き込まれた前記ファームウェアとの異常を検知し、前記記憶部に書き込まれた前記ファームウェアのみに異常が検知された場合に、前記記憶部に障害が発生していると判断する
ことを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置においては起動時にブートプログラムが動作して起動対象のファームウェアを起動する。このとき、起動時に動作させるプログラムが正当なプログラムであるかどうかを検査し、プログラムのセキュリティを確保したり、プログラムの破損といった異常を検知したりするための技術が知られている。例えば特許文献１には、起動時にディジタル署名等を使用した改ざん検知を実施する方法が開示されている。
【０００３】
また、マルチコアシステムにおいて動作するプログラムについて、複数のプログラムが動作し、メインＣＰＵ上のプログラムに対する異常を検知した場合にサブＣＰＵ上のプログラムがメインＣＰＵ上で動作するプログラムを修復する方法が既に知られている。また、マルチ制御装置システムにおいて動作するプログラムについて、一方のシステムブートに失敗した場合に同一のプログラムを有するもう一方のシステムにより復旧する方法が既に知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、メインＣＰＵ上で動作するプログラムを修復するためのサブＣＰＵ上で動作するプログラムが改ざん、または破損している場合においては、これを修復する手段がない。修復手段がない場合、カスタマーエンジニアによるボード交換などが必要になり、その間ユーザは機器を使用できなくなるなど可用性を損なう事態に陥ってしまう。その際、機器の利用者に対する通知手段がない場合、機器の利用者は発生した事態を把握できず、カスタマーエンジニアによる復旧を待つ必要がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、ＣＰＵのファームウェアに異常が検知された場合に、ファームウェアの異常を適切に修復することのできる情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、少なくとも第１プロセッサ、第２プロセッサ、及び第３プロセッサを含む複数のプロセッサと、前記プロセッサそれぞれに対応するファームウェアと、前記ファームウェアを起動し、前記ファームウェアの異常を検知し、異常があった場合に他の前記プロセッサの前記ファームウェアに対して通知するブートプログラムと、を備え、前記第１プロセッサに対応する前記ファームウェアは、いずれかのプロセッサにおいて異常があったことを外部に対して通知する第１通知部と、前記異常があったプロセッサの、正常な前記ファームウェアを取得し、取得した前記ファームウェアで前記異常を修復する第１修復部と、を有し、前記第２プロセッサに対応する前記ファームウェアは、前記異常があったプロセッサの、正常な前記ファームウェアを取得し、取得した前記ファームウェアで前記異常を修復する第２修復部、を有し、前記第３プロセッサに対応する前記ファームウェアは、いずれかのプロセッサにおいて異常があったことを外部に対して通知する第３通知部、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ＣＰＵのファームウェアに異常が検知された場合に、ファームウェアの異常を適切に修復することのできるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態の情報処理装置のハードウェア構成を示す図である。
【図２】図２は、実施形態の情報処理装置の接続態様を示す図である。
【図３】図３は、実施形態の各ＣＰＵにおけるファームウェアの構成を示す図である。
【図４】図４は、実施形態の内部ＲＯＭにおけるブートプログラムの格納態様を示す図である。
【図５】図５は、実施形態の外部ＲＯＭにおける各プログラムの割り当ての構成を示す図である。
【図６】図６は、実施形態の第１ＣＰＵのファームウェアに異常が発生した場合の処理の流れを示すシーケンス図である。
【図７】図７は、実施形態の第２ＣＰＵのファームウェアに異常が発生した場合の処理の流れを示すシーケンス図である。
【図８】図８は、実施形態の第３ＣＰＵのファームウェアに異常が発生した場合の処理の流れを示すシーケンス図である。
【図９】図９は、実施形態の各ＣＰＵで異常を検知した場合に、異常発生時に可能な異常処理を示した図である。
【図１０】図１０は、実施形態の２つのＣＰＵで異常を検知した場合に、異常発生時に可能な異常処理を示した図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、情報処理装置１の実施の形態を詳細に説明する。図１は、実施の形態にかかる情報処理装置１のハードウェア構成を示すブロック図である。本実施形態では、情報処理装置１は、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ）として実装されている。情報処理装置１は、第１ＣＰＵ１１（プロセッサ）、第２ＣＰＵ１２、第３ＣＰＵ１３、ＲＡＭ１４、暗号処理部１５、ネットワーク入出力部１６、内部ＲＯＭ１７、カード入出力部１８、ユーザインタフェース１９、ＵＳＢ入出力部２０、ＮＶＲＡＭ２１、汎用入出力部２２を備えている。情報処理装置１は、ＣＰＵコアを３コア保持したマルチプロセッサである。内部ＲＯＭ１７には、ブートプログラムが保持されており、第１ＣＰＵ１１、第２ＣＰＵ１２、第３ＣＰＵ１３は、この内部ＲＯＭ１７上のプログラムを起点にブートを開始する。内部ＲＯＭ１７は、不揮発性であって、書き換え不可能である。したがって、内部ＲＯＭ１７に記憶されたブートプログラムは改ざんされることがないようになっている。
【００１０】
内部ＲＯＭ１７としてはマスクＲＯＭを使用することを想定している。ブートプログラムのストレージとしてマスクＲＯＭを使用することは、プログラムの正当性検証の起点となるべきブートプログラムが改ざんされていないことを保証するためには望ましい。また、マスクＲＯＭは一般的に高価であり、プログラムサイズを低容量とすることが望ましい。
【００１１】
また、情報処理装置１は、ＳｏＣの外部ボードに、ブートプログラムによって起動される主となるサービスを提供するファームウェアを格納する外部ＲＯＭ２３が接続される。外部ＲＯＭ２３としては、ＮＯＲ  ＦＬＡＳＨ  ＭＥＭＯＲＹやＮＡＮＤ  ＦＬＡＳＨ  ＭＥＭＯＲＹといった不揮発のデバイスが用いられる。このような外部ＲＯＭはマスクＲＯＭと比較して比較的大容量で安価であるが、３つのＣＰＵコアによりストレージとして共有される。そのため、外部ＲＯＭ２３に配置するプログラムサイズは低容量とすることが望ましい。
【００１２】
さらに、情報処理装置１は、ネットワーク入出力部１６、カード入出力部１８、ＵＳＢ入出力部２０を通して、それぞれの接続先と通信を行い、ファームウェアの取得を行う。ネットワーク入出力部１６は、ファームウェア管理サーバと接続されている。カード入出力部１８は、ＳＤカードデバイスと接続されている。また、ＵＳＢ入出力部２０は、ＵＳＢメモリと接続されている。
【００１３】
また、ユーザインタフェース１９は、例えばキーボードやディスプレイなどの情報の表示と操作とが可能なデバイスであり、ユーザからの入力受付、及びユーザへの情報通知を行う。
【００１４】
暗号処理部１５は、起動時の正当性検証における暗号処理を行う。ＮＶＲＡＭ２１はユーザによる設定値などを記憶する。汎用入出力部２２は、ＬＥＤディスプレイなどの出力装置が接続され、ファームウェアでの通知・復旧ができないことを通知する。ディップスイッチ２４は、通常の起動か緊急復旧手段としてＳＤカード上のプログラムを使用してファームウェア全体の復旧を実施するかを選択するために使用される。
【００１５】
図２は、情報処理装置１と外部装置との接続態様を示す図である。図２に示されるように情報処理装置１には、ネットワークを通じて、ファームウェア管理サーバ３０を接続する。したがって、情報処理装置１は起動時に異常検知をした場合に、修復用のファームウェアをファームウェア管理サーバ３０からダウンロードして、実行することができるようになる。また、情報処理装置１は、起動時の異常通知先として、メールサーバ４０や管理者ＰＣ５０と接続される。これにより情報処理装置１は、機器管理者やカスタマーエンジニアに対する異常の通知を行うことが可能となる。
【００１６】
次に、ＣＰＵ上で動作するファームウェアの構成について説明する。本実施形態にあっては、３つのＣＰＵが動作するマルチプロセッサであるため、各ＣＰＵ上で動作する３つのファームウェアが存在する。
【００１７】
図３は、各ＣＰＵにおけるファームウェアの構成を示す。起動時には各ＣＰＵに対応するブートプログラム６１、７１、８１がそれぞれに対応する３つのファームウェア６２、７２、８２を起動させる。ブートプログラム６１、７１、８１は内部ＲＯＭ１７に記憶されている。また、ファームウェア６２、７２、８２は起動前にあっては外部ＲＯＭ２３に記憶されており、起動されることでＲＡＭ１４上にロードされる。
【００１８】
各ＣＰＵのブートプログラム６１、７１、８１は起動対象のファームウェア６２、７２、８２に対して正当性の検証を行い、正当であればファームウェア６２、７２、８２の起動を行う。また、ブートプログラム６１、７１、８１は、正当性の検証の結果、ファームウェア６２、７２、８２に異常が検知された場合に、他のＣＰＵのファームウェアに対して、異常処理の依頼を行う。異常処理としては、ファームウェアを修復する処理や、異常を管理者等に対して通知する処理がある。
【００１９】
ファームウェア６２は、通知プログラム６３（通知部）、及び修復プログラム６４（修復部）を含む。通知プログラム６３は、ブートプログラム６１が異常を検知した場合に、異常があった旨を他のファームウェア７２、８２に対して通知する処理を行う。通知プログラム６３が通知処理を実行する方法としては、メールサーバ４０にネットワーク入出力部１６から接続し、メールやブロードキャストを使用して行う方法が採られている。修復プログラム６４は、ブートプログラム６１が異常を検知した場合に、異常の修復を行う。修復プログラム６４が、ファームウェアの修復を行う方法としては、ファームウェア管理サーバ３０にアクセスし、修復用のファームウェアをダウンロードする方法が採られている。
【００２０】
ファームウェア７２は、修復プログラム７４を含む。修復プログラム７４は、ブートプログラム６１が異常を検知した場合に、異常の修復を行う。修復プログラム７４によるファームウェアの修復の方法としては、カード入出力部１８に挿入されたＳＤカードから修復用のファームウェアを取得する方法が採られている。ファームウェア８２は、通知プログラム８３を含む。通知プログラム８３は、ブートプログラム６１が異常を検知した場合に、異常があった旨を他のファームウェア６２、７２に対して通知する処理を行う。通知プログラム８３が通知を行う方法としては、ユーザインタフェース１９、例えば表示用ディスプレイなどによって画面上にファームウェアに異常が発生したことを通知するメッセージを表示させる方法が採られている。
【００２１】
これらのプログラムによって、各ＣＰＵ上で動作するブートプログラム６１、７１、８１が異常を検知した場合に別のＣＰＵ上で動作するファームウェア６２、７２、８２に対して修復、又は通知の処理を依頼することが可能となる。
【００２２】
次に、３つのコア上で動作するファームウェア６２、７２、８２の機能について説明する。第１ＣＰＵ１１のファームウェア６２は、装置の省エネ制御、及びネットワーク通信の制御を行う。第２ＣＰＵ１２のファームウェア７２は、メインとなるアプリケーションやサービスの実行を制御する。第３ＣＰＵ１３のファームウェア８２は、ユーザインタフェース１９の制御を行う。
【００２３】
なお、各ファームウェア６２、７２、８２が行う異常処理の方法は、本来ファームウェア６２、７２、８２に実装されている機能に従ったものであることが望ましい。例えば、異常処理としてメールによる通知を行う場合などは、ネットワーク通信が必要となることから、ネットワーク通信の制御を機能して有している必要がある。
【００２４】
次に図４を参照して、内部ＲＯＭ１７におけるブートプログラムの格納態様を説明する。図４に示されるように、第１ＣＰＵ１１〜第３ＣＰＵ１３に対応するブートプログラム６１、７１、８１は、不揮発であり書き換え不可能なデバイスである内部ＲＯＭ１７に格納されている。これにより、プログラムの改ざんがなされない起動を行うことができる。
【００２５】
続いて、図５を参照して、外部ＲＯＭ２３における各プログラムの割り当ての構成を示す。本実施形態では、外部ＲＯＭ２３がファームウェア用の記憶部である。図５に示されるように、外部ＲＯＭ２３には、第１ＣＰＵ１１のファームウェア６２、第２ＣＰＵ１２のファームウェア７２、第３ＣＰＵ１３のファームウェア８２がそれぞれ異なる領域に格納される。ブートプログラム６１、７１、８１が本デバイス上のプログラムの正当性検証を行なってから起動させることで改ざんされていないプログラムを動作させていることを保証する。
【００２６】
各ファームウェア６２、７２、８２には異常処理として通知、又は異常修復の機能がそれぞれ付与されており、ファームウェア６２には、通知プログラム６３、及び修復プログラム６４が含まれている。また、ファームウェア７２には、修復プログラム７４が含まれている。また、ファームウェア８２には、通知プログラム８３が含まれている。また、異常発生時の修復処理として、ファームウェア６２、７２、８２のうち異常があったものを新たに取得し、書き換える必要がある。この際、全てのファームウェア６２、７２、８２を一括して書き換えてもよいし、異常のあったファームウェア６２、７２、８２のみを書き換えるようにしてもよい。
【００２７】
次に、各ＣＰＵのファームウェアに異常が生じた場合の処理の流れについて説明する。図６は、第１ＣＰＵ１１のファームウェア６２に異常が発生した場合の処理の流れを示すシーケンス図である。
【００２８】
図６に示されるように、まずユーザが装置を起動させようとすることにより、第１ＣＰＵ１１、第２ＣＰＵ１２、第３ＣＰＵ１３それぞれに起動命令が送られる（ステップＳ１０１）。起動命令が送られると、各ＣＰＵに対応したブートプログラム６１、７１、８１がそれぞれのファームウェアのプログラムの正当性の検証を行う（ステップＳ１０２〜Ｓ１０４）。この際、第２ＣＰＵ１２と第３ＣＰＵ１３とでは、ファームウェア７２、８２が正常であるため、通常の起動処理が行われる（ステップＳ１０５、ステップＳ１０６）。この際、ＲＡＭ１４に起動成功を示す識別子を書き込む。
【００２９】
一方、第１ＣＰＵ１１のファームウェア６２については、異常が検知されたため（ステップＳ１０７）、ブートプログラム６１は、第３ＣＰＵ１３へと異常通知の依頼をする（ステップＳ１０９）。第３ＣＰＵ１３の通知プログラム８３は、ユーザインタフェース１９を通じて第１ＣＰＵ１１の異常を通知させる（ステップＳ１１０）。この際の通知の内容としては、第１ＣＰＵ１１に異常が発生していること、及び復旧用のファームウェアが格納されたＳＤカードの挿入を促すことが含まれている。
【００３０】
第１ＣＰＵ１１のファームウェア６２に異常が検知された場合、ファームウェア６２を使用して異常通知や修復の処理を行うことはできない。そこで、まず第３ＣＰＵ１３に対して依頼を発行する。この依頼に先当たって、第１ＣＰＵ１１のブートプログラム６１は、第２ＣＰＵ１２、第３ＣＰＵ１３が正常に起動しているか否かを確認する。確認の方法としては、ＲＡＭ１４上に起動成功、又は起動失敗を示す識別子が記憶されており、この識別子を読み取ることで確認が行われる。
【００３１】
第１ＣＰＵ１１のブートプログラム６１は、続いて第２ＣＰＵ１２に対してファームウェア６２の修復処理の依頼を行い（ステップＳ１１１）、自身の処理を停止させる（ステップＳ１１３）。第２ＣＰＵ１２の修復プログラム７４は修復処理を開始し（ステップＳ１１２）、カード入出力部１８を使用してＳＤカードの挿入を確認し、ＳＤカードからファームウェアを読み込み（ステップＳ１１４）、その後第１ＣＰＵ１１のファームウェアを外部ＲＯＭ２３の所定の領域に書き込む（ステップＳ１１５）。修復プログラム７４は、書き換えたプログラムの正当性を検証し（ステップＳ１１６）、第１ＣＰＵ１１を再起動させる（ステップＳ１１７）。
【００３２】
次に、第２ＣＰＵ１２のファームウェア７２に異常が見られた場合について図７を参照して説明する。まずユーザが装置を起動させようとすることにより、第１ＣＰＵ１１、第２ＣＰＵ１２、第３ＣＰＵ１３それぞれに起動命令が送られる（ステップＳ２０１）。起動命令が送られると、各ＣＰＵに対応したブートプログラム６１、７１、８１がそれぞれのファームウェアのプログラムの正当性の検証を行う（ステップＳ２０２〜Ｓ２０４）。この際、第１ＣＰＵ１１と第３ＣＰＵ１３とでは、ファームウェア６２、８２が正常であるため、通常の起動処理が行われる（ステップＳ２０５、ステップＳ２０７）。この際、ＲＡＭ１４に起動成功を示す識別子を書き込む。
【００３３】
一方、第２ＣＰＵ１２のファームウェア７２については、異常が検知されたため（ステップＳ２０６）、ブートプログラム７１は、第３ＣＰＵ１３へと異常通知の依頼をする（ステップＳ２０８）。第３ＣＰＵ１３の通知プログラム８３は、ユーザインタフェース１９を通じて第２ＣＰＵ１２の異常を通知させる（ステップＳ２０９）。この際の通知の内容としては、第２ＣＰＵ１２に異常が発生していることを表示するのみであって、ＳＤカードの挿入を促すメッセージは含まれていなくてもよい。
【００３４】
第２ＣＰＵ１２のブートプログラム７１は、続いて第１ＣＰＵ１１に対してファームウェア７２の修復処理の依頼を行い（ステップＳ２１０）、自身の処理を停止させる（ステップＳ２１１）。第１ＣＰＵ１１の修復プログラム６４は修復処理を開始し（ステップＳ２１２）、ネットワーク入出力部１６を使用してファームウェア管理サーバ３０からファームウェアをダウンロードする（ステップＳ２１３）。その後、修復プログラム６４は、第２ＣＰＵ１２のファームウェアを外部ＲＯＭ２３の所定の領域に書き込む（ステップＳ２１４）。修復プログラム６４は、書き換えたプログラムの正当性を検証し（ステップＳ２１５）、第２ＣＰＵ１２を再起動させる（ステップＳ２１６）。
【００３５】
次に、第３ＣＰＵ１３のファームウェア８２に異常が見られた場合について図８を参照して説明する。まずユーザが装置を起動させようとすることにより、第１ＣＰＵ１１、第２ＣＰＵ１２、第３ＣＰＵ１３それぞれに起動命令が送られる（ステップＳ３０１）。起動命令が送られると、各ＣＰＵに対応したブートプログラム６１、７１、８１がそれぞれのファームウェアのプログラムの正当性の検証を行う（ステップＳ３０２〜Ｓ３０４）。この際、第１ＣＰＵ１１と第２ＣＰＵ１２とでは、ファームウェア６２、７２が正常であるため、通常の起動処理が行われる（ステップＳ３０５、ステップＳ３０６）。この際、ＲＡＭ１４に起動成功を示す識別子を書き込む。
【００３６】
一方、第３ＣＰＵ１３のファームウェア８２については、異常が検知されたため（ステップＳ３０７）、ブートプログラム８１は、第１ＣＰＵ１１へと異常通知の依頼をする（ステップＳ３０８）。第１ＣＰＵ１１の通知プログラム６３は、ネットワーク入出力部１６を通じて第３ＣＰＵ１３の異常をメールやブロードキャストで通知させる（ステップＳ３０９）。この際の通知の内容としては、第３ＣＰＵ１３に異常が発生していることである。
【００３７】
第３ＣＰＵ１３のブートプログラム８１は、続いて第１ＣＰＵ１１に対してファームウェア８２の修復処理の依頼を行い（ステップＳ３１０）、自身の処理を停止させる（ステップＳ３１５）。第１ＣＰＵ１１の修復プログラム６４は修復処理を開始し、ネットワーク入出力部１６を使用してファームウェア管理サーバ３０からファームウェアをダウンロードする（ステップＳ３１１）。その後、修復プログラム６４は、第２ＣＰＵ１２のファームウェアを外部ＲＯＭ２３の所定の領域に書き込む（ステップＳ３１２）。修復プログラム６４は、書き換えたプログラムの正当性を検証し（ステップＳ３１３）、第３ＣＰＵ１３を再起動させる（ステップＳ３１４）。
【００３８】
以上で示した本実施形態の情報処理装置１の効果を以下で説明する。図９は、各ＣＰＵで異常を検知した場合に、異常発生時に可能な異常処理を示した図である。図中における網掛けの部分は、実施できない処理の内容となっている。図９に示されるように、いずれのＣＰＵに異常が検知された場合であっても、他のＣＰＵのファームウェアが通知、及び修復の処理を代行して行うことができるようになる。
【００３９】
図１０は、２つのＣＰＵで異常を検知した場合に、異常発生時に可能な異常処理を示した図である。この場合も、通知のみができる場合、通知、修復の両方ができる場合、修復のみができる場合があり、第１ＣＰＵ１１のファームウェア６２と、第２ＣＰＵ１２のファームウェア７２との両方に異常が検知された場合を除き、修復が可能である。そして、第１ＣＰＵ１１のファームウェア６２と、第２ＣＰＵ１２のファームウェア７２との両方に異常が検知された場合であっても、例えばユーザがＳＤカードを通知を見てから挿入し、手動で修復作業を行うことができる。また、修復のみが可能な場合は、修復が行われたことをＲＡＭ１４に記憶させることで修復後に修復された旨を通知することもできるようになる。次に全てのＣＰＵで異常を検知した場合について説明する。この場合、すべてのＣＰＵに対するファームウェア６２、７２、８２では通知・修復もできないため、ブートプログラム６１、７１、８１のいずれかにより全てのＣＰＵで異常を検知した旨を汎用入出力部２２に接続されたＬＥＤディスプレイにより通知する。
【００４０】
したがって、以上で示した本実施形態の情報処理装置にあっては、全てのＣＰＵに対して、通知と修復を行うことのできるファームウェアを設ける必要がなく、ファームウェア用の記憶容量を抑制させることができるようになる。また、３つのファームウェア６２、７２、８２うちの１つ、又は２つで異常がみられた場合においても、他のファームウェアにおいて、異常の通知と、復帰処理を実施することが可能となる。
【００４１】
なお、本実施形態は以下のように構成を変更して実施してもよい。例えば、各ファームウェア６２、７２、８２のバージョン情報がＲＡＭ１４に記憶されており、ファームウェア管理サーバ３０を通じて、ファームウェアの修復を行う際には、修復プログラム６４は、バージョン情報もサーバに対して通知し、最新のファームウェアを取得するようにしてもよい。
【００４２】
また、各ブートプログラム６１、７１、８１は、ファームウェア６２、７２、８２の異常を検知した際にその異常の重要度を判断する機能を備えていてもよい。そして、通知プログラム６３、８３は、異常の重要度に応じて、通知の方法を変更する、例えば重要度が高い場合は、管理者に対してメールし、重要度が低い場合は、画面に表示するのみとするといった方法であってもよい。重要度を判断する方法としては、異常の種類毎に重要度を割り当てたデータを、あらかじめＮＶＲＡＭ２１などに記憶させておき、ブートプログラムが異常判断時に参照することによって実現することができる。また、同様に修復プログラム６４、７４が異常の重要度に応じて、ファームウェアの取得先を変更するようにしてもよい。
【００４３】
また、修復プログラム７４がファームウェアを取得するのは、ＳＤカードからであったが、これは他の外部記憶デバイス、例えばＵＳＢメモリからであってもよい。また、各修復プログラムが取得したファームウェアのデータを外部ＲＯＭ２３に書き込む前に、ＲＡＭ１４にキャッシュすることとする。そして、ブートプログラム６１、７１、８１は、ＲＡＭ１４にキャッシュされたファームウェアの異常を検知する。また、ブートプログラム６１、７１、８１は、外部ＲＯＭ２３に書き込まれた後のファームウェアの異常の検知を行う。ここで、仮にＲＡＭ１４にキャッシュされたファームウェアからは異常が検知されないが、外部ＲＯＭ２３に書き込まれたファームウェアから異常が検知された場合、外部ＲＯＭ２３のハードウェア自身に障害が発生しているものと判断することができるようになる。なお、マルチプロセッサを搭載する装置は、マルチプロセッサを搭載する数々の情報処理装置等に適用することができる。
【符号の説明】
【００４４】
１  情報処理装置
１１  第１ＣＰＵ
１２  第２ＣＰＵ
１３  第３ＣＰＵ
１４  ＲＡＭ
１５  暗号処理部
１６  ネットワーク入出力部
１７  内部ＲＯＭ
１８  カード入出力部
１９  ユーザインタフェース
２０  ＵＳＢ入出力部
２１  ＮＶＲＡＭ
２２  汎用入出力部
２３  外部ＲＯＭ
２４  ディップスイッチ
３０  ファームウェア管理サーバ
４０  メールサーバ
５０  管理者ＰＣ
６１  ブートプログラム
６２  ファームウェア
６３  通知プログラム
６４  修復プログラム
７１  ブートプログラム
７２  ファームウェア
７４  修復プログラム
８１  ブートプログラム
８２  ファームウェア
８３  通知プログラム
【先行技術文献】
【特許文献】
【００４５】
【特許文献１】特開２０１０−１４６１１０号公報
【図１】
2014179047.tif 000003
【図２】
2014179047.tif 000004
【図３】
2014179047.tif 000005
【図４】
2014179047.tif 000006
【図５】
2014179047.tif 000007
【図６】
2014179047.tif 000008
【図７】
2014179047.tif 000009
【図８】
2014179047.tif 000010
【図９】
2014179047.tif 000011
【図１０】
2014179047.tif 000012