(57)【要約】      （修正有）【課題】予め設定される制御周期内のアプリケーション実行後の合間時間を使用してメモリの故障診断が最小時間で行え、診断対象領域のメモリ全ての故障診断時間が最小となるようにしたメモリ故障診断装置、メモリ故障診断方法を提供する。【解決手段】メモリの領域は、診断領域４１と、非診断領域４２と、を備え、診断領域は、夫々の領域が重ならない複数のRow領域に分割され、更に、夫々のRow領域は、夫々が重ならない複数のCell領域に分割され、メモリ故障診断方法は、Row領域内の１のCell領域の全ての組み合わせのCell領域間について診断するRow領域内診断ステップと、診断領域内の１組のRow領域の全ての組み合わせのRow領域間について診断するRow領域間診断ステップと、の２階層での診断とし、Row領域サイズは、Row領域内診断時間とRow領域間診断時間とが等しくなるようなサイズとしたことを特徴とする。【選択図】図１
2014071770.tif 000002
【特許請求の範囲】
【請求項１】
予め設定される制御周期内のアプリケーション実行後の合間時間を使用してメモリの故
障を診断するメモリ故障診断方法であって、
前記メモリの領域は、予め設定される診断対象となる診断領域と、前記アプリケーション
及び前記メモリ故障診断で使用しない診断対象以外の非診断領域と、
を備え、
前記診断領域は、夫々の領域が重ならない複数のRow領域に分割され、更に、夫々の前記R
ow領域は、夫々が重ならない複数のCell領域に分割され、前記Cell領域は前記メモリのデ
ータバス幅サイズ、バイトサイズ及びワードサイズ、及び、バイトサイズ及びワードサイ
ズの整数倍のいずれかのサイズで構成し、
前記Row領域サイズは、前記Cell領域サイズの整数倍以上で、且つ、前記診断領域の１／
２以下で、且つ、前記Row領域内診断時間と前記Row領域間診断時間とが等しくなるような
サイズに設定し、
前記メモリ故障診断方法は、前記Row領域内の１組の前記Cell領域の全ての組み合わせに
ついて診断するRow領域内診断ステップと、
前記診断領域内の１組の前記Row領域の全ての組み合わせについて診断するRow領域間診断
ステップと、を備え、
前記Row領域内診断ステップは、前記制御周期でのアプリケーションの実行が終了したタ
イミングで、予め設定される１組の前記Cell領域のデータを前記非診断領域に待避させる
ステップと、
１組の前記Cell領域について、同じビット位置のパターンが互いに反転の関係となる組み
合わせ４種を書き込んで生成し、書き込む毎に当該Cell領域のデータを読み出して、１組
の当該Cell領域の値を比較してこの値が期待値であるか否かを判定するステップと、
比較の結果が期待値である場合、当該１組Cell領域に前記退避領域に退避させたデータを
書き戻すステップと、
比較の結果が期待値で無い場合、当該１組のCell領域が「故障」と判定するステップと、
とから構成され、
前記Row領域間診断ステップは、前記制御周期でのアプリケーションの実行が終了したタ
イミングで、且つ、予め設定される前記Row領域の１組のデータを前記非診断領域に待避
させるステップと、
１組の前記Row領域について、同じビット位置のパターンが互いに反転の関係となる組み
合わせ４種を書き込んで生成し、書き込む毎に当該Row領域のデータを読み出し、１組の
当該Row領域の値を比較してこの値が期待値であるか否かを判定するステップと、
比較の結果が期待値である場合、当該１組のRow領域に前記退避領域に退避させたデータ
を書き戻すステップと、
比較の結果が期待値で無い場合、当該１組のRow領域が「故障」と判定するステップと、
とから構成されることを特徴とするメモリ故障診断方法。
【請求項２】
前記Row領域のサイズは、予め設定される前記Row領域内診断の許容診断時間から、下記
、（数１）で与えられることを特徴とする請求項１に記載のメモリ故障診断方法。
【数１】
2014071770.tif 000009
【請求項３】
前記Row領域のサイズ範囲は、下記（数２）で与えられることを特徴とする請求項１に
記載のメモリ故障診断方法。
【数２】
2014071770.tif 000010
【請求項４】
前記Row領域のサイズは、前記メモリの物理アドレスにおける行アドレスの幅サイズで
設定されることを特徴とする請求項１記載のメモリ故障診断方法。
【請求項５】
前記Row領域のサイズは、前記メモリの物理アドレスにける各行アドレスについて、列
方向には先頭のCell領域の１個分のみを当該Row領域とし、前記Row 領域間診断は、行方
向のアクセスを（Row領域サイズ／Cell領域サイズ）数分、削減するようにした請求項１
に記載のメモリ故障診断方法。
【請求項６】
前記合間時間は、アプリケーションの実行時間が固定ならば固定値として設定し、
当該アプリケーションの実行時間が可変の場合には、アプリケーションが終了する毎に求
め、
さらに、前記Row 領域内診断時及び前記Row 領域間診断時には、前記４種の組み合わせの
パターンデータの診断サイクルにおいて、その１つの組み合わせパターンデータでの診断
が終了する毎に残りの合間時間を求め、
残合間時間が予め定める診断時間以下となった場合には、次の組み合わせでの診断を一次
中断してその診断シーケンス番号を記憶し、
次の制御周期では、前記アプリケーションが終了した時点で、次の診断シーケンス番号か
ら診断を開始するようにした請求項１に記載のメモリ故障診断方法。
【請求項７】
予め設定される制御周期内のアプリケーション実行後の合間時間を使用してメモリの故
障を診断するメモリ故障診断装置において、
前記メモリの領域は、予め設定される診断対象となる診断領域と、前記アプリケーション
及び前記メモリ診断で使用しない診断対象以外の非診断領域と、
を備え、
前記診断領域は、夫々の領域が重ならない複数のRow領域に分割し、更に、夫々の前記Row
領域は、夫々が重ならない複数のCell領域に分割し、前記Cell領域は前記メモリのデータ
バス幅サイズ、バイトサイズ、ワードサイズ、バイトサイズ及びワードサイズの整数倍の
サイズのいずれかのサイズで構成し、
前記Row領域サイズは、前記Cell領域サイズの整数倍以上で、且つ、前記診断領域の１／
２以下で、且つ、前記Row領域内診断時間と前記Row領域間診断時間とが等しくなるような
サイズに設定し、
前記メモリ故障診断装置は、前記Row領域内の１組の前記Cell領域の全ての組み合わせに
ついて診断するRow領域内診断手段と、
前記診断領域内の１組の前記Row領域の全ての組み合わせについて診断するRow領域間診断
手段と、を備え、
前記Row領域内診断手段は、前記制御周期でのアプリケーションの実行が終了したタイミ
ングで、予め設定される１組の前記Cell領域のデータを前記非診断領域に待避させ、
初期化した１組の前記Cell領域について、同じビット位置のパターンが互いに反転の関係
となる組み合わせ４種を書き込んで生成し、書き込む毎に当該Cell領域のデータを読み出
して、１組の当該Cell領域の値を比較してこの値が期待値であるか否かを判定し、
比較の結果が期待値である場合、当該１組Cell領域に前記退避領域に退避させたデータを
書き戻し、
比較の結果が期待値で無い場合、当該１組のCell領域が「故障」と判定し、
前記Row領域間診断手段は、前記制御周期でのアプリケーションの実行が終了したタイミ
ングで、且つ、予め設定される前記Row領域の１組のデータを前記非診断領域に待避させ
、
１組の前記Row領域について、同じビット位置のパターンが互いに反転の関係となる組み
合わせ４種を書き込んで生成し、書き込む毎に当該Row領域のデータを読み出し、１組の
当該Row領域の値を比較してこの値が期待値であるか否かを判定し、
比較の結果が期待値である場合、当該１組のRow領域に前記退避領域に退避させたデータ
を書き戻し、
比較の結果が期待値で無い場合、当該１組のRow領域が「故障」と判定する、
ようにしたことを特徴とするメモリ故障診断装置。
【請求項８】
前記Row領域のサイズは、予め設定される前記Row領域内診断の許容診断時間から、下記
、（数３）で与えられることを特徴とする請求項７に記載のメモリ故障診断装置。
【数３】
2014071770.tif 000011
【請求項９】
前記Row領域のサイズ範囲は、下記（数４）で与えられることを特徴とする請求項７に
記載のメモリ故障診断装置。
【数４】
2014071770.tif 000012
【請求項１０】
前記Row領域のサイズは、前記メモリの物理アドレスにおける行アドレスの幅サイズで
設定されることを特徴とする請求項１記載のメモリ故障診断装置。
【請求項１１】
前記Row領域のサイズは、前記メモリの物理アドレスにける各行アドレスについて、列
方向には先頭のCell領域の１個分のみを当該Row領域とし、前記Row 領域間診断は、行方
向のアクセスを（Row領域サイズ／Cell領域サイズ）数分、削減するようにした請求項７
に記載のメモリ故障診断装置。
【請求項１２】
前記合間時間は、アプリケーションの実行時間が固定ならば固定値として設定し、
当該アプリケーションの実行時間が可変の場合には、アプリケーションが終了する毎に求
め、
さらに、前記Row 領域内診断時及び前記Row 領域間診断時には、前記４種の組み合わせの
パターンデータの診断サイクルにおいて、その１つの組み合わせパターンデータでの診断
が終了する毎に残りの合間時間を求め、
残合間時間が予め定める診断時間以下となった場合には、次の組み合わせでの診断を一次
中断してその診断シーケンス番号を記憶し、
次の制御周期では、前記アプリケーションが終了した時点で、次の診断シーケンス番号か
ら診断を開始するようにした請求項１に記載のメモリ故障診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリ故障診断装置、メモリ故障診断方法に関する。
【背景技術】
【０００２】
例えば、高い安全性を求められるプラントなどの安全計装システムにおいては、システ
ムを制御する制御装置のメモリに対する故障診断が要求される。
【０００３】
安全計装システムは、年単位の長期間、再起動無しの連続稼働が求められるので、メモ
リに対する故障診断は、システムの起動時だけでなく、稼働中においても行う必要がある
。
【０００４】
一般に、故障診断の対象となるメモリの故障には、１つのメモリセルのリード・ライト
（Read/Write）エラーの他に、あるメモリセルをRead/Writeしたときに他のメモリセルの
値が変化するカップリングフォルトがある。
【０００５】
このカップリングフォルトの故障診断アルゴリズムには、Walkpath（Walking Bitとも
言う）やGALPATがある。
【０００６】
Walkpathは、診断対象の全メモリ領域に渡って、１ビットまたは複数ビットの着目メモ
リセルの値をON/OFFしながら、残りのメモリ領域の値が正しいか否かを試験する方法であ
る。
【０００７】
この方法は全メモリ領域のカップリングフォルトの検出が可能であるが、メモリの書き
込み読み出し（Read/Write）回数がメモリサイズの２乗に比例するため、診断対象のメモ
リ容量が大きくなると故障診断時間が加速度的に増大する問題がある。
【０００８】
この問題に対して、メモリ故障診断に要する処理時間を短縮する手法として、メモリの
故障診断領域を階層的に設定して、メモリアクセス回数を減らす手法がある（例えば、特
許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４３１２８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述した特許文献１の方法の場合には、メモリ故障診断中に、診断対象領域以外のメモ
リに対する書き込みを禁止する排他処理を行う必要があるメモリ領域が広いため、排他処
理時間が長くなる問題がある。
【００１１】
即ち、このメモリ診断は、Walkpathによる診断手法で、１つのメモリセルに書き込み、
残りの全領域への影響を確認する手法を取っている。このため、残りの全領域への影響を
確認する処理が終了するまでは、当該領域への書き込みアクセスを禁止する排他処理が必
要となる。
【００１２】
しかし、例えば、安全計装システムでは、制御周期内でアプリケーション処理を実行後
の合間時間を使用してメモリの故障診断をする必要があるため、診断対象領域のメモリサ
イズが大きい場合、このメモリ診断のためのアクセス禁止時間が合間時間より長くなり、
制御周期の複数サイクルに渡って、診断対象領域に対する書き込みを禁止する恐れが出て
くる。
【００１３】
そのため、アプリケーション処理に関する命令及びデータを、予め定めるメモリの退避
領域にコピーし、アプリケーション処理は、退避領域を使用して実行するようにしている
。
【００１４】
さらに、メモリ退避領域へのコピーにも時間を要するため、コピーの間は制御を中断す
るなど、アプリケーション処理の動作を阻害する問題がある。
【００１５】
本発明は上述した問題点を解決するためになされたものであり、予め設定される制御周
期内のアプリケーション実行後の合間時間を使用してメモリの故障診断が最小時間で行え
、診断対象領域のメモリ全ての故障診断時間が最小となるようにしたメモリ故障診断装置
、メモリ故障診断方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本実施形態のメモリ故障診断方法は、予め設定される制御
周期内のアプリケーション実行後の合間時間を使用してメモリの故障を診断するメモリ故
障診断方法であって、前記メモリの領域は、予め設定される診断対象となる診断領域と、
前記アプリケーション及び前記メモリ故障診断で使用しない診断対象以外の非診断領域と
、を備え、前記診断領域は、夫々の領域が重ならない複数のRow領域に分割され、更に、
夫々の前記Row領域は、夫々が重ならない複数のCell領域に分割され、前記Cell領域は前
記メモリのデータバス幅サイズ、バイトサイズ及びワードサイズ、及び、バイトサイズ及
びワードサイズの整数倍のいずれかのサイズで構成し、前記Row領域サイズは、前記Cell
領域サイズの整数倍以上で、且つ、前記診断領域の１／２以下で、且つ、前記Row領域内
診断時間と前記Row領域間診断時間とが等しくなるようなサイズに設定し、前記メモリ故
障診断方法は、前記Row領域内の１組の前記Cell領域の全ての組み合わせについて診断す
るRow領域内診断ステップと、前記診断領域内の１組の前記Row領域の全ての組み合わせに
ついて診断するRow領域間診断ステップと、を備え、前記Row領域内診断ステップは、前記
制御周期でのアプリケーションの実行が終了したタイミングで、予め設定される１組の前
記Cell領域のデータを前記非診断領域に待避させるステップと、１組の前記Cell領域につ
いて、同じビット位置のパターンが互いに反転の関係となる組み合わせ４種を書き込んで
生成し、書き込む毎に当該Cell領域のデータを読み出して、１組の当該Cell領域の値を比
較してこの値が期待値であるか否かを判定するステップと、比較の結果が期待値である場
合、当該１組Cell領域に前記退避領域に退避させたデータを書き戻すステップと、比較の
結果が期待値で無い場合、当該１組のCell領域が「故障」と判定するステップと、とから
構成され、前記Row領域間診断ステップは、前記制御周期でのアプリケーションの実行が
終了したタイミングで、且つ、予め設定される前記Row領域の１組のデータを前記非診断
領域に待避させるステップと、１組の前記Row領域について、同じビット位置のパターン
が互いに反転の関係となる組み合わせ４種を書き込んで生成し、書き込む毎に当該Row領
域のデータを読み出し、１組の当該Row領域の値を比較してこの値が期待値であるか否か
を判定するステップと、比較の結果が期待値である場合、当該１組のRow領域に前記退避
領域に退避させたデータを書き戻すステップと、比較の結果が期待値で無い場合、当該１
組のRow領域が「故障」と判定するステップと、とから構成されることを特徴とする。
【００１７】
上記目的を達成するために、本実施形態のメモリ故障診断装置は、予め設定される制御
周期内のアプリケーション実行後の合間時間を使用してメモリの故障を診断するメモリ故
障診断装置において、前記メモリの領域は、予め設定される診断対象となる診断領域と、
前記アプリケーション及び前記メモリ診断で使用しない診断対象以外の非診断領域と、を
備え、前記診断領域は、夫々の領域が重ならない複数のRow領域に分割し、更に、夫々の
前記Row領域は、夫々が重ならない複数のCell領域に分割し、前記Cell領域は前記メモリ
のデータバス幅サイズ、バイトサイズ、ワードサイズ、バイトサイズ及びワードサイズの
整数倍のサイズのいずれかのサイズで構成し、前記Row領域サイズは、前記Cell領域サイ
ズの整数倍以上で、且つ、前記診断領域の１／２以下で、且つ、前記Row領域内診断時間
と前記Row領域間診断時間とが等しくなるようなサイズに設定し、前記メモリ故障診断装
置は、前記Row領域内の１組の前記Cell領域の全ての組み合わせについて診断するRow領域
内診断手段と、前記診断領域内の１組の前記Row領域の全ての組み合わせについて診断す
るRow領域間診断手段と、を備え、前記Row領域内診断手段は、前記制御周期でのアプリケ
ーションの実行が終了したタイミングで、予め設定される１組の前記Cell領域のデータを
前記非診断領域に待避させ、初期化した１組の前記Cell領域について、同じビット位置の
パターンが互いに反転の関係となる組み合わせ４種を書き込んで生成し、書き込む毎に当
該Cell領域のデータを読み出して、１組の当該Cell領域の値を比較してこの値が期待値で
あるか否かを判定し、比較の結果が期待値である場合、当該１組Cell領域に前記退避領域
に退避させたデータを書き戻し、比較の結果が期待値で無い場合、当該１組のCell領域が
「故障」と判定し、前記Row領域間診断手段は、前記制御周期でのアプリケーションの実
行が終了したタイミングで、且つ、予め設定される前記Row領域の１組のデータを前記非
診断領域に待避させ、１組の前記Row領域について、同じビット位置のパターンが互いに
反転の関係となる組み合わせ４種を書き込んで生成し、書き込む毎に当該Row領域のデー
タを読み出し、１組の当該Row領域の値を比較してこの値が期待値であるか否かを判定し
、比較の結果が期待値である場合、当該１組のRow領域に前記退避領域に退避させたデー
タを書き戻し、比較の結果が期待値で無い場合、当該１組のRow領域が「故障」と判定す
る、ようにしたことを特徴とする。
【図面の簡単な説明】
【００１８】
【図１】第1の実施形態の制御装置のブロック図。
【図２】第1の実施形態の制御装置のその他構成のブロック図。
【図３】アプリケーション処理とメモリ診断処理のタイミングチャート。
【図４】アプリケーション処理とメモリ診断処理のフローチャート。
【図５】メモリの構成図の例
【図６】第１の実施形態のRow領域内診断領域の設定とその動作を説明する図。
【図７】第１の実施形態のRow領域間診断領域の設定とその動作を説明する図。
【図８】第１の実施形態のメモリ診断動作を説明する図。
【図９】第１の実施形態のメモリ診断の中断処理動作を説明する図。
【図１０】テストパターンの例を説明する図。
【図１１】第２の実施形態のRow領域間診断領域の設定とその動作を説明する図。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面を参照して説明する。本実施形態のメモリ故障診
断装置は、アプリケーションを実行するＣＰＵと、ＣＰＵが実行するプログラムやデータ
を記憶するメモリを備えているものであれば良く、アプリケーションが実行する制御対象
はいずれでも良い。
【００２０】
（第１の実施形態）
図１〜図１０を参照して、第１の実施形態について説明する。図１及び図２は、第１の
実施形態を説明するブロック構成図である。メモリ故障診断装置１０は、ＣＰＵ２０と、
メモリ４０と、を備え、ＣＰＵ２０とメモリ４０とは、ＣＰＵ外部バス５０で接続されて
いる。
【００２１】
ＣＰＵ２０は、アプリケーションを実行するアプリケーションソフトウェア（以後、ア
プリケーションと言う）、及びメモリ４０の故障を診断するメモリ故障診断ソフトウェア
（以後、メモリ故障診断と言う）を備えるソフトウェアを記憶するメモリ２１を備える。
【００２２】
また、メモリ４０は、予め設定されるメモリ故障の診断対象となる診断領域４１と診断
対象の対象とならない、診断対象領域４１の故障診断のための一時退避記憶領域となる非
診断領域４２とを備える。
【００２３】
メモリ故障診断装置１０は、図示しないＣＰＵコアと内部メモリを備え、ＣＰＵコアと
内部メモリとがＣＰＵ内部バスで接続される構成でも良い。
【００２４】
また、メモリ故障診断装置１０は、図１のようにＣＰＵ２０とメモリ４０とがＣＰＵ外
部バス５０で直接接続された構成でも良いし、図２のようにＣＰＵ２０とメモリ４０とが
メモリインタフェース部３０を介して接続される構成でも良い。
【００２５】
また、図２の構成のＣＰＵ２０は、ソフトウェア２１を備える構成に替えて、ＦＰＧＡ
（Field-Programmable Gate Array）で構成され、アプリケーションとメモリ故障診断と
をＦＰＧＡで実行するする構成であっても良い。
【００２６】
また、メモリ４０の内部は、診断領域４１と非診断領域４２に分割されるが、両領域は
同一の物理メモリ上に配置されても、または、診断領域４１と非診断領域４２が別の物理
メモリで構成されていても構わない。
【００２７】
次に、このメモリ故障診断装置１０の動作の概要について、図３及び図４を参照して説
明する。図３は、ＣＰＵ２０が実行する予め定められる制御周期Tiと、制御周期Ｔｉ内で
実行されるアプリケーション処理時間taiと、メモリ故障診断が可能な合間時間ｔｄｉの
実行タイミングを示す。
【００２８】
合間時間tdiは、アプリケーション処理taiのばらつきを考慮して、予めメモリ故障診断
に使用可能な許容診断時間Tavが定められる。
【００２９】
また、詳細を後述するメモリ故障診断の対象となるメモリ４０は、予め設定される診断
対象となる診断領域４１と、メモリ故障診断で使用しない診断対象以外の非診断領域４２
と、を備える。
【００３０】
そして、図４に示すように、ＣＰＵ２０は、アプリケーション処理ｓ１と、メモリ故障
診断処理ｓ２〜ｓ４とを繰り返し実行する。メモリ故障診断処理は、診断領域４１のある
領域を非診断領域に一時退避させるData Store（ｓ２）、当該領域について予め定めるパ
ターンデータ書き込み読み出して期待値のデータであるか否かをチェックするRead/Write
check（ｓ３）、及び一時退避させたある診断領域のデータを書き戻すData restore（ｓ
４）とから成る。
【００３１】
そして、このメモリ故障診断処理は複数回の制御周期Ｔｉに跨って繰り返し実行される
。
【００３２】
次に、メモリ４０の構成について図５を参照して説明する。メモリ４０は、データの書
き込み読み出しが可能な揮発性メモリで、ランダムアクセスメモリ（RAM）で構成される
が、１つのトランジスタで構成されリフレッシュチャージが必要なDynamic RAM（DRAM）
や、数個のトランジスタで構成される高速アクセスが可能なStatic RAM（SRAM）が使用さ
れる。
【００３３】
これに対して、ＣＰＵ２０に備えるソフトウェア２１を記憶するメモリとしては、不揮
発性のRead Only Memory（ROM）が使用される。
【００３４】
一般的なRAMの構成は、図５に示すように、ＣＰＵ２０のアドレスバス５０１に接続さ
れるアドレスレジスタ４０１、メモリアレイ４０４の各メモリセル４０４ｉのロウアドレ
ス（Row address）、コラムアドレス（Column address）に対して、１つのメモリセル４
０４ｉに対するアクセスを指定するロウデコーダ（Row Decoder）４０２とコラムデコー
ダ（Column decoder）４０３とを備える。
【００３５】
各ロウ（Row）はワード線、各コラム（Column）はビット線と呼ばれ、メモリセルは、
ワード線とビット線の交点の１つをアドレスと考え、夫々の物理アドレスと論理アドレス
とを対応することにより、ロウデコーダ４０２、コラムデコーダ４０３で指定されたアド
レスにアクセスすることが出来る。
【００３６】
メモリ４０の故障は、これらの構成各部の故障が含まれるが、メモリセル４０４ｉの故
障には、アドレス線、データ線が接近して配置されること、及び多数のメモリセルが接近
して配置されるために発生するカップリングフォルト（Coupling fault）の他に、縮退故
障及びパターン依存故障と呼ばれる故障も含まれる。
【００３７】
このようなカップリングフォルトを含むメモリ４０故障は、あるメモリセルの内容によ
って、あるいは、あるメモリセルの内容が変化することによって、別のメモリセルの内容
が変化するので、GALPATと称する診断アルゴリズムを適用することで診断が可能である。
【００３８】
即ち、診断対象とする１組の一方のメモリセルに０（または１）を書き込んだ後、他方
の同じビットデータの位置のメモリセルの内容を０→１（または１→０）に変化させ、そ
の後一方の内容を読み出し、１組のメモリセルの値を期待値と比較することで診断する。
【００３９】
次に、このようなGALPATによる診断アルゴリズムに基づく、メモリ４０の診断領域４１
の設定方法について、図６、図７を参照して説明する。図６、図７は、診断領域４１がｎ
行ｋ列のメモリアレイを図示している。
【００４０】
診断領域４１は、夫々の領域が重ならない複数のRow領域４１−ｉに分割され、更に、
夫々のRow領域４１−ｉは、夫々が重ならない複数のCell領域４１−ｉｊに分割される。
【００４１】
また、Cell領域４１−ｉｊは、メモリのデータバス幅サイズ、バイトサイズ及びワード
サイズ、及び、バイトサイズ及びワードサイズの整数倍のサイズのいずれかのサイズで構
成される。即ち、Cell領域４１−ｉｊは、複数ビットのメモリセルで構成される。
【００４２】
また、Row領域４１−ｉのサイズは、Cell領域４１−ｉｊのサイズの整数倍以上で、且
つ、診断領域４１の１／２以下のサイズ範囲で設定される。
【００４３】
本実施形態のメモリ故障診断方法は、Row領域４１−ｉ内の１組のCell領域４１の組み
合わせ全てについて診断するRow領域内診断と、診断領域４１内の１組のRow領域４１の組
み合わせ全てについて診断するRow領域間診断と、の２階層の診断で構成される。
【００４４】
図６には、１組のCell領域４１として、例えば、その一組としてCell領域４１−１３と
Cell領域４１−１ｋとを図示し、図７には、その一組として、Row領域４１−１とRow領域
４１−ｎ−１とを図示している。
【００４５】
次に、Row領域内診断について説明する。Row領域内診断では、１組のCell領域に対して
予め定めるテストパターンを書き込み読み出しして１組の値が期待値であるか否かを比較
して判定する。
【００４６】
テストパターンは、図１０に示すように、１組の領域の対応する位置のビットデータに
ついて、そのパターンが互いに反転の関係にあればどんな組み合わせでもかまわない。例
えば、図１０（ｂ）に示すように、Cell領域ｉの４ビットのテストパターンがオール0で
、反転テストパターンがオール1の組み合わせや、図１０（ｃ）に示すように、テストパ
ターンが55hで、このパターンの反転テストパターンがAAhの組み合わせなどの４種の組み
合わせが用いられる。
【００４７】
Row領域内診断では、１つのRow領域内で取り得る全ての１組のCell領域の組み合わせに
対して、メモリ故障診断処理が実施される。この診断により、各Cell領域単位でのメモリ
故障に加え、１つのRow領域内におけるCell領域単位でのカップリングフォルトを含むメ
モリ故障の全パターンが検出可能である。
【００４８】
また、Row領域内診断は、診断領域４１の全てのRow領域４１−ｉに対して、それぞれ実
施される。これにより、診断領域４１中のメモリセル４０４ｉ全てについて、メモリ故障
が検出でき、また各Rowの領域内におけるCell領域４１−ｉｊ単位でのカップリングフォ
ルトを含むメモリ故障の全パターンが検出可能である。
【００４９】
次に、Row領域間診断について説明する。Row領域間診断では、１組のRow領域に対して
予め定めるテストパターンを書き込み読み出しして１組の値が期待値であるか否かを比較
して判定する。
【００５０】
テストパターンは、Row領域内診断と同様に、図１０（ｂ）、または（ｃ）に示すよう
に、１組の領域の対応する位置のビットデータについて、そのパターンが互いに反転の関
係にあればどんな組み合わせでもかまわない。例えば、図１０（ｂ）に示すように、Cell
領域ｉの４ビットのテストパターンがオール0で、反転テストパターンがオール１の組み
合わせや、図１０（ｃ）に示すように、テストパターンが55hで、このパターンの反転テ
ストパターンがAAhの組み合わせなどの４種の組み合わせが用いられる。
【００５１】
Row領域間診断では、１つの診断領域内４１で取り得る全ての１組のRow領域の組み合わ
せに対して、メモリ故障診断処理が実施される。この診断により、各Row領域単位でのメ
モリ故障に加え、診断領域４１内におけるRow領域単位でのカップリングフォルトを含む
メモリ故障の全パターンが検出可能である。
【００５２】
また、Row領域間診断は、診断領域４１の全てのRow領域４１−ｉに対して、それぞれ実
施される。これにより、診断領域４１中の全メモリセル４０４ｉについて、メモリ故障が
検出でき、また、診断領域４１内におけるRow領域４１−ｉ単位でのカップリングフォル
トを含むメモリ故障の全パターンが検出可能である。
【００５３】
次に、このRow領域内診断とRow領域間診断の診断処理動作について図８を参照して説明
する。図８は、テストパターンの４種の組み合わせの内、図１０（ａ）に示すように、そ
の領域をＡ、Ｂ，Ｃ，・・・と記述し、その領域の状態を代表する１ビットをテストパタ
ーンとして記述して説明したものである。
【００５４】
図８において、先ず、１組のCell領域A、Cell領域Bが指定されると、この領域のデータ
が、非診断領域４２に退避処理される（Data Store）。
【００５５】
次に、１組のCell領域A、Cell領域B に０を書き込む（W０）。そして、次に、Cell領域
Aのみを（０→）１を書き込み（W１）、書き込んだ結果について、夫々の領域のデータを
読み出し（Cell領域A −R１、Cell領域B R０）、読み出した１組の領域の値を求め期待値
と比較して、読み出した値が正しいか否かを判定する。不一致の場合、この組み合わせの
領域は「故障」と判定される。一致した場合には、次のデータの書き込みに移る。
【００５６】
次のデータは、Cell領域Bに（０→）１を書き込む（W１）。そして、１組のCell領域の
データを読み出し（Cell領域A −R１、Cell領域B R１）、読み出した１組の領域の値を求
め期待値と比較して、読み出した値が正しいか否かを判定する。不一致の場合、この組み
合わせの領域は「故障」と判定される。一致した場合には、次のデータの書き込みに移る
。
【００５７】
次のデータは、Cell領域Aに（１→）０を書き込む（W０）。そして、１組のCell領域の
データを読み出し（Cell領域A −R０、Cell領域B R１）、読み出した１組の領域の値を求
め期待値と比較して、読み出した値が正しいか否かを判定する。不一致の場合、この組み
合わせの領域は「故障」と判定される。一致した場合には、次のデータの書き込みに移る
。
【００５８】
次のデータは、Cell領域Bに（１→）０を書き込む（W０）。そして、１組のCell領域の
データを読み出し（Cell領域A −R０、Cell領域B R０）、読み出した１組の領域の値を求
め期待値と比較して、読み出した値が正しいか否かを判定する。不一致の場合、この組み
合わせの領域は「故障」と判定される。一致した場合には、１組のCell領域A、Cell領域B
に退避領域に記憶したデータを書き戻す（Data Restore）。
【００５９】
以上説明したように、２つの領域間の１つの診断サイクルでは、Date Store処理、４種
のテストデータの組み合わせに対するRead/Write check処理、Date Restore処理の3種の
処理が実行され、以後同様にして、最後の組み合わせ領域までこの診断サイクルが実行さ
れる。
【００６０】
Row領域間診断は、Row領域内診断と領域サイズが異なる以外は、動作は同様であるので
その詳細を省略する。また、Row領域間診断とRow領域内診断とは、診断の順番、組み合わ
せはいずれでも良い。
【００６１】
本実施形態では、１つの診断サイクルで非診断領域４２に退避させる領域は、１組のCe
ll領域、または、１組のRow領域に限定しているので、図４に記載したメモリ故障診断処
理（Data StoreからDate Restoreまで１つの診断サイクル）を１制御周期Ti内に収めるこ
とが可能となる。
【００６２】
また、アプリケーションの実行時間が固定の場合は、合間時間tdiは、固定値として設
定することが出来るが、合間時間tdiが可変で、１制御周期Ti内に収まらないことが想定
される場合には、合間時間tdiは、アプリケーションが終了するごとに求める。
【００６３】
さらに、Row 領域内診断及びRow 領域間診断時には、診断サイクルで１つの組み合わせ
パターン（データ）での診断が終了する毎に残合間時間を求め、残合間時間が予め定める
診断時間以下となった場合には、次の組み合わせでの診断を一次中断してその診断シーケ
ンス番号を記憶し、次の制御周期Tiでは、アプリケーションが終了した時点で、次の診断
シーケンス番号から診断を開始するようにすることも可能である。
【００６４】
この場合の診断の中止タイミングは、図９の矢印に示すRestore＆Store enableに示す
、診断サイクルの３箇所の読み出しタイミングで可能である。即ち、WriteしたデータをR
eadし、期待値との比較処理を終了した後、メモリ故障診断処理を中断し、一次退避させ
たこの領域のデータを非診断領域４２からRestoreしてアプリケーションを再開する。
【００６５】
そしてアプリケーション終了後の次の制御周期Tiでの合間時間tdiにおいて、中断後の
診断シーケンス番号からデータをWriteして、診断サイクルを開始する。
【００６６】
また、本実施形態では、メモリ故障診断処理中はアプリケーション処理は一切動作しな
いため、診断領域４１側でアプリケーション処理を実行する必要がない。
【００６７】
次に、メモリ故障診断装置１０としての診断時間を最小とするためのRow領域４１−ｉ
サイズは、Cell領域４１−ｉｊサイズの設定方法について説明する。
【００６８】
単に、アプリケーション処理に要するプログラム、及びデータを全て非診断領域にコピ
ーして、非診断領域でアプリケーションを実行する仕組みでは、メモリ故障診断の１つの
診断サイクルに関わるメモリ領域を小さくすることが可能だが、代償としてメモリ診断の
組み合わせ数が膨大になる欠点がある。
【００６９】
この欠点を防ぐために本実施形態では、診断領域４１をRow領域とCell領域の２階層に
分割した診断処理としている。
【００７０】
本実施形態では、Row領域のサイズ範囲は、Cell領域のサイズの整数倍で、その範囲は
、Cell領域サイズ×2≦Row領域サイズ≦診断領域サイズ×1/2と定められるが、１組のCel
l領域の組み合わせ数は、Row領域サイズの2乗に比例する。
【００７１】
このため、Row領域のサイズが大きくなると、Cell領域の組み合わせ数が増大し、Row領
域内診断の処理時間が増大し、制御周期内の合間時間内にData StoreとData Restoreの処
理を終了させる事が難しくなる。
【００７２】
一方、Row領域間診断の１組のRow領域の組み合わせ数は、Row領域サイズの２乗に反比
例関係にあるので、Row領域サイズを小さくするほど、診断領域４１内でのRow領域数が増
える事により、Row領域間診断の組み合わせ数が急増し、Row領域間診断の総処理時間が拡
大する関係にある。
【００７３】
以下、メモリ故障診断時間を最小とするための、Row領域間診断時間、Row領域内診断時
間と、診断領域サイズ、Row領域サイズ、Cell領域サイズの関係を求める。
【００７４】
Row領域間診断時間TBrowは、図８を参照して、下記式で求められる。  
TBrow =（A）・（B）・（C）・（D）
ここで、（A）、（B）、（C）、（D）下記で定義される値で、
（A）・・・図８のRow領域間１診断サイクル（Data Store〜Data Restore）当たりのRead
/Write回数、
（B）・・・１組のRow領域間の総組み合わせ数、
（C）・・・１つのRow領域でのメモリアクセス回数、
（D）・・・１回のメモリアクセス時間＝１／クロック数、
ここで、（B）は、ｍ＝診断領域サイズ／Row領域サイズとすると、
（B）＝ｍ・（ｍ−１）／２となる。
【００７５】
また、（C）は、（C）＝（Row領域サイズ／Cell領域サイズ）・Cell領域当たりのアク
セスサイクル数、で示される。
【００７６】
ここで、ｍが十分大きな値の場合には、ｍ２／２と近似できるので、Row領域間診断時
間Trowは、下記（数１）で求められる。
【数１】
2014071770.tif 000003
【００７７】
同様に、Row領域内診断時間TIrowは、下記式で求められる。  
TIrow =（A）・（B）・（C）・（D）・（E）
ここで、（A）、（B）、（C）、（D），（E）下記で定義される値で、
（A）・・・図８のRow領域内１診断サイクル（Data Store〜Data Restore）当たりのRead
/Write回数、
（B）・・・１組のCell領域の総組み合わせ数、
（C）・・・１つのCell領域でのメモリアクセス回数
（D）・・・１回のメモリアクセス時間＝１／クロック数、
（E）・・・診断領域中のRow領域数
ここで、（B）は、ｎ＝Row領域サイズ／Cell領域サイズとすると、
（B）＝ｎ・（ｎ−１）／２、となる。
【００７８】
また、（C）は、（C）＝（Row領域サイズ／Cell領域サイズ）・Cell領域当たりのアク
セスサイクル数、で示される。
【００７９】
ここで、ｎが十分大きな値の場合には、ｎ２／２と近似できるので、
Row領域内診断時間TIrowは、下記（数２）で求められる。
【数２】
2014071770.tif 000004
【００８０】
ここで、Row領域内診断時間TIrow（総所要時間）を、メモリ故障診断処理に費やす事の
出来る許容診断時間Tavの目安とする場合、Row領域サイズ、Cell領域サイズ、診断領域サ
イズ、許容診断時間の間には、下記（数式３）の関係が成り立つ。
【数３】
2014071770.tif 000005
【００８１】
即ち、Row領域サイズが、（数３）を満たす事で、Row領域内診断時間TIrowは、許容診
断時間Tavを下回る事が出来る。
【００８２】
尚、本実施形態のように診断領域を階層化しないで、Row領域内診断のみで全診断領域
のメモリ故障診断をする手法の場合には、診断時間は、下記（数４）の様になる。
【数４】
2014071770.tif 000006
【００８３】
したがって、（数１）、（数２）と、（数４)とを比較すると、従来のメモリ故障診断
手法では、Row領域間診断時間TBrowの（Row領域サイズ/Cell領域サイズ）倍、また、Row
領域内診断時間TIrowの（診断領域サイズ/Row領域サイズ）倍の処理時間がかかる事が分
かる。
【００８４】
一方、本実施形態のメモリ診断時間は、Row領域間診断時間TBrowとRow領域内診断時間T
Irowとのの合計時間となる。（数１）、（数２）に示す通り、Row領域間診断時間TBrowは
Row領域サイズと反比例関係にあり、Row領域内診断時間TIrowは、Row領域サイズと比例関
係にある。このため、メモリ診断時間が最小となるのは、Row領域間診断時間TBrow＝Row
領域内診断時間TIrowとなる場合である。
【００８５】
この関係を満たすRow領域サイズは、（数１）、（数２）から、下記、（数５）のが求
められる。
【数５】
2014071770.tif 000007
【００８６】
一般に、メモリサイズは２の倍数により表現されるので、（数５）が２の倍数にならな
い場合、（数５）の値に最も近い、Row領域の取り得る最善の値は、（数５）のRow領域サ
イズの１／２倍から２倍の間に、必ず存在する。
【００８７】
したがって、本実施形態のメモリ診断時間を最小とするRow領域サイズは、一般に、下
記（数６）で表現される。
【数６】
2014071770.tif 000008
【００８８】
また、Row領域サイズの決定法として、（数式３）や（数式６）式の手法でなく、メモ
リの物理的（ハードウェア）構成に従った構成とする事も可能である。
【００８９】
具体的には、Row領域のサイズを、図５に示したような、物理メモリにおける行アドレ
スで区別されるメモリサイズと一致させる構成が可能である。
【００９０】
DRAM内部では、図５に示したようにメモリセルは、行（Row）・列（Column）の格子状
に配列されている。DRAMの外部回路がメモリ空間を読み書きする際には、読み書き対象を
アドレスで指定する。アドレス情報はDRAM内部で行アドレス、列アドレスに分割される。
アドレス領域におけるDRAMのカップリングフォルトは、その構造上、行アドレス同士、列
アドレス同士の方がより発生し易い特性を持つ。
【００９１】
このため、例えば、図５の列（Column）アドレスが0ビット〜7ビット目で表現され、行
アドレスが8ビット〜18ビット目で表現されるメモリ素子においては、Row領域サイズを25
6バイト（＝28）とする事で、Row領域内診断を列アドレスの組み合わせ操作で行い、Row
領域間診断を行アドレスの組み合わせ操作で行う事が出来る。
【００９２】
したがって、本実施形態に拠れば、メモリ故障診断装置において、診断領域をRow領域
とCell領域に分割し、Row領域内診断とRow領域間診断との２階層でメモリ故障診断を行う
事で、メモリ故障診断の１サイクルを定周期アプリケーション処理の制御周期内の合間時
間に収める事が出来る。
【００９３】
また、退避領域でのアプリケーション処理の実行が不要になりアプリケーション処理が
容易となるとともに、１組の診断領域を退避領域へコピーする時間も合間時間に収まるよ
うにすることが出来るので、アプリケーション処理の実行を阻害しないメモリ故障診断装
置を提供することが出来る。
【００９４】
（第２の実施形態）
次に、本発明に係るメモリ故障検出装置の第２の実施形態について図１１を参照して説
明する。第２の実施形態の各部について第１の実施形態と同一の部分は同じ符号を付し、
その説明を省略する。
【００９５】
第２の実施形態が第１の実施形態と異なる点は、Row領域のサイズは、第１の実施形態
では、メモリの列方向には列幅全体を領域としていたが、第２の実施形態では、メモリの
物理アドレスにおける各行アドレスについて、列方向には先頭のCell領域の１個分のみを
領域とし、Row 領域間診断は、行方向のアクセスをRow領域サイズ／Cell領域サイズ数分
、削減するようにしたことにある。
【００９６】
本実施例では、Row領域間診断におけるRead／Write診断の診断範囲が縮小する。しかし
、診断領域４１の診断は、Row領域内診断において実施されるため、メモリの特定アドレ
スに対する故障は、第１の実施形態と同様に検出可能である。
【００９７】
また、Row領域内診断において診断されないRow領域間を跨るカップリングフォルトにつ
いては、例えば、故障発生源がアドレス線である場合には、Row領域間診断によりRow領域
を跨ったCell領域同士で、Read／Write診断を行っているので、アドレス領域でのカップ
リングフォルトを検出する事が可能である。
【００９８】
以上説明したように、本実施形態によれば、予め設定される制御周期内のアプリケーシ
ョン実行後の合間時間を使用してメモリの故障診断が最小時間で行え、診断対象領域のメ
モリ全ての故障診断時間が最小となるようにしたメモリ故障診断装置、メモリ故障診断方
法を提供することを目的とする。
【００９９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その
他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の
省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や
要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる
。
【符号の説明】
【０１００】
１０  制御装置
２０  ＣＰＵ
２１  プログラムメモリメモリ
アプリケーションプログラム
診断プログラム
３０  メモリインタフェース部
４０  データメモリ
４１  診断領域
４２  非診断領域
５０  外部バス
４０１  アドレスレジスタ
４０２  Row Decoder
４０３  Column Decoder
４０４  メモリアレイ
４０４ｉ  メモリセル
５０１  アドレスバス
【図１】
2014071770.tif 000013
【図２】
2014071770.tif 000014
【図３】
2014071770.tif 000015
【図４】
2014071770.tif 000016
【図５】
2014071770.tif 000017
【図６】
2014071770.tif 000018
【図７】
2014071770.tif 000019
【図８】
2014071770.tif 000020
【図９】
2014071770.tif 000021
【図１０】
2014071770.tif 000022
【図１１】
2014071770.tif 000023