(57)【要約】【課題】不揮発性メモリのアクセス速度や装置への過負荷等といった性能面への影響を低減可能とする。【解決手段】ブート実行手段３２０は、各種制御プログラム１０１ｉ〜１０３ｉをロードエリア２１０にロードし、かつ照合用エリア２２０に対して制御プログラム１０１ｉのイメージ１０１０ｉをコピーする。照合復旧・前処理プログラム１０２ｉは、制御プログラム１０１ｉのイメージと照合用エリア２２０上の同イメージ１０１０ｉを照合する。一致する場合に制御プログラム１０１ｉを実行させる。相違がある場合に不揮発性メモリ１００上の制御プログラム１０１ｉのイメージをロードエリア２１０に再ロードし、照合用エリア２２０上にコピーし、制御プログラム１０１ｉを実行させる。その後、照合復旧・後処理プログラム１０３ｉは、再度照合処理を実行し、一致する場合に照合復旧・前処理プログラム１０２ｉ＋１を実行させる。【選択図】図１
2010211534.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ上の１以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、
前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、
前記不揮発性メモリは、
前記制御プログラムの実行前に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第１の照合復旧プログラムと、
前記制御プログラムの実行後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第２の照合復旧プログラムと、を前記制御プログラム毎に有し、
前記第１の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、前記ロードエリア上の前記制御プログラムを実行させ、
前記第２の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、実行後の当該制御プログラムを正常とすることを特徴とする情報処理装置。
【請求項２】
前記第１の照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の当該制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
このロードエリア上の制御プログラムを実行させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の照合復旧プログラムは、前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
このロードエリア上の制御プログラムを実行させることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２の照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない連続した回数を計測し、
当該回数が所定の閾値に達した場合に、本情報処理装置の駆動を停止させることを特徴する請求項３に記載の情報処理装置。
【請求項５】
前記第１及び２の照合復旧プログラムは、前記不揮発性メモリ上で実行させることを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
不揮発性メモリ上の実行順序が定まった１以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、
前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、
前記不揮発性メモリは、全ての前記制御プログラムが順次実行された後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を、前記制御プログラムの実行順序に応じて繰り返し実行する照合復旧プログラムを有し、
前記照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、次の制御プログラムに対して前記照合処理を実行することを特徴とする情報処理装置。
【請求項７】
前記照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
次の制御プログラムに対して前記照合処理を実行することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記照合復旧プログラムは、前記不揮発性メモリ上で実行させることを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
前記主メモリは、前記照合用エリアを複数面有し、
前記第１の照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも１つの照合で両制御プログラムが一致する場合に、このロードエリア上の制御プログラムを実行することを特徴する請求項１に記載の情報処理装置。
【請求項１０】
前記主メモリは、前記照合用エリアを複数面有し、
前記第２の照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも１つの照合で両制御プログラムが一致する場合に、この制御プログラムを正常とすることを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記主メモリは、前記照合用エリアを複数面有し、
前記照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも１つの照合で両制御プログラムが一致する場合に、次の制御プログラムに対して前記照合処理を実行することを特徴とする請求項６に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリから主メモリ上に予め設定された複数の制御プログラムを読み出し、複数段階の制御を順次実行し、かつ、これを一定周期で繰り返す情報処理装置に関する。
【背景技術】
【０００２】
従来からの複数段階の制御を繰り返し実行する情報処理装置の構成を示すと、図２０の通りである。すなわち、情報処理装置は、フラッシュメモリ等の不揮発性メモリ１００から当該制御プログラム１０１を主メモリにロードし、演算処理部（ＣＰＵ）３００により当該制御プログラム１０１を実行するよう構成されている。
【０００３】
具体的には、不揮発性メモリ１００は、各種制御プログラム１０１ｉ（ｉ＝１〜ｎ）、固定データ、可変データが格納されているロードデータ実体格納エリア１１０と、当該制御プログラム１０１のロード先、固定データのロード先、可変データのロード先が記憶されているロード先アドレス格納エリア１２０と、を有している。
【０００４】
また、主メモリ２００は、ＤＲＡＭ又はＳＲＡＭから構成され、各種制御プログラム１０１ｉ、固定データ、可変データがロードされるロードエリア２１０を有している。演算処理部３００は、主メモリ２００上のロードエリア２１０の各種制御プログラム１０１ｉを定周期で実行する定周期実行要求手段３１０を有している。
【０００５】
このような構成を有する処理装置では、次のように、各種制御プログラム１０１ｉが実行される。まず、当該情報処理装置の立上げ時に、不揮発性メモリ１００上に格納されたロード先アドレス格納エリア１２０を参照して、制御の各段階を処理するための制御プログラム１０１ｉ、固定データ、可変データをロードデータ実体格納エリア１１０から、主メモリ２００上のロードエリア２１０に対してロードするブート処理が行われる。
【０００６】
そして、定常の運転状態において、この情報処理装置では、演算処理部３００の定周期実行要求手段３１０が、主メモリ２００上のロードエリア２１０上の制御プログラム１０１i（ｉ＝１）を定周期（例えば、２００ｍｓ、４００ｍｓ、１秒単位等）で実行させる。制御プログラム１０１ｉ（ｉ＝１）では、自制御処理を実行し終了した際に、後段の制御プログラム１０１ｉ＋１に対して実行要求を行い、実行処理が後段の制御プログラム１０１ｉ＋１に移行する。
【０００７】
このような実行処理が、ロードエリア２１０上の最後段の制御プログラム１０１ｎによる制御処理が終了するまで繰り返される。なお、ここでは、制御プログラム１０１ｉ（ｉ＝１〜ｎ）の実行処理を、定周期実行時間以内に行うことで、図２０に示すような、演算処理部３００による入力情報に応じた出力制御が連続して行われている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、近年のメモリの高速化や高集積化に伴い、情報処理装置の主メモリ２００として使用しているＳＲＡＭ又はＤＲＡＭでは、ノイズ、あるいは宇宙線粒子通過などの影響により、一定の確率で、ハード的に破壊されない一時的なデータ反転が発生する現象（ビット化け。以下、「ソフトエラー」とも称する）が避けられない状況下にある。
【０００９】
ここで、ハードウェア回路によるＥＣＣ（Ｅｒｒｏｒ Ｃｈｅｃｋ ａｎｄ Ｃｏｒｒｅｃｔ）により、誤り検知や訂正を行うことは可能であるが、組み込みシステム分野においてはメモリ速度の関係でＥＣＣの実装が困難である。そのため、システムによるエラーの発生の検出及び訂正ができない状態で処理を継続し、あるいは異常停止してしまうので、当該システムの信頼性や稼働率の低下に影響を及ぼしていた。
【００１０】
また、仮にＥＣＣを実装した場合であっても、メモリから読み出したデータの訂正を行うことは可能であるが、メモリ上のデータに対しては訂正が行われずに誤りデータが残存したままとなり、長期間、無停止で稼働させるシステムにおいては、１読み出し単位（例えば、１ワード）で複数ビットの反転に至っていた。それ故に、データ読み出し時に訂正ができない場合が生じた。
【００１１】
なお、近年では、上述した図２０で言えば、各制御プログラム１０１ｉの実行の前後において、不揮発性メモリ１００上のプログラムコードと主メモリ２００上のプログラムコード（以下、「プログラムイメージ」とも称する）を照合することで、コードに相違があった場合にソフトエラーが生じているとして、当該制御プログラム１０１ｉを不揮発性メモリ１００から主メモリ２００へ再ロードする装置が提案されている。しかしながら、このような制御プログラム１０１ｉを再ロードする装置では、ソフトエラーの発生状態を復旧させる（ソフトエラー耐性を向上させる）ことは可能であるが、不揮発性メモリ１００のアクセス速度や情報処理装置への過負荷の問題により性能面で悪影響を与えてしまい、実現には困難を要した。
【００１２】
本発明は、上記のような課題を解消するために提案されたものであって、その目的は、不揮発性メモリのアクセス速度や装置への過負荷等といった性能面への影響を低減可能な、ソフトエラー照合復旧機能を備えた情報処理装置を提供することにある。
【課題を解決するための手段】
【００１３】
上述した目的を達成するために、本発明は、不揮発性メモリ上の１以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、前記不揮発性メモリは、前記制御プログラムの実行前に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第１の照合復旧プログラムと、前記制御プログラムの実行後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第２の照合復旧プログラムと、を前記制御プログラム毎に有し、前記第１の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、前記ロードエリア上の前記制御プログラムを実行させ、前記第２の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、実行後の当該制御プログラムを正常とすることを特徴とする。
【００１４】
また、本発明の第１及び２の照合復旧プログラムは、前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の当該制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーする態様も有し、
さらに、前記不揮発性メモリ上で実行させる態様も包含する。
【００１５】
また、第１及び２の照合復旧プログラムを設けずに、全ての制御プログラムを実行後に、照合及び復旧処理を行う照合復旧プログラムを設ける態様も本発明は包含する。さらに、本発明は、前記主メモリ上に、複数の前記照合用エリアを設ける態様も備えている。
【発明の効果】
【００１６】
以上のような本発明によれば、定常運転時において、制御プログラムの照合を行う場合、主メモリ上のロードエリアに読み出されたプログラムと、当該主メモリ上の照合用エリアに読み出されたプログラムとのイメージにより一致を判定するので、アクセス速度が遅い不揮発性メモリからの読み出し処理を省略することが可能となり、プログラムの照合に要する実行時間を軽減することができる。これにより、ソフトエラーが生じた状態の制御プログラムを実行する前に、照合及び復旧処理を行うことが可能となる。
【００１７】
また、万一、動作中であった制御プログラムにソフトエラーが発生し、プログラムのコード化けが生じていた場合であっても、正常なプログラムを再ロードすることにより再実行処理を行うことができる。
【００１８】
さらに、不揮発性メモリ上において、制御プログラムの実行前後の照合復旧プログラムによる処理を行うこともできるので、当該照合復旧プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【００１９】
また、制御プログラムにおけるソフトエラー発生状況を定期的に復旧させることができるので、主メモリ上のデータの訂正を行うことができないＥＣＣを実装した情報処理装置であっても、誤りデータが長期間残存することを防止でき、さらに、データ読み出し時の訂正ができない可能性を低減することが可能となる。なお、１周期で照合する制御プログラムのサイズを変更することにより、全制御プログラムのチェックに必要な期間（周期数）を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理を適用することが可能となる。
【００２０】
加えて、主メモリ上に複数箇所の照合用エリアを設けることができるので、複数箇所の照合用エリア上の制御プログラムのイメージとロードエリアの同制御プログラムのイメージとを照合することにより、主メモリ上に１箇所の照合用エリアを設けた場合と比較して、照合処理の信頼性が格段に向上する。つまり、主メモリ上の複数箇所に照合エリアを設けることにより照合対象数が増加するため、ほぼ同時期に、同数の同一箇所のビットが変化する可能性が低減することから、照合処理の信頼性が向上する。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係る構成例を示す機能ブロック図
【図２】本発明の第１の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図３】本発明の第１の実施形態に係る制御プログラムの作用を示すフローチャート
【図４】本発明の第１の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図５】本発明の第２の実施形態に係る構成例を示す機能ブロック図
【図６】本発明の第２の実施形態に係る制御プログラムの作用を示すフローチャート
【図７】本発明の第２の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図８】本発明の第３の実施形態に係る構成例を示す機能ブロック図
【図９】本発明の第３の実施形態に係る制御プログラムの作用を示すフローチャート
【図１０】本発明の第３の実施形態に係る定量照合復旧処理プログラムの作用を示すフローチャート
【図１１】本発明の第４の実施形態に係る構成例を示す機能ブロック図
【図１２】本発明の第４の実施形態に係る制御プログラムの作用を示すフローチャート
【図１３】本発明の第５の実施形態に係る構成例を示す機能ブロック図
【図１４】本発明の第５の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図１５】本発明の第５の実施形態に係る制御プログラムの作用を示すフローチャート
【図１６】本発明の第５の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図１７】本発明の第６の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図１８】本発明の第６の実施形態に係る制御プログラムの作用を示すフローチャート
【図１９】本発明の第６の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図２０】従来における情報処理装置の全体構成を示す図
【発明を実施するための形態】
【００２２】
［本実施形態］
［１．第１の実施形態］
［１．１．構成］
次に、本発明を実施するための第１の実施形態に係る情報処理装置の構成について図１を参照して以下に説明する。なお、図１は、第１の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。
【００２３】
図１に示す通り、この情報処理装置は、不揮発性メモリ１００と主メモリ２００と演算処理部３００により構成され、具体的な構成は下記の通りである。
【００２４】
不揮発性メモリ１００は、主メモリ２００にロードされる下記の各種制御プログラム１０１ｉ（ｉ＝１〜ｎ）〜１０３ｉ（ｉ＝１〜ｎ）、固定データ（固定データ格納エリア）、可変データ（可変データ格納エリア）を格納するロードデータ実体格納エリア１１０と、各種制御プログラム１０１ｉ〜１０３ｉ、固定データ、可変データのロード先アドレスを格納するロード先アドレス格納エリア１２０と、を有している。
【００２５】
このロードデータ実体格納エリア１１０には、固定データ及び可変データに加え、情報処理装置本来の制御処理を実行する制御プログラム１０１ｉ（ｉ＝１〜ｎ）と、当該制御プログラム１０１ｉの実行前に照合及び復旧処理を行う照合復旧・前処理プログラム１０２ｉ（ｉ＝１〜ｎ）と、当該制御プログラム１０１ｉの実行後に照合及び復旧処理を行う照合復旧・後処理プログラム１０３ｉ（ｉ＝１〜ｎ）と、が格納されている。
【００２６】
また、主メモリ２００は、ＤＲＡＭ又はＳＲＡＭから構成され、不揮発性メモリ１００からの各種制御プログラム１０１ｉ〜１０３ｉ、固定データ、可変データがロードされるロードエリア２１０と、制御プログラム１０１ｉのプログラムイメージを照合するために用意された照合用エリア２２０と、を有している。
【００２７】
各制御プログラム１０１ｉ〜１０３ｉが行う処理については、［１．２．作用］の項目で詳述するが、下記に照合復旧・前処理プログラム１０２ｉ及び照合復旧・後処理プログラム１０３ｉの処理について触れておく。
【００２８】
照合復旧・前処理プログラム１０２ｉは、制御プログラム１０１ｉの実行前に、主メモリ２００上のロードエリア２１０の制御プログラム１０１ｉのイメージを照合用エリア２２０の当該制御プログラム１０１ｉのイメージ１０１０ｉと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に、不揮発性メモリ１００上の制御プログラム１０１ｉを主メモリ２００に対して再ロードする復旧処理と、を有している。
【００２９】
また、照合復旧・後処理プログラム１０３ｉは、制御プログラム１０１ｉの実行後に、主メモリ２００上のロードエリア２１０の制御プログラム１０１ｉのイメージを照合用エリア２２０の制御プログラム１０１ｉのイメージ１０１０ｉと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に、不揮発性メモリ１００上の制御プログラム１０１ｉを主メモリ２００に対して再ロードする復旧処理と、復旧した制御プログラム１０１ｉの再実行処理と、を有している。なお、この照合復旧・後処理プログラム１０３ｉは、後述するが、主メモリ２００上の当該プログラム１０３ｉ用のデータエリアに設けられた「相違有りカウンタ」をカウント、あるいはクリアする処理も有している。
【００３０】
演算処理部３００は、当該演算処理部３００内、あるいは情報処理装置内に記憶された各種制御プログラム１０１ｉ〜１０３ｉ等の一連の処理を定周期で実行させる所定のプログラムを、ユーザからの入力、あるいは自動で実行する定周期実行要求手段３１０を有している。なお、この定周期実行要求手段３１０による定周期管理は、情報処理装置内部に設けたタイマによるものでも外部からのトリガー入力によるものでも構わない。
【００３１】
また、情報処理装置内のＲＯＭ等に記憶された所定のブートプログラムを実行するブート実行手段３２０を有している。すなわち、ブート実行手段３２０は、情報処理装置の立ち上げ時に、各種制御プログラム１０１ｉ〜１０３ｉ、固定データや可変データを主メモリ２００上のロードエリア２１０に初期ロードする。
【００３２】
［１．２．作用］
次に、上記のような構成を有する第１の実施形態に係る情報処理装置の作用を図２〜４を参照して以下に説明する。
【００３３】
まず、前提として、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時にブートプログラムを実行することで、制御プログラム１０１ｉ（ｉ＝１〜ｎ）と、照合復旧・前処理プログラム１０２ｉ（ｉ＝１〜ｎ）と、照合復旧・後処理プログラム１０３ｉ（ｉ=１〜ｎ）と、を不揮発性メモリ１００から読み出し、主メモリ２００上のロードエリア２１０にロードすると共に、当該主メモリ２００上の照合用エリア２２０に対しても制御プログラム１０１ｉ（ｉ=１〜ｎ）のイメージ１０１０ｉ（ｉ＝１〜ｎ）をコピーする。
【００３４】
この状況下で、情報処理装置の定周期実行要求手段３１０は、主メモリ２００上のロードエリア２１０にロードされた照合復旧・前処理プログラム１０２ｉ（ｉ＝１）に対して実行要求を行う。
【００３５】
これを受けた照合復旧・前処理プログラム１０２ｉでは、図２に示す通り、この制御プログラム１０１ｉを照合、復旧処理の対象とする（Ｓ２０１）。そして、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉにおけるソフトエラーの発生の有無をチェックするために、このロードした制御プログラム１０１ｉのイメージと、照合用エリア２２０上の同制御プログラム１０１ｉのイメージ１０１０ｉとを照合する（Ｓ２０２）。
【００３６】
この照合により両イメージが一致するかを判断し（Ｓ２０３）、両者が一致する場合には（Ｓ２０３のＹＥＳ）、この制御プログラム１０１ｉに対して実行要求を行い（Ｓ２０４）、本照合復旧・前処理プログラム１０２ｉによる処理は終了する。
【００３７】
一方、照合の結果、両イメージに相違があった場合には（Ｓ２０３のＮＯ）、この制御プログラム１０１ｉにソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ１００上の制御プログラム１０１ｉのイメージを、主メモリ２００上のロードエリア２１０に再ロードする（Ｓ２０５）。ここで、この復旧処理を最小とするために、ロードエリア２１０でのソフトエラー発生か、あるいは照合用エリア２２０でのソフトエラー発生であるかの特定は行わず、同イメージを照合用エリア２２０上にもコピーする（Ｓ２０６）。その後、主メモリ２００上のロードエリア２１０に再ロードされた制御プログラム１０１ｉに対して実行要求を行い（Ｓ２０４）、照合復旧・前プログラム１０２による処理は終了する。
【００３８】
図３に示す通り、主メモリ２００上のロードエリア２１０に読み出された制御プログラム１０１ｉは、本来の制御処理を実行し（Ｓ３０１）終了した際に、当該制御処理が正常なプログラムコードの実行により行われたものかをチェックするために、ロードエリア２１０上に読み出された照合復旧・後処理プログラム１０３ｉに対して実行要求を行う（Ｓ３０２）。
【００３９】
そして、図４に示す通り、照合復旧・後処理プログラム１０３ｉは、制御プログラム１０１ｉを照合、復旧処理の対象とし（Ｓ４０１）、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉのイメージを、照合用エリア２２０上の同制御プログラム１０１ｉのイメージ１０１０ｉと照合する（Ｓ４０２）。
【００４０】
この照合により両イメージが一致しているかを判断し（Ｓ４０３）、両イメージが一致する場合には（Ｓ４０３のＹＥＳ）、主メモリ２００上の照合復旧・後処理プログラム１０３ｉ用のデータエリアに設けられた「相違有りカウンタ」をクリアにし（Ｓ４０４）、後段の制御プログラム１０１ｉ＋１におけるソフトエラーの有無をチェックするための照合復旧・前処理プログラム１０２ｉ＋１に対して実行要求を行う（Ｓ４０５）。これにより、本照合復旧・後処理プログラム１０３ｉによる処理は終了する。
【００４１】
なお、最後段である照合復旧・後処理プログラム１０２ｎにおいては、実行対象として制御プログラム１０１ｎ＋１は有しないので、当該制御プログラム１０１ｎ＋１への実行要求は行われない。
【００４２】
一方、両イメージを照合することにより、相違があった場合に（Ｓ４０３のＮＯ）、「相違有りカウンタ」をインクリメントし（Ｓ４０６）、このカウント値が所定の既定回数に達するかを判定する（Ｓ４０７）。カウント値が所定の既定回数に達しない場合には（Ｓ４０７のＮＯ）、不揮発性メモリ１００上の制御プログラム１０１ｉのイメージを、主メモリ２００上のロードエリア２１０に再ロードし（Ｓ４０８）、また、この制御プログラム１０１ｉのイメージを照合用エリア２２０にもコピーする（Ｓ４０９）。
【００４３】
その後、主メモリ２００上のロードエリア２１０の制御プログラム１０１ｉに対して実行要求を行い（Ｓ４１０）、本照合復旧・後処理プログラム１０３ｉの処理を一旦終了する。これにより、上述した図３に示した制御プログラム１０１ｉの実行フローに処理が移行し、当該制御プログラム１０１ｉが実行され、再度、照合復旧・後処理プログラム１０３ｉによる制御処理が行われる。
【００４４】
ここで、Ｓ４０７において、「相違有りカウンタ」のカウント値が所定の既定回数に達した場合には（Ｓ４０７のＹＥＳ）、メモリのハードエラー発生と判断し、本情報処理装置を停止する（Ｓ４１１）。
【００４５】
なお、以上のような、照合復旧・前処理プログラム１０２ｉ（ｉ＝１）の実行開始から照合復旧・後処理プログラム１０３ｎによる実行が終了するまでの一連の処理は、定周期実行要求手段３１０により次周期の起動要求が照合復旧・前処理プログラム１０２ｉ（ｉ＝１）に対して行われるまでに完了させる。
【００４６】
以上のような第１の実施形態によれば、定常運転時において、制御プログラムの照合を行う場合、主メモリ上のロードエリアに読み出されたプログラムと、当該主メモリ上の照合用エリアに読み出されたプログラムとのイメージにより一致を判定するので、アクセス速度が遅い不揮発性メモリからの読み出し処理を省略することが可能となり、プログラムの照合に要する実行時間を軽減することができる。これにより、ソフトエラーが生じた状態の制御プログラムを実行する前に、照合及び復旧処理を行うことが可能となる。
【００４７】
また、万一、動作中であった制御プログラムにソフトエラーが発生し、プログラムコード化けが生じていた場合であっても、正常なプログラムを再ロードすることにより再実行処理を行うことができる。
【００４８】
［１．３．他の実施態様］
第１の実施形態では、照合復旧・後処理プログラム１０３ｉにおいて、上記のような主メモリ２００上の「相違ありカウンタ」に基づくソフトエラーの連続発生のチェック処理を設けずに、情報処理装置の運転継続を優先する実施形態も包含する。
【００４９】
また、制御プログラム１０１ｉ（ｉ＝１〜ｎ）の各々に対して、専用の照合復旧プログラム群を設ける態様だけでなく、情報処理装置に対して、照合復旧・前処理プログラム１０２と照合復旧・後処理プログラム１０３を１つずつ実装する実施形態も第１の実施形態は包含する。
【００５０】
［２．第２の実施形態］
［２．１．構成］
次に、本発明を実施するための第２の実施形態に係る情報処理装置の構成について図５を参照して以下に説明する。図５は、第２の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第１の実施形態と共通する構成については同一の符号を付し、説明は省略する。
【００５１】
第２の実施形態に係る情報処理装置では、図５に示す通り、基本的な構成は第１の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第２の実施形態に係る演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ１００上の制御プログラム１０１ｉ（ｉ＝１〜ｎ）のみを、主メモリ２００上のロードエリア２１０にロードする。
【００５２】
より詳細に言えば、ブート実行手段３２０は、固定データ及び可変データに加え、不揮発性メモリ１００上の制御プログラム１０１ｉ（ｉ＝１〜ｎ）のみを主メモリ２００上のロードエリア２１０にロードさせるブートプログラムを実行する。そのため、第１の実施形態では、ブート実行手段３２０が、固定データ及び可変データに加え、不揮発性メモリ１００上の制御プログラム１０１ｉ（ｉ＝１〜ｎ）、照合復旧・前処理プログラム１０２ｉ（ｉ＝１〜ｎ）、照合復旧・後処理プログラム１０３ｉ（ｉ＝１〜ｎ）を主メモリ２００上のロードエリア２１０にロードしていたのに対し、第２の実施形態では、固定データ及び可変データの他、制御プログラム１０１ｉ（ｉ＝１〜ｎ）のみしかロードエリア２１０にロードしない。
【００５３】
これにより、第２の実施形態に係る演算処理部３００の定周期実行要求手段３１０においては、不揮発性メモリ１００上に格納された照合復旧・前処理プログラム１０２ｉ及び照合復旧・後処理プログラム１０３ｉを当該演算処理部３００に読み出して、定周期で実行する態様を有している。
【００５４】
［２．２．作用］
次に、上記のような構成を有する第２の実施形態に係る情報処理装置の作用を図６及び７を参照して以下に説明する。
【００５５】
第２の実施形態では、まず、前提として、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム１０１ｉ（ｉ＝１〜ｎ）を不揮発性メモリ１００から読み出し、主メモリ２００上のロードエリア２１０にロードすると共に、当該主メモリ２００上の照合用エリア２２０に対しても制御プログラム１０１ｉ（ｉ＝１〜ｎ）のイメージ１０１０ｉ（ｉ＝１〜ｎ）をコピーしておく。
【００５６】
この状況下で、情報処理装置の定周期実行要求手段３１０は、不揮発性メモリ１００上のロードデータ実体格納エリア１１０に格納された照合復旧・前処理プログラム１０２ｉ（ｉ＝１）に対して実行要求を行う。これにより、当該照合復旧・前処理プログラム１０２ｉのプログラムコードが演算処理部３００上に読み出され、実行処理が行われる。ここで、照合復旧・前処理プログラム１０２ｉによる実際の処理は、第１の実施形態に係る図２に示したフローと同様であり、説明は省略する。
【００５７】
この照合復旧・前処理プログラム１０２ｉによる実行処理が行われ、制御プログラム１０１ｉに対する実行要求があると、図６に示す通り、主メモリ２００上のロードエリア２１０に読み出された制御プログラム１０１ｉは、本来の制御処理を実行する（Ｓ６０１）。この制御プログラム１０１ｉによる制御処理が終了した際に、当該制御処理が正常なプログラムコードの実行により行われたものかをチェックするために、不揮発性メモリ１００上のロードデータ実体格納エリア１１０に格納された照合復旧・後処理プログラム１０３ｉに対して実行要求を行う（Ｓ６０２）。
【００５８】
そして、図７に示す通り、第１の実施形態と同様に、照合復旧・後処理プログラム１０３ｉは、制御プログラム１０１ｉを照合、復旧処理の対象とし（Ｓ７０１）、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉのイメージを、照合用エリア２２０上の同制御プログラム１０１ｉのイメージ１０１０ｉと照合する（Ｓ７０２）。この照合により両イメージが一致しているかを判断し（Ｓ７０３）、両イメージが一致する場合には（Ｓ７０３のＹＥＳ）、主メモリ２００上の照合復旧・後処理プログラム１０３ｉ用のデータエリアに設けられた「相違有りカウンタ」をクリアにする（Ｓ７０４）。
【００５９】
これに伴い、第２の実施形態では、制御プログラム１０１ｉ＋１におけるソフトエラーの有無をチェックするために、不揮発性メモリ１００上のロードデータ実体格納エリア１１０に格納された照合復旧・前処理プログラム１０２ｉ＋１に対して実行要求を行う（Ｓ７０５）。これにより、本照合復旧・後処理プログラム１０３ｉによる処理は終了する。
【００６０】
なお、不揮発性メモリ１００上の最後段の照合復旧・後処理プログラム１０３ｎにおいては、実行対象として制御プログラム１０１ｎ＋１は有しないので、当該制御プログラム１０１ｎ＋１への実行要求は行われない。
【００６１】
一方、Ｓ７０３において、ロードエリア２１０上にロードされた制御プログラム１０１ｉのイメージと、照合用エリア２２０上の同制御プログラム１０１ｉのイメージ１０１０ｉと、に相違があった場合には（Ｓ７０３のＮＯ）、第１の実施形態に係る図４のＳ４０６以降と同様の処理が行われる（Ｓ７０６〜７１１）。
【００６２】
以上のような第２の実施形態によれば、不揮発性メモリ上において、照合復旧・前処理及び後処理プログラムを実行しているので、当該プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【００６３】
［３．第３の実施形態］
［３．１．構成］
次に、本発明を実施するための第３の実施形態に係る情報処理装置の構成について図８を参照して以下に説明する。図８は、第３の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第１及び２の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【００６４】
第３の実施形態に係る情報処理装置の基本的な構成は、図８の通り、第１の実施形態と同様に、不揮発性メモリ１００と主メモリ２００と演算処理部３００から成るが、下記に詳述する。
【００６５】
第３の実施形態では、不揮発性メモリ１００は、主メモリ２００にロードされる下記の制御プログラム４００ｉ（ｉ＝１〜ｎ）、定量照合復旧処理プログラム５００、固定データ（固定データ格納エリア）、可変データ（可変データ格納エリア）を格納するロードデータ実体格納エリア１１０を有している。また、不揮発性メモリ１００は、制御プログラム４００ｉ（ｉ＝１〜ｎ）、定量照合復旧処理プログラム５００、固定データ、可変データのロード先アドレスを格納するロード先アドレス格納エリア１２０を有している。
【００６６】
このロードデータ実体格納エリア１１０には、固定データ及び可変データに加え、情報処理装置本来の制御処理を実行する制御プログラム４００ｉ（ｉ＝１〜ｎ）と、いずれの当該制御プログラム４００ｉに対しても照合及び復旧処理を行う定量照合復旧処理プログラム５００と、が格納されている。具体的には、この定量照合復旧処理プログラム５００は、主メモリ２００上のロードエリア２１０にロードされた当該制御プログラム４００ｉを、照合用エリア２２０上にコピーされた当該制御プログラム４００ｉと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に不揮発性メモリ１００上の制御プログラム４００ｉを再ロードする復旧処理と、を備えている。もちろん、定量照合復旧処理プログラム５００は、復旧した制御プログラム１０１ｉの再実行処理も有している。
【００６７】
主メモリ２００は、不揮発性メモリ１００からの制御プログラム４００ｉ、定量照合復旧処理プログラム５００、固定データ、可変データがロードされるロードエリア２１０と、当該制御プログラム４００ｉのイメージを照合するために用意された照合用エリア２２０と、を有している。
【００６８】
演算処理部３００は、第１の実施形態と同様に、当該演算処理部３００内、あるいは情報処理装置内に記憶された各制御プログラム４００ｉ（ｉ〜ｎ）及び定量照合復旧処理プログラム５００による一連の処理を定周期で実行させる所定のプログラムを、ユーザからの入力、あるいは自動で実行する定周期実行要求手段３１０を有している。なお、この定周期実行要求手段３１０による定周期管理は、第１及び２の実施形態と同様に、情報処理装置内部に設けたタイマによるものでも、外部からのトリガー入力によるものでも構わない。
【００６９】
また、情報処理装置内のＲＯＭ等に記憶されたブートプログラムを実行するブート実行手段３２０を有し、当該ブート実行手段３２０は、情報処理装置の立ち上げ時に、制御プログラム４００ｉ、定量照合復旧処理プログラム５００、固定データや可変データを主メモリ２００上のロードエリア２１０に初期ロードする。
【００７０】
［３．２．作用］
次に、上記のような構成を有する第３の実施形態に係る情報処理装置の作用を図９及び１０を参照して、以下に説明する。
【００７１】
第３の実施形態では、まず、前提として、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム４００ｉ（ｉ＝１〜ｎ）と定量照合復旧処理プログラム５００を不揮発性メモリ１００から読み出し、主メモリ２００上のロードエリア２１０にロードすると共に、当該主メモリ２００上の照合用エリア２２０に対して制御プログラム４００ｉ（ｉ＝１〜ｎ）のイメージ４０１０ｉ（ｉ＝１〜ｎ）をコピーしておく。
【００７２】
この状況下で、情報処理装置の定周期実行要求手段３１０は、主メモリ２００上のロードエリア２１０にロードされた制御プログラム４００ｉ（ｉ＝１）を実行させる。図９に示す通り、制御プログラム４００ｉは、当該制御プログラム本来の制御処理を実行し（Ｓ９０１）終了した場合に、後段の制御プログラム４００ｉ＋１を実行させ、さらに、このような制御プログラムによる実行処理を、最後段の制御プログラム４００ｎまで繰り返す（Ｓ９０２、９０３）。
【００７３】
ここで、主メモリ２００上にロードされた最後段の制御プログラム４００ｎにおいて、制御処理が終了した際には（Ｓ９０２のＹＥＳ）、当該制御プログラム４００ｎは、いずれの制御プログラム４００ｉ（ｉ＝１〜ｎ）のプログラムイメージの照合を行うために、定量照合復旧処理プログラム５００に対して実行要求を行う（Ｓ９０４）。
【００７４】
この定量照合復旧処理プログラム５００では、図１０に示すように、まず、情報処理装置の立ち上がり後、当該プログラム５００が初めて実行された場合のみ、制御プログラム４００ｉ（ｉ＝１）を「照合対象の制御プログラム」として記憶する（Ｓ１００１）。
【００７５】
次に、照合対象として記憶されていた制御プログラム４００ｉの主メモリ２００上のロードエリア２１０にロードされたイメージと照合用エリア２２０上の同制御プログラム４００ｉのイメージ４０１０ｉを照合する（Ｓ１００２）。この照合により両イメージが一致するかを判断し（Ｓ１００３）、両イメージを照合することにより、一致していた場合には（Ｓ１００３のＹＥＳ）、今回照合した制御プログラム４００ｉの後段の制御プログラム４００ｉ＋１を「照合対象の制御プログラム」として記憶する（Ｓ１００４）。
【００７６】
一方、照合により両イメージに相違があった場合には（Ｓ１００３のＮＯ）、この制御プログラム４００ｉにソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ１００上の制御プログラム４００ｉのイメージを、主メモリ２００上のロードエリア２１０に再ロードする（Ｓ１００５）。さらに、同制御プログラム４００ｉのイメージを照合用エリア２２０にもコピーする（Ｓ１００６）。
【００７７】
その後、照合により両イメージが一致した場合と同様、今回照合した制御プログラム４００ｉの後段の制御プログラム４００ｉ＋１を「照合対象の制御プログラム」として記憶する（Ｓ１００４）。これにより、次周期に本定量照合復旧処理プログラム５００が起動された際、制御プログラム４００ｉ＋１が照合対象となり、上記の処理が繰り返される（Ｓ１００７）。主メモリ２００上の最後段の制御プログラム４００ｎまで、このような照合処理が繰り返されると（Ｓ１００７のＹＥＳ）、「照合対象の制御プログラム」として制御プログラム４００ｉ（ｉ＝１）を記憶する（Ｓ１００８）。
【００７８】
以上のような第３の実施形態によれば、制御プログラムにおけるソフトエラー発生状況を定期的に復旧させることができるので、主メモリ上のデータの訂正を行うことができないＥＣＣを実装した情報処理装置であっても、誤りデータが長期間残存することを防止でき、さらに、データ読み出し時の訂正ができない可能性を低減することが可能となる。また、１周期で照合する制御プログラムのサイズを変更することにより、全制御プログラムのチェックに必要な期間（周期数）を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理を適用することが可能となる。
【００７９】
［３．３．他の実施態様］
第３の実施形態は、上記では、１周期毎に１つの制御プログラム４００ｉの照合、復旧処理を行っているが、定量照合復旧処理プログラム５００が対象となる制御プログラム４００ｉに対して照合処理を行う場合、当該制御プログラム４００ｉの全サイズ分を１度に照合する態様に限定するものではなく、下記のような実施形態も包含する。すなわち、定量照合復旧処理プログラム５００は、対象となる制御プログラム４００ｉのうち、予め設定したサイズ内（例えば１ＫＢ）で少しずつ照合を実行し、かつ、次回実行時の照合用に当該制御プログラム４００ｉ内の相対アドレスを記憶しておくことで、情報処理装置として、全制御プログラム４００ｉを照合するのに必要な期間を調整可能な実施形態を包含する。
【００８０】
［４．第４の実施形態］
［４．１．構成］
次に、本発明を実施するための第４の実施形態に係る情報処理装置の構成について図１１を参照して以下に説明する。図１１は、第４の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第３の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【００８１】
第４の実施形態では、図１１に示す通り、基本的な構成は第３の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。
【００８２】
第４の実施形態に係る演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ１００上の制御プログラム４００ｉ（ｉ＝１〜ｎ）のみを、主メモリ２００上のロードエリア２１０にロードする。より詳細に言えば、ブート実行手段３２０は、固定データ及び可変データに加え、不揮発性メモリ１００上の制御プログラム４００ｉのみを主メモリ２００上のロードエリア２１０にロードさせるブートプログラムを実行する。
【００８３】
すなわち、第３の実施形態では、ブート実行手段３２０が、固定データ及び可変データに加え、不揮発性メモリ１００上の制御プログラム４００ｉ、定量照合復旧処理プログラム５００を主メモリ２００上のロードエリア２１０にロードしていたのに対し、第４の実施形態では、固定データ及び可変データの他、制御プログラム４００ｉのみしかロードエリア２１０にロードしない。
【００８４】
［４．２．作用］
次に、上記のような構成を有する第４の実施形態に係る情報処理装置の作用を図１２を参照して以下に説明する。
【００８５】
第４の実施形態では、まず、前提として、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム４００ｉ（ｉ＝１〜ｎ）を不揮発性メモリ１００から読み出し、主メモリ２００上のロードエリア２１０にロードすると共に、当該主メモリ２００上の照合用エリア２２０に対しても制御プログラム４００ｉ（ｉ＝１〜ｎ）のイメージ４０１０ｉ（ｉ＝１〜ｎ）をコピーしておく。
【００８６】
そして、演算処理部３００の定周期実行要求手段３１０は、主メモリ２００上のロードエリア２１０にロードされた制御プログラム４００ｉ（ｉ＝１）を実行させる。図１２に示す通り、制御プログラム４００ｉは、当該制御プログラム本来の制御処理を実行し（Ｓ１２０１）終了した場合に、後段の制御プログラム４００ｉ＋１を実行させ、さらに、このような制御プログラムによる実行処理を、最後段の制御プログラム４００ｎまで繰り返す（Ｓ１２０２、１２０３）。
【００８７】
ここで、主メモリ２００上にロードされた最後段の制御プログラム４００ｎにおいて、制御処理が終了した際には（Ｓ１２０２のＹＥＳ）、当該制御プログラム４００ｎは、いずれの制御プログラム４００ｉ（ｉ＝１〜ｎ）のプログラムイメージの照合を行うために、不揮発性メモリ１００上の定量照合復旧処理プログラム５００に対して実行要求を行う（Ｓ１２０４）。これにより演算処理部３００は、不揮発性メモリ１００から定量照合復旧処理プログラム５００のプログラムコードを読み出し、当該処理を実行する。なお、定量照合復旧処理プログラム５００は、第３の実施形態に係る図１０のフローと同様な処理を行うため、説明は省略する。
【００８８】
以上のような第４の実施形態によれば、１周期で照合する制御プログラムのサイズの変更により、全制御プログラムのチェックに要する必要な期間（周期数）を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理が適用可能であると共に、不揮発性メモリ上において、定量照合復旧処理プログラムを実行しているので、当該プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【００８９】
［５．第５の実施形態］
［５．１．構成］
次に、本発明を実施するための第５の実施形態に係る情報処理装置の構成について図１３を参照して以下に説明する。図１３は、第５の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第１の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【００９０】
第５の実施形態に係る情報処理装置では、図１３に示す通り、基本的な構成は第１の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第５の実施形態では、図１３の通り、主メモリ２００上に２つの照合用エリア２２０ａ、２２０ｂを備える構成に特徴を有する。
【００９１】
そのため、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時に、所定のブートプログラムを実行することにより、主メモリ２００上のロードエリア２１０に制御プログラム１０１ｉ（ｉ＝１〜ｎ）をロードすると共に、当該制御プログラム１０１ｉ（ｉ＝１〜ｎ）のイメージを、照合用エリア２２０ａ、２２０ｂに対してそれぞれコピーする（イメージ１０１０ａｉ（ｉ＝１〜ｎ）、１０１０ｂｉ（ｉ＝１〜ｎ））。
【００９２】
また、第５の実施形態に係る不揮発性メモリ１００のロードデータ実体格納エリア１１０に格納された照合復旧・前処理プログラム１０２ｉの照合処理は、下記のような態様を有する。すなわち、この照合復旧・前処理プログラム１０２ｉでは、主メモリ２００上にロードされた制御プログラム１０１ｉの実行前に、当該主メモリ２００上のロードエリア２１０の制御プログラム１０１ｉを、照合用エリア２２０ａ、２２０ｂ上の当該制御プログラム１０１ｉのイメージ１０１０ａｉ、１０１０ｂｉと各々照合する。
【００９３】
また、照合復旧・前処理プログラム１０２ｉの復旧処理は、上記照合処理の結果、相違が生じた場合に制御プログラム１０１ｉのイメージを、主メモリ２００上のロードエリア２１０に再ロードし、かつ、照合用エリア２２０ａ、２２０ｂに再コピーする。
【００９４】
なお、第５の実施形態に係る照合復旧・後処理プログラム１０３ｉにおいても、主メモリ２００上のロードエリア２１０にロードされた当該制御プログラム１０１ｉの実行後に、上記照合復旧・前処理プログラム１０２ｉと同様の照合及び復旧処理が行われる。
【００９５】
［５．２．作用］
次に、上記のような構成を有する第５の実施形態に係る情報処理装置の作用を、図１４〜１６を参照して以下に説明する。
【００９６】
第５の実施形態では、まず、前提として、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時にブートプログラムを実行することで、制御プログラム１０１ｉ（ｉ＝１〜ｎ）と、照合復旧・前処理プログラム１０２ｉ（ｉ＝１〜ｎ）と、照合復旧・後処理プログラム１０３ｉ（ｉ＝１〜ｎ）と、を不揮発性メモリ１００から読み出し、主メモリ２００上のロードエリア２１０にロードすると共に、当該主メモリ２００上の照合用エリア２２０ａ、２２０ｂに対して制御プログラム１０１ｉ（ｉ＝１〜ｎ）のイメージ１０１０ａｉ（ｉ＝１〜ｎ）、１０１０ｂｉ（ｉ＝１〜ｎ）をコピーしておく。
【００９７】
この状況下で、情報処理装置の定周期実行要求手段３１０は、主メモリ２００上のロードエリア２１０にロードされた照合復旧・前処理プログラム１０２ｉ（ｉ＝１）を実行させる。照合復旧・前処理プログラム１０２ｉでは、図１４に示す通り、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉ（ｉ＝１）を、ソフトエラーの発生の有無のチェック対象、すなわち、照合、復旧処理の対象とする（Ｓ１４０１）。
【００９８】
そして、このロードした制御プログラム１０１ｉのイメージを、照合用エリア２２０ａ、２２０ｂ上の同制御プログラム１０１ｉのイメージ１０１０ａｉ、１０１０ｂｉの各々と照合する（Ｓ１４０２）。この照合により全てのイメージが一致するかを判断し（Ｓ１４０３）、全ての照合が一致する場合には（Ｓ１４０３のＹＥＳ）、すなわち、ロードエリア２１０上の制御プログラム１０１ｉのイメージが照合用エリア２２０ａ上の当該制御プログラム１０１ｉのイメージ１０１０ａｉと一致し、かつ、このロードエリア２１０上の制御プログラム１０１ｉのイメージが照合用エリア２２０ｂ上のイメージ１０１０ｂｉと一致する場合には、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉに対して実行要求を行い（Ｓ１４０４）、本照合復旧・前処理プログラム１０２ｉによる処理は終了する。
【００９９】
一方、照合の結果、いずれかの照合で相違があった場合には（Ｓ１４０３のＮＯ）、制御プログラム１０１ｉにおいてソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ１００上の制御プログラム１０１ｉのイメージを、主メモリ２００上のロードエリア２１０に再ロードする（Ｓ１４０５）。ここで、この復旧処理を最小とするために、ロードエリア２１０でのソフトエラー発生か、あるいは照合用エリア２２０でのソフトエラー発生であるかの特定は行わず、同制御プログラム１０１ｉのイメージを照合用エリア２２０ａ、２２０ｂ上にも各々コピーする（Ｓ１４０６）。その後、ロードエリア上の制御プログラム１０１ｉに対して実行要求を行い（Ｓ１４０４）、本プログラム１０２の処理を終了する。
【０１００】
図１５に示す通り、主メモリ２００上のロードエリア２１０に読み出された制御プログラム１０１ｉは、本来の制御処理を実行し（Ｓ１５０１）終了した際、当該制御処理が正常なプログラムコードの実行により行われたものであるかをチェックするために、ロードエリア２１０上に読み出された照合復旧・後処理プログラム１０３ｉに対して実行要求を行う（Ｓ１５０２）。
【０１０１】
そして、図１６の通り、照合復旧・後処理プログラム１０３ｉは、制御プログラム１０１ｉを照合、復旧処理の対象とし（Ｓ１６０１）、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉのイメージを、照合用エリア２２０ａ、２２０ｂ上の同制御プログラム１０１ｉのイメージ１０１０ａｉ、１０１０ｂｉと各々照合する（Ｓ１６０２）。この全ての照合によりイメージが一致するかを判断し（Ｓ１６０３）、全ての照合で一致する場合には（Ｓ１６０３のＹＥＳ）、主メモリ２００上の照合復旧・後処理プログラム１０３ｉ用のデータエリアに設けた「相違有りカウンタ」をクリアする（Ｓ１６０４）。
【０１０２】
その上で、後段の制御プログラム１０１ｉ＋１におけるソフトエラーの有無をチェックするための照合復旧・前処理プログラム１０２ｉ＋１に対して実行要求を行い（Ｓ１６０５）、本照合復旧・前処理プログラム１０３ｉによる処理は終了する。このような前記図１４に基づく制御プログラム１０１ｉ実行前の照合復旧処理、前記図１５に基づく制御プログラム１０１ｉ本来の実行処理、及び前記図１６に基づく制御プログラム１０１ｉの実行後の照合復旧処理が、主メモリ２００上のロードエリア２１０にロードされた最後段の照合復旧・後処理プログラム１０３ｎに至るまで繰り返される。
【０１０３】
なお、この最後段である照合復旧・後処理プログラム１０３ｎにおいては、実行対象として制御プログラム１０１ｎ＋１を有しないので、当該制御プログラム１０１ｎ＋１への実行要求は行われない。
【０１０４】
一方、照合の結果、いずれかの照合で相違があった場合には（Ｓ１６０３のＮＯ）、「相違ありカウンタ」をインクリメントし（Ｓ１６０６）、このカウント値が所定の既定回数に達するかを判定する（Ｓ１６０７）。カウント値が所定の既定回数に達しない場合には（Ｓ１６０７のＮＯ）、不揮発性メモリ１００上の制御プログラム１０１ｉのイメージを、主メモリ２００上のロードエリア２１０に再ロードし（Ｓ１６０８）、また、この制御プログラム１０１ｉのイメージを照合用エリア２２０ａ、２００ｂの各々に対してコピーする（Ｓ１６０９）。
【０１０５】
その後、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉに対して実行要求を行い（Ｓ１６１０）、本照合復旧・後処理プログラム１０３ｉによる処理を一旦終了する。これにより、上述した図１５に示した制御プログラム１０１ｉの実行フローに処理が移行し、当該制御プログラム１０１ｉが実行され、さらに、この制御プログラム１０１ｉに対して、再度照合復旧・後処理プログラム１０３ｉによる処理が実行される。
【０１０６】
その後、Ｓ１６０７において、「相違有りカウンタ」のカウント値が所定の既定回数に達した場合には（Ｓ１６０７のＹＥＳ）、メモリのハードエラー発生と判断し、本情報処理装置を停止する（Ｓ１６１１）。
【０１０７】
以上のような第５の実施形態によれば、主メモリ上に２箇所の照合用エリアを設けることで、当該２箇所の照合用エリア上の制御プログラムのイメージとロードエリアの同イメージとを照合することができるので、主メモリ上に１箇所の照合用エリアを設けた場合と比較して、照合処理の信頼性の向上を図ることが可能となる。つまり、主メモリ上の複数箇所に照合エリアを設けることにより照合対象数が増加するため、ほぼ同時期に、同数の同一箇所のビットが変化する可能性が低減することから、照合処理の信頼性が向上する。
【０１０８】
［５．３．他の実施態様］
上記では、照合復旧・前処理プログラム１０２ｉにおいて、主メモリ２００上のロードエリア２１０にロードされた制御プログラム１０１ｉのイメージと、照合用エリア２２０ａ、２２０ｂ上の同制御プログラム１０１ｉのイメージ１０１０ａｉ、１０１０ｂｉとの照合が全て一致する場合に正常と判断し、制御プログラム１０１ｉを実行させていたが、下記のような実施形態も第５の実施形態は包含する。
【０１０９】
すなわち、第５の実施形態では、照合復旧・前処理プログラム１０２ｉにおいて、全イメージの一致を条件とすることで照合の信頼性の向上を図るよりも、復旧時の処理速度の向上を目的として、いずれか一方の照合に相違がない場合に正常と判断し、当該制御プログラム１０１ｉを実行させる実施形態も包含する。また、この際、照合復旧・前処理プログラム１０２ｉは、ソフトエラー発生状態を復旧するために、照合に相違のなかった照合用エリア２２０のイメージを、他方の照合用エリア２２０にコピーする。
【０１１０】
このような実施形態によれば、１箇所でも照合結果に相違がなかった場合には、その照合結果及び照合エリアを正常とし、改めて不揮発性メモリからの読み出しを行わずに、この正常とした照合用エリア２２０から他方の照合用エリア２２０へ当該制御プログラム１０１ｉのイメージをコピーすることができるので、復旧処理の速度を各段に向上させることが可能である。
【０１１１】
また、第５の実施形態では、第１の実施形態と同様に、照合復旧・後処理プログラム１０３ｉにおいて、上記のような主メモリ２００上の「相違ありカウンタ」に基づくソフトエラーの連続発生のチェック処理を設けずに、情報処理装置の運転継続を優先する実施形態も包含する。
【０１１２】
［６．第６の実施形態］
［６．１．構成］
次に、本発明を実施するための第６の実施形態に係る情報処理装置の構成について図１７を参照して以下に説明する。図１７は、第６の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第５の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【０１１３】
第６の実施形態に係る情報処理装置は、図１７に示す通り、基本的な構成は第５の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第６の実施形態に係る演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ１００上の制御プログラム１０１ｉ（ｉ＝１〜ｎ）のみを、主メモリ２００上のロードエリア２１０にロードする。
【０１１４】
より詳細に言えば、ブート実行手段３２０は、固定データ及び可変データに加え、不揮発性メモリ１００上の制御プログラム１０１ｉ（ｉ＝１〜ｎ）のみを主メモリ２００上のロードエリア２１０にロードさせるブートプログラムを実行する。すなわち、第５の実施形態では、ブート実行手段３２０が、固定データ及び可変データに加え、不揮発性メモリ１００上の制御プログラム１０１ｉ（ｉ＝１〜ｎ）、照合復旧・前処理プログラム１０２ｉ（ｉ＝１〜ｎ）、照合復旧・後処理プログラム１０３ｉ（ｉ＝１〜ｎ）を主メモリ２００上のロードエリア２１０にロードしていたのに対し、第６の実施形態では、固定データ及び可変データの他、制御プログラム１０１ｉ（ｉ＝１〜ｎ）のみしかロードエリア２１０にロードしない。
【０１１５】
そのため、第６の実施形態に係る演算処理部３００の定周期実行要求手段３１０においては、不揮発性メモリ１００上に格納された照合復旧・前処理プログラム１０２ｉ及び照合復旧・後処理プログラム１０３ｉを当該演算処理部３００に読み出して、定周期で実行する態様を有する。
【０１１６】
［６．２．作用］
次に、上記のような構成を有する第６の実施形態に係る情報処理装置の作用を図１８及び１９を参照して以下に説明する。
【０１１７】
第６の実施形態では、まず、前提として、演算処理部３００のブート実行手段３２０は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム１０１ｉ（ｉ＝１〜ｎ）を不揮発性メモリ１００から読み出し、主メモリ２００上のロードエリア２１０にロードすると共に、当該主メモリ２００上の照合用エリア２２０ａ、２２０ｂに対しても制御プログラム１０１ｉ（ｉ＝１〜ｎ）のイメージ（１０１０ａｉ（ｉ＝１〜ｎ）、１０１０ｂｉ（ｉ＝１〜ｎ））をコピーしておく。
【０１１８】
この状況下で、情報処理装置の定周期実行要求手段３１０は、不揮発性メモリ１００上のロードデータ実体格納エリア１１０に格納された照合復旧・前処理プログラム１０２ｉ（ｉ＝１）に対して実行要求を行う。これにより、当該照合復旧・前処理プログラム１０２ｉ（ｉ＝１）のプログラムコードが演算処理部３００上に読み出され、実行処理が行われる。ここで、照合復旧・前処理プログラム１０２ｉによる実際の処理は、第５の実施形態に係る図１４に示したフローと同様であるため、説明は省略する。
【０１１９】
照合復旧・前処理プログラム１０２ｉによる処理が行われることで、制御プログラム１０１ｉ（ｉ＝１）に対して実行要求が行われると、主メモリ２００上に読み出された制御プログラム１０１ｉは、図１８に示す通り、本来の制御処理を実行する（Ｓ１８０１）。この制御処理が終了した場合には、当該制御処理が正常なプログラムコードの実行により行われたものであるかをチェックするために、不揮発性メモリ１００上のロードデータ実体格納エリア１１０に格納された照合復旧・後処理プログラム１０３ｉに対して実行要求を行う（Ｓ１８０２）。
【０１２０】
そして、図１９に示す通り、照合復旧・後処理プログラム１０３ｉは、制御プログラム１０１ｉを照合、復旧処理の対象とし（Ｓ１９０１）、主メモリ２００にロードされた制御プログラム１０１ｉのイメージを、照合用エリア２２０ａ、２２０ｂ上の同制御プログラム１０１ｉのイメージ１０１０ａｉ、１０１０ｂｉと各々照合する（Ｓ１９０２）。これにより、全ての照合によるイメージが一致しているかを判断し（Ｓ１９０３）、全ての照合で一致している場合には（Ｓ１９０３のＹＥＳ）、照合復旧・後処理プログラム１０３ｉ用のデータエリアに設けた「相違有りカウンタ」をクリアする（Ｓ１９０４）。
【０１２１】
その上で、後段の制御プログラム１０１ｉ＋１におけるソフトエラーの有無をチェックするために、不揮発性メモリ１００上の照合復旧・前処理プログラム１０２ｉ＋１に対して実行要求を行い（Ｓ１９０５）、本照合復旧・後処理プログラム１０３ｉによる処理は終了する。このような第５の実施形態に係る図１４と同様の制御プログラム１０１ｉ実行前の照合復旧処理、前記図１８に基づく制御プログラム１０１ｉ本来の実行処理、及び前記図１９に基づく制御プログラム１０１ｉの実行後の照合復旧処理が、不揮発性メモリ１００上のロードデータ実体格納エリア１１０の最後段の照合復旧・後処理プログラム１０３ｎに至るまで繰り返される。
【０１２２】
なお、最後段である照合復旧・後処理プログラム１０３ｎにおいては、実行対象として制御プログラム１０１ｎ＋１を有しないので、当該制御プログラム１０１ｎ＋１に対する実行要求は行われない。
【０１２３】
一方、Ｓ１９０３の、ロードエリア２１０上にロードされた制御プログラム１０１ｉのイメージと、照合用エリア２２０ａ、２００ｂ上の同制御プログラム１０１ｉのイメージ１０１０ａｉ、１０１０ｂｉとの照合処理において、いずれかに相違があった場合には（Ｓ１９０３のＮＯ）、第５の実施形態に係る図１６のＳ１６０６以降と同様の処理が行われる（Ｓ１９０６〜１９１１）。
【０１２４】
以上のような第６の実施形態によれば、主メモリ上のロードエリアのイメージと複数の照合用エリアとの間で制御プログラムの照合処理を行うので、当該照合処理の信頼性が向上すると共に、不揮発性メモリ上において、制御プログラムの実行前後における照合復旧処理を実現しているので、当該プログラムにソフトエラーが生じることはなく、当該制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【符号の説明】
【０１２５】
１００…不揮発性メモリ
１０１…制御プログラム
１０１０、１０１０ａ、１０１０ｂ…プログラムイメージ
１０２…照合復旧・前処理プログラム
１０３…照合復旧・後処理プログラム
１１０…ロードデータ実体格納エリア
１２０…ロード先アドレス格納エリア
２００…主メモリ
２１０…ロードエリア
２２０…照合用エリア
２２０ａ、２００ｂ…照合用エリア
３００…演算処理部
３１０…定周期実行要求手段
３２０…ブート実行手段
４００…制御プログラム
４０１０…プログラムイメージ
５００…定量照合復旧処理プログラム
【図１】
2010211534.tif 000003
【図２】
2010211534.tif 000004
【図３】
2010211534.tif 000005
【図４】
2010211534.tif 000006
【図５】
2010211534.tif 000007
【図６】
2010211534.tif 000008
【図７】
2010211534.tif 000009
【図８】
2010211534.tif 000010
【図９】
2010211534.tif 000011
【図１０】
2010211534.tif 000012
【図１１】
2010211534.tif 000013
【図１２】
2010211534.tif 000014
【図１３】
2010211534.tif 000015
【図１４】
2010211534.tif 000016
【図１５】
2010211534.tif 000017
【図１６】
2010211534.tif 000018
【図１７】
2010211534.tif 000019
【図１８】
2010211534.tif 000020
【図１９】
2010211534.tif 000021
【図２０】
2010211534.tif 000022