JPH0782446B2 - 多重エラー訂正方法 - Google Patents

多重エラー訂正方法

Info

Publication number
JPH0782446B2
JPH0782446B2 JP60200724A JP20072485A JPH0782446B2 JP H0782446 B2 JPH0782446 B2 JP H0782446B2 JP 60200724 A JP60200724 A JP 60200724A JP 20072485 A JP20072485 A JP 20072485A JP H0782446 B2 JPH0782446 B2 JP H0782446B2
Authority
JP
Japan
Prior art keywords
error
bit
package
errors
memory
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
JP60200724A
Other languages
English (en)
Other versions
JPS61169940A (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 JPS61169940A publication Critical patent/JPS61169940A/ja
Publication of JPH0782446B2 publication Critical patent/JPH0782446B2/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/183Testing wherein at least one additional attempt is made to read or write the data when a first attempt is unsuccessful

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A. 産業上の利用分野 B. 開示の概要 C. 従来技術 D. 発明が解決しようとする問題点 E. 問題点を解決するための手段 F. 実施例 F1. 多重エラー訂正(第1図) F2. ワードウエア構成(第2図) F3. ECC拡張部(第3図) F4. デコーダ(第4図) F5. 多重エラー訂正の例 G. 発明の効果 A. 産業上の利用分野 本発明はエラー訂正に関し、さらに詳しくいえば、使用
されているエラー訂正コードの能力以上のエラーを訂正
するための技術に関するものである。
B. 開示の概要 以下に説明する多重エラー訂正の技術は多重ビツト・メ
モリパツケージを用いたメモリシステムにおいて、ハー
ドエラーを有するメモリパツケージを識別することによ
つて、使用されているエラー訂正コードの訂正能力以上
のエラーを訂正できるようにしたものである。
C. 従来の技術 コンピユータのメモリのサイズが大きくなる一方で、個
々のメモリセルが縮小化されてきたため、メモリに記憶
されたデータ中に訂正不能なビツトエラーが発生するよ
うになつた。プログラムのオペレーシヨンを訂正した
り、メモリチツプの交換を必要とするような偶発的なエ
ラーは、もはや許されない。こうしたビツトエラーには
2つのタイプがある。1つはソフトエラー、もう1つは
ハードエラーである。ソフトエラーは、外面的には、記
憶されたデータを反転するものである。この反転は突発
的な電気的ノイズや、場合によつては、いわゆるα線の
ような素粒子によつて引き起こされる。個々のセルのサ
イズが小さくなるにつれて低いレベルのノイズが無視で
きなくなつてくるので、それによつて引き起こされるソ
フトエラーが問題となる。一方、ハードエラーはメモリ
チツプの永続的な電気的障害である。したがつて、メモ
リチツプの設計者たちはそこに生ずるソフトエラーおよ
びハードエラーの両方を減らそうと努力してきた。しか
しながら、これら両タイプのエラーを完全になくすこと
はできなかつた。実際、これらを全てをなくすのは不可
能であると一般には考えられている。性能を犠牲にする
かまたはコストを犠牲にするかによつて或るレベル以上
の信頼性が得られるにすぎない。
ソフトエラーおよびハードエラーの両方を解決する手段
は大規模なコンピユータメモリにおいてエラー訂正コー
ド(ECC)を実現することである。エラー検出および訂
正の原理はハミングによつて紹介された。最も一般的な
ハミングコードでは、たとえば8ビツトのデータワード
は、選択されたハミングコードに応じて13ビツトのワー
ドにコード化される。デコーダはこの13ビツトのワード
を処理して、13ビツト中の1ビツトエラーを訂正してビ
ツトエラーがあるかどうかを検出することができる。こ
のようなコードのことを、SEC/DED(単一エラー訂正/2
重エラー検出)という。こうしたコードは、時に、単一
ビツト出力を有するメモリチツプに有効である。たとえ
ば、コンピユータが各バイトにつき8ビツトのデータを
含むような16K(16348)バイトのデータを有するとすれ
ば、余分に5個のメモリチツプを備えた13個の16K×1
のメモリチツプを用いてハミングSEC/DED保護を行うと
効果的である。どのメモリチツプもエラー保護されたワ
ードの各々につき1ビツトしか関与しないから、このハ
ミングコードは任意のバイトに発生するランダムな1ビ
ツトエラーを訂正し、障害の生じたメモリチツプを訂正
することができる。
もちろん、以上に示した13ビツトのハミングコードは、
エラーがソフトエラーであるかまたはハードエラーであ
るかにせよ、それを1つしか訂正できない。したがつ
て、1つのメモリチツプの全てのロケーシヨンにハード
的に障害があつたときは、残りのメモリチツプは1つの
偶発的なソフトエラーに対する保護がなされない(ただ
し訂正できないだけで検出は可能である)。以上に、EC
Cのごく単純な例を示したが、ECCはその後も発展を続け
また様々なものが実現されてきた。そうした中で共通し
て言えることは、1つのワードにおいてよりたくさんの
エラーを訂正しようとすれば、そのチエツクコードとし
てそれだけ余分にビツトが必要になるということであ
る。
ハミングコードおよびこれと類似のコードは、データワ
ードの各々のビツトを異なるメモリチツプで記憶する場
合のハードエラーの訂正に有益である。しかしながら、
メモリチツプの密度も絶えず高くなつてきている。1メ
ガビツトおよび4メガビツトの単一メモリチツプも、ま
もなく商用化されるであろう。とはいつても、ほとんど
のシステムでは1メガバイトおよび4メガバイトの記憶
装置は必要となれない。各データワードから1ビツトだ
けを記憶するように上記のような大規模のチツプが使用
されるとしたら、このような容量の大きい記憶装置の出
現する可能性がある。しかしながら、大規模メモリチツ
プは、同じデータワードの複数のワードを記憶するよう
にして使用されると予測される。たとえば、1メガビツ
トのメモリチツプは、各々同時にアクセスできる4つの
データポートを有するように適合されるのは簡単であ
る。このメモリチツプは、正しくは、256K×4のメモリ
と呼ばれるだろう。8個の1メガビツト・メモリチツプ
で32ビツトワード、356Kの記憶装置が提供される。そう
した高密度のメモリチツプで構成された大規模なメモリ
はエラー保護の機能は欠くことができない。こうした大
規模なメモリのソフトエラーは、1つまたはわずかなメ
モリロケーシヨンでランダムに発生するから、それ程大
きな問題にはならない。しかしながら、大規模なメモリ
のハードエラーは、このような多重ビツド・メモリチツ
プの場合、実に厄介な問題となる。というのは、ハード
エラーは単一ビツトの出力ポートに限つたものではなく
メモリパツケージに関連する全てのビツトに影響を及ぼ
すという場合が多いからである。上記のような256K×4
のパツケージでいうと、ハードエラーが生ずれば同じデ
ータワードにおいて同時に4つのエラーが発生する可能
性が高い。エラー訂正コードは多数のエラーを処理する
のに利用できるし、実際、1ワード中のほとんどの任意
のエラー数を処理するエラー訂正コードを作ることもで
きるが、前述の如く大規模な訂正を実行するには余分の
ビツトが大量に必要となる。
最近になつて、多重ビツト・パツケージにおけるハード
エラーを処理する優れた手法が開発された。このような
エラーはパツケージエラーと呼ばれ、パツケージエラー
に対して特別にあつらえたエラー訂正コードはパツケー
ジコードと呼ばれる。このようなコードは、多重ハード
エラーがそのデータワードのフイールド全体にわたつて
ランダムに発生するものではないという現象に基づいて
いる。すなわち、多重エラーはそのデータワードのサブ
フイールド(パツケージの出力によつて定められるも
の)に集中するという現象に基づいている。これまでに
説明した例でいえば、こうしたパツケージコードは32ビ
ツトワードに発生する任意の4つのエラーを訂正するこ
とができる。とはいつても、8つの4ビツト・サブフイ
ールドのうちの1つに発生する4ビツトエラーを訂正す
るだけである。
したがつてパツケージコードでもまだ十分に満足のいく
ものではない。たとえばSPC/DPD(単一パツケージ訂正/
2重パツケージ検出)コードは、1つのパツケージだけ
に発生するどんなエラーをも訂正し、且つ2つのパツケ
ージに発生するエラーを検出することができる。1つの
パツケージにハード的な障害があつたときは、残りのパ
ツケージにエラーが発生すると(ソフトエラーでもハー
ドエラーでもよい)そのエラー状態が検出される。ただ
し、この場合は訂正はだきない。つまり、ハード的な障
害が1つあるだけで、SPC/DPDコードによつて提供され
る訂正機能が失われてしまうのである。
米国特許第3449718号は、特に磁気テープに適用できる
エラー訂正の方法を開示するものである。磁気テープは
1バイトを定める並列的なロケーシヨンで並列的なトラ
ツクを有する。トラツクの1つすなわち並列的なビツト
の1つはチエツクビツトとして使用され、これによりそ
のバイトの残りのビツトに関するパリテイを記録する。
このような複数のバイトがテープ上でさらに長いブロツ
クとして構成される。1つのブロツクの端のところには
付加的に記録された幾つかのバイトがあつて、これによ
りブロツクのチエツクを行う。すなわち、ブロツクチエ
ツクのビツトはその前のデータおよびチエツクビツトと
矛盾するものであつてはならない。パリテイチエツクビ
ツトは単一エラーを検出するだけで訂正はできない。こ
の米国特許では、1つのブロツク内の全てのエラーは単
一のトラツクに発生するという仮定が行われている。エ
ラーは最初のトラツクに発生しているという仮定のもの
にテープが読み取られる。テープはバイトごとに読み取
られてパリテイエラーがチエツクされる。パリテイエラ
ーがそのバイト内で示されると、最初のトラツクにおけ
るそのビツトが反転される。反転の可能性のあるデータ
とブロツクチエツクビツトとの比較がなされる。初めの
仮定が正しければ、そのデータは正しく、ブロツクチエ
ツクビツトはデータの正しいことを示す。しかしながら
初めの仮定が正しくないときは、その仮定は、全てのエ
ラーは2番目のトラツクに発生しているという仮定に変
更される。2番目のトラツクに反転を生じさせるパリテ
イエラーを伴うデータがテープから再読取りされる。こ
のプロセスは、ブロツクチエツクビツトとの一致が得ら
れるか、またはテープを読み終えて各々のトラツクがエ
ラーをそれぞれ含むようになるまで繰り返される。1982
年7月、アイ・イー・イー・イー・トランザクシヨン・
オン・コンピユーターズ(IEEE Transactions on Comp
uters)第C−31巻第7号第596ないし602頁の“メモリ
システム用単一バイトエラー訂正/2重バイトエラー検出
コード”と題するカネダらによる論文(以下、文献
(a)という)は、パツケージエラーを検出するための
パツケージコードの1つの例を開示するものである。米
国特許第3629824号および第4464753号(以下、文献
(b)という)はパツケージコードおよびそのハードウ
エア構成を開示するものである。米国特許第3629824号
は、SEC/DECコードを用いて一方がハード的な障害であ
る2重エラーを訂正するものであり、これに近いものに
米国特許第4319357号がある。誤りのあるワードの記憶
ロケーシヨンはスタツクビツトとしてチエツクされる。
新しいシンドロームを計算しこれと誤りのあるワードに
関するシンドロームとを比較して、その一時的なエラー
を見つける。
1971年9月、アイ・ビー・エム・テクニカル・デイスク
ロージヤー・ブレテン(IBM Technical Disclosure Bul
letin)第14巻第4号第1342頁の“2重エラー訂正”と
題する論文は単一エラー訂正(SEC)コードを用いて単
一エラーが1つだけ残るようになるまで一連のビツトに
連続的に反転することによつて2重エラーを訂正する手
法を開示するものである。単一エラーが1つだけになれ
ば、これはSECコードで訂正することができる。しかし
ながらこの手法はエラーの位置測定を提供するものでは
ない。しかも、1つの正しいビツトを反転すれば3つの
エラーを発生し、これをSECコードが必ずエラーとして
検出してしまう。
米国特許第4139148号はSECコードで2重エラーを訂正す
る手法を開示するものである。単一エラーを検出するだ
びに、そのエラーを訂正するのに使用するシンドローム
を記憶する。もし引き続いてその同じワード2重エラー
が検出されたときは、前に記憶したシンドロームを用い
て1つのエラーを訂正する。1980年5月、アイ・ビー・
エム・ジヤーナル・オブ・リサーチ・アンド・デベロプ
メント(IBM Journal of Research and Development)
第24巻第3号第390ないし397頁の“メモリソフトエラー
問題に対するシステムの解決策”と題する論文は同時的
に発生するハードエラーおよびソフトエラーの問題につ
いて論じている。エラーのサブクラスに適用可能な1つ
の解決策は、読取りデータを補数化しそれを元のメモリ
ロケーシヨンに記憶しその補数化されたデータを再読取
りしそれを再補数化することである。ハード的な障害お
よびデータの組合せによつては、この補数化および再試
行の手法でハード的な障害が解決されることもある。米
国特許第4949208号もこの補数化および再試行を用いた
エラー訂正の技術を開示するものである。
D. 発明が解決しようとする問題点 前述の如く、たとえばSPC/DPDコードはハード的な障害
が1つあるだけでその訂正機能が失われてしまう等、一
般的に多重ビツト・メモリパツケージによるメモリにお
ける多重エラーに関する訂正の技術は満足のいくもので
はない。
しかたがつて本発明の目的はデータワードにおける多重
エラーを訂正することにある。
E .問題点を解決するための手段 この目的を達成するため、本発明の多重エラー訂正方法
は、bビツトのサブワードを複数有するエラー訂正符号
化されたnビツト・コードワードにおける多重エラーを
訂正する方法であつて、(a)データ源からnビツト・
コードワードを受け取るステツプと、(b)受け取つた
nビツト・コードワードにおける所定の分布を有するエ
ラーを所定数まで訂正するためnビツト・コードワード
に対しエラー訂正処理を施し、所定数より多いエラーが
発生したときは訂正不能エラー信号を発生するステツプ
と、(c)障害のある少なくとも1つのbビツト・サブ
ワードを識別するステツプと、(d)2b個の一意的なb
ビツトの組合せの1つを生成するステツプと、(e)b
ビツトの組合せの1つで、nビツト・コードワードのう
ちの識別されたbビツト・サブワードを代用して変更さ
れたnビツト・コードワードを生成するステツプと、
(f)該変更されたnビツト・コードワードに対しエラ
ー訂正処理を施すステツプと、(g)訂正不能エラーが
あるときは異なるbビツトの組合せを生成して前記ステ
ツプ(e)および(f)を繰り返すステツプと、より成
ることを特徴とする。
F. 実施例 はじめに実施例の概略と共に本発明の作用を説明する。
本実施例は、簡単にいえば、使用されるエラー訂正コー
ドで検出できるが訂正できないハードエラーを訂正する
ための再試行手法を拡張したものである。データワード
を読み取つてレジスタに記憶する。使用されるエラー訂
正コードはそのデータワードに作用して、訂正不能な多
重パツケージエラーを検出すると、上記元の読み取りワ
ードを補数化してもとの同じロケーシヨンに再記憶す
る。この補数化されたワードを検索して再補数化し、こ
れにエラー訂正コードを適用する。これでなお訂正不能
エラーがあれば、1回目に補数化されたワードとレジス
タにある元の読取りデータとをビツトごとに比較して、
どのパツケージにエラーが生じているのかを識別する。
ハードエラーのあるパツケージが識別されると、1回目
の補数化され検索されたワードにおける識別されたパツ
ケージのサブフイールドのビツトを順次的に変更する。
このサブフイールドの変更されたワード全体を補数化し
て、これにエラー訂正コードを適用する。この順次的な
変更は、このサブフイールドが記憶された元のデータと
一致するようになるまで繰り返される。一致すればエラ
ー訂正コードで他のサブフイールド(すなわち他のパツ
ケージ)に残つているエラーを訂正することができる。
以上が本実施例の概略および本発明の作用の説明であ
る。以下、項目を分けて本実施例を詳述する。
多重エラー訂正(第1図) 1つのパツケージに生ずる任意のエラー数を訂正しかつ
2つのパツケージに生ずるエラーを検出することのでき
るSPC/DPD(単一パツケージ訂正/2重パツケージ検出)
コードを列にして、本発明の実施例を説明する。このコ
ードは前掲の文献(a)及び(b)に開示されるような
任意のSPC/DPDコードを使用することができる。補数化
および再試行の技術を用いて、ハードエラーを有する1
以上のパツケージを識別する。SPC/DPDコードで、その
パツケージ中の任意のエラー数を検出することができる
ので、識別されたパツケージ中にエラーが検出されない
ようになるまで、そのパツケージに対してデータの可能
な組合せを試す。正しくない組合せがあればエラーとし
て検出される。正しい組合せが見つかると、エラーを含
む残りのパツケージ中にエラーをSPC/DPDコードでさら
に訂正することができる。
第1図を参照しながら、実施例の動作を説明する。デー
タワードはまずSPC/DPDコードに基づいてコード化され
る(ステツプ100)。コード化されたワードは、そのコ
ード化によつて生成されたチエツクビツトと共にメモリ
の適切なロケーシヨンAに記憶される(ステツプ10
2)。通常の処理でデータワードがメモリに記憶される
ときはステツプ100および102が実行させる。ロケーシヨ
ンAはそのデータワードの識別子に応じて異なる。
然る後に、コンピユータはメモリの特定のロケーシヨン
Aに記憶されたこの情報を必要とする。コンピユータは
指定されたロケーシヨンAからそのワードを読み取る。
読み取られたこのワードをワードRとする。特に指定し
ない限りは、ワードRはデータビツトおよびそのチエツ
クビツトの両方を含むものとする。読み取られたデータ
Rは、ハードエラーまたはソフトエラーのため、指定さ
れたロケーシヨンにもともと記憶されたワードと異なる
場合がある。読み取られたワードRはレジスタAおよび
C(後出)にラツチする。以上がステツプ104である。
読み取られたワードRがエラーを含まないか、または1
つのパツケージだけのエラーしか含まない場合は、SPC/
DPDコードで1つのパツケージの全てのエラーを訂正で
きるから、訂正不能なエラーは存在しない。この場合、
すなわちステツプ108で“いいえ”の場合は、読み取ら
れたワードRが正しいかまたは訂正されたワードRを使
用できるので、このアクセスは完了する(ステツプ11
0)。以上のプロシージヤは通常のECC処理である。
SPC/DPDコードは異なる2つのパツケージにエラーが存
在するときは、このような状態が存在するということを
示すことはできるが訂正はできない。3以上のパツケー
ジにエラーが発生するときは、ECCは訂正不能エラーと
してその状態の標識を示すことができる場合もある。こ
の状態の標識が訂正不能エラーとして示されないことも
ある。この時点でE2CCと呼ばれる拡張されたエラー訂正
の第1段階が始まる。訂正不能エラーがあるときは、読
み取られたワードRの値はレジスタBにも記憶され(ス
テツプ112)、Rが補数化される(ステツプ114)。補数
化された値はメモリの指定されたもとのロケーシヨン
Aに戻して記憶する。直ちに、この同じロケーシヨンA
がレジスタAに読み取られる。これがステツプ118であ
る。この検索された補正化データをWとする。この値は
再び補数化される(ステツプ120)。再補数化された
の値は、反転が2回行われているから、Rの値に等しい
はずである。メモリーにハード的に障害があつてそのビ
ツトに入力された値に関係なく出力値がハイまたはロー
に固定してしまうと、はRと等しくならない。もとも
と検出されたエラーの原因がソフトエラーなら、少なく
ともソフトエラービツトに対しては、2回の反転でもと
の読取りワードRの値が再生成される。
次にステツプ124で、再補数化された検索データにECC
コードを適用する。ECCはワードが元の読取りワード
Rと違つていてもワードを訂正することができる。こ
の状況は、たとえば、1つのパツケージに値(0000)が
もともと記憶されておりその4ビツトが全てハイの値
(1111)に誤つたようなときに発生する。ここで他の1
つのパツケージだけにエラーがあると仮定すると、Rに
関する初めのECC処理(ステツプ106)で二重パツケージ
エラーが検出されるであろう。障害のあるこの4ビツト
に関して1回めに補数化された値は(0000)である。指
定されたロケーシヨンに記憶してから検索すると、この
4ビツトはもう一度本来正しいが補数化された値(111
1)となる。ところが、Wに関する再補数化でそれが真
数値(0000)に戻る。2回反転した後、障害のあるパツ
ケージにこのエラーが残つているときは、SPC/DEDコー
ドはこの1つのパツケージのエラーを処理することがで
きる。
ステツプ124のこのECC処理の後、訂正不能エラーがなけ
れば、そのECCで訂正された値はもとの読取りワードR
の値として用いる(ステツプ142)。このようにして検
出されたエラーの1つはソフトエラーであつただろうか
ら、この新しい値Rはメモリの指定されたロケーシヨン
Aに直ちに再記憶しておくのがよい(ステツプ146)。
ソフトエラーは不良メモリロケーシヨンを意味するので
はなく、そのロケーシヨンのデータが反転したというこ
とを意味するにすぎない。データがそのロケーシヨンで
正しく復元されてからそれが再反転する可能性はほとん
どない。しかしながら、ソフトエラーは蓄積される一方
であるから、それが訂正能力以上の数になることもあ
る。したがつて、これまでに説明したようにしてソフト
エラーを検出したら直ぐにそれを訂正しておくことが望
ましい。以上で、複数化および再試行を伴うE2CCプロセ
スが完了する。
検索された再補数化ワードのECC処理で訂正不能エラ
ーの標識がなお示される場合は(ステツプ126で“は
い”の場合)、ステツプ128以下に示す拡張されたエラ
ー訂正の次の段階(E3CCという)が以下のようにして実
行される。まずステツプ128でレジスタAおよびCに記
憶されたそれぞれの値を用いて、WとRのビツトごとの
比較を行う。これで一致であれば、介在する記憶による
2回の反転により異なるビツト値が再生成されたという
ことを意味する。すなわち、そのパツケージのこのビツ
トロケーシヨンが或る値に固定されているというハード
的な障害である。ステツプ128におけるこの比較は、エ
ラーを有する2つのパツケージの一方における少なくと
も1つのハード的障害をみつけるために行うものであ
る。このデータワード内で、ワード的障害のロケーシヨ
ンは不良パツケージの1つを識別する。もちろん、1つ
のパツケージにおける全てのエラーがソフトエラーであ
つたとすれば、このパツケージは識別されない。以上の
プロシージヤはエラーを有する2つのパツケージの少な
くとも一方にハードエラーが介在するということに基づ
くものであるという点に留意されたい。エラーが全てソ
フトエラーであるときは、このプロシージヤではデータ
を訂正することはできない。
この時点で、障害パツケージの1つが識別されて、余分
なエラーはもう1つのパツケージだけに限定されること
になる。したがつて、識別されたパツケージに含まれる
データはほとんど不適切なものとなる。識別されたパツ
ケージのデータの16個の可能な組合せに関して、SPC/DP
Dコードは15個の間違つた組合せを検出することができ
る。そのワードの残りと、16個のうちの正しい組合せと
を組み合せれば他の一方のパツケージにエラーが局在し
た全体のデータワードが生成される。ECCコードでこの
状態を訂正することができる。こうして、識別されたパ
ツケージのデータに関する様々な組合せが、ECCコード
によりそのワードを訂正できるようになるまでECC処理
を行う。このプロシージヤを次に説明する。
レジスタAに記憶した値Wを始点として用いる。ハード
エラーの識別されたパツケージに関連するビツトを1つ
ずつ順次的に変更して1つのワードWiを生成する。(ス
テツプ130)。このワードWiは変更されない他のパツケ
ージのビツトが組み合せられたものである。後述するよ
うに、この変更プロセスにカウンタ/デコーダ論理を用
いることもできる。1つのビツトが変更させるたびに、
変更されたワードWi(ハードエラーの識別されたパツケ
ージサブワードと他の変更されていないパツケージのサ
ブワードとを組み合せたもの)は補数化されて(ステツ
プ132)その値にECC処理を施す(ステツプ134)。ECCに
より訂正不能エラーが示されて識別されたパツケージの
16個の組合せの1つが試されている限りは、130ないし1
38のステツプが繰り返される。識別されたパツケージに
おける可能な組合せがメモリにもともと記憶されたデー
タと一致すれば、変更されたデータワードは残りの
1つのパツケージだけにしかエラーを踏まないので、SP
C/DPDコードはこれらの残りのエラーを訂正することが
できる。ここでは、最初に検出されたエラーが2つのパ
ツケージだけに限定されていると仮定している。訂正不
能エラーの標識が示されなければ、訂正された値
訂正された値Rとして用いて、ソフトエラーを除去する
ためにこの値をメモリに再記憶する(ステツプ146)。
こうしてRに関するメモリのアクセスが完了する(ステ
ツプ148)。
識別されたパツケージにおけるデータの16個の全ての組
合を試行しても訂正の完了したワードが生成されないな
ら、ECCで最初に3以上のパツケージでエラーを検出し
たと推定されるか、または拡張されたECCサイクル内で
ハードエラーが断続的であろうと推定される。以上の実
施例ではこうした状況は適正不能エラー識別として示さ
れる。
2つのパツケージがハードエラーを有するものと識別さ
れた場合は、両方のパツケージのビツトを同時に変更す
るのが望ましい。こうすればより速く正しい組合せが生
成されるからである。
ハードウエア構成(第2図) 次に、本実施例の拡張されたエラー訂正に関するハード
ウエアの具体例について説明する。第2図に示すメモリ
システムは、各々4ビツトの出力を有する4つのメモリ
パツケージ10から成る。合計16ビツトの保護データワー
ド(4つの4ビツトサブフイールドに分けられる)のた
めの単一パツケージ訂正/2重パツケージ検出(SPC/DPD
×4)コードを実現する目的で、ECC論理12を設ける。
“x4"はパツケージの幅が4ビツトであることを示す。S
PC/DPD×4コードは15個のチエツクビツトを必要とす
る。前掲の論文(a)には、本実施例に必要な部類のEC
C論理の例が記載されている。本実施例ではデータフイ
ールドの幅およびそのサブフイールドの幅をそれぞれ16
ビツトおよび4ビツトとしているが、もちろん他の幅の
ものにも本発明は同様に適用できる。ECC論理12は任意
の2つのメモリパツケージ10に発生する任意のビツトエ
ラー数を検出することができる。ECC論理12は2重パツ
ケージエラーの場所を指定することはできないが、訂正
不能エラー信号を発生することができる。2重パツケー
ジエラーだけを一義的に検出するよう設計されたこのEC
C論理12は、3個または4個のメモリパツケージ10にエ
ラーが発生したときは、そのことを示す場合もあるし示
さない場合もある。
本実施例では、さらに、メモリパツケージ10の各々に関
連してECC拡張部16をそれぞれ設ける。各ECC拡張部16は
16ビツトのレジスタAを介して関連するメモリパツケー
ジ10から4ビツトのデータを受け取る。各ECC拡張部16
は16ビツトのデータのうちの4ビツトをECC論理12に供
給する。ECC拡張部16がECC論理12に供給するデータは、
関連するメモリパツケージ10からの元のデータである場
合もあるし、そのデータが前述のプロセスに従つて変更
されることもある。コントローラ18はECC論理12から訂
正不能エラー信号を受け取つてECC拡張部16の動作を制
御する。コントローラ18からのE2CC信号は拡張されたエ
ラー訂正が補数化の初めの段階にあることを意味し、E3
CC信号は、ハード障害を有するメモリパツケージ10に関
連するサブフイールドビツトのカウンタ20が変更してい
るところであるということを意味するものである。
ECC拡張部(第3図) ECC拡張部16の詳細を第3図に示す。メモリパツケージ1
0の出力の各々は関連するAiラツチ30にそれぞれ接続す
る。Aiラツチ30はレジスタAの構成要素である。各Ai
ツチ30の出力は関連するCiラツチ32にそれぞれ接続す
る。Ciラツチ32はレジスタCの構成要素である。Aiラツ
チ30およびCiラツチ32は両方ともコントローラ18でラツ
チされる。Ciラツチ32はRを記憶してビツトごとの比較
を行うためのものである。4つの比較回路34の各々は対
応するAiラツチ30およびCiラツチ32のペアからの出力を
受け取つて、これらの両ビツトが等しいときにハイレベ
ルの信号(すなわち1)を出力する。したがつてこの比
較はWおよびRに関してビツトごとに行われる。
比較回路34の各々の出力は4つのデコーダ36の入力e、
入力f、入力gおよび入力hのうちの1つに入力され
る。各デコーダ36は関連するAiラツチ30にラツチされた
データビツトに関する選択的な反転を制御する。この選
択的な反転はEXORゲート38で実行される。各EXORゲート
38はECC論理12への16個の入力への1つの出力を供給す
るECC論理12の各出力はBiラツチ40に別々にラツチされ
る。16個のBiラツチ40でレジスタBが構成される。4ビ
ツトのカウント20は4つのデコーダ36の入力dにそれぞ
れ接続される出力ラインを有する。
デコーダ(第4図) デコーダ36は第4図に示すような論理ゲートから成る。
ORゲート44への4つの入力e、f、gおよびhは、補数
化および再試行の結果で示される如く、関連するメモリ
パツケージ10のどのビツトにハード的障害があるのかを
示すものである。これらの入力のうちどれか1つがハイ
レベルになると、ハード障害標識(以下HFIという)出
力がハイレベルになる。関連するパツケージのビツトに
対してハード障害が示されたときは、ハード障害の生じ
たパツケージ内にそのビツトはカウンタ20のカウント信
号に応じてE3CCプロセスで変更される。ワードWiのビツ
トは順次的に変更され、全て変更されたワードが補数化
されることに留意されたい。これらのオペレーシヨンは
変更されるビツト(補数化されていない状態で用いられ
る)を除く全てのビツトをEXORゲート38で反転すること
によつてなされる。HFI出力がハイレベルになると、カ
ウンタのカウント信号(1ビツト)がNANDゲート46で反
転されて、E3CC信号がハイレベル(すなわち、異なる組
合せが現に試行されている)のときにANDゲート48を通
る。カウンタの信号はORゲート50を通つて出力aとな
る。ハイベルのE2CC信号は、初めの補数化および再試行
のプロシージヤが実行されているときにORゲート50を通
り、これによりデータワードの全てのビツトが反転され
る。E2CC信号およびE3CC信号が両方ともハイレベルでな
いときは、ORゲート50の出力はローレベルなのでEXORゲ
ート38はAiラツチ30において補数化されない値をECC論
理12へ通す。
上記の第1表は入力にE2CC信号、E3CC信号および1ビツ
トのカウント信号を有するデコーダ36に関する真理値表
である。HFI信号の値は、ハード障害比較信号e、f、
gおよびhのうち1つがハイレベルのときは常にハイレ
ベルである。E2CC信号およびE3CC信号が両方ともローレ
ベルなら、デコーダ36の出力aはゼロなので、データビ
ツトは反転されない。以上が、エラー訂正の初めの試行
のためのノーマルモードのオペレーシヨンである。
コントローラ18がE2CC=0およびE3CC=0を出力すれ
ば、Aiラツチ30にラツチされたワードRのために初めの
エラー訂正の段階が試行される。デコーダ36はa=0を
出力するので、データビツトおよびチエツクビツトがEC
C論理12に送られる。ECC論理12の出力はBiラツチ40でラ
ツチされる。データが正しいかまたは訂正可能な場合
は、ECC論理12はBiラツチ40のデータのための有効なデ
ータ信号を出力する。無効データまたは訂正不能なエラ
ー信号で、さらにエラー訂正が必要であるということを
コントローラ18に知らせる。訂正不能エラーの場合、未
訂正のデータワードはECC論理12を介してBiラツチ40に
送られる。
コントローラ18がE2CC=1およびE3CC=0を出力する場
合は(初めに取り出したデータのECCチエツクから生じ
た訂正不能エラー信号に基づく)、補数化および再試
行、すなわち、拡張されたエラー訂正のE2CCプロセスが
試行される。Biラツチ40のデータはAiラツチ30に戻され
る。これにより、後述のデータワードAiラツチ30に予め
記憶できるようなパイプラインオペレーシヨンが可能と
なる。データワードに関する全てのデータビツトおよび
チエツクビツトがHFI信号およびカウント信号の値に関
係なく反転するように、デコーダ36はa=1を出力す
る。反転によりワードが生成され、これが変更されな
いままECC論理12を介してBiラツチ40に送られてメモリ
パツケージ10のロケーシヨンAに記憶される。次にロケ
ーシヨンAが読み取られて、その内容がAiラツチ30にラ
ツチされる。全てのデータビツトおよびチエツクビツト
が反転されるよう、デコーダ36はa=1を出力し続け
る。これが、ハード障害を分離し恐らくはエラーを訂正
するために実行されれWからへの補数化である。
コントローラ18がE2CC=0およびE3CC=1を出力する場
合は(2回の補数化すなわちE2CCプロセス後のECCチエ
ツクから生じた訂正不能エラー信号に基づく)、拡張さ
れたエラー訂正の第2の段階すなわちE3CCプロセスが試
行される。換言すれば、ハード障害の生じたメモリパツ
ケージ10のビツトが変更される。デコーダ36に対してHF
I=0のときは、どこか他のメモリパツケージ10にハー
ド障害が生じている。この場合、反転はカウント値に関
係なく、どのビツトも変更しないで、Wiに補数化
するようにして実行される。もしHFI=1なら、そのデ
コーダ36に関連するメモリパツケージ10に少なくとも1
つのエラーがある。このような状況のもとで、カウンタ
20がこのデコーダ36に値0を出力するとそのデコーダ36
がa=1を出力する。したがつて、Wiからへの通常
の補数化のため、関連するデータビツトがEXORゲート38
で反転される。しかしながら、カウンタ20の出力が値1
のときはデコーダ36はa=0を出力するのでEXORゲート
38は反転を行わない。これは変更されたビツトを補数化
したことと等価である。
以上からわかるように、カウンタ20はハード障害のある
メモリパツケージ10から得られたデータワードにおける
ビツトの変更を制御する。もし2以上のメモリパツケー
ジ10がハード障害を有するなら、各々のメモリパツケー
ジ10において変更が同時に実行される。カウンタは始め
値1から始まる。カウント値0は変更なしに対応するの
で試行する必要はない。この場合はワードRに関して通
常のECCプロセスが既に試行されているからである。一
般的にnビツトのメモリパツケージ10の場合、カウント
値は2n−2に向かつて進む。最終カウント値2n−1は試
行する必要がない。というのはこの値、たとえば4ビツ
トのメモリパツケージの場合(1111)は、ハード障害の
あるモジユールに関して全て補数化した訂正に対応する
からである(このモジユールはこの補数化および再試行
のプロセスで訂正されているであろう)。全ての主要な
組合せが試行される限りはカウンタ機構はどのようなも
のを使つてもよい。カウント値は2進でなくてもよい。
また、起こり易い障害の形態が予想されるなら、それが
最初に見つかるようにカウンタを調整しておけば最善で
ある。
F5. 多重エラー訂正の例 上記の第2表を参照しながら、本発明に基づいて実行さ
れる訂正プロセスの例を説明する。第2表には3つのメ
モリパツケージしか示していないが、エラーを含まない
ものならもつとメモリパツケージを使うことができる。
第2表の最初の行はメモリパツケージに記憶されたデー
タを示している。データはSPC/DPDコードに基づいてコ
ード化されているものとする。例として、第2行および
第3行に示すように、メモリパツケージ1の4ビツト全
てがハード障害(H)を有しているためそれらが値1に
固定しており、さらに、メモリパツケージ3の1つのビ
ツトにソフトエラー(S)が生じていると想定する。し
たがつて、そのデータがワードRと読み取られると、そ
れは2つのメモリパツケージにおいて誤りのあるデータ
を含むものとなる。
このワードRがECC処理されると、2重パツケージ検出
コードは訂正不能エラーがあるということを知らせるこ
とができる。次に補数化および再試行プロセスすなわち
E2CCプロセスが始まる。ワードRはECC拡張部16に記憶
し、補数化する。補数化されたワードはメモリの同じ
ロケーシヨンに戻して記憶する。そしてこのロケーシヨ
ンをワードWとして読み取る。メモリパツケージ1は全
てのビツトが1に固定されているので、これらの4ビツ
トは再び(1111)と読み取られる。メモリパツケージ3
のソフトエラーは、そこに記憶されたWを検索した値に
影響を及ぼさない。読み取られたワードWは再補数化さ
れて、再補数化されたはECC処理される。補数化およ
び再試行プロセスはメモリパツケージ1の最初の2ビツ
トを訂正するが最後の2ビツトは訂正しない。補数化お
よび再試行はソフトエラーを保持する。したがつて、EC
Cは再び2重パツケージエラーを検出することになるの
で、E3CCプロセスに入る。
第1図のステツプ128に示したビツトごとの比較は第2
表に明確には示されていない。というのは、E3CCプロセ
スに入るとこの比較はカウンタの各ステツプごとに実行
されるものであるからである。E3CCプロセスに入ると、
カウンタは最初のサイクルで1にセツトされる。カウン
ト値が1になると、Wの最下位ビツトが変更される(実
際には変更と補数化は同時になされるから、変更は反転
しないということに相当する)。ただし、この変更はハ
ード障害のあるメモリパツケージに対してのみ行われ
る。第2表中の記号“*”はWの変更されたビツトを示
している。変更されたWは補数化されて、補数化された
はECC処理される。実施例の装置では、変更と補数化
は同時に実行される。
Wの1つのビツトの変更により、メモリパツケージ1の
ハードエラーの1つが訂正されるがもう一方は訂正され
ない。したがつて、Wのもともと記憶された値に対し他
の変更を行うためカウンタを増分する。サイクル1の最
下位ビツトの変更はサイクル2では発生しないことに留
意されたい。しかしながら、サイクル2の変更でもメモ
リパツケージ1を訂正するには不十分である。したがつ
てECCは再び2重パツケージエラーを示す。
サイクル3に示す如くカウンタのカウント値が進むと、
ワードWの下位2ビツトが変更される。この変更によ
り、メモリパツケージ1に関して正しいWの値(すなわ
ち、そのパツケージでもともと記憶したデータを補数化
したもの)が生成される。しかしながらまだ、メモリパ
ツケージ3にはソフトエラーが残つている。変更したW
の値を補数化して補数化されたに関してECC処理を施
すと、単一パツケージ訂正コードで残つているソフトエ
ラーを処理することができるから、それを正しい値に訂
正できる。新しいチエツクビツトを生成するため、訂正
された値はAiラツチ32を介してBiラツチ40からECC論理1
2に送られる。再びBiラツチ40にラツチされると、メモ
リパツケージ3のソフトエラーを除去するため、これが
メモリに記憶される。もちろん、この除去オペレーシヨ
ンはメモリパツケージ1のハード障害に何ら影響を与え
ない。訂正された値は、第1図に示したステツプ146の
前または後で、Biラツチ40でも利用できる。
これまでに説明した実施例では、SPC/DPDコードのサブ
フイールドは多重ビツト・メモリパツケージの境界に整
列しているものと仮定している。実際上はこの整列の要
件は必要なく、単一のパツケージが複数のサブフイール
ドを含んでいてもよいし、単一のサブフイールドが2以
上のパツケージにわたつて延在していてもよい。さら
に、これまでの説明でSPC/DPDコードを使用するものと
仮定したが、本発明は他のタイプのエラー訂正コードの
能力を高めるために用いることもできる。このようなコ
ードは、たとえば、SEC/DED/SPD、SPC/DPD、およびSEC/
TEDである。TEDコードは3重ビツトエラーを検出するも
のである。特に、SEC/DED/SPDコードだけが存在すると
きは単一パツケージ内の誤りのある任意のビツト数を含
む単一パツケージエラーを訂正するのにE3CCを用いるこ
ともできるし、SEC/TEDコードだけが存在するときはE3C
Cで3重ビツトエラーを訂正することができる。後者の
場合、サブフイールドは単一ビツトに関連づけることが
できる。
以上からわかるように、本発明は様々なコードに対して
適用できる。非パツケージコードの場合、すなわちパツ
ケージ当りのビツト数がb=1の場合、検出できるビツ
ト数mが訂正できるビツト数nを超えるとき本発明は有
益である。しかしながら、この有益性もソフトエラーの
数sによつて制限を受ける。訂正可能な誤りビツト数c
は、もしs≦nならc=mである。m=n+1のとき
は、通常の反転−再試行の手法でこのエラーが訂正され
るから、E2CCで十分である。
パツケージコード、b>1、の場合、パラメータを次の
ように再定義する:nはパツケージエラー訂正能力に等し
く;mはパツケージエラー検出能力に等しく;sはソフトエ
ラーしか発生しないようなパツケージの数に等しく;cは
訂正可能な誤りパツケージの最大数に等しい。s≦nな
らc=mである。パツケージコードの場合、m=n+1
ならハード障害を有するデータがうまく特定の形態で並
ぶこともできない限りE2CCだけでは必要な訂正は遂行さ
れない。
これまでの実施例はほとんどハードウエアで実現されて
いるが、ソフトウエアで実現することも、ハードウエア
およびソフトウエアの組合せで実現することも可能であ
る。ハードウエアによるアプローチの利点は、その機能
をほとんどメモリに入れることができるためそれがユー
ザに対してトランスペアレントになることである。
以上からわかるように、訂正できるビツトエラーよりも
検出できるビツトエラーの数が多いようなエラー訂正コ
ードに本発明を適用すると有益である。本実施例は少な
くとも数ビツトがハード障害を有することを要請した。
ハード障害のロケーシヨンは補数化および再試行の手法
により分離される。ハード障害のロケーシヨンに関連す
るビツトはECCでエラーが検出されないようになるまで
順次的に変更される。
G. 発明の効果 以上説明したように本発明によれば、エラー訂正および
検出のできる使用されているエラー訂正コードの訂正能
力以上のビツトエラーを訂正することができる。
【図面の簡単な説明】
第1図は本発明に基づく実施例のエラー訂正を説明する
流れ図、第2図は実施例のハードウエアの構成を示すブ
ロツク図、第3図は第2図におけるECC拡張部16の構成
を示すブロツク図、第4図は第3図におけるデコーダ36
の構成を示すブロツク図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チン―ロング・チエン アメリカ合衆国ニユーヨーク州ワツピンジ ヤーズ・ホールズ、パイ・レーン50番地 (72)発明者 エドワード・ケイ・エヴアンス アメリカ合衆国バーモント州エセツクス・ ジヤンクシヨン、グリーンフイールド・ロ ード53番地 (56)参考文献 特開 昭54−28056(JP,A) 特開 昭56−87300(JP,A) 特開 昭55−18724(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】各々がb(ここで、bは整数)ビツトを有
    する複数のサブワードからなるnビツトのエラー訂正符
    号化コードワードにおける多重エラーを訂正する方法に
    おいて、 (a)データ源からのn(ここで、nは整数)ビツトの
    コードワードを受け取るステツプと、 (b)前記受け取つたnビツトのコードワードにおける
    所定の分布の所定のエラー数まで訂正するために前記n
    ビツトのコードワードでエラー訂正処理を実行し、前記
    所定の分布を所定のエラー数より多いエラーが発生した
    際、訂正不能エラー出力信号を発生するステツプと、 (c)前記訂正不能エラー出力信号があるならば、障害
    のある少なくとも1つのbビツトのサブワードを識別す
    るステツプと、 (d)前記bビツトのサブワードの2b個の独特な組合わ
    せの1つを生成するステツプと、 (e)変更サブワードを形成するための前記識別された
    少なくとも1つのbビツトのサブワードを前記bビツト
    に発生された組合わせで置換するステツプと、 (f)前記変更されたコードワードで前記ステツプ
    (b)の前記エラー訂正処理を再実行するステツプと、 (g)前記ステツプ(d)に戻り、前記bビツトのサブ
    ワード2b個の独特な組合わせの異なる1つを生成するス
    テツプと、 (h)変更コードワードを形成するために最大2b回、ス
    テツプ(e)、(f)および(g)を繰り返すステツプ
    とからなることを特徴とする多重エラー訂正方法。
JP60200724A 1985-01-18 1985-09-12 多重エラー訂正方法 Expired - Lifetime JPH0782446B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US692804 1985-01-18
US06/692,804 US4661955A (en) 1985-01-18 1985-01-18 Extended error correction for package error correction codes

Publications (2)

Publication Number Publication Date
JPS61169940A JPS61169940A (ja) 1986-07-31
JPH0782446B2 true JPH0782446B2 (ja) 1995-09-06

Family

ID=24782089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60200724A Expired - Lifetime JPH0782446B2 (ja) 1985-01-18 1985-09-12 多重エラー訂正方法

Country Status (5)

Country Link
US (1) US4661955A (ja)
EP (1) EP0188192B1 (ja)
JP (1) JPH0782446B2 (ja)
CA (1) CA1231456A (ja)
DE (1) DE3684788D1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62120670A (ja) * 1985-11-20 1987-06-01 Sony Corp デ−タの誤り訂正方法
US4862463A (en) * 1987-07-20 1989-08-29 International Business Machines Corp. Error correcting code for 8-bit-per-chip memory with reduced redundancy
DE3882223T2 (de) * 1988-04-29 1994-01-27 Ibm Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
US5014273A (en) * 1989-01-27 1991-05-07 Digital Equipment Corporation Bad data algorithm
US5228046A (en) * 1989-03-10 1993-07-13 International Business Machines Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature
US5058115A (en) * 1989-03-10 1991-10-15 International Business Machines Corp. Fault tolerant computer memory systems and components employing dual level error correction and detection with lock-up feature
US5058116A (en) * 1989-09-19 1991-10-15 International Business Machines Corporation Pipelined error checking and correction for cache memories
US5305324A (en) * 1990-09-26 1994-04-19 Demografx Data scrambling interface for correcting large burst errors in high speed, high capacity tape drives
US5226043A (en) * 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5751744A (en) * 1993-02-01 1998-05-12 Advanced Micro Devices, Inc. Error detection and correction circuit
US5761221A (en) * 1995-12-11 1998-06-02 International Business Machines Corporation Memory implemented error detection and correction code using memory modules
US5768294A (en) * 1995-12-11 1998-06-16 International Business Machines Corporation Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US6360346B1 (en) * 1997-08-27 2002-03-19 Sony Corporation Storage unit, method of checking storage unit, reading and writing method
KR100266748B1 (ko) * 1997-12-31 2000-10-02 윤종용 반도체 메모리 장치 및 그 장치의 에러 정정 방법
US6490703B1 (en) 1999-09-30 2002-12-03 Intel Corporation Bus power savings using selective inversion in an ECC system
US6675341B1 (en) 1999-11-17 2004-01-06 International Business Machines Corporation Extended error correction for SEC-DED codes with package error detection ability
US6751769B2 (en) 2000-06-06 2004-06-15 International Business Machines Corporation (146,130) error correction code utilizing address information
US6785837B1 (en) 2000-11-20 2004-08-31 International Business Machines Corporation Fault tolerant memory system utilizing memory arrays with hard error detection
US7069494B2 (en) * 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
DE102005040917A1 (de) * 2005-08-30 2007-03-08 Robert Bosch Gmbh Datenverarbeitungssystem und Betriebsverfahren dafür
US7644347B2 (en) * 2005-09-30 2010-01-05 Intel Corporation Silent data corruption mitigation using error correction code with embedded signaling fault detection
US7386771B2 (en) * 2006-01-06 2008-06-10 International Business Machines Corporation Repair of memory hard failures during normal operation, using ECC and a hard fail identifier circuit
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
EP2256634A1 (en) * 2009-05-27 2010-12-01 Robert Bosch Gmbh A data processing device and a method for error detection and error correction
US9075111B2 (en) * 2013-10-07 2015-07-07 King Fahd University Of Petroleum And Minerals Generalized modular redundancy fault tolerance method for combinational circuits
US10074071B1 (en) * 2015-06-05 2018-09-11 Amazon Technologies, Inc. Detection of inner pack receive errors
JP2017055254A (ja) 2015-09-09 2017-03-16 株式会社東芝 データ復元回路、半導体記憶装置およびデータ復元方法
US9997233B1 (en) 2015-10-08 2018-06-12 Rambus Inc. Memory module with dynamic stripe width
JP7182373B2 (ja) * 2018-04-24 2022-12-02 ラピスセミコンダクタ株式会社 半導体集積回路、記憶装置及びエラー訂正方法
KR20210132784A (ko) * 2020-04-27 2021-11-05 삼성전자주식회사 메모리 장치 및 메모리 장치로부터 데이터를 읽는 방법
EP4258116A4 (en) * 2022-02-24 2024-01-03 Changxin Memory Tech Inc DATA TRANSMISSION CIRCUIT AND DATA TRANSMISSION METHOD

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US4037091A (en) * 1976-04-05 1977-07-19 Bell Telephone Laboratories, Incorporated Error correction circuit utilizing multiple parity bits
JPS5381036A (en) * 1976-12-27 1978-07-18 Hitachi Ltd Error correction-detection system
JPS6049821B2 (ja) * 1977-08-03 1985-11-05 ダイキン工業株式会社 冷凍装置
US4139148A (en) * 1977-08-25 1979-02-13 Sperry Rand Corporation Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory
US4319357A (en) * 1979-12-14 1982-03-09 International Business Machines Corp. Double error correction using single error correcting code
US4359772A (en) * 1980-11-14 1982-11-16 International Business Machines Corporation Dual function error correcting system
US4464753A (en) * 1981-12-30 1984-08-07 International Business Machines Corporation Two bit symbol SEC/DED code
CA1196106A (en) * 1982-04-28 1985-10-29 Tsuneo Furuya Method and apparatus for error correction
US4458349A (en) * 1982-06-16 1984-07-03 International Business Machines Corporation Method for storing data words in fault tolerant memory to recover uncorrectable errors
US4549295A (en) * 1983-06-21 1985-10-22 International Business Machines Corporation System for identifying defective media in magnetic tape storage systems

Also Published As

Publication number Publication date
JPS61169940A (ja) 1986-07-31
DE3684788D1 (de) 1992-05-21
EP0188192B1 (en) 1992-04-15
EP0188192A3 (en) 1989-03-08
CA1231456A (en) 1988-01-12
US4661955A (en) 1987-04-28
EP0188192A2 (en) 1986-07-23

Similar Documents

Publication Publication Date Title
JPH0782446B2 (ja) 多重エラー訂正方法
EP0332662B1 (en) Byte write error code method and apparatus
US6009548A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
EP0339166B1 (en) Extended errors correcting device having single package error correcting and double package error detecting codes
US4740968A (en) ECC circuit failure detector/quick word verifier
EP1204921B1 (en) System and method for detecting double-bit errors and for correcting errors due to component failures
EP0096783B1 (en) Method for storing data words in fault tolerant memory to recover uncorrectable errors
JP3325914B2 (ja) データ用誤り訂正検出方法及びコンピュータ・メモリ用 誤り検出回路
US5537425A (en) Parity-based error detection in a memory controller
US20080282128A1 (en) Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
EP0540450A1 (en) ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US20030061558A1 (en) Double error correcting code system
JPH0260013B2 (ja)
US5666371A (en) Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
US5751745A (en) Memory implemented error detection and correction code with address parity bits
JPS6349245B2 (ja)
US5761221A (en) Memory implemented error detection and correction code using memory modules
US6675341B1 (en) Extended error correction for SEC-DED codes with package error detection ability
JP2000517080A (ja) 記憶装置
SU1531175A1 (ru) Запоминающее устройство
JPS6279530A (ja) 誤り訂正・検出装置
JPS5837638B2 (ja) キオクソウチ