JPS61169940A - Multiple error correction - Google Patents

Multiple error correction

Info

Publication number
JPS61169940A
JPS61169940A JP60200724A JP20072485A JPS61169940A JP S61169940 A JPS61169940 A JP S61169940A JP 60200724 A JP60200724 A JP 60200724A JP 20072485 A JP20072485 A JP 20072485A JP S61169940 A JPS61169940 A JP S61169940A
Authority
JP
Japan
Prior art keywords
bit
error
errors
package
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.)
Granted
Application number
JP60200724A
Other languages
Japanese (ja)
Other versions
JPH0782446B2 (en
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/en
Publication of JPH0782446B2 publication Critical patent/JPH0782446B2/en
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。[Detailed description of the invention] The present invention will be explained in the following order.

A、産業上の利用分野 B、開示の概要 C0従来技術 り9発明が解決しようとする問題点 E、  問題点を解決するための手段 F、実施例 Fl 多重エラー訂正(第1図) F 2.  ハードウェア構成(第2図)F3. FC
C拡張部(第3図) F4 デコーダ(第4図) F5、 多重工2−訂正の例 G0発明の効果 A、産業上の利用分野 本発明はエラー訂正に関し、さらに詳しくいえば、使用
されているエラー訂正コードの能力以上のエラーを訂正
するための技術に関するものである。
A. Industrial application field B. Summary of disclosure C0 Prior art 9 Problems to be solved by the invention E. Means for solving the problems F. Embodiment Fl Multiple error correction (Figure 1) F 2 .. Hardware configuration (Figure 2) F3. F.C.
C Extension (Fig. 3) F4 Decoder (Fig. 4) F5, Multiple Processing 2 - Example of Correction G0 Effect of the Invention A, Industrial Application Field The present invention relates to error correction, and more particularly, This technology relates to a technique for correcting errors that exceed the capabilities of existing error correction codes.

B、開示の概要 以下に説明する多重エラー訂正の技術は多重ビット・メ
モリパッケージを用いたメモリシステムにおいて、ノ・
−ドエラーを有するメモリパッケージを識別することK
よって、使用されているエラー訂正コードの訂正能力以
上のエラーを訂正できるようKしたものである。
B. Overview of the Disclosure The multiple error correction technology described below is useful for memory systems using multi-bit memory packages.
- Identifying memory packages with de-errors
Therefore, K is set so that errors exceeding the correction ability of the error correction code being used can be corrected.

C1従来技術 ]ンピュータのメモリのサイズが大きくなる一方で、個
々のメモリセルが縮小化されてきたため、メモリに記憶
されたデータ中に訂正不能なビツトエラーが発生するよ
うになった。プログラムのオペレーションを停止したり
、メモリチップの交換を必要とするような偶発的なエラ
ーは、もはや許されない。こうしたビツトエラーには2
つのタイプ力する。1つはソフトエラー、もう1つはノ
・−ドエラーである。ソフトエラーは、外面的には、記
憶されたデータを反転するものであるつこの反転は突発
的な電気的ノイズや、場合によっては、いわゆるα線の
ような素粒子によって引き起こされる。個々のセルのサ
イズが小さくなるにつれて低いレベルのノイズが無視で
きなくなってくるので、それによって引き起こされるソ
フトエラーが問題となる。一方、ハードエラーはメモリ
チップの永続的な電気的障害である。したがって、メモ
リチップの設計者たちはそこに生ずるソフトエラーおよ
びハードエラーの両方を減らそうと努力してきた。しか
しながら、これら両タイプのエラーを完全になくすこと
はできなかった。実際、これらを全てをなくすのけ不可
能であると一般には考えられているう性能を犠牲にする
かまたはコストを犠牲にするかによって成るレベルよシ
上の信頼性が得られるにすぎない。
C1 Prior Art] As the size of computer memory has increased and individual memory cells have been reduced in size, uncorrectable bit errors have begun to occur in data stored in memory. Random errors that halt program operation or require memory chip replacement are no longer tolerated. For these bit errors, 2
Power one type. One is a soft error and the other is a node error. On the outside, a soft error is an inversion of stored data, but this inversion is caused by sudden electrical noise or, in some cases, elementary particles such as so-called alpha rays. As the size of individual cells decreases, low-level noise becomes impossible to ignore, and soft errors caused by it become a problem. On the other hand, hard errors are permanent electrical failures of memory chips. Therefore, memory chip designers have endeavored to reduce both soft and hard errors that occur therein. However, both types of errors could not be completely eliminated. In fact, only a certain level of reliability can be obtained by sacrificing performance or sacrificing cost, which is generally considered impossible to eliminate altogether.

ソフトエラーおよびハードエラーの両方を解決する手段
は大規模なコンピュータメモリにおいてエラー訂正コー
ド(FCC)を実現することである。エラー検出および
訂正の原理はハミングによって紹介された。最も一般的
なハミングコードでは、たとえば8ビツトのデータワー
ドは、選択されたハミングコードに応じて13ビツトの
ワードにコード化される。デコーダはこの13ビツトの
ワードを処理して、13ピツト中の1ビツトエラーを訂
正してビツトエラーがあるかどうかを検出することがで
きる。このようなコードのことを、8EC/DED(学
−エラー訂正/2重エラー検出)という。こうしたコー
ドは、特K、単一ビツト出力を有するメモリチップに有
効である。たとえば、コンピュータが各バイトにつき8
ビツトのデータを含むような16K(16348)バイ
トのデータを有するとすれば、余分に5個のメモリチッ
プを備えた13個の16KX1のメモリチップを用いて
ハミングSEC/DED保護を行うと効果的である。ど
のメモリチップもエラー保護されたワードの各々につき
1ビツトしか関与しないから、このハミングコードは任
意のバイトに発生するランダムな1ピツトエラーを訂正
し、障害の生じたメモリチップを訂正することができろ
うもちろん、以上に示した13ビツトのハミングコード
は、エラーがソフトエラーであるかまたはハードエラー
であるかにせよ、それを1つしか訂正できない。したが
って、1つのメモリチップの全てのロケーションにハー
ド的な障害があったときは、残りのメモリチップは1つ
の偶発的なソフトエラーに対する保護がなされない(た
だし訂正できないだけで検出は可能である)。以上に、
ECCのごく単純な例を示したが、FCCはその後も発
展を続けまた様々なものが実現されてきた。
A solution to both soft and hard errors is to implement error correction codes (FCC) in large computer memories. The principles of error detection and correction were introduced by Hamming. In the most common Hamming codes, for example, an 8-bit data word is encoded into a 13-bit word depending on the Hamming code selected. The decoder can process this 13-bit word, correct a 1-bit error in 13 pits, and detect whether there is a bit error. Such a code is called 8EC/DED (science error correction/double error detection). Such a code is especially useful for memory chips with single-bit outputs. For example, if your computer uses 8 bits for each byte,
If you have 16K (16348) bytes of data, including bit data, it is effective to perform Hamming SEC/DED protection using 13 16Kx1 memory chips with 5 extra memory chips. It is. Since any memory chip involves only one bit for each error-protected word, this Hamming code would be able to correct a random one-pit error occurring in any byte and correct a faulty memory chip. Of course, the 13-bit Hamming code shown above can only correct one error, whether it is a soft error or a hard error. Therefore, if there is a hard failure in all locations of one memory chip, the remaining memory chips are not protected against one accidental soft error (although it can be detected, but not corrected). . more than,
Although we have shown a very simple example of ECC, FCC has continued to develop and various things have been realized since then.

そうした中で共通して言えることは、1つのワードにお
いてよりたくさんのエラーを訂正しようとすれば、その
チェックコードとしてそれだけ余分にビットが必要にな
るということである。
The common thing among all of these is that the more errors in one word are corrected, the more bits are required for the check code.

ハミングコードおよびこれと類似のコードは、データワ
ードの各々のビットを異なるメモリチップで記憶する場
合のハードエラーの訂正に有益である。しかしながら、
メモリチップの密妾も絶えず高くなってきている。1メ
ガビツトおよび4メガピントの単一メモリチップも、ま
もなく商用化されるであろう。とけいっても、はとんど
のシステムでは1メガバイトおよび4メガバイトの記憶
装置は必要とされない。各データワードから1ピツトだ
けを記憶するように上記のような大規模のチップが使用
されるとしたら、このような容量の大きい記憶装置の出
現する可能性がある。しかしながら、大規模メモリチッ
プは、同じデータワードの複数のワードを記憶するよう
にして使用されると予想される。たとえば、1メガビツ
トのメモリチップは、各々同時にアクセスできる4つの
データボートを有するように適合させるのけ簡単である
。このメモリチップは、正しくけ、256に×4のメモ
リと呼ばれるだろう。8個の1メガビツト・メモリチッ
プで32ビツトワード、256にの記憶装置が提供され
る。そうした高密変のメモリチップで構成された大規模
なメモリにはエラー保護の機能は欠くことができない。
Hamming codes and similar codes are useful for correcting hard errors when each bit of a data word is stored in a different memory chip. however,
The price of memory chips is also constantly increasing. Single 1 megabit and 4 megabit memory chips will soon become commercially available. However, most systems do not require 1 and 4 megabytes of storage. Such large capacity storage devices could emerge if such large scale chips were used to store only one pit from each data word. However, it is anticipated that large scale memory chips will be used to store multiple words of the same data word. For example, a 1 megabit memory chip is easily adapted to have four data ports, each of which can be accessed simultaneously. This memory chip would be correctly called a 256 x 4 memory. Eight 1 megabit memory chips provide storage for 256 32 bit words. Error protection is essential for large-scale memories made up of such highly dense memory chips.

