JPS6132708B2 - - Google Patents

Info

Publication number
JPS6132708B2
JPS6132708B2 JP57500654A JP50065482A JPS6132708B2 JP S6132708 B2 JPS6132708 B2 JP S6132708B2 JP 57500654 A JP57500654 A JP 57500654A JP 50065482 A JP50065482 A JP 50065482A JP S6132708 B2 JPS6132708 B2 JP S6132708B2
Authority
JP
Japan
Prior art keywords
bit
error
bits
syndrome
errors
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
Application number
JP57500654A
Other languages
Japanese (ja)
Other versions
JPS58501924A (en
Inventor
Chin Rongu Chen
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 JPS58501924A publication Critical patent/JPS58501924A/en
Publication of JPS6132708B2 publication Critical patent/JPS6132708B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

請求の範囲 複数のパツケージを含み、各パツケージからM
ビツトずつ取ることによつてメモリ・データ・ワ
ードを構成するメモリに関して単一エラー訂正二
重エラー検出コードを使用する、下記の(イ)乃至(ハ)
を備えたパツケージ・エラー訂正装置。 (イ) 各パツケージにおけるM個の単一ビツト・エ
ラーのシンドロームの排他的OR結合が当該パ
ツケージを識別する独特の合成シンドロームに
なるように前記コードを拡張してデータ・ワー
ドを符号化するエンコーダ。 (ロ) 各シンドロームを全ての可能な単一ビツト・
エラー・シンドローム及び全ての可能な合成シ
ンドロームと比較することより、単一ビツト・
エラー又は単一パツケージ・エラーのロケーシ
ヨンを検出する手段。 (ハ) 前記手段により検出されたロケーシヨンのエ
ラーを訂正する手段。 背景技術 本発明はメモリ・アレイにおけるパツケージ・
エラーを訂正するエラー訂正コード(ECC)に
関する。具体的には、本発明は単一モノリシツ
ク・メモリ・チツプの全てのエラーを訂正し、か
つ2個のモノリシツク・チツプの各々が単一ワー
ドからの2ビツトを含むとき、メモリにおけるそ
のような2個のチツプの全てのエラーを検出する
エラー訂正コードに関する。 エラー訂正の観点からすれば、半導体メモリ・
システムは1個のチツプにつき1ビツトの割合で
構成されることが望ましい。このような構成のメ
モリでは、72ビツトのコードワードを記憶するの
に72個のチツプを必要とし、ワードの各ビツトは
異つたチツプ上におかれる。チツプごとに1個の
ビツトを使用するメモリ構成の利点は、チツプが
全面的にエラーを示すとき、単一エラー訂正/二
重エラー検出(SEC/DED)のエラー訂正コー
ドを使用できることである。 チツプごとに1個のビツトを使用する構成の不
利点は、それがチツプごとに複数ビツトを使用す
る構成よりも多くの電力を消費することである。
何故ならば、ECCコードワードを形成するのに
多くのチツプが必要であり、各チツプはメモリが
アクセスされるときパワーアツプされねばならな
いからである。従つて、チツプ当り複数ビツトを
使用するように構成されたメモリにおいてビツ
ト・エラー及びパツケージ・エラーの双方によつ
て生じた単一エラーを訂正し二重エラーを検出す
るECCコードが非常に望まれる。 パツケージ・エラーを検出するための単一エラ
ー訂正/二重エラー検出コードは、米国特許第
4077028号に開示されている。この特許に開示さ
れたコードの問題点は、それがパツケージ・エラ
ーを訂正しないことである。 Bossenの米国特許第3634821号の説明されるよ
うなb隣接コードは、追加のチエツク記号を付加
することによつて、単一マルチビツト・パツケー
ジのエラーを訂正し2個のマルチビツト・パツケ
ージのエラーを検出するように適合化させること
ができる。b隣接コードを用いる場合の問題点
は、検出及び訂正を行う場合に、多数のチエツ
ク・ビツトが必要とされることである。そのよう
な隣接コードを使用すれば、1バイトのエラーを
訂正し2バイトのエラーを検出するために、3個
のECCチエツク・ビツト・バイトが必要であ
る。そのコードによつて訂正可能なバイト数n
は、n=2b+2に等しい。かくて2ビツト・バ
イトの場合、n=6である。6個のバイトの中の
3個はECCチエツク・ビツト・バイトであるか
ら、3バイトのみがデータ・ビツト・バイトであ
る。 全ての単一パツケージ・エラーを訂正し、全て
の二重パツケージ・エラーを検出する他の方法
は、リード・ソロモン(Reed−Solomon)コー
ドを使用することである。このような手法は、
1980年10月1日から3日まで開催された第10回故
障許容計算シンポジウム会議録の第41頁から第46
頁に、「メモリ・システムのための単一バイト・
エラー訂正−二重バイト・エラー検出コード」と
題してKaneda及びFujiwaraによつて説明されて
いる(Proceedings of the 10th Fault Tolerant
Computing Symposium:Single Byte Error
Correcting−Double Byte Error Detecting
Codes for Memory Systems)。その記事によれ
ば現存するリード・ソロモン・パツケージ・エラ
ー訂正コードは、チエツク・ビツトを効率的に使
用する長いコード長パツケージ・エラー訂正コー
ドを発生するため拡張される。この一般化された
コードは概してチエツク・ビツトを効率的に使用
できるが、モジユラー化されたものは、それほど
効率的でない。 従つて、パツケージ・エラーが1つ又はそれ以
上のエラー・ビツトである場合に、単一パツケー
ジ・エラーを訂正し二重パツケージ・エラーを検
出するために必要な訂正ビツトの数を効率的に使
用する新しいモジユラー化されたコードが望まれ
る。 発明の要約 本発明によれば、データ・ワードをコード・ワ
ードへエンコードする符号化手段が設けられ、任
意のパツケージに存在する全ての単一ビツト・エ
ラー・シンドロームの排他的OR結合は、各パツ
ケージごとに独特の合成シンドロームを生じる。
このコードは単一エラー訂正二重エラー検出コー
ドであつて、m個のビツトをカバーするように拡
張されている。ここでmはパツケージ中のビツト
の数に等しい。 本発明の目的は、単一及び二重ビツト・エラー
を訂正し、同時に単一パツケージ・エラーを訂正
するとともに二重パツケージ・エラーを検出する
新しいコードの使用システムを実現することであ
る。 本発明の他の目的は、先行技術で必要とされる
よりも少ないチエツク・ビツトを使用して、単一
パツケージ・エラーを訂正し二重パツケージ・エ
ラーを検出するシステムを実現することである。 本発明の他の目的は、全ての単一パツケージ・
エラーを訂正し、全ての二重パツケージ・エラー
を検出するモジユラー化されたコードの使用シス
テムを実現することである。
Scope of Claims Includes a plurality of packages, each package containing M
(a) to (c) below, which use a single error correction double error detection code for memory that constructs memory data words by taking bits at a time.
Package error correction device with (b) An encoder for encoding data words by extending said code such that the exclusive OR combination of M single-bit error syndromes in each package results in a unique composite syndrome that identifies that package. (b) Each syndrome is divided into all possible single bits.
By comparing the error syndrome and all possible composite syndromes, the single bit
A means of detecting the location of errors or single package errors. (c) means for correcting location errors detected by said means; BACKGROUND ART The present invention provides a package
Concerning error correction codes (ECC) that correct errors. Specifically, the present invention corrects all errors in a single monolithic memory chip and corrects all errors in memory when each of the two monolithic chips contains two bits from a single word. This invention relates to an error correction code that detects all errors in a single chip. From the perspective of error correction, semiconductor memory
Preferably, the system is configured at a rate of one bit per chip. A memory configured in this manner requires 72 chips to store a 72-bit codeword, with each bit of the word located on a different chip. The advantage of a memory configuration that uses one bit per chip is that single error correction/double error detection (SEC/DED) error correction codes can be used when a chip exhibits errors across the board. A disadvantage of the one bit per chip arrangement is that it consumes more power than the multiple bit per chip arrangement.
This is because many chips are required to form an ECC codeword, and each chip must be powered up when the memory is accessed. Therefore, an ECC code that corrects single errors and detects double errors caused by both bit errors and package errors in memories configured to use multiple bits per chip is highly desirable. . A single error correction/double error detection code for detecting packaging errors is described in U.S. Pat.
Disclosed in No. 4077028. The problem with the code disclosed in this patent is that it does not correct packaging errors. B-adjacent codes, such as those described in Bossen U.S. Pat. No. 3,634,821, correct errors in a single multi-bit package and detect errors in two multi-bit packages by adding additional check symbols. can be adapted to do so. The problem with using b-adjacent codes is that a large number of check bits are required for detection and correction. Using such a contiguous code, three ECC check bit bytes are required to correct a one byte error and detect a two byte error. Number of bytes n that can be corrected by that code
is equal to n=2 b +2. Thus, for a 2-bit byte, n=6. Since 3 of the 6 bytes are ECC check bit bytes, only 3 bytes are data bit bytes. Another method to correct all single package errors and detect all double package errors is to use Reed-Solomon codes. Such a method is
Proceedings of the 10th Fault Tolerance Calculation Symposium held from October 1st to 3rd, 1980, pages 41 to 46
``Single-byte memory systems for
Error Correction - Double-Byte Error Detection Code" by Kaneda and Fujiwara (Proceedings of the 10th Fault Tolerant
Computing Symposium: Single Byte Error
Correcting−Double Byte Error Detecting
Codes for Memory Systems). According to the article, existing Reed-Solomon package error correction codes are extended to generate longer code length package error correction codes that efficiently use check bits. This generalized code generally makes efficient use of check bits, but the modular version is less efficient. Therefore, when a package error is one or more erroneous bits, the number of correction bits required to correct a single package error and detect a double package error can be used efficiently. A new modular code is desired. SUMMARY OF THE INVENTION In accordance with the present invention, encoding means are provided for encoding data words into code words such that the exclusive OR combination of all single bit error syndromes present in any package is Each produces a unique synthetic syndrome.
This code is a single error correcting double error detecting code and has been extended to cover m bits. Here m is equal to the number of bits in the package. It is an object of the present invention to implement a new code usage system that corrects single and double bit errors and simultaneously corrects single package errors and detects double package errors. Another object of the present invention is to provide a system for correcting single package errors and detecting double package errors using fewer check bits than required in the prior art. Another object of the invention is that all single package
The objective is to implement a system that uses modular codes to correct errors and detect all double package errors.

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

