(57)【特許請求の範囲】
【請求項１】
Ｎ本のデータラインと（Ｎ＋Ｍ）本のアドレスラインを有するメモリを、ライト／リードチェック方式（アドレスが連続する２Ｎ個のデータエリアを１ブロックとして、ブロックアドレスが０〜２Ｍ−１の全ブロックに対して、ブロック内の全データエリアに、ブロック間で同一の連続値をアドレス順に書き込み、次に、そのブロック内のデータエリアを順次読み込み、書き込んだ値が正常に読み込めたかどうかをチェックする方式）で、コンピュータのＣＰＵに接続されるメモリの異常を検知するメモリ検査方法であって、
上記全ブロックのメモリを検査する場合に、
上記全ブロックについて、上記ライト／リードチェックを実施するステップと、
所定の（Ｍ＋１）個のブロック（ブロック０、ブロック２０、ブロック２１、・・・、ブロック２Ｍ−１）の内の１つの選択ブロックに対して、特定のブロック内相対アドレスで示されるデータエリアに、上記ライト／リードチェックですでに書き込まれた値と異なる所定の固有値を書き込むステップと、
上記所定の（Ｍ＋１）個のブロックについて、各ブロック内の上記特定の相対アドレスで示されるデータエリアを読み込み、上記選択ブロックのみに上記固有値が書き込まれているかどうかで上位Ｍ本のアドレスラインの異常チェックを行うステップと、を順次実行する、メモリ検査方法。
【請求項２】
請求項１において、
上位Ｍ本のアドレスラインの異常を検出した場合、異常のあるアドレスラインを通知するステップをさらに実行する、メモリ検査方法。
【請求項３】
Ｎ本のデータラインと（Ｎ＋Ｍ）本のアドレスラインを有するメモリを、ライト／リードチェック方式（アドレスが連続する２Ｎ個のデータエリアを１ブロックとして、ブロックアドレスが０〜２Ｍ−１の全ブロックに対して、ブロック内の全データエリアに、ブロック間で同一の連続値をアドレス順に書き込み、次に、そのブロック内のデータエリアを順次読み込み、書き込んだ値が正常に読み込めたかどうかをチェックする方式）で、コンピュータのＣＰＵに接続されるメモリの異常を検知する、メモリ検査プログラムであって、
上記全ブロックのメモリを検査する場合に、
上記全ブロックについて、上記ライト／リードチェックを実施する全ブロックチェック機能と、
所定の（Ｍ＋１）個のブロック（ブロック０、ブロック２０、ブロック２１、・・・、ブロック２Ｍ−１）の内の１つの選択ブロックに対して、特定のブロック内相対アドレスで示されるデータエリアに、上記ライト／リードチェックですでに書き込まれた値と異なる所定の固有値を書き込む、上位アドレスラインチェック用固有値書き込み機能と、
次に、上記所定の（Ｍ＋１）個のブロックについて、各ブロック内の上記特定の相対アドレスで示されるデータエリアを読み込み、上記選択ブロックのみに上記固有値が書き込まれているかどうかで上位Ｍ本のアドレスラインの異常チェックを行う上位アドレスラインチェック機能と、を順次実行する、メモリ検査プログラム。
【請求項４】
請求項３において、
上位Ｍ本のアドレスラインの異常を検出した場合、異常のあるアドレスラインを通知する異常通知機能をさらに実行する、メモリ検査プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータのＣＰＵに接続されたメモリの全領域の検査方法およびそのプログラムに関するものである。
【０００２】
【従来の技術】
パソコン等に搭載されているＣＰＵに外付け接続されるメモリは、起動時または少なくとも出荷前の検査工程の実施時において、メモリの全領域に対して、ＣＰＵから読み書きができることを検査する必要がある。そのため、従来では、簡易なプログラムを用いて、メモリの全領域に対して所定のデータを書き込み、次にそれを読み込んで、書き込みデータと読み込みデータとが一致するか否かをチェックすることで、メモリの異常を検出していた。
【０００３】
この従来のメモリ検査方法を、図６、図７を用いて具体的に説明する。
【０００４】
ここで、メモリ２は、図２に示すように、Ｎ本のデータラインと（Ｎ＋Ｍ）本のアドレスラインで、ＣＰＵ１に接続されている。
【０００５】
このメモリ２の全領域に対して、連続したＮビットデータを書き込み、次に読み込みチェックを行うが、Ｎビットで表現できる数値の値域は０〜２Ｎ−１であるため、すべてのデータエリアについて異なる数値を書き込むことはできない。
【０００６】
そのため、図６で示すように、アドレスが連続する２Ｎ個のデータエリアを１ブロックＢとして、ブロックアドレスが０〜２Ｍ−１の全ブロックに対して、ブロックＢ内の全データエリアに、ブロックＢ間で同一の連続値（例えばブロックＢ内の相対アドレスと同値）をアドレス順に書き込み、次に、そのブロックＢ内のデータエリアを順次読み込み、書き込んだ値が正常に読み込めたかどうかをチェックする。
【０００７】
この検査では、メモリ内部のデータ記憶構造に異常がある場合や、図２で示したアドレスライン０〜アドレスライン（Ｎ−１）の計Ｎ本のアドレスラインの断線やライン間の短絡の異常がある場合には、これを検出することができる。
【０００８】
ところが、アドレスラインＮ〜アドレスライン（Ｎ＋Ｍ−１）の計Ｍ本の上位アドレスラインの断線やライン間の短絡といった異常があった場合には、図３で示すデータアドレスの上位Ｍビットが誤って指定されるため、実際には指定していないブロックＢ内のデータが読み書きされることとなり、図６で示したメモリ２全領域のライト／リードチェックだけでは、上位Ｍ本のアドレスラインの異常を検出することはできない。
【０００９】
そこで、図６のチェックの後、図７に示すように、全ブロックＢに対して、各ブロックＢ内の同一の相対アドレスで示されるデータエリアに、ブロックＢごとにユニークな数値（例えばブロックアドレス値）を書き込み、次に、読み込み、ブロックＢ間にまたがって発生する異常がないかを確認している。
【００１０】
【発明が解決しようとする課題】
しかしながら、上位アドレスライン本数Ｍが大きくなるにつれ、すなわちメモリの容量が大きくなるにつれ、図７で示している上位アドレスラインの検査のために行うメモリ２の読み書き回数は、Ｍの増加に対して指数的に増大する。すなわち、Ｍが増加すると、上位アドレスラインの検査時間は指数的に増大するという問題があった。
【００１１】
例えば、データが１バイト（８ビット）、アドレスが８ビットの場合、図６で示す、メモリ２の全領域のライト／リードチェックのみで済み、データが１バイト、アドレスが１２ビットの場合には、Ｍ＝１２−８＝４であるから、全領域のライト／リードチェックに加えて、１６（２４）回のメモリの書き込み、読み込みがそれぞれ発生し、アドレスが１６ビットの場合には、２５６（２８）回のメモリの書き込み、読み込みがそれぞれ発生する。
【００１２】
また、Ｍ＞Ｎの場合には、（Ｍ−Ｎ）本のアドレスラインの異常を検出することができないため、（Ｍ−Ｎ）本の上位アドレスに対して、さらに同様の検査をしなければならなかった。
【００１３】
本発明は、このような問題を解決すべくなされたもので、アドレスラインの本数すなわちメモリ容量が増加しても、メモリの読み書き回数が指数的に増加することのない、新たなメモリ検査方法およびそのプログラムを提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載のメモリ検査方法は、Ｎ本のデータラインと（Ｎ＋Ｍ）本のアドレスラインを有するメモリを、ライト／リードチェック方式（アドレスが連続する２Ｎ個のデータエリアを１ブロックとして、ブロックアドレスが０〜２Ｍ−１の全ブロックに対して、ブロック内の全データエリアに、ブロック間で同一の連続値をアドレス順に書き込み、次に、そのブロック内のデータエリアを順次読み込み、書き込んだ値が正常に読み込めたかどうかをチェックする方式）で、コンピュータのＣＰＵに接続されるメモリの異常を検知するメモリ検査方法であって、次の特徴を有している。
【００１５】
すなわち、全ブロックのメモリを検査する場合に、全ブロックについて、上記ライト／リードチェックを実施するステップと、所定の（Ｍ＋１）個のブロック（ブロック０、ブロック２０、ブロック２１、・・・、ブロック２Ｍ−１）の内の１つの選択ブロックに対して、特定のブロック内相対アドレスで示されるデータエリアに、上記ライト／リードチェックですでに書き込まれた値と異なる所定の固有値を書き込むステップと、所定の（Ｍ＋１）個のブロックについて、各ブロック内の特定の相対アドレスで示されるデータエリアを読み込み、選択ブロックのみに固有値が書き込まれているかどうかで上位Ｍ本のアドレスラインの異常チェックを行うステップと、を順次実行することを特徴とする。
【００１６】
請求項２に記載の方法では、請求項１において上位Ｍ本のアドレスラインの異常を検出した場合、異常のあるアドレスラインを通知するステップをさらに実行する。
【００１７】
請求項３に記載のメモリ検査プログラムは、Ｎ本のデータラインと（Ｎ＋Ｍ）本のアドレスラインを有するメモリを、ライト／リードチェック方式（アドレスが連続する２Ｎ個のデータエリアを１ブロックとして、ブロックアドレスが０〜２Ｍ−１の全ブロックに対して、ブロック内の全データエリアに、ブロック間で同一の連続値をアドレス順に書き込み、次に、そのブロック内のデータエリアを順次読み込み、書き込んだ値が正常に読み込めたかどうかをチェックする方式）で、コンピュータのＣＰＵに接続されるメモリの異常を検知する、メモリ検査プログラムであって、次の特徴を有している。
【００１８】
すなわち、このプログラムは、▲１▼全ブロックのメモリを検査する場合に、全ブロックについて、ライト／リードチェックを実施する全ブロックチェック機能と、▲２▼所定の（Ｍ＋１）個のブロック（ブロック０、ブロック２０、ブロック２１、・・・、ブロック２Ｍ−１）の内の１つの選択ブロックに対して、特定のブロック内相対アドレスで示されるデータエリアに、上記ライト／リードチェックですでに書き込まれた値と異なる所定の固有値を書き込む、上位アドレスラインチェック用固有値書き込み機能と、▲３▼所定の（Ｍ＋１）個のブロックについて、各ブロック内の特定の相対アドレスで示されるデータエリアを読み込み、選択ブロックのみに固有値が書き込まれているかどうかで上位Ｍ本のアドレスラインの異常チェックを行う上位アドレスラインチェック機能とを備え、これらの機能を順次実行することを特徴とする。
【００１９】
請求項４に記載のプログラムは、請求項３において上位Ｍ本のアドレスラインの異常を検出した場合、異常のあるアドレスラインを通知する異常通知機能をさらに実行することを特徴とする。
【００２０】
【発明の実施の形態】
以下に、本発明の実施の形態を添付図面とともに説明する。
【００２１】
図２で上述しているように、メモリ２は、Ｎ本のデータラインと（Ｎ＋Ｍ）本のアドレスラインで、ＣＰＵ１に接続されている。また、図３に示すように、メモリアドレスは、アドレスラインの本数に対応して上位Ｍビットと下位Ｎビットで構成される。すなわち、このようなアドレスラインで接続されている場合には、０〜２Ｎ＋Ｍ−１のアドレスで表現される容量のメモリ２が実装できる。
【００２２】
本発明のメモリ検査方法をステップごとに説明すると、まず、図６で示しているメモリ２全領域に対するライト／リードチェックを実行する。すなわち、ブロックＢ内の全データエリアに、ブロックＢ間で同一の連続値をアドレス順に書き込み、次に、そのブロックＢ内のデータエリアを順次読み込み、書き込んだ値が正常に読み込めたかどうかをチェックする。たとえば、８ビットデータであれば、ブロックＢ内相対アドレスと同値の０〜２５５を書き込み、正常に０〜２５５が読み込めたかどうかを検査する。
【００２３】
ここでは、連続値としてブロックＢ内相対アドレス値を書き込んでいるが、これに限定されず、２５５〜０を書き込んでもよい。少なくとも、ブロックＢ内で相互にユニークな数値であればよい。
【００２４】
このようなメモリ２全領域のライト／リードチェックを行うことにより、メモリ２内部のデータ記憶構造の異常や、図２で示したアドレスライン０〜アドレスライン（Ｎ−１）の計Ｎ本のアドレスラインの断線やライン間の短絡の異常を検出している。
【００２５】
次に、上位Ｍ本のアドレスラインを検査するために、所定の１エリアへの書き込みステップと、所定の（Ｍ＋１）エリアからの読み込みによる異常チェックステップとを実行する。
【００２６】
図１は、上位Ｍ本のアドレスライン検査方法を説明する図である。
【００２７】
図に示すように、所定の（Ｍ＋１）個のブロックＳ２（ブロック０、ブロック２０、ブロック２１、・・・、ブロック２Ｍ−１）の内の１つの選択ブロックＳ１に対して、特定のブロック内相対アドレスＹで示されるデータエリアに、ライト／リードチェックですでに書き込まれた値と異なる所定の固有値Ｚを書き込み、所定の（Ｍ＋１）個のブロックＳ２について、各ブロックＳ２内の特定の相対アドレスＹで示されるデータエリアを読み込み、選択ブロックＳ１のみに固有値Ｚが書き込まれているかどうかで上位Ｍ本のアドレスラインの異常チェックを行う。
【００２８】
ここで、各ブロックＳ２内の特定の相対アドレスＹで示されるデータエリアには、上述のライト／リードチェックにより相対アドレスＹと同じ数値Ｙがすでに書き込まれているため、（Ｍ＋１）個のブロックＳ２のうち選択ブロックＳ１以外のブロックの所定エリアには数値Ｙが記憶されている。したがって、選択ブロックＳ１以外のブロックから読み込まれたデータが数値Ｚと一致すれば、メモリ異常（上位アドレスライン異常）と判断できる。
【００２９】
要するに本発明は、上位Ｍ本のアドレスラインで表わされる値域０〜２Ｍ−１に対応する２Ｍ個の全ブロックＢについて検査するものではなく、（Ｍ＋１）個のブロックＳ２についての検査を行うだけでよい。
【００３０】
具体的に説明すると、データが８ビットでアドレスが１２ビット（Ｍ＝４）の場合には、ブロックアドレスが０、１、２、４、８（２進表記では００００、０００１、００１０、０１００、１０００）の計５ブロックのうちの１ブロックについて書き込み、５ブロックについて読み込めば、検査は終了する。同様に、アドレスが１６ビット（Ｍ＝８）の場合には、ブロックアドレスが０、１、２、４、８、１６、３２、６４、１２８（２進表記では００００００００、０００００００１、００００００１０、０００００１００、００００１０００、０００１００００、００１０００００、０１００００００、１０００００００）の計９ブロックについてのみ検査すればよい。
【００３１】
このようなメモリ検査方法を用いれば、全ブロックについて検査する必要がないため、従来は少なくとも２Ｍ回のメモリ書き込みと２Ｍ回の読み込みが必要であったのに対し、１回のメモリ書き込みと（Ｍ＋１）回の読み込みを実施するだけで十分なため、検査時間は大幅に減少する。特にＭの値が大きくなればなるほど、効果は大きい。
【００３２】
図４のステップ１０１〜１１３で示すフローチャートには、このメモリ検査方法における上位アドレスラインの検査プログラムの処理流れを示している。
【００３３】
ここで、ステップ１０１、１０２では、上位アドレスラインチェック用固有値書き込み機能が実行され、ステップ１０３〜１１３で、上位アドレスラインチェック機能が実行される。
まず、次のように固有値を定義設定する。
Ｎ≦Ｘ≦Ｎ＋Ｍ−１、０≦Ｙ≦２Ｎ−１、０≦Ｚ≦２Ｎ−１、Ｙ≠Ｚとして、
書き込みアドレスＢ＝２Ｘ＋Ｙ、またはＹ  と定義し、
書き込みアドレスＢに、データＺを書き込む（以上、１０１、１０２）。
Ａの初期値を０に設定しておき（１０３）、
アドレス２Ｎ＋Ａ＋Ｙのデータを読み込み（１０４）、読み込みアドレス２Ｎ＋Ａ＋Ｙ＝書き込みアドレスＢをチェックする（１０５）。
２Ｎ＋Ａ＋Ｙ＝Ｂの場合（１０５のＹ）、読み込んだデータ＝Ｚをチェックし（１０６）、Ｚでなければ異常ありと判断して終了する一方（１０６のＮ、ａ））、ＺであればＡを＋１する（１０６のＹ、１０７）。
２Ｎ＋Ａ＋Ｙ≠Ｂの場合（１０５のＮ）、読み込んだデータ＝Ｚをチェックし、Ｚであれば異常ありと判断して終了する一方（１０８のＮ、ｂ））、ＺでなけばＡを＋１する（１０７）。
こうして、異常を判別して終了するか、あるいはＡ＝Ｍになるまで、１０４〜１０８を繰り返す（１０９）。
Ａ＝Ｍになると（１０９）、アドレスＹのデータを読み込み（１１０）、読み込みアドレスＹ＝書き込みアドレスＢをチェックし（１１１）、
Ｙ＝Ｂの場合（１１１のＹ）、読み込んだデータ＝Ｚをチェックし（１１２）、Ｚであれば異常なしと判断する一方（１１２のＹ）、Ｚでなければ再検査を実行する（１１２のＮ）。
Ｙ≠Ｂの場合（１１１のＮ）、読み込んだデータ＝Ｚをチェックし（１１３）、Ｚでなければ異常なしと判断する一方（１１３のＮ）、Ｚであれば異常と判断する（１１２のＹ、ｃ））。
【００３４】
図５（ａ）は、上述したメモリ検査方法を実現したプログラムを搭載したコンピュータの要部構成の一例を示したブロック図である。図５（ｂ）は、ＣＰＵ１、メモリ２、プログラムが格納されたＲＯＭ３に、さらにＬＥＤやＣＲＴなどの表示部４を付加した構成となっている。
【００３５】
図５（ｂ）の構成では、上記メモリ検査方法を実行した際に異常が検出された場合、異常のあったアドレスラインを表示部４に表示し、異常があることをユーザに迅速に通知することを可能としている。
【００３６】
すなわち、図４のフローチャートにおいて、ａ）で異常終了したときはアドレスラインＸを、ｂ）で異常終了したときはアドレスライン（Ｎ＋Ａ）を、ｃ）で異常終了したときはアドレスラインＸを、表示部４に表示する。
【００３７】
【発明の効果】
以上の説明からも理解できるように、請求項１、３に記載のメモリ検査方法、プログラムは、上位Ｍ本のアドレスラインについては、１回のメモリ書き込みと（Ｍ＋１）回の読み込みを実施するだけなので、Ｍが大きくなっても検査時間は指数的に増大することがない。
【００３８】
請求項２、４に記載の本発明では、異常のあるアドレスラインを通知するようにしているので、ユーザは表示部等を監視して容易に異常のあるアドレスラインを認識することができる。
【図面の簡単な説明】
【図１】本発明のメモリ検査方法における、上位アドレスライン検査方法を説明する図である。
【図２】ＣＰＵとメモリの接続構成を示す図である。
【図３】メモリアドレスとアドレスラインの関係を示す図である。
【図４】本発明のメモリ検査方法における、上位アドレスラインの検査方法の処理流れを示すフローチャートである。
【図５】（ａ）、（ｂ）は、本発明のメモリ検査方法を実現したプログラムを搭載したコンピュータの要部構成の代表的な２例を示したブロック図である
【図６】本発明のメモリ検査方法における、メモリ全領域のライト／リードチェックを説明する図である。
【図７】従来のメモリ検査方法における、上位アドレスライン検査方法を説明する図である。
【符号の説明】
２      メモリ
Ｂ      ブロック
Ｓ１    選択（書き込み）ブロック
Ｓ２    読み込みブロック
４      表示部
【図１】
0003951681.tif 000002
【図２】
0003951681.tif 000003
【図３】
0003951681.tif 000004
【図４】
0003951681.tif 000005
【図５】
0003951681.tif 000006
【図６】
0003951681.tif 000007
【図７】
0003951681.tif 000008