こうした大規模なメモリのソフトエラーは、1つまたは
わずかなメモリロケーションでランダムに発生するから
、それ程大きな問題にはならない。しかしながら、大規
模メモリのハードエラーは、このような多重ビット・メ
モリチップの場合、実に厄介な問題となる。というのは
、ノ・−ドエラーは単一ビットの出力ボートに限ったも
のではなくメモリハノケージに関連する全てのビットに
影響を及ぼすという場合が多いからである。上記のよう
な256KX4のパッケージでいうと、ノ・−ドエラー
が生ずれば同じデータワードにおいて同時に4つのエラ
ーが発生する可能性が高いつエラー訂正コードは多数の
エラーを処理するのに利用できるし、実際、1ワード中
のほとんどの任意の数のエラーを処理するエラー訂正コ
ードを作ることもできるが、前述の如く大規模な訂正を
遂行するには余分のビットが大量に必要となる。
These large-scale memory soft errors occur randomly in one or a few memory locations and are not a major problem. However, large memory hard errors become a real problem for such multi-bit memory chips. This is because node errors are often not limited to a single bit output port, but affect all bits associated with the memory node. In the 256KX4 package mentioned above, if a node error occurs, there is a high probability that four errors will occur simultaneously in the same data word, and an error correction code can be used to handle a large number of errors. In fact, it is possible to create an error correction code that handles almost any number of errors in a word, but large amounts of extra bits are required to perform the large-scale corrections described above.

最近になって、多重ビット・パッケージにおけるハード
エラーを処理する優れた手法が開発された。このような
エラーはパッケージエラーと呼ばれ、パッケージエラー
に対して特別にあつらえたエラー訂正コードはパッケー
ジコードと呼ばれる。
Recently, better techniques have been developed to handle hard errors in multi-bit packages. Such errors are called package errors, and error correction codes specially tailored for package errors are called package codes.

このようなコードは、多重・・−ドエラーがそのデータ
ワードのフィールド全体にわたってランダムに発生する
ものではないという現象に基づいている。すなわち、多
重エラーはそのデータワードのサブフィールド(パッケ
ージの出力によって定められるもの)に集中するという
現象に基づいている。これまでに説明した例でいえば、
こうしたパッケージコードは32ピツトワードに発生す
る任意の4つのエラーを訂正することができる。とけい
っても、8つの4ビツト・サブフィールドのうちの1つ
に発生する4ビツトエラーを訂正するだけである。
Such codes are based on the phenomenon that multiple errors do not occur randomly throughout the field of the data word. That is, it is based on the phenomenon that multiple errors are concentrated in subfields of the data word (defined by the output of the package). In the example explained so far,
Such a package code can correct any four errors that occur in a 32 pit word. However, it only corrects a 4-bit error that occurs in one of the eight 4-bit subfields.

したがってパッケージコードでもまだ十分に満足のいく
ものではない。たとえばSPC/DPD(単一パッケー
ジ訂正/2重パッケージ検出)コードは、1つのパッケ
ージだけに発生するどんなエラーをも訂正し、且つ2つ
のパッケージに発生するエラーを検出することができる
。1つのパッケージにハード的な障害があったときけ、
残りのパッケージにエラーが発生すると(ソフトエラー
でもハードエラーでもよい)そのエラー状態が検出され
る。ただし、この場合は訂正はできない。
Therefore, the package code is still not fully satisfactory. For example, an SPC/DPD (single package correction/double package detection) code can correct any errors that occur in only one package and detect errors that occur in two packages. If there is a hardware failure in one package,
If an error occurs in the remaining package (which can be a soft or hard error), the error condition is detected. However, in this case, corrections cannot be made.

つまり、ハード的な障害が1つあるだけで、SPC/D
PDコードによって提供される訂正機能が失われてしま
うのである。
In other words, if there is just one hardware failure, the SPC/D
The correction functionality provided by the PD code is lost.

米国特許第3449718号は、特に磁気テープに適用
できるエラー訂正の方法を開示するものである。磁気テ
ープは1バイトを定める並列的なロケーションで並列的
なトラックを有する。トラックの1つすなわち並列的な
ビットの1つはチェツクビットとして使用され、これに
よりそのバイトの残りのピントに関するパリティを記録
する。
U.S. Pat. No. 3,449,718 discloses a method of error correction that is particularly applicable to magnetic tape. Magnetic tape has parallel tracks with parallel locations defining one byte. One of the tracks, or one of the parallel bits, is used as a check bit, thereby recording the parity for the remaining focus of that byte.

このような複数のバイトがテープ上でさらに長いブロッ
クとして構成される0 1つのブロックの端のところに
は付加的に記録された幾つかのバイトがあって、これに
よりブロックのチェックを行う。
These bytes are organized into longer blocks on the tape. At the end of a block there are additionally recorded bytes to check the block.

すなわち、ブロックチェックのビットはその前のデータ
およびチェックビットと矛盾するものであってはならな
い。パリティチェックビットは単一エラーを検出するだ
けで訂正はできない。この米国特許出願では、1つのブ
ロック内の全てのエラーは学−のトランクに発生すると
いう仮定が行われている。エラーは最初のトラックに発
生しているという仮定のもとにテープがJみ取られる。
That is, the block check bits must not conflict with the previous data and check bits. The parity check bit only detects a single error and cannot correct it. In this US patent application, the assumption is made that all errors within a block occur in the academic trunk. The tape is scanned with the assumption that the error occurs on the first track.

テープはバイトごとに読み取られてパリティエラーがチ
ェックされるっパリティエラーがそのバイト内で示され
ると、最初のトラックにおけるそのビットが反転される
。反転の可能性のあるデータとブロックチェックビット
との比較がなされるつ初めの仮定が正しければ、そのデ
ータは正しく、ブロックチェックビットはデータの正し
いことを示す。しかしながら初めの仮定が正しくないと
きは、その仮定は、全てのエラーは2番目のトラックに
発生しているという仮定に変更される。2番目のトラッ
クに反転を生じさせるパリティエラーを伴うデータがテ
ープから再読取りされる。このプロセスは、ブロックチ
ェックビットとの一致が得られるか、またはテープを読
み終えて各々のトラックがエラーをそれぞれ含むように
なるまで繰り返される。1982年7月、アイ・イー・
イー・イー−トランザクション−オン・コンピューター
ズ(IEEE Transactions on Co
mputers )第C−31巻第7号第596ないし
602頁の6メモリシステム用単−バイトエラー訂正/
2重バイトエラー検出コードと題するカネダらによる論
文(以下、文献(a)という)は、パッケージエラーを
検出するためのパッケージコードの1つの例を開示する
ものである。米国特許第3629824号および第44
64753号(以下、文献(b)という)はパッケージ
コードおよびそのノ・−ドウエア構成を開示するもので
ある。米国特許第3629824号は、SEC/DEC
コードを用いて一方がハード的な障害である2重エラー
を訂正するものであシ、これに近いものに米国特許第4
319357号がある。誤りのあるワードの記憶ロケ−
ンヨンはスタックビットとしてチェックされるう新しい
シンドロームを計算しこれと誤りのあるワードに関する
シンドロームとを比較して、その一時的なエラーを見つ
ける。
The tape is read byte by byte and checked for parity errors; if a parity error is indicated within that byte, that bit in the first track is inverted. If the initial assumption made when comparing potentially inverted data and block check bits is correct, then the data is correct and the block check bits indicate that the data is correct. However, if the initial assumption is incorrect, the assumption is changed to the assumption that all errors are occurring on the second track. The data is reread from the tape with a parity error causing an inversion in the second track. This process is repeated until either a match is made with the block check bits or the tape has been read so that each track contains an error. July 1982, I.E.
IEEE Transactions on Co.
single-byte error correction for memory systems /
A paper by Kaneda et al. entitled Double Byte Error Detection Code (hereinafter referred to as document (a)) discloses one example of a package code for detecting package errors. U.S. Patent Nos. 3,629,824 and 44
No. 64753 (hereinafter referred to as document (b)) discloses a package code and its hardware configuration. U.S. Patent No. 3,629,824 is issued by SEC/DEC
It uses a code to correct double errors, one of which is a hardware failure.
There is No. 319357. Memory location of erroneous words
The system calculates a new syndrome that is checked as a stuck bit and compares this with the syndrome associated with the erroneous word to find the temporary error.

1971年9月、アイ・ビー・エム・テクニカル・ディ
スクロージャーeプレテン(IBMTechnical
 Disclosure Bulletin )第14
巻第4号第1342頁の゛2重エラー訂正″と題する論
文は単−工2−訂正(SEC)コードを用いて単一エラ
ーが1つだけ残るようになるまで一連のビットを連続的
に反転することによって2重エラーを訂正する手法を開
示するものである。革−エラーが1つだけになれば、こ
れはSECコードで訂正することができる。しかしなが
らこの手法はエラーの局在性を提供するものではない。
September 1971, IBM Technical Disclosure e-Present (IBM Technical Disclosure)
Disclosure Bulletin) No. 14
Volume 4, No. 1342, the paper entitled ``Double Error Correction'' uses a single-engine two-correction (SEC) code to sequentially correct a series of bits until only one single error remains. This method discloses a method for correcting double errors by inversion. Once there is only one error, this can be corrected with an SEC code. However, this method does not address the locality of the error. It is not provided.

しかも、1つの正しいビットを反転すれば3つのエラー
を発生し、これをSECコードが必ずエラーとして検出
してしまう。
Moreover, inverting one correct bit will generate three errors, which the SEC code will always detect as errors.

米国特許第4139148号はSECコードで2重エラ
ーを訂正する手法を開示するものである。
US Pat. No. 4,139,148 discloses a technique for correcting double errors in SEC codes.