第1図は本発明を使用するメモリの略図を示
し、第2図は第1図に示されたメモリのECCエ
ンコーダの略図を示し、第3図は第1図に示され
たメモリのECCデコーダの略図を示す。 発明を実施するための最良の形態 第1図において、24ビツト・コードワードはメ
モリの12個のモノリシツク・チツプ10の上に記
憶される。各チツプ上では2個のビツトが使用さ
れる。後に明らかになる理由によつて、8個のビ
ツトはチエツク・ビツトであり、16個のビツトは
データビツトである。各チツプ10の上にあるデ
ータ・ビツトが単一の記号を表わすとすれば、コ
ードワードは12個の記号より構成される。本発明
によれば、各記号は単一ビツトであると仮定さ
れ、SEC/DEDエラー訂正コードは、この仮定
に基いて発生される。 3個の同様な物体をR個のポケケトに置く順列
を考える。K=R・(R−1)・(R−2)/3個
のデータ記号とすれば、K/2通りの可能な順列
が存在する。そのような順列の各々について、次
の規則に従いR成分列ベクトルVを形成する。V
は空のポケケトに対応する位置にAを含み、物体
を含むポケツトに対応する位置にBを含む。例え
ばR=4、K=8のとき、次のような4個の列ベ
クトルが存在する。 A B B B B A B B B B A B B B B A 従つて、A及びBを含むK/2個のR成分ベク
トルを形成することができる。ベクトルのあるも
のは、他のベクトルの循環シフトである。これら
のベクトルをいくつかの等価の集合に群別し、各
集合中のベクトルが集合代表の循環シフトである
ようにすることができる。V1を等価集合の代表
であるとする。V1の3個のBへ順次にB、C、
Dを代入することによつて、ベクトルV2が形成
される。ここで、V1を含む等価集合にあるベク
トルの数だけV2を循環シフトすることによつ
て、ベクトル集合を発生する。この手順によつ
て、K/2個のベクトルを発生することができ
る。A及びBの成分のみを有するベクトル集合
と、A、B、C、Dの成分を有するベクトルの誘
導された集合とを結合することによつて、K個の
列ベクトルが得られる。形成されたマトリクスを
Pを呼べば、R=4のとき次のようになる。
1 shows a schematic diagram of a memory using the invention, FIG. 2 shows a schematic diagram of an ECC encoder of the memory shown in FIG. 1, and FIG. 3 shows a schematic diagram of an ECC decoder of the memory shown in FIG. A schematic diagram is shown. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In FIG. 1, a 24-bit codeword is stored on twelve monolithic chips 10 of memory. Two bits are used on each chip. For reasons that will become clear later, 8 bits are check bits and 16 bits are data bits. If the data bits on each chip 10 represent a single symbol, the codeword consists of 12 symbols. According to the present invention, each symbol is assumed to be a single bit, and the SEC/DED error correction code is generated based on this assumption. Consider a permutation in which three similar objects are placed in R pockets. If K=R.(R-1).(R-2)/3 data symbols, there are K/2 possible permutations. For each such permutation, form an R-component column vector V according to the following rules. V
contains A in the position corresponding to the empty pocket and B in the position corresponding to the pocket containing the object. For example, when R=4 and K=8, there are the following four column vectors. A B B B B A B B B B A B B B B A Therefore, K/2 R component vectors including A and B can be formed. Some vectors are circular shifts of other vectors. These vectors can be grouped into several equivalent sets, such that the vectors in each set are circular shifts of the set representatives. Let V1 be a representative of the equivalence set. B, C, sequentially to the three B's of V1
By substituting D, vector V2 is formed. Here, a vector set is generated by circularly shifting V2 by the number of vectors in the equivalent set including V1. This procedure allows generation of K/2 vectors. By combining the vector set with only A and B components and the derived set of vectors with A, B, C, D components, K column vectors are obtained. If we call the formed matrix P, it will be as follows when R=4.

