JPH0449139B2 - - Google Patents
Info
- Publication number
- JPH0449139B2 JPH0449139B2 JP58146803A JP14680383A JPH0449139B2 JP H0449139 B2 JPH0449139 B2 JP H0449139B2 JP 58146803 A JP58146803 A JP 58146803A JP 14680383 A JP14680383 A JP 14680383A JP H0449139 B2 JPH0449139 B2 JP H0449139B2
- Authority
- JP
- Japan
- Prior art keywords
- syndrome
- vector
- error
- matrix
- bit
- 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.)
- Expired - Lifetime
Links
- 239000011159 matrix material Substances 0.000 claims description 38
- 208000011580 syndromic disease Diseases 0.000 claims description 38
- 239000013598 vector Substances 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
〔本発明の技術的分野〕
本発明はメモリ・アレイにおける二重エラーの
訂正ならびに三重エラーおよびパツケージ・エラ
ーの検出のためのエラー訂正システムに係る。 〔本発明の背景〕 二重エラー訂正および三重エラー検出(DEC
−TED)コードは広く知られたBCH符号化理論
(W.W.Peterson and E.J.Weldon、Jr.、“Error
Correcting Codes、”1972、MIT Press参照)に
基づいて作成可能である。BCHコードを作成す
るには、αを有限体GF(2mの原始元とし、かつn
=2m−1とする。もし、GF(2m)の元が2進m重
として表現されれば、長さnのDEC−TED
BCHコードは下記のパリテイ検査マトリツクス
を有するコードとして定義可能である: H=1 1 1 1 1 1 α α2…αi …αn-1 1 α3 α6 α3i α3(n-1) (1) このコードの検査ピツトの数γおよびデータ・
ビツトの数kはそれぞれ、2m+1およびn−2m
−1である。もし、128データ・ビツトがこのコ
ードによつて保護されることになれば、mは8以
上でなければならないことは明白である。m=8
とすれば、n=255、k=238およびγ=17を有す
る(255、238)DEC−TED BCHコードが得ら
れる。 BCHコードのパリテイ検査マトリツクスから
データ・ビツト列を削除することによつて希望す
る長さまでBCHコードを短縮することができる。
これを実行すると、前記(1)式のマトリツクスHに
よつて定義された(255、238)DEC−TED
BCHコードから(145、128)に短縮されたDEC
−TED BCHコードを得ることができる。 検査ビツト数はまた、コード短縮プロセスで、
パリテイ検査マトリツクスの中の削除されるデー
タ・ビツト列を適切に選択することによつて減少
可能である。前記を行なう方法に関する本発明者
の論文“On Shortened Finite Geometry
Codes”が“Information and Control”、
April1972の216頁以下に記載されている。式(1)の
パリテイ検査にマトリツクスHにこの論文に記載
された方法を使用するには: (a) パリテイ検査マトリツクスHに基本行オペレ
ーシヨン(W.W.Peterson and E.J.Weldon、
Jr.、“Error Correcting Codes”、1972、MIT
Press参照)を適用する。H1を行オペレーシヨ
ン後のマトリツクスとし、VをH1の行ペクト
ルとする。 (b) H1から行ベクトルVおよびVの中の「1」
に対応する位置の列ベクトルを削除する。その
結果得られるマトリツクスは2m個の検査ビツ
トを有する短縮されたDEC−TEDコードのパ
リテイ検査マトリツクスである。 もし、mが偶数ならば、マトリツクスHに基本
行オペレーシヨンを適用することによつて常に、
2m-1−2m/2−1)個の1を含む行ベクトルが得ら
れる。前記短縮構成を適用することによつて、 n=2m-1+2m/2、γ=2m、を有するDEC−TED
コードが作成可能である。もし、mが奇数なら
ば、マトリツクスHに基本オペレーシヨンを適用
することによつて、 (2m-1−2(m-1)/2−1)個の1を含む行ベクトル
が得られ、n=2m-1+2(m-1)/2、γ=2mを有する
DEC−TEDコードが作成可能である。 〔本発明の概要〕 本発明に従つて生成された、(144、128)コー
ドのマトリツクスを第1表に示す。
訂正ならびに三重エラーおよびパツケージ・エラ
ーの検出のためのエラー訂正システムに係る。 〔本発明の背景〕 二重エラー訂正および三重エラー検出(DEC
−TED)コードは広く知られたBCH符号化理論
(W.W.Peterson and E.J.Weldon、Jr.、“Error
Correcting Codes、”1972、MIT Press参照)に
基づいて作成可能である。BCHコードを作成す
るには、αを有限体GF(2mの原始元とし、かつn
=2m−1とする。もし、GF(2m)の元が2進m重
として表現されれば、長さnのDEC−TED
BCHコードは下記のパリテイ検査マトリツクス
を有するコードとして定義可能である: H=1 1 1 1 1 1 α α2…αi …αn-1 1 α3 α6 α3i α3(n-1) (1) このコードの検査ピツトの数γおよびデータ・
ビツトの数kはそれぞれ、2m+1およびn−2m
−1である。もし、128データ・ビツトがこのコ
ードによつて保護されることになれば、mは8以
上でなければならないことは明白である。m=8
とすれば、n=255、k=238およびγ=17を有す
る(255、238)DEC−TED BCHコードが得ら
れる。 BCHコードのパリテイ検査マトリツクスから
データ・ビツト列を削除することによつて希望す
る長さまでBCHコードを短縮することができる。
これを実行すると、前記(1)式のマトリツクスHに
よつて定義された(255、238)DEC−TED
BCHコードから(145、128)に短縮されたDEC
−TED BCHコードを得ることができる。 検査ビツト数はまた、コード短縮プロセスで、
パリテイ検査マトリツクスの中の削除されるデー
タ・ビツト列を適切に選択することによつて減少
可能である。前記を行なう方法に関する本発明者
の論文“On Shortened Finite Geometry
Codes”が“Information and Control”、
April1972の216頁以下に記載されている。式(1)の
パリテイ検査にマトリツクスHにこの論文に記載
された方法を使用するには: (a) パリテイ検査マトリツクスHに基本行オペレ
ーシヨン(W.W.Peterson and E.J.Weldon、
Jr.、“Error Correcting Codes”、1972、MIT
Press参照)を適用する。H1を行オペレーシヨ
ン後のマトリツクスとし、VをH1の行ペクト
ルとする。 (b) H1から行ベクトルVおよびVの中の「1」
に対応する位置の列ベクトルを削除する。その
結果得られるマトリツクスは2m個の検査ビツ
トを有する短縮されたDEC−TEDコードのパ
リテイ検査マトリツクスである。 もし、mが偶数ならば、マトリツクスHに基本
行オペレーシヨンを適用することによつて常に、
2m-1−2m/2−1)個の1を含む行ベクトルが得ら
れる。前記短縮構成を適用することによつて、 n=2m-1+2m/2、γ=2m、を有するDEC−TED
コードが作成可能である。もし、mが奇数なら
ば、マトリツクスHに基本オペレーシヨンを適用
することによつて、 (2m-1−2(m-1)/2−1)個の1を含む行ベクトル
が得られ、n=2m-1+2(m-1)/2、γ=2mを有する
DEC−TEDコードが作成可能である。 〔本発明の概要〕 本発明に従つて生成された、(144、128)コー
ドのマトリツクスを第1表に示す。
【表】
各々の列はコード・ワードの1ビツト位置を表わ
す。列の間の縦線はパツケージの境界を表わす。
すなわち、144ビツトのコード・ワードは9ビツ
トごとに異なるパツケージ上にある。(このHの
形式はデータ経路の幅が9ビツトの倍数である場
合に使用するのに好都合である。)マトリツクス
Hの16行の各々にある2進数1は、エンコーダに
よつてどのビツトが排他的ORされ、128デー
タ・ビツトとともに記憶される16検査ビツトの1
つを生成するかを示す。ビツト位置1、10、19、
28、37、46、55、64、73、82、91、100、109、
118、127および136のビツトが検査ビツトである。
横線はコードが2つのデータ・ワードに分割可能
であることを表わす。 行および列の交換(swapping)を使用して4
ビツト位置/カードに再パツケージすると第2表
のHマトリツクスが得られる。
す。列の間の縦線はパツケージの境界を表わす。
すなわち、144ビツトのコード・ワードは9ビツ
トごとに異なるパツケージ上にある。(このHの
形式はデータ経路の幅が9ビツトの倍数である場
合に使用するのに好都合である。)マトリツクス
Hの16行の各々にある2進数1は、エンコーダに
よつてどのビツトが排他的ORされ、128デー
タ・ビツトとともに記憶される16検査ビツトの1
つを生成するかを示す。ビツト位置1、10、19、
28、37、46、55、64、73、82、91、100、109、
118、127および136のビツトが検査ビツトである。
横線はコードが2つのデータ・ワードに分割可能
であることを表わす。 行および列の交換(swapping)を使用して4
ビツト位置/カードに再パツケージすると第2表
のHマトリツクスが得られる。
第1図において、カードごとに4ビツト位置を
有する36枚のメモリ・カード10A上のメモリに
144ビツト・コード・ワードが記憶される。理由
については既に明白なように、144ビツト・コー
ド・ワードの中の16ビツトは検査ビツトであり、
128ビツトはデータ・ビツトである。 第2図において、従来の排他的OR符号化トリ
ー12Aが第1図のメモリに記憶されるパリテ
イ・ビツトを生成するのに使用される。この符号
化トリーは第2表のパリテイ・マトリツクスHに
従つて構成される。例えば、カード33の最初の
ビツト位置にある検査ビツトは前記マトリツクス
Hの最初の行で1を書込まれた全ビツト位置にあ
るデータの排他的ORである。もし、2入力の排
他的ORゲートが使用されれば、70個以下の排他
的ORゲートおよび7レベルの論理遅延を使用し
て各々の検査ビツトが生成される。 第3図において、シンドローム発生器14A
(から出力されるシンドロームS)の16のビツト
出力は論理的には、第1図に示すメモリ・カード
10Aから読出される144のデータおよび検査ビ
ツトの排他的ORである。シンドロームSはま
た、受取られたコード・ワードとHの積の結果と
して得られた16ビツトのベクトルとみなすことが
できる。更に、シンドロームSは受取られた検査
ビツトと受取られたデータ・ビツトから生成され
た検査ビツトとの排多的ORである。 もし、シンドロームSが全0のベクトルであれ
ば、該コード・ワードはエラーを含まない。もし
シンドロームSが非0のベクトルであれば、シン
ドロームSの最初の15ビツトはROM18Aの内
容をアクセスするアドレスとして使用される。シ
ンドロームSは、単一エラーの場合は奇数個の1
を含み、二重エラーの場合は偶数個の1を含む。
従つて、ROM18Aでの解読に当つては、シン
ドロームSを構成する16ビツトのうちの1ビツト
は冗長になるから使用されない。例えば、最初の
15ビツトだけで単一エラーのエラー位置または二
重エラーの一方のエラー位置を識別することがで
きる。この15ビツトは、第2表のマトリツクスH
の列iに対応するデータ・ビツトまたは検査ビツ
トと、最後の列に対応する検査ビツトとにエラー
が生じていた場合にのみ、前者だけの単一エラー
に対するものと同じになるが、いずれもマトリツ
クスHの列iに対応するビツトにエラーが生じて
いるのであるから、エラー位置の識別という点で
は問題はない。ROM18Aの出力は15のシンド
ローム・ビツトによつてアクセスされた8ビツト
のベクトルE1である。ベクトルE1は全0のベ
クトルか、または第3表に示す8×144のマトリ
ツクスMの列のベクトルである。 これらの列のベクトルは、式(1)のマトリツクス
Hの第2行の要素の部分集合を構成する。すなわ
ち、マトリツクスMの各列は、有限体の原始元で
あるαのべきを表す。マトリツクスMは、それと
その各列の3乗(式(1)のマトリツクスHの第3行
参照)との行連結によつて生成されるマトリツク
スH′がDEC−TEDコードを定義するように選択
される。第2表のマトリツクスHは、このH′の
最後の16列の逆行列とH′との積から得られる。
有する36枚のメモリ・カード10A上のメモリに
144ビツト・コード・ワードが記憶される。理由
については既に明白なように、144ビツト・コー
ド・ワードの中の16ビツトは検査ビツトであり、
128ビツトはデータ・ビツトである。 第2図において、従来の排他的OR符号化トリ
ー12Aが第1図のメモリに記憶されるパリテ
イ・ビツトを生成するのに使用される。この符号
化トリーは第2表のパリテイ・マトリツクスHに
従つて構成される。例えば、カード33の最初の
ビツト位置にある検査ビツトは前記マトリツクス
Hの最初の行で1を書込まれた全ビツト位置にあ
るデータの排他的ORである。もし、2入力の排
他的ORゲートが使用されれば、70個以下の排他
的ORゲートおよび7レベルの論理遅延を使用し
て各々の検査ビツトが生成される。 第3図において、シンドローム発生器14A
(から出力されるシンドロームS)の16のビツト
出力は論理的には、第1図に示すメモリ・カード
10Aから読出される144のデータおよび検査ビ
ツトの排他的ORである。シンドロームSはま
た、受取られたコード・ワードとHの積の結果と
して得られた16ビツトのベクトルとみなすことが
できる。更に、シンドロームSは受取られた検査
ビツトと受取られたデータ・ビツトから生成され
た検査ビツトとの排多的ORである。 もし、シンドロームSが全0のベクトルであれ
ば、該コード・ワードはエラーを含まない。もし
シンドロームSが非0のベクトルであれば、シン
ドロームSの最初の15ビツトはROM18Aの内
容をアクセスするアドレスとして使用される。シ
ンドロームSは、単一エラーの場合は奇数個の1
を含み、二重エラーの場合は偶数個の1を含む。
従つて、ROM18Aでの解読に当つては、シン
ドロームSを構成する16ビツトのうちの1ビツト
は冗長になるから使用されない。例えば、最初の
15ビツトだけで単一エラーのエラー位置または二
重エラーの一方のエラー位置を識別することがで
きる。この15ビツトは、第2表のマトリツクスH
の列iに対応するデータ・ビツトまたは検査ビツ
トと、最後の列に対応する検査ビツトとにエラー
が生じていた場合にのみ、前者だけの単一エラー
に対するものと同じになるが、いずれもマトリツ
クスHの列iに対応するビツトにエラーが生じて
いるのであるから、エラー位置の識別という点で
は問題はない。ROM18Aの出力は15のシンド
ローム・ビツトによつてアクセスされた8ビツト
のベクトルE1である。ベクトルE1は全0のベ
クトルか、または第3表に示す8×144のマトリ
ツクスMの列のベクトルである。 これらの列のベクトルは、式(1)のマトリツクス
Hの第2行の要素の部分集合を構成する。すなわ
ち、マトリツクスMの各列は、有限体の原始元で
あるαのべきを表す。マトリツクスMは、それと
その各列の3乗(式(1)のマトリツクスHの第3行
参照)との行連結によつて生成されるマトリツク
スH′がDEC−TEDコードを定義するように選択
される。第2表のマトリツクスHは、このH′の
最後の16列の逆行列とH′との積から得られる。
【表】
ROM18Aの非0項目は下記のアルゴリズム
によつて得られる: (a) マトリツクスH1の列iによつて指定された
アドレスに第3表のマトリツクスMの列iのビ
ツト・パターンを書込む。ただし、H1は第2
表の最初の15行ベクトルによつて形成されたマ
トリツクスである。 (b) マトリツクスH1の列iおよび列jの排他的
ORによつて指定されたアドレスにマトリツク
スMの列iのビツト・パターンを書込む。ただ
し、i<jであるものとする。 もし、ベクトルE1がこれらの非0項目の1つ
に等しく、かつS≠0ならば、ベクトルE1は
ROM38Aに供給され、ROM38AはE1を
ガロア体の元から2進数列の数に変換する。この
2進数はデコーダ40Aに供給される。デコーダ
40Aはこの2進数によつてエラー・ビツトの1
つのアドレスを解読する。 更に、もしシンドロームSが非0であれば、下
記の変換が行なわれる: E0=T・St (2) ただし、StはSの転置マトリツクスであり、T
は下記に示すマトリツクスである。 第4表 マトリツクスT 1・・・1・111・・1111・ ・・・・・・・111・・・11・ ・・・・1・11・11・11・・ ・・・・111・・・・1・1・1 ・1・・1・・・1・1・1 ・・1・・・・・1・・・11・1・・・ ・・1・・11・・・・11・・・・・・1・
111・・11・1・・ マトリツクスTは第3表に示したマトリツクス
Mの最後の16列に等しく、論理アレイ20Aによ
り実現される。論理アレイ20Aは、マトリツク
スTの中の1を書込まれた位置に対応する位置に
排他的OR要素を有する。16ビツトの各シンドロ
ームSが、論理アレイ20Aの列の1つをアクセ
スし、その結果として8ビツトのシンドローム
E0が論理アレイ20Aから読出される。 マトリツクスM、TおよびHの数学的関係を下
記に示す: M=T・H (3) 2つのエラーが生じた場合、h1およびh2を前記
第2表のHの列とすれば、シンドロームはS=h1
+h2になる。変更されたシンドロームを次のよう
に定義する。 S′=T・St (4) ただし、StはSの転置マトリツクスである。
S′はMのいずれかの列に等しい。Mの列はすべて
異なつているからエラー位置を示すのに使用可能
である。従つて、E1=T・h1 tおよびE2=T・h2 t
とすれば、S′=T・St=E1+E2を得る。第1のエ
ラーE1はROM18Aから得られる。第2のエラ
ーE2はE1とS′の非他的ORによつて得られる。変
更されたシンドロームS′は論理アレイ20Aから
得られるE0である。 ROM18および論理アレイ20Aの出力は
XOR回路22Aに供給され、XOR回路22Aは
ビツト位置対ビツト位置でE0とE1を排他的ORし
てE2を生成する。もし、E2が非0であり且つS
の重みが偶数であれば、E2はコード・ワードの
中のもう1つの訂正可能エラーを識別した後、
E1と同様に、ガロア体の元を2進数に変換する
コンバータすなわちROM42Aおよびデコーダ
44Aを使用してエラー・ビツト位置が解読され
る。 もし、Sが非0であり且つE1が全ベクトルで
あるか、またはE2が非0でありかつSの重みが
奇数であれば、エラーは訂正不能エラーU(E)であ
る。2つの0検出回路24Aおよび26Aの出力
をAND回路28AでANDすることによつて第1
のUE状態が検出される。0検出回路24Aはシ
ンドローム発生器14Aの出力をモニタし、他の
0検出回路26AはROM18Aの出力をモニタ
する。非0のE2出力を検出する非0検出回路3
2Aの出力と、シンドローム中のビツトの和が奇
数であるかどうかを決定するXOR回路34Aの
出力をANDするAND回路30Aによつて第2の
UE状態が検出される。2つのAND回路28Aお
よび30Aの出力はOR回路36Aに供給され、
OR回路36AはUE出力信号を出力する。 エラーの生じた4ビツト・パツケージ、すなわ
ちメモリ・カード10Aを見つけるため、UE出
力信号によつてシンドロームSが比較器48Aに
送られ、比較器48Aは各々のメモリ・カード1
0Aの3ビツト・エラーに関する4つのシンドロ
ーム・パターンと各々のメモリ・カード10Aの
4ビツト・エラーに関する1つのシンドローム・
パターンとをシンドロームSと比較する。比較器
48Aの出力はエラーを有するメモリ・カード1
0Aのアドレスである。カード障害シンドローム
50Aは比較器48Aにハード的に結線される
か、または比較器48Aにソフトウエアとして供
給することができる。第5表は16ビツト・シンド
ロームの各々について列挙し、その右側に障害を
有するカードまたはパツケージの番号を示す。 勿論、複数のパツケージにわたる多重エラーの
場合もUE状態が検出される。その場合に、単一
パツケージに生じた多重エラーのシンドロームと
同じシンドロームが生じることがある。しかし、
よく知られているように、メモリ・エラーの性質
として、三重以上の多重エラーが複数のパツケー
ジにわたつて生じることは稀であり、多重エラー
が生じた場合には、特定のパツケージ中のアドレ
ス線や論理回路の故障による多重エラーを仮定し
て処理を進めた方が現実的である。そのようにし
て識別されたパツケージを交換してもなお同じよ
うな多重エラーが生じる場合、またはパツケージ
を識別できなかつた場合に、複数のパツケージに
わたる多重エラーを想定すればよい。 以上が本発明の実施例に関する説明であるが、
本実施例の中で多くの変更を行なうことができ
る。例えば、メモリ・カード10のコード・ワー
ドのビツト位置の数を変更をすることができる。
によつて得られる: (a) マトリツクスH1の列iによつて指定された
アドレスに第3表のマトリツクスMの列iのビ
ツト・パターンを書込む。ただし、H1は第2
表の最初の15行ベクトルによつて形成されたマ
トリツクスである。 (b) マトリツクスH1の列iおよび列jの排他的
ORによつて指定されたアドレスにマトリツク
スMの列iのビツト・パターンを書込む。ただ
し、i<jであるものとする。 もし、ベクトルE1がこれらの非0項目の1つ
に等しく、かつS≠0ならば、ベクトルE1は
ROM38Aに供給され、ROM38AはE1を
ガロア体の元から2進数列の数に変換する。この
2進数はデコーダ40Aに供給される。デコーダ
40Aはこの2進数によつてエラー・ビツトの1
つのアドレスを解読する。 更に、もしシンドロームSが非0であれば、下
記の変換が行なわれる: E0=T・St (2) ただし、StはSの転置マトリツクスであり、T
は下記に示すマトリツクスである。 第4表 マトリツクスT 1・・・1・111・・1111・ ・・・・・・・111・・・11・ ・・・・1・11・11・11・・ ・・・・111・・・・1・1・1 ・1・・1・・・1・1・1 ・・1・・・・・1・・・11・1・・・ ・・1・・11・・・・11・・・・・・1・
111・・11・1・・ マトリツクスTは第3表に示したマトリツクス
Mの最後の16列に等しく、論理アレイ20Aによ
り実現される。論理アレイ20Aは、マトリツク
スTの中の1を書込まれた位置に対応する位置に
排他的OR要素を有する。16ビツトの各シンドロ
ームSが、論理アレイ20Aの列の1つをアクセ
スし、その結果として8ビツトのシンドローム
E0が論理アレイ20Aから読出される。 マトリツクスM、TおよびHの数学的関係を下
記に示す: M=T・H (3) 2つのエラーが生じた場合、h1およびh2を前記
第2表のHの列とすれば、シンドロームはS=h1
+h2になる。変更されたシンドロームを次のよう
に定義する。 S′=T・St (4) ただし、StはSの転置マトリツクスである。
S′はMのいずれかの列に等しい。Mの列はすべて
異なつているからエラー位置を示すのに使用可能
である。従つて、E1=T・h1 tおよびE2=T・h2 t
とすれば、S′=T・St=E1+E2を得る。第1のエ
ラーE1はROM18Aから得られる。第2のエラ
ーE2はE1とS′の非他的ORによつて得られる。変
更されたシンドロームS′は論理アレイ20Aから
得られるE0である。 ROM18および論理アレイ20Aの出力は
XOR回路22Aに供給され、XOR回路22Aは
ビツト位置対ビツト位置でE0とE1を排他的ORし
てE2を生成する。もし、E2が非0であり且つS
の重みが偶数であれば、E2はコード・ワードの
中のもう1つの訂正可能エラーを識別した後、
E1と同様に、ガロア体の元を2進数に変換する
コンバータすなわちROM42Aおよびデコーダ
44Aを使用してエラー・ビツト位置が解読され
る。 もし、Sが非0であり且つE1が全ベクトルで
あるか、またはE2が非0でありかつSの重みが
奇数であれば、エラーは訂正不能エラーU(E)であ
る。2つの0検出回路24Aおよび26Aの出力
をAND回路28AでANDすることによつて第1
のUE状態が検出される。0検出回路24Aはシ
ンドローム発生器14Aの出力をモニタし、他の
0検出回路26AはROM18Aの出力をモニタ
する。非0のE2出力を検出する非0検出回路3
2Aの出力と、シンドローム中のビツトの和が奇
数であるかどうかを決定するXOR回路34Aの
出力をANDするAND回路30Aによつて第2の
UE状態が検出される。2つのAND回路28Aお
よび30Aの出力はOR回路36Aに供給され、
OR回路36AはUE出力信号を出力する。 エラーの生じた4ビツト・パツケージ、すなわ
ちメモリ・カード10Aを見つけるため、UE出
力信号によつてシンドロームSが比較器48Aに
送られ、比較器48Aは各々のメモリ・カード1
0Aの3ビツト・エラーに関する4つのシンドロ
ーム・パターンと各々のメモリ・カード10Aの
4ビツト・エラーに関する1つのシンドローム・
パターンとをシンドロームSと比較する。比較器
48Aの出力はエラーを有するメモリ・カード1
0Aのアドレスである。カード障害シンドローム
50Aは比較器48Aにハード的に結線される
か、または比較器48Aにソフトウエアとして供
給することができる。第5表は16ビツト・シンド
ロームの各々について列挙し、その右側に障害を
有するカードまたはパツケージの番号を示す。 勿論、複数のパツケージにわたる多重エラーの
場合もUE状態が検出される。その場合に、単一
パツケージに生じた多重エラーのシンドロームと
同じシンドロームが生じることがある。しかし、
よく知られているように、メモリ・エラーの性質
として、三重以上の多重エラーが複数のパツケー
ジにわたつて生じることは稀であり、多重エラー
が生じた場合には、特定のパツケージ中のアドレ
ス線や論理回路の故障による多重エラーを仮定し
て処理を進めた方が現実的である。そのようにし
て識別されたパツケージを交換してもなお同じよ
うな多重エラーが生じる場合、またはパツケージ
を識別できなかつた場合に、複数のパツケージに
わたる多重エラーを想定すればよい。 以上が本発明の実施例に関する説明であるが、
本実施例の中で多くの変更を行なうことができ
る。例えば、メモリ・カード10のコード・ワー
ドのビツト位置の数を変更をすることができる。
【表】
【表】
【表】
【表】
第1図は本発明を使用するメモリの概要を示す
図、第2図は第1図に示すメモリのECCエンコ
ーダの概要を示す図、第3図は第1図に示すメモ
リのECCデコーダの概要ブロツク図である。 10A……メモリ・カード、12A……排他的
OR符号化トリー、14A……シンドローム発生
器、16A……シンドローム・デコーダ、18A
……ROM、20A……論理アレイ、22A……
XOR回路、24A,26A……0検出回路、2
8A,30A……AND回路、32A……非0検
出回路、34A……XOR回路、36A……OR回
路、38A……ROM、40A……バイナリ・デ
コーダ、42A……ROM、44A……バイナ
リ・デコーダ、48A……比較器、50A……カ
ード障害シンドローム。
図、第2図は第1図に示すメモリのECCエンコ
ーダの概要を示す図、第3図は第1図に示すメモ
リのECCデコーダの概要ブロツク図である。 10A……メモリ・カード、12A……排他的
OR符号化トリー、14A……シンドローム発生
器、16A……シンドローム・デコーダ、18A
……ROM、20A……論理アレイ、22A……
XOR回路、24A,26A……0検出回路、2
8A,30A……AND回路、32A……非0検
出回路、34A……XOR回路、36A……OR回
路、38A……ROM、40A……バイナリ・デ
コーダ、42A……ROM、44A……バイナ
リ・デコーダ、48A……比較器、50A……カ
ード障害シンドローム。
Claims (1)
- 【特許請求の範囲】 1 二重エラー訂正及び三重エラー検出コードを
用いたエラー訂正システムにおいて、 前記コードにより発生されたコード・ワードか
らシンドロームを発生するシンドローム発生手段
と、 このシンドローム発生手段からのシンドローム
によりアクセスされ、前記シンドロームが非0値
を有する場合、第1のエラーのビツト位置を識別
する第1のベクトルE1を発生するテーブル手段
と、 前記シンドロームに応答して、第2のベクトル
E0=TSt(ここでStはシンドロームSの転置行列
である)を発生する論理アレイ手段と、 前記第1のベクトルE1と前記第2のベクトル
E0をビツト位置毎に排他的オアをとることによ
り第2のエラーのビツト位置を識別する第3のベ
クトルE2(この第3のベクトルE2が非0で、前記
シンドロームSの重みが偶数の場合)を発生する
排他的オア手段と、 前記シンドロームS≠0及び前記第1のベクト
ルE1=0、又は前記第3のベクトルE2≠0及び
前記シンドロームSの重みが奇数の場合、訂正不
可能エラー信号UEを出す訂正不可能エラー指示
手段と、 前記第1のベクトルE1及び前記第3のベクト
ルE2に応答して、前記第1及び第2のエラーの
ビツト位置を識別する論理手段とを備えたことを
特徴とするエラー訂正システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US424940 | 1982-09-28 | ||
US06/424,940 US4509172A (en) | 1982-09-28 | 1982-09-28 | Double error correction - triple error detection code |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5960654A JPS5960654A (ja) | 1984-04-06 |
JPH0449139B2 true JPH0449139B2 (ja) | 1992-08-10 |
Family
ID=23684522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58146803A Granted JPS5960654A (ja) | 1982-09-28 | 1983-08-12 | エラ−訂正システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US4509172A (ja) |
EP (1) | EP0107038B1 (ja) |
JP (1) | JPS5960654A (ja) |
DE (1) | DE3380456D1 (ja) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4630271A (en) * | 1983-01-20 | 1986-12-16 | Nippon Hoso Kyokai | Error correction method and apparatus for data broadcasting system |
US4651321A (en) * | 1983-08-29 | 1987-03-17 | Amdahl Corporation | Apparatus for reducing storage necessary for error correction and detection in data processing machines |
EP0136587B1 (en) * | 1983-09-06 | 1991-04-17 | Kabushiki Kaisha Toshiba | Error correction circuit |
US4683571A (en) * | 1984-05-30 | 1987-07-28 | Victor Company Of Japan, Ltd. | Digital signal decoding system |
JPS6162234A (ja) * | 1984-09-04 | 1986-03-31 | Kokusai Denshin Denwa Co Ltd <Kdd> | 誤り訂正符号復号方式 |
US4644543A (en) * | 1984-09-26 | 1987-02-17 | Honeywell Inc. | Forward error correction hardware for a data adaptor |
US4839896A (en) * | 1987-02-10 | 1989-06-13 | Data Systems Technology Corp. | Fast remainder decoding for a Reed-Solomon code |
US4862463A (en) * | 1987-07-20 | 1989-08-29 | International Business Machines Corp. | Error correcting code for 8-bit-per-chip memory with reduced redundancy |
EP0300139B1 (en) * | 1987-07-20 | 1993-07-07 | International Business Machines Corporation | Error correcting code for b-bit-per-chip memory with reduced redundancy |
EP0339166B1 (en) * | 1988-04-29 | 1993-07-07 | International Business Machines Corporation | Extended errors correcting device having single package error correcting and double package error detecting codes |
US4899340A (en) * | 1988-06-28 | 1990-02-06 | Pacific Bell | Error correcting code and error correcting circuit using the same |
US4958349A (en) * | 1988-11-01 | 1990-09-18 | Ford Aerospace Corporation | High data rate BCH decoder |
US5418796A (en) * | 1991-03-26 | 1995-05-23 | International Business Machines Corporation | Synergistic multiple bit error correction for memory of array chips |
US5537423A (en) * | 1991-08-21 | 1996-07-16 | International Business Machines Corporation | Modular multiple error correcting code system |
EP0563491A1 (en) * | 1992-03-31 | 1993-10-06 | International Business Machines Corporation | Method and apparatus for implementing a triple error detection and double error correction code |
DE4300025C1 (de) * | 1993-01-02 | 1994-01-27 | Macrotek Ges Fuer Integrierte | Verfahren und Einrichtung zur fehlercodierenden Datenübertragung |
US5751744A (en) * | 1993-02-01 | 1998-05-12 | Advanced Micro Devices, Inc. | Error detection and correction circuit |
US5668976A (en) * | 1993-11-04 | 1997-09-16 | Cirrus Logic, Inc. | Error correction method and apparatus for disk drive emulator |
US5856987A (en) * | 1993-12-30 | 1999-01-05 | Intel Corporation | Encoder and decoder for an SEC-DED-S4ED rotational code |
US5920580A (en) * | 1996-03-11 | 1999-07-06 | Integrated Device Technology, Inc. | Multiple error detection in error detection correction circuits |
US6107454A (en) * | 1996-08-06 | 2000-08-22 | Exxon Chemical Patents, Inc. | Method of processing polyethylene |
US6219817B1 (en) | 1998-04-20 | 2001-04-17 | Intel Corporation | Error correction and detection for faults on time multiplexed data lines |
US7171591B2 (en) * | 2003-12-23 | 2007-01-30 | International Business Machines Corporation | Method and apparatus for encoding special uncorrectable errors in an error correction code |
US7243293B2 (en) * | 2003-12-23 | 2007-07-10 | International Business Machines Corporation | (18, 9) Error correction code for double error correction and triple error detection |
US7502986B2 (en) * | 2005-02-09 | 2009-03-10 | International Business Machines Corporation | Method and apparatus for collecting failure information on error correction code (ECC) protected data |
US7562283B2 (en) * | 2005-12-27 | 2009-07-14 | D.S.P. Group Ltd. | Systems and methods for error correction using binary coded hexidecimal or hamming decoding |
JP4791831B2 (ja) * | 2006-01-20 | 2011-10-12 | 株式会社東芝 | 半導体記憶装置 |
US7984359B2 (en) * | 2006-05-01 | 2011-07-19 | Seagate Technology, Llc | Correction of data errors in a memory buffer |
JP4891704B2 (ja) * | 2006-08-28 | 2012-03-07 | 株式会社東芝 | 半導体記憶装置 |
US8200734B1 (en) * | 2008-02-07 | 2012-06-12 | At&T Intellectual Property Ii L.P. | Lookup-based Galois field operations |
JP5259343B2 (ja) * | 2008-10-31 | 2013-08-07 | 株式会社東芝 | メモリ装置 |
US8677205B2 (en) | 2011-03-10 | 2014-03-18 | Freescale Semiconductor, Inc. | Hierarchical error correction for large memories |
US8694872B2 (en) | 2011-11-28 | 2014-04-08 | Texas Instruments Incorporated | Extended bidirectional hamming code for double-error correction and triple-error detection |
US8914712B2 (en) | 2012-02-27 | 2014-12-16 | Freescale Semiconductor, Inc. | Hierarchical error correction |
US8745472B2 (en) | 2012-09-01 | 2014-06-03 | Texas Instruments Incorporated | Memory with segmented error correction codes |
US9246516B2 (en) * | 2012-12-20 | 2016-01-26 | Intel Corporation | Techniques for error correction of encoded data |
US9997233B1 (en) | 2015-10-08 | 2018-06-12 | Rambus Inc. | Memory module with dynamic stripe width |
US10348333B2 (en) | 2016-09-22 | 2019-07-09 | Everspin Technologies, Inc. | Two bit error correction via a field programmable gate array |
US10581841B2 (en) * | 2017-02-13 | 2020-03-03 | Zentel Japan Corporation | Authenticated network |
WO2018165943A1 (zh) * | 2017-03-16 | 2018-09-20 | 华为技术有限公司 | 存储控制器、数据处理芯片及数据处理方法 |
CN117079686A (zh) * | 2020-09-18 | 2023-11-17 | 长鑫存储技术有限公司 | 存储器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53120346A (en) * | 1977-03-30 | 1978-10-20 | Nec Corp | Correction circuit for double error |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3671947A (en) * | 1970-09-28 | 1972-06-20 | Ibm | Error correcting decoder |
US3893071A (en) * | 1974-08-19 | 1975-07-01 | Ibm | Multi level error correction system for high density memory |
US4107652A (en) * | 1975-12-27 | 1978-08-15 | Fujitsu Limited | Error correcting and controlling system |
US4030067A (en) * | 1975-12-29 | 1977-06-14 | Honeywell Information Systems, Inc. | Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes |
US4077028A (en) * | 1976-06-14 | 1978-02-28 | Ncr Corporation | Error checking and correcting device |
US4117458A (en) * | 1977-03-04 | 1978-09-26 | Grumman Aerospace Corporation | High speed double error correction plus triple error detection system |
JPS5857781B2 (ja) * | 1978-01-17 | 1983-12-21 | 三菱電機株式会社 | 符号化復号化方式 |
DE2817864C2 (de) * | 1978-04-24 | 1980-04-24 | Siemens Ag, 1000 Berlin Und 8000 Muenchen | Fehlertypdecoder in einer Einrichtung zur Fehlerkorrektur |
US4236247A (en) * | 1979-01-15 | 1980-11-25 | Organisation Europeene De Recherches Spatiales | Apparatus for correcting multiple errors in data words read from a memory |
US4319357A (en) * | 1979-12-14 | 1982-03-09 | International Business Machines Corp. | Double error correction using single error correcting code |
GB2075227B (en) * | 1980-04-14 | 1984-09-26 | Victor Company Of Japan | Double error correcting system in digital signal reproducing apparatus |
US4397022A (en) * | 1981-01-30 | 1983-08-02 | Weng Ming I | Weighted erasure codec for the (24, 12) extended Golay code |
-
1982
- 1982-09-28 US US06/424,940 patent/US4509172A/en not_active Expired - Fee Related
-
1983
- 1983-08-12 JP JP58146803A patent/JPS5960654A/ja active Granted
- 1983-09-20 DE DE8383109317T patent/DE3380456D1/de not_active Expired
- 1983-09-20 EP EP83109317A patent/EP0107038B1/en not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53120346A (en) * | 1977-03-30 | 1978-10-20 | Nec Corp | Correction circuit for double error |
Also Published As
Publication number | Publication date |
---|---|
EP0107038A2 (en) | 1984-05-02 |
EP0107038B1 (en) | 1989-08-23 |
EP0107038A3 (en) | 1987-03-25 |
JPS5960654A (ja) | 1984-04-06 |
US4509172A (en) | 1985-04-02 |
DE3380456D1 (en) | 1989-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0449139B2 (ja) | ||
US7370264B2 (en) | H-matrix for error correcting circuitry | |
US5099484A (en) | Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection | |
US4464753A (en) | Two bit symbol SEC/DED code | |
US5418796A (en) | Synergistic multiple bit error correction for memory of array chips | |
US5226043A (en) | Apparatus and method for data error detection and correction and address error detection in a memory system | |
US4817095A (en) | Byte write error code method and apparatus | |
US7278085B1 (en) | Simple error-correction codes for data buffers | |
US7171591B2 (en) | Method and apparatus for encoding special uncorrectable errors in an error correction code | |
US6604222B1 (en) | Block code to efficiently correct adjacent data and/or check bit errors | |
US20040177309A1 (en) | Familial correction with non-familial double bit error detection | |
US6457154B1 (en) | Detecting address faults in an ECC-protected memory | |
US4961193A (en) | Extended errors correcting device having single package error correcting and double package error detecting codes | |
NL8104342A (nl) | Rekenmachinesysteem, gebaseerd op een symboolkorrigerende kode met twee werkmodes. | |
US5251219A (en) | Error detection and correction circuit | |
US7243293B2 (en) | (18, 9) Error correction code for double error correction and triple error detection | |
EP0147336A2 (en) | Error correcting and detecting system | |
US5757823A (en) | Error detection and correction for four-bit-per-chip memory system | |
US6539513B1 (en) | Dual functioning symbol error correction code | |
US6519736B1 (en) | Generating special uncorrectable error codes for failure isolation | |
JP2589957B2 (ja) | 単一サブブロック・エラーと単一ビット・エラー検出のための符号化方法及びメモリ・システム | |
US5459740A (en) | Method and apparatus for implementing a triple error detection and double error correction code | |
US7093183B2 (en) | Symbol level error correction codes which protect against memory chip and bus line failures | |
US6463563B1 (en) | Single symbol correction double symbol detection code employing a modular H-matrix | |
US7634709B2 (en) | Familial correction with non-familial double bit error detection |