単一エラーを検出するたびK、そのエラーを訂正するの
に使用するシンドロームを記憶する。もし引き続いてそ
の同じワードで2重エラーが検出されたときは、前に記
憶したシンドロームを用いて1つのエラーを訂正する。
Each time we detect a single error, we store the syndrome used to correct that error. If a double error is subsequently detected in the same word, the previously stored syndrome is used to correct the single error.

1980年5月、アイ・ビー・エム・ジャーナル・オプ
・リサーチ串アンド・デベロプメント(IBM  Jo
urnal ofR,esearch and Dev
elopment )第24巻第3号第390ないし3
97頁のパメモリンフトエラー問題に対するシステムの
解決策″と題する論文は同時的に発生するハードエラー
およびノットエラーの問題について論じている。エラー
の°サブクラスに適用可能な1つの解決策は、読取りデ
ータを補数化しそれをもとのメモリロケーションに記憶
しその補数化されたデータを再読取りしそれを再補数比
することである。・・−ド的な障害およびデータの組合
せによっては、この補数化および再試行の手法でノ・−
ド的な障害が解決されることもある。
In May 1980, IBM Journal Op Research and Development (IBM Jo
urnal ofR, search and Dev
elopment) Volume 24 No. 3 No. 390-3
The paper entitled ``A System Solution to the Paddle Lift Error Problem'' on page 97 discusses the problem of simultaneous hard and knot errors. One solution applicable to the °subclass of errors is The process is to complement the data, store it in its original memory location, reread the complemented data, and recomplement it. -
In some cases, physical obstacles can be resolved.

米国特許第4949208号もこの補数化および再試行
を用いたエラー訂正の技術を開示するものである。
US Pat. No. 4,949,208 also discloses an error correction technique using complementation and retry.

D3発明が解決しようとする問題点 前述の如く、たとえばSPC/DPDコードはハード的
な障害が1つあるだけでその訂正機能が失われてしまう
等、一般的に多重ビット・メモリパッケージによるメモ
リにおける多重エラーに関する訂正の技術は満足のいく
ものではない。
Problems to be solved by the D3 invention As mentioned above, for example, the SPC/DPD code loses its correcting function even if there is one hardware failure. Correction techniques for multiple errors are not satisfactory.

したがって本発明の目的はデータワードにおける多重エ
ラーを訂正することにある。
It is therefore an object of the invention to correct multiple errors in data words.

E7問題点を解決するための手段 この目的を達成するため、本発明の多重エラー訂正方法
は、bビットのサブワードを複数有するエラー訂正符号
化されたnビツト・コードワードにおける多重エラーを
訂正する方法であって、(a)データ源からnビツト・
コードワードを受け取るステップと、(b)受け取った
nビツト・コードワードにおける所定の分布を有するエ
ラーを所定数まで訂正するためnビツト・コードワード
に対しエラー訂正処理を施し、所定数より多いエラーが
発生したときは訂正不能エラー信号を発生するステップ
と、(c)障害のある少なくとも1つのbビツト・サブ
ワードを識別するステップと、(d) 2 ’個の一意
的なりビットの組合せの1つを生成するステップと、(
e)bビットの組合せの1つで、nピント・コードワー
ドのうちの識別されたbビツト・サブワードを代用して
変更されたnビツト・コードワードを生成するステップ
と、(f)該変更されたnビツト・コードワードに対し
エラー訂正処理を施すステップと、値)訂正不能エラー
があるときは異なるbビットの組合せを生成して前記ス
テップ(e)および(f)を繰り返すステップと、より
成る゛ことを特徴とする。
Means for Solving the E7 Problem To achieve this objective, the multiple error correction method of the present invention provides a method for correcting multiple errors in an error correction encoded n-bit codeword having multiple b-bit subwords. (a) n bits from the data source;
(b) performing an error correction process on the n-bit codeword to correct up to a predetermined number of errors having a predetermined distribution in the received n-bit codeword; (c) identifying at least one faulty b-bit subword; and (d) generating one of the 2' unique bit combinations. Steps to generate (
e) substituting one of the b-bit combinations for the identified b-bit subword of the n-pinto codeword to produce a modified n-bit codeword; and, if there is an uncorrectable error, generating a different b-bit combination and repeating steps (e) and (f). It is characterized by the following.

F、実施例 けじめに実施例の概略と共に本発明の詳細な説明する。F. Example The present invention will now be described in detail along with an outline of embodiments.

本実施例は、簡単にいえば、使用されるエラー訂正コー
ドで検出できるが訂正できないノ・−ドエラーを訂正す
るための再試行手法を拡張したものである。データワー
ドを読み取ってレジスタに記憶する。使用されるエラー
訂正コードはそのデータワードに作用して、訂正不能な
多重パッケージエラーを検出すると、上記もとの読み取
りワードを補数化してもとの同じロケーションに再記憶
する。この補数化されたワードを検索して再補数化し、
これにエラー訂正コードを適用する。これでなお訂正不
能エラーがあれば、1回目に補数化されたワードとレジ
スタにあるもとの読取りデータとをビットごとに比較し
て、どのパッケージにエラーが生じているのかを識別す
るウノ・−ドエラーのあるパッケージが識別されると、
1回目に補数化され検索されたワードにおける識別され
たパッケージのサブフィールドのビットを順次的に変更
する。このサブフィールドの変更されたワード全体を補
数化して、これにエラー訂正コードを適用する。この順
次的な変更は、このサブフィールドが記憶されたもとの
データと一致するようになるまで繰り返される。一致す
ればエラー訂正コードで他のサブフィールド(すなわち
他のパッケージ)K残っているエラーを訂正することが
できる5以上が本実施例の概略および本発明の詳細な説
明であるう以下、項目を分けて本実施例を詳述する01
つのパッケージに生ずる任意の数のエラーを訂正しかつ
2つのパッケージに生ずるエラーを検出することのでき
るSPC/DPD(革−パソケージ訂正72重パッケー
ジ検出)コードを例にして、本発明の詳細な説明するう
このコードは前掲の文献(a)および(b)に開示され
るような任意のSPC/DPDコードを使用することが
できろう補数化および再試行の技術を用いて、ノ・−ド
エラーを有する1以上のパッケージを識別するつSPC
/DPDコードで、そのパッケージ中の任意数のエラー
を検出することができるので、識別されたパッケージ中
にエラーが検出されないようになるまで、そのパッケー
ジに対してデータの可能な組合せを試す。正しくない組
合せがあればエラーとして検出される。正しい組合せが
卵つかると1エラーを含む残りのパッケージ中のエラー
をSPC/DPDコードでさらに訂正することができる
Simply put, this embodiment is an extension of the retry technique for correcting node errors that can be detected but cannot be corrected by the error correction code used. Read a data word and store it in a register. The error correction code used operates on the data word and, upon detecting an uncorrectable multiple package error, complements the original read word and restores it to the same location. Search this complemented word and re-complement it,
Apply an error correction code to this. If there is still an uncorrectable error, UNO performs a bit-by-bit comparison of the first complemented word with the original read data in the register to identify which package is in error. − Once the package with the error is identified,
Sequentially changing the bits of the subfields of the identified package in the first complemented and retrieved word. Complement the entire modified word of this subfield and apply an error correction code to it. This sequential modification is repeated until this subfield matches the original stored data. If there is a match, the remaining errors in other subfields (i.e., other packages) can be corrected with the error correction code. This example will be explained in detail in 01
A detailed description of the invention takes as an example an SPC/DPD (Double Package Detection) code that is capable of correcting any number of errors occurring in one package and detecting errors occurring in two packages. This code uses complementation and retry techniques to eliminate node errors, which could be used with any SPC/DPD code as disclosed in references (a) and (b) cited above. SPC that identifies one or more packages with
Since the /DPD code can detect any number of errors in that package, it tries possible combinations of data for that package until no errors are detected in the identified package. If there is an incorrect combination, it will be detected as an error. Once the correct combination is found, errors in the remaining packages containing one error can be further corrected with the SPC/DPD code.

第1図を参照しながら、実施例の動作を説明するっデー
タワードはまずSPC/DPDコードに基づいてコード
化される(ステップ100)。コード化されたワードは
、そのコード化によって生成されたチェックビットと共
にメモリの適切なロケーションAに記憶される(ステッ
プ102)。
Referring to FIG. 1, a data word is first encoded based on an SPC/DPD code (step 100). The encoded word is stored in the appropriate memory location A (step 102) along with the check bits generated by its encoding.

通常の処理でデータワードがメモIJ K記憶されると
きはステップ100および102が遂行される。
In normal processing, steps 100 and 102 are performed when a data word is stored in memory IJK.

ロケーションAはそのデータワードの識別子に応じて異
なる。
Location A differs depending on the identifier of its data word.

然る後に、コンピュータはメモリの特定のロケーション
Aに記憶されたこの情報を必要とする。
Afterwards, the computer needs this information stored in a particular location A in memory.