【表】 ここで、Pの中のA、B、C、Dへ次のマトリ
クスを代入する。
[Table] Here, substitute the following matrix into A, B, C, and D in P.

【表】 マトリクスPは8×16の2進マトリクスとな
る。2進マトリクスPをオーダ2Rの単位行列で
連絡すると、次の表に示されるパリテイ・チエツ
ク・マトリクスHが得られる。構成されたコード
はGF(4)の上で4の最小距離を有し、従つて、1
つの記号が2ビツトで構成される場合に、上記コ
ードは単一記号エラーを訂正し、かつ二重記号エ
ラーを検出することができることを証明すること
ができる。 次の表は、第1図に示されるメモリに関して
ECCのパリテイ・マトリクスHとマツチング・
マトリクスMとを示す。
[Table] Matrix P is an 8×16 binary matrix. By connecting the binary matrix P with an identity matrix of order 2R, we obtain the parity check matrix H shown in the following table. The constructed code has a minimum distance of 4 on GF(4), so 1
It can be proven that the above code is capable of correcting single symbol errors and detecting double symbol errors when one symbol consists of two bits. The following table describes the memory shown in Figure 1.
ECC parity matrix H and matching
A matrix M is shown.

【表】【table】

【表】 パリテイ・マトリクスHにおいて、各列はコー
ド・ワードの1ビツトを表わす。それぞれの2列
の間にある垂直線は、パツケージ又はチツプの境
界を表わす。即ち、24ビツト・コード・ワードに
あるそれぞれの2ビツトは、第1図に示されるよ
うな異なつたチツプ上にある。マトリクスHの8
行の各々における2進の1は、16個のデータ・ビ
ツトと共に記憶される8個のチエツク・ビツトの
1つを発生するため、どのビツトがエンコーダに
よつて相互に排他的OR結合されるかを示す。例
えば、マトリクスの最上位の行から、最初のチエ
ツク・ビツトを発生するため、ワード中のデー
タ・ビツト1,3,9,11,12,13,16
は相互に排他的OR結合される。 マツチング・マトリクスMは、デコーデイング
中に発生されたシンドロームを示す。もしエラー
が存在しない場合、シンドロームは、マトリクス
の第1列に示したように、8個の0のストリング
である。もし訂正可能又は訂正不可能なエラーが
あれば、シンドロームの1つ又はそれ以上は1で
ある。マツチング・マトリクスMにおいて1を含
む各列は、ビツト位置の1つにおける単一エラー
のシンドローム・パターンであるか、又は単一パ
ツケージ・エラーのシンドローム・パターンであ
る。例えば、マツチング・マトリクスMの最初の
2つの垂直線の間にある3列の最初の列は、単一
エラーがワードの最初のビツト中に生じた時のシ
ンドロームを示し、第2の列は、ワードの第2ビ
ツト中に位置する単一エラーのシンドロームを示
し、最初の2つの列のシンドロームの排他的OR
である第3の列は、ワード中の最初の2つのビツ
トを含むパツケージのエラーに対するシンドロー
ム・パターンである。 第2図に示されるように、第1図のメモリに記
憶されたパリテイ・ビツトを発生するため、訂正
機能のある排他的ORエンコーデイング・トリー
12が使用される。エンコーデイング・トリー
は、前記のパリテイ・マトリクスHに従つて構成
されている。例えば、チツプ9の最初のビツトに
あるデータは、チツプ1,2,5,6,7の最初
のビツトにあるデータと、チツプ6,8の第2ビ
ツトにあるデータとを排他的OR結合したもので
ある。もし2路排他的ORゲートが使用されれ
ば、各チエツク・ビツトは、6個の排他的ORゲ
ートと、論理遅延の3レベルとを使用して発生さ
れる。 第3図において、シンドローム発生器14の8
ビツト出力は、第1図のチツプ10から読出され
た24個のデータ・ビツトとチエツク・ビツトを排
他的OR結合したものである。シンドローム・デ
コーダ16は、特公昭60−47625号公報に示され
るものと同じである。デコーダ16は37ワードの
連想記憶装置であり、単一ビツト又はパツケー
ジ・エラーに対するシンドローム・ビツト・パタ
ーン、及びエラーのないワードのシンドローム・
ビツト・パターンの各々が、異つたワード・ロケ
ーシヨンに記憶されている。 各シンドロームと共に、エラー・ビツトの位置
を示すビツト番号が2進シーケンスで記憶されて
いる。シンドローム・デコーダ16のテーブルが
質問されて一致状態を生じると、記憶されたシン
ドローム及びエラーのビツト位置を示す6ビツト
の2進数が、連想記憶装置から読出される。 シンドローム発生器14がオール・ゼロのシン
ドローム、換言すれば、アクセスされたワード中
にエラーがないことを示すシンドロームを発生し
たものと仮定する。連想記憶装置中のシンドロー
ムと共に記憶されたオール・ゼロのシンドローム
は、エラーがないことを示す6個の追加的なゼロ
のストリングである。この6個のゼロのストリン
グはデコーダ18へ送られる。デコーダ18はゲ
ート制御回路20へノーエラー信号(NE)を送
る。ゲート制御回路20は、出力レジスタ22に
記憶されたエラーのないデータ・ワードを転送す
るためのゲート信号を、ゲート21のために発生
する。ここで、シンドローム発生器は、単一ビツ
ト・エラーがビツト・ロケーシヨンiで生じたこ
とを示すシンドロームSiを発生するものと仮定す
る。単一ビツト・エラーを示す全てのシンドロー
ムは、シンドローム・デコーダ16に記憶されて
いるから、シンドロームSiの質問は、6ビツトの
2進表現になつたビツトiのロケーシヨンが、シ
ンドローム・デコーダから読出される。エラー・
ビツトのロケーシヨンを示す6ビツト2進数はデ
コーダ18へ送られる。デコーダ18は、それを
ビツト・インバータ24の24個のロケーシヨンの
1つへデコードする。ビツト・インバータ24
は、出力レジスタ22に記憶されたワードのビツ
トiを反転するために設けられる。ビツトiが反
転された後、ゲート制御回路20は、訂正された
ワードをプロセツサへ送るための信号を、ゲート
21のために発生する。もしシンドローム発生器
14がパツケージ・エラー・シンドロームSpiを
発生すると、連想記憶装置への質問は、パツケー
ジpiのロケーシヨンを、6ビツトの2進表現で発
生する。このエラー・ビツトのロケーシヨンを示
す6ビツト2進数はシンドローム・デコーダ16
から読出され、デコーダ18へ送られる。デコー
ダ18は、パツケージ・エラーを構成するビツト
i及びi+1を反転するため、上記2進数をビツ
ト・インバータ24にある24個のロケーシヨンの
2つへデコードする。ビツト・インバータ24は
2つのエラー・ビツトを反転し、正しいデータ・
ワードがプロセツサへ送られる。 ここで、シンドローム発生器14が、シンドロ
ーム・デコーダ16に記憶された36個のシンドロ
ームのいずれとも一致しないシンドロームSuを
発生したものと仮定する。その場合、シンドロー
ム・デコーダ16は、デコーダ18へ6ビツトの
不一致信号を与える。デコーダ18は訂正不能エ
ラー信号UEをゲート制御回路20へ送る。回路
20は、UE信号を受取ると、適切なプロセツサ
へUE状態が存在することを知らせる。 これまで説明した実施例は1つの例に過ぎな
い。実施例に対しては適当な変更がなされてよ
い。例えば、R及びKの異つた値に関して、他の
コードを発生することができる。次の表は、可能
なコードのパラメータを示す。 データ・ビツトの数 チエツク・ビツトの数 16 8 40 10 80 12 2R個のチエツク・ビツトに対しては、コード
は2K個のデータ・ビツトまでを有することがで
きる。ここでK=R・(R−1)・(R−2)/3
である。データ・ビツトの数が2Kよりも少ない
アプリケーシヨンでは、コードは常に短くするこ
とができる。これは正確な数のデータ・ビツトを
発生するため、Pにある列ベクトルを必要な数だ
け削除することによつてなされる。例えば、32個
のデータ・ビツト及び10個のチエツク・ビツトを
有するコードを構成するためには、40個の可能な
列のうち8個の2進列が、元のパリテイ・チエツ
ク・マトリクスから削除される。
TABLE In the parity matrix H, each column represents one bit of the code word. The vertical lines between each two columns represent the boundaries of the package or chip. That is, each two bits in a 24-bit code word are on different chips as shown in FIG. Matrix H 8
A binary 1 in each row generates one of eight check bits that are stored along with the 16 data bits, so which bits are mutually exclusive ORed by the encoder. shows. For example, starting from the top row of the matrix, data bits 1, 3, 9, 11, 12, 13, 16 in a word are
are mutually exclusive OR-combined. The matching matrix M shows the syndromes generated during decoding. If there are no errors, the syndrome is a string of eight zeros, as shown in the first column of the matrix. One or more of the syndromes is 1 if there are correctable or uncorrectable errors. Each column containing a 1 in the matching matrix M is a syndrome pattern of a single error in one of the bit positions, or a syndrome pattern of a single package error. For example, the first of the three columns between the first two vertical lines of the matching matrix M shows the syndrome when a single error occurs during the first bit of a word; Indicates the syndrome of a single error located in the second bit of the word, and is the exclusive OR of the syndromes in the first two columns.
The third column, where , is the syndrome pattern for the error in the package containing the first two bits in the word. As shown in FIG. 2, a corrective exclusive-OR encoding tree 12 is used to generate the parity bits stored in the memory of FIG. The encoding tree is constructed according to the parity matrix H described above. For example, the data in the first bit of chip 9 is an exclusive OR combination of the data in the first bits of chips 1, 2, 5, 6, and 7 and the data in the second bits of chips 6 and 8. It is something. If two-way exclusive-OR gates are used, each check bit is generated using six exclusive-OR gates and three levels of logic delay. In FIG. 3, 8 of the syndrome generator 14
The bit output is the exclusive OR combination of the 24 data bits read from chip 10 of FIG. 1 and the check bit. The syndrome decoder 16 is the same as that shown in Japanese Patent Publication No. 60-47625. Decoder 16 is a 37-word content addressable memory that stores syndrome bit patterns for single bit or package errors, and syndrome bit patterns for non-error words.
Each bit pattern is stored in a different word location. A bit number indicating the location of the error bit is stored in a binary sequence with each syndrome. When the syndrome decoder 16 table is interrogated to produce a match, a 6-bit binary number indicating the bit position of the stored syndrome and error is read from the content addressable memory. Assume that syndrome generator 14 has generated an all-zero syndrome, in other words, a syndrome indicating that there are no errors in the accessed word. An all-zero syndrome stored with a syndrome in content addressable memory is a string of six additional zeros indicating no errors. This string of six zeros is sent to decoder 18. The decoder 18 sends a no error signal (NE) to the gate control circuit 20. Gate control circuit 20 generates a gate signal for gate 21 to transfer the error-free data word stored in output register 22. Assume now that the syndrome generator generates a syndrome Si indicating that a single bit error has occurred at bit location i. Since all syndromes representing single bit errors are stored in the syndrome decoder 16, the query for syndrome Si is such that the location of bit i, resulting in a 6-bit binary representation, is read out from the syndrome decoder. Ru. error·
A 6-bit binary number indicating the location of the bit is sent to decoder 18. Decoder 18 decodes it into one of the 24 locations of bit inverter 24. bit inverter 24
is provided to invert bit i of the word stored in output register 22. After bit i has been inverted, gate control circuit 20 generates a signal for gate 21 to send the corrected word to the processor. If syndrome generator 14 generates a package error syndrome Spi, the query to the content addressable memory generates the location of package pi in a 6-bit binary representation. A 6-bit binary number indicating the location of this error bit is sent to the syndrome decoder 16.
and sent to the decoder 18. Decoder 18 decodes the binary number into two of the 24 locations in bit inverter 24 to invert bits i and i+1 which constitute the package error. Bit inverter 24 inverts the two error bits and converts them to correct data.
The word is sent to the processor. Assume now that the syndrome generator 14 has generated a syndrome Su that does not match any of the 36 syndromes stored in the syndrome decoder 16. In that case, syndrome decoder 16 provides a 6-bit mismatch signal to decoder 18. The decoder 18 sends an uncorrectable error signal UE to the gate control circuit 20. Upon receiving the UE signal, circuit 20 informs the appropriate processor that a UE condition exists. The embodiment described so far is only one example. Suitable changes may be made to the embodiments. For example, other codes can be generated for different values of R and K. The following table shows the possible code parameters. Number of Data Bits Number of Check Bits 16 8 40 10 80 12 For 2R check bits, the code can have up to 2K data bits. Here, K=R・(R-1)・(R-2)/3
It is. For applications where the number of data bits is less than 2K, the code can always be kept short. This is done by deleting the required number of column vectors in P to generate the correct number of data bits. For example, to construct a code with 32 data bits and 10 check bits, 8 binary columns out of 40 possible columns must be removed from the original parity check matrix. be done.

