(57)【特許請求の範囲】
【請求項１】
メモリを有する情報処理装置の診断対象のメモリと該メモリに書き込まれた診断対象のデータを診断するメモリ診断方法であって、
前記情報処理装置の起動時に実行され、診断対象のメモリ領域を複数の小領域に分割すると共に、前記小領域の夫々に対応させて複製領域を割付け、複数の小領域および対応する複製領域の全アドレスにあるデータを書き込むことによって前記診断対象のメモリ領域を初期化する初期化処理と、
いずれかの前記小領域にデータを書き込む際に、該小領域にデータを書き込むと共に該小領域に対応する複製領域に該データまたは該データをもとに生成されたデータを書き込む書き込み処理と、
小領域ごとに、該小領域の全アドレスについて順次データを読み取ると共に該小領域のアドレスに対応する複製領域のアドレスからデータを読み取り、当該読み取られた両データをもとに故障の有無を判定するという小領域ごとの診断処理を一定の周期ごとに小領域を順に切り替えて実行する小領域ごとの診断処理と、
を含み、さらに
優先順位が最下位のタスクによって起動されるタイマを設け、前記小領域ごとの診断処理は、該タイマの値を読み込んだ後に該タイマをリセットし、該タイマの値によって前記小領域の分割数を更新することを特徴とするメモリ診断方法。
【請求項２】
請求項１に記載のメモリ診断方法において、小領域ごとの診断処理とは別に、前記初期化処理の後に予め定められた条件によって実行され、前記診断対象のメモリ領域の全アドレスについて、各アドレスからデータを読み取ると共に対応する複製領域のアドレスからデータを読み取り、当該読み取られた両データをもとに故障の有無を判定する診断対象のメモリ領域一括の診断処理を含むことを特徴とするメモリ診断方法。
【請求項３】
請求項１または２に記載のメモリ診断方法において、前記書き込み処理に続いて、書き込んだアドレスのデータおよび対応する複製領域のアドレスのデータを読み取り、当該読み取られた両データをもとに故障の有無を判定することを特徴とするメモリ診断方法。
【請求項４】
請求項１乃至３のいずれか一項に記載のメモリ診断方法において、さらに、いずれかの前記小領域からデータを読み取る際に、該小領域からデータを読み取ると共に、該小領域に対応する複製領域からデータを読み取り、当該読み取られた両データをもとに故障の有無を判定する読み取り処理を含むことを特徴とするメモリ診断方法。
【請求項５】
請求項１乃至４のいずれか一項に記載のメモリ診断方法において、前記複製領域には、前記診断対象のメモリ領域のアドレスに対して反転したアドレスを前記診断対象のメモリ領域に対応するアドレスとして割り付けることを特徴とするメモリ診断方法。
【請求項６】
電力変換装置の制御機器であって、診断対象のメモリを有する情報処理装置で構成された制御機器において、
前記診断対象のメモリは、請求項１乃至５のいずれか一項に記載のメモリ診断方法によって診断されることを特徴とする電力変換装置の制御機器。
【発明の詳細な説明】
【技術分野】
【０００１】
国際安全規格に準拠した安全装置を構築するための情報処理装置の故障診断方法に関し、特にあるデータを診断対象のメモリ領域と複製領域の両方へ書き込み、読み出しの際は両データを読み出して比較することによってメモリ診断を実施するメモリ診断方法および電力変換装置の制御機器に関する。
【背景技術】
【０００２】
近年、電気機器や制御機器にＣＰＵ回路やメモリを用いた情報処理装置が用いられるようになってきており、この異常動作による重大な事故の発生が懸念されている。このため、各メーカは安全規格への対応や、より高い品質の実現を求められている。世界標準の安全規格では、人体への危険に対するリスク等を想定し、リスクが許容範囲内になるように製品故障による危険を考慮することが要求されている。この要求を実現するためには、各部の故障を診断し、故障による危険事象を回避する制御動作を実現する必要がある。
【０００３】
例えば、電気機器に関する安全規格であるＩＥＣ６１５０８では、検出しなければならない故障の種類と故障診断方法について記載している。この規格では、機器の使用条件を加味し部品の故障確率や採用する故障診断方法から安全機能の失敗確率を計算することが要求される。また、採用する故障診断により検出しなければならない故障を十分に検出できることを明示する必要がある。メモリ診断の具体的な例をあげると、安全機能を担うメモリの全領域に対し１時間に１回以上故障診断が実施されていることを保証する等である。
【０００４】
メモリ診断方法に関する従来技術として、例えば、特許文献１にはメモリへの書き込み処理とメモリからの読み取り処理が記載されている。（特許文献１の図２（Ａ），図２（Ｂ）を参照のこと）。メモリへの書き込み処理では、診断対象のメモリに書き込むデータに対し論理反転を施したデータを複製領域である別のメモリに格納している。メモリからの読み取り処理では、診断対象のメモリのデータと複製領域である別のメモリのデータとの排他的論理和を演算し、この演算結果が「１」となること（故障していないこと）を確認している。
【０００５】
このように、特許文献１にはメモリの故障診断のためにメモリの複製領域を用意し複数のメモリ領域に格納されたデータを比較することで故障を検出するメモリ診断方法が記載されている。
【０００６】
しかしながら、特許文献１には記載されていないが、制御装置などでは、本来の制御処理に影響を与えずにメモリ診断処理を実行しなければならず、効率的なメモリ診断処理が望まれている。特に、メモリ診断を実行するタイミングやメモリ診断を開始してから終了するまでの時間が問題となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３７８５２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上述のかかる事情に鑑みてなされたものであり、安全機能を担うメモリの診断対象領域に対し診断開始から終了までにかかる所要時間を管理して、効率良くメモリ診断処理を実行することのできるメモリ診断方法および電力変換装置の制御機器を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明に係るメモリ診断方法は、メモリを有する情報処理装置の診断対象のメモリと該メモリに書き込まれた診断対象のデータを診断するメモリ診断方法であって、情報処理装置の起動時に実行され、診断対象のメモリ領域を複数の小領域に分割すると共に、小領域の夫々に対応させて複製領域を割付け、複数の小領域および対応する複製領域の全アドレスにあるデータを書き込むことによって診断対象のメモリ領域を初期化する初期化処理と、いずれかの小領域にデータを書き込む際に、該小領域にデータを書き込むと共に該小領域に対応する複製領域に該データまたは該データをもとに生成された診断用データを書き込む書き込み処理と、小領域ごとに、該小領域の全アドレスについて順次データを読み取ると共に該小領域のアドレスに対応する複製領域のアドレスからデータを読み取り、当該読み取られた両データをもとに故障の有無を判定するという小領域ごとの診断処理を一定の周期ごとに小領域を順に切り替えて実行する小領域ごとの診断処理と、を含むことを特徴とする。
【００１０】
本発明では、診断対象のメモリを複数の小領域に分割し、小領域単位でメモリ診断実行する。また、この小領域ごとの診断処理は、一定周期ごとに順に異なる小領域についてメモリ診断を行うようにして、一定時間内に全領域のメモリ診断が終了するようにする。なお、制御処理等において、ある小領域への制御データ等の書き込み処理が発生した場合は、その小領域へデータを書き込んだ直後に、該小領域に対応する複製領域に同じデータまたはそのデータを用いて生成された診断用データを書き込む書き込み処理を実行する。これにより、定周期起動される小領域ごとの診断処理によって、制御データ書き込まれた領域のデータが読み出されたときに、同時に複製領域のデータも読み出されて診断処理が行われる。これにより、診断処理とは別にメモリに書き込まれるデータのチェックも確実に実行することができる。
【００１１】
また、本発明に係るメモリ診断方法は、さらに、小領域ごとの診断処理とは別に、初期化処理の後に予め定められた条件によって実行され、診断対象のメモリ領域の全アドレスについて、各アドレスからデータを読み取ると共に対応する複製領域のアドレスからデータを読み取り、当該読み取られた両データをもとに故障の有無を判定する診断対象のメモリ領域一括の診断処理を含むことを特徴とする。
【００１２】
本発明では、メモリ診断を一括して実行するモードを備えることによって、起動時など全メモリ領域の一括診断が必要な場合に高速にメモリ診断を行うことを可能にする。
【００１３】
また、本発明に係るメモリ診断方法は、さらに、書き込み処理に続いて、書き込んだアドレスのデータおよび対応する複製領域のアドレスのデータを読み取り、当該読み取られた両データをもとに故障の有無を判定することを特徴とする。
【００１４】
本発明では、書き込み処理に続いて、読み取り処理を実行することにより、書き込み回路の故障を直ちに検出できるので、誤ったデータの出力を防止することができる。
【００１５】
本発明に係るメモリ診断方法は、さらに、いずれかの小領域からデータを読み取る際に、該小領域からデータを読み取ると共に、該小領域に対応する複製領域からデータを読み取り、当該読み取られた両データをもとに故障の有無を判定する読み取り処理を含むことを特徴とする。
【００１６】
本発明では、データ読み取り時に読み取ったデータの診断を実行することにより、メモリ読み取り回路の故障による誤出力を防止することができる。
【００１７】
本発明に係るメモリ診断方法では、複製領域には、診断対象のメモリ領域のアドレスに対して反転したアドレスを診断対象のメモリ領域に対応するアドレスとして割り付けることを特徴とする。
【００１８】
本発明では、ＣＰＵからのアドレスバスやこれに付随する回路の故障を検出することができる。
【００１９】
また、本発明に係るメモリ診断方法は、優先順位が最下位のタスクによって起動されるタイマを設け、小領域ごとの診断処理は、該タイマの値を読み込んだ後に該タイマをリセットし、該タイマの値によって小領域の分割数を更新することを特徴とする。
【００２０】
本発明では、優先順位が最下位のタスクの動作状態を監視することによってＣＰＵの負荷が高いか低いかを検知して、ＣＰＵの負荷が高い場合は診断対象のメモリ領域の分割数を多くしてメモリ診断処理が制御処理に影響を及ぼさないようにする一方、ＣＰＵの負荷が低い場合は診断対象のメモリの分割数を多くして効率的なメモリ診断を可能にする。
【００２１】
本発明に係る電力変換装置の制御機器は、診断対象のメモリを有する情報処理装置で構成された制御機器であって、診断対象のメモリは、上記のメモリ診断方法によって診断されることを特徴とする。
【００２２】
本発明によれば、制御装置のメモリの故障に起因する電力変換装置の誤動作及び誤動作による災害を防止することができる。
【発明の効果】
【００２３】
本発明によれば、安全機能を担うメモリの診断対象領域に対し診断開始から終了までにかかる所要時間を効率よく管理して、制御処理などの他の処理に影響を与えずに信頼性の高いメモリ診断処理を実行することが可能になる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施の形態によるメモリ診断方法が適用される演算処理装置１の一例を示す回路構成図である。
【図２】図１の管理テーブル１２のデータ構成図である。
【図３】図１の初期化手段２１の処理手順を示すフローチャートである。
【図４】本発明の実施の形態によるメモリ３０の診断対象領域と複製領域の分割の説明図である。
【図５】図１の一実施例による書き込み手段２２の処理手順を示すフローチャートである。
【図６】図１の一実施例による読み取り手段２３の処理手順を示すフローチャートである。
【図７】図１の一実施例による診断手段２４の処理手順を示すフローチャートである。
【図８】図１の他の実施例による書き込み手段２２の処理手順を示すフロ−チャートである。
【図９】図１の他の実施例による読み取り手段２３の処理手順を示すフロ−チャートである。
【図１０】図１の他の実施例による診断手段２４の処理手順を示すフローチャートである。
【図１１】本発明の第２の実施の形態によるメモリ診断方法が適用される演算処理装置１の一例を示す回路構成図である。
【図１２】図１１の管理テーブル１２ａのデータ構成図である。
【図１３】図１１の条件テーブル１３のデータ構成図である。
【図１４】図１１の診断手段２４の処理手順を示すフローチャートである。
【図１５】図１４の分割数更新処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態を説明する。図１は、本実施の形態によるメモリ診断方法が適用される演算処理装置１の回路構成例である。この図において、演算処理装置１はＣＰＵ回路１０とメモリ３０を備え、ＣＰＵ回路１０は、メモリ３０の初期化処理を実行する初期化手段２１、メモリ３０へのデータの書き込み処理を実行する書き込み手段２２、メモリ３０からのデータの読み出し処理を実行する読み取り手段２３、メモリの診断処理を実行する診断手段２４を有している。各手段２１〜２４はプログラムによって実現可能な機能である。
【００２６】
ＣＰＵ回路１０は、メモリ領域に関する情報を記憶する管理テーブル１２をＣＰＵ回路１０の内蔵する不揮発性メモリに記憶している。また、ＣＰＵ回路１０は、予め設定された一定の周期で割り込み信号を発生させる定周期タイマ１１を備えている。なお、本実施の形態では、定周期タイマ１１や管理テーブル１２はＣＰＵ回路１０に内蔵されているものとして説明するが、ＣＰＵ回路１０とは別にタイマや種々のテーブルを設けるようにして良い。
【００２７】
メモリ３０は、ＲＡＭやフラッシュメモリなどの読書き可能な記憶素子である。なお、メモリ３０は、一つに限らず、複数のメモリ素子から構成される場合もある。
【００２８】
管理テーブル１２は、図２に示すように、診断対象の小領域の区分ごとにその領域の開始アドレスおよび終了アドレスが保存されている。各小領域に対応する複製領域についても同様である。
【００２９】
次に、本実施の形態によるメモリ診断方法について各実施例ごとに説明する。
（実施例１）
＜初期化処理＞
まず、図３を用いて初期化手段２１によるメモリ３０の初期化処理の手順を説明する。この初期化処理では、図４に示すようにメモリ３０を診断対象領域と複製領域に分ける。また、診断対象領域をｎ個の小領域（Ａ1,Ａ2,・・・,Ａn）に分割し、各小領域に対応させて複製領域（Ｂ1,Ｂ2,・・・,Ｂn）を設けている。この診断対象領域と複製領域は、同じメモリ素子に割り付けることも可能であるが、異なるメモリ素子に割り付けるのが好ましい。
【００３０】
各小領域および対応する複製領域のアドレス範囲は管理テーブル１２に予め設定されているものとする。
【００３１】
図３の初期化処理において、初期化手段２１は、全ての小領域Ａi（ｉ＝１〜ｎ）について、以下の手順を繰り返す（Ｓ１０１ａ，Ｓ１０１ｂ）。初期化手段２１は、まず、管理テーブル１２から小領域Ａiと複製領域Ｂiのアドレス範囲を抽出する（Ｓ１０２）。そして、抽出した小領域Ａiのアドレス範囲のうち、まず、先頭アドレスを書き込み先アドレスとして設定する（Ｓ１０３）。
【００３２】
次に、初期化手段２１は、ステップＳ１０３で設定したアドレスに診断用データを書き込み（Ｓ１０４）、続いて複製領域Ｂiの対応するアドレスに診断用データの反転データを書き込む（Ｓ１０５）。
【００３３】
その後、初期化手段２１は、小領域Ａiの全アドレスについて終了したか否かを判定し（Ｓ１０６）、終了していない場合は、次のアドレスを書き込み先アドレスとして設定して、ステップＳ１０４へ移行する。小領域（Ａ１，Ａ２，・・・，Ａｎ）の全アドレスに診断用データを書き込み、対応する複製領域（Ｂ１，Ｂ２，・・・，Ｂｎ）の全アドレスに各診断用データの反転データを書き込むと初期化処理は終了する。
【００３４】
＜書き込み処理＞
次に図５を用いて書き込み手段２２による書き込み処理の手順を説明する。この書き込み手段２２は、制御処理などを実行する他のプログラムから例えばサブルーチンのように呼び出されて実行されるものである。図５において、書き込み手段２２は、あるプログラムから診断対象メモリ領域内へデータの書き込み要求があると、そのデータを診断対象メモリ領域へ書き込んで（Ｓ２０１）、データを更新した後に、書き込んだデータの反転データを生成して、その反転データを複製領域へ書き込む（Ｓ２０２）。この処理の後、元のプログラムへ戻る。なお、診断対象のメモリ領域は、小領域（Ａ1〜Ａn）のいずれであっても良い。
【００３５】
＜診断処理＞
次に図７を用いて診断手段２４によるメモリ３０の診断処理の手順を説明する。
診断手段２４は、周期Ｔ[ms]で割り込みを発生する定周期タイマ１１によって周期的に起動され、メモリ診断を小領域ごとに時分割で実施する。すなわち１回の起動で、一つの小領域について診断処理（Ｓ４０２，Ｓ４０３）を実行する。各小領域の診断処理では、診断対象のメモリ領域のデータと複製領域のデータの排他的論理和を演算し、ビットごとに判定したとき全てのビットが「１」となる場合を正常とし、「０」となるビットが存在する場合は故障と判定する。診断で故障と判断した場合にはアラーム情報をセットし（Ｓ４０４）、故障処理に遷移する。
【００３６】
図７において、１回目の割込みでは領域Ａ1と領域Ｂ1のデータを読み取り比較することでメモリ診断を実施し、２回目の割込みでは領域Ａ２と領域Ｂ２のデータを比較することでメモリ内のデータの診断を実施する。診断対象のメモリ領域をｎ個に分割し、定周期タイマ１１による割込み周期Ｔ[ms]で診断処理を実施すれば、診断対象のメモリ領域の全体を診断するために要する時間はｎ×Ｔ[ms]となる。１回当たりのメモリ診断に要する時間および全体の診断に要する時間の要求値から分割数ｎと周期Ｔを予め定めることによって、全メモリ領域の診断をｎ×Ｔ[ms]で確実に実行することができる。
【００３７】
＜読み取り処理＞
次に図６を用いて読み取り手段２３による読み取り処理の手順を説明する。
図６の読み取り処理も書き込み処理と同様に、サブルーチンのようにあるプログラムから呼び出されて実行されるものである。読み取り手段２３は、あるプログラムから読み取り要求を受けると診断対象領域からデータを読み取り（Ｓ３０１）、読み取ったデータを呼び出し元のプログラムへ渡す（Ｓ３０２）。
【００３８】
読み取り手段２３によって読み取られたデータは、ｎ×Ｔ[ms]以内にメモリ内のデータに故障がないことが確認されているデータである。なお、複製領域のデータに反転データを用いること以外に、複製領域のアドレスに診断対象のメモリのアドレスに対し反転したアドレス配置を用いるようにするのが好ましい。これにより、メモリのアドレス制御線の故障が検出可能になるという効果が得られる。
【００３９】
（実施例２）
図８は、書き込み手段２２の他の実施例による処理手順を示すフロ−チャートである。その他の手段は、実施例１と同様である。
図８において、書き込み手段２２は、診断対象のメモリ領域への書き込み要求を受け付けると診断対象のメモリ領域と対応する複製領域に対して夫々データを更新する（Ｓ２１１，Ｓ２１２）。その後、続いて、更新した診断対象のメモリ領域と対応する複製領域のデータを読み取って（Ｓ２１３）、メモリ診断を実行する（Ｓ２１４）。すなわちステップＳ２１３で読み取った両データの排他的論理和をとって、ビットごとに「１」となっているかどうかを判定することで書き込み回路の故障を診断する（Ｓ２１５）。判定のしかたは、図７のステップＳ４０２，ステップＳ４０３と同様である。書き込み手段２２は、故障と判定した場合は、アラームをセットして（Ｓ２１６）、終了する。故障と判定しない場合は、例えば、特定のアドレスへのデータの書き込みが制御出力を意味するような場合は、書き込み処理に応じたデータ出力や呼び出し元のプログラムへ正常に書き込み動作がなされたことを示すデータの返送等を実行する（Ｓ２１７）。
【００４０】
本実施例の読み取り手段２３は、実施例１と同様に図６に示す手順で読み取り処理を実行するが、読み取り手段２３によって読み取られたデータは、書き込み回路に故障がないことが確認され、かつ、ｎ×Ｔ[ms]以内にメモリ診断によりメモリ内のデータに異常がないことが確認されているデータである。
【００４１】
（実施例３）
図９は、読み取り手段２３の他の実施例による処理手順を示すフロ−チャートである。その他の手段は、実施例１と同様である。
【００４２】
図９において、読み取り手段２３は、あるプログラムから診断対象のメモリ領域からの読み取り要求を受け付けると、診断対象のメモリ領域と対応する複製領域からそれぞれデータを読み取って（Ｓ３１１）、メモリの読み取り回路の故障を診断する（Ｓ３１２）。診断のしかたは、図７のステップＳ４０２，ステップＳ４０３と同様である。この診断の結果、故障ありと判定した場合は、アラームをセットして（Ｓ３１４）、終了する。故障ありと判定しない場合は、呼び出し元のプログラムへデータを渡す（Ｓ３１５）。
【００４３】
読み取り手段２３は、読み取り処理時に読み取り回路の故障を診断することで、時分割で実施されるメモリ診断処理により診断されてから読み取り処理を実施するまでの間に発生したメモリ故障に伴う誤出力を防止することができる。図９の読み取り処理で読み取られたデータは、読み取り回路に故障がないことが確認され、かつ、ｎ×Ｔ[ms]以内にメモリ診断によりメモリ内のデータに故障がないことが確認されているデータである。
【００４４】
（実施例４）
本実施例では、書き込み処理に図８の手順を用い、読み取り処理に図９の手順を用いる。その他の処理は、実施例１と同様である。図８、図９の処理手順については上述の如くであるので説明を割愛する。
【００４５】
図８の書き込み処理では書き込み回路の故障を診断し、読み取り処理では読み取り回路の故障を診断する。図９の読み取り処理で読み取られたデータは、書き込み回路の故障と読み取り回路の故障がないことが確認され、かつ、ｎ×Ｔ[ms]以内にメモリ診断によりメモリ内のデータに異常がないことが確認されているデータである。
【００４６】
（実施例５）
本実施例による診断手段２４は、図１０の手順によってメモリの診断処理を実行する。その他の手段の処理手順は、実施例４と同様である。
【００４７】
本実施例では、診断手段２４は、低速モードと高速モードの２種類のメモリ診断処理手順を備える。低速モードは、診断対象のメモリ領域をｎ個に分割し時分割で順次処理する方法である。高速モードは、全ての小領域を連続して診断するものである。
【００４８】
診断手段２４は、起動されると予め設定された条件に基づいて高速モードか低速モードかを選択し（Ｓ４００）、その後は選択したモードの処理を実行する。個々の小領域を時分割で診断する低速モードは、実施例１において図７に基づいて説明した処理手順と同様であるので説明を省略する。    
【００４９】
高速モードでは診断対象のメモリ領域を一括して診断するため、低速モードより短時間でメモリ診断が可能である。起動時や設定変更時など高速にメモリ診断を実施する必要がある場合は高速モードにより一括でメモリ診断を実施する。診断対象の全てのメモリ領域を一括して診断することで診断実行時間を短縮することができる。また、モードを切り換えてメモリ診断することで他の演算処理に影響を与えないメモリ診断と起動時等の診断時間の短縮が両立できる。
【００５０】
（実施例６）
上述したメモリ診断方法の手順を実行する演算処理装置１を電力変換装置の制御機器に搭載することで、ＣＰＵ回路１０やメモリ３０および両回路間に設けられる周辺回路の故障を検出することが可能となる。ＣＰＵ回路１０やメモリ３０の故障を検出した場合に電力変換装置を安全状態に遷移させることで、これらの故障に起因する電力変換装置の誤動作及び誤動作による災害を防止することができる。
【００５１】
次に、本発明の第２の実施の形態を説明する。
図１１は、第２の実施の形態によるメモリ診断方法が適用される演算処理装置１の回路構成例である。図１の構成との主な違いは、起動要求を受け付けて計時を開始するタイマ１４とメモリ診断を一括診断で行うのか個別診断で行うのかの条件を登録する条件テーブル１３を設けたことである。また、本実施の形態では、スケジューラで管理されるタスク構成とし、メモリの診断処理は、そのタスクの一つとしている。その他、図１と同じ機能には同じ符号を付して説明を省略する。
【００５２】
本実施の形態では、図１２に示す管理テーブル１２ａを用いる。管理テーブル１２ａは、第１の実施の形態で説明した図２の項目に追加して、診断対象のメモリの分割数、次に実行すべき小領域のＩＤ、タイマ１４の読み取り値、一括診断モードか個別診断モードかを管理する診断モード、一括診断モードのときに用いられるカウンタ値を記憶できるようになっている。ここで、分割数は初期値ｎ、次にすべき小領域ＩＤは初期値１に予め設定され、診断対象の小領域や複製領域のアドレス範囲は、分割数初期値に基づいて演算された先頭アドレス、最終アドレスが予め設定されている。
【００５３】
図１３は、条件テーブル１３のデータ構成例である。条件テーブル１３はメモリの一括診断を要求する際のフラグを設定するテーブルであり、起動時やエラー発生時など、それぞれ一括診断を要求する処理が、その処理の中で該当する一括要求フラグをセットする。例えば、システムの起動時には、スケジューラ１５がまず項目「起動時」の一括要求フラグをセットする。システムの異常監視処理が動作したときは、「エラー発生時」の項目の一括要求フラグをセットする。
【００５４】
以下、本実施の形態によるメモリ診断方法について説明する。メモリの初期化処理、書き込み処理、読み取り処理は第１の実施の形態と同様であるので説明を割愛し、図１４，図１５に基づいて診断処理を中心に説明する。
【００５５】
＜基本動作＞
スケジューラ１５は、定周期タイマ１１によって周期的に発生する割り込みを受け付けると、タスク１〜タスクｍを優先順位の高いものから順に実行する。タスク１が最高優先順位、タスクｍが最低優先順位であるとする。なお、本実施の形態では、診断処理を最高優先順位のタスク１としているが、診断処理を実行するタスクの優先順位はこれに限定されるものではない。
【００５６】
最低優先順位のタスクｍは、スケジューラ１５によって起動（ウェイクアップ）されると、タイマ１４を起動して計時を開始させる。
【００５７】
図１４において、診断処理を実行するタスク１は、スケジューラ１５によって起動されると、次に説明する分割数更新処理を実行する（Ｓ５０１）。
【００５８】
＜分割数更新処理＞
図１５は、分割数更新処理の手順を示すフローチャートである。この図において、分割数更新処理は起動されると、タイマ１４の値を読み込んで（Ｓ６０１）、読み込んだタイマ値を管理テーブル１２ａに保存し（Ｓ６０２）、タイマ１４をリセットする（Ｓ６０３）。
【００５９】
分割数更新処理は、次にタイマ値は予め設定した一定値ａ以下か否かを判定し（Ｓ６０４）、一定値ａ以下ならば、次に分割数は予め定めた最大値であるか否かを判定し（Ｓ６０５）、最大値に達していなければ（Ｓ６０５で「ＮＯ」）、分割数ｎをインクリメントする（Ｓ６０５）。すなわち診断対象のメモリ領域の分割数を増加方向に更新する。ステップＳ６０５で、分割数が既に最大値に達している場合は、アラームをセットして終了する（Ｓ６０７）。
【００６０】
タイマ値が一定値ａ以下でないときは（Ｓ６０４で「ＮＯ」）、次にタイマ値は一定値ｂ以上か否かを判定し（Ｓ６０８）、一定値ｂ以上のときは、分割数ｎをデクリメントする（Ｓ６０９）。すなわち診断対象のメモリ領域の分割数を減少方向に更新する。そして、新たな分割数に基づいて小領域と複製領域の先頭アドレス，最終アドレスを算出して、管理テーブル１２ａを更新する（Ｓ６１０）。
【００６１】
なお、一定値ａ，ｂ（ａ＜ｂ）は、システムによって適切な値を設定することになるが、一定値ａは、最下位のタスクｍが十分に動作する時間がないと考えられる時間（例えば１［ms］），一定値ｂは、最下位のタスクｍに余裕があり過ぎると考えられる時間（例えば５［ms］）を予め設定しておく。また、分割数の最大値は、起動周期との兼ね合いで予め仕様を満たす値に設定しておく。なお、ステップＳ６０７では、直ちにアラームをセットするのではなく、このパスを連続して一定回数通過したときのみアラームをセットするようにしても良い。
【００６２】
図１４に戻って、診断手段２４は、上述した分割数更新処理（Ｓ５０１）の後、条件テーブル１３にアクセスして、一括要求フラグが「１」の項目が存在するか否かを判定し（Ｓ５０３）、一括要求フラグが「１」の項目が存在する場合は、管理テーブル１２ａを一括診断モードに設定すると共に、条件テーブル１３の一括要求フラグをリセットする（Ｓ５０４）。そして管理テーブル１２ａのカウンタ値を１にセットする（Ｓ５０５）。
【００６３】
一方、条件テーブル１３に一括要求フラグが「１」の項目が存在しない場合は、管理テーブル１２ａを個別診断モードに設定する（Ｓ５０５）。
【００６４】
その後、管理テーブル１２ａの「次に実行すべき小領域ＩＤ」を抽出し（Ｓ５０７）、さらに、その小領域ＩＤのアドレス範囲を抽出する（Ｓ５０８）。そして、抽出したアドレス範囲のうち先頭アドレスを、読み取り先アドレスとして設定する（Ｓ５０９）。
【００６５】
次に、設定したアドレスからデータを読み取ると共に（Ｓ５１０）、複製領域の対応するアドレスからデータを読み取り（Ｓ５１１）、ステップＳ５１０およびステップＳ５１１で読み取った両データの排他的論理和を演算し（Ｓ５１２）、その演算結果の各ビットは「１」か否か、すなわち診断結果は正常か否かを判定する（Ｓ５１３）。この判定の結果、いずれか一つのビットでも「１」でない場合は（Ｓ５１３で「ＮＯ」）、アラームをセットして終了する（Ｓ５１４）。
【００６６】
ステップＳ５１３の判定の結果、全てのビットが「１」の場合は、次に、小領域の全アドレスについて実施済みか否かを判定し（Ｓ５１５）、未終了の場合は、次のアドレスを読み取り先アドレスとして設定し（Ｓ５１６）、ステップＳ５１０へ移行して、以降の処理を繰り返す。なお、小領域の全てのアドレスについて実施済みか否かは、読み取り先のアドレスを先頭アドレスから順にインクリメントしていき、最終アドレスに到達したか否かで判定することができる。
【００６７】
ステップＳ５１５で小領域の全アドレスについて実施済みの場合は、次に実行すべき小領域ＩＤを管理テーブル１２ａに保存する（Ｓ５１７）。
【００６８】
次に、一括診断モードか否かを判定して（Ｓ５１８）、一括診断モードでなければ終了し、一括診断モードの場合は、管理テーブル１２ａのカウンタ値がメモリ領域の分割数ｎに到達したか否かを判定し（Ｓ５１９）、未到達の場合は、カウンタ値をインクリメントして（Ｓ５２０）、ステップＳ５０７に移行して、以降の処理を繰り返す。ステップＳ５１９でカウンタ値がメモリ領域の分割数ｎに到達した場合は終了する。
【００６９】
以上の診断処理により、システム起動時は、スケジューラによって一括要求フラグがセットされるので全ての小領域についてメモリ診断が実行され、通常時は、一括要求フラグはセットされず個別診断モードが実行され小領域ごとに順に一定周期でメモリ診断される。また、一括診断モードの条件をテーブルに登録して管理することにより、システムの仕様変更等に簡便に対応することができる。
【００７０】
本実施の形態によれば、最下位のタスクの動作状況によって診断するメモリ領域の分割数を変更するので、一時的に負荷が高くなったときでもメモリ診断処理のために制御処理など他の処理の渋滞を招くことを回避することができる。さらに、制御データなど重要なデータは診断対象のメモリ領域に書き込むことにより、常に複製エリアに保存される複製データとのチェック処理が行われるので、信頼性の高いメモリ診断を実現することができる。  
【００７１】
本発明は、上述の実施の形態に限定されること無く、その要旨を逸脱しない範囲で種々変形して実施をすることがきる。例えば、分割数更新処理において、閾値ａ，ｂを同じ方向に複数回超えたときに現状の分割数を更新するようにしても良い。また、メモリ診断処理は、必ず最上位のタスクあるいは最上位の割り込み順位で行わなければならないというものではなく、診断周期Ｔ[ms]以内に必ず動作する順位ならば、より下位の順位のタスクや割り込み処理で行うようにしても良い。
【００７２】
なお、上記の各実施の形態で説明した各手段やテーブルの構成等は、実施形態を跨って任意に組合せ可能であることは明白である。例えば、第２の実施の形態では、上位のタスク１でメモリ診断を実行するようにしたが、第１の実施の形態のように定周期割り込みでメモリ診断を実行するようにして、分割数ｎは下位のタスクｍあるいは下位の割り込み処理の動作時間で変更するようにしても良い。
【産業上の利用可能性】
【００７３】
本発明よるメモリ診断方法は、読書き可能なメモリを備えた情報処理装置全般に適用することができる。特に電力変換装置の制御機器など信頼性の要求されるシステムに適用すると効果的である。
【符号の説明】
【００７４】
１    演算処理装置
１０    ＣＰＵ回路
１１    定周期タイマ
１２, １２ａ    管理テーブル
１３    条件テーブル
１４    タイマ
１５    スケジューラ
２１    初期化手段
２２    書き読み手段
２３    読み取り手段
２４    診断手段
３０    メモリ
【図１】
0005494039.tif 000002
【図２】
0005494039.tif 000003
【図３】
0005494039.tif 000004
【図４】
0005494039.tif 000005
【図５】
0005494039.tif 000006
【図６】
0005494039.tif 000007
【図７】
0005494039.tif 000008
【図８】
0005494039.tif 000009
【図９】
0005494039.tif 000010
【図１０】
0005494039.tif 000011
【図１１】
0005494039.tif 000012
【図１２】
0005494039.tif 000013
【図１３】
0005494039.tif 000014
【図１４】
0005494039.tif 000015
【図１５】
0005494039.tif 000016