コンピュータは指定されたロケーションAからそのワー
ドを読み取る。読み取られたこのワードをワードR・と
する。特に指定しない限りは、ワードR2はデータビッ
トおよびそのチェックビットの両方を含むものとするう
読み取られたデータR1は、ハードエラーまたはソフト
エラーのため、指定されたロケーションにもともと記憶
されたワードと異なる場合があるつ枦み取られたワード
R1けレジスタAおよびC(後出)にラッチする。以上
がステップ104である。読み取られたワードR7がエ
ラーを含まないか、または1つのパッケージだけのエラ
ーしか含まない場合は、SPC/DPDコードで1つの
パッケージの全てのエラーを訂正できるから、訂正不能
エラーは存在しない。この場合、すなわちステップ10
8で°゛いいえ″の場合は、読み取られたワードR1が
正しいかまたは訂正されたワードR1を使用できるので
、このアクセスは完了する(ステップ110)。以上の
プロシージャは通常のECC処理である。
The computer reads the word from the specified location A. Let this read word be word R. Unless otherwise specified, word R2 is assumed to contain both the data bits and their check bits; the read data R1 may differ from the word originally stored in the specified location due to hard or soft errors. The word R1 that has been stolen is latched into registers A and C (described later). The above is step 104. If the read word R7 contains no errors or only contains errors in one package, there are no uncorrectable errors since the SPC/DPD code can correct all errors in one package. In this case, i.e. step 10
If no at 8, the read word R1 is correct or a corrected word R1 can be used and the access is complete (step 110).The above procedure is normal ECC processing.

SPC/DPDコードは異なる2つのパッケージにエラ
ーが存在するときけ、このような状態が存在するという
ことを示すことはできるが訂正はできない。3以上のパ
ッケージにエラーが発生するときけ、ECCけ訂正不能
エラーとしてその状態の標識を示すことができる場合も
ある。この状態の標識が訂正不能エラーとして示されな
いこともある。この時点でE” CCと呼ばれみ拡張さ
れたエラー訂正の第1段階が始まる。訂正不能エラーが
あるときは、読み取られたワードR1の値はレジスタB
にも記憶され(ステップ112)、R・が補数化される
(ステップ114)。補数化された値R1はメモリの指
定されたもとのロケーションAKもどして記憶する。直
ちに、この同じロケーションAがレジスタAKMみ取ら
れる。これがステップ118である。この検索された補
数化データをWとする。この値は再び補数化される(ス
テップ120)。再補数化されたWの値は、反転が2回
行われているから、R・の値に等しいけずである。
When an error exists in two different packages, the SPC/DPD code can indicate that such a condition exists, but cannot correct it. When errors occur in more than two packages, the ECC may be able to flag the condition as an uncorrectable error. This condition may not be indicated as an uncorrectable error. At this point, the first stage of extended error correction, called E"CC, begins. If there is an uncorrectable error, the value of word R1 read is transferred to register B.
(step 112), and R. is complemented (step 114). The complemented value R1 is stored back at the specified original location AK in the memory. Immediately this same location A is taken in register AKM. This is step 118. Let this retrieved complemented data be W. This value is again complemented (step 120). Since the re-complemented value of W is inverted twice, it is a defect equal to the value of R.

メモリにハード的な障害があってそのビットに入力され
た値に関係なく出力値がノ・イまたはローに固定してし
まうと、WはR1と等しくならない。もともと検出され
たエラーの原因がソフトエラーなら、少なくともソフト
エラービットに対しては、2回の反転でもとの読取りワ
ードR1の値が再生成される。
If there is a hardware failure in the memory and the output value is fixed at no or low regardless of the value input to that bit, W will not be equal to R1. If the originally detected error was caused by a soft error, two inversions regenerate the value of the original read word R1, at least for the soft error bits.

次にステップ124で、再補数化された検索データWK
ECCコードを適用するつECCけワードWがもとの読
取りワードR1と違っていてもワードWを訂正すること
ができる。この状況は、たとえば、1つのパッケージに
値(0000)がモトもと記憶されておりその4ビツト
が全てハイの値(1111)に誤ったようなときに発生
するっここで他の1つのパッケージだけにエラーがある
と仮定すると、R・に関する初めのECC処理(ステッ
プ106)で二重パッケージエラーが検出されるであろ
う。障害のあるこの4ビツトに関して1回めに補数化さ
れた値は(0000)である。指定されたロケーション
に記憶してから検索すると、この4ビツトはもう一変本
来正しいが補数化された値(1111)となる。ところ
が、Wに関する再補数化でそれが真数値(0000)に
戻る。2回反転した後、障害のあるパッケージにこのエ
ラーが残っているときは、SPC/DEDコードはこの
1つのパッケージのエラーを処理することができる。
Next, in step 124, the re-complemented search data WK
Even if the ECC word W to which the ECC code is applied is different from the original read word R1, the word W can be corrected. This situation occurs, for example, when a value (0000) is originally stored in one package, and all 4 bits of it are mistakenly stored as a high value (1111). Assuming there is an error only in R., a double packaging error will be detected in the initial ECC processing (step 106) for R. The first complemented value for these four faulty bits is (0000). When retrieved after storing it in the specified location, these 4 bits become a value (1111) which is originally correct but has been complemented. However, recomplementation with respect to W returns it to an exact value (0000). If the faulty package still has this error after two flips, the SPC/DED code can handle the error for this one package.

ステップ124のこのECC処理の後、訂正不能エラー
がなければ、そのECCで訂正された値けもとの鯖取り
ワードR1の値として用いる(ステップ142)。その
ようにして検出されたエラーの1つけソフトエラーであ
っただろうから、この新しい値R1はメモリの指定され
たロケーションAK直ちに再記憶しておくのがよい(ス
テップ146)。ソフトエラーは不良メモリロケーショ
ンを意味するのではなく、そのロケーションのデータが
反転したということを意味するにすぎない。データがそ
のロケーションで正しく復元されてからそれが再反転す
る可能性はほとんどない。しかしながら、ソフトエラー
は蓄積される一方であるから、それが訂正能力以上の数
になることもある。
After this ECC processing in step 124, if there is no uncorrectable error, the value corrected by the ECC is used as the value of the original mackerel word R1 (step 142). Since the error so detected would have been a soft error, this new value R1 should be immediately re-stored in the designated memory location AK (step 146). A soft error does not mean a bad memory location, only that the data at that location has been inverted. Once the data is properly restored at that location, there is little chance of it re-inverting. However, since soft errors continue to accumulate, the number of soft errors may exceed the ability to correct them.

したがって、これまでに説明したようにしてソフトエラ
ーを検出したら直ぐにそれを訂正しておくことが望まし
い。以上で、補数化および再試行を伴うF  CCプロ
セスが完了する。
Therefore, it is desirable to correct a soft error as soon as it is detected as described above. This completes the FCC process with complementation and retry.

検索された再補数化ワードWのECC処理で訂正不能エ
ラーの標識がなお示される場合は(ステップ126で6
はい”の場合)、ステップ128以下に示す拡張された
エラー訂正の次の段階(E 3CCという)が以下のよ
うにして遂行されるつまずステップ128でレジスタA
およびCに記憶されたそれぞれの値を用いて、WとR・
のビットごとの比較を行う。これで一致があれば、介在
する記憶による2回の反転により異なるピント値が再生
成されたということを意味する。すなわち、そのパッケ
ージのこのビットロケーションが成る値に固定されてい
るというハード的な障害である。ステップ128におけ
るこの比較は、エラーを有する2つのパッケージの一方
における少なくとも1つのハード的障害をみつけるため
に行うものであ   ′る。このデータワード内で、ハ
ード的障害のロケーションは不良パッケージの1つを識
別する。もちろん、1つのパッケージにおける全てのエ
ラーがソフトエラーであったとすれば、このパッケージ
は識別されないつ以上のプロシージャはエラーを有する
2つのパッケージの少なくとも一方にハードエラーが存
在するということに基づくものであるという点に留意き
れたいうエラーが全てソフトエラーであるときけ、この
プロシージャではデータを訂正することはできない。
If the ECC processing of the retrieved recomplemented word W still indicates an uncorrectable error indicator (step 126
If "Yes"), the next stage of extended error correction (referred to as E3CC) shown below in step 128 is performed as follows.
Using the respective values stored in and C, W and R.
Performs a bitwise comparison of . If there is a match, it means that a different focus value has been regenerated by two reversals due to the intervening memory. In other words, this is a hardware failure in that this bit location of the package is fixed to a certain value. This comparison in step 128 is performed to find at least one hard failure in one of the two packages in error. Within this data word, the location of the hard failure identifies one of the defective packages. Of course, if all errors in one package were soft errors, then the number of procedures that are not identified in this package is based on the presence of a hard error in at least one of the two packages with errors. Note that if all errors are soft errors, this procedure cannot correct the data.