JP82500654A 1981-12-30 1981-12-30 Package error correction device Granted JPS58501924A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1981/001767 WO1983002345A1 (en) 1981-12-30 1981-12-30 Two bit per symbol sec/ded code

Publications (2)

Publication Number Publication Date
JPS58501924A JPS58501924A (en) 1983-11-10
JPS6132708B2 true JPS6132708B2 (en) 1986-07-29

Family

ID=22161589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP82500654A Granted JPS58501924A (en) 1981-12-30 1981-12-30 Package error correction device

Country Status (4)

Country Link
EP (1) EP0097159B1 (en)
JP (1) JPS58501924A (en)
DE (1) DE3177013D1 (en)
WO (1) WO1983002345A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0339166B1 (en) * 1988-04-29 1993-07-07 International Business Machines Corporation Extended errors correcting device having single package error correcting and double package error detecting codes
JPH02278354A (en) * 1989-04-20 1990-11-14 Nec Corp Storage device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3634821A (en) * 1970-04-13 1972-01-11 Ibm Error correcting system
US3755779A (en) * 1971-12-14 1973-08-28 Ibm Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection
USRE28923E (en) * 1971-12-27 1976-08-03 International Business Machines Corporation Error correction for two bytes in each code word in a multi-code word system
US3825893A (en) * 1973-05-29 1974-07-23 Ibm Modular distributed error detection and correction apparatus and method
US4077028A (en) * 1976-06-14 1978-02-28 Ncr Corporation Error checking and correcting device

