JP2003076616A - メモリバス診断方法、記憶媒体および情報処理装置 - Google Patents

メモリバス診断方法、記憶媒体および情報処理装置

Info

Publication number
JP2003076616A
JP2003076616A JP2001269787A JP2001269787A JP2003076616A JP 2003076616 A JP2003076616 A JP 2003076616A JP 2001269787 A JP2001269787 A JP 2001269787A JP 2001269787 A JP2001269787 A JP 2001269787A JP 2003076616 A JP2003076616 A JP 2003076616A
Authority
JP
Japan
Prior art keywords
bit
bits
data
value
memory bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001269787A
Other languages
English (en)
Inventor
Masaya Nagatomo
賢哉 長友
Keisuke Fukuda
圭介 福田
Makoto Arai
新井  真
Shuji Maeda
周二 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001269787A priority Critical patent/JP2003076616A/ja
Publication of JP2003076616A publication Critical patent/JP2003076616A/ja
Pending legal-status Critical Current

Links

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】全データバスのスタック、バス同士の接触を効
率的に検出する。 【解決手段】バスのビット数をNとした時に、Nを2つ
のビット群に分割し、片方のビット群のビット値をオー
ル0、もう片方のビット群のビット値をオール1とする
データパターンとし、最終的に各ビット群のビット数が
1となるまで各ビット群を2つに分割していき、各分割
段階で、ビット群単位で全ビット値を0、1いずれかの
値としながら、データパターンを生成することで、デー
タパターンの数を削減する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリのアドレス
バス、データバスについて、0スタック、1スタック、
または、メモリアドレスバスビットやメモリデータバス
ビット同士の接触を検出するためのメモリバス診断方法
に関する。
【0002】
【従来の技術】従来のメモリアドレスバス診断方法の手
法は、特開平5−173900号公報、特開平5−28
058号公報、および、特開2000−215110号
公報等に提案されている。これらの従来技術では、メモ
リバスのあるビットが1もしくは0に固定して書き換え
ができないスタックエラーと、メモリバスの各ビットの
接触によるエラーとを検出する為に、あるデータパター
ンをメモリの各アドレスにライトした後に各アドレスを
リードし、ライト値とリード値とを比較することにより
アドレスバスおよびデータバスの全ビットに対してエラ
ーの診断を行っている。
【0003】上記公報等で提案されたアドレスバス診断
方法においては、メモリの有効最小(最大)アドレスの
ビットをオール0(もしくはオール1)としたアドレス
AD0(AD1)と、有効アドレスの任意の1ビットま
たは複数ビットのみを1(もしくは0)としたアドレス
ADX1(ADX0)とを対とする。このAD0(AD
1)にデータ値オール0(オール1)をライトし、次に
ADX1(ADX0)に、このアドレス値と同一のデー
タ値、又は固有のデータ値をライトした後、アドレスA
D0(AD1)のデータ値をリードする。リードした結
果、書き込んだ値と同じオール0(1)である場合は、
ADX1のアドレスビットを1(0)としたビット位置
には0スタック(1スタック)は発生していないと判断
する。また、アドレスAD0(AD1)のデータ値をリ
ードし、オール0(1)でない場合は、ADX1のアド
レスビットを1(0)としたビット位置に0スタック
(1スタック)が発生していると判断する。この場合、
スタック発生と判断するのは、AD0にデータ値オール
0をライトしていたにもかかわらず、リードした値がラ
イトデータと異なったのは、ADX1に書き込むはずだ
ったデータがアドレスの0スタックにより、AD0の位
置に書き込みを行ってしまったからと考えられるからで
ある。同様な操作を、アドレスビットを1(0)とする
ビット位置を変えながら実施することで、アドレスバス
のスタックを検出している。
【0004】また、診断時にライトを行った全アドレス
を連続してリードし、ライト値とリード値とが同一であ
ることを確認することによって、アドレスバスに他ビッ
トとの接触が発生していないことを確認する手法などが
知られている。
【0005】さらに、データバスの正常性を確認する1
つの方法として、メモリの同一アドレスに対して、デー
タ値の隣接ビットが交互に「0」・「1」となるデータ
パターンDTPと、DTPの全ビットが反転するような
データ値DTQの2つのデータパターンを、順次ライ
ト、リードする方法が知られている。この方法では、2
つのデータパターンDTPとDTQとでは、全ビットに
ついてビット値0、1が反転しているため、全データバ
スビットについて、0スタック、1スタックの有無を検
出することができる。また、データパターンDTP、D
TQともに、隣接ビットが0、1交互に反転しているこ
とから、データバスの隣接ビット、又は自ビットと0、
1が反転しているデータバスビットとの接触の有無を検
出することができる。しかし、データパターンDTPと
DTQとによる診断では、データバス全ビットについて
ビット同士の接触を検出することはできない。そのた
め、任意の1ビットのみを1または0とし他のビットを
0または1としたデータパターンを、同一アドレスへラ
イトし、次にリードする方法も知られている。1とする
ビットを変えながら、1ビットずつ、全ビットについて
診断を行うことで、全データバスの0スタック、1スタ
ック、全データバス間の接触を検出することができる。
その際、同一アドレスを用いることによって、たとえア
ドレスバスでスタックや他ビットとの接触が発生してい
ても、誤ったアドレスがメモリの有効範囲内であれば、
診断データパターンがライト、リードされるアドレスは
同一であるため、データバスの診断は影響を受けない。
【0006】
【発明が解決しようとする課題】上記手法によると、デ
ータバスのビット数分の診断データパターンについて全
てのアドレスに対してリード、ライトを行う必要があ
る。近年、ハードウェア及びソフトウェア技術の進歩に
伴い、使用するメモリの量は増大する傾向にあり、これ
に伴いアドレスバス及びデータバスを構成するビット数
も増大している。このため、ビット数の増大に併せて診
断のデータパターン数も増大し、診断に要する時間も増
している。
【0007】また、上記従来の技術の手法において、ア
ドレスバスのスタックやアドレスバス同士の接触検出に
は、データバスにスタックやデータバス同士の接触が発
生していないことが前提となっている。このため、デー
タバスにスタックやデータバス同士の接触が発生してい
た場合には、アドレスバスのスタックやアドレスバス同
士の接触を検出できない場合がある。一例として、デー
タバスの最下位ビットと、アドレスバスの最下位ビット
が、いずれも0にスタックしていた場合について考え
る。アドレスバスの最下位ビットのみを1としたアドレ
スADX1に対してアドレスと同じデータ値をライトし
ようとした場合、アドレスADX1の最下位ビット1が
0にスタックしているため、誤ってアドレスAD0に対
してADX1の値がライトされる。このとき、データバ
スの最下位ビットも0にスタックしているため、アドレ
スAD0に対して、最下位ビットのみが1のADX1の
値ではなく、データ値オール0がライトされる。続いて
アドレスAD0がリードされる。データバスにスタック
が発生していなければ、最下位ビットが1となるデータ
がリードされることで最下位アドレスビットに0スタッ
クが発生していると判断されるが、AD0のリードデー
タ値は、オール0となってしまうために、最下位アドレ
スビットには、0スタックは発生していないという誤っ
た判断をしてしまう。このように、メモリのアドレスバ
ス診断時には、データバスの正常性が保証されている必
要がある。
【0008】本発明は、メモリバスの接触を効率的に検
出するメモリ診断手法を提供することを目的とする。ま
た、メモリバス診断の信頼性を向上させることを他の目
的とする。
【0009】
【課題を解決するための手段】本発明は、上記課題を解
決するために、メモリバスのエラーを検出するメモリバ
ス診断方法として、第1のステップでは、前記メモリバ
スのビットを第1および第2ビット群に分割して、前記
第1ビット群のビットの値を全て1とし、前記第2ビッ
ト群のビットの値を全て0としたデータパターンを出力
する。第2のステップでは、前記メモリのあらかじめ定
めたアドレスに対して当該データパターンを書き込む。
第3のステップでは、当該アドレスからデータを読み出
す。第4のステップでは、読み出したデータと書き込ん
だ前記データパターンとを比較して一致するか否かを検
出する。第5のステップでは、前記第1のステップにお
ける前記第1および第2のビット群の各々をさらに2分
割させて第1および第2のビット群とすることにより、
各ビット群のビット数が1ビットになるまで、前記第
1、第2、第3および第4のステップを実行させる。本
発明の診断方法を行うことにより、メモリバスの接触に
よるエラーを検出でき、また診断データパターン数を削
減でき、診断時のライト、リード回数を削減することが
できる。
【0010】
【発明の実施の形態】以下、図1および図2を参照し
て、本発明の実施の形態を説明する。
【0011】本実施の形態においては、情報処理装置な
どに備えるメモリのデータバスの接触を検出する為に、
以下に示すような診断を行う。データバスのビット数を
Nとした時に、Nを2つのビット群に分割し、片方のビ
ット群のビット値をオール0、もう片方のビット群のビ
ット値をオール1とするデータパターンをあらかじめ定
めたアドレスに書き込み、そのアドレスを読み出すこと
で書き込んだビット値と読み出したビット値が一致する
かを比較してエラー検出を行う。さらに、2つのビット
群のそれぞれを2分割し、分割したビット郡の一方をビ
ット値オール0、もう片方をビット値オール0とし、書
き込み/読み出しを行い、エラーを検出する。最終的に
ビット数が1となるまで2つに分割していき、各分割段
階で、ビット群ごとに全ビット値を0、1いずれかの値
とするようなデータパターンを生成し、エラー検出を行
う。エラーが発生した位置によりデータバスの接触を検
出することができる。本実施の形態における診断方法を
行うことで、データバスの接触によるエラーを検出で
き、また診断データパターン数を以下に示すような個数
Yとする事ができ、診断時のライト、リード回数を削減
することができる。メモリバスのビット数をNとすると
き、log2 Nの値を越えない最大の整数をQとおい
た場合、Y=2Q+2とすることができる。
【0012】図1に、診断データの生成方法の説明図を
示す。また、図2に、情報処理装置の構成を示す。図2
において、情報処理装置は、メモリ201、アドレスバ
ス202、データバス203、R/W指示線204、C
PU205および入出力部206を備える。CPU20
5は、R/W指示線204によりメモリ201への読み
出しと書き込みとを指示し、アドレスバス202を介し
てアドレスを指示し、データバスを介してデータ値を書
き込んだり読み込んだりする。入出力部206は、指示
受付けや、エラー検出を通知出力する。また、本実施の
形態におけるメモリバスの診断方法を実行するプログラ
ムは、メモリ201に記憶されており、CPU201は
プログラムに従って実行する。もしくはプログラムをメ
モリ201以外の記憶媒体に記憶しておき、記憶媒体か
らプログラムを読み出して実行するようにしてもよい。
【0013】図1において、データバスを構成するビッ
ト数をNとして、Nビットを2つのビット群に分割する
場合のビット数n1の選び方を示している。図1の10
1に示すように、Nを2で割ることにより、N=n1+
n1(Nが偶数の場合)または、N=n1+(n1+
1)(Nが奇数の場合)となるように、ビット数を表す
n1を選択する。
【0014】つぎに、図1の102に示すように、デー
タバスのビット1からビットn1までのビット範囲(B
T11L)と、ビットn1+1からビットNまでのビッ
ト範囲(BT11R)について、BT11Lの全ビット
を1(もしくは0でもよい。以下、括弧内の数字は対応
している)とし、BT11Rの全ビットを0(1)とし
た診断データパターン(1−DT10)を生成する。図
2において、CPU205は、メモリ201のあらかじ
め定めた有効アドレス(ADX)に生成した診断データ
パターンをライトする。ライト後、アドレスADXをリ
ードし、リードデータ値(DTR10)と、ライトデー
タ値(1−DT10)とを比較する。BT11L中のビ
ット値が、1−DT10の同一ビットのビット値1
(0)と異なる場合、このビットで示されるデータバス
が1(0)にスタックしているか、BT11Rに含まれ
るいずれかのビットと接触していると判断する。また、
BT11R中のビット値が、1−DT10の同一ビット
のビット値と異なる場合、このビットで示されるデータ
バスが0(1)にスタックしているか、BT11Lに含
まれるいずれかのビットと接触していると判断する。リ
ードデータ値DTR10とライトデータ値1−DT10
との値が同一である場合、BT11Lに含まれる全ビッ
トと、BT11Rに含まれる全ビットとの間で、ビット
同士の接触は発生していないと判断する。
【0015】次に、BT11Lの全ビットを0(1)、
BT11Rの全ビットを1(0)とし、ちょうど1−D
T10の全ビットが反転するような新たな診断データパ
ターン(1−DT11)を生成し、アドレスADXにラ
イトを行う。ライト後、アドレスADXをリードし、リ
ードデータ値DTR11と、ライトデータ値1−DT1
1とを比較する。BT11L中のビット値が、1−DT
11の同一ビットのビット値1(0)と異なる場合、こ
のビットで示されるデータバスが0(1)にスタックし
ているか、BT11Rに含まれるいずれかのビットと接
触していると判断する。また、BT11R中のビット値
が、1−DT11の同一ビットのビット値と異なる場
合、このビットで示されるデータバスが1(0)にスタ
ックしているか、BT11Lに含まれるいずれかのビッ
トと接触していると判断する。読み出したDTR11と
書き込んだ1−DT11との値が同一である場合、BT
11Lに含まれる全ビットと、BT11Rに含まれる全
ビットとの間で、ビット同士の接触は発生していないと
判断する。
【0016】1−DT10と1−DT11とは、全ビッ
トについて0、1が反転していることから、以上の手順
より、エラーが発生していない場合には全ビットについ
て0スタック、1スタックが発生していないこと、BT
11Lに含まれる全ビットと、BT11Rに含まれる全
ビット同士では接触が発生していないと判断することが
できる。
【0017】次に、図1の103に示すように、BT1
1LとBT11Rとを、それぞれ2分割するようなビッ
ト数n2を選択する。BT11Lについて、n1=n2
+n2(n1が偶数の場合)またはn1=n2+(n2
+1)(n1が奇数の場合)となる様に、ビット数を表
す変数n2を選択する。また、BT11Rについても2
分割するが、もとのNの値によって4つの場合に分けら
れる。BT11Rは、n1=n2+n2(Nが偶数であ
り、かつ、n1が偶数の場合)、n1=n2+(n2+
1)(Nが偶数であり、かつ、n1が奇数の場合)、n
1+1=n2+n2(Nが奇数であり、BT11Rのビ
ット数が偶数であった場合)、もしくは、n1+1=n
2+(n2+1)(Nが奇数であり、BT11Rのビッ
ト数が奇数であった場合)となる様にn2を選択する。
選択したn2により、BT11Lをビット1からビット
n2までの範囲(BT21L)と、ビットn2からビッ
トn1までの範囲(BT21R)とに2分割する。BT
11Rについても同様にBT22LとBT22Rとに2
分割する。
【0018】つぎに、図1の104に示すように、BT
21LおよびBT21Rと、BT22LおよびBT22
Rとについて、それぞれn1ビットのサイズを持つ診断
データパターンDT2Aと、n1(Nが偶数の場合)も
しくはn1+1(Nが奇数の場合)ビットのサイズを持
つDT2Bとを作成する。この場合、BT21Lおよび
BT22Lの全ビットを1(0)とし、BT21Rおよ
びBT22Rの全ビットを0(1)とした診断データパ
ターン(1−DT20)を生成し、アドレスADXに書
き込みを行う。アドレスADXからデータを読み出すこ
とで、診断データパターン(1−DT20)のDT2A
とDT2Bとを用いて、BT21LおよびBT21R
と、BT22LおよびBT22Rとについてエラーの検
出を行う。さらに(1−DT20)のデータを反転させ
た(1−DT21)のデータパターンで、同様にアドレ
スADXにデータの書き込み読み出しを行い、エラー検
出を行う。これにより、BT21LおよびBT21Rに
含まれているビット同士の接触を検出する診断と、BT
22LおよびBT22Rに含まれているビット同士の接
触を検出する診断とを行う。全ビットについて0スタッ
ク、1スタックが発生していないことは、最初の診断で
検出可能であるため、ここでは判断を行う必要はない。
【0019】上記診断により、異なる診断データを書き
込んだBT11LとBT11Rとに含まれているデータ
バスの全ビット同士の接触が検出可能となる。図1の1
04に示すように、DT2AとDT2Bとを結合したN
ビットのサイズを持つ1−DT20を作成することによ
り、BT21LおよびBT21Rと、BT22Lおよび
BT22Rとの診断を同時に実施することができる。B
T21LおよびBT21Rと、BT22LおよびBT2
2Rとについての診断の結果、BT21LとBT21R
とに含まれている全ビット同士が接触しておらず、ま
た、BT22LとBT22Rとに含まれている全ビット
同士も接触していない場合、さらに、BT21L、BT
21R、BT22L、BT22Rを同様の手法で2分割
していき、同様の診断を繰返す。
【0020】上記手法により、図1の105に示すよう
に、m回(ただし、mは整数で1<m)の分割及びデー
タパターン値のライト、リードによる診断を繰返した結
果、各分割ビット範囲のビット数(BTmnL:分割し
た左側のビット数)と(BTmnR:分割した右側のビ
ット数)は最終的に1ビットとなり、1ビットずつの診
断、すなわち隣接するデータバスのビットの接触を診断
することができる。これにより、データバスについての
スタック、バス同士の接触を検出する診断を実施した
後、データバスにおいてエラーが発生していない場合
に、従来技術で示されるような手法などによって、アド
レスバスの診断を行うことができる。さらに、上記デー
タバスの診断方法を、アドレスバスの診断においても適
用してもよい。
【0021】本実施の形態によれば、ビット群の分割の
方法については複数の方法が考えられるが、ビット数P
について、P=p+p、もしくはP=p+(p+1)と
なる様にビット数pを選択して分割することで、全分割
ビット群のビット数が1ビットとなるまでの最終的な分
割段数mを最小とすることができる。mは、データバス
を構成するビット数Nが2のx乗(xは正の整数)で表
されるとき、最小のmは、m=Q(ただし、Qはlog
2 Nの値を越えない最大の整数)で表され、m回目の
分割により全てのBTmnL、BTmnRは1ビットと
なる。
【0022】NがN=2のx乗(xは正の整数)で表さ
れない場合、データビットの分割回数が最終分割段数m
に到達する前のk回目の分割(1≦k<m)において、
分割するビット群のビット数PがP=p+(p+1)と
なるpにより分割することになり、この場合、k回目に
おいて、BTmnLとBTmnRとのビット数が異なる
場合が発生する。その場合は、さらにもう1回の分割が
必要となり、最終的に全ビット群のビット数が1となる
mは、m=Q+1となる。この結果、診断パターン(1
−DTm0)、(1−DTm1)の0と1とのデータ反
転も含め、ライト及びリードの試験回数Xは、最大X=
(2Q+2)回となる。
【0023】このように、ビット群を2つに分割する際
に、2つのビット群のビット数を同じ数かまたは片方が
1だけ大きいビット数を選ぶことで、全ビット群のビッ
ト数が1に到達するまでのデータパターン数mを最小と
することができ、分割の途中で、同じビット数のビット
群に分割できないパターンが何回生じても、片方のビッ
ト群のビット数が1だけ大きくなるような分割ビット数
を選択し続けることで、どんなNに対しても、(2Q+
2) 回のデータパターンを生成するだけでよい。
【0024】また、第1段階において、2つのビット群
に分割する代わりに、3分割、4分割、…もしくはn(n
は2以上の整数)分割に分割するようにしてもよい。こ
の場合、分割後にビット群のビットの値を、隣り合うビ
ット群ごとに交互にオール1もしくはオール0とする。
さらに、このビット群をn分割し、ビット群のビットの
値を、隣り合うビット群ごとに交互にオール1もしくは
オール0とし、最終的にビット群のビットが1ビットに
なるまで分割する。この分割方法によっても、上記と同
様の手法でデータパターンを生成することができる。
【0025】また、2つのビット群のビット数を、同じ
数か又は片方が1だけ大きい数としないような分割方法
によっても、上記と同様の手法でデータパターンを生成
することができる。この場合には、診断データパターン
の数は上述した最小値より大きくなる。
【0026】また、上記手法のように、データビットを
段階毎に、元のビット群より小さい2つのビット群に分
割していき、最終的に全ビット群のビット数を1とする
ようにデータパターンを作成する方法に加えて、逆に2
つのビット群を統合していき、最終的にNに到達すると
いう手法によっても、データパターンを作成するように
してもよい。もしくは、分割・統合を上述のように段階
的に行わなくても、最終的に上述した全ての診断データ
パターンについて診断を行えば、どのような順番でデー
タパターンを作成・診断してもよい。
【0027】さらに、上記実施の形態においては、アド
レスADXに対して全ての診断データパターンをライト
・リードしているが、診断データパターンごとに異なる
アドレスにライト・リードして診断してもよい。
【0028】また、上記実施の形態においては、プログ
ラムを実行するソフトウエア処理について説明したが、
図7に示すようなハードウエア構成を備えて、上記手法
を実現するようにしてもよい。図7において、情報処理
装置は、診断データパターンを生成するエンコード部7
01と、リードデータ値とライトデータ値とを比較する
判定部702と、メモリ703と、メモリバス704と
を備える。図7において、情報処理装置は、メモリバス
704のデータバスを診断するときに、エンコード部7
01が診断データパターンを生成し、メモリ703の指
定アドレスに書き込みを行い、判定部702では、メモ
リ703の指定アドレスからデータを読み出し、リード
データ値とライトデータ値とを比較し、一致するか否か
を判断し、一致しない場合にはエラー検出とすることが
できる。また、エンコード部701に、あらかじめ診断
データパターンを保持しておいてもよい。
【0029】次に、N=32(N=2)の場合のメモ
リバス診断手順でのデータパターン生成について、図
3、図5および図6を参照して具体的に説明する。図3
に32ビットの診断データパターンを示し、図5および
図6に診断方法のプログラムのフローチャートを示す。
図5および図6において、診断時にリードデータ値とラ
イトデータ値とが一致しない場合にはエラーが発生した
として、それぞれのデータパターンに対応するフラグを
セットしている。
【0030】図3の301に示すように、32ビット
を、まず16ビットずつの2つのビット群に分割し、ビ
ット1からビット16までの16ビットのビット群をB
T11Lとし、ビット17からビット32までの16ビ
ットのビット群をBT11Rとする。BT11Lの16
ビットのビット値をオール1とし、BT11Rの16ビ
ットのビット値をオール0としたデータ値(3−DT1
0)を生成する。図5に示すように、メモリのあらかじ
め定めた有効アドレスADXに対して、データ値(3−
DT10)をライトする(S501)。つぎに、アドレ
スADXをリードし、リードデータ値がライトデータ値
と一致するか否かを判断する(S502)。判断した結
果、一致しなければ、エラー位置を示すフラグ1をセッ
トする(S503)。このフラグ1がセットされている
場合、BT11L中のビット値に0があれば、そのビッ
トは、BT11Rのいずれかのビットと接触している
か、0にスタックしていると判断する。また、BT11
R中のビット値に1があれば、そのビットは、BT11
Lのいずれかのビットと接触しているか、1にスタック
していると判断する。
【0031】次に、図3の302に示すように、3−D
T10の各ビットの0と1を反転させた、3−DT11
を生成し、3−DT10と同様にアドレスADXに対し
てライトし(S504)、リード後、リードデータ値が
ライトデータ値と一致するか否かを判断する(S50
5)。判断した結果、一致しなければ、フラグ2をセッ
トする(S506)。このフラグ2がセットされている
場合、BT11L中のビット値に1があれば、そのビッ
トは、BT11Rのいずれかのビットと接触している
か、1にスタックしていると判断する。また、BT11
R中のビット値に0があれば、そのビットは、BT11
Lのいずれかのビットと接触しているか、0にスタック
していると判断する。フラグ1およびフラグ2がセット
されていなければ、リードデータ値と、ライトデータ値
が同一である場合であるので、BT11R中のビット
と、BT11L中のビット間では、いずれのビット同士
の接触も発生していないと判断する。
【0032】上記の2つの診断データパターン(3−D
T10)と(3−DT11)とは、BT11Lの全ビッ
トとBT11Rの全ビットが0、1反転していることか
ら、両データが正しくリードされた場合、全ビットにつ
いて、0スタック、1スタックが発生していないと判断
する。ただし、この段階では、BT11L中のビット
間、BT11R中のビット間で隣接ビットとの接触があ
る場合については検出できないので、引き続きデータバ
スを分割していき診断を行う。
【0033】次に、図3の303に示すように、16ビ
ット幅のBT11Lと、16ビット幅のBT11Rとを
それぞれ、8ビット幅の2つのビット群に分割する。ビ
ット1からビット8までの8ビットのビット群をBT2
1L、ビット9からビット16までの8ビットのビット
群をBT21R、ビット17からビット24までの8ビ
ットのビット群をBT22L、ビット25からビット3
2までの8ビットのビット群をBT22Rとする。BT
21Lの8ビットのビット値をオール1、BT21Rの
8ビットのビットをオール0、BT22Lの8ビットの
ビット値をオール1、BT22Rの8ビットのビットを
オール0としたデータパターン(3−DT20)を生成
する。アドレスADXに対して、データパターン(3−
DT20)をライトし(S507)、リード後、リード
データ値がライトデータ値と一致するか否かを判断する
(S508)。判断した結果、一致しなければ、フラグ
3をセットする(S509)。このフラグ3がセットさ
れている場合、BT21L中のビット値に0があれば、
そのビットは、BT21Rのいずれかのビットと接触し
ているか、0にスタックしていると判断する。BT21
R中のビット値に1があれば、そのビットは、BT21
Lのいずれかのビットと接触しているか、1にスタック
していると判断する。BT22L中のビット値に0があ
れば、そのビットは、BT22Rのいずれかのビットと
接触しているか、0にスタックしていると判断する。B
T22R中のビット値に1があれば、そのビットは、B
T22Lのいずれかのビットと接触しているか、1にス
タックしていると判断する。
【0034】次に、図3の304に示すように、図3の
303の(3−DT20)について、BT21RとBT
21L間、BT22RとBT22L間で、ビットの0と
1を反転させたデータパターン(3−DT21)を生成
する。(3−DT21)についても、(3−DT20)
と同様にADXに対してライトし(S510)、リード
後、リードデータ値がライトデータ値と一致するか否か
を判断する(S511)。判断した結果、一致しなけれ
ば、フラグ4をセットする(S512)。このフラグ4
がセットされている場合、BT21R中のビット値に0
があれば、そのビットは、BT21Lのいずれかのビッ
トと接触しているか、0にスタックしていると判断す
る。BT21L中のビット値に1があれば、そのビット
は、BT21Rのいずれかのビットと接触しているか、
1にスタックしていると判断する。BT22R中のビッ
ト値に0があれば、そのビットは、BT22Lのいずれ
かのビットと接触しているか、0にスタックしていると
判断する。BT22L中のビット値に1があれば、その
ビットは、BT22Rのいずれかのビットと接触してい
るか、1にスタックしていると判断する。
【0035】リードデータ値と、ライトデータ値とが同
一である場合は、BT21R中のビットとBT21L中
のビット間では、いずれのビット同士の接触も発生して
いないと判断し、また、BT22R中のビットとBT2
2L中のビット間でも、いずれのビット同士の接触も発
生していないと判断する。
【0036】上記の2つの診断データパターン(3−D
T20)と(3−DT21)とは、BT21Lの全ビッ
トとBT21Rの全ビットが0、1反転すること、BT
22Lの全ビットとBT22Rの全ビットが0、1反転
していることから、両データが正しくリードされれば、
全ビットについて、0スタック、1スタックがないこと
が判断できる。なお、既に(3−DT10)と(3−D
T11)のライト、リードを行って、スタックがないこ
とを確認している場合には、この判断を省略できる。ま
た、この段階では、BT21L中のビット間、BT21
R中のビット間、BT22L中のビット間、BT22R
中のビット間で、隣接ビットとの接触がある場合は検出
できないため、引き続き分割して診断を行う。
【0037】上記と同様の手順で、さらにビット群を順
次2つに分割していき、図3の309の(3−DT5
0)および図3の310の(3−DT51)に示すよう
に、最終的に全ビット群中のビット数が1になるところ
まで分割、診断を実施する(S513〜S530)。最
後にフラグ1〜フラグ10までいずれもセットされてい
なければ(S531)、全ビット同士の接触がなく、ま
た、スタックがないと判断することができる(S53
2)。いずれかのフラグがセットされていればエラー検
出として検出でき、また、どのフラグがセットされてい
たかによりエラー位置を検出することができる(S53
3)。
【0038】以上示したような処理により、データパタ
ーン(3−DT50)および(3−DT51)の段階ま
で分割、データパターン生成、診断を繰返すことで、全
ビットについて、隣接するビット同士の接触についても
検出することができる。また、上記処理において、いず
れかのフラグがセットされたときに、エラー検出として
処理を終了し、エラー発生を入出力部206より外部に
通知出力するようにしてもよい。また、前述したよう
に、10個のデータパターンによる診断は、どの順番で
実行してもよい。
【0039】本実施の形態によれば、図3の301〜3
10に示す(3−DT10)〜(3−DT51)の10
個の診断データパターンによって、データバスの全ビッ
トについて、各ビット間同士の接触、各ビットの0スタ
ック、1スタックの検出を行うことができる。
【0040】また、32ビットのデータバスについて、
全ビットのスタックと全ビット間での接触を完全に検出
するために、1ビットのみ1を立てそれ以外は0とする
データパターンによって診断を行う場合には32個のデ
ータパターンが必要であったものが、上記手法によれば
10個のデータパターンですむことになる。
【0041】次に、N=33(N≠2のx乗)の場合の
メモリバス診断手順でのデータパターン生成について、
図4を参照して具体的に説明する。
【0042】図4の401に示すように、33ビット
を、16ビットと17ビットとの2つのビット群に分割
する。ビット1からビット16までの16ビットのビッ
ト群をBT11Lとし、ビット18からビット33まで
の17ビットのビット群をBT11Rとし、BT11L
の16ビットのビット値をオール1とし、BT11Rの
ビット値をオール0としたデータ値(4−DT10)を
生成する。メモリのあらかじめ定めた有効アドレスAD
Xに対して、データ値4−DT10をライトした後、ア
ドレスADXのリードを行う。リードデータ値につい
て、BT11L中のビット値に0があれば、そのビット
は、BT11Rのいずれかのビットと接触しているか、
0にスタックしていると判断する。BT11R中のビッ
ト値に1があれば、そのビットは、BT11Lのいずれ
かのビットと接触しているか、1にスタックしていると
判断する。
【0043】次に、図4の402に示すように、(4−
DT10)の各ビットの0と1を反転させたデータパタ
ーン(4−DT11)を生成する。(4−DT11)に
ついても、(4−DT10)と同様にADXに対してラ
イトとリードを行い、リードデータ値について、BT1
1L中のビット値に1があれば、そのビットは、BT1
1Rのいずれかのビットと接触しているか、1にスタッ
クしていると判断する。BT1R中のビット値に0があ
れば、そのビットは、BT11Lのいずれかのビットと
接触しているか、0にスタックしていると判断する。リ
ードデータ値と、ライトデータ値が同一である場合は、
BT1R中のビットと、BT11L中のビット間では、
いずれのビット同士の接触も発生していないと判断す
る。
【0044】上記の2つの診断データパターン(4−D
T10)と(4−DT11)とは、BT11Lの全ビッ
トとBT11Rの全ビットとが0、1反転していること
から、両データが正しくリードされた場合、全ビットに
ついて、0スタック、1スタックが発生していないと判
断できる。ただし、この段階では、BT11L中のビッ
ト間、BT1R中のビット間で隣接ビットとの接触があ
る場合については検出できないので、引き続きデータバ
スを分割していき診断を行う。
【0045】次に、図4の403に示すように、16ビ
ット幅のBT11Lを、8ビット幅の2つのビット群に
分割し、17ビット幅のBT11Rを、8ビット幅と9
ビット幅の2つのビット群に分割する。ビット1からビ
ット8までの8ビットのビット群をBT21L、ビット
9からビット16までの8ビットのビット群をBT21
R、ビット17からビット24までの8ビットのビット
群をBT22L、ビット25からビット33までの9ビ
ットのビット群をBT22Rとする。BT21Lのビッ
ト値をオール1、BT21Rの8ビットのビット値をオ
ール0、BT22Lの8ビットのビット値をオール1、
BT22Rの8ビットのビット値をオール0としたデー
タパターン(4−DT20)を生成する。アドレスAD
Xに対して、データ値4−DT20をライトした後、ア
ドレスADXのリードを行う。リードデータ値につい
て、BT21R中のビット値に1があれば、そのビット
は、BT21Lのいずれかのビットと接触しているか、
1にスタックしていると判断する。BT21L中のビッ
ト値に0があれば、そのビットは、BT21Rのいずれ
かのビットと接触しているか、0にスタックしていると
判断する。BT22R中のビット値に1があれば、その
ビットは、BT22Lのいずれかのビットと接触してい
るか、1にスタックしていると判断する。BT22L中
のビット値に0があれば、そのビットは、BT22Rの
いずれかのビットと接触しているか、0にスタックして
いると判断する。
【0046】次に、図4の404に示すように、図4の
403の(4−DT20)について、BT21RとBT
21L間、BT22RとBT22L間で、ビットの0と
1を反転させたデータパターン(4−DT21)を生成
する。(4−DT21)についても、4−DT20と同
様に、ADXに対してライトとリードを行い、リードデ
ータ値について、BT21R中のビット値に0があれ
ば、そのビットは、BT21Lのいずれかのビットと接
触しているか、0にスタックしていると判断する。BT
21L中のビット値に1があれば、そのビットは、BT
21Rのいずれかのビットと接触しているか、1にスタ
ックしていると判断する。BT22R中のビット値に0
があれば、そのビットは、BT22Lのいずれかのビッ
トと接触しているか、0にスタックしていると判断す
る。BT22L中のビット値に1があれば、そのビット
は、BT22Rのいずれかのビットと接触しているか、
1にスタックしていると判断する。
【0047】リードデータ値と、ライトデータ値とが同
一である場合は、BT21R中のビットと、BT21L
中のビット間では、いずれのビット同士の接触も発生し
ていないと判断し、BT22R中のビットと、BT22
L中のビット間でも、いずれのビット同士の接触も発生
していないと判断する。上記の2つの診断データパター
ン(4−DT20)と(4−DT21)とは、BT21
Lの全ビットとBT21Rの全ビットが0、1反転する
こと、BT22Lの全ビットとBT22Rの全ビットが
0、1反転していることから、両データが正しくリード
されれば、全ビットについて、0スタック、1スタック
がないことも判断できる。なお、既に(4−DT10)
と(4−DT11)のライト、リード行って、スタック
の有無の判断を行っている場合は、この判断を省略でき
る。また、この段階では、BT21L中のビット間、B
T21R中のビット間、BT22L中のビット間、BT
22R中のビット間で、隣接ビットとの接触がある場合
は検出できないため、引き続き分割して診断を行う。
【0048】上記と同様の手順で、さらにビット群を順
次2つに分割していき、図4の411の(4−DT6
0)および図4の412の(4−DT61)のように、
最終的に全ビット群中のビット数が1になるところまで
分割、診断を実施する。N=33の時は、N=32の時
と同じ数の分割では、ビット数が2ビットのビット群が
残るため、さらにもう1回の分割を行う必要がある。そ
の際、(4−DT50)、(4−DT51)の段階でビ
ット群中のビット数が既に1に達している他のビット群
のビット値については、(4−DT60)、(4−DT
61)では全ビット1または全ビット0とする。(4−
DT60)、(4−DT61)の段階で、全ビットにつ
いて、隣接するビット同士の接触についても検出するこ
とができる。
【0049】以上示したような処理により、図4の40
1〜412に示す(4−DT10)〜(4−DT61)
の12個のデータパターンによって、データバスの全ビ
ットについて、各ビット間同士の接触、各ビットの0ス
タック、1スタックの検出を行うことができる。また、
33ビットのデータバスについて、全ビットのスタック
と全ビット間での接触を完全に検出するために、1ビッ
トのみ1を立てそれ以外は0とするデータパターンによ
って診断を行う場合には、33個のデータパターンが必
要であったものが、上記手法によれば12個のデータパ
ターンですむことになる。
【0050】
【発明の効果】本発明によれば、メモリのデータバス、
アドレスバスのスタック、データバス同士、アドレスバ
ス同士の接触を、効率的に検出するメモリ診断手法を実
現することができる。また、メモリバス診断の信頼性を
向上させることができる。
【図面の簡単な説明】
【図1】実施の形態における診断データ生成を示す説明
図。
【図2】実施の形態における情報処理装置の構成図。
【図3】実施の形態における診断データのビットパター
ンを示す説明図。
【図4】実施の形態における診断データのビットパター
ンを示す説明図。
【図5】実施の形態における診断処理フローチャート
(その1)。
【図6】実施の形態における診断処理フローチャート
(その2)。
【図7】実施の形態におけるハードウエア構成図。
【符号の説明】
101…診断データ生成時にNビットを2つに分割する
際のデータパターン、102…診断データ生成時にNビ
ットを2つに分割して生成した診断データパターン、1
03…診断データ生成時にNビットを2つに分割し、そ
れぞれをさらに2つに分割する際のデータパターン、1
04…Nビットを2つに分割し、それぞれをさらに2つ
に分割して生成した診断データパターン、105…Nビ
ットを、分割していき、分割されたビット群のビット数
が1ビットとなった際のデータパターン、201…メモ
リ、301…32ビットを2つに分割して生成した診断
データパターン、302…診断データパターン、303
…診断データパターン、304…診断データパターン、
305…診断データパターン、306…診断データパタ
ーン、307…診断データパターン、308…診断デー
タパターン、309…診断データパターン、310…診
断データパターン、401…32ビットを2つに分割し
て生成した診断データパターン、402…反転させて生
成した診断データパターン、403…2つに分割して生
成した診断データパターン、404…反転させて生成し
た診断データパターン、405…2つに分割して生成し
た診断データパターン、406…反転させて生成した診
断データパターン、407…2つに分割して生成した診
断データパターン、408…反転させて生成した診断デ
ータパターン、409…2つに分割して生成した診断デ
ータパターン、410…反転させて生成した診断データ
パターン、411…全ビット群のビット数が1となった
診断データパターン、412…反転させて生成した診断
データパターン。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 新井 真 神奈川県横浜市戸塚区戸塚町216番地 株 式会社日立製作所通信事業部内 (72)発明者 前田 周二 神奈川県横浜市戸塚区戸塚町216番地 株 式会社日立製作所通信事業部内 Fターム(参考) 2G132 AA08 AB01 AC03 AG02 AL00 5B018 GA03 HA01 MA34 NA01 5B048 AA06 CC02 DD01 DD05 EE07

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】メモリバスのエラーを検出するメモリバス
    診断方法であって、 前記メモリバスのビットを第1および第2ビット群に分
    割して、前記第1ビット群のビットの値を全て1とし、
    前記第2ビット群のビットの値を全て0としたデータパ
    ターンを出力する第1のステップと、 前記メモリのあらかじめ定めたアドレスに対して当該デ
    ータパターンを書き込む第2のステップと、 当該アドレスからデータを読み出す第3のステップと、 読み出したデータと書き込んだ前記データパターンとを
    比較して一致するか否かを検出する第4のステップと、 前記第1のステップにおける前記第1および第2のビッ
    ト群の各々をさらに2分割させて第1および第2のビッ
    ト群とすることにより、各ビット群のビット数が1ビッ
    トになるまで、前記第1、第2、第3および第4のステ
    ップを実行させる第5のステップとを備えることを特徴
    とするメモリバス診断方法。
  2. 【請求項2】請求項1に記載のメモリバス診断方法をC
    PUにより実行するプログラムを記憶する記憶媒体。
  3. 【請求項3】メモリと、メモリバスとを備える情報処理
    装置において、 前記メモリバスを診断するためのデータパターンを出力
    し、前記メモリに書き込むエンコード手段と、 前記メモリに書き込まれたデータを読み出し、当該デー
    タと前記エンコード手段により書き込まれたデータパタ
    ーンとを比較し、一致するか否かを判定する判定手段と
    を備え、 前記エンコード手段は、前記メモリバスのビットを第1
    および第2ビット群に分割して、前記第1ビット群のビ
    ットの値を全て1とし、前記第2ビット群のビットの値
    を全て0としたデータパターンを出力することを特徴と
    する情報処理装置。
  4. 【請求項4】メモリと、メモリバスと、当該メモリバス
    のエラーを診断する診断部とを備える情報処理装置にお
    いて、 前記診断部は、前記メモリバスのビットを第1および第
    2ビット群に分割し、 前記第1ビット群のビットの値を全て1とし、前記第2
    ビット群のビットの値を全て0としたデータパターンを
    出力し、 前記第1および第2のビット群の各々をさらに2分割
    し、第1および第2のビット群とすることにより、各ビ
    ット群のビット数が1ビットになるまで、ビット分割を
    行ったデータパターンを出力することを特徴とする情報
    処理装置。
  5. 【請求項5】メモリと、メモリバスと、当該メモリバス
    のエラーを診断する診断部とを備える情報処理装置にお
    いて、 前記診断部は、前記メモリバスのビットをn(nは2以
    上の整数)個のビット群に分割し、 前記ビット群のビットの値を、隣り合うビット群ごとに
    交互にオール1もしくはオール0としたデータパターン
    を出力することを特徴とする情報処理装置。