この時点で、障害パッケージの1つが識別されて、余分
なエラーはもう1つのパッケージだけに限定されるとと
Kなる。したがって、識別されたパッケージに含まれる
データはほとんど不適切なものとなる。識別されたパッ
ケージのデータの16 (rMの可能な組合せに関して
、SPC/DPDコードは15個の間違った組合せを検
出することかで^るつそのワードの残りと、16個のう
ちの正しい組合せとを組み合せれば他の一方のパッケー
ジにエラーが局在した全体のデータワードが生成される
。ECCコードでこの状態を訂正するととができる。こ
うして、識別されたパッケージのデータに関する様々な
組合せが、 ECCコードによりそのワードを訂正でき
るようになる1でECC処理を行う。このプロシージャ
を次に説明する。
At this point, one of the failing packages has been identified and the extra error is limited to only the other package. Therefore, the data contained in the identified packages will be mostly irrelevant. For the 16 (rM) possible combinations of the identified package's data, the SPC/DPD code can detect the 15 incorrect combinations and the rest of the word with the 16 correct combinations. will produce an entire data word with the error localized in one of the other packages.Correcting this condition with an ECC code will allow the various combinations of data in the identified packages to be ECC processing is performed with 1, which allows the word to be corrected by the ECC code.This procedure is described next.

レジスタAに記憶した値Wを始点として用いる。The value W stored in register A is used as the starting point.

ハードエラーの識別されたパッケージに関連するビット
を1つずつ順次的に変更して1つのワードW、を生成す
る(ステップ130)。このワードW1は変更されない
他のパッケージのビットが組み合せられたものである。
The bits associated with the identified packages with hard errors are sequentially changed one by one to produce a word W (step 130). This word W1 is a combination of bits from other packages that remain unchanged.

後述するように、この変更プロセスにカウンタ/デコー
ド論理を用いることもできる。1つのビットが変更され
るたびに。
Counter/decode logic may also be used in this modification process, as discussed below. Each time one bit is changed.

変更されたワードWi  ()・−ドエラーの識別され
たパッケージサブワードと他の変更されていないパッケ
ージのサブワードとを組み合せたもの)は補数化されて
(ステップ132)その値にECC処理を施す(ステッ
プ134)っECCによシ訂正不能エラーが示されて識
別されたパッケージの16個の組合せの1つが試されて
いる限りは、130ないし138のステップが繰り返さ
れる。識別されたパッケージにおける可能な組合せがメ
モIJ Kもともと記憶されたデータと一致すれば、変
更きれたデータワードW1は残シの1つのパッケージだ
けにしかエラーを含まないので、SPC,/DPDコー
ドはこれらの残りのエラーを訂正することができる。と
こでは、最初に検出されたエラーが2つのパッケージだ
けに限定されていると仮定している。訂正不能エラーの
標識が示されなければ、訂正された値Wiを訂正された
値R・とじて用いて1 ソフトエラーを除去するために
この値をメモリに再記憶する(ステップ146)。こう
してR9に関するメモリのアクセスが完了する(ステッ
プ148)。
The modified word Wi () - the combination of the identified package subword of the error and other unmodified package subwords) is complemented (step 132) and its value is subjected to ECC processing (step 134) Steps 130 through 138 are repeated as long as one of the 16 combinations of packages identified by the ECC indicating an uncorrectable error is tried. If the possible combinations in the identified packages match the data originally stored in the memo IJK, the SPC, /DPD code will be These remaining errors can be corrected. Here, we assume that the initially detected error is limited to only two packages. If no indication of an uncorrectable error is indicated, the corrected value Wi is used with the corrected value R to restore this value to memory to eliminate the 1 soft error (step 146). The memory access for R9 is thus completed (step 148).

識別されたパッケージにおけるデータの16個の全ての
組合を試行しても訂正の完了したワードが生成されない
なら、FCCで最初に3以上のパッケージでエラーを検
出したと推定されるか、または拡張されたECCサイク
ル内でノ・−ドエラーが断続的であろうと推定される。
If a corrected word is not produced after trying all 16 combinations of data in the identified packages, it is presumed that the FCC first detected the error in three or more packages, or It is estimated that the node error will be intermittent within the ECC cycle.

以上の実施例では、こうした状況は訂正不能エラー標識
として示される。
In the above embodiments, such a situation is indicated as an uncorrectable error indicator.

2つのパッケージがハードエラーを有するものと識別さ
れた場合は、両方のパッケージのビットを同時に変更す
るのが望ましい。こうすればより速く正しい組合せが生
成されるからである。
If two packages are identified as having hard errors, it is desirable to change the bits in both packages at the same time. This is because correct combinations can be generated faster.

ハードウェア構成(第2図) 次に、本実施例の拡張されたエラー訂正に関するハード
ウェアの具体例について説明する。第2図に示すメモリ
システムは、各々4ビツトの出力を有する4つのメモリ
パッケージ10から成る。
Hardware Configuration (FIG. 2) Next, a specific example of hardware related to the expanded error correction of this embodiment will be described. The memory system shown in FIG. 2 consists of four memory packages 10 each having a 4-bit output.

合計16ビツトの保護データワード(4つの4ビツトサ
ブフイールドに分けられる)のための単一パッケージ訂
正/2重ノくツケージ検出(SPC/DPDX4)コー
ドを実現する目的で、ECC論理12を設ける。n x
411はパッケージの幅が4ビツトであることを示す。
ECC logic 12 is provided for the purpose of implementing a single package correction/double lock detection (SPC/DPDX4) code for a total of 16-bit guard data words (divided into four 4-bit subfields). n x
411 indicates that the package width is 4 bits.

SPC/DPDx4:7−ドは15個のチェックビット
を必要とする。前掲の論文(a)には、本実施例に必要
な部類のECC論理の例が記載されている。本実施例で
はデータフィールドの幅およびそのサブフィールドの幅
をそれぞれ16ビツトおよび4ビツトとしているが、も
ちろん他の幅のものにも本発明は同様に適用できる。E
CC論理12は任意の2つのメモリパッケージ10に発
生する任意数のビットエラーを検出することができる。
SPC/DPDx4:7-code requires 15 check bits. The above-mentioned paper (a) describes an example of the type of ECC logic necessary for this embodiment. In this embodiment, the width of the data field and the width of its subfields are 16 bits and 4 bits, respectively, but of course the present invention is equally applicable to other widths. E
CC logic 12 can detect any number of bit errors occurring in any two memory packages 10.

ECC論理12は2重パッケージエラーの場所を指定す
ることはできないが、訂正不能エラー信号を発生するこ
とができる。2重パッケージエラーだけを一義的に検出
するよう設計されたこのECC論理12は、3個または
4個のメモリパッケージ10にエラーが発生したときは
、そのことを示す場合もあるし示さない場合もある。
Although ECC logic 12 cannot specify the location of double package errors, it can generate an uncorrectable error signal. Designed to uniquely detect only double package errors, the ECC logic 12 may or may not indicate when three or four memory packages 10 are in error. be.

本実施例では、さらに、メモリパッケージ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信号は拡張さ
れたエラー訂正が補数化の初めの段階にあることを意味
し E 3CC信号は、ノ・−ド障害を有するメモリパ
ッケージ10に関連するサブフィールドのビットをカウ
ンタ20が変更しているところであるということを意味
するものである。
In this embodiment, an ECC extension 16 is further provided in association with each of the memory packages 10. Each ECC
Extension 16 receives 4-bit data from the associated memory package 10 via 16-bit register A. Each ECC extension 16 stores 4 of the 16 bits of data.
1. Provides bits to ECC logic 12. ECC extension section 16
The data provided by ECC logic 12 may be the original data from the associated memory package 10, or the data may be modified according to the process described above. Controller 18 receives uncorrectable error signals from ECC logic 12 and controls the operation of ECC extension 16 . The E2CC signal from controller 18 means that enhanced error correction is in the beginning stages of complementation. This means that it is about to change.

ECC拡張部(第3図) ECC拡張部16の詳細を第3図に示すっメモーリパッ
ケージ10の出力の各々は関連するA、ランチ30にそ
れぞれ接続する。Ai ラッチ30はレジスタAの構成
要素である。各A1ランチ30の出力は関連するC1ラ
ッチ32にそれぞれ接続スル。Ci ラッチ32はレジ
スタCの構成要素である。Ai ラッチ30およびC1
ラッチ32は両方ともコントローラ18でラッチされる
。Ci  ラッチ32はR6を記憶してビットごとの比
較を行うためのものである。4つの比較回路34の各々
は対応するA、ラッチ30およびCi ラッチ32のペ
アか・らの出力を受け取って、これらの両ビットが等し
いときに・・イレベルの信号(すなわち1)を出力する
。したがってこの比較はWおよびR1に関してビットご
とに行われる。
ECC Extension (FIG. 3) Details of the ECC extension 16 are shown in FIG. 3.Each of the outputs of the memory package 10 is connected to an associated A, launch 30, respectively. Ai latch 30 is a component of register A. The output of each A1 launch 30 is connected to an associated C1 latch 32, respectively. Ci latch 32 is a component of register C. Ai latch 30 and C1
Both latches 32 are latched on controller 18. Ci latch 32 is for storing R6 and performing a bit-by-bit comparison. Each of the four comparator circuits 34 receives an output from a corresponding pair of A, latch 30 and Ci latch 32, and outputs a high level signal (ie, 1) when both bits are equal. This comparison is therefore done bit by bit with respect to W and R1.

比較回路34の各々の出力は4つのデコーダ36の入力
e、大入力、入力gおよび入力りのうちの1つに入力さ
れる。各デコーダ36は関連するAi ラッチ30にラ
ンチされたデータビットに関する選択的な反転を制御す
る。この選択的な反転はE X OEl、ゲート38で
遂行される。各E X OR。
The output of each comparator circuit 34 is input to one of the inputs e, large input, input g, and input of four decoders 36. Each decoder 36 controls selective inversion of the data bits launched into the associated Ai latch 30. This selective inversion is accomplished at ExOEl, gate 38. Each EXOR.

ゲート38はECC論理12への16個の入力への1つ
の出力を供給するつECC論理12の各出力は81 ラ
ンチ40に別々にラッチされる。16個のB1ラッチ4
0でレジスタBが構成される。
Gate 38 provides one output to 16 inputs to ECC logic 12 and each output of ECC logic 12 is latched separately into 81 launches 40. 16 B1 latches 4
Register B is configured with 0.

4ビツトのカウンタ20は4つのデコーダ36の人力d
にそれぞれ接続される出力ラインを有する。
The 4-bit counter 20 is manually operated by four decoders 36.
It has an output line connected to each.

