(57)【要約】【課題】診断用データとして乱数を用い、メモリを構成する各ビットを均一に診断し、メモリの最小記憶単位であるビット単位による異常発生回数を計数して故障のメモリＩＣを特定可能なメモリ診断装置を提供する。【解決手段】メモリ診断のために乱数データを生成可能なＣＰＵと、複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し所定のビット幅ごとに集積化された複数のＩＣで構成され、ＣＰＵにデータバスを介して接続されたメモリと、メモリに対して乱数データの書き込みと読出し制御を行い、かつメモリのビット毎に、それぞれのメモリ領域に書き込んだ乱数データと読み出した乱数データとを比較し、比較結果に不一致があった場合の異常発生回数をカウントする計数手段を備え、カウント値をもとに異常のあるメモリＩＣを特定する。【選択図】図１
2007241840.tif 000002
【特許請求の範囲】
【請求項１】
メモリ診断のために乱数データを生成可能なＣＰＵ（中央演算処理装置）と、
複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し、所定のビット幅ごとに集積化された複数のＩＣで構成され、前記ＣＰＵにデータバスを介して接続されたメモリと、
前記メモリに対して前記乱数データの書き込みと読出し制御を行う手段と、
前記メモリのビット毎に、それぞれのメモリ領域に書き込んだ乱数データと読み出した乱数データとを比較し、比較結果に不一致があった場合に異常と判断し前記ビット毎に異常発生回数をカウントする計数手段と、を具備し、
前記計数手段によるカウント値をもとに異常のあるＩＣを特定することを特徴とするメモリ診断装置。
【請求項２】
前記メモリに対して前記乱数データの書き込みと読出しの制御は、前記ＣＰＵが行うことを特徴とする請求項１記載のメモリ診断装置。
【請求項３】
前記メモリの診断は、予め設定した回数行い、前記計数手段はそれぞれの診断結果における異常発生回数を累積加算することを特徴とする請求項１記載のメモリ診断装置。
【請求項４】
前記メモリは前記複数のＩＣ群で１つのバンクを構成し、前記メモリの診断をバンク毎に実施することを特徴とする請求項１記載のメモリ診断装置。
【請求項５】
複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し、所定のビット幅ごとに集積化された複数のＩＣで構成されたメモリの診断方法であって、
メモリ診断のために乱数データを生成するステップと、
前記メモリに対して前記乱数データの書き込みを行う書き込みステップと、
前記メモリに書き込まれた前記乱数データを読出す読み出しステップと、
前記メモリのビット毎に、それぞれのメモリ領域に書き込んだ乱数データと読み出した乱数データとを比較し、比較結果に不一致があった場合に異常と判断する比較ステップと、
前記ビット毎に異常発生回数をカウントする計数ステップと、を具備し、
前記計数ステップによるカウント値をもとに異常のあるメモリＩＣを特定可能にしたメモリ診断方法。
【請求項６】
メモリ診断のために乱数データを生成可能なＣＰＵ（中央演算処理装置）と、
前記ＣＰＵにデータバスを介して接続され、それぞれ複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し、所定のビット幅ごとに集積化された複数のＩＣで構成された複数のメモリと、
前記ＣＰＵにて生成されたメモリ診断用の乱数データを、前記複数のメモリの診断対象メモリに書き込み、かつ読出しを行い、この診断対象メモリのビット毎に、書き込んだ乱数データと読み出した乱数データを比較し、比較結果に不一致があった場合に異常と判断し前記ビット毎に異常発生回数をカウントする計数手段と、
前記計数手段による計数結果を保存する保存手段と、を具備し、
前記保存手段に保存された計数結果を利用して、異常のあるメモリＩＣを特定することを特徴とするメモリ診断システム。
【請求項７】
前記書き込んだ乱数データと読み出した乱数データを比較するため、排他的論理和処理を行うことを特徴とする請求項６記載のメモリ診断システム。
【請求項８】
前記計数手段による計数結果は、前記ＣＰＵ内のメモリ又は、診断結果により異常がないと判断されたメモリに保存することを特徴とする請求項６記載のメモリ診断システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データバスを介してＣＰＵに接続されたメモリを診断し、故障が発生したメモリを容易に特定することができるメモリ診断装置、メモリ診断方法、及びメモリ診断システムに関する。
【背景技術】
【０００２】
従来、情報処理装置にあってはメモリにデータを記憶するようにしているが、メモリ内のメモリ素子が故障した場合、書き込んだデータが正しく記憶されないことがあり、その装置は正常な動作ができなくなる。そこで、メモリを搭載している装置では、メモリ素子が故障していないかどうかを診断できるようにしている。
【０００３】
従来、一般的に知られているメモリ診断方法は、ＣＰＵ（中央演算処理装置）内のレジスタに格納したテストデータを、診断対象メモリの全アドレスに連続して書き込み、その後、メモリの全アドレスからデータを連続して読み出し、書き込んだデータと読み出したデータを互いに比較することで故障の有無を確認している。
【０００４】
例えば特許文献１では、メモリに連続的に書き込まれるデータを保存するライトデータ記憶部と、データ書込み後に連続的に読み出されるリードデータをライトデータ記憶部に保存されている内容と比較照合する比較回路と、比較結果に不一致が生じたときにエラーメモリを特定する特定回路を有するメモリ診断システムについて記載されている。
【０００５】
従来のメモリ診断方法において、メモリの全アドレス領域の各ビットが正常に動作するかをチェックするには、全ビットを変化させる必要がある。そのため、特許文献２では、テストデータとして、各ビットの値が相反する２つ以上のデータパターンを用いた例が記載されている。３２ビット幅のデータを書き込み、また読み出すメモリにおいては、テストデータとして、５５５５５５５５ｈとＡＡＡＡＡＡＡＡｈ（ｈは１６進数表示：以下同じ）の２パターンを使用し、それぞれのテストデータにおいて、書き込み、読み出し、及び比較処理を行うことで、メモリの全アドレス領域の各ビットをチェックしている。これにより全メモリＩＣ、またはメモリ基板やモジュール全体の良否判定を行っている。
【特許文献１】特開平１１−１０２３２８号公報
【特許文献２】特開２００２−３１２２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のメモリ診断は、メモリ素子の偶発的故障に注目したメモリ診断方法であり、プロセッサ（ＣＰＵ）、またはデータ比較回路が一度に読書き可能な語長単位で診断が行われてきた。このため、プロセッサのアクセス語長未満の詳しい情報は破棄されるため、情報不足から詳しい故障解析ができなかった。また、予め設定されたテストデータを用いるため、データバスの伝送路特性によっては正しいデータ値が書き込めない場合があり、より高精度な診断が求められる場合に限度があった。
【０００７】
本発明は、上記事情を考慮してなされたもので、診断用データとして乱数を用い、メモリを構成する各ビットを均一に診断し、メモリの最小記憶単位であるビット単位による異常発生回数を計測することで、迅速に故障のメモリＩＣを特定することができるメモリ診断装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１の本発明のメモリ診断装置は、メモリ診断のために乱数データを生成可能なＣＰＵ（中央演算処理装置）と、複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し、所定のビット幅ごとに集積化された複数のＩＣで構成され、前記ＣＰＵにデータバスを介して接続されたメモリと、前記メモリに対して前記乱数データの書き込みと読出し制御を行う手段と、前記メモリのビット毎に、それぞれのメモリ領域に書き込んだ乱数データと読み出した乱数データとを比較し、比較結果に不一致があった場合に異常と判断し前記ビット毎に異常発生回数をカウントする計数手段とを具備し、前記計数手段によるカウント値をもとに異常のあるＩＣを特定することを特徴とする。
【０００９】
また、請求項５記載の本発明は、複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し、所定のビット幅ごとに集積化された複数のＩＣで構成されたメモリの診断方法であって、メモリ診断のために乱数データを生成するステップと、前記メモリに対して前記乱数データの書き込みを行う書き込みステップと、前記メモリに書き込まれた前記乱数データを読出す読み出しステップと、前記メモリのビット毎に、それぞれのメモリ領域に書き込んだ乱数データと読み出した乱数データとを比較し、比較結果に不一致があった場合に異常と判断する比較ステップと、前記ビット毎に異常発生回数をカウントする計数ステップとを具備し、前記計数ステップによるカウント値をもとに異常のあるメモリＩＣを特定可能にしたことを特徴とする。
【００１０】
さらに、請求項６記載の本発明のメモリ診断システムは、メモリ診断のために乱数データを生成可能なＣＰＵ（中央演算処理装置）と、前記ＣＰＵにデータバスを介して接続され、それぞれ複数のアクセスアドレスと複数のビットで規定されるメモリ領域を有し、所定のビット幅ごとに集積化された複数のＩＣで構成された複数のメモリと、前記ＣＰＵにて生成されたメモリ診断用の乱数データを、前記複数のメモリの診断対象メモリに書き込み、かつ読出しを行い、この診断対象メモリのビット毎に、書き込んだ乱数データと読み出した乱数データを比較し、比較結果に不一致があった場合に異常と判断し前記ビット毎に異常発生回数をカウントする計数手段と、前記計数手段による計数結果を保存する保存手段とを具備し、前記保存手段に保存された計数結果を利用して、異常のあるメモリＩＣを特定することを特徴とする。
【発明の効果】
【００１１】
本発明のメモリ診断装置によれば、実装されている各メモリの物理的配置を考慮して診断することで、エラーが発生したメモリＩＣをビット番号をもとに特定することができる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の一実施の形態について図面を参照して詳細に説明する。
【実施例１】
【００１３】
図１は本発明のメモリ診断装置の一実施形態を示すブロック図である。図１において、１１はＣＰＵ（中央演算処理装置）であり、１２，１３，１４はデータバスである。また１５は異なるデータバス同志を接続するバスブリッジであり、ＤＭＡＣ（Direct Memory Access Controller）１６を備えている。ＤＭＡC１６は、ＣＰＵ１１を経由せずに周辺装置とメモリ間でデータをやり取りするものである。ＣＰＵ１１は、データバス１２を介してバスブリッジ１５に接続され、さらに、バスブリッジ１５、データバス１３、１４にはそれぞれメモリ１７，１８，１９が接続されている。
【００１４】
メモリ１７，１８，１９は、それぞれが診断対象のメモリであり、例えばページメモリのような大容量のメモリでなる。メモリ間におけるデータのやり取りは、ＤＭＡＣ１６の制御により、全てＤＭＡ転送（ダイレクト・メモリ・アクセス転送）で行われる。ＤＭＡ転送は、対象となるデータバスにおける最大ビット長を用いて行う。また、データバス１２には入力装置２０が接続されている。
【００１５】
図２は、メモリ１７，１８，１９の内部構成を示す図である。メモリ１７，１８，１９はいずれも同様の構成を有するものであり、メモリＭとして説明する。メモリＭは、複数のメモリＩＣ（ＩＣ１〜ＩＣ４）から成り、縦方向はアクセスアドレスを示し、プロセッサ（ＣＰＵ）のアクセス単位内において、Ｎ番地から（Ｎ＋Ｍ−１）番地のアドレスを有する。また、横方向は処理方向を示し、例えば０〜６３の計６４ビット（ｂｉｔ）構成のメモリ領域を有している。
【００１６】
ＩＣ１〜ＩＣ４は、例えば１６ビット毎に区分されたビット位置によって物理的なＩＣ配置が決定され、メモリＩＣ１は各番地の０〜１５ビットのメモリ領域を有し、メモリＩＣ２は各番地の１６〜３１ビットのメモリ領域を有する。同様にメモリＩＣ３は各番地の３２〜４７ビットのメモリ領域を有し、メモリＩＣ４は各番地の４８〜６４ビットのメモリ領域を有している。メモリＩＣ（ＩＣ１〜ＩＣ４）は同一構成の集積回路であり、メモリＩＣ（ＩＣ１〜ＩＣ４）を１組にして１つのバンクを構成し、複数のバンクによってメモリＭは構成されている。
【００１７】
図２では、バンク１とバンクｋで構成された例を示し、バンク１の先頭アドレスをＮ番地とし、バンクｋの先頭アドレスをＰ番地としている。また、それぞれのバンクは独立した集積回路にて構成されている。
【００１８】
次に本発明のメモリの診断方法を図３〜図５のフローチャートを用いて説明する。メモリ診断はＣＰＵ１１の制御のもとに実施され、図３のステップＳ１でメモリ診断が開始される。ステップＳ２では、診断回数ｉが入力部２０を介して入力される。例えばｉ＝１０００とすれば、１０００回診断が行われる。診断回数が多ければ多いほど、診断の精度が上がる。
【００１９】
次のステップＳ３でＣＰＵ１１は、診断用のデータとして乱数データを生成する。従来では予め設定したテストデータを用いていたが、情報不足から詳しい故障解析ができないことがあったが、本発明では乱数データを用い、診断回数を多くすることによって満遍なく診断し十分な解析ができるようにしている。ステップＳ４はメモリＭをバンク単位に分割して診断するため、分割数ｊを設定する。
【００２０】
ステップＳ５は、ＤＭＡＣ１６を用いて診断用データ（乱数データ）を対象メモリに書込み、ステップＳ６は、ＤＭＡＣ１６を用いて書き込んだ診断用データを読み出すステップである。
【００２１】
例えば、図１のメモリ１７を診断用の一時メモリとし、図１のメモリ１８を診断対象メモリと仮定し、診断サイズを１Ｍバイトと仮定する。ＣＰＵ１１は、診断用の一時メモリ１７に対して、例えば１Ｍバイト分の乱数データを作成して書き込み、ＤＭＡＣ１６を用いて、一時メモリ１７の診断データを診断対象メモリ１８へ１Ｍバイト分書き込む（ステップ５）。そして、ＤＭＡＣ１６を用いて、診断対象メモリ１８から診断用の一時メモリ１７の読出し領域（リードバックメモリ）へ１Ｍバイト分読み込む（ステップＳ６）。
【００２２】
次に図４のステップＳ７に移行し、診断メモリのサイズｋが入力され、メモリＩＣ１、ＩＣ２、ＩＣ３、ＩＣ４の単位で決まるメモリサイズｋを設定する。
【００２３】
ステップＳ８では、診断用の一時メモリ１７に記憶した診断データと、リードバックメモリに読み込んだデータの排他的論理和処理を行い、その結果が「０」であれば正常と判断し、次のメモリを診断する。「０」以外となった場合、即ち排他的論理和の結果が「１」の場合は、データバスまたはメモリが異常と判断され、ステップＳ９においてエラー計数処理を呼び出し、異常（エラー）の計数処理を行う。
【００２４】
図５は、ステップＳ９のエラー計数処理のフローを示したものである。ステップＳ９１でエラー計数処理がスタートすると、ステップＳ９２では異常発生アドレスからバンク番号Ａを求める。図２で示すように、各バンクのアドレスはＮ番地、Ｐ番地といった異なる番地が割り当てられているため、異常発生アドレスから該当するバンクを求めることができる。
【００２５】
ステップＳ９３では、診断対象メモリの語長ｙが入力される。即ち、ここではｙ＝６４が入力され、０〜６３ビットまでのメモリ領域を順々に診断することになる。次のステップＳ９４では、排他的論理和結果を、１ビットずつ調査し、「０」であればステップＳ９６に移行し、「１」となったビットがあればビット番号を確定する。そしてステップＳ９５では、メモリバンク番号Ａとビット番号ｙから識別される異常領域に異常発生回数の値を＋１だけカウントアップする。この排他的論理和結果の確認と異常発生回数のカウントはステップＳ９６により、メモリ領域の全ビット（ｙ）に対して実施する。
【００２６】
ステップＳ９７でエラー計数処理が終了すると、図４のステップＳ１０に移行し、メモリサイズｋの回数だけ診断処理が実行され、ＩＣ１〜ＩＣ４について診断を行う。またステップＳ１１では分割数ｊの回数だけ診断処理が行われ、すべてのバンクについて診断処理が実行される。さらにステップＳ１２では診断回数ｉ（＝１０００）だけ同様の診断処理が実行される。
【００２７】
こうして、上記診断処理を診断対象メモリの全メモリ領域に渡り実施し、設定した回数、例えばｉ＝１０００に設定した場合は１０００回繰り返して行う。
【００２８】
図６は、１０００回繰り返して診断処理を実施した場合の異常回数（エラー発生回数）を示すグラフの一例である。図６はバンク１におけるビット毎のエラー回数をカウントした結果を示し、０〜１５ビット及び１５〜３１ビットについてはエラーがなく、３２〜４７ビット及び４８〜６３ビットについてはエラー回数が多いことが分かる。この結果、メモリＭが図２のような構成である場合、ＩＣ１，ＩＣ２は異常がなく、ＩＣ３，ＩＣ４に異常が発生していると判断することができる。
【００２９】
尚、自己診断結果（異常回数のカウント値）は、ＣＰＵ１１内のメモリ領域や、自己診断によって異常なしと判断されたメモリのメモリ領域に保存される。この自己診断結果を保存するメモリ領域は、例えばプロセッサのアクセス単位を構成するビット数×メモリバンク数×４バイトで定義され、容量の大きさと関係がない。例として、プロセッサのアクセス単位を６４ビット、メモリバンク数を１とした場合、保存するメモリ領域は６４ビット×１バンク×４バイト＝２５６バイトとなる。
【００３０】
以上説明したとおり、本発明のメモリ診断装置は、従来のメモリ診断方法に比べて、実装されている各メモリの物理的配置を考慮して診断を行うことにより、エラーが発生したバンク番号とビット番号から故障のあるメモリＩＣを特定することが可能である。よって、故障異常情報を開発部門等にフィードバックすることで、容易に故障したメモリを交換することが可能であり、作業性を向上することができる。
【００３１】
また、以上の実施形態に限定されることなく、特許請求の範囲を逸脱しない範囲内で他の変形例も考えられる。
【図面の簡単な説明】
【００３２】
【図１】本発明のメモリ診断装置の一実施形態を示すブロック図。
【図２】同実施形態において使用するメモリの内部構成を示す説明図。
【図３】同実施形態におけるメモリ診断の動作を説明するフローチャート。
【図４】同実施形態におけるメモリ診断の動作を説明するフローチャート。
【図５】同実施形態におけるメモリ診断の動作を説明するフローチャート。
【図６】同実施形態におけるメモリ診断結果の一例を示す説明図。
【符号の説明】
【００３３】
１１…ＣＰＵ（プロセッサ）
１２，１３，１４…データバス
１５…バスブリッジ
１６…ＤＭＡＣ
１７，１８，１９…メモリ
２０…入力部
Ｍ…メモリ
ＩＣ１，ＩＣ２，ＩＣ３，ＩＣ４…メモリＩＣ
【図１】
2007241840.tif 000003
【図２】
2007241840.tif 000004
【図３】
2007241840.tif 000005
【図４】
2007241840.tif 000006
【図５】
2007241840.tif 000007
【図６】
2007241840.tif 000008