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