デコーダ36は第4図に示すような論理ゲートから成る
。OR・ゲート44への4つの入力e、  f、?およ
びhけ、補数化および再試行の結果で示される如く、関
連するメモリパッケージ10のどのビットにハード的障
害があるのかを示十ものであろうこれらの入力のうちど
れか1つがノ・イレベルになると、ハード障害標識(以
下HFIという)出力がハイレベルになるう関連するパ
ッケージのビットに対してハード障害が示されたときけ
、・・−ド障害の生じたパッケージ内のそのビットはカ
ウンタ20のカウント信号に応じてF  CCプロセス
で変更されるウワードW、のビットは111次的に変更
され、全て変更されたワードが補数化されることに留意
されたいうこれらのオペレーンヨンは変更されるビット
(補数化されていない状態で甲いられる)を除く全ての
ビットをEXOR、ゲート38で反転することによって
なされるっHFI出力がハイレベルになると、カウンタ
のカウント信号(1ビツト)がNANDゲート46で反
転されて、E” CC信号がハイレベル(すなわち、異
なる組合せが現に試行されている)のときにNANDゲ
ート48を通るワカウンタの信号はOR,ゲート50を
通って出力aとなるウバイレベルのE2CC信号は、初
めの補数化および再試行のグロシージャが実行されてい
るときにORゲート50を通り1 これによりデータワ
ードの全てのビットが反転されろうg2cc信号および
E”CC信号が両方ともハイレベルでないときけ、OR
,ゲート50の出力はローレベルなのでEXORゲート
38けAi ラッチ30において補数化されない値をE
CC論理12へ通す。
Decoder 36 consists of logic gates as shown in FIG. The four inputs to OR gate 44 are e, f, ? And if any one of these inputs is at a no-no level, which may indicate which bit of the associated memory package 10 has a hard failure, as shown by the results of complementation and retry. When the Hard Fault Indicator (HFI) output goes high, indicating a hard fault for a bit in the associated package, the bit in the faulty package is Note that the bits of the lower word W, which are modified in the FCC process in response to a count signal of 20, are modified to the 111st order, and all modified words are complemented. This is done by EXORing all bits except bits (which are entered in an uncomplemented state) and inverting them at gate 38. When the HFI output goes high, the count signal (1 bit) of the counter is output to the NAND gate. When the E'' CC signal is high (i.e., a different combination is currently being tried), the signal of the Wa counter that passes through NAND gate 48 is inverted at The E2CC signal is passed through an OR gate 50 when the initial complement and retry glossary is being performed.1 This will invert all bits of the data word so that both the g2cc and E'CC signals are high. If not, OR
, the output of the gate 50 is low level, so the EXOR gate 38 Ai and the non-complemented value in the latch 30 are
Pass to CC logic 12.

上記の第1表は入力にE  CC信号、E  CC信号
および1ビツトのカウント信号を有するデコーダ36に
関する真理値表である。HFI信号の値は、・・−ド障
害比較信号e、  f、  S’およびhのうち1つが
ハイレベルのときは常にハイレベルである。E  CC
信号およびE CC信号が両方ともローレベルなら、デ
コーダ36の出力aけゼロなので、データビットは反転
されない5以上が、エラー訂正の初めの試行のためのノ
ーマルモードのオペレーションである。
Table 1 above is a truth table for a decoder 36 having an ECC signal, an ECC signal, and a 1-bit count signal at its inputs. The value of the HFI signal is always high when one of the fault comparison signals e, f, S' and h is high. E CC
If the signal and the ECC signal are both low, the output of decoder 36 is zero, so the data bits are not inverted, which is normal mode operation for the first attempt at error correction.

コントローラ18がE  CC=0およびE CC=0
を出力すれば、AIランチ30にラッチされたワードR
1のために初めのエラー訂正の段階が試行される。デコ
ーダ36はa = 0を出力するので、データビットお
よびチェックビツトがECC論理12に送られる。EC
C論理12の出力はB、ラッチ40でラッチれるウデー
タが正しいかまたは訂正可能な場合は、ECC論理12
はBi ラッチ40のデータのための有効なデータ信号
を出力する。無効データまたは訂正不能エラー信号で、
さらにエラー訂正が必要であるということをコントロー
ラ18に知らせるっ訂正不能エラーの場合、未訂正のデ
ータワードはECC論理12を介してBi ラッチ40
に送られる。
Controller 18 has ECC=0 and ECC=0
If you output the word R latched in the AI launch 30
1, an initial error correction step is attempted. Decoder 36 outputs a=0, so the data bit and check bit are sent to ECC logic 12. EC
The output of C logic 12 is B, and if the data latched by latch 40 is correct or correctable, ECC logic 12
outputs a valid data signal for the data in Bi latch 40. Invalid data or uncorrectable error signal.
In the case of an uncorrectable error, the uncorrected data word is passed to the Bi latch 40 via the ECC logic 12 to signal the controller 18 that further error correction is required.
sent to.

コントローラ18がE2CC=1およびE cc=0を
出力する場合は(初めに取り出したデータのECCチェ
ックから生じた訂正不能エラー信号に基づく)、補数化
および再試行、すなわち、拡張されたエラー訂正のE”
 CCプロセスが試行される。Bi ラッチ4oのデー
