(57)【要約】【課題】無停止運転中の装置によりアクセスされるメモリの動作確認の精度を維持しつつ、その動作確認に要する時間を抑制する。【解決手段】本発明によるメモリの動作確認装置（１００）は、無停止運転される装置の出力データのデータ量に応じて、前記出力データを記憶するための使用容量に基づいて前記メモリの使用領域を設定する使用領域設定部（１１０）と、前記使用領域に動作確認用の記憶領域を設定する記憶領域設定部（１２０）と、前記動作確認用の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを実施する書き込み読み出し部（１３０）と、前記動作確認用の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する判定部（１４０）と、前記判定の結果を示す情報を生成して出力する判定結果出力部（１５０）と、を備える。【選択図】図１
2014127064.tif 000002
【特許請求の範囲】
【請求項１】
無停止運転される装置の出力データを記憶するためのメモリの動作を確認する動作確認装置であって、
前記メモリに記憶される前記出力データのデータ量に応じて、前記出力データを記憶するために使用する使用容量を決定し、前記使用容量に基づいて前記メモリの使用領域を設定する使用領域設定部と、
前記使用領域設定部により設定された前記使用領域に、動作確認用の特定のパターンデータを記憶するための動作確認用の記憶領域を設定する記憶領域設定部と、
前記記憶領域設定部により設定された前記動作確認用の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを実施する書き込み読み出し部と、
前記書き込み読み出し部により前記動作確認用の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する判定部と、
前記判定部による判定の結果を示す情報を生成して出力する判定結果出力部と、
を備えたメモリの動作確認装置。
【請求項２】
前記使用領域設定部は、前記装置の出力データを前記メモリに記憶するために使用するデータブロック数に基づいて前記使用容量を算出する、請求項１に記載のメモリの動作確認装置。
【請求項３】
前記使用領域設定部は、前記使用容量に所定の係数を乗算し、該乗算により得られた値を前記メモリの全容量から減算し、該減算により得られた値に基づいて前記メモリの使用領域を設定する、請求項２に記載のメモリの動作確認装置。
【請求項４】
前記記憶領域設定部は、前記動作確認用の記憶領域として複数の記憶領域を分散させて設定し、
書き込み読み出し部は、前記記憶領域設定部により設定された前記複数の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを順次的に実施し、
判定部は、前記書き込み読み出し部により前記複数の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する、請求項１から３の何れか１項に記載のメモリの動作確認装置。
【請求項５】
前記書き込み読み出し部は、ランダムに決定された順番に従って、前記複数の記憶領域に対し順次的に前記特定のパターンデータの書き込み及び読み出しを実施し、
前記判定部は、前記順番に従って特定される前記複数の記憶領域の中の一つから読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する、請求項４に記載のメモリの動作確認装置。
【請求項６】
前記ランダムに決定された順番は、前記複数の記憶領域の書き込みおよび読み出しを実施するための複数の異なる所定の手順の中から乱数を用いてランダムに決定された手順により規定された順番である、請求項５に記載のメモリの動作確認装置。
【請求項７】
前記メモリは、冗長化システムを構成する複数の制御装置によって共有される共有メモリである、請求項１から６の何れか１項に記載のメモリの動作確認装置。
【請求項８】
無停止運転される装置の出力データを記憶するためのメモリの動作を確認する動作確認方法であって、
前記メモリに記憶される前記出力データのデータ量に応じて、前記出力データを記憶するために使用する使用容量を決定し、前記使用容量に基づいて前記メモリの使用領域を設定する第１段階と、
前記第１段階により設定された前記使用領域に、動作確認用の特定のパターンデータを記憶するための動作確認用の記憶領域を設定する第２段階と、
前記第２段階により設定された前記動作確認用の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを実施する第３段階と、
前記第３段階により前記動作確認用の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する第４段階と、
前記第４段階による判定の結果を示す情報を生成して出力する第５段階と、
を含むメモリの動作確認方法。
【請求項９】
前記第３段階では、ランダムに決定された順番に従って、前記複数の記憶領域に対し順次的に前記特定のパターンデータの書き込み及び読み出しを実施し、
前記第４段階では、前記順番に従って特定される前記複数の記憶領域の中の一つから読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する、請求項８に記載のメモリの動作確認方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの動作確認装置および動作確認方法に関し、特に、メモリをアクセスする装置の稼働中に、このメモリの動作状態を確認するための技術に関する。
【背景技術】
【０００２】
従来、例えば、超電導電磁石を構成する超電導コイルの温度を制御するための制御装置は、その超電導コイルを超電導状態に定常的に維持するために無停止運転されている。この種の制御装置は、その制御に必要な演算処理を随時実施し、その演算結果をメモリに記憶させている。このように制御装置が無停止運転されている場合、メモリの動作に異常が発生すると、制御装置の運転を継続することが困難になる。このため、無停止運転中の制御装置およびメモリの動作を阻害することなく、メモリの動作確認を可能とする技術に対する要請が存在する。
【０００３】
上述の要請に対する従来技術として、例えば特開平７−４４４６５号公報（引用文献１）に開示された技術がある。図６を参照して、従来技術によるメモリの動作確認の手法を説明する。この従来技術は、装置の稼働中にメモリの異常を検出するためのものであり、同図（ａ）に示すように、全記憶領域のうち、装置の稼働中に使用しない記憶領域Ａが動作確認用のパターンデータの記憶領域として使用される。また、記憶領域Ｂには、上述の制御装置による演算結果のようなデータが格納される。
【０００４】
上述の従来技術によれば、電源投入時の初期設定処理において、動作確認用の特定のパターンデータが記憶領域Ａに書き込まれる。そして、電源投入後の稼働中に一定時間間隔で記憶領域Ａからパターンデータが読み出され、そのパターンデータが上述の特定のパターンデータ（期待値）と一致するか否かが判定される。この判定においてパターンデータが一致すれば、メモリ動作が正常であることが確認される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−４４４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の従来技術によれば、図６（ａ）に符号Ｃ１で示すように、異常発生部位が演算結果記憶用の記憶領域Ｂにあり、且つ、その異常発生部位が動作確認用の記憶領域Ａに近接した位置にある場合、記憶領域Ａの動作は、概ね記憶領域Ｂの異常発生部位の動作と同等であると考えられることから、記憶領域Ａの動作を検証することにより、記憶領域Ｂの動作確認を行うことができる。
【０００７】
しかしながら、図６（ａ）に符号Ｃ２で示すように、異常発生部位が記憶領域Ａから離れた位置にある場合、記憶領域Ａの動作は、記憶領域Ｂの異常発生部位の動作と同等であるとは必ずしも言えなくなるため、記憶領域Ａのパターンデータを検証したとしても、記憶領域Ｂの動作確認を行ったとは言えなくなる。このため、上述の従来技術によれば、異常発生の検出精度が低下するという問題がある。
【０００８】
上述の従来技術の問題に対する対策の一つとして、図６（ｂ）に例示するように、記憶領域の全体にわたって動作確認を行うことが挙げられる。しかしながら、この対策によれば、記憶領域の全体に対してパターンデータの読み出しを行わなければならず、動作確認に時間を要するという問題がある。また、動作確認対象の記憶領域には動作確認用のパターンデータのみならず、演算結果等も記憶されるため、動作確認の手順が複雑になり、装置の稼働中に動作確認を行うことが困難である。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、無停止運転中の装置によりアクセスされるメモリの動作確認の精度を維持しつつ、その動作確認に要する時間を抑制することができるメモリの動作確認装置および動作確認方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によるメモリの動作確認装置は、無停止運転される装置の出力データを記憶するためのメモリの動作を確認する動作確認装置であって、前記メモリに記憶される前記出力データのデータ量に応じて、前記出力データを記憶するために使用する使用容量を決定し、前記使用容量に基づいて前記メモリの使用領域を設定する使用領域設定部と、前記使用領域設定部により設定された前記使用領域に、動作確認用の特定のパターンデータを記憶するための動作確認用の記憶領域を設定する記憶領域設定部と、前記記憶領域設定部により設定された前記動作確認用の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを実施する書き込み読み出し部と、前記書き込み読み出し部により前記動作確認用の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する判定部と、前記判定部による判定の結果を示す情報を生成して出力する判定結果出力部と、を備えたメモリの動作確認装置の構成を有する。
【００１１】
前記メモリの動作確認装置において、例えば、前記使用領域設定部は、前記装置の出力データを前記メモリに記憶するために使用するデータブロック数に基づいて前記使用容量を算出する。
前記メモリの動作確認装置において、例えば、前記使用領域設定部は、前記使用容量に所定の係数を乗算し、該乗算により得られた値を前記メモリの全容量から減算し、該減算により得られた値に基づいて前記メモリの使用領域を設定する。
【００１２】
前記メモリの動作確認装置において、例えば、前記記憶領域設定部は、前記動作確認用の記憶領域として複数の記憶領域を分散させて設定し、書き込み読み出し部は、前記記憶領域設定部により設定された前記複数の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを順次的に実施し、判定部は、前記書き込み読み出し部により前記複数の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する。
【００１３】
前記メモリの動作確認装置において、例えば、前記書き込み読み出し部は、ランダムに決定された順番に従って、前記複数の記憶領域に対し順次的に前記特定のパターンデータの書き込み及び読み出しを実施し、前記判定部は、前記順番に従って特定される前記複数の記憶領域の中の一つから読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する。
【００１４】
前記メモリの動作確認装置において、例えば、前記ランダムに決定された順番は、前記複数の記憶領域の書き込みおよび読み出しを実施するための複数の異なる所定の手順の中から乱数を用いてランダムに決定された手順により規定された順番である。
前記メモリの動作確認装置において、例えば、前記メモリは、冗長化システムを構成する複数の制御装置によって共有される共有メモリである。
【００１５】
本発明の一態様によるメモリの動作確認方法は、無停止運転される装置の出力データを記憶するためのメモリの動作を確認する動作確認方法であって、前記メモリに記憶される前記出力データのデータ量に応じて、前記出力データを記憶するために使用する使用容量を決定し、前記使用容量に基づいて前記メモリの使用領域を設定する第１段階と、前記第１段階により設定された前記使用領域に、動作確認用の特定のパターンデータを記憶するための動作確認用の記憶領域を設定する第２段階と、前記第２段階により設定された前記動作確認用の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを実施する第３段階と、前記第３段階により前記動作確認用の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する第４段階と、前記第４段階による判定の結果を示す情報を生成して出力する第５段階と、を含むメモリの動作確認方法の構成を有する。
【００１６】
前記メモリの動作確認方法において、例えば、前記第３段階では、ランダムに決定された順番に従って、前記複数の記憶領域に対し順次的に前記特定のパターンデータの書き込み及び読み出しを実施し、前記第４段階では、前記順番に従って特定される前記複数の記憶領域の中の一つから読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する。
【発明の効果】
【００１７】
本発明によれば、無停止運転中の装置によりアクセスされるメモリの動作確認の精度を維持しつつ、その動作確認に要する時間を抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態によるメモリの動作確認装置の構成の一例を示すブロック図である。
【図２】本発明の第１実施形態によるメモリの動作確認装置の動作の流れの一例を示すフローチャートである。
【図３】本発明の第１実施形態によるメモリの動作確認装置の動作の流れの詳細を示すフローチャートである。
【図４】本発明の第２実施形態によるメモリの動作確認装置の動作の流れの一例を示すフローチャートである。
【図５】本発明の実施形態の変形例を説明するための説明図である。
【図６】従来技術によるメモリの動作確認手法を説明するための説明図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の実施形態について、超電導電磁石を超電導状態に保持するための冷却システムを制御する制御装置に本発明によるメモリの動作確認装置を適用した場合を例として説明する。ただし、本発明は、このような例に限定されず、任意の装置に適用することができる。
【００２０】
（第１実施形態）
[構成の説明]
図１は、本発明の実施形態によるメモリの動作確認装置が適用された制御装置１００の構成の一例を示すブロック図である。
制御装置１００は、入力データＤＩＮに基づいて、冷却システムの制御に関する演算処理を実行し、その演算結果ＲＡをメモリ２００に記憶させるものである。本実施形態では、制御装置１００の制御対象は、例えば、冷却システムにおける液体ヘリウムの循環流量を規定するバルブの開度である。制御装置１００は、そのバルブの開度に関する制御データを演算する。制御装置１００は、例えば制御用のＣＰＵ(Central Processing Unit)であるが、この例に限定されない。
【００２１】
本実施形態では、制御装置１００は、上述の冷却システムの制御に関する演算処理を実行する機能に加えて、メモリ２００の動作確認を実施する機能を有している。以下では、メモリ２００の動作確認を実施する機能に着目して説明する場合、制御装置１００を「動作確認装置１００」と称す。
【００２２】
動作確認装置１００は、無停止運転される制御装置（１００）の演算結果ＲＡ（出力データ）を記憶するためのメモリ２００の動作確認を実施するものであって、使用領域設定部１１０、記憶領域設定部１２０、書き込み読み出し部１３０、判定部１４０、判定結果出力部１５０から構成される。ここで、使用領域設定部１１０は、メモリ２００に記憶される演算結果ＲＡのデータ量に応じて、演算結果ＲＡを記憶するために使用する記憶容量（以下、「使用容量」と称す。）を算出し、この使用容量に基づいて、演算結果ＲＡ等の各種のデータを記憶するために使用するメモリ２００の記憶領域２１０（以下、「使用領域２１０」と称す。）を設定するものである。
【００２３】
本実施形態では、使用領域設定部１１０は、演算結果ＲＡ等の各種の実データのデータブロック数に基づいてメモリ２００の上記使用容量を算出する。ここで、本実施形態において、データブロック数は、データの種別の数に相当する。データの種別の一例としては、演算結果ＲＡである演算データ、冗長構成を採用した場合に使用する生存確認データ、設定データ、入力データ、出力データがある。このうち、入力データは、アナログ入力データとデジタル入力データに分類され、出力データは、アナログ出力データとデジタル出力データに分類される。したがって、この例では、データの種別の総数は「７」となる。何れの種別のデータをメモリ２００に記憶するかによって、例えばオペレータやシステム設計者等によってデータブロック数が事前に決定される。本実施形態では、オペレータ等により決定されたデータブロック数は、制御装置１００の記憶部（図示なし）に記憶される。
【００２４】
このデータブロック数は、図１に示すメモリ２００の記憶領域２１０のうち、演算結果記憶用の記憶領域２１２Ａ、記憶領域２１２Ｂ、記憶領域２１２Ｃの個数に相当し、この記憶領域ごとに異なる種別のデータが記憶される。図１の例では、記憶領域２１０には３個の記憶領域２１２Ａ，２１２Ｂ，２１２Ｃが存在し、データブロック数は「３」である。従ってこの例では、記憶領域２１０に３つの種別のデータが記憶される。
また、使用領域設定部１１０は、上記算出した使用容量に基づいて使用領域２１０を設定する。本実施形態では、上記算出した使用容量に所定の係数Ｎを乗算し、該乗算により得られた値をメモリ２００の全容量から減算し、この減算により得られた値に基づいてメモリ２００の使用領域２１０を設定する。即ち、本実施形態では、上記乗算により得られた値をメモリ２００の全容量から減算することによりメモリ２００の後述の不使用領域２２０を特定し、この不使用領域により使用領域２１０を背理的に特定する。その詳細については後述する。
【００２５】
記憶領域設定部１２０は、使用領域設定部１１０により設定された使用領域２１０に、動作確認用の特定のパターンデータＰＤを記憶するための動作確認用の複数の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを分散させて設定するものである。本実施形態では、記憶領域設定部１２０は、使用領域２１０における記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの各アドレス空間を設定することにより、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを分散させて設定する。なお、図１の例では、３つの記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを分散させて配置しているが、分散配置される記憶領域の個数（即ち、データブロック数）は任意である。ただし、本実施形態では、動作確認用の記憶領域の個数は、演算結果記憶用の記憶領域の個数に応じて決定され、その詳細は後述する。
【００２６】
書き込み読み出し部１３０は、記憶領域設定部１２０により設定された複数の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄに対し、定周期で上記動作確認用の特定のパターンデータＰＤの書き込み及び読み出しを順次的に実施するものである。ここで、書き込み読み出し部１３０は、特定のパターンデータＰＤの書き込みの際には、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１ＤをアクセスするためのアドレスＡＤと特定のパターンデータＰＤとを発生させてメモリ２００に供給する。また、書き込み読み出し部１３０は、特定のパターンデータＰＤの読み出しの際には、同じく、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１ＤをアクセスするためのアドレスＡＤを発生させてメモリ２００に供給し、このアドレスＡＤによって特定される記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄから出力データＤＯＵＴとしてパターンデータＰＤを読み出す。
【００２７】
判定部１４０は、書き込み読み出し部１４０により複数の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄから読み出されたパターンデータ（ＤＯＵＴ）が特定のパターンデータＰＤと一致するか否かを判定するものである。判定結果出力部１５０は、判定部１４０による判定の結果を示す情報Ｊを生成して出力するものである。例えば、判定部１４０は、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄから読み出されたパターンデータが特定のパターンデータＰＤと一致しない場合、メモリ２００の動作に異常がある旨（パターンデータが一致しない旨）の情報Ｊを出力する。
【００２８】
メモリ２００は、本来的には制御装置（１００）の演算結果ＲＡを記憶するためのものであり、例えばスタティックランダムアクセスメモリ（ＳＲＡＭ：Static Random Access Memory）である。ただし、この例に限定されず、書き込みおよび読み出し可能であることを限度に、メモリ２００として例えば不揮発性メモリ等の任意の記憶デバイスを用いることができる。
【００２９】
本実施形態では、メモリ２００は、メモリセルアレイからなる記憶領域２０５を備えている。なお、図１の例では、説明の便宜上、記憶領域２０５はアドレス空間により表現されている。即ち、図１において、記憶領域２０５の上端部がメモリ２００の全記憶領域の先頭アドレスに対応し、記憶領域２０５の下端部が最終アドレスに対応し、記憶領域２０５の上端部から下端部に向けてアドレスが順次的に増加するようにアドレス空間が記憶領域２０５に割り付けられている。
【００３０】
記憶領域２０５は、演算結果ＲＡ等のデータを記憶するために使用される使用領域２１０と、データの記憶に使用されない残りの記憶領域２２０（以下、「不使用領域２２０」と称す。）とから構成される。ここで、使用領域２１０は、上記の特定のパターンデータＰＤを記憶するための複数の領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄと、演算結果ＲＡを記憶するための記憶領域２１２Ａ，２１２Ｂ，２１２Ｃとから構成される。以下では、動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの各領域を総じて「動作確認用の記憶領域２１１」と称し、演算結果記憶用の記憶領域２１２Ａ，２１２Ｂ，２１２Ｃの各領域を総じて「演算結果記憶用の記憶領域２１２」と称す。本実施形態では、使用領域２０５のうち、演算結果記憶用の記憶領域２１２を除いた残りの領域が動作確認用の記憶領域２１１として設定される。
【００３１】
[動作の説明]
次に、本実施形態によるメモリの動作確認装置１００の動作を説明する。
図２は、本実施形態による動作確認装置１００の動作の流れの一例を示すフローチャートである。
図２のフローにおいて、最初に、使用領域設定部１１０は、メモリの２００の全記憶領域である記憶領域２０５のうち、演算結果ＲＡ等の各種のデータを記憶するために使用するメモリ２００の使用領域２１０を設定する（ステップＳ１）。
【００３２】
ここで、図３を参照して、使用領域設定部１１０による使用領域２１０の設定手順を詳細に説明する。
図３は、本実施形態によるメモリの動作確認装置１００の動作の流れの詳細を示すフローチャートであり、メモリ２００の使用領域２１０の設定手順の流れを示す。
事前に、例えばオペレータやシステム設計者等により、演算結果ＲＡの実データをメモリ２００に記憶するために使用するデータブロック数が設定（設計）される（ステップＳ１１）。本実施形態では、オペレータ等により上記データブロック数が事前に設定されるものとするが、そのデータブロック数の設定値は、例えば動作確認装置１００のＣＰＵにより、演算結果ＲＡの演算処理の状況に応じて適宜変更され得る。
【００３３】
使用領域設定部１１０は、オペレータ等により設定されたデータブロック数に基づいて、演算結果ＲＡの実データを記憶するために使用するメモリ２００の使用容量を算出して設定する（ステップＳ１２）。また、使用領域設定部１１０は、変動猶予係数Ｎ（所定の係数）を選定する（ステップＳ１３）。ここで、変動猶予係数Ｎは、運用中（稼働中）のメモリ２００の使用容量やデータブロック数等の設定の変更をメモリ２００の使用領域２１０に反映させるためのものである。例えば、設計当初は３ブロック分の記憶領域を確保したとしても、運用開始後にシステムの改造や運転状態等の条件の変更によって演算結果ＲＡ等の実データ量が増加し、データブロック数を変更する必要が生じる場合が起こり得るが、変動猶予係数Ｎは、このような場合に備えて予め記憶領域に余裕を設けるためのものである。本実施形態では、変動猶予係数Ｎは、演算結果ＲＡ等のデータ量が増加した場合に備えて、１．２〜２．０の数値範囲の値に選定される。ただし、この例に限定されることなく、Ｎの数値範囲は、演算結果ＲＡ等のデータ量の変動に応じて任意に選定し得る。
【００３４】
続いて、使用領域設定部１１０は、運用中のメモリ２００の使用容量の設定変更が多い場合（ステップＳ１４：ＹＥＳ）、変動猶予係数Ｎとして選定された１．２〜２．０の数値範囲のうち、１．５〜２．０の範囲に属する値（例えば１．７）を変動猶予係数Ｎとして設定する（ステップＳ１５）。これに対し、運用中のメモリ２００の使用容量の変更が少ない場合（ステップＳ１４：ＮＯ）、使用領域設定部１１０は、変動猶予係数Ｎとして選定された１．２〜２．０の数値範囲のうち、１．２〜１．５の範囲に属する値（例えば１．３）を変動猶予係数Ｎとして設定する（ステップＳ１６）。なお、本実施形態では、メモリ２００の使用容量の設定変更が多いか否かの二択による場合分けを行うが、変動猶予係数Ｎとして選定された１．２〜２．０の数値範囲を３つ以上の範囲に区分して三択以上の場合分けを行ってもよい。
【００３５】
ここで、上述の１．２〜１．５の範囲および１．５〜２．０の範囲の値うち、変動余裕係数Ｎとして設定される値は、オペレータ等により運転条件（使用条件）に応じて予め選択される。例えば、変動余裕係数Ｎとして選択される各範囲に属する値は、使用するメモリ２００の全体容量と実際に使用する容量（設計容量）と１ブロックの容量とを基準として選択される。例えば、メモリ２００の使用容量の設定変更の頻度が多く、データ量の変動もが多いと予測される場合、変動余裕係数Ｎは、１．５〜２の数値範囲から選択される。一例として、メモリ２００の全記憶容量が１ＭＢであり、使用する記憶容量が６００ＫＢであれば、変動余裕係数Ｎとして最大でも約１．６が選択される。この場合、全記憶容量の１ＭＢである１ＭＢのうちの９６０ＫＢが使用領域として設定される。このように、上述のステップＳ１５およびステップＳ１６のそれぞれにおいて、変動余裕係数Ｎは、各種条件に応じて各数値範囲の中から予め適切に選択された値に設定される。
【００３６】
続いて、使用領域設定部１１０は、前述のステップＳ１２で算出したメモリ２００の使用容量に対し、上述のステップＳ１５またはステップＳ１６において設定した変動猶予係数Ｎを乗算し、その乗算により得られた値をメモリ２００の全容量から減算する（ステップＳ１７）。即ち、使用領域設定部１１０は、「（メモリ２００の全容量）−（使用容量）×（変動猶予係数Ｎ）」を演算する。この演算により得られた値は、メモリ２００の全記憶容量のうち、データの記憶に使用されない記憶容量（以下、「不使用容量」と称す。）を表す。
【００３７】
続いて、使用領域設定部１１０は、上述の演算により算出された不使用容量に基づいて、演算結果ＲＡ等を記憶するために使用するメモリ２００の使用領域２１０を設定する（ステップＳ１８）。ここで、本実施形態では、演算結果ＲＡをメモリ２００に記憶する場合、メモリ２００の先頭アドレスから順に記憶する。この場合、演算結果ＲＡの記憶に使用する使用領域２１０のアドレス空間は、演算結果ＲＡの記憶に使用されない不使用領域２２０のアドレス空間の前に位置し、不使用領域２２０の先頭アドレスは、使用領域２１０と不使用領域２２０との境界を示すアドレスとして取り扱うことができる。
【００３８】
そこで、本実施形態では、使用領域設定部１１０は、不使用領域２２０の先頭アドレスを、使用領域２１０と不使用領域２２０との間の境界を表す境界アドレスとして設定し、この境界アドレスによりメモリ２００の使用領域２１０を背理的に設定する。換言すれば、使用領域２１０は、不使用領域２２０の先頭アドレスよりも前のアドレス空間、即ち、不使用領域２２０の先頭アドレスよりも値の小さいアドレスからなるアドレス空間により規定される。ただし、この例に限定されず、例えば、使用領域２１０の最終アドレスを、上記境界アドレスとしてもよく、演算結果ＲＡ等のデータの記憶に必要な記憶領域２１０を確保しつつ、その使用領域２１０を記憶領域２０５よりも小さい領域に設定し得ることを限度として、上記境界アドレスは任意に設定することができる。以上により、メモリ２００の使用領域２１０が設定される。
【００３９】
説明を図２のフローに戻す。上述のように使用領域設定部１１０によりメモリ２００の使用領域２１０が設定されると、記憶領域設定部１２０は、動作確認用の特定のパターンデータＰＤを記憶するための記憶領域２１１の個数Ｋ（Ｋは正の整数）を決定し、使用領域２１０の全体にわたって動作確認用のＫ個の記憶領域２１１を分散させて配置する（ステップＳ２）。本実施形態では、記憶領域２１１の個数Ｋは、上述のデータブロック数に「１」を加算した値に設定される。図１の例では、ブロック数は「３」であるから、記憶領域２１１の個数Ｋは「４」（＝３＋１）に設定される。これにより、演算結果記憶用の記憶領域２１２のそれぞれに着目すれば、その両側に動作確認用の記憶領域２１１が配置されることになる。記憶領域設定部１１０は、記憶領域２１０の全体にわたって、４個の動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを分散させて配置する。具体的には、記憶領域設定部１１０は、動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄにアドレスを割り当てる。本実施形態では、動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの各記憶容量は４バイト（２４ビット）であるものとするが、この例に限定されず、動作確認用の特定のパターンデータＰＤのデータ量に応じて各記憶領域の記憶容量を定めればよい。分散された複数の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの各先頭アドレスは、一例として、「０ｘａ８００００５０」、「０ｘａ８００００５４」，…のようなアドレスに設定される。
【００４０】
なお、動作確認用の記憶領域２１１の個数Ｋは、例えば、必要とする動作確認の精度に応じて設定されてもよい。具体的には、記憶領域設定部１２０は、高い動作確認の精度を必要とする場合、Ｋを大きい値に設定し、低い精度で足りる場合は、Ｋを小さい値に設定する。通常、演算結果ＲＡの実データ量が増加すれば、使用領域２１０に記憶されたデータに異常が発生する確率が高くなる傾向を示すので、高い精度で動作確認を行う必要がある。逆に、演算結果ＲＡの実データ量が減少すれば、使用領域２１０に記憶されたデータに異常が発生する確率が低くなる傾向を示すので、低い精度で足りる。従って、Ｋは、使用環境が一定であれば、使用領域２１０に記憶される実データ量に応じて決定されると言い換えることができる。Ｋと実データ量との対応関係は、実験やシミュレーション等から事前に求めることができる。ただし、この例に限定されず、メモリの動作確認の精度を改善することを限度として、個数Ｋの設定方法は任意である。
【００４１】
続いて、オペレータは、動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの書き込みおよび読み出しを実施するための複数の異なるアクセス手順を事前に設定する（ステップＳ３）。この例では、記憶領域２１１Ａから記憶領域２１１Ｄに向けて「上から順次アクセス」を行う第１アクセス手順と、記憶領域２１１Ｄから記憶領域２１１Ａに向けて「下から順次アクセス」を行う第２アクセス手順と、記憶領域２１１Ａから記憶領域２１１Ｄに向けて「上から１つおきにアクセス」を行う第３アクセス手順と、記憶領域２１１Ｄから記憶領域２１１Ａに向けて「下から１つおきにアクセス」を行う第４アクセス手順とを設定する。だたし、この例に限定されず、メモリの動作確認を可能とすることを限度として、アクセス手順は任意である。
【００４２】
続いて、書き込み読み出し部１３０は、動作確認用の特定のパターンデータＰＤの書き込み及び読み出しを開始する（ステップＳ４）。即ち、書き込み読み出し部１３０は、記憶領域設定部１２０により設定された４個の動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄに対し、定周期で動作確認用の特定のパターンデータＰＤの書き込み及び読み出しを順次的に実施する（ステップＳ５〜Ｓ７）。本実施形態では、書き込み読み出し部１３０は、動作確認用の特定のパターンデータＰＤとして、「０ｘ５５５５５５５５」（＝０１０１ ０１０１ ０１０１ ０１０１ ０１０１ ０１０１ ０１０１ ０１０１）またはその反転パターンデータ「０ｘａａａａａａａａ」（＝１０１０ １０１０ １０１０ １０１０ １０１０ １０１０ １０１０ １０１０）を書き込む。ただし、この例に限定されず、メモリの動作確認を可能とすることを限度として、特定のパターンデータＰＤは任意である。
【００４３】
また、本実施形態では、書き込み読み出し部１３０は、ランダムに決定された順番に従って、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄに対し定周期で動作確認用の特定のパターンデータＰＤの書き込み及び読み出しを順次的に実施する。ここで、上記の「定周期」は、演算結果ＲＡを算出するための演算周期（以下、「制御周期」と称す。）を意味する。本実施形態では、書き込み読み出し部１３０は、１制御周期において、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの中の１つの記憶領域に対して動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しを実施する。一例として、１制御周期は例えば１秒であり、１制御周期における動作確認のための処理に要する時間は、１制御周期の半分から３分の１程度である。従って、この場合、動作確認のための処理に要する１制御周期あたりの時間は例えば５００ミリ秒程度である。
【００４４】
また、本実施形態では、上記のランダムに決定された順番は、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの書き込みおよび読み出しを実施するための上述の複数の異なる所定の第１アクセス手順から第４アクセス手順の中から、後述の乱数ｎを用いてランダムに決定されたアクセス手順で規定された順番である。例えば、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの中からランダムに決定された手順が第２アクセス手順であれば、上記のランダムに決定された順番は、記憶領域２１１Ｄから記憶領域２１１Ａに向けて「下から順次アクセス」を行うときの順番、即ち、「記憶領域２１１Ｄ→記憶領域２１１Ｃ→記憶領域２１１Ｂ→記憶領域２１１Ａ」なるアクセス順番を意味する。
【００４５】
また、本実施形態では、書き込み読み出し部１３０は、例えばＯＳ(Operatrion System)が備えるランダム関数を用いて、「１」から「４」までの値をとる乱数ｎを発生させ、この乱数ｎを用いて、第１アクセス手順から第４アクセス手順の中から一つのアクセス手順を決定する（ステップＳ５）。現在の制御周期で決定された乱数ｎは「１」であるものとする。書き込み読み出し部１３０は、乱数ｎの値を判定し（ステップＳ６）、乱数ｎが「１」である場合（ステップＳ６：ｎ＝１）、第１アクセス手順に従って、記憶領域２１１Ａから記憶領域２１１Ｄに向けて順次アクセスを行い、これらの各記憶領域に対して動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しを順次的に実施する（ステップＳ７Ａ）。なお、乱数ｎが「２」、「３」、「４」であれば（ステップＳ６：ｎ＝２，ｎ＝３，ｎ＝４）、それぞれ、第２アクセス手順、第３アクセス手順、第４アクセス手順に従って、各記憶領域に対して動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しを順次的に実施する（ステップＳ７Ｂ，Ｓ７Ｃ，Ｓ７Ｄ）。
【００４６】
ここで、前述したように、本実施形態では、１制御周期で、１つの記憶領域に対する書き込みおよび読み出しを実施するので、現在の制御周期では、書き込み読み出し部１３０は、第１アクセス手順（ｎ＝１）で規定される最初のアクセス対象である記憶領域２１１Ａに対して特定のパターンデータＰＤの書き込みと読み出しを実施する。この場合、書き込み読み出し部１３０は、動作確認用の特定のパターンデータＰＤとして、「０ｘ５５５５５５５５」を書き込んで読み出すものとする。
【００４７】
続いて、判定部１４０は、書き込み読み出し部１３０により記憶領域２１１Ａから読み出されたパターンデータ（出力データＤＯＵＴ）が動作確認用の特定のパターンデータＰＤと一致するか否かを判定する（ステップＳ８）。本実施形態では、判定部１４０は、書き込み読み出し部１３０によって決定された順番と同じ順番に従って特定される記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの中の一つの記憶領域２１１Ａから読み出されたパターンデータ（出力データＤＯＵＴ）が動作確認用の特定のパターンデータＰＤと一致するか否かを判定する。
【００４８】
続いて、判定結果出力部１５０は、判定部１４０による判定結果が、パターンデータの不一致を示す場合、即ち、メモリの動作に異常がある場合（ステップＳ８：ＹＥＳ）、この判定結果を示す情報Ｊを生成して出力する（ステップＳ９）。これに対し、判定部１４０による判定結果が、パターンデータの一致を示す場合、即ち、メモリの動作に異常がない場合（ステップＳ８：ＮＯ）、この判定結果を示す情報Ｊは生成されない。このように、本実施形態では、パターンデータが一致せず、メモリの動作に異常がある場合に、その旨を示す情報Ｊが出力される。ただし、この例に限定されず、メモリの動作に異常がない旨の情報Ｊを生成して出力してもよい。
【００４９】
続いて、Ｋ個（Ｋ＝４）の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの全てについて特定のパターンデータＰＤの書き込みおよび読み出しを実施したか否かが判定される（ステップＳ１０）。ここで、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの全てについて特定のパターンデータＰＤの書き込みおよび読み出しを実施し終えていなければ（ステップＳ１０：ＮＯ）、現在の制御周期で決定された乱数ｎによって特定されるステップＳ７Ａに処理を戻し、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの全てについて特定のパターンデータＰＤの書き込みおよび読み出しを実施し終えるまで、ステップＳ７Ａ〜Ｓ８〜Ｓ９〜Ｓ１０：ＮＯの処理が繰り返し実行される。
【００５０】
本実施形態では、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの全てについて特定のパターンデータＰＤの書き込みおよび読み出しを実施し終えた場合（ステップＳ１０：ＹＥＳ）、４制御周期にわたるアクセス手順（ｎ＝１）に従った特定のパターンデータＰＤの書き込みおよび読み出しは完結し、処理はステップＳ５に戻され、新たに乱数ｎが決定される。そして、新たな乱数ｎによって特定される新たなアクセス手順（第１アクセス手順から第４アクセス手順の中の何れかのアクセス手順）に従った順番で同様の処理が実施され、４制御周期にわたって記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄに対する書き込みおよび読み出しが順次的に実施される（ステップＳ５〜Ｓ１０）。
【００５１】
ただし、新たな乱数ｎを用いた制御周期では、書き込み読み出し部１３０は、動作確認用の特定のパターンデータＰＤとして、前回の制御周期で書き込んだパターンデータ「０ｘ５５５５５５５５」（＝０１０１ ０１０１ ０１０１ ０１０１ ０１０１ ０１０１ ０１０１ ０１０１）の「０」と「１」を入れ替えた反転パターンデータ「０ｘａａａａａａａａ」（＝１０１０ １０１０ １０１０ １０１０ １０１０ １０１０ １０１０ １０１０）を書き込む。これにより、ビットデータが「０」に固定される場合の異常動作と、ビットデータが「１」に固定される場合の異常動作を識別することができる。
【００５２】
上述の一連の処理により、Ｋ個（Ｋ＝４）の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの全てについて、動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しが実施される。そして、パターンデータが一致しない場合には異常がある旨の情報Ｊが出力される。この情報Ｊから、オペレータは、メモリ２００の動作が異常であることを確認することができる。
【００５３】
上述した第１実施形態によれば、メモリ２００の全記憶領域２０５のうち、使用領域２１０についてのみ動作確認を実施するので、全記憶領域２０５について動作確認を実施する場合に比較して、その動作確認に要する時間を低減することができる。また、使用領域２１０に満遍なく動作確認用の複数の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを設定し、これらの記憶領域の動作確認をランダムな順番で実施するので、無停止運転中の制御装置（１００）の稼働中に、この制御装置によりアクセスされるメモリ２００の使用領域２１０の動作確認を精度よく実施することができる。従って、第１実施形態によれば、無停止運転中の装置によりアクセスされるメモリの動作確認の精度を維持しつつ、その動作確認に要する時間を抑制することができる。
【００５４】
また、本実施形態によれば、メモリ２００の使用領域２１０の一部の領域に動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを設定するので、動作確認用のメモリを別途備える必要がない。従って、装置構成を簡略化し、装置コストを低減することが可能になる。
更に、本実施形態によれば、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄに対してランダムな順番で時分割により書き込みおよび読み出しを実施するので、動作確認のための処理の負荷を軽減することが可能になり、その処理を高速化することが可能になる。
【００５５】
なお、上述の第１実施形態では、動作確認のための処理の周期は、演算結果ＲＡの演算処理の制御周期と同じものとしているが、この例に限定されず、動作確認のための処理の周期は、演算結果ＲＡの演算処理の制御周期と異なってもよい。
また、上述の第１実施形態では、４個の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄに対して動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しを実施するものとしたが、最初の制御周期で書き込みと読み出しを行い、その後の制御周期では、読み出しのみを実施してもよい。
更に、上述の第１実施形態では、特定のパターンデータＰＤの記憶領域として４個の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを使用領域２１０に設定したが、この例に限定されず、特定のパターンデータＰＤの記憶領域として１個の記憶領域のみを設定してもよく、この個数は任意である。
【００５６】
（第２実施形態）
次に、図４を参照して、本発明の第２実施形態を説明する。
上述の第１実施形態では、図１の構成において、書き込み読み出し部１３０が、乱数ｎを用いてアクセス手順を決定したが、本実施形態では、書き込み読み出し部１３０が、乱数ｎを用いて、Ｋ個（Ｋ＝３）の記憶領域２１１Ａ、２１１Ｂ，２１１Ｃ，２１１Ｄの中の一つを制御周期ごとに決定し、決定された記憶領域に対して動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しを実施する。その他の構成は、第１実施形態と同様である。
【００５７】
図４は、本発明の第２実施形態によるメモリの動作確認装置の動作の流れの一例を示すフローチャートである。図４に示すフローチャートは、上述の第１実施形態による図２のフローチャートにおいて、ステップＳ７Ａ〜Ｓ７Ｄに代えて、ステップＳ７ａを備える。また、図４に示すフローチャートでは、上述の第１実施形態による図２のフローチャートにおけるステップＳ３およびステップＳ１０は削除されている。その他については、図４のフローチャートは図２のフローチャートと同様である。
【００５８】
ここでは、本実施形態の特徴部であるステップＳ７ａ以降の処理について説明する。
前述したように、前述のステップＳ５において乱数ｎが決定されると、書き込み読み出し部１３０は、記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄのうち、乱数ｎで特定されるｎ番目の一つの記憶領域に対して動作確認用の特定のパターンデータＰＤの書き込みおよび読み出しを実施する（ステップＳ７ａ）。本実施形態では、乱数ｎは、記憶領域の個数Ｋに対応して、「１」から「４」の範囲の値をとるものとし、乱数ｎが「１」であれば、１番目の記憶領域２１１Ａが特定され、乱数ｎが「２」であれば、２番目の記憶領域２１１Ｂが特定され、乱数ｎが「３」であれば、３番目の記憶領域２１１Ｃが特定され、乱数ｎが「４」であれば、４番目の記憶領域２１１Ｄが特定される。現在の制御周期では、乱数ｎは「１」であるものとし、書き込み読み出し部１３０は、この乱数ｎ（ｎ＝１）によって特定される１番目の記憶領域２１１Ａに対して特定のパターンデータＰＤの書き込みおよび読み出しを実施する。
【００５９】
続いて、判定部１４０は、書き込み読み出し部１３０により記憶領域２１１Ａからそれぞれ読み出されたパターンデータ（出力データＤＯＵＴ）が動作確認用の特定のパターンデータＰＤと一致するか否かを判定する（ステップＳ８）。続いて、判定結果出力部１５０は、判定部１４０による判定結果が、パターンデータの不一致を示す場合、即ち、メモリの動作に異常がある場合（ステップＳ８：ＹＥＳ）、この判定結果を示す情報Ｊを生成して出力する（ステップＳ９）。これに対し、判定部１４０による判定結果が、パターンデータの一致を示す場合、即ち、メモリの動作に異常がない場合（ステップＳ８：ＮＯ）、この判定の結果を示す情報Ｊは生成されない。この後、処理はステップＳ５に戻され、新たに乱数ｎが決定される。そして、新たな乱数ｎによって特定される新たな記憶領域に対する書き込みおよび読み出しが実施される（ステップＳ５〜Ｓ１０）。
【００６０】
本実施形態によれば、上述の第１実施形態に比較して、アクセス手順を決定しないので、動作確認の処理を簡略化することができ、その処理の負荷を軽減することができる。従って、動作確認のための処理をいっそう高速化することが可能になる。
なお、上述した各実施形態では、記憶領域設定部１２０は、使用領域２１０の全体にわたって、４個の動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄを分散させて配置するものとしたが、ここで言う「全体」は、使用領域２１０の全体（使用領域２１０の全アドレス空間）でもよいし、使用領域２１０のうち、実際に使用する記憶領域を「全体」として定義してもよい。即ち、実際に使用する記憶領域を含むことを限度として、「全体」をどのように定義してもよい。また、記憶領域２１１を「全体にわたって分散させる」とは、記憶領域２１０の全アドレス空間を動作確認用の記憶領域２１１に割り付けることを意味するものではなく、動作確認用の記憶領域２１１が記憶領域２１０の全体にわたって分布することを意味する。
【００６１】
（変形例）
次に、上述した第１実施形態および第２実施形態の変形例を説明する。
図５は、本発明の第１実施形態および第２実施形態の変形例を説明するための説明図である。同図において、通常運転用の制御装置１００Ａおよび待機用の制御装置１００Ｂは、冗長化システム（二重化システム）を構成する。ここで、通常運転用の制御装置１００Ａは、入力データ（図示なし）に基づいて上述の制御に関する演算処理を実行し、その演算結果をメモリ２００Ａに出力するものであり、故障が発生しない限り通常的に運転される。
【００６２】
また、待機用の制御装置１００Ｂは、通常運転用の制御装置１００Ａによる演算処理と並行して、制御装置１００Ａによる演算処理と同等の演算処理を実行し、その演算結果をメモリ２００Ｂに出力するものである。待機用の制御装置１００Ａは、通常運転用の制御装置１００Ａが故障したときに、この制御装置１００Ａに代わって運転される。本実施形態では、冗長化システムを構成する制御装置１００Ａおよび制御装置１００Ｂは、上述の第１実施形態または第２実施形態による動作確認装置１００の機能を備える。
【００６３】
メモリ２００Ａおよびメモリ２００Ｂは、制御装置１００Ａおよび制御装置１００Ｂによって共有される共有メモリであり、第１実施形態および第２実施形態のメモリ２００に相当する。本変形例では、制御装置１００Ａおよび制御装置１００Ｂのそれぞれは、メモリ２００Ａおよびメモリ２００Ｂの両方をアクセスして演算結果を記憶させる。ただし、制御装置１００Ａおよび制御装置１００Ｂが同時に２００Ａおよびメモリ２００Ｂの両方をアクセスするのではなく、通常運転時には制御装置１００Ａがメモリ２００Ａおよびメモリ２００Ｂをアクセスし、運転が待機用の制御装置１００Ｂに切り替わった場合には、制御装置１００Ｂがメモリ２００Ａおよびメモリ２００Ｂをアクセスする。
【００６４】
本変形例によれば、上述の第１実施形態および第２実施形態の動作確認装置１００と同様に、通常運転用の制御装置１００Ａまたは待機用の制御装置１００Ｂが、装置稼働中にメモリ２００Ａおよびメモリ２００Ｂの動作確認を実施することができる。従って、制御装置１００Ａに不具合が生じた場合のみならず、共有メモリ２００Ａに不具合が生じた場合にも、制御に支障をきたすことなく、無停止運転が可能になる。
【００６５】
上述した本発明の実施形態および変形例では、本発明をメモリの動作確認装置として表現したが、本発明は、メモリの動作確認方法として表現することもできる。この場合、本発明によるメモリの動作確認方法は、無停止運転される装置の出力データを記憶するためのメモリの動作を確認する動作確認方法であって、前記メモリに記憶される前記出力データのデータ量に応じて、前記出力データを記憶するために使用する使用容量を決定し、前記使用容量に基づいて前記メモリの使用領域を設定する第１段階と、前記第１段階により設定された前記使用領域に、動作確認用の特定のパターンデータを記憶するための動作確認用の記憶領域を設定する第２段階と、前記第２段階により設定された前記動作確認用の記憶領域に対し、定周期で前記特定のパターンデータの書き込み及び読み出しを実施する第３段階と、前記第３段階により前記動作確認用の記憶領域から読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する第４段階と、前記第４段階による判定の結果を示す情報を生成して出力する第５段階と、を含むメモリの動作確認方法として表現することができる。ここで、例えば、前記書き込み読み出し段階では、ランダムに決定された順番に従って、前記複数の記憶領域に対し順次的に前記特定のパターンデータの書き込み及び読み出しを実施し、前記判定段階では、前記順番に従って特定される前記複数の記憶領域の中の一つから読み出されたパターンデータが前記特定のパターンデータと一致するか否かを判定する。
【００６６】
以上、本発明の実施形態を説明したが、本発明は上述の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変形、変更、修正、置換等が可能である。
例えば、上述の実施形態では、メモリ２００の記憶領域２０５の一部に使用領域２１０を設定し、この使用領域２１０を動作確認の対象としたが、この例に限定されず、電源投入時には、算結果ＲＡのデータ量にかかわらず、メモリ２００の記憶領域２０５の全域を使用領域２１０として設定して動作確認を実施し、その後の制御周期において、上述の各実施形態において説明したように、演算結果ＲＡのデータ量に応じて使用領域２１０を設定し直して動作確認を実施してもよい。
【００６７】
また、例えば、上述の実施形態では、図１の記憶領域２０５の上端部から下端部に向けてアドレスが順次的に増加するようにアドレス空間が記憶領域２０５に割り付けられているものとし、動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの各記憶領域は１つのブロックとして表現されているが、例えば、記憶領域２０５のアドレス空間を論理変換することにより、動作確認用の記憶領域２１１Ａ，２１１Ｂ，２１１Ｃ，２１１Ｄの各記憶領域と、演算結果記憶用の記憶領域２１２Ａ，２１２Ｂ，２１２Ｃの各記憶領域とが物理的に混在するように配置することもできる。この場合、動作確認の精度をいっそう向上させることが可能になる。
【００６８】
また、上述の実施形態では、使用領域２１０のアドレス空間は不使用領域２２０の前であるものとしたが、この例に限定されず、使用領域２１０のアドレス空間は不使用領域２２０の後であってもよく、また、使用領域２１０と不使用領域２２０とを識別し得ることを限度として、使用領域２１０のアドレス空間と不使用領域２２０のアドレス空間が混在していてもよい。
【符号の説明】
【００６９】
１００，１００Ａ，１００Ｂ…制御装置（メモリの動作確認装置）、１１０…使用領域設定部、１２０…記憶領域設定部、１３０…書き込み読み出し部、１４０…判定部、１５０…判定結果出力部、２００，２００Ａ，２００Ｂ…メモリ、２０５…記憶領域、２１０…使用領域、２１１Ａ〜２１１Ｄ…動作確認用の記憶領域、２１２Ａ〜２１２Ｃ…演算結果記憶用の記憶領域、Ｓ１〜Ｓ６，Ｓ７Ａ〜Ｓ７Ｄ，Ｓ７ａ，Ｓ８〜Ｓ１０，Ｓ１１〜Ｓ１８…処理ステップ。
【図１】
2014127064.tif 000003
【図２】
2014127064.tif 000004
【図３】
2014127064.tif 000005
【図４】
2014127064.tif 000006
【図５】
2014127064.tif 000007
【図６】
2014127064.tif 000008