Also Published As

Publication number Publication date
EP0097159A4 (en) 1985-07-01
EP0097159B1 (en) 1989-03-15
WO1983002345A1 (en) 1983-07-07
JPS58501924A (en) 1983-11-10
EP0097159A1 (en) 1984-01-04
DE3177013D1 (en) 1989-04-20

Similar Documents

Publication Publication Date Title
US4464753A (en) Two bit symbol SEC/DED code
US5418796A (en) Synergistic multiple bit error correction for memory of array chips
US4509172A (en) Double error correction - triple error detection code
US4402045A (en) Multi-processor computer system
US5226043A (en) Apparatus and method for data error detection and correction and address error detection in a memory system
US6453440B1 (en) System and method for detecting double-bit errors and for correcting errors due to component failures
US4862463A (en) Error correcting code for 8-bit-per-chip memory with reduced redundancy
US5745508A (en) Error-detection code
US5856987A (en) Encoder and decoder for an SEC-DED-S4ED rotational code
US5768294A (en) Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
US5251219A (en) Error detection and correction circuit
EP0147336B1 (en) Error correcting and detecting system
US5537427A (en) Modular multiple error correcting code system
US5751745A (en) Memory implemented error detection and correction code with address parity bits
US6539513B1 (en) Dual functioning symbol error correction code
US3688265A (en) Error-free decoding for failure-tolerant memories
US5450423A (en) Data error correcting/detecting system and apparatus compatible with different data bit memory packages
US10056921B2 (en) Memory system having flexible ECC scheme and method of the same
GB1458610A (en) Digital data handling systems
US5761221A (en) Memory implemented error detection and correction code using memory modules
JP2506936B2 (en) Memory error checking method
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
US6460157B1 (en) Method system and program products for error correction code conversion
JPS6132708B2 (en)
Lala A single error correcting and double error detecting coding scheme for computer memory systems