情報処理装置
【課題】不揮発性メモリのアクセス速度や装置への過負荷等といった性能面への影響を低減可能とする。
【解決手段】ブート実行手段320は、各種制御プログラム101i〜103iをロードエリア210にロードし、かつ照合用エリア220に対して制御プログラム101iのイメージ1010iをコピーする。照合復旧・前処理プログラム102iは、制御プログラム101iのイメージと照合用エリア220上の同イメージ1010iを照合する。一致する場合に制御プログラム101iを実行させる。相違がある場合に不揮発性メモリ100上の制御プログラム101iのイメージをロードエリア210に再ロードし、照合用エリア220上にコピーし、制御プログラム101iを実行させる。その後、照合復旧・後処理プログラム103iは、再度照合処理を実行し、一致する場合に照合復旧・前処理プログラム102i+1を実行させる。
【解決手段】ブート実行手段320は、各種制御プログラム101i〜103iをロードエリア210にロードし、かつ照合用エリア220に対して制御プログラム101iのイメージ1010iをコピーする。照合復旧・前処理プログラム102iは、制御プログラム101iのイメージと照合用エリア220上の同イメージ1010iを照合する。一致する場合に制御プログラム101iを実行させる。相違がある場合に不揮発性メモリ100上の制御プログラム101iのイメージをロードエリア210に再ロードし、照合用エリア220上にコピーし、制御プログラム101iを実行させる。その後、照合復旧・後処理プログラム103iは、再度照合処理を実行し、一致する場合に照合復旧・前処理プログラム102i+1を実行させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリから主メモリ上に予め設定された複数の制御プログラムを読み出し、複数段階の制御を順次実行し、かつ、これを一定周期で繰り返す情報処理装置に関する。
【背景技術】
【0002】
従来からの複数段階の制御を繰り返し実行する情報処理装置の構成を示すと、図20の通りである。すなわち、情報処理装置は、フラッシュメモリ等の不揮発性メモリ100から当該制御プログラム101を主メモリにロードし、演算処理部(CPU)300により当該制御プログラム101を実行するよう構成されている。
【0003】
具体的には、不揮発性メモリ100は、各種制御プログラム101i(i=1〜n)、固定データ、可変データが格納されているロードデータ実体格納エリア110と、当該制御プログラム101のロード先、固定データのロード先、可変データのロード先が記憶されているロード先アドレス格納エリア120と、を有している。
【0004】
また、主メモリ200は、DRAM又はSRAMから構成され、各種制御プログラム101i、固定データ、可変データがロードされるロードエリア210を有している。演算処理部300は、主メモリ200上のロードエリア210の各種制御プログラム101iを定周期で実行する定周期実行要求手段310を有している。
【0005】
このような構成を有する処理装置では、次のように、各種制御プログラム101iが実行される。まず、当該情報処理装置の立上げ時に、不揮発性メモリ100上に格納されたロード先アドレス格納エリア120を参照して、制御の各段階を処理するための制御プログラム101i、固定データ、可変データをロードデータ実体格納エリア110から、主メモリ200上のロードエリア210に対してロードするブート処理が行われる。
【0006】
そして、定常の運転状態において、この情報処理装置では、演算処理部300の定周期実行要求手段310が、主メモリ200上のロードエリア210上の制御プログラム101i(i=1)を定周期(例えば、200ms、400ms、1秒単位等)で実行させる。制御プログラム101i(i=1)では、自制御処理を実行し終了した際に、後段の制御プログラム101i+1に対して実行要求を行い、実行処理が後段の制御プログラム101i+1に移行する。
【0007】
このような実行処理が、ロードエリア210上の最後段の制御プログラム101nによる制御処理が終了するまで繰り返される。なお、ここでは、制御プログラム101i(i=1〜n)の実行処理を、定周期実行時間以内に行うことで、図20に示すような、演算処理部300による入力情報に応じた出力制御が連続して行われている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、近年のメモリの高速化や高集積化に伴い、情報処理装置の主メモリ200として使用しているSRAM又はDRAMでは、ノイズ、あるいは宇宙線粒子通過などの影響により、一定の確率で、ハード的に破壊されない一時的なデータ反転が発生する現象(ビット化け。以下、「ソフトエラー」とも称する)が避けられない状況下にある。
【0009】
ここで、ハードウェア回路によるECC(Error Check and Correct)により、誤り検知や訂正を行うことは可能であるが、組み込みシステム分野においてはメモリ速度の関係でECCの実装が困難である。そのため、システムによるエラーの発生の検出及び訂正ができない状態で処理を継続し、あるいは異常停止してしまうので、当該システムの信頼性や稼働率の低下に影響を及ぼしていた。
【0010】
また、仮にECCを実装した場合であっても、メモリから読み出したデータの訂正を行うことは可能であるが、メモリ上のデータに対しては訂正が行われずに誤りデータが残存したままとなり、長期間、無停止で稼働させるシステムにおいては、1読み出し単位(例えば、1ワード)で複数ビットの反転に至っていた。それ故に、データ読み出し時に訂正ができない場合が生じた。
【0011】
なお、近年では、上述した図20で言えば、各制御プログラム101iの実行の前後において、不揮発性メモリ100上のプログラムコードと主メモリ200上のプログラムコード(以下、「プログラムイメージ」とも称する)を照合することで、コードに相違があった場合にソフトエラーが生じているとして、当該制御プログラム101iを不揮発性メモリ100から主メモリ200へ再ロードする装置が提案されている。しかしながら、このような制御プログラム101iを再ロードする装置では、ソフトエラーの発生状態を復旧させる(ソフトエラー耐性を向上させる)ことは可能であるが、不揮発性メモリ100のアクセス速度や情報処理装置への過負荷の問題により性能面で悪影響を与えてしまい、実現には困難を要した。
【0012】
本発明は、上記のような課題を解消するために提案されたものであって、その目的は、不揮発性メモリのアクセス速度や装置への過負荷等といった性能面への影響を低減可能な、ソフトエラー照合復旧機能を備えた情報処理装置を提供することにある。
【課題を解決するための手段】
【0013】
上述した目的を達成するために、本発明は、不揮発性メモリ上の1以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、前記不揮発性メモリは、前記制御プログラムの実行前に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第1の照合復旧プログラムと、前記制御プログラムの実行後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第2の照合復旧プログラムと、を前記制御プログラム毎に有し、前記第1の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、前記ロードエリア上の前記制御プログラムを実行させ、前記第2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、実行後の当該制御プログラムを正常とすることを特徴とする。
【0014】
また、本発明の第1及び2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の当該制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーする態様も有し、
さらに、前記不揮発性メモリ上で実行させる態様も包含する。
【0015】
また、第1及び2の照合復旧プログラムを設けずに、全ての制御プログラムを実行後に、照合及び復旧処理を行う照合復旧プログラムを設ける態様も本発明は包含する。さらに、本発明は、前記主メモリ上に、複数の前記照合用エリアを設ける態様も備えている。
【発明の効果】
【0016】
以上のような本発明によれば、定常運転時において、制御プログラムの照合を行う場合、主メモリ上のロードエリアに読み出されたプログラムと、当該主メモリ上の照合用エリアに読み出されたプログラムとのイメージにより一致を判定するので、アクセス速度が遅い不揮発性メモリからの読み出し処理を省略することが可能となり、プログラムの照合に要する実行時間を軽減することができる。これにより、ソフトエラーが生じた状態の制御プログラムを実行する前に、照合及び復旧処理を行うことが可能となる。
【0017】
また、万一、動作中であった制御プログラムにソフトエラーが発生し、プログラムのコード化けが生じていた場合であっても、正常なプログラムを再ロードすることにより再実行処理を行うことができる。
【0018】
さらに、不揮発性メモリ上において、制御プログラムの実行前後の照合復旧プログラムによる処理を行うこともできるので、当該照合復旧プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【0019】
また、制御プログラムにおけるソフトエラー発生状況を定期的に復旧させることができるので、主メモリ上のデータの訂正を行うことができないECCを実装した情報処理装置であっても、誤りデータが長期間残存することを防止でき、さらに、データ読み出し時の訂正ができない可能性を低減することが可能となる。なお、1周期で照合する制御プログラムのサイズを変更することにより、全制御プログラムのチェックに必要な期間(周期数)を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理を適用することが可能となる。
【0020】
加えて、主メモリ上に複数箇所の照合用エリアを設けることができるので、複数箇所の照合用エリア上の制御プログラムのイメージとロードエリアの同制御プログラムのイメージとを照合することにより、主メモリ上に1箇所の照合用エリアを設けた場合と比較して、照合処理の信頼性が格段に向上する。つまり、主メモリ上の複数箇所に照合エリアを設けることにより照合対象数が増加するため、ほぼ同時期に、同数の同一箇所のビットが変化する可能性が低減することから、照合処理の信頼性が向上する。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態に係る構成例を示す機能ブロック図
【図2】本発明の第1の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図3】本発明の第1の実施形態に係る制御プログラムの作用を示すフローチャート
【図4】本発明の第1の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図5】本発明の第2の実施形態に係る構成例を示す機能ブロック図
【図6】本発明の第2の実施形態に係る制御プログラムの作用を示すフローチャート
【図7】本発明の第2の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図8】本発明の第3の実施形態に係る構成例を示す機能ブロック図
【図9】本発明の第3の実施形態に係る制御プログラムの作用を示すフローチャート
【図10】本発明の第3の実施形態に係る定量照合復旧処理プログラムの作用を示すフローチャート
【図11】本発明の第4の実施形態に係る構成例を示す機能ブロック図
【図12】本発明の第4の実施形態に係る制御プログラムの作用を示すフローチャート
【図13】本発明の第5の実施形態に係る構成例を示す機能ブロック図
【図14】本発明の第5の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図15】本発明の第5の実施形態に係る制御プログラムの作用を示すフローチャート
【図16】本発明の第5の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図17】本発明の第6の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図18】本発明の第6の実施形態に係る制御プログラムの作用を示すフローチャート
【図19】本発明の第6の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図20】従来における情報処理装置の全体構成を示す図
【発明を実施するための形態】
【0022】
[本実施形態]
[1.第1の実施形態]
[1.1.構成]
次に、本発明を実施するための第1の実施形態に係る情報処理装置の構成について図1を参照して以下に説明する。なお、図1は、第1の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。
【0023】
図1に示す通り、この情報処理装置は、不揮発性メモリ100と主メモリ200と演算処理部300により構成され、具体的な構成は下記の通りである。
【0024】
不揮発性メモリ100は、主メモリ200にロードされる下記の各種制御プログラム101i(i=1〜n)〜103i(i=1〜n)、固定データ(固定データ格納エリア)、可変データ(可変データ格納エリア)を格納するロードデータ実体格納エリア110と、各種制御プログラム101i〜103i、固定データ、可変データのロード先アドレスを格納するロード先アドレス格納エリア120と、を有している。
【0025】
このロードデータ実体格納エリア110には、固定データ及び可変データに加え、情報処理装置本来の制御処理を実行する制御プログラム101i(i=1〜n)と、当該制御プログラム101iの実行前に照合及び復旧処理を行う照合復旧・前処理プログラム102i(i=1〜n)と、当該制御プログラム101iの実行後に照合及び復旧処理を行う照合復旧・後処理プログラム103i(i=1〜n)と、が格納されている。
【0026】
また、主メモリ200は、DRAM又はSRAMから構成され、不揮発性メモリ100からの各種制御プログラム101i〜103i、固定データ、可変データがロードされるロードエリア210と、制御プログラム101iのプログラムイメージを照合するために用意された照合用エリア220と、を有している。
【0027】
各制御プログラム101i〜103iが行う処理については、[1.2.作用]の項目で詳述するが、下記に照合復旧・前処理プログラム102i及び照合復旧・後処理プログラム103iの処理について触れておく。
【0028】
照合復旧・前処理プログラム102iは、制御プログラム101iの実行前に、主メモリ200上のロードエリア210の制御プログラム101iのイメージを照合用エリア220の当該制御プログラム101iのイメージ1010iと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に、不揮発性メモリ100上の制御プログラム101iを主メモリ200に対して再ロードする復旧処理と、を有している。
【0029】
また、照合復旧・後処理プログラム103iは、制御プログラム101iの実行後に、主メモリ200上のロードエリア210の制御プログラム101iのイメージを照合用エリア220の制御プログラム101iのイメージ1010iと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に、不揮発性メモリ100上の制御プログラム101iを主メモリ200に対して再ロードする復旧処理と、復旧した制御プログラム101iの再実行処理と、を有している。なお、この照合復旧・後処理プログラム103iは、後述するが、主メモリ200上の当該プログラム103i用のデータエリアに設けられた「相違有りカウンタ」をカウント、あるいはクリアする処理も有している。
【0030】
演算処理部300は、当該演算処理部300内、あるいは情報処理装置内に記憶された各種制御プログラム101i〜103i等の一連の処理を定周期で実行させる所定のプログラムを、ユーザからの入力、あるいは自動で実行する定周期実行要求手段310を有している。なお、この定周期実行要求手段310による定周期管理は、情報処理装置内部に設けたタイマによるものでも外部からのトリガー入力によるものでも構わない。
【0031】
また、情報処理装置内のROM等に記憶された所定のブートプログラムを実行するブート実行手段320を有している。すなわち、ブート実行手段320は、情報処理装置の立ち上げ時に、各種制御プログラム101i〜103i、固定データや可変データを主メモリ200上のロードエリア210に初期ロードする。
【0032】
[1.2.作用]
次に、上記のような構成を有する第1の実施形態に係る情報処理装置の作用を図2〜4を参照して以下に説明する。
【0033】
まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、制御プログラム101i(i=1〜n)と、照合復旧・前処理プログラム102i(i=1〜n)と、照合復旧・後処理プログラム103i(i=1〜n)と、を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対しても制御プログラム101i(i=1〜n)のイメージ1010i(i=1〜n)をコピーする。
【0034】
この状況下で、情報処理装置の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた照合復旧・前処理プログラム102i(i=1)に対して実行要求を行う。
【0035】
これを受けた照合復旧・前処理プログラム102iでは、図2に示す通り、この制御プログラム101iを照合、復旧処理の対象とする(S201)。そして、主メモリ200上のロードエリア210にロードされた制御プログラム101iにおけるソフトエラーの発生の有無をチェックするために、このロードした制御プログラム101iのイメージと、照合用エリア220上の同制御プログラム101iのイメージ1010iとを照合する(S202)。
【0036】
この照合により両イメージが一致するかを判断し(S203)、両者が一致する場合には(S203のYES)、この制御プログラム101iに対して実行要求を行い(S204)、本照合復旧・前処理プログラム102iによる処理は終了する。
【0037】
一方、照合の結果、両イメージに相違があった場合には(S203のNO)、この制御プログラム101iにソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードする(S205)。ここで、この復旧処理を最小とするために、ロードエリア210でのソフトエラー発生か、あるいは照合用エリア220でのソフトエラー発生であるかの特定は行わず、同イメージを照合用エリア220上にもコピーする(S206)。その後、主メモリ200上のロードエリア210に再ロードされた制御プログラム101iに対して実行要求を行い(S204)、照合復旧・前プログラム102による処理は終了する。
【0038】
図3に示す通り、主メモリ200上のロードエリア210に読み出された制御プログラム101iは、本来の制御処理を実行し(S301)終了した際に、当該制御処理が正常なプログラムコードの実行により行われたものかをチェックするために、ロードエリア210上に読み出された照合復旧・後処理プログラム103iに対して実行要求を行う(S302)。
【0039】
そして、図4に示す通り、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S401)、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージを、照合用エリア220上の同制御プログラム101iのイメージ1010iと照合する(S402)。
【0040】
この照合により両イメージが一致しているかを判断し(S403)、両イメージが一致する場合には(S403のYES)、主メモリ200上の照合復旧・後処理プログラム103i用のデータエリアに設けられた「相違有りカウンタ」をクリアにし(S404)、後段の制御プログラム101i+1におけるソフトエラーの有無をチェックするための照合復旧・前処理プログラム102i+1に対して実行要求を行う(S405)。これにより、本照合復旧・後処理プログラム103iによる処理は終了する。
【0041】
なお、最後段である照合復旧・後処理プログラム102nにおいては、実行対象として制御プログラム101n+1は有しないので、当該制御プログラム101n+1への実行要求は行われない。
【0042】
一方、両イメージを照合することにより、相違があった場合に(S403のNO)、「相違有りカウンタ」をインクリメントし(S406)、このカウント値が所定の既定回数に達するかを判定する(S407)。カウント値が所定の既定回数に達しない場合には(S407のNO)、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードし(S408)、また、この制御プログラム101iのイメージを照合用エリア220にもコピーする(S409)。
【0043】
その後、主メモリ200上のロードエリア210の制御プログラム101iに対して実行要求を行い(S410)、本照合復旧・後処理プログラム103iの処理を一旦終了する。これにより、上述した図3に示した制御プログラム101iの実行フローに処理が移行し、当該制御プログラム101iが実行され、再度、照合復旧・後処理プログラム103iによる制御処理が行われる。
【0044】
ここで、S407において、「相違有りカウンタ」のカウント値が所定の既定回数に達した場合には(S407のYES)、メモリのハードエラー発生と判断し、本情報処理装置を停止する(S411)。
【0045】
なお、以上のような、照合復旧・前処理プログラム102i(i=1)の実行開始から照合復旧・後処理プログラム103nによる実行が終了するまでの一連の処理は、定周期実行要求手段310により次周期の起動要求が照合復旧・前処理プログラム102i(i=1)に対して行われるまでに完了させる。
【0046】
以上のような第1の実施形態によれば、定常運転時において、制御プログラムの照合を行う場合、主メモリ上のロードエリアに読み出されたプログラムと、当該主メモリ上の照合用エリアに読み出されたプログラムとのイメージにより一致を判定するので、アクセス速度が遅い不揮発性メモリからの読み出し処理を省略することが可能となり、プログラムの照合に要する実行時間を軽減することができる。これにより、ソフトエラーが生じた状態の制御プログラムを実行する前に、照合及び復旧処理を行うことが可能となる。
【0047】
また、万一、動作中であった制御プログラムにソフトエラーが発生し、プログラムコード化けが生じていた場合であっても、正常なプログラムを再ロードすることにより再実行処理を行うことができる。
【0048】
[1.3.他の実施態様]
第1の実施形態では、照合復旧・後処理プログラム103iにおいて、上記のような主メモリ200上の「相違ありカウンタ」に基づくソフトエラーの連続発生のチェック処理を設けずに、情報処理装置の運転継続を優先する実施形態も包含する。
【0049】
また、制御プログラム101i(i=1〜n)の各々に対して、専用の照合復旧プログラム群を設ける態様だけでなく、情報処理装置に対して、照合復旧・前処理プログラム102と照合復旧・後処理プログラム103を1つずつ実装する実施形態も第1の実施形態は包含する。
【0050】
[2.第2の実施形態]
[2.1.構成]
次に、本発明を実施するための第2の実施形態に係る情報処理装置の構成について図5を参照して以下に説明する。図5は、第2の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第1の実施形態と共通する構成については同一の符号を付し、説明は省略する。
【0051】
第2の実施形態に係る情報処理装置では、図5に示す通り、基本的な構成は第1の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第2の実施形態に係る演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを、主メモリ200上のロードエリア210にロードする。
【0052】
より詳細に言えば、ブート実行手段320は、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを主メモリ200上のロードエリア210にロードさせるブートプログラムを実行する。そのため、第1の実施形態では、ブート実行手段320が、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)、照合復旧・前処理プログラム102i(i=1〜n)、照合復旧・後処理プログラム103i(i=1〜n)を主メモリ200上のロードエリア210にロードしていたのに対し、第2の実施形態では、固定データ及び可変データの他、制御プログラム101i(i=1〜n)のみしかロードエリア210にロードしない。
【0053】
これにより、第2の実施形態に係る演算処理部300の定周期実行要求手段310においては、不揮発性メモリ100上に格納された照合復旧・前処理プログラム102i及び照合復旧・後処理プログラム103iを当該演算処理部300に読み出して、定周期で実行する態様を有している。
【0054】
[2.2.作用]
次に、上記のような構成を有する第2の実施形態に係る情報処理装置の作用を図6及び7を参照して以下に説明する。
【0055】
第2の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム101i(i=1〜n)を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対しても制御プログラム101i(i=1〜n)のイメージ1010i(i=1〜n)をコピーしておく。
【0056】
この状況下で、情報処理装置の定周期実行要求手段310は、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102i(i=1)に対して実行要求を行う。これにより、当該照合復旧・前処理プログラム102iのプログラムコードが演算処理部300上に読み出され、実行処理が行われる。ここで、照合復旧・前処理プログラム102iによる実際の処理は、第1の実施形態に係る図2に示したフローと同様であり、説明は省略する。
【0057】
この照合復旧・前処理プログラム102iによる実行処理が行われ、制御プログラム101iに対する実行要求があると、図6に示す通り、主メモリ200上のロードエリア210に読み出された制御プログラム101iは、本来の制御処理を実行する(S601)。この制御プログラム101iによる制御処理が終了した際に、当該制御処理が正常なプログラムコードの実行により行われたものかをチェックするために、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・後処理プログラム103iに対して実行要求を行う(S602)。
【0058】
そして、図7に示す通り、第1の実施形態と同様に、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S701)、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージを、照合用エリア220上の同制御プログラム101iのイメージ1010iと照合する(S702)。この照合により両イメージが一致しているかを判断し(S703)、両イメージが一致する場合には(S703のYES)、主メモリ200上の照合復旧・後処理プログラム103i用のデータエリアに設けられた「相違有りカウンタ」をクリアにする(S704)。
【0059】
これに伴い、第2の実施形態では、制御プログラム101i+1におけるソフトエラーの有無をチェックするために、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102i+1に対して実行要求を行う(S705)。これにより、本照合復旧・後処理プログラム103iによる処理は終了する。
【0060】
なお、不揮発性メモリ100上の最後段の照合復旧・後処理プログラム103nにおいては、実行対象として制御プログラム101n+1は有しないので、当該制御プログラム101n+1への実行要求は行われない。
【0061】
一方、S703において、ロードエリア210上にロードされた制御プログラム101iのイメージと、照合用エリア220上の同制御プログラム101iのイメージ1010iと、に相違があった場合には(S703のNO)、第1の実施形態に係る図4のS406以降と同様の処理が行われる(S706〜711)。
【0062】
以上のような第2の実施形態によれば、不揮発性メモリ上において、照合復旧・前処理及び後処理プログラムを実行しているので、当該プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【0063】
[3.第3の実施形態]
[3.1.構成]
次に、本発明を実施するための第3の実施形態に係る情報処理装置の構成について図8を参照して以下に説明する。図8は、第3の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第1及び2の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0064】
第3の実施形態に係る情報処理装置の基本的な構成は、図8の通り、第1の実施形態と同様に、不揮発性メモリ100と主メモリ200と演算処理部300から成るが、下記に詳述する。
【0065】
第3の実施形態では、不揮発性メモリ100は、主メモリ200にロードされる下記の制御プログラム400i(i=1〜n)、定量照合復旧処理プログラム500、固定データ(固定データ格納エリア)、可変データ(可変データ格納エリア)を格納するロードデータ実体格納エリア110を有している。また、不揮発性メモリ100は、制御プログラム400i(i=1〜n)、定量照合復旧処理プログラム500、固定データ、可変データのロード先アドレスを格納するロード先アドレス格納エリア120を有している。
【0066】
このロードデータ実体格納エリア110には、固定データ及び可変データに加え、情報処理装置本来の制御処理を実行する制御プログラム400i(i=1〜n)と、いずれの当該制御プログラム400iに対しても照合及び復旧処理を行う定量照合復旧処理プログラム500と、が格納されている。具体的には、この定量照合復旧処理プログラム500は、主メモリ200上のロードエリア210にロードされた当該制御プログラム400iを、照合用エリア220上にコピーされた当該制御プログラム400iと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に不揮発性メモリ100上の制御プログラム400iを再ロードする復旧処理と、を備えている。もちろん、定量照合復旧処理プログラム500は、復旧した制御プログラム101iの再実行処理も有している。
【0067】
主メモリ200は、不揮発性メモリ100からの制御プログラム400i、定量照合復旧処理プログラム500、固定データ、可変データがロードされるロードエリア210と、当該制御プログラム400iのイメージを照合するために用意された照合用エリア220と、を有している。
【0068】
演算処理部300は、第1の実施形態と同様に、当該演算処理部300内、あるいは情報処理装置内に記憶された各制御プログラム400i(i〜n)及び定量照合復旧処理プログラム500による一連の処理を定周期で実行させる所定のプログラムを、ユーザからの入力、あるいは自動で実行する定周期実行要求手段310を有している。なお、この定周期実行要求手段310による定周期管理は、第1及び2の実施形態と同様に、情報処理装置内部に設けたタイマによるものでも、外部からのトリガー入力によるものでも構わない。
【0069】
また、情報処理装置内のROM等に記憶されたブートプログラムを実行するブート実行手段320を有し、当該ブート実行手段320は、情報処理装置の立ち上げ時に、制御プログラム400i、定量照合復旧処理プログラム500、固定データや可変データを主メモリ200上のロードエリア210に初期ロードする。
【0070】
[3.2.作用]
次に、上記のような構成を有する第3の実施形態に係る情報処理装置の作用を図9及び10を参照して、以下に説明する。
【0071】
第3の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム400i(i=1〜n)と定量照合復旧処理プログラム500を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対して制御プログラム400i(i=1〜n)のイメージ4010i(i=1〜n)をコピーしておく。
【0072】
この状況下で、情報処理装置の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた制御プログラム400i(i=1)を実行させる。図9に示す通り、制御プログラム400iは、当該制御プログラム本来の制御処理を実行し(S901)終了した場合に、後段の制御プログラム400i+1を実行させ、さらに、このような制御プログラムによる実行処理を、最後段の制御プログラム400nまで繰り返す(S902、903)。
【0073】
ここで、主メモリ200上にロードされた最後段の制御プログラム400nにおいて、制御処理が終了した際には(S902のYES)、当該制御プログラム400nは、いずれの制御プログラム400i(i=1〜n)のプログラムイメージの照合を行うために、定量照合復旧処理プログラム500に対して実行要求を行う(S904)。
【0074】
この定量照合復旧処理プログラム500では、図10に示すように、まず、情報処理装置の立ち上がり後、当該プログラム500が初めて実行された場合のみ、制御プログラム400i(i=1)を「照合対象の制御プログラム」として記憶する(S1001)。
【0075】
次に、照合対象として記憶されていた制御プログラム400iの主メモリ200上のロードエリア210にロードされたイメージと照合用エリア220上の同制御プログラム400iのイメージ4010iを照合する(S1002)。この照合により両イメージが一致するかを判断し(S1003)、両イメージを照合することにより、一致していた場合には(S1003のYES)、今回照合した制御プログラム400iの後段の制御プログラム400i+1を「照合対象の制御プログラム」として記憶する(S1004)。
【0076】
一方、照合により両イメージに相違があった場合には(S1003のNO)、この制御プログラム400iにソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ100上の制御プログラム400iのイメージを、主メモリ200上のロードエリア210に再ロードする(S1005)。さらに、同制御プログラム400iのイメージを照合用エリア220にもコピーする(S1006)。
【0077】
その後、照合により両イメージが一致した場合と同様、今回照合した制御プログラム400iの後段の制御プログラム400i+1を「照合対象の制御プログラム」として記憶する(S1004)。これにより、次周期に本定量照合復旧処理プログラム500が起動された際、制御プログラム400i+1が照合対象となり、上記の処理が繰り返される(S1007)。主メモリ200上の最後段の制御プログラム400nまで、このような照合処理が繰り返されると(S1007のYES)、「照合対象の制御プログラム」として制御プログラム400i(i=1)を記憶する(S1008)。
【0078】
以上のような第3の実施形態によれば、制御プログラムにおけるソフトエラー発生状況を定期的に復旧させることができるので、主メモリ上のデータの訂正を行うことができないECCを実装した情報処理装置であっても、誤りデータが長期間残存することを防止でき、さらに、データ読み出し時の訂正ができない可能性を低減することが可能となる。また、1周期で照合する制御プログラムのサイズを変更することにより、全制御プログラムのチェックに必要な期間(周期数)を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理を適用することが可能となる。
【0079】
[3.3.他の実施態様]
第3の実施形態は、上記では、1周期毎に1つの制御プログラム400iの照合、復旧処理を行っているが、定量照合復旧処理プログラム500が対象となる制御プログラム400iに対して照合処理を行う場合、当該制御プログラム400iの全サイズ分を1度に照合する態様に限定するものではなく、下記のような実施形態も包含する。すなわち、定量照合復旧処理プログラム500は、対象となる制御プログラム400iのうち、予め設定したサイズ内(例えば1KB)で少しずつ照合を実行し、かつ、次回実行時の照合用に当該制御プログラム400i内の相対アドレスを記憶しておくことで、情報処理装置として、全制御プログラム400iを照合するのに必要な期間を調整可能な実施形態を包含する。
【0080】
[4.第4の実施形態]
[4.1.構成]
次に、本発明を実施するための第4の実施形態に係る情報処理装置の構成について図11を参照して以下に説明する。図11は、第4の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第3の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0081】
第4の実施形態では、図11に示す通り、基本的な構成は第3の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。
【0082】
第4の実施形態に係る演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ100上の制御プログラム400i(i=1〜n)のみを、主メモリ200上のロードエリア210にロードする。より詳細に言えば、ブート実行手段320は、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム400iのみを主メモリ200上のロードエリア210にロードさせるブートプログラムを実行する。
【0083】
すなわち、第3の実施形態では、ブート実行手段320が、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム400i、定量照合復旧処理プログラム500を主メモリ200上のロードエリア210にロードしていたのに対し、第4の実施形態では、固定データ及び可変データの他、制御プログラム400iのみしかロードエリア210にロードしない。
【0084】
[4.2.作用]
次に、上記のような構成を有する第4の実施形態に係る情報処理装置の作用を図12を参照して以下に説明する。
【0085】
第4の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム400i(i=1〜n)を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対しても制御プログラム400i(i=1〜n)のイメージ4010i(i=1〜n)をコピーしておく。
【0086】
そして、演算処理部300の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた制御プログラム400i(i=1)を実行させる。図12に示す通り、制御プログラム400iは、当該制御プログラム本来の制御処理を実行し(S1201)終了した場合に、後段の制御プログラム400i+1を実行させ、さらに、このような制御プログラムによる実行処理を、最後段の制御プログラム400nまで繰り返す(S1202、1203)。
【0087】
ここで、主メモリ200上にロードされた最後段の制御プログラム400nにおいて、制御処理が終了した際には(S1202のYES)、当該制御プログラム400nは、いずれの制御プログラム400i(i=1〜n)のプログラムイメージの照合を行うために、不揮発性メモリ100上の定量照合復旧処理プログラム500に対して実行要求を行う(S1204)。これにより演算処理部300は、不揮発性メモリ100から定量照合復旧処理プログラム500のプログラムコードを読み出し、当該処理を実行する。なお、定量照合復旧処理プログラム500は、第3の実施形態に係る図10のフローと同様な処理を行うため、説明は省略する。
【0088】
以上のような第4の実施形態によれば、1周期で照合する制御プログラムのサイズの変更により、全制御プログラムのチェックに要する必要な期間(周期数)を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理が適用可能であると共に、不揮発性メモリ上において、定量照合復旧処理プログラムを実行しているので、当該プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【0089】
[5.第5の実施形態]
[5.1.構成]
次に、本発明を実施するための第5の実施形態に係る情報処理装置の構成について図13を参照して以下に説明する。図13は、第5の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第1の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0090】
第5の実施形態に係る情報処理装置では、図13に示す通り、基本的な構成は第1の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第5の実施形態では、図13の通り、主メモリ200上に2つの照合用エリア220a、220bを備える構成に特徴を有する。
【0091】
そのため、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、所定のブートプログラムを実行することにより、主メモリ200上のロードエリア210に制御プログラム101i(i=1〜n)をロードすると共に、当該制御プログラム101i(i=1〜n)のイメージを、照合用エリア220a、220bに対してそれぞれコピーする(イメージ1010ai(i=1〜n)、1010bi(i=1〜n))。
【0092】
また、第5の実施形態に係る不揮発性メモリ100のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102iの照合処理は、下記のような態様を有する。すなわち、この照合復旧・前処理プログラム102iでは、主メモリ200上にロードされた制御プログラム101iの実行前に、当該主メモリ200上のロードエリア210の制御プログラム101iを、照合用エリア220a、220b上の当該制御プログラム101iのイメージ1010ai、1010biと各々照合する。
【0093】
また、照合復旧・前処理プログラム102iの復旧処理は、上記照合処理の結果、相違が生じた場合に制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードし、かつ、照合用エリア220a、220bに再コピーする。
【0094】
なお、第5の実施形態に係る照合復旧・後処理プログラム103iにおいても、主メモリ200上のロードエリア210にロードされた当該制御プログラム101iの実行後に、上記照合復旧・前処理プログラム102iと同様の照合及び復旧処理が行われる。
【0095】
[5.2.作用]
次に、上記のような構成を有する第5の実施形態に係る情報処理装置の作用を、図14〜16を参照して以下に説明する。
【0096】
第5の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、制御プログラム101i(i=1〜n)と、照合復旧・前処理プログラム102i(i=1〜n)と、照合復旧・後処理プログラム103i(i=1〜n)と、を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220a、220bに対して制御プログラム101i(i=1〜n)のイメージ1010ai(i=1〜n)、1010bi(i=1〜n)をコピーしておく。
【0097】
この状況下で、情報処理装置の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた照合復旧・前処理プログラム102i(i=1)を実行させる。照合復旧・前処理プログラム102iでは、図14に示す通り、主メモリ200上のロードエリア210にロードされた制御プログラム101i(i=1)を、ソフトエラーの発生の有無のチェック対象、すなわち、照合、復旧処理の対象とする(S1401)。
【0098】
そして、このロードした制御プログラム101iのイメージを、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biの各々と照合する(S1402)。この照合により全てのイメージが一致するかを判断し(S1403)、全ての照合が一致する場合には(S1403のYES)、すなわち、ロードエリア210上の制御プログラム101iのイメージが照合用エリア220a上の当該制御プログラム101iのイメージ1010aiと一致し、かつ、このロードエリア210上の制御プログラム101iのイメージが照合用エリア220b上のイメージ1010biと一致する場合には、主メモリ200上のロードエリア210にロードされた制御プログラム101iに対して実行要求を行い(S1404)、本照合復旧・前処理プログラム102iによる処理は終了する。
【0099】
一方、照合の結果、いずれかの照合で相違があった場合には(S1403のNO)、制御プログラム101iにおいてソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードする(S1405)。ここで、この復旧処理を最小とするために、ロードエリア210でのソフトエラー発生か、あるいは照合用エリア220でのソフトエラー発生であるかの特定は行わず、同制御プログラム101iのイメージを照合用エリア220a、220b上にも各々コピーする(S1406)。その後、ロードエリア上の制御プログラム101iに対して実行要求を行い(S1404)、本プログラム102の処理を終了する。
【0100】
図15に示す通り、主メモリ200上のロードエリア210に読み出された制御プログラム101iは、本来の制御処理を実行し(S1501)終了した際、当該制御処理が正常なプログラムコードの実行により行われたものであるかをチェックするために、ロードエリア210上に読み出された照合復旧・後処理プログラム103iに対して実行要求を行う(S1502)。
【0101】
そして、図16の通り、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S1601)、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージを、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biと各々照合する(S1602)。この全ての照合によりイメージが一致するかを判断し(S1603)、全ての照合で一致する場合には(S1603のYES)、主メモリ200上の照合復旧・後処理プログラム103i用のデータエリアに設けた「相違有りカウンタ」をクリアする(S1604)。
【0102】
その上で、後段の制御プログラム101i+1におけるソフトエラーの有無をチェックするための照合復旧・前処理プログラム102i+1に対して実行要求を行い(S1605)、本照合復旧・前処理プログラム103iによる処理は終了する。このような前記図14に基づく制御プログラム101i実行前の照合復旧処理、前記図15に基づく制御プログラム101i本来の実行処理、及び前記図16に基づく制御プログラム101iの実行後の照合復旧処理が、主メモリ200上のロードエリア210にロードされた最後段の照合復旧・後処理プログラム103nに至るまで繰り返される。
【0103】
なお、この最後段である照合復旧・後処理プログラム103nにおいては、実行対象として制御プログラム101n+1を有しないので、当該制御プログラム101n+1への実行要求は行われない。
【0104】
一方、照合の結果、いずれかの照合で相違があった場合には(S1603のNO)、「相違ありカウンタ」をインクリメントし(S1606)、このカウント値が所定の既定回数に達するかを判定する(S1607)。カウント値が所定の既定回数に達しない場合には(S1607のNO)、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードし(S1608)、また、この制御プログラム101iのイメージを照合用エリア220a、200bの各々に対してコピーする(S1609)。
【0105】
その後、主メモリ200上のロードエリア210にロードされた制御プログラム101iに対して実行要求を行い(S1610)、本照合復旧・後処理プログラム103iによる処理を一旦終了する。これにより、上述した図15に示した制御プログラム101iの実行フローに処理が移行し、当該制御プログラム101iが実行され、さらに、この制御プログラム101iに対して、再度照合復旧・後処理プログラム103iによる処理が実行される。
【0106】
その後、S1607において、「相違有りカウンタ」のカウント値が所定の既定回数に達した場合には(S1607のYES)、メモリのハードエラー発生と判断し、本情報処理装置を停止する(S1611)。
【0107】
以上のような第5の実施形態によれば、主メモリ上に2箇所の照合用エリアを設けることで、当該2箇所の照合用エリア上の制御プログラムのイメージとロードエリアの同イメージとを照合することができるので、主メモリ上に1箇所の照合用エリアを設けた場合と比較して、照合処理の信頼性の向上を図ることが可能となる。つまり、主メモリ上の複数箇所に照合エリアを設けることにより照合対象数が増加するため、ほぼ同時期に、同数の同一箇所のビットが変化する可能性が低減することから、照合処理の信頼性が向上する。
【0108】
[5.3.他の実施態様]
上記では、照合復旧・前処理プログラム102iにおいて、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージと、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biとの照合が全て一致する場合に正常と判断し、制御プログラム101iを実行させていたが、下記のような実施形態も第5の実施形態は包含する。
【0109】
すなわち、第5の実施形態では、照合復旧・前処理プログラム102iにおいて、全イメージの一致を条件とすることで照合の信頼性の向上を図るよりも、復旧時の処理速度の向上を目的として、いずれか一方の照合に相違がない場合に正常と判断し、当該制御プログラム101iを実行させる実施形態も包含する。また、この際、照合復旧・前処理プログラム102iは、ソフトエラー発生状態を復旧するために、照合に相違のなかった照合用エリア220のイメージを、他方の照合用エリア220にコピーする。
【0110】
このような実施形態によれば、1箇所でも照合結果に相違がなかった場合には、その照合結果及び照合エリアを正常とし、改めて不揮発性メモリからの読み出しを行わずに、この正常とした照合用エリア220から他方の照合用エリア220へ当該制御プログラム101iのイメージをコピーすることができるので、復旧処理の速度を各段に向上させることが可能である。
【0111】
また、第5の実施形態では、第1の実施形態と同様に、照合復旧・後処理プログラム103iにおいて、上記のような主メモリ200上の「相違ありカウンタ」に基づくソフトエラーの連続発生のチェック処理を設けずに、情報処理装置の運転継続を優先する実施形態も包含する。
【0112】
[6.第6の実施形態]
[6.1.構成]
次に、本発明を実施するための第6の実施形態に係る情報処理装置の構成について図17を参照して以下に説明する。図17は、第6の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第5の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0113】
第6の実施形態に係る情報処理装置は、図17に示す通り、基本的な構成は第5の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第6の実施形態に係る演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを、主メモリ200上のロードエリア210にロードする。
【0114】
より詳細に言えば、ブート実行手段320は、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを主メモリ200上のロードエリア210にロードさせるブートプログラムを実行する。すなわち、第5の実施形態では、ブート実行手段320が、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)、照合復旧・前処理プログラム102i(i=1〜n)、照合復旧・後処理プログラム103i(i=1〜n)を主メモリ200上のロードエリア210にロードしていたのに対し、第6の実施形態では、固定データ及び可変データの他、制御プログラム101i(i=1〜n)のみしかロードエリア210にロードしない。
【0115】
そのため、第6の実施形態に係る演算処理部300の定周期実行要求手段310においては、不揮発性メモリ100上に格納された照合復旧・前処理プログラム102i及び照合復旧・後処理プログラム103iを当該演算処理部300に読み出して、定周期で実行する態様を有する。
【0116】
[6.2.作用]
次に、上記のような構成を有する第6の実施形態に係る情報処理装置の作用を図18及び19を参照して以下に説明する。
【0117】
第6の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム101i(i=1〜n)を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220a、220bに対しても制御プログラム101i(i=1〜n)のイメージ(1010ai(i=1〜n)、1010bi(i=1〜n))をコピーしておく。
【0118】
この状況下で、情報処理装置の定周期実行要求手段310は、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102i(i=1)に対して実行要求を行う。これにより、当該照合復旧・前処理プログラム102i(i=1)のプログラムコードが演算処理部300上に読み出され、実行処理が行われる。ここで、照合復旧・前処理プログラム102iによる実際の処理は、第5の実施形態に係る図14に示したフローと同様であるため、説明は省略する。
【0119】
照合復旧・前処理プログラム102iによる処理が行われることで、制御プログラム101i(i=1)に対して実行要求が行われると、主メモリ200上に読み出された制御プログラム101iは、図18に示す通り、本来の制御処理を実行する(S1801)。この制御処理が終了した場合には、当該制御処理が正常なプログラムコードの実行により行われたものであるかをチェックするために、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・後処理プログラム103iに対して実行要求を行う(S1802)。
【0120】
そして、図19に示す通り、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S1901)、主メモリ200にロードされた制御プログラム101iのイメージを、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biと各々照合する(S1902)。これにより、全ての照合によるイメージが一致しているかを判断し(S1903)、全ての照合で一致している場合には(S1903のYES)、照合復旧・後処理プログラム103i用のデータエリアに設けた「相違有りカウンタ」をクリアする(S1904)。
【0121】
その上で、後段の制御プログラム101i+1におけるソフトエラーの有無をチェックするために、不揮発性メモリ100上の照合復旧・前処理プログラム102i+1に対して実行要求を行い(S1905)、本照合復旧・後処理プログラム103iによる処理は終了する。このような第5の実施形態に係る図14と同様の制御プログラム101i実行前の照合復旧処理、前記図18に基づく制御プログラム101i本来の実行処理、及び前記図19に基づく制御プログラム101iの実行後の照合復旧処理が、不揮発性メモリ100上のロードデータ実体格納エリア110の最後段の照合復旧・後処理プログラム103nに至るまで繰り返される。
【0122】
なお、最後段である照合復旧・後処理プログラム103nにおいては、実行対象として制御プログラム101n+1を有しないので、当該制御プログラム101n+1に対する実行要求は行われない。
【0123】
一方、S1903の、ロードエリア210上にロードされた制御プログラム101iのイメージと、照合用エリア220a、200b上の同制御プログラム101iのイメージ1010ai、1010biとの照合処理において、いずれかに相違があった場合には(S1903のNO)、第5の実施形態に係る図16のS1606以降と同様の処理が行われる(S1906〜1911)。
【0124】
以上のような第6の実施形態によれば、主メモリ上のロードエリアのイメージと複数の照合用エリアとの間で制御プログラムの照合処理を行うので、当該照合処理の信頼性が向上すると共に、不揮発性メモリ上において、制御プログラムの実行前後における照合復旧処理を実現しているので、当該プログラムにソフトエラーが生じることはなく、当該制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【符号の説明】
【0125】
100…不揮発性メモリ
101…制御プログラム
1010、1010a、1010b…プログラムイメージ
102…照合復旧・前処理プログラム
103…照合復旧・後処理プログラム
110…ロードデータ実体格納エリア
120…ロード先アドレス格納エリア
200…主メモリ
210…ロードエリア
220…照合用エリア
220a、200b…照合用エリア
300…演算処理部
310…定周期実行要求手段
320…ブート実行手段
400…制御プログラム
4010…プログラムイメージ
500…定量照合復旧処理プログラム
【技術分野】
【0001】
本発明は、不揮発性メモリから主メモリ上に予め設定された複数の制御プログラムを読み出し、複数段階の制御を順次実行し、かつ、これを一定周期で繰り返す情報処理装置に関する。
【背景技術】
【0002】
従来からの複数段階の制御を繰り返し実行する情報処理装置の構成を示すと、図20の通りである。すなわち、情報処理装置は、フラッシュメモリ等の不揮発性メモリ100から当該制御プログラム101を主メモリにロードし、演算処理部(CPU)300により当該制御プログラム101を実行するよう構成されている。
【0003】
具体的には、不揮発性メモリ100は、各種制御プログラム101i(i=1〜n)、固定データ、可変データが格納されているロードデータ実体格納エリア110と、当該制御プログラム101のロード先、固定データのロード先、可変データのロード先が記憶されているロード先アドレス格納エリア120と、を有している。
【0004】
また、主メモリ200は、DRAM又はSRAMから構成され、各種制御プログラム101i、固定データ、可変データがロードされるロードエリア210を有している。演算処理部300は、主メモリ200上のロードエリア210の各種制御プログラム101iを定周期で実行する定周期実行要求手段310を有している。
【0005】
このような構成を有する処理装置では、次のように、各種制御プログラム101iが実行される。まず、当該情報処理装置の立上げ時に、不揮発性メモリ100上に格納されたロード先アドレス格納エリア120を参照して、制御の各段階を処理するための制御プログラム101i、固定データ、可変データをロードデータ実体格納エリア110から、主メモリ200上のロードエリア210に対してロードするブート処理が行われる。
【0006】
そして、定常の運転状態において、この情報処理装置では、演算処理部300の定周期実行要求手段310が、主メモリ200上のロードエリア210上の制御プログラム101i(i=1)を定周期(例えば、200ms、400ms、1秒単位等)で実行させる。制御プログラム101i(i=1)では、自制御処理を実行し終了した際に、後段の制御プログラム101i+1に対して実行要求を行い、実行処理が後段の制御プログラム101i+1に移行する。
【0007】
このような実行処理が、ロードエリア210上の最後段の制御プログラム101nによる制御処理が終了するまで繰り返される。なお、ここでは、制御プログラム101i(i=1〜n)の実行処理を、定周期実行時間以内に行うことで、図20に示すような、演算処理部300による入力情報に応じた出力制御が連続して行われている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、近年のメモリの高速化や高集積化に伴い、情報処理装置の主メモリ200として使用しているSRAM又はDRAMでは、ノイズ、あるいは宇宙線粒子通過などの影響により、一定の確率で、ハード的に破壊されない一時的なデータ反転が発生する現象(ビット化け。以下、「ソフトエラー」とも称する)が避けられない状況下にある。
【0009】
ここで、ハードウェア回路によるECC(Error Check and Correct)により、誤り検知や訂正を行うことは可能であるが、組み込みシステム分野においてはメモリ速度の関係でECCの実装が困難である。そのため、システムによるエラーの発生の検出及び訂正ができない状態で処理を継続し、あるいは異常停止してしまうので、当該システムの信頼性や稼働率の低下に影響を及ぼしていた。
【0010】
また、仮にECCを実装した場合であっても、メモリから読み出したデータの訂正を行うことは可能であるが、メモリ上のデータに対しては訂正が行われずに誤りデータが残存したままとなり、長期間、無停止で稼働させるシステムにおいては、1読み出し単位(例えば、1ワード)で複数ビットの反転に至っていた。それ故に、データ読み出し時に訂正ができない場合が生じた。
【0011】
なお、近年では、上述した図20で言えば、各制御プログラム101iの実行の前後において、不揮発性メモリ100上のプログラムコードと主メモリ200上のプログラムコード(以下、「プログラムイメージ」とも称する)を照合することで、コードに相違があった場合にソフトエラーが生じているとして、当該制御プログラム101iを不揮発性メモリ100から主メモリ200へ再ロードする装置が提案されている。しかしながら、このような制御プログラム101iを再ロードする装置では、ソフトエラーの発生状態を復旧させる(ソフトエラー耐性を向上させる)ことは可能であるが、不揮発性メモリ100のアクセス速度や情報処理装置への過負荷の問題により性能面で悪影響を与えてしまい、実現には困難を要した。
【0012】
本発明は、上記のような課題を解消するために提案されたものであって、その目的は、不揮発性メモリのアクセス速度や装置への過負荷等といった性能面への影響を低減可能な、ソフトエラー照合復旧機能を備えた情報処理装置を提供することにある。
【課題を解決するための手段】
【0013】
上述した目的を達成するために、本発明は、不揮発性メモリ上の1以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、前記不揮発性メモリは、前記制御プログラムの実行前に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第1の照合復旧プログラムと、前記制御プログラムの実行後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第2の照合復旧プログラムと、を前記制御プログラム毎に有し、前記第1の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、前記ロードエリア上の前記制御プログラムを実行させ、前記第2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、実行後の当該制御プログラムを正常とすることを特徴とする。
【0014】
また、本発明の第1及び2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の当該制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーする態様も有し、
さらに、前記不揮発性メモリ上で実行させる態様も包含する。
【0015】
また、第1及び2の照合復旧プログラムを設けずに、全ての制御プログラムを実行後に、照合及び復旧処理を行う照合復旧プログラムを設ける態様も本発明は包含する。さらに、本発明は、前記主メモリ上に、複数の前記照合用エリアを設ける態様も備えている。
【発明の効果】
【0016】
以上のような本発明によれば、定常運転時において、制御プログラムの照合を行う場合、主メモリ上のロードエリアに読み出されたプログラムと、当該主メモリ上の照合用エリアに読み出されたプログラムとのイメージにより一致を判定するので、アクセス速度が遅い不揮発性メモリからの読み出し処理を省略することが可能となり、プログラムの照合に要する実行時間を軽減することができる。これにより、ソフトエラーが生じた状態の制御プログラムを実行する前に、照合及び復旧処理を行うことが可能となる。
【0017】
また、万一、動作中であった制御プログラムにソフトエラーが発生し、プログラムのコード化けが生じていた場合であっても、正常なプログラムを再ロードすることにより再実行処理を行うことができる。
【0018】
さらに、不揮発性メモリ上において、制御プログラムの実行前後の照合復旧プログラムによる処理を行うこともできるので、当該照合復旧プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【0019】
また、制御プログラムにおけるソフトエラー発生状況を定期的に復旧させることができるので、主メモリ上のデータの訂正を行うことができないECCを実装した情報処理装置であっても、誤りデータが長期間残存することを防止でき、さらに、データ読み出し時の訂正ができない可能性を低減することが可能となる。なお、1周期で照合する制御プログラムのサイズを変更することにより、全制御プログラムのチェックに必要な期間(周期数)を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理を適用することが可能となる。
【0020】
加えて、主メモリ上に複数箇所の照合用エリアを設けることができるので、複数箇所の照合用エリア上の制御プログラムのイメージとロードエリアの同制御プログラムのイメージとを照合することにより、主メモリ上に1箇所の照合用エリアを設けた場合と比較して、照合処理の信頼性が格段に向上する。つまり、主メモリ上の複数箇所に照合エリアを設けることにより照合対象数が増加するため、ほぼ同時期に、同数の同一箇所のビットが変化する可能性が低減することから、照合処理の信頼性が向上する。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態に係る構成例を示す機能ブロック図
【図2】本発明の第1の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図3】本発明の第1の実施形態に係る制御プログラムの作用を示すフローチャート
【図4】本発明の第1の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図5】本発明の第2の実施形態に係る構成例を示す機能ブロック図
【図6】本発明の第2の実施形態に係る制御プログラムの作用を示すフローチャート
【図7】本発明の第2の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図8】本発明の第3の実施形態に係る構成例を示す機能ブロック図
【図9】本発明の第3の実施形態に係る制御プログラムの作用を示すフローチャート
【図10】本発明の第3の実施形態に係る定量照合復旧処理プログラムの作用を示すフローチャート
【図11】本発明の第4の実施形態に係る構成例を示す機能ブロック図
【図12】本発明の第4の実施形態に係る制御プログラムの作用を示すフローチャート
【図13】本発明の第5の実施形態に係る構成例を示す機能ブロック図
【図14】本発明の第5の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図15】本発明の第5の実施形態に係る制御プログラムの作用を示すフローチャート
【図16】本発明の第5の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図17】本発明の第6の実施形態に係る照合復旧・前処理プログラムの作用を示すフローチャート
【図18】本発明の第6の実施形態に係る制御プログラムの作用を示すフローチャート
【図19】本発明の第6の実施形態に係る照合復旧・後処理プログラムの作用を示すフローチャート
【図20】従来における情報処理装置の全体構成を示す図
【発明を実施するための形態】
【0022】
[本実施形態]
[1.第1の実施形態]
[1.1.構成]
次に、本発明を実施するための第1の実施形態に係る情報処理装置の構成について図1を参照して以下に説明する。なお、図1は、第1の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。
【0023】
図1に示す通り、この情報処理装置は、不揮発性メモリ100と主メモリ200と演算処理部300により構成され、具体的な構成は下記の通りである。
【0024】
不揮発性メモリ100は、主メモリ200にロードされる下記の各種制御プログラム101i(i=1〜n)〜103i(i=1〜n)、固定データ(固定データ格納エリア)、可変データ(可変データ格納エリア)を格納するロードデータ実体格納エリア110と、各種制御プログラム101i〜103i、固定データ、可変データのロード先アドレスを格納するロード先アドレス格納エリア120と、を有している。
【0025】
このロードデータ実体格納エリア110には、固定データ及び可変データに加え、情報処理装置本来の制御処理を実行する制御プログラム101i(i=1〜n)と、当該制御プログラム101iの実行前に照合及び復旧処理を行う照合復旧・前処理プログラム102i(i=1〜n)と、当該制御プログラム101iの実行後に照合及び復旧処理を行う照合復旧・後処理プログラム103i(i=1〜n)と、が格納されている。
【0026】
また、主メモリ200は、DRAM又はSRAMから構成され、不揮発性メモリ100からの各種制御プログラム101i〜103i、固定データ、可変データがロードされるロードエリア210と、制御プログラム101iのプログラムイメージを照合するために用意された照合用エリア220と、を有している。
【0027】
各制御プログラム101i〜103iが行う処理については、[1.2.作用]の項目で詳述するが、下記に照合復旧・前処理プログラム102i及び照合復旧・後処理プログラム103iの処理について触れておく。
【0028】
照合復旧・前処理プログラム102iは、制御プログラム101iの実行前に、主メモリ200上のロードエリア210の制御プログラム101iのイメージを照合用エリア220の当該制御プログラム101iのイメージ1010iと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に、不揮発性メモリ100上の制御プログラム101iを主メモリ200に対して再ロードする復旧処理と、を有している。
【0029】
また、照合復旧・後処理プログラム103iは、制御プログラム101iの実行後に、主メモリ200上のロードエリア210の制御プログラム101iのイメージを照合用エリア220の制御プログラム101iのイメージ1010iと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に、不揮発性メモリ100上の制御プログラム101iを主メモリ200に対して再ロードする復旧処理と、復旧した制御プログラム101iの再実行処理と、を有している。なお、この照合復旧・後処理プログラム103iは、後述するが、主メモリ200上の当該プログラム103i用のデータエリアに設けられた「相違有りカウンタ」をカウント、あるいはクリアする処理も有している。
【0030】
演算処理部300は、当該演算処理部300内、あるいは情報処理装置内に記憶された各種制御プログラム101i〜103i等の一連の処理を定周期で実行させる所定のプログラムを、ユーザからの入力、あるいは自動で実行する定周期実行要求手段310を有している。なお、この定周期実行要求手段310による定周期管理は、情報処理装置内部に設けたタイマによるものでも外部からのトリガー入力によるものでも構わない。
【0031】
また、情報処理装置内のROM等に記憶された所定のブートプログラムを実行するブート実行手段320を有している。すなわち、ブート実行手段320は、情報処理装置の立ち上げ時に、各種制御プログラム101i〜103i、固定データや可変データを主メモリ200上のロードエリア210に初期ロードする。
【0032】
[1.2.作用]
次に、上記のような構成を有する第1の実施形態に係る情報処理装置の作用を図2〜4を参照して以下に説明する。
【0033】
まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、制御プログラム101i(i=1〜n)と、照合復旧・前処理プログラム102i(i=1〜n)と、照合復旧・後処理プログラム103i(i=1〜n)と、を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対しても制御プログラム101i(i=1〜n)のイメージ1010i(i=1〜n)をコピーする。
【0034】
この状況下で、情報処理装置の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた照合復旧・前処理プログラム102i(i=1)に対して実行要求を行う。
【0035】
これを受けた照合復旧・前処理プログラム102iでは、図2に示す通り、この制御プログラム101iを照合、復旧処理の対象とする(S201)。そして、主メモリ200上のロードエリア210にロードされた制御プログラム101iにおけるソフトエラーの発生の有無をチェックするために、このロードした制御プログラム101iのイメージと、照合用エリア220上の同制御プログラム101iのイメージ1010iとを照合する(S202)。
【0036】
この照合により両イメージが一致するかを判断し(S203)、両者が一致する場合には(S203のYES)、この制御プログラム101iに対して実行要求を行い(S204)、本照合復旧・前処理プログラム102iによる処理は終了する。
【0037】
一方、照合の結果、両イメージに相違があった場合には(S203のNO)、この制御プログラム101iにソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードする(S205)。ここで、この復旧処理を最小とするために、ロードエリア210でのソフトエラー発生か、あるいは照合用エリア220でのソフトエラー発生であるかの特定は行わず、同イメージを照合用エリア220上にもコピーする(S206)。その後、主メモリ200上のロードエリア210に再ロードされた制御プログラム101iに対して実行要求を行い(S204)、照合復旧・前プログラム102による処理は終了する。
【0038】
図3に示す通り、主メモリ200上のロードエリア210に読み出された制御プログラム101iは、本来の制御処理を実行し(S301)終了した際に、当該制御処理が正常なプログラムコードの実行により行われたものかをチェックするために、ロードエリア210上に読み出された照合復旧・後処理プログラム103iに対して実行要求を行う(S302)。
【0039】
そして、図4に示す通り、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S401)、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージを、照合用エリア220上の同制御プログラム101iのイメージ1010iと照合する(S402)。
【0040】
この照合により両イメージが一致しているかを判断し(S403)、両イメージが一致する場合には(S403のYES)、主メモリ200上の照合復旧・後処理プログラム103i用のデータエリアに設けられた「相違有りカウンタ」をクリアにし(S404)、後段の制御プログラム101i+1におけるソフトエラーの有無をチェックするための照合復旧・前処理プログラム102i+1に対して実行要求を行う(S405)。これにより、本照合復旧・後処理プログラム103iによる処理は終了する。
【0041】
なお、最後段である照合復旧・後処理プログラム102nにおいては、実行対象として制御プログラム101n+1は有しないので、当該制御プログラム101n+1への実行要求は行われない。
【0042】
一方、両イメージを照合することにより、相違があった場合に(S403のNO)、「相違有りカウンタ」をインクリメントし(S406)、このカウント値が所定の既定回数に達するかを判定する(S407)。カウント値が所定の既定回数に達しない場合には(S407のNO)、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードし(S408)、また、この制御プログラム101iのイメージを照合用エリア220にもコピーする(S409)。
【0043】
その後、主メモリ200上のロードエリア210の制御プログラム101iに対して実行要求を行い(S410)、本照合復旧・後処理プログラム103iの処理を一旦終了する。これにより、上述した図3に示した制御プログラム101iの実行フローに処理が移行し、当該制御プログラム101iが実行され、再度、照合復旧・後処理プログラム103iによる制御処理が行われる。
【0044】
ここで、S407において、「相違有りカウンタ」のカウント値が所定の既定回数に達した場合には(S407のYES)、メモリのハードエラー発生と判断し、本情報処理装置を停止する(S411)。
【0045】
なお、以上のような、照合復旧・前処理プログラム102i(i=1)の実行開始から照合復旧・後処理プログラム103nによる実行が終了するまでの一連の処理は、定周期実行要求手段310により次周期の起動要求が照合復旧・前処理プログラム102i(i=1)に対して行われるまでに完了させる。
【0046】
以上のような第1の実施形態によれば、定常運転時において、制御プログラムの照合を行う場合、主メモリ上のロードエリアに読み出されたプログラムと、当該主メモリ上の照合用エリアに読み出されたプログラムとのイメージにより一致を判定するので、アクセス速度が遅い不揮発性メモリからの読み出し処理を省略することが可能となり、プログラムの照合に要する実行時間を軽減することができる。これにより、ソフトエラーが生じた状態の制御プログラムを実行する前に、照合及び復旧処理を行うことが可能となる。
【0047】
また、万一、動作中であった制御プログラムにソフトエラーが発生し、プログラムコード化けが生じていた場合であっても、正常なプログラムを再ロードすることにより再実行処理を行うことができる。
【0048】
[1.3.他の実施態様]
第1の実施形態では、照合復旧・後処理プログラム103iにおいて、上記のような主メモリ200上の「相違ありカウンタ」に基づくソフトエラーの連続発生のチェック処理を設けずに、情報処理装置の運転継続を優先する実施形態も包含する。
【0049】
また、制御プログラム101i(i=1〜n)の各々に対して、専用の照合復旧プログラム群を設ける態様だけでなく、情報処理装置に対して、照合復旧・前処理プログラム102と照合復旧・後処理プログラム103を1つずつ実装する実施形態も第1の実施形態は包含する。
【0050】
[2.第2の実施形態]
[2.1.構成]
次に、本発明を実施するための第2の実施形態に係る情報処理装置の構成について図5を参照して以下に説明する。図5は、第2の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第1の実施形態と共通する構成については同一の符号を付し、説明は省略する。
【0051】
第2の実施形態に係る情報処理装置では、図5に示す通り、基本的な構成は第1の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第2の実施形態に係る演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを、主メモリ200上のロードエリア210にロードする。
【0052】
より詳細に言えば、ブート実行手段320は、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを主メモリ200上のロードエリア210にロードさせるブートプログラムを実行する。そのため、第1の実施形態では、ブート実行手段320が、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)、照合復旧・前処理プログラム102i(i=1〜n)、照合復旧・後処理プログラム103i(i=1〜n)を主メモリ200上のロードエリア210にロードしていたのに対し、第2の実施形態では、固定データ及び可変データの他、制御プログラム101i(i=1〜n)のみしかロードエリア210にロードしない。
【0053】
これにより、第2の実施形態に係る演算処理部300の定周期実行要求手段310においては、不揮発性メモリ100上に格納された照合復旧・前処理プログラム102i及び照合復旧・後処理プログラム103iを当該演算処理部300に読み出して、定周期で実行する態様を有している。
【0054】
[2.2.作用]
次に、上記のような構成を有する第2の実施形態に係る情報処理装置の作用を図6及び7を参照して以下に説明する。
【0055】
第2の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム101i(i=1〜n)を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対しても制御プログラム101i(i=1〜n)のイメージ1010i(i=1〜n)をコピーしておく。
【0056】
この状況下で、情報処理装置の定周期実行要求手段310は、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102i(i=1)に対して実行要求を行う。これにより、当該照合復旧・前処理プログラム102iのプログラムコードが演算処理部300上に読み出され、実行処理が行われる。ここで、照合復旧・前処理プログラム102iによる実際の処理は、第1の実施形態に係る図2に示したフローと同様であり、説明は省略する。
【0057】
この照合復旧・前処理プログラム102iによる実行処理が行われ、制御プログラム101iに対する実行要求があると、図6に示す通り、主メモリ200上のロードエリア210に読み出された制御プログラム101iは、本来の制御処理を実行する(S601)。この制御プログラム101iによる制御処理が終了した際に、当該制御処理が正常なプログラムコードの実行により行われたものかをチェックするために、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・後処理プログラム103iに対して実行要求を行う(S602)。
【0058】
そして、図7に示す通り、第1の実施形態と同様に、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S701)、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージを、照合用エリア220上の同制御プログラム101iのイメージ1010iと照合する(S702)。この照合により両イメージが一致しているかを判断し(S703)、両イメージが一致する場合には(S703のYES)、主メモリ200上の照合復旧・後処理プログラム103i用のデータエリアに設けられた「相違有りカウンタ」をクリアにする(S704)。
【0059】
これに伴い、第2の実施形態では、制御プログラム101i+1におけるソフトエラーの有無をチェックするために、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102i+1に対して実行要求を行う(S705)。これにより、本照合復旧・後処理プログラム103iによる処理は終了する。
【0060】
なお、不揮発性メモリ100上の最後段の照合復旧・後処理プログラム103nにおいては、実行対象として制御プログラム101n+1は有しないので、当該制御プログラム101n+1への実行要求は行われない。
【0061】
一方、S703において、ロードエリア210上にロードされた制御プログラム101iのイメージと、照合用エリア220上の同制御プログラム101iのイメージ1010iと、に相違があった場合には(S703のNO)、第1の実施形態に係る図4のS406以降と同様の処理が行われる(S706〜711)。
【0062】
以上のような第2の実施形態によれば、不揮発性メモリ上において、照合復旧・前処理及び後処理プログラムを実行しているので、当該プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【0063】
[3.第3の実施形態]
[3.1.構成]
次に、本発明を実施するための第3の実施形態に係る情報処理装置の構成について図8を参照して以下に説明する。図8は、第3の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第1及び2の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0064】
第3の実施形態に係る情報処理装置の基本的な構成は、図8の通り、第1の実施形態と同様に、不揮発性メモリ100と主メモリ200と演算処理部300から成るが、下記に詳述する。
【0065】
第3の実施形態では、不揮発性メモリ100は、主メモリ200にロードされる下記の制御プログラム400i(i=1〜n)、定量照合復旧処理プログラム500、固定データ(固定データ格納エリア)、可変データ(可変データ格納エリア)を格納するロードデータ実体格納エリア110を有している。また、不揮発性メモリ100は、制御プログラム400i(i=1〜n)、定量照合復旧処理プログラム500、固定データ、可変データのロード先アドレスを格納するロード先アドレス格納エリア120を有している。
【0066】
このロードデータ実体格納エリア110には、固定データ及び可変データに加え、情報処理装置本来の制御処理を実行する制御プログラム400i(i=1〜n)と、いずれの当該制御プログラム400iに対しても照合及び復旧処理を行う定量照合復旧処理プログラム500と、が格納されている。具体的には、この定量照合復旧処理プログラム500は、主メモリ200上のロードエリア210にロードされた当該制御プログラム400iを、照合用エリア220上にコピーされた当該制御プログラム400iと照合する照合処理と、照合した結果、両イメージに相違が生じた場合に不揮発性メモリ100上の制御プログラム400iを再ロードする復旧処理と、を備えている。もちろん、定量照合復旧処理プログラム500は、復旧した制御プログラム101iの再実行処理も有している。
【0067】
主メモリ200は、不揮発性メモリ100からの制御プログラム400i、定量照合復旧処理プログラム500、固定データ、可変データがロードされるロードエリア210と、当該制御プログラム400iのイメージを照合するために用意された照合用エリア220と、を有している。
【0068】
演算処理部300は、第1の実施形態と同様に、当該演算処理部300内、あるいは情報処理装置内に記憶された各制御プログラム400i(i〜n)及び定量照合復旧処理プログラム500による一連の処理を定周期で実行させる所定のプログラムを、ユーザからの入力、あるいは自動で実行する定周期実行要求手段310を有している。なお、この定周期実行要求手段310による定周期管理は、第1及び2の実施形態と同様に、情報処理装置内部に設けたタイマによるものでも、外部からのトリガー入力によるものでも構わない。
【0069】
また、情報処理装置内のROM等に記憶されたブートプログラムを実行するブート実行手段320を有し、当該ブート実行手段320は、情報処理装置の立ち上げ時に、制御プログラム400i、定量照合復旧処理プログラム500、固定データや可変データを主メモリ200上のロードエリア210に初期ロードする。
【0070】
[3.2.作用]
次に、上記のような構成を有する第3の実施形態に係る情報処理装置の作用を図9及び10を参照して、以下に説明する。
【0071】
第3の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム400i(i=1〜n)と定量照合復旧処理プログラム500を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対して制御プログラム400i(i=1〜n)のイメージ4010i(i=1〜n)をコピーしておく。
【0072】
この状況下で、情報処理装置の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた制御プログラム400i(i=1)を実行させる。図9に示す通り、制御プログラム400iは、当該制御プログラム本来の制御処理を実行し(S901)終了した場合に、後段の制御プログラム400i+1を実行させ、さらに、このような制御プログラムによる実行処理を、最後段の制御プログラム400nまで繰り返す(S902、903)。
【0073】
ここで、主メモリ200上にロードされた最後段の制御プログラム400nにおいて、制御処理が終了した際には(S902のYES)、当該制御プログラム400nは、いずれの制御プログラム400i(i=1〜n)のプログラムイメージの照合を行うために、定量照合復旧処理プログラム500に対して実行要求を行う(S904)。
【0074】
この定量照合復旧処理プログラム500では、図10に示すように、まず、情報処理装置の立ち上がり後、当該プログラム500が初めて実行された場合のみ、制御プログラム400i(i=1)を「照合対象の制御プログラム」として記憶する(S1001)。
【0075】
次に、照合対象として記憶されていた制御プログラム400iの主メモリ200上のロードエリア210にロードされたイメージと照合用エリア220上の同制御プログラム400iのイメージ4010iを照合する(S1002)。この照合により両イメージが一致するかを判断し(S1003)、両イメージを照合することにより、一致していた場合には(S1003のYES)、今回照合した制御プログラム400iの後段の制御プログラム400i+1を「照合対象の制御プログラム」として記憶する(S1004)。
【0076】
一方、照合により両イメージに相違があった場合には(S1003のNO)、この制御プログラム400iにソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ100上の制御プログラム400iのイメージを、主メモリ200上のロードエリア210に再ロードする(S1005)。さらに、同制御プログラム400iのイメージを照合用エリア220にもコピーする(S1006)。
【0077】
その後、照合により両イメージが一致した場合と同様、今回照合した制御プログラム400iの後段の制御プログラム400i+1を「照合対象の制御プログラム」として記憶する(S1004)。これにより、次周期に本定量照合復旧処理プログラム500が起動された際、制御プログラム400i+1が照合対象となり、上記の処理が繰り返される(S1007)。主メモリ200上の最後段の制御プログラム400nまで、このような照合処理が繰り返されると(S1007のYES)、「照合対象の制御プログラム」として制御プログラム400i(i=1)を記憶する(S1008)。
【0078】
以上のような第3の実施形態によれば、制御プログラムにおけるソフトエラー発生状況を定期的に復旧させることができるので、主メモリ上のデータの訂正を行うことができないECCを実装した情報処理装置であっても、誤りデータが長期間残存することを防止でき、さらに、データ読み出し時の訂正ができない可能性を低減することが可能となる。また、1周期で照合する制御プログラムのサイズを変更することにより、全制御プログラムのチェックに必要な期間(周期数)を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理を適用することが可能となる。
【0079】
[3.3.他の実施態様]
第3の実施形態は、上記では、1周期毎に1つの制御プログラム400iの照合、復旧処理を行っているが、定量照合復旧処理プログラム500が対象となる制御プログラム400iに対して照合処理を行う場合、当該制御プログラム400iの全サイズ分を1度に照合する態様に限定するものではなく、下記のような実施形態も包含する。すなわち、定量照合復旧処理プログラム500は、対象となる制御プログラム400iのうち、予め設定したサイズ内(例えば1KB)で少しずつ照合を実行し、かつ、次回実行時の照合用に当該制御プログラム400i内の相対アドレスを記憶しておくことで、情報処理装置として、全制御プログラム400iを照合するのに必要な期間を調整可能な実施形態を包含する。
【0080】
[4.第4の実施形態]
[4.1.構成]
次に、本発明を実施するための第4の実施形態に係る情報処理装置の構成について図11を参照して以下に説明する。図11は、第4の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第3の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0081】
第4の実施形態では、図11に示す通り、基本的な構成は第3の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。
【0082】
第4の実施形態に係る演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ100上の制御プログラム400i(i=1〜n)のみを、主メモリ200上のロードエリア210にロードする。より詳細に言えば、ブート実行手段320は、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム400iのみを主メモリ200上のロードエリア210にロードさせるブートプログラムを実行する。
【0083】
すなわち、第3の実施形態では、ブート実行手段320が、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム400i、定量照合復旧処理プログラム500を主メモリ200上のロードエリア210にロードしていたのに対し、第4の実施形態では、固定データ及び可変データの他、制御プログラム400iのみしかロードエリア210にロードしない。
【0084】
[4.2.作用]
次に、上記のような構成を有する第4の実施形態に係る情報処理装置の作用を図12を参照して以下に説明する。
【0085】
第4の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム400i(i=1〜n)を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220に対しても制御プログラム400i(i=1〜n)のイメージ4010i(i=1〜n)をコピーしておく。
【0086】
そして、演算処理部300の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた制御プログラム400i(i=1)を実行させる。図12に示す通り、制御プログラム400iは、当該制御プログラム本来の制御処理を実行し(S1201)終了した場合に、後段の制御プログラム400i+1を実行させ、さらに、このような制御プログラムによる実行処理を、最後段の制御プログラム400nまで繰り返す(S1202、1203)。
【0087】
ここで、主メモリ200上にロードされた最後段の制御プログラム400nにおいて、制御処理が終了した際には(S1202のYES)、当該制御プログラム400nは、いずれの制御プログラム400i(i=1〜n)のプログラムイメージの照合を行うために、不揮発性メモリ100上の定量照合復旧処理プログラム500に対して実行要求を行う(S1204)。これにより演算処理部300は、不揮発性メモリ100から定量照合復旧処理プログラム500のプログラムコードを読み出し、当該処理を実行する。なお、定量照合復旧処理プログラム500は、第3の実施形態に係る図10のフローと同様な処理を行うため、説明は省略する。
【0088】
以上のような第4の実施形態によれば、1周期で照合する制御プログラムのサイズの変更により、全制御プログラムのチェックに要する必要な期間(周期数)を調整することができるので、性能面に余裕のない情報処理装置に対しても本処理が適用可能であると共に、不揮発性メモリ上において、定量照合復旧処理プログラムを実行しているので、当該プログラムにソフトエラーが生じることはなく、制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【0089】
[5.第5の実施形態]
[5.1.構成]
次に、本発明を実施するための第5の実施形態に係る情報処理装置の構成について図13を参照して以下に説明する。図13は、第5の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第1の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0090】
第5の実施形態に係る情報処理装置では、図13に示す通り、基本的な構成は第1の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第5の実施形態では、図13の通り、主メモリ200上に2つの照合用エリア220a、220bを備える構成に特徴を有する。
【0091】
そのため、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、所定のブートプログラムを実行することにより、主メモリ200上のロードエリア210に制御プログラム101i(i=1〜n)をロードすると共に、当該制御プログラム101i(i=1〜n)のイメージを、照合用エリア220a、220bに対してそれぞれコピーする(イメージ1010ai(i=1〜n)、1010bi(i=1〜n))。
【0092】
また、第5の実施形態に係る不揮発性メモリ100のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102iの照合処理は、下記のような態様を有する。すなわち、この照合復旧・前処理プログラム102iでは、主メモリ200上にロードされた制御プログラム101iの実行前に、当該主メモリ200上のロードエリア210の制御プログラム101iを、照合用エリア220a、220b上の当該制御プログラム101iのイメージ1010ai、1010biと各々照合する。
【0093】
また、照合復旧・前処理プログラム102iの復旧処理は、上記照合処理の結果、相違が生じた場合に制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードし、かつ、照合用エリア220a、220bに再コピーする。
【0094】
なお、第5の実施形態に係る照合復旧・後処理プログラム103iにおいても、主メモリ200上のロードエリア210にロードされた当該制御プログラム101iの実行後に、上記照合復旧・前処理プログラム102iと同様の照合及び復旧処理が行われる。
【0095】
[5.2.作用]
次に、上記のような構成を有する第5の実施形態に係る情報処理装置の作用を、図14〜16を参照して以下に説明する。
【0096】
第5の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、制御プログラム101i(i=1〜n)と、照合復旧・前処理プログラム102i(i=1〜n)と、照合復旧・後処理プログラム103i(i=1〜n)と、を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220a、220bに対して制御プログラム101i(i=1〜n)のイメージ1010ai(i=1〜n)、1010bi(i=1〜n)をコピーしておく。
【0097】
この状況下で、情報処理装置の定周期実行要求手段310は、主メモリ200上のロードエリア210にロードされた照合復旧・前処理プログラム102i(i=1)を実行させる。照合復旧・前処理プログラム102iでは、図14に示す通り、主メモリ200上のロードエリア210にロードされた制御プログラム101i(i=1)を、ソフトエラーの発生の有無のチェック対象、すなわち、照合、復旧処理の対象とする(S1401)。
【0098】
そして、このロードした制御プログラム101iのイメージを、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biの各々と照合する(S1402)。この照合により全てのイメージが一致するかを判断し(S1403)、全ての照合が一致する場合には(S1403のYES)、すなわち、ロードエリア210上の制御プログラム101iのイメージが照合用エリア220a上の当該制御プログラム101iのイメージ1010aiと一致し、かつ、このロードエリア210上の制御プログラム101iのイメージが照合用エリア220b上のイメージ1010biと一致する場合には、主メモリ200上のロードエリア210にロードされた制御プログラム101iに対して実行要求を行い(S1404)、本照合復旧・前処理プログラム102iによる処理は終了する。
【0099】
一方、照合の結果、いずれかの照合で相違があった場合には(S1403のNO)、制御プログラム101iにおいてソフトエラーが発生していると判断し、この状況を復旧させる目的で、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードする(S1405)。ここで、この復旧処理を最小とするために、ロードエリア210でのソフトエラー発生か、あるいは照合用エリア220でのソフトエラー発生であるかの特定は行わず、同制御プログラム101iのイメージを照合用エリア220a、220b上にも各々コピーする(S1406)。その後、ロードエリア上の制御プログラム101iに対して実行要求を行い(S1404)、本プログラム102の処理を終了する。
【0100】
図15に示す通り、主メモリ200上のロードエリア210に読み出された制御プログラム101iは、本来の制御処理を実行し(S1501)終了した際、当該制御処理が正常なプログラムコードの実行により行われたものであるかをチェックするために、ロードエリア210上に読み出された照合復旧・後処理プログラム103iに対して実行要求を行う(S1502)。
【0101】
そして、図16の通り、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S1601)、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージを、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biと各々照合する(S1602)。この全ての照合によりイメージが一致するかを判断し(S1603)、全ての照合で一致する場合には(S1603のYES)、主メモリ200上の照合復旧・後処理プログラム103i用のデータエリアに設けた「相違有りカウンタ」をクリアする(S1604)。
【0102】
その上で、後段の制御プログラム101i+1におけるソフトエラーの有無をチェックするための照合復旧・前処理プログラム102i+1に対して実行要求を行い(S1605)、本照合復旧・前処理プログラム103iによる処理は終了する。このような前記図14に基づく制御プログラム101i実行前の照合復旧処理、前記図15に基づく制御プログラム101i本来の実行処理、及び前記図16に基づく制御プログラム101iの実行後の照合復旧処理が、主メモリ200上のロードエリア210にロードされた最後段の照合復旧・後処理プログラム103nに至るまで繰り返される。
【0103】
なお、この最後段である照合復旧・後処理プログラム103nにおいては、実行対象として制御プログラム101n+1を有しないので、当該制御プログラム101n+1への実行要求は行われない。
【0104】
一方、照合の結果、いずれかの照合で相違があった場合には(S1603のNO)、「相違ありカウンタ」をインクリメントし(S1606)、このカウント値が所定の既定回数に達するかを判定する(S1607)。カウント値が所定の既定回数に達しない場合には(S1607のNO)、不揮発性メモリ100上の制御プログラム101iのイメージを、主メモリ200上のロードエリア210に再ロードし(S1608)、また、この制御プログラム101iのイメージを照合用エリア220a、200bの各々に対してコピーする(S1609)。
【0105】
その後、主メモリ200上のロードエリア210にロードされた制御プログラム101iに対して実行要求を行い(S1610)、本照合復旧・後処理プログラム103iによる処理を一旦終了する。これにより、上述した図15に示した制御プログラム101iの実行フローに処理が移行し、当該制御プログラム101iが実行され、さらに、この制御プログラム101iに対して、再度照合復旧・後処理プログラム103iによる処理が実行される。
【0106】
その後、S1607において、「相違有りカウンタ」のカウント値が所定の既定回数に達した場合には(S1607のYES)、メモリのハードエラー発生と判断し、本情報処理装置を停止する(S1611)。
【0107】
以上のような第5の実施形態によれば、主メモリ上に2箇所の照合用エリアを設けることで、当該2箇所の照合用エリア上の制御プログラムのイメージとロードエリアの同イメージとを照合することができるので、主メモリ上に1箇所の照合用エリアを設けた場合と比較して、照合処理の信頼性の向上を図ることが可能となる。つまり、主メモリ上の複数箇所に照合エリアを設けることにより照合対象数が増加するため、ほぼ同時期に、同数の同一箇所のビットが変化する可能性が低減することから、照合処理の信頼性が向上する。
【0108】
[5.3.他の実施態様]
上記では、照合復旧・前処理プログラム102iにおいて、主メモリ200上のロードエリア210にロードされた制御プログラム101iのイメージと、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biとの照合が全て一致する場合に正常と判断し、制御プログラム101iを実行させていたが、下記のような実施形態も第5の実施形態は包含する。
【0109】
すなわち、第5の実施形態では、照合復旧・前処理プログラム102iにおいて、全イメージの一致を条件とすることで照合の信頼性の向上を図るよりも、復旧時の処理速度の向上を目的として、いずれか一方の照合に相違がない場合に正常と判断し、当該制御プログラム101iを実行させる実施形態も包含する。また、この際、照合復旧・前処理プログラム102iは、ソフトエラー発生状態を復旧するために、照合に相違のなかった照合用エリア220のイメージを、他方の照合用エリア220にコピーする。
【0110】
このような実施形態によれば、1箇所でも照合結果に相違がなかった場合には、その照合結果及び照合エリアを正常とし、改めて不揮発性メモリからの読み出しを行わずに、この正常とした照合用エリア220から他方の照合用エリア220へ当該制御プログラム101iのイメージをコピーすることができるので、復旧処理の速度を各段に向上させることが可能である。
【0111】
また、第5の実施形態では、第1の実施形態と同様に、照合復旧・後処理プログラム103iにおいて、上記のような主メモリ200上の「相違ありカウンタ」に基づくソフトエラーの連続発生のチェック処理を設けずに、情報処理装置の運転継続を優先する実施形態も包含する。
【0112】
[6.第6の実施形態]
[6.1.構成]
次に、本発明を実施するための第6の実施形態に係る情報処理装置の構成について図17を参照して以下に説明する。図17は、第6の実施形態に係る情報処理装置の構成例を示す機能ブロック図である。なお、第5の実施形態と共通する構成については同一の符号を付し、説明を省略する。
【0113】
第6の実施形態に係る情報処理装置は、図17に示す通り、基本的な構成は第5の実施形態に係る情報処理装置と同様であるが、下記の構成について相違する。すなわち、第6の実施形態に係る演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時に、固定データ及び可変データの他に、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを、主メモリ200上のロードエリア210にロードする。
【0114】
より詳細に言えば、ブート実行手段320は、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)のみを主メモリ200上のロードエリア210にロードさせるブートプログラムを実行する。すなわち、第5の実施形態では、ブート実行手段320が、固定データ及び可変データに加え、不揮発性メモリ100上の制御プログラム101i(i=1〜n)、照合復旧・前処理プログラム102i(i=1〜n)、照合復旧・後処理プログラム103i(i=1〜n)を主メモリ200上のロードエリア210にロードしていたのに対し、第6の実施形態では、固定データ及び可変データの他、制御プログラム101i(i=1〜n)のみしかロードエリア210にロードしない。
【0115】
そのため、第6の実施形態に係る演算処理部300の定周期実行要求手段310においては、不揮発性メモリ100上に格納された照合復旧・前処理プログラム102i及び照合復旧・後処理プログラム103iを当該演算処理部300に読み出して、定周期で実行する態様を有する。
【0116】
[6.2.作用]
次に、上記のような構成を有する第6の実施形態に係る情報処理装置の作用を図18及び19を参照して以下に説明する。
【0117】
第6の実施形態では、まず、前提として、演算処理部300のブート実行手段320は、情報処理装置の立ち上げ時にブートプログラムを実行することで、固定データ及び可変データに加え、制御プログラム101i(i=1〜n)を不揮発性メモリ100から読み出し、主メモリ200上のロードエリア210にロードすると共に、当該主メモリ200上の照合用エリア220a、220bに対しても制御プログラム101i(i=1〜n)のイメージ(1010ai(i=1〜n)、1010bi(i=1〜n))をコピーしておく。
【0118】
この状況下で、情報処理装置の定周期実行要求手段310は、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・前処理プログラム102i(i=1)に対して実行要求を行う。これにより、当該照合復旧・前処理プログラム102i(i=1)のプログラムコードが演算処理部300上に読み出され、実行処理が行われる。ここで、照合復旧・前処理プログラム102iによる実際の処理は、第5の実施形態に係る図14に示したフローと同様であるため、説明は省略する。
【0119】
照合復旧・前処理プログラム102iによる処理が行われることで、制御プログラム101i(i=1)に対して実行要求が行われると、主メモリ200上に読み出された制御プログラム101iは、図18に示す通り、本来の制御処理を実行する(S1801)。この制御処理が終了した場合には、当該制御処理が正常なプログラムコードの実行により行われたものであるかをチェックするために、不揮発性メモリ100上のロードデータ実体格納エリア110に格納された照合復旧・後処理プログラム103iに対して実行要求を行う(S1802)。
【0120】
そして、図19に示す通り、照合復旧・後処理プログラム103iは、制御プログラム101iを照合、復旧処理の対象とし(S1901)、主メモリ200にロードされた制御プログラム101iのイメージを、照合用エリア220a、220b上の同制御プログラム101iのイメージ1010ai、1010biと各々照合する(S1902)。これにより、全ての照合によるイメージが一致しているかを判断し(S1903)、全ての照合で一致している場合には(S1903のYES)、照合復旧・後処理プログラム103i用のデータエリアに設けた「相違有りカウンタ」をクリアする(S1904)。
【0121】
その上で、後段の制御プログラム101i+1におけるソフトエラーの有無をチェックするために、不揮発性メモリ100上の照合復旧・前処理プログラム102i+1に対して実行要求を行い(S1905)、本照合復旧・後処理プログラム103iによる処理は終了する。このような第5の実施形態に係る図14と同様の制御プログラム101i実行前の照合復旧処理、前記図18に基づく制御プログラム101i本来の実行処理、及び前記図19に基づく制御プログラム101iの実行後の照合復旧処理が、不揮発性メモリ100上のロードデータ実体格納エリア110の最後段の照合復旧・後処理プログラム103nに至るまで繰り返される。
【0122】
なお、最後段である照合復旧・後処理プログラム103nにおいては、実行対象として制御プログラム101n+1を有しないので、当該制御プログラム101n+1に対する実行要求は行われない。
【0123】
一方、S1903の、ロードエリア210上にロードされた制御プログラム101iのイメージと、照合用エリア220a、200b上の同制御プログラム101iのイメージ1010ai、1010biとの照合処理において、いずれかに相違があった場合には(S1903のNO)、第5の実施形態に係る図16のS1606以降と同様の処理が行われる(S1906〜1911)。
【0124】
以上のような第6の実施形態によれば、主メモリ上のロードエリアのイメージと複数の照合用エリアとの間で制御プログラムの照合処理を行うので、当該照合処理の信頼性が向上すると共に、不揮発性メモリ上において、制御プログラムの実行前後における照合復旧処理を実現しているので、当該プログラムにソフトエラーが生じることはなく、当該制御プログラムの照合、復旧処理を確実に動作させることが可能となる。
【符号の説明】
【0125】
100…不揮発性メモリ
101…制御プログラム
1010、1010a、1010b…プログラムイメージ
102…照合復旧・前処理プログラム
103…照合復旧・後処理プログラム
110…ロードデータ実体格納エリア
120…ロード先アドレス格納エリア
200…主メモリ
210…ロードエリア
220…照合用エリア
220a、200b…照合用エリア
300…演算処理部
310…定周期実行要求手段
320…ブート実行手段
400…制御プログラム
4010…プログラムイメージ
500…定量照合復旧処理プログラム
【特許請求の範囲】
【請求項1】
不揮発性メモリ上の1以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、
前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、
前記不揮発性メモリは、
前記制御プログラムの実行前に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第1の照合復旧プログラムと、
前記制御プログラムの実行後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第2の照合復旧プログラムと、を前記制御プログラム毎に有し、
前記第1の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、前記ロードエリア上の前記制御プログラムを実行させ、
前記第2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、実行後の当該制御プログラムを正常とすることを特徴とする情報処理装置。
【請求項2】
前記第1の照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の当該制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
このロードエリア上の制御プログラムを実行させることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
このロードエリア上の制御プログラムを実行させることを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記第2の照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない連続した回数を計測し、
当該回数が所定の閾値に達した場合に、本情報処理装置の駆動を停止させることを特徴する請求項3に記載の情報処理装置。
【請求項5】
前記第1及び2の照合復旧プログラムは、前記不揮発性メモリ上で実行させることを特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。
【請求項6】
不揮発性メモリ上の実行順序が定まった1以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、
前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、
前記不揮発性メモリは、全ての前記制御プログラムが順次実行された後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を、前記制御プログラムの実行順序に応じて繰り返し実行する照合復旧プログラムを有し、
前記照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、次の制御プログラムに対して前記照合処理を実行することを特徴とする情報処理装置。
【請求項7】
前記照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
次の制御プログラムに対して前記照合処理を実行することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記照合復旧プログラムは、前記不揮発性メモリ上で実行させることを特徴とする請求項6又は7に記載の情報処理装置。
【請求項9】
前記主メモリは、前記照合用エリアを複数面有し、
前記第1の照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも1つの照合で両制御プログラムが一致する場合に、このロードエリア上の制御プログラムを実行することを特徴する請求項1に記載の情報処理装置。
【請求項10】
前記主メモリは、前記照合用エリアを複数面有し、
前記第2の照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも1つの照合で両制御プログラムが一致する場合に、この制御プログラムを正常とすることを特徴とする請求項1に記載の情報処理装置。
【請求項11】
前記主メモリは、前記照合用エリアを複数面有し、
前記照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも1つの照合で両制御プログラムが一致する場合に、次の制御プログラムに対して前記照合処理を実行することを特徴とする請求項6に記載の情報処理装置。
【請求項1】
不揮発性メモリ上の1以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、
前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、
前記不揮発性メモリは、
前記制御プログラムの実行前に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第1の照合復旧プログラムと、
前記制御プログラムの実行後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を実行する第2の照合復旧プログラムと、を前記制御プログラム毎に有し、
前記第1の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、前記ロードエリア上の前記制御プログラムを実行させ、
前記第2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、実行後の当該制御プログラムを正常とすることを特徴とする情報処理装置。
【請求項2】
前記第1の照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の当該制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
このロードエリア上の制御プログラムを実行させることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2の照合復旧プログラムは、前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
このロードエリア上の制御プログラムを実行させることを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記第2の照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない連続した回数を計測し、
当該回数が所定の閾値に達した場合に、本情報処理装置の駆動を停止させることを特徴する請求項3に記載の情報処理装置。
【請求項5】
前記第1及び2の照合復旧プログラムは、前記不揮発性メモリ上で実行させることを特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。
【請求項6】
不揮発性メモリ上の実行順序が定まった1以上の制御プログラムを含む各種プログラムを主メモリ上にロードし実行する処理装置であって、
前記主メモリは、前記各種プログラムがロードされるロードエリアと、前記制御プログラムが照合用にコピーされる照合用エリアと、を有し、
前記不揮発性メモリは、全ての前記制御プログラムが順次実行された後に、前記ロードエリア上にロードされた前記制御プログラムと照合用エリア上にコピーされた前記制御プログラムとの照合処理を、前記制御プログラムの実行順序に応じて繰り返し実行する照合復旧プログラムを有し、
前記照合復旧プログラムは、前記照合処理により両制御プログラムが一致する場合に、次の制御プログラムに対して前記照合処理を実行することを特徴とする情報処理装置。
【請求項7】
前記照合復旧プログラムは、
前記照合処理により両制御プログラムが一致しない場合に、前記不揮発性メモリ上の制御プログラムを、主メモリ上の前記ロードエリアに再ロードし、かつ、前記照合用エリアに再コピーした上で、
次の制御プログラムに対して前記照合処理を実行することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記照合復旧プログラムは、前記不揮発性メモリ上で実行させることを特徴とする請求項6又は7に記載の情報処理装置。
【請求項9】
前記主メモリは、前記照合用エリアを複数面有し、
前記第1の照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも1つの照合で両制御プログラムが一致する場合に、このロードエリア上の制御プログラムを実行することを特徴する請求項1に記載の情報処理装置。
【請求項10】
前記主メモリは、前記照合用エリアを複数面有し、
前記第2の照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも1つの照合で両制御プログラムが一致する場合に、この制御プログラムを正常とすることを特徴とする請求項1に記載の情報処理装置。
【請求項11】
前記主メモリは、前記照合用エリアを複数面有し、
前記照合復旧プログラムは、前記ロードエリア上にロードされた制御プログラムを複数面の照合用エリア上に各々コピーされた制御プログラムとそれぞれ照合し、少なくとも1つの照合で両制御プログラムが一致する場合に、次の制御プログラムに対して前記照合処理を実行することを特徴とする請求項6に記載の情報処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2010−211534(P2010−211534A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2009−57144(P2009−57144)
【出願日】平成21年3月10日(2009.3.10)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願日】平成21年3月10日(2009.3.10)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]