JP2001269787A 2001-09-06 2001-09-06 メモリバス診断方法、記憶媒体および情報処理装置 Pending JP2003076616A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001269787A JP2003076616A (ja) 2001-09-06 2001-09-06 メモリバス診断方法、記憶媒体および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001269787A JP2003076616A (ja) 2001-09-06 2001-09-06 メモリバス診断方法、記憶媒体および情報処理装置

Publications (1)

Publication Number Publication Date
JP2003076616A true JP2003076616A (ja) 2003-03-14

Family

ID=19095541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001269787A Pending JP2003076616A (ja) 2001-09-06 2001-09-06 メモリバス診断方法、記憶媒体および情報処理装置

Country Status (1)

Country Link
JP (1) JP2003076616A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089070A (ja) * 2010-10-22 2012-05-10 Denso Corp 電子装置、及び、これを用いた電動パワーステアリング装置
JP2012122748A (ja) * 2010-12-06 2012-06-28 Nec Corp 情報処理装置及びその作動方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089070A (ja) * 2010-10-22 2012-05-10 Denso Corp 電子装置、及び、これを用いた電動パワーステアリング装置
JP2012122748A (ja) * 2010-12-06 2012-06-28 Nec Corp 情報処理装置及びその作動方法

Similar Documents

Publication Publication Date Title
JP4799027B2 (ja) 記憶制御回路、記憶制御回路におけるアドレスエラーチェック方法
US6018817A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
JP2023512892A (ja) 比較システム
JPH1040122A (ja) 計算機
CN105027084B (zh) 在移动通信系统中控制存储器的装置和方法
JP2003076616A (ja) メモリバス診断方法、記憶媒体および情報処理装置
JP2002312252A (ja) メモリ診断装置及び診断方法
WO2006106583A1 (ja) メモリセルのデータ読出し回路、メモリ回路、メモリセルのデータ読出し方法
JP2908272B2 (ja) 情報処理装置
TWI748507B (zh) 資料存取系統及操作資料存取系統的方法
JP3391475B2 (ja) データの書き込み方法および読み出し方法ならびにこれらの方法を実施するデータ記録再生装置
JP3169925B2 (ja) メモリアドレスバス試験方式
JP2007257628A (ja) 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット
US20080109092A1 (en) System for Elevator Electronic Safety Device
JPH05266694A (ja) メモリテスト方式
JP2511028B2 (ja) メモリテスト方法
JPH05165734A (ja) 主記憶装置の固定障害診断装置
JPH10333991A (ja) データ書込及び読出の誤り検出方法並びに半導体装置の自己検査方法
JP2808983B2 (ja) メモリ診断方法
JPH05173900A (ja) メモリアドレスバス試験方式
JPH06301604A (ja) 記憶再生システム
JP3527825B2 (ja) 記憶装置
JPH0528058A (ja) メモリアドレスバス試験方式
JPH08203299A (ja) 内容アドレス式メモリ
JPS63182759A (ja) メモリ監視方式

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040210