タはA1ラッチ3゜に戻される。これにより、後続のデ
ータワードA1ランチ30に予め記憶できるようなパイ
プラインオペレーションが可能と潜る。データワードに
関する全てのデータビットおよびチェックビツトがI(
FI信号およびカウント信号の値に関係なく反転するよ
うに、デコーダ36はa=1を出力する。
If the controller 18 outputs E2CC=1 and Ecc=0 (based on the uncorrectable error signal resulting from the ECC check of the initially fetched data), complementation and retry, i.e., enhanced error correction is performed. E”
A CC process is attempted. The data in Bi latch 4o is returned to A1 latch 3°. This allows for pipeline operations such that subsequent data words can be prestored in the A1 launch 30. All data bits and check bits for a data word are I(
Decoder 36 outputs a=1 so that it is inverted regardless of the values of the FI and count signals.

反転によりワードnが生成され、これが変更されないま
まECC論理12を介してBi ラッチ4゜に送られて
メモリパッケージ1oのロケーションAに記憶される。
The inversion produces word n, which is passed unchanged through ECC logic 12 to Bi latch 4° and stored in location A of memory package 1o.

次にロケーションAが読み取られて、その内容がAi 
ラッチ30にラッチされる。
Location A is then read and its contents are Ai
It is latched by latch 30.

全てのデータビットおよびチェックビットが反転される
よう、デコーダ36はa = 1を出力し続ける。これ
が、ハード障害を分離し恐らくはエラーを訂正するため
に遂行されるWからWへの補数化である。
Decoder 36 continues to output a=1 so that all data bits and check bits are inverted. This is the W to W complementation performed to isolate hard faults and possibly correct errors.

コントローラ18がE2CC=0およびE3CC=1を
出力する場合は(2回の補数化すなわちE2CCプロセ
ス後のECCチェックから生じた訂正不能エラー信号に
基づく)、拡張されたエラー訂正の第2の段階すなわち
E3CCプロセスが試行される。換言すれば、ハード障
害の生じたメモリパッケージ10のビットが変更される
ウデコーダ36に対してHFI=0のときは、どこか他
のメモリパッケージ10にハード障害が生じている。
If the controller 18 outputs E2CC=0 and E3CC=1 (based on the uncorrectable error signal resulting from the two-times complementization or ECC check after the E2CC process), the second stage of enhanced error correction, i.e. E3CC process is attempted. In other words, when HFI=0 for the Udecoder 36 where the bit of the memory package 10 in which a hardware failure has occurred is changed, a hardware failure has occurred in some other memory package 10.

この場合、反転はカウント値に関係なく、どのビットも
変更しないでWiをWiに補数化するようにして遂行さ
れる。もしHFI=1なら、そのデコーダ36に関連す
るメモリパッケージ10に少なくとも1つの工2−があ
る。このような状況のもとで、カウンタ20がこのデコ
ーダ36に値Oを出力するとそのデコーダ36がa =
= 1を出力する。したがって、Wlから1への通常の
補数化のだめ、関連するデータビットがEXOR,ゲー
ト38で反転される。しかしながら、カウンタ20の出
力がイ直1のときはデコーダ36はa=0を出力するの
でEXOR,ゲート38は反転を行わない。
In this case, the inversion is performed by complementing Wi to Wi without changing any bits, regardless of the count value. If HFI=1, there is at least one device 2- in the memory package 10 associated with that decoder 36. Under these circumstances, when the counter 20 outputs the value O to the decoder 36, the decoder 36 outputs a =
Output = 1. Therefore, the associated data bits are inverted at EXOR gate 38, in lieu of the normal complementation of W1 to 1. However, when the output of the counter 20 is 1, the decoder 36 outputs a=0, so the EXOR gate 38 does not perform inversion.

これは変更されたビットを補数化したことと等価である
This is equivalent to complementing the changed bits.

以上かられかるように、カウンタ20は/・−ド障害の
あるメモリパッケージIOから得られたデータワードに
おけるビットの変更を制御する。もし2以上のメモリパ
ッケージ10が7・−ド障害を有するなら、各々のメモ
リパッケージlOにおいて変更が同時に遂行される。カ
ウンタは初め値1から始まる。カウント値0は変更なし
に対応するので試行する必要はない。この場合はワード
B、に関して通常のECCプロセスが既に試行されてい
るからである。一般的にnビットのメモリ・2ノケージ
10の場合、カウント値は2n−2に向かつて進む。最
終カウント値2−1は試行する必要がない。というのは
この値、たとえば4ピツトのメモリパッケージの場合(
1111)は、ハード障害のあるモジュールに関して全
て補数化した訂正に対応するからである(このモジュー
ルはこの補数化および再試行のプロセスで訂正されてい
るであろう)。全ての主要な組合せが試行される限シは
カラ/り機構はどのようなものを使ってもよい。カウン
ト値は2進でなくてもよい。また、起こり易い障害の形
態が予想されるなら、それが最初に見つかるようにカウ
ンタを調整しておけば最善である。
As can be seen, counter 20 controls the change of bits in the data word obtained from the faulty memory package IO. If more than one memory package 10 has a 7-mode failure, changes are performed in each memory package 10 simultaneously. The counter starts with an initial value of 1. A count value of 0 corresponds to no change, so there is no need to try. This is because the normal ECC process has already been attempted for word B in this case. Generally, in the case of an n-bit memory 2 node cage 10, the count value advances toward 2n-2. The final count value of 2-1 does not need to be attempted. This is because this value, for example, for a 4-pit memory package (
1111) corresponds to an all-complemented correction for the hard-faulted module (which would have been corrected in this complementation and retry process). Any color/return mechanism may be used as long as all major combinations are tried. The count value does not have to be binary. Also, if you can predict a type of failure that is likely to occur, it is best to adjust the counter so that it is detected first.

上記の第2表を参照しながら、本発明に基づいて遂行さ
れる訂正プロセスの例を説明する。第2表には3つのメ
モリパッケージしか示していないが、エラーを含まない
ものならもつとメモリパッケージを使うことができる。
An example of a correction process performed in accordance with the present invention will now be described with reference to Table 2 above. Although only three memory packages are shown in Table 2, any memory package that does not contain errors can be used.

第2表の最初の行はメモリパッケージに記憶されたデー
タを示している。データはSPC/DPDコードに基づ
いてコード化されているものとする。例として、第2行
および第3行に示すように、メモリパッケージ1の4ビ
ツト全てがハード障害(H)を有しているためそれらが
値1に固定しており、さらに、メモリパッケージ3の1
つのビットにソフトエラー(S)が生じいると想定する
。したがって、そのデータがワードR2と読み取られる
と、それは2つのメモリパッケージにおいて誤りのある
データを含むものとなる。
The first row of Table 2 shows the data stored in the memory package. It is assumed that the data is coded based on the SPC/DPD code. As an example, as shown in the second and third lines, all 4 bits of memory package 1 have a hard failure (H), so they are fixed at the value 1, and 1
Assume that a soft error (S) occurs in one bit. Therefore, when that data is read as word R2, it will contain erroneous data in two memory packages.

このワードRがECC処理されると、2重パッケージ検
出コードは訂正不能エラーがあるということを知らせる
ことができる。次に補数化および再試行プロセスすなわ
ちF  CCプロセスが始まる。ワードRはBCC拡張
部に記憶し、補数化する。補数化されたワードR1はメ
モリの同じロケーションに戻して記憶する。そしてこの
ロケーションをワードWとして読み取るウメモリパッケ
ージ1は全てのビットが1に固定されているので、これ
らの4ビツトは再び(1111)と読み取られる。メモ
リパッケージ3のソフトエラーは、そこに記憶されたW
を検索した値に影響を及ぼさない。
When this word R is ECCed, the double package detection code can signal that there is an uncorrectable error. The complementation and retry process, or FCC process, then begins. Word R is stored in the BCC extension and complemented. The complemented word R1 is stored back in the same memory location. Since all bits of the memory package 1 which reads this location as word W are fixed to 1, these 4 bits are read as (1111) again. A soft error in memory package 3 is caused by the W stored there.
does not affect the value searched for.

読み取られたワードWは再補数化されて、再補数化され
たWはECC処理される。補数化および再試行プロセス
はメモリパッケージ1の最初の2ビツトを訂正するが最
後の2ピツトは訂正しない。
The read word W is re-complemented and the re-complemented W is ECC processed. The complement and retry process corrects the first two bits of memory package 1, but not the last two.

補数化および再試行はソフトエラーを保持する。Complementation and retry preserve soft errors.

したがって、ECCけ再び2重パッケージエラーを検出
することになるので、E CCプロセスに入る。
Therefore, the ECC will detect the double package error again and enter the ECC process.

第1図のステップ128に示したビットごとの比較は第
2表に明確には示されていないつというのけ、E”CC
プロセスに入るとこの比較はカウンタの各段階ととに遂
行されるものであるからであるっF  CCプロセスに
入ると、カウンタは最初のサイクルで1にセントされる
うカウント値が1になると、Wの最下位ビットが変更さ
れる(実際には変更と補数化は同時になされるから、変
更は反転しないということに相当する)。ただし、この
変更はハード障害のあるメモリパッケージに対してのみ
行われる。第2表中の記号II *IIはWの変更され
たビットを示している。変更されたWけ補数化されて、
補数化されたWけFCC処理される。実施例の装置では
、変更と補数化は同時に遂行される。
The bit-by-bit comparison shown in step 128 of FIG. 1 is not explicitly shown in Table 2.
This is because once the process is entered, this comparison is performed for each stage of the counter. When the CC process is entered, the counter is set to 1 on the first cycle, and when the count value reaches 1, The least significant bit of W is changed (actually, the change and complementation are done at the same time, so the change corresponds to not being reversed). However, this change only applies to memory packages with hard failures. The symbol II *II in Table 2 indicates the changed bit of W. The modified W key complement is
Complemented W is subjected to FCC processing. In the example apparatus, modification and complementation are performed simultaneously.

Wの1つのビットの変更により、メモリパッケージ1の
ハードエラーの1つが訂正されるがもう一方は訂正され
ない。したがって、Wのもともと記憶された値に対し他
の変更を行うためカウンタを増分する。サイクル1の最
下位ビツトの変更はサイクル2では発生しないことに留
意されたい。
Changing one bit of W will correct one hard error in memory package 1 but not the other. Therefore, a counter is incremented to make other changes to the originally stored value of W. Note that the change in the least significant bit of cycle 1 does not occur in cycle 2.

しかしながら、サイクル2の変更でもメモリパッケージ
1を訂正するには不十分である。したがってECCは再
び2重パッケージエラーを示す。
However, even the change in cycle 2 is insufficient to correct memory package 1. Therefore, the ECC again indicates a double package error.

サイクル3に示す如くカウンタのカウント値が進むと、
ワードWの下位2ビツトが変更される。
As the count value of the counter advances as shown in cycle 3,
The lower two bits of word W are changed.

この変更により、メモリパッケージ1に関して正しいW
の値(すなわち、そのパンケージでもともと記憶したデ
ータを補数化したもの)が生成されるうしかしながらま
だ、メモリパッケージ3にはソフトエラーが残っている
。変更したWの値を補数化して補数化されたWに関して
FCC処理を施 。
This change ensures that the correct W for memory package 1
(ie, the complement of the data originally stored in that package), however, a soft error still remains in the memory package 3. Complement the changed W value and perform FCC processing on the complemented W.

すと、争−ハラケージ訂正コードで残っているソフトエ
ラーを処理することができるから、それを正しい値に訂
正できる。新しいチェックビットを生成するため、訂正
された値はAi ラッチ32を介してBi ラッチ40
からECC論理12に送られる。再びBi ラッチ40
にラッチされると、メモリパッケージ3のソフトエラー
を除去するため、これがメモリに記憶されろうもちろん
、この除去オペレーションはメモリパッケージ1のハー
ド障害に何ら影響を与えない。訂正された値は、第1図
に示したステップ146の前または後で、Biラッチ4
0でも利用できる。
Then, the remaining soft errors can be processed with a conflict correction code, so that they can be corrected to correct values. The corrected value is passed through Ai latch 32 to Bi latch 40 to generate a new check bit.
to the ECC logic 12. Bi latch 40 again
Of course, this removal operation has no effect on the hard failure of memory package 1. The corrected value is stored in Bi latch 4 before or after step 146 shown in FIG.
Can also be used with 0.

これまでに説明した実施例では、SPC/DPDコード
のサブフィールドは多重ビット・メモリパッケージの境
界に整列しているものと仮定している。実際上はこの整
列の要件は必要なく、巣−のパッケージが複数のサブフ
ィールドを含んでいてもよいし、単一のサブフィールド
が2以上のパ −ツケージにわたって延在していてもよ
い。さらに、これまでの説明でSPC/DPDコードを
使用するものと仮定したが、本発明は他のタイプのエラ
ー訂正コードの能力を高めるために用いることもできる
。そのようなコードは、たとえば、sgc/DED/8
PD、SPC/DPD、 お!びSEC/T B D−
t’アルウTEDコードは3重ビットエラーを検出する
ものである。特に、S E C/D ED/SPDコー
ドだけが存在するときけ単一パッケージ内の誤りのある
任意数のビットを含む尋−パッケージエラーを訂正する
のKE” CCを用いることもできるし、SEC/TE
Dコードだけが存在するときけE” CCで3重ビット
エラーを訂正することができる。後者の場合、サブフィ
ールドは牟−ビットに関連づけることができる。
The embodiments described so far assume that the subfields of the SPC/DPD code are aligned to the boundaries of a multi-bit memory package. In practice, this alignment requirement is not necessary; a nest package may contain multiple subfields, and a single subfield may extend across more than one package. Furthermore, although the previous discussion has assumed the use of SPC/DPD codes, the present invention can also be used to enhance the capabilities of other types of error correction codes. Such a code is, for example, sgc/DED/8
PD, SPC/DPD, Oh! and SEC/TB D-
The t'alu TED code detects triple bit errors. In particular, when only SEC/D ED/SPD codes are present, the ``KE'' CC can be used to correct package errors that contain any number of erroneous bits within a single package. T.E.
Triple bit errors can be corrected with the E'' CC when only the D code is present. In the latter case, the subfield can be associated with a square bit.

以上かられかるように、本発明は様々なコードに対して
適用できる。非パッケージコードの場合、すなわちパッ
ケージ当りのビツト数がb=1の場合、検出できるビツ
ト数mが訂正アきるビツト数nを超えるとき本発明は有
益である。しかしながら、この有益性もソフトエラーの
数SKよって制限を受ける。訂正可能な誤りビットの数
Cは、もしS≦nなら02mである。m = n −)
−1のときは、通常の反転−再試行の手法でこのエラー
が訂正されるから、E ccで十分であるっ パッケージコード、b>1.の場合、パラメータを次の
ように再定義する二〇はパッケージエラー訂正能力に等
しく+mはパッケージエラー検出能力に等しく;Sはソ
フトエラーしか発生しないようなパッケージの数に等し
く;cは訂正可能な誤シバツケージの最大数に等しい。
As can be seen from the above, the present invention can be applied to various codes. In the case of unpackaged codes, ie when the number of bits per package is b=1, the invention is advantageous when the number m of bits that can be detected exceeds the number n of bits that can be corrected. However, this usefulness is also limited by the number of soft errors SK. The number C of correctable error bits is 02m if S≦n. m = n −)
-1, this error is corrected using the normal inversion-retry method, so Ecc is sufficient.Package code, b>1. For , redefine the parameters as 20 equals the package error correction capability + m equals the package error detection capability; S equals the number of packages such that only soft errors occur; c is the correctable Equal to the maximum number of false cages.

