JPH0778746B2 - エラー訂正装置 - Google Patents

エラー訂正装置

Info

Publication number
JPH0778746B2
JPH0778746B2 JP60045009A JP4500985A JPH0778746B2 JP H0778746 B2 JPH0778746 B2 JP H0778746B2 JP 60045009 A JP60045009 A JP 60045009A JP 4500985 A JP4500985 A JP 4500985A JP H0778746 B2 JPH0778746 B2 JP H0778746B2
Authority
JP
Japan
Prior art keywords
bit
error
bits
parity
data word
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
Application number
JP60045009A
Other languages
English (en)
Other versions
JPS6115238A (ja
Inventor
フレデリツク・ジヨン・エイケルマン、ジユニア
ローレンス・ケネス・ランジ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6115238A publication Critical patent/JPS6115238A/ja
Publication of JPH0778746B2 publication Critical patent/JPH0778746B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/1028Adjacent 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)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明はエラー訂正コード、特に、多重ビツト出力を有
する記憶チツプに最も効果的なエラー訂正コードに関す
る。
B 開示の概要 本発明は特に多重ビツト出力を有する記憶チツプに適合
するエラー訂正コードで、パリテイビツトはワードをな
すバイトごとに、検査ビツトはワードごとに計算され
る。4バイト32ビツトのワードでは、エラーが4バイト
の対応するビツトに限定される場合、8ビツトのエラー
訂正は4つのエラーまで訂正することができる。
C 従来の技術 近年、設計・製造されるコンピユータシステム、特にそ
の記憶容量は増加の一途をたどつている。しかしなが
ら、これらの大型化するコンピユータシステムの価格
は、VLSI記憶チツプを使用するため、横ばいのままかも
しくは低下している。前世代のメモリチツプのより小さ
い記憶チツプと同程度の価格で、より多くの記憶ビツト
がVLSIチツプにパツクされることができる。しかしなが
ら、記憶容量を増加すると必ず別の問題を生じる。記憶
ビツト数を増加すると、信頼性がきびしい問題になる。
記憶ビツトの偶然の故障がシステムのクラツシユすなわ
ち動作不能にさせることはもはやできない。非常に多数
の記憶ビツトはあまりにも大きく、かつ全体の故障確率
が高すぎると、単一のビツトの誤り、すなわち、単一チ
ツプの故障が、不良チツプが取換えられるまでコンピユ
ータシステムを動作不能にすることは許されない。更
に、VLSI記憶チツプでは、記憶素子の個々の構成要素の
大きさを著しく減少させるため、エラーが生じ易い。す
なわち、最近の記憶システムは複雑さを増しているが、
これは記憶素子の信頼性の低下という犠牲を払つて実現
されているのである。信頼性の問題に対する1つの解決
は、エラー訂正コード(ECC)の使用を増加させること
であつた。このECCの例は米国特許第4360916号明細書に
示されている。ECCにより記憶チツプで発生する偶発的
エラーを訂正することができる。例えば、ハミングECC
が使用される場合、8ビツトの検査コードを付加するこ
とにより、32ビツトのデータワードで単一のエラービツ
トを検出、かつ訂正することができる。ハミングコード
は、単独なソフトエラーすなわち記憶装置のビツトのラ
ンダム反転に対して非常に有効である。よつて、ビツト
反転の偶発的発生が訂正されることができ、ビツト反転
の確率が非常に低いので、単一の32ビツトワードでの2
つのビツト反転の同時確率は極めて小さくなる。ハミン
グ型ECCは、ハードエラーすなわち単独の記憶ビツトが
永久に動作不能になる永久エラーにも有効である。この
コードにより、この単一エラーを訂正することができ
る。単一のエラーのみが訂正される必要がある限り、エ
ラー訂正コードによる記憶空間の負担は比較的小さい。
ソフトエラーの場合、この条件は一般に満足される。大
型のコンピユータシステムでは、通常ワードのビツトご
とに別々の記憶チツプが設けられている。例えば、64ビ
ツトのワード長が使用される場合、ビツト当り1チツプ
として64個の別々の記憶チツプが設けられる。1つのチ
ツプが不良になり、その出力は信頼できなくなり、大型
のコンピユータシステムにおけるECCは、ハード故障に
対して記憶システムの全体の信頼性を劇的に増加するこ
とができる。
D 発明が解決しようとする問題点 しかしながら、より小型のコンピユータシステムではこ
の状況は幾分異なる。より小型のコンピユータシステム
の記憶装置に対する要求は通常かなり低いため、典型的
には複数ビツト出力を有する記憶チツプが使用される。
すなわち、典型的なデータワードの2ビツト以上が単一
の記憶チツプに記憶されている。例えば、各々が4ビツ
ト出力を有する合計8個の記憶チツプは32ビツトのデー
タワードを記憶するのに使用されることができる。デー
タ空間が十分小さく個々の記憶チツプが十分に大きい場
合、4ビツト幅のデータチツプの単一バンクは、システ
ムの記憶装置に対する要求をサポートするのに十分であ
る。このようなシステムにおけるECCの問題点は、1つ
の記憶チツプ全体が故障になり、その結果、そのチツプ
によつて与えられる4ビツトは信頼できなくなる。従つ
て、このようなシステムで妥当な信頼性を提供するのに
必要なエラー訂正コードは、32ビツトワードで少なくと
も4つのエラーを訂正できなければならない。このよう
なエラー訂正コードは使用可能であるけれども、記憶容
量にかなりの負担がかかる。もちろん、コンピユータシ
ステムは小型になるほど価格への影響が大きく、複数ビ
ツト出力の記憶チツプに対する有効なエラー訂正をサポ
ートするのに必要な記憶装置を増設することは、小型の
コンピユータシステムの設計方針に合わない。更に、単
一データワードの多数のエラーを訂正できるエラー訂正
コードは、通常コンピュータシステムの性能を低下させ
るであろうコンピユータの操作に負担がかかる。
従つて、本発明の目的は、データワードに複数のビツト
を提供する記憶チツプの故障の可能性に対して最適化さ
れるエラー訂正装置を提供することにある。
本発明の他の目的は、簡単で、かつ少数の検査ビツトを
使用するエラー訂正装置を提供することにある。
E 問題点を解決するための手段 本発明は要約すれば記憶装置の複数ビツトのデータワー
ドのエラー訂正方法において、データワードのバイトご
とにパリテイビツトを生成し、各々のバイトで少なくと
も1つの対応するビツトを訂正するエラー訂正ビツト
(検査ビツト)を付加するものである。前記パリテイビ
ツトはどのバイトが誤つたビツトを有しているかを指示
する。
更に、1データワードだけが訂正されるビツトを有する
必要がある限り、検査ビツトは複数のデータワードで共
用されることができる。
F 実施例(第1図〜第9図) 第2図は小型のコンピユータの代表的なデータワードを
示す。このワードは4バイトからなり、各バイトは8バ
イナリビツトからなる。従つて、図示のワードは32ビツ
トからなる。一般に32ビツトよりも大きいワードは大型
のコンピユータシステムで使用され、32ビツトよりも小
さいワードは、マイクロコンピユータのようないくつか
の小型のコンピユータで使用される。
典型的な記憶アーキテクチヤはデータワードの各ビツト
に1つの記憶チツプを割当てる。従つて、図示の例で
は、単一の記憶バンクに対して32の記憶チツプがあるこ
とになる。使用されている記憶チツプが256K(262144バ
イナリビツト)の容量を有する場合、32の記憶チツプは
256Kの32ビツトワードを提供する。
より小型のコンピユータシステムはこの全記憶容量を必
要としないので、記憶チツプは異なつたアーキテクチヤ
を有することがある。この場合、同一容量の256Kの記憶
チツプは複数の並列出力、例えば4出力に設計される。
この種のチツプは一般に64K×4記憶チツプと呼ばれ
る。この記憶チツプの特定のアドレスがアクセスされる
と、4ビツトのデータは同時に4並列出力から読出され
るか又は4並列出力に書込まれる。データワードと記憶
チツプの関係は第3図に示されている。データワードの
4バイトは並列とみなされることができ、記憶チツプ1
(参照番号10)から記憶チツプ8(参照番号12)までの
8個の記憶チツプはそれぞれ4バイトの各々の対応する
ビツトを記憶する。したがつて、32ビツトのデータワー
ドに適応させるには8つの記憶チツプのみが必要であ
る。もちろん、このような64K×4記憶チツプのバンク
の記憶容量は64Kのみである。小型のコンピユータシス
テムでの場合は、64Kの記憶容量で十分である。
この記憶アーキテクチヤの問題点は、エラー訂正がもつ
と難しくなることである。共通の故障モードは記憶チツ
プ1〜8の中の1つが誤りを生じ、その結果、誤りの生
じた記憶チツプの4出力ビツトのすべてが信頼できなく
なることである。これは、データワードの1ビツトのみ
が特定の記憶チツプに関連されていない大型のシステム
の場合と違つて、32ビツトのデータワードに4つの誤り
ビツトがありそうであることを意味する。ECCの複数ビ
ツト出力のチツプに適用する問題点とそれに対する解決
方法が技術論文「半導体記憶装置の適用のための故障許
容設計技術」(IBM研究開発ジヤーナル第28膜第2号、1
984年3月、177〜183頁)に記載されている。4ビツト
を検出し、かつ訂正するためのエラー訂正コードは、使
用可能であるが記憶集中的で、複数エラーが同一記憶チ
ツプに記憶されたビツトで発生しそうであるという事実
を考慮していない。
本発明により、別々のパリテイビツトはデータワードの
バイトごとに設けられ、エラー訂正のための付加検査ビ
ツトが設けられる。この検査ビツトは、エラーがデータ
ワードを構成するそれぞれのバイトの対応するビツトに
限定されている限り、パリテイビツトと共に4つのエラ
ーの1つを検出し、かつ訂正することができる。更に、
パリテイビツトは、複数のビツトエラーの大部分を、こ
のエラーが訂正不可能といえども検出することができ
る。
4バイト、32ビツトのデータワードの場合の本発明の1
つの実施例のエラー訂正コード(ECC)に対する形式は
第4図に示されている。もちろん、本発明は図示の例に
限定されるものではない。エラー訂正コードは、32ビツ
トのデータのエラー検出および訂正を与えるために4つ
のパリテイビツトと4つの検査ビツトを含む。もちろ
ん、パリテイビツトと検査ビツトのために設けられる付
加記憶容量を必要とする。第3図の記憶アーキテクチヤ
はパリテイビツトに対して一方の付加記憶チツプと検査
ビツトに対して他方の付加記憶チツプを含むように拡張
されることができる。
パリテイビツトの使用はデイジタルシステムで周知であ
る。複数ビツトのデータワードをカバーするパリテイビ
ツトは、モジユロ2演算のデータワードの複数ビツトを
加えることによつて生成される。例えば、データワード
に1が偶数個ある場合には、パリテイビツトは0であ
り、1が奇数個ある場合、パリテイビツトは1である。
本発明のパリテイに対する正確な規則は重要な要素でな
い。パリテイビツトはそれが生成されるデータワードと
共に記憶される。データワードが読出されると、パリテ
イビツトは再計算され、記憶されているパリテイビツト
と比較される。もちろん、記憶されているビツトと再計
算されたビツトが一致しない場合は、記憶装置にエラー
がある。パリテイビツトはエラーを検出するのみで、そ
れを訂正することはできない。さらに、単一のパリテイ
ビツトは偶数の多重エラーを検出することはできない。
なぜなら、2つのデータビツトが反転されれば同一パリ
テイビツトが発生される。パリテイビツトと検査ビツト
の同時使用は、米国特許第4355391号明細書、同第40300
67号明細書および同第4168486号明細書に開示されてい
る。しかしながら、これらはすべて関連検査ビツトと同
一長ワードをカバーするパリテイビツトを開示してい
る。
前述の本発明の実施例では、4つのパリテイビツトの各
々が1つの8ビツトバイトをカバーしている。したがつ
て、4つのパリテイビツトはデータワード内の4つのデ
ータバイトのどれがエラーを含んでいるかを指示するの
に使用される。ECCのためのデータワードのブロツキン
グは米国特許第3913068明細書および同第4291406号明細
書に記載されている。しかしながら、これらはRAMメモ
リからの並列データよりもむしろ直列データストリーム
のエラー訂正を説明している。
一旦、エラーが検出されると、4つの検査ビツトは全32
ビツトのデータワードを訂正するために使用される。訂
正はエラー訂正コードの絶対必要な部分としてパリテイ
ビツトを使用して行なわれる。
エラー訂正コードの詳細な説明を行なう前に、ECCの一
般概念が説明される。データワードがベクトル[W]で
表わされ、4つの検査ビツトが他のベクトル[C]で表
わされると、ECCはデータワードを検査ビツトに変換す
るHマトリツクスにより規定される。すなわち、[H]
・[W]=[C]である。マトリツクス乗算に必要な加
算はモジユロ2で実行されるので、最下位ビツトのみが
保持される。マトリツクスとベクトルが単一のビツト要
素を有する場合、モジユロ2加算は排他的ORゲートによ
り実行されることができる。Hマトリツクスは32ビツト
のワードのベクトルを4ビツトの検査ビツトのベクトル
または多分検査およびパリテイビツトを結合した8ビツ
トのベクトルに変換するので、Hマトリツクスは非正方
形である。更に、ここで説明するECCは分離可能なコー
ドであるので、元のデータワードは、訂正可能な形で記
憶されている場合、それ自身は変更されない。その結
果、記憶されているデータワードは記憶されているECC
から別々に読出されることができる。データワードは、
ビツトエラーのため最初に記憶されたベクトル[W]と
は多分異なつているベクトル[W′]として読出される
と、新しい検査ビツトのセツト、すなわち[H]・
[W′]=[C′]が生成される。2つの検査ビツトの
セツトの差はシンドローム[S]と呼ばれる([S]=
[C′]−[C])。そのビツトのいずれかの非0シン
ドロームは、ビツトエラーが存在することを示し、シン
ドロームビツトの組合せはデータワードのどのビツトが
エラーであるかを指示するために使用されることができ
る。
本発明の実施に適しているHマトリツクスは下記の第1
表に示されている。非0要素のみが第1表に示されてい
る。示されたHマトリツクスは検査ビツトC1〜C4ならび
にパリテイビツトP1〜P4の両方を生成するために使用さ
れることができる。
このパリテイビツトはより簡単な手段により容易に計算
されることができるけれども、実際には、検査ビツトと
パリテイビツトの組合せが8ビツトのECCである。
第1表のHマトリツクスは、記憶されている検査ビツト
およびパリテイビツトを生成するために使用され、記憶
装置から読出されたデータワードから発生された検査ビ
ツトおよびパリテイビツトを生成するものにも使用され
る。シンドロームビツトは、生成された2つの検査ビツ
トのセツトの差で、例えば、S1=C1′−C1である。パリ
テイビツトエラー信号は、2つのパリテイビツトのセツ
トの差で、例えば、P″=P1′−P1である。非0パリテ
イビツト信号は対応するバイトのエラーを示す。
このシンドロームビツトは、Hマトリツクスを2回使用
する間にビツト反転を受けるビツト位置を指示するのに
使用される。パリテイビツトエラー信号は、エラーを有
する特定のバイトを指示するのに使用されるとともに、
ECCのシンドロームビツトにも関連して使用される。第
1表のHマトリツクス対応するエラービツト位置の表が
第2表に示されている。
第2表の列はエラーを含むバイトを指示するパリテイビ
ツトエラー信号を示す。表の本体部分の項目はシンドロ
ームビツトの値を示すが、その値は個々のシンドローム
ビツトの加重和: S=8S1+4S2+2S3+S4 である。この加重和はこの表の表示を容易にするために
簡単に実行されるが、シンドロームビツトのそれぞれの
値を示している対応するテーブルが容易に生成されるこ
とができる。第2表の行は、訂正されるべきビツト位
置、すなわち反転ビツトの値を含むビツト位置を示す。
索引表の使用は米国特許第4358849号明細書に開示され
ている。
第2表は下記のように使用される。元のパリテイビツト
は新しく生成されたパリテイビツトと比較され、パリテ
イビツトエラー信号P″を生じる。この信号P″は、エ
ラーを有するものと指示されるワードのバイトを指示す
る。次に、パリテイビツトエラー信号が示された列が使
用される。その列の種々の項目はシンドロームビツトの
値と比較され、Sの一致値は、訂正される必要があるビ
ツト位置を指示する。このビツト位置は、パリテイビツ
トエラー信号が指示するどのバイトにエラーがあつても
訂正される。どの特定の列の場合も、表には示されてい
ないシンドロームSの値がある。これらのシンドローム
の値は、エラーはあるが、このエラーは訂正できないエ
ラーであることを指示する。更に、このエラー訂正コー
ドは、恐らく複数バイトにおける単一のビツト位置がエ
ラーである場合のみ、訂正に使用できる。異なつたビツ
ト位置が同時にエラーであるならば、図示のECCの例は
このエラーを訂正することができない。しかしながら、
このECCは、これらのエラーが、異なつたバイトの対応
するビツトに制限されるならば、ワードの複数エラーを
訂正することができる。第3図で明らかなように、異な
つたバイトの対応するビツトは同一記憶チツプ10〜12か
ら生じるので、複数エラーは対応するビツトで最も起き
易い。
示された本発明のECCの例は自己保護する手段がない、
すなわち、パリテイビツトまたは検査ビツトがエラーの
場合、これらのエラーは訂正できない。しかしながら、
これは最初考える程重大な欠点ではない。検査ビツトだ
けがエラーの場合、パリテイビツトはエラーを表示しな
いだろうから、エラー訂正の試みもなされないであろ
う。パリテイビツトだけがエラーの場合、シンドローム
ビツトはすべて0になるであろう。この組合せは、すべ
てのシンドロームビツトの0値が第2表に含まれていな
いから、データワード中にエラーがないことを表示し続
けるであろう。本発明のECCを拡張し、パリテイビツト
および検査ビツトの訂正をカバーすることも可能である
が、そのためには更に検査ビツトが必要となり、記憶容
量の増設を要するので、小型コンピユータシステムの場
合に要求されるシステム簡略化の方針に合わない。
本発明のもう1つの実施例では、複数のデータワードが
単一の検査ビツトのセツトを共有する。このような検査
ビツトの共用は小型コンピユータシステムでは重要であ
る。なぜなら、それによつて検査ビツトの記憶に割振ら
れた記憶容量を減少することができるからである。第5
図に示される第2の実施例の形式では、各々が4つの8
ビツトバイトからなる2つのデータワードを有する。パ
リテイビツトPB1およびPB2の別々のセツトは、データワ
ードごとに生成され記憶される。この結果、8パリテイ
ビツトは、第1の実施例と同様に2つのデータワードの
異なつたバイトに割当てられる。しかしながら、検査ビ
ツトは下記のようにデータワード間で共用される。検査
ビツトは、第1表のHマトリツクスを用いて生成される
が、個々のデータワードからは生成されない。その代
り、他のワードが、2つのデータワードの排他的ORによ
り生成される。これは2つのデータワードのモジユロ2
の加算に等しい。Hマトリツクスは検査ビツトに関する
限り、排他的ORワードに適用される。しかしながら、パ
リテイビツトは2つのそれぞれのデータワードから別々
に生成される。
データワードが記憶装置から読出されると、新しいパリ
テイビツトは該ワードのビツトごとに計算される。いか
なるパリテイビツトも検出されないならば、このデータ
ワードはエラーがないものと想定される。しかしなが
ら、新しく生成されたパリテイビツトのどれかが記憶さ
れているパリテイビツトと異なるならば、それによつて
エラーが指示され、訂正ルーチンが開始される。次に他
のデータワードが記憶装置から読出され、2つのワード
の排他的ORが実行され、排他的ORワードから新しい検査
ビツトが生成される。新しい検査ビツトと古い検査ビツ
トの差をとることによつてシンドロームビツトが得られ
る。次に第2表はエラーであるビツト位置を指示するた
めに使用され、かつこのパリテイビツトはエラーがある
バイトを指示する。もちろん、どちらのデータワードに
もエラーがあることをパリテイビツトが指示するなら
ば、共用検査ビツトはエラー訂正することができない。
その代りに、訂正不可能なエラーはそれによつて指示さ
れる。
共用ビツトの概念は3つ以上のデータワードに拡張され
ることができる。各々のデータワードはそれ自身のパリ
テイビツトのセツトを有する。しかしながら、検査ビツ
トは全ての複数データワードの対応するビツトのモジユ
ロ2加算から生成される。このパリテイビツトは任意の
データワード数に存在するエラーを指示するけれども、
単一の検査ビツトのセツトは、エラーが単一のデータワ
ードのバイトの対応するビツトに制限される場合のみ、
エラー訂正に有効である。しかしながら、別々の記憶チ
ツプが複数データワードに使用されている場合、2つの
異なつた記憶チツプが複数のデータワードでエラーを生
じる確立は低い。米国特許第4355391号明細書に多少類
似した方式が記載されている。この方法では、パリテイ
ビツトと検査ビツトの両方共64データバイトにより共用
されるが、どのバイトがパリテイエラーを生じているか
は簡単には指示されない。
次に、本発明のエラー訂正コードに対する可能なハード
ウエアの実施例を第1図に関連して説明する。記憶アレ
イ20は、第3図に示すように、1つのデータワードとそ
の関連パリテイビツトおよび検査ビツトを記憶する記憶
チツプから成る。32線のバス22はパリテイビツト発生器
24と検査ビツト発生器26に接続される。このパリテイビ
ツトは特定のパリテイビツトが関連する8ビツトバイト
のすべてのビツトの排他的ORにより生成される。検査ビ
ツト発生器26は、Hマトリツクスとワードベクトル
[W]の行列乗算を実行する。この行列乗算は、ワード
ベクトル[W]とHマトリツクスの行の対応する要素の
AND積により達成されることができる。次に、排他的OR
はその行からの積のすべてで実行され、検査ビツトの1
つを生成する。このような回路はメモリセルのアレイで
容易に実現されることができる。
パリテイビツト発生器24は4つのパリテイビツトを出力
し、検査ビツト発生器26は、4つの検査ビツトを出力す
る。これらの回路または同様の回路は、記憶アレイ20に
予め記憶された検査ビツトおよびパリテイビツトを生成
するために以前に使用されていたものと仮定する。予め
生成されたパリテイビツトは、4線のバス28を介して記
憶アレイ20からパリテイビツト比較器30に出力され、こ
のパリテイビツト比較器30でパリテイビツト発生器24か
ら現に生成されたパリテイビツトとビツト単位で比較さ
れる。パリテイビツト比較器30の4出力は、データワー
ドWの4バイトのどれかがパリテイエラーを含んでいる
かを指示するパリテイビツトエラー信号P″である。
予め生成された検査ビツトは4線のバス32を介して記憶
アレイ20から出力され、検査ビツト比較器34に供給され
る。この検査ビツト比較器34は記憶アレイ20からの検査
ビツトと検査ビツト発生器26で生成された検査ビツトと
を比較する。この比較もビツト単位で行なわれる。検査
ビツト比較器34の4出力はシンドロームビツトSであ
る。パリテイビツトエラー信号P″とシンドロームビツ
トSはビツトエラーロケータ36に入力される。このビツ
トエラーロケータ36は、第2表に従つて、訂正するすな
わち反転を必要とするデータワードWのビツトの位置を
計算する。
ビツトエラーロケータ36には少なくとも2つの可能な実
施例がある。第1の実施例では、パリテイビツトエラー
信号P″を運ぶ4線は、第6図に示されるデコーダすな
わちセレクタ42に接続される。パリテイビツトエラー信
号を4線全ての値により、16出力線E0〜E15の中の1つ
がハイレベルになる。第3表はパリテイビツトエラー信
号P″の値と16信号線E0〜E15の間の関係を表わす表で
ある。
第3表は単に16進数の2進数表示である。同様に、シン
ドロームビツトSは4入力線から第7図に示され、16出
力線E0〜E15を有するデコーダすなわちセレクタ44に供
給される。これらの入出力の値の関係は第3表と同様な
表で示される。出力線E0〜E15の中のハイレベルになる
線は第2表のシンドローム値Sにより指定される。
出力線E0〜E15およびF0〜F15の値を、訂正を必要とする
ビツトおよびバイトの位置に関連づけることが必要とさ
れる。第2表において、列は、第3表に示された対応に
より信号E0〜E15に対応し、表の項目は線F0〜F15の番号
に対応する。EおよびF信号の多数の異なつた組合せに
より特定のビツトと特定のバイトが訂正を必要とするよ
うに指示される。例えば、第1バイトの第1ビツトにあ
るエラーは下記の式により表わすことができる: BYTE1.BIT1=E8F1.OR.E12F3 OR.E10F5.OR.E9F9.OR.E14F7 OR.E13F11.OR.E11F13.OR.E15F15 第2表を注意深く検査することにより、データワードの
他の31ビツトについても同様な関係が得られることがで
きる。この式は第8図に示される論理回路を使用するこ
とにより電気的に実現されることができる。8つのAND
ゲート50〜64の各々は、2つの入力、すなわち、図示さ
れた線の順序を有する1つのE線と1つのF線を有す
る。ANDゲート50〜64の出力のすべてはORゲート66の8
入力に供給される。ORゲート66の出力は前述の式で規定
された値BYTE1.BIT1である。この出力は第1バイトの第
1ビツトがエラーであることを指示する。もちろん、デ
ータワードWの32ビツトを指示するには第8図の回路と
同様な合計32の回路を必要とする。同様の回路は前記技
術論文で開示されている。
ビツトエラーロケータ36に対する他の実施例は第9図に
示されているROM70を使用する。32ビツトのデータワー
ドの場合、ROM70は容量が256×32、すなわち256の独立
にアドレス指定可能なワードで、各々のワードが32ビツ
トを有する記憶容量を必要とする。256ワードに対する
アドレス指定空間の8ビツトは、パリテイビツトエラー
信号P″とシンドロームビツトSに割当てられる。その
結果、パリテイビツトエラー信号とシンドロームビツト
の各々の組合せは異なつた記憶位置をアドレス指定す
る。別々にアドレス指定可能であるワードの個々のビツ
トはデータワードWのビツトに対応する。特定ビツトに
おける1の存在は、データワードWのそのビツトが訂正
される必要があることを指示している。ECCに対してROM
を使用することは米国特許第4168486号、同第4358849号
に開示されている。
第1図で示されているように、ビツトエラーロケータ36
の32出力線は、データビツト変更器80に接続される。記
憶アレイ20からのバス22もデータビツト変更器80に接続
される。データビツト変更器80は、ビツトエラーロケー
タ36の出力により指示されたデータワードWのビツトを
反転する。このデータビツト変更器80は、対応するバス
22の線とビツトエラーロケータ36からの線を入力とする
と32の排他的ORゲートにより容易に実現されることがで
きる。データビツト変更器80からの出力は訂正されたデ
ータである。
ビツトエラーロケータ36は更に2つの出力を有すること
がある。1つの出力は、エラーが発生されたことを指示
する単一のエラー信号線である。このエラー信号は、信
号E0およびF0のNANDをとることによつて容易に実現され
ることができる。このE線とF線の組合せはエラーを示
さない唯一の組合せである。ビツトエラーロケータ36の
もう1つの出力は、訂正不能エラーの出力である。訂正
不能エラーは第2表には示されていないパリテイビツト
エラー信号PとシンドロームSのこれらの組合せに対し
て生じる。ECCは、エラーはあるがそれは必然的に複数
ビツトエラーであるエラーを訂正できないということを
検出することができる。訂正不能エラーの出力はANDゲ
ートの組合せにより実現されることができる。その出力
は第8図の回路と同様なオアゲートへの入力である。そ
れに代るものとして、第9図のROM70は訂正不能なエラ
ーである余分の出力を有する256×33のROMに拡張される
ことができる。
G 発明の効果 本発明により、記憶チツプから複数ビツトを出力する場
合に適合するエラー訂正が可能となり、特に小型のコン
ピユータシステムで妥当な信頼性を確保することができ
る。
【図面の簡単な説明】
第1図は本発明のエラー訂正を使用するシステムのブロ
ツク図、第2図はデータワードの形式を示す図、第3図
はデータワードの形式とこのデータワードが含まれる記
憶チツプの関係を示す図、第4図は本発明の1つのデー
タワードの形式を示す図、第5図は本発明の他の実施例
におけるダブルデータワードの形式を示す図、第6図は
本発明のビツトエラーロケータで使用できるセレクタを
示す図、第7図はビツトエラーロケータで使用できる他
のセレクタを示す図、第8図はビツトエラーロケーシヨ
ンの一部の論理回路図、第9図はビツトエラーロケータ
の他の実施例で使用できるROMを示す図である。 20……記憶アレイ、24……パリテイビツト発生器、26…
…検査ビツト発生器、30……パリテイビツト比較器、34
……検査ビツト比較器、36……ビツトエラーロケータ、
80……データビツト変更器。
フロントページの続き (72)発明者 ローレンス・ケネス・ランジ アメリカ合衆国ニユーヨーク州ワツピンジ ヤーズ・ホールズ、ラス・プレース8番地 (56)参考文献 特開 昭52−142453(JP,A) 米国特許4345328(US,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】各々が複数のビツトからなる複数のサブワ
    ードから構成されるデータワードのエラーを訂正するエ
    ラー訂正装置において、 元のデータワードの各サブワードから第1のパリテイビ
    ツトのセツトを生成する手段と、 エラー訂正コードにより前記元のデータワードから第1
    の検査ビツトのセットを生成する手段と、 メモリに記憶されている前記元のデータワードを読出し
    て得られたデータワードの各サブワードから第2のパリ
    テイビツトのセツトを生成する手段と、 前記エラー訂正コードにより前記読出して得られたデー
    タワードから第2の検査ビツトのセツトを生成する手段
    と、 前記第1及び第2のパリテイビツトのセツトをビツト単
    位で比較して、一致しない場合、前記読出して得られた
    データワードにパリテイエラーが存在することを指示す
    るパリテイエラー信号を発生する手段と、 前記第1及び第2の検査ビツトのセツトをビツト単位に
    比較して、シンドロームビツトのセツトを生成する手段
    と、 前記パリテイビツトエラー信号及び前記シンドロームビ
    ツトのセツトにより前記データワードのビツトエラー位
    置を計算する手段とを備えたことを特徴とするエラー訂
    正装置。
JP60045009A 1984-06-29 1985-03-08 エラー訂正装置 Expired - Lifetime JPH0778746B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US626276 1984-06-29
US06/626,276 US4617664A (en) 1984-06-29 1984-06-29 Error correction for multiple bit output chips

Publications (2)

Publication Number Publication Date
JPS6115238A JPS6115238A (ja) 1986-01-23
JPH0778746B2 true JPH0778746B2 (ja) 1995-08-23

Family

ID=24509709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60045009A Expired - Lifetime JPH0778746B2 (ja) 1984-06-29 1985-03-08 エラー訂正装置

Country Status (4)

Country Link
US (1) US4617664A (ja)
EP (1) EP0166269B1 (ja)
JP (1) JPH0778746B2 (ja)
DE (1) DE3586851T2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713816A (en) * 1986-02-25 1987-12-15 U.S. Philips Corporation Three module memory system constructed with symbol-wide memory chips and having an error protection feature, each symbol consisting of 2I+1 bits
EP0300139B1 (en) * 1987-07-20 1993-07-07 International Business Machines Corporation Error correcting code for b-bit-per-chip memory with reduced redundancy
US4862463A (en) * 1987-07-20 1989-08-29 International Business Machines Corp. Error correcting code for 8-bit-per-chip memory with reduced redundancy
US4993028A (en) * 1988-09-07 1991-02-12 Thinking Machines Corporation Error detection and correction coding
US5262342A (en) * 1988-11-04 1993-11-16 Mitsubishi Denki Kabushiki Kaisha Method of making a semiconductor memory device having error checking/correcting functions
US5099484A (en) * 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
JPH03226019A (ja) * 1990-01-30 1991-10-07 Toshiba Corp Crc演算装置
JPH04248198A (ja) * 1991-01-24 1992-09-03 Mitsubishi Electric Corp 携帯形半導体記憶装置
US5291498A (en) * 1991-01-29 1994-03-01 Convex Computer Corporation Error detecting method and apparatus for computer memory having multi-bit output memory circuits
US5357529A (en) * 1992-04-24 1994-10-18 Digital Equipment Corporation Error detecting and correcting apparatus and method with transparent test mode
US5956352A (en) * 1992-04-24 1999-09-21 Digital Equipment Corporation Adjustable filter for error detecting and correcting system
US5491702A (en) * 1992-07-22 1996-02-13 Silicon Graphics, Inc. Apparatus for detecting any single bit error, detecting any two bit error, and detecting any three or four bit error in a group of four bits for a 25- or 64-bit data word
US6367046B1 (en) * 1992-09-23 2002-04-02 International Business Machines Corporation Multi-bit error correction system
US5909541A (en) * 1993-07-14 1999-06-01 Honeywell Inc. Error detection and correction for data stored across multiple byte-wide memory devices
US6359636B1 (en) 1995-07-17 2002-03-19 Gateway, Inc. Graphical user interface for control of a home entertainment system
US5721739A (en) * 1995-12-14 1998-02-24 Fairchild Semiconductor Corporation Method for detecting read errors, correcting single-bit read errors and reporting multiple-bit read errors
US5881076A (en) * 1996-07-17 1999-03-09 Intel Corporation Comparator utilizing redundancy
JPH10285146A (ja) * 1997-03-31 1998-10-23 Ando Electric Co Ltd ビット誤り測定回路
JPH11175362A (ja) * 1997-12-16 1999-07-02 Toshiba Ave Co Ltd 誤り訂正装置及びデータ再生装置
US6304992B1 (en) * 1998-09-24 2001-10-16 Sun Microsystems, Inc. Technique for correcting single-bit errors in caches with sub-block parity bits
US6321351B1 (en) * 1999-03-16 2001-11-20 Oak Technology Method and apparatus for detecting errors in DVD data
US6745363B2 (en) * 1999-07-30 2004-06-01 Hewlett-Packard Development Company, Lp Early error detection using ECC
US6408417B1 (en) * 1999-08-17 2002-06-18 Sun Microsystems, Inc. Method and apparatus for correcting soft errors in digital data
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US6675349B1 (en) * 2000-05-11 2004-01-06 International Business Machines Corporation Error correction coding of data blocks with included parity bits
US6675345B1 (en) * 2000-05-12 2004-01-06 Oak Technology, Inc. Method and apparatus for detecting errors in DVD data
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
US6996766B2 (en) * 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6973613B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
US7530008B2 (en) 2003-08-08 2009-05-05 Sun Microsystems, Inc. Scalable-chip-correct ECC scheme
US7188296B1 (en) 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
US7389465B2 (en) * 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US8464093B1 (en) * 2004-09-03 2013-06-11 Extreme Networks, Inc. Memory array error correction
US7350131B2 (en) * 2005-01-22 2008-03-25 Cisco Technology, Inc. Error protecting groups of data words
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US7843927B1 (en) 2006-12-22 2010-11-30 Extreme Networks, Inc. Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
KR100746225B1 (ko) * 2006-02-13 2007-08-03 삼성전자주식회사 반도체 메모리 장치 및 이를 구비한 메모리 시스템
US7506226B2 (en) * 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
US7721178B2 (en) * 2006-06-01 2010-05-18 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code
US20070283223A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with all checkbits transferred last
US20070283207A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus timing improvements
US20070283208A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features
US8103934B2 (en) 2007-12-21 2012-01-24 Honeywell International Inc. High speed memory error detection and correction using interleaved (8,4) LBCs
US8331373B2 (en) 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
JP5772192B2 (ja) * 2011-04-28 2015-09-02 富士通株式会社 半導体装置、情報処理装置およびエラー検出方法
US9654143B2 (en) * 2014-06-18 2017-05-16 Intel Corporation Consecutive bit error detection and correction
CN106169312B (zh) * 2015-05-18 2021-05-07 爱思开海力士有限公司 用于快闪存储的广义乘积码
US10498366B2 (en) 2016-06-23 2019-12-03 SK Hynix Inc. Data dependency mitigation in parallel decoders for flash storage
US10439649B2 (en) 2016-02-03 2019-10-08 SK Hynix Inc. Data dependency mitigation in decoder architecture for generalized product codes for flash storage
US10484020B2 (en) 2016-02-03 2019-11-19 SK Hynix Inc. System and method for parallel decoding of codewords sharing common data
US10523245B2 (en) 2016-03-23 2019-12-31 SK Hynix Inc. Soft decoder for generalized product codes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4345328A (en) 1980-06-30 1982-08-17 Sperry Corporation ECC Check bit generation using through checking parity bits

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573728A (en) * 1969-01-09 1971-04-06 Ibm Memory with error correction for partial store operation
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
JPS52142453A (en) * 1976-05-21 1977-11-28 Fujitsu Ltd Block error correction processing system
US4103823A (en) * 1976-12-20 1978-08-01 International Business Machines Corporation Parity checking scheme for detecting word line failure in multiple byte arrays
US4168486A (en) * 1978-06-30 1979-09-18 Burroughs Corporation Segmented error-correction system
US4211997A (en) * 1978-11-03 1980-07-08 Ampex Corporation Method and apparatus employing an improved format for recording and reproducing digital audio
US4317201A (en) * 1980-04-01 1982-02-23 Honeywell, Inc. Error detecting and correcting RAM assembly
US4358848A (en) * 1980-11-14 1982-11-09 International Business Machines Corporation Dual function ECC system with block check byte
US4353391A (en) * 1981-08-18 1982-10-12 The United States Of America As Represented By The United States Department Of Energy Radioactive materials shipping cask anticontamination enclosure
JPS58105500A (ja) * 1981-11-23 1983-06-23 スペリ・コ−ポレ−シヨン メモリ駆動回路故障検出システム及び方法
US4531213A (en) * 1982-03-03 1985-07-23 Sperry Corporation Memory through checking system with comparison of data word parity before and after ECC processing
US4488302A (en) * 1983-02-11 1984-12-11 At&T Bell Laboratories Burst error correction using cyclic block codes
US4507783A (en) * 1983-02-28 1985-03-26 At&T Bell Laboratories Error detection circuitry for digital systems
US4651321A (en) * 1983-08-29 1987-03-17 Amdahl Corporation Apparatus for reducing storage necessary for error correction and detection in data processing machines

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4345328A (en) 1980-06-30 1982-08-17 Sperry Corporation ECC Check bit generation using through checking parity bits

Also Published As

Publication number Publication date
EP0166269A2 (en) 1986-01-02
EP0166269B1 (en) 1992-11-25
DE3586851T2 (de) 1993-06-09
JPS6115238A (ja) 1986-01-23
US4617664A (en) 1986-10-14
EP0166269A3 (en) 1988-07-27
DE3586851D1 (de) 1993-01-07

Similar Documents

Publication Publication Date Title
JPH0778746B2 (ja) エラー訂正装置
US5418796A (en) Synergistic multiple bit error correction for memory of array chips
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US5164944A (en) Method and apparatus for effecting multiple error correction in a computer memory
US4458349A (en) Method for storing data words in fault tolerant memory to recover uncorrectable errors
US5226043A (en) Apparatus and method for data error detection and correction and address error detection in a memory system
US5313475A (en) ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US7278085B1 (en) Simple error-correction codes for data buffers
US5768294A (en) Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US7398449B1 (en) Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US5099484A (en) Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US4168486A (en) Segmented error-correction system
US5745508A (en) Error-detection code
US5537425A (en) Parity-based error detection in a memory controller
US4961193A (en) Extended errors correcting device having single package error correcting and double package error detecting codes
US7188296B1 (en) ECC for component failures using Galois fields
JP2001249854A (ja) メモリ設計のための共有式誤り訂正
JPS6112292B2 (ja)
JPS63115239A (ja) エラ−検査訂正回路
US5751745A (en) Memory implemented error detection and correction code with address parity bits
US20040225944A1 (en) Systems and methods for processing an error correction code word for storage in memory components
US5757823A (en) Error detection and correction for four-bit-per-chip memory system
US5761221A (en) Memory implemented error detection and correction code using memory modules