S≦nなう02mである。パッケージコードの場合、m
=n−4−1ならハード障害を有するデータがうまく特
定の形態で並らぶことでもない限りE2CCだけでは必
要な訂正は遂行されない。
S≦n is now 02m. For package code, m
If =n-4-1, E2CC alone will not perform the necessary correction unless the data with the hard fault is properly arranged in a specific form.

これまでの実施例はほとんどノ・−ドウエアで実現され
ているが、ソフトウェアで実現することも、ハードウェ
アおよびソフトウェアの組合せで実現することも可能で
あるっハードウェアによるアプローチの利点は、その機
能をほとんどメモリに入れることができるためそれがユ
ーザに対してトランスペアレントになることである。
Most of the embodiments so far have been implemented in hardware, but they can also be implemented in software or a combination of hardware and software.The advantage of a hardware approach is that its functionality can be kept mostly in memory, making it transparent to the user.

以上かられかるように、訂正できるビツトエラーよりも
検出できるビツトエラーの数が多いようなエラー訂正コ
ードに本発明を適用すると有益である。本実施例は少な
くとも数ビットがハード障害を有することを要請した。
As can be seen from the above, it is advantageous to apply the present invention to error correction codes in which the number of bit errors that can be detected is greater than the number of bit errors that can be corrected. This embodiment requires that at least some bits have hard failures.

ノ・−ド障害のロケーションは補数化および再試行の手
法によシ分離される。ハード障害のロケーショ/に関連
するピ、ットはECCでエラーが検出されないようにな
るまで順次的に変更される。
The location of node failures is isolated using complementation and retry techniques. The pits associated with the location of the hard failure are changed sequentially until no errors are detected by the ECC.

G0発明の詳細 な説明したように本発明によれば、エラー訂正および検
出のできる使用されているエラー訂正コードの訂正能力
以上のビツトエラーを訂正することができる。
DETAILED DESCRIPTION OF THE G0 INVENTION According to the present invention, it is possible to correct bit errors that exceed the correction capability of the error correction code being used that is capable of error correction and detection.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明に基づ〈実施例のエラー訂正を説明する
流れ図、第2図は実施例の・・−ドウエアの構成を示す
ブロック図、第3図は第2図におけるECC拡張部16
の構成を示すブロック図、第4図は第3図におけるデコ
ーダ36の構成を示すブロック図である。
FIG. 1 is a flowchart explaining error correction in an embodiment based on the present invention, FIG. 2 is a block diagram showing the configuration of software in the embodiment, and FIG. 3 is an ECC extension unit 16 in FIG.
FIG. 4 is a block diagram showing the configuration of the decoder 36 in FIG. 3.

Claims (1)

【特許請求の範囲】 bビツトのサブワードを複数有するエラー訂正符号化さ
れたnビツト・コードワードにおける多重エラーを訂正
する方法であつて、 (a)データ源からnビツト・コードワードを受け取る
ステツプと、 (b)前記受け取つたnビツト・コードワードにおける
所定の分布を有するエラーを所定数まで訂正するため前
記nビツト・コードワードに対しエラー訂正処理を施し
、前記所定数より多いエラーが発生したときは訂正不能
エラー信号を発生するステツプと、 (c)障害のある少なくとも1つのbビツト・サブワー
ドを識別するステツプと、 (d)2^b個の一意的なbビツトの組合せの1つを生
成するステツプと、 (e)前記bビツトの組合せの1つで、前記nビツト・
コードワードのうちの前記識別されたbビツト・サブワ
ードを代用して変更されたnビツト・コードワードを生
成するステツプと、 (f)該変更されたnビツト・コードワードに対し前記
エラー訂正処理を施すステツプと、 (g)訂正不能エラーがあるときは異なるbビツトの組
合せを生成して前記ステツプ(e)および(f)を繰り
返すステツプと、 より成ることを特徴とする多重エラー訂正方法。
Claims: A method for correcting multiple errors in an error correction encoded n-bit codeword having a plurality of b-bit subwords, comprising the steps of: (a) receiving an n-bit codeword from a data source; (b) When error correction processing is performed on the received n-bit codeword in order to correct up to a predetermined number of errors having a predetermined distribution in the received n-bit codeword, and more errors than the predetermined number occur; (c) identifying at least one faulty b-bit subword; and (d) generating one of 2^b unique b-bit combinations. (e) one of the combinations of said b bits, said n bits;
(f) substituting the identified b-bit subword of the codeword to generate a modified n-bit codeword; and (f) subjecting the modified n-bit codeword to the error correction process. (g) when there is an uncorrectable error, generating a different combination of b bits and repeating steps (e) and (f).
JP60200724A 1985-01-18 1985-09-12 Multiple error correction method Expired - Lifetime JPH0782446B2 (en)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=24782089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60200724A Expired - Lifetime JPH0782446B2 (en) 1985-01-18 1985-09-12 Multiple error correction method

Country Status (5)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009506446A (en) * 2005-08-30 2009-02-12 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Data processing system and driving method thereof

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62120670A (en) * 1985-11-20 1987-06-01 Sony Corp Method for correcting error of data
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 (en) * 1988-04-29 1994-01-27 Ibm Expanded error correction device with single-packet error correction and double-packet error detection codes.
US5014273A (en) * 1989-01-27 1991-05-07 Digital Equipment Corporation Bad data algorithm
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
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
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 (en) * 1997-12-31 2000-10-02 윤종용 Semiconductor memory device and error correction method thereof
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
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 (en) 2015-09-09 2017-03-16 株式会社東芝 Data recovery circuit, semiconductor storage device and data recovery method
US9997233B1 (en) 2015-10-08 2018-06-12 Rambus Inc. Memory module with dynamic stripe width
JP7182373B2 (en) * 2018-04-24 2022-12-02 ラピスセミコンダクタ株式会社 Semiconductor integrated circuit, memory device and error correction method
KR20210132784A (en) * 2020-04-27 2021-11-05 삼성전자주식회사 Memory device and method for reading data from memory device
EP4258116A4 (en) * 2022-02-24 2024-01-03 Changxin Memory Tech Inc Data transmission circuit and data transmission method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5428056A (en) * 1977-08-03 1979-03-02 Daikin Ind Ltd Freezer
JPS5687300A (en) * 1979-12-14 1981-07-15 Ibm Error correction system

Family Cites Families (9)

* 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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5428056A (en) * 1977-08-03 1979-03-02 Daikin Ind Ltd Freezer
JPS5687300A (en) * 1979-12-14 1981-07-15 Ibm Error correction system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009506446A (en) * 2005-08-30 2009-02-12 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Data processing system and driving method thereof
JP4851525B2 (en) * 2005-08-30 2012-01-11 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Data processing system and driving method thereof
US8190971B2 (en) 2005-08-30 2012-05-29 Robert Bosch Gmbh Data processing system and method for operating a data processing system

Also Published As

Publication number Publication date
CA1231456A (en) 1988-01-12
EP0188192A3 (en) 1989-03-08
US4661955A (en) 1987-04-28
EP0188192B1 (en) 1992-04-15
JPH0782446B2 (en) 1995-09-06
DE3684788D1 (en) 1992-05-21
EP0188192A2 (en) 1986-07-23

Similar Documents

Publication Publication Date Title
JPS61169940A (en) Multiple error correction
US4531213A (en) Memory through checking system with comparison of data word parity before and after ECC processing
US4740968A (en) ECC circuit failure detector/quick word verifier
EP0332662B1 (en) Byte write error code method and apparatus
EP0339166B1 (en) Extended errors correcting device having single package error correcting and double package error detecting codes
JP4071940B2 (en) Shared error correction for memory design
US8145977B2 (en) Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory
US4296494A (en) Error correction and detection systems
JPS6061837A (en) Error corrector
US4712216A (en) Method and device for correcting errors in memories
JPS6120166A (en) Memory system
JPS6047625B2 (en) error correction system
JP2519286B2 (en) Address line test method
JPH03248251A (en) Information processor
KR20020029925A (en) Methods and apparatus for correcting soft errors in digital data
JPS6349245B2 (en)
US6675341B1 (en) Extended error correction for SEC-DED codes with package error detection ability
US4377863A (en) Synchronization loss tolerant cyclic error checking method and apparatus
US3794819A (en) Error correction method and apparatus
US11126500B2 (en) Error detection and correction with integrity checking
US6047396A (en) Digital data storage system including phantom bit storage locations
JPH09288619A (en) Main storage device
RU1795520C (en) Semiconductor on-line storage with correction of information
SU868844A1 (en) Self-checking storage device
JPH06301604A (en) Storage reproducing system