JP2506936B2 - メモリの誤り検査方式 - Google Patents
メモリの誤り検査方式Info
- Publication number
- JP2506936B2 JP2506936B2 JP63122247A JP12224788A JP2506936B2 JP 2506936 B2 JP2506936 B2 JP 2506936B2 JP 63122247 A JP63122247 A JP 63122247A JP 12224788 A JP12224788 A JP 12224788A JP 2506936 B2 JP2506936 B2 JP 2506936B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- code
- bits
- check
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明はメモリの誤りの検出方式に関し、具体的には
メモリの記号誤り方式に関する。記号とはデータ・ワー
ド中の隣接するビットの部分集合であり、パッケージ誤
り検出/訂正という言葉を使うこともある。更に具体的
には本発明はチップ当たりbビット(bは記号のサイ
ズ)で編成されたメモリに特に適用される冗長性が減少
した記号誤り検出訂正コードを用いた記号誤り検出訂正
方式に関する。
メモリの記号誤り方式に関する。記号とはデータ・ワー
ド中の隣接するビットの部分集合であり、パッケージ誤
り検出/訂正という言葉を使うこともある。更に具体的
には本発明はチップ当たりbビット(bは記号のサイ
ズ)で編成されたメモリに特に適用される冗長性が減少
した記号誤り検出訂正コードを用いた記号誤り検出訂正
方式に関する。
B.従来技術 本発明者等の米国特許第4464753号にはパッケージ誤
り訂正の一般的方式及び記号サイズ2への適用が記載さ
れている。
り訂正の一般的方式及び記号サイズ2への適用が記載さ
れている。
米国特許第3634821号にもb隣接コードが記載されて
いる。
いる。
本発明者等の米国特許第4509172号には冗長性が減少
したパッケージ誤り検出用のコードが記載されている。
しかし、この特許はパッケージ誤り訂正を示さず本発明
とは異なっている。
したパッケージ誤り検出用のコードが記載されている。
しかし、この特許はパッケージ誤り訂正を示さず本発明
とは異なっている。
パッケージ・メモリ当り4ビッとのパッケージ誤り検
出システムは米国特許第4617664号に記載されている。
しかし、この特許は2つの記号の誤り検出を示していな
い。さらに、本発明はこの特許に記載されているシステ
ムに比べて冗長性が減少している。
出システムは米国特許第4617664号に記載されている。
しかし、この特許は2つの記号の誤り検出を示していな
い。さらに、本発明はこの特許に記載されているシステ
ムに比べて冗長性が減少している。
本出願人の知る限りのその他の従来技術の米国特許は
第3755779号、第3745525号、第3623155号及び第3629834
号であるが、そのどれも本発明を示唆するものではな
い。
第3755779号、第3745525号、第3623155号及び第3629834
号であるが、そのどれも本発明を示唆するものではな
い。
米国特許第4661955号はパッケージ誤り訂正コードの
ソフト誤りを検出し削除するシステムを記載している。
ソフト誤りを検出し削除するシステムを記載している。
IBMテクニカル・ディスクロージャ・ブルテンにもパ
ッケージ誤り検出または訂正を取り扱う論文が載ってい
る。具体的に言うと、「パッケージ誤り検出能力をもつ
SEC−DECコード(SEC−DEC Codes With Package Error
Detection Ability)」、1979年11月、2356−2359頁;
「1ずつ以外の形で編成されたチップの最適化された誤
り訂正/検出(Optimized Error Correction/Detection
For Chips Organized Other Than By−1」、1982年3
月、5275−5276頁;及び「二重方式誤り訂正及び誤り検
出(Dual−Mode Error Correction and Error Detectio
n)」1985年6月、55−58頁は類似の技術を例示してい
るが、本発明を示唆するものではない。
ッケージ誤り検出または訂正を取り扱う論文が載ってい
る。具体的に言うと、「パッケージ誤り検出能力をもつ
SEC−DECコード(SEC−DEC Codes With Package Error
Detection Ability)」、1979年11月、2356−2359頁;
「1ずつ以外の形で編成されたチップの最適化された誤
り訂正/検出(Optimized Error Correction/Detection
For Chips Organized Other Than By−1」、1982年3
月、5275−5276頁;及び「二重方式誤り訂正及び誤り検
出(Dual−Mode Error Correction and Error Detectio
n)」1985年6月、55−58頁は類似の技術を例示してい
るが、本発明を示唆するものではない。
メモリなどシステムのコストは誤りの検出及び訂正に
必要なビット数に左右されるので、システムに必要な資
源を減らすとコストが節減できる。
必要なビット数に左右されるので、システムに必要な資
源を減らすとコストが節減できる。
したがって、本発明はメモリなどシステムのコストを
節減するように冗長性を減少させた改良型の誤り訂正検
出方式を得ることを目的としている。
節減するように冗長性を減少させた改良型の誤り訂正検
出方式を得ることを目的としている。
C.問題点を解決するための手段 この目的を達成するため、パッケージ当たりbビット
で構成されたメモリに対してECCコードを用いて誤り検
査を行う本発明の方式は、 (a) 記号サイズがb′(但しb′>b)、コード長
がb′・N(但しNはパッケージの数)、検査ビット数
がrであるSSC−DSDコードの一般形の検査行列Hを生成
するステップと、 (b) 上記検査行列Hを行列のN個のb′列群の各々
の最初の非零b′×b′部分行列がb′×b′単位行列
である標準形行列H(s)に変換するステップと、 (c) H(s)行列の各b′列群からe個の列(eは
一般形行列HのSSC−DSDコードから減少されるビット
数)よりなる同じ集合を除去し、ついでこのように形成
された行列からe個の全零行を除去して記号サイズが
b′−e=b、コード長が(b′−e)・N、検査ビッ
ト数がr−eである行列H(r)を生成することにより
新しいECCコードを構成するステップと、 (d) このように構成された新しいECCコードを用い
て前記メモリの誤りを検査するステップと、 を含むことを特徴とする。
で構成されたメモリに対してECCコードを用いて誤り検
査を行う本発明の方式は、 (a) 記号サイズがb′(但しb′>b)、コード長
がb′・N(但しNはパッケージの数)、検査ビット数
がrであるSSC−DSDコードの一般形の検査行列Hを生成
するステップと、 (b) 上記検査行列Hを行列のN個のb′列群の各々
の最初の非零b′×b′部分行列がb′×b′単位行列
である標準形行列H(s)に変換するステップと、 (c) H(s)行列の各b′列群からe個の列(eは
一般形行列HのSSC−DSDコードから減少されるビット
数)よりなる同じ集合を除去し、ついでこのように形成
された行列からe個の全零行を除去して記号サイズが
b′−e=b、コード長が(b′−e)・N、検査ビッ
ト数がr−eである行列H(r)を生成することにより
新しいECCコードを構成するステップと、 (d) このように構成された新しいECCコードを用い
て前記メモリの誤りを検査するステップと、 を含むことを特徴とする。
D.実施例 はじめに本実施例を概説する。本実施例は冗長性が減
少した記号またはパッケージ誤り訂正/検出コードを用
いた記号誤り訂正方式である。ここではチップ当たり4
ビットのメモリに関するコードの実施例を示し、66デー
タ・ビットと追加の14ビットで80ビットのコード・ワー
ドを形成するSSC−DSD(単一記号訂正−二重記号検出:S
ingle symbol correction−double symbol detection)
コードを示す。これは従来技術と比べて冗長ビットが2
個節約される。即ち80ビットのコード・ワード中でデー
タ・ビットヲ2個多く使用できる。
少した記号またはパッケージ誤り訂正/検出コードを用
いた記号誤り訂正方式である。ここではチップ当たり4
ビットのメモリに関するコードの実施例を示し、66デー
タ・ビットと追加の14ビットで80ビットのコード・ワー
ドを形成するSSC−DSD(単一記号訂正−二重記号検出:S
ingle symbol correction−double symbol detection)
コードを示す。これは従来技術と比べて冗長ビットが2
個節約される。即ち80ビットのコード・ワード中でデー
タ・ビットヲ2個多く使用できる。
本発明によるコードを形成するには、まず記号サイズ
がbでコードの長さがb・N(但しNはパッケージ数で
あり検査ビット数はrである)である従来技術によるパ
ッケージ当たりbビットのSSC−DSDコードに対する一般
形のH行列を作成する。次いで、この一般形のH行列を
その行列のN個のb列グループそれぞれの最初の非零b
×b部分行列がb×b単位行列となるような標準形のH
(s)行列に変換する。
がbでコードの長さがb・N(但しNはパッケージ数で
あり検査ビット数はrである)である従来技術によるパ
ッケージ当たりbビットのSSC−DSDコードに対する一般
形のH行列を作成する。次いで、この一般形のH行列を
その行列のN個のb列グループそれぞれの最初の非零b
×b部分行列がb×b単位行列となるような標準形のH
(s)行列に変換する。
新しいコードをH(s)から構成するには、H(s)
行列の各b列グループから同じe個の列の集合を除去し
て中間行列H(l)を形成する。但しeは一般形H行列
SSC−DSDコードから減少されるビット数である。最後に
今形成した行列H(l)からe個の全零の行を除去して
記号サイズがb−e、コード長が(b−e)・N、検査
ビット数がr−eに等しい行列H(r)を得る。
行列の各b列グループから同じe個の列の集合を除去し
て中間行列H(l)を形成する。但しeは一般形H行列
SSC−DSDコードから減少されるビット数である。最後に
今形成した行列H(l)からe個の全零の行を除去して
記号サイズがb−e、コード長が(b−e)・N、検査
ビット数がr−eに等しい行列H(r)を得る。
以下本実施例を詳細に説明する。
誤り訂正コード(ECC)付きで設計されたコンピュー
タ・メモリはこれまでECCコードに関してチップ当たり
1ビットで編成されてきた。この編成はECCワードのせ
いぜい1個にビットしかチップ障害で失われないことを
保証する。SEC−DED(単一誤り訂正及び二重誤り検出)
クラスのコードは通常チップ当たり1ビットのメモリ・
システム中の誤りを制御するのに使用されている。
タ・メモリはこれまでECCコードに関してチップ当たり
1ビットで編成されてきた。この編成はECCワードのせ
いぜい1個にビットしかチップ障害で失われないことを
保証する。SEC−DED(単一誤り訂正及び二重誤り検出)
クラスのコードは通常チップ当たり1ビットのメモリ・
システム中の誤りを制御するのに使用されている。
メモリ・チップの設計は高集積化及び大容量化に向か
って進んできた。4メガバイトや16メガバイトを記憶す
るメモリ・チップの設計が、すでに報告されている。4
メガビット・チップを使って帯域幅が8データ・バイト
のチップ当たり1ビットのメモリ・システムを設計する
場合、最小のシステム容量は32メガバイトになる。しか
し、多くのシステムでは32メガバイトもの記憶容量は必
要でない。その結果、システム設計者は同じメモリ・チ
ップに同じECCワードの複数ビットを記憶させざるを得
なくなる。チップ当たり複数ビットのメモリ編成のもう
一つの利点は同時に給電しなければならないチップの数
が少なくなることである。将来はメモリ・システムをチ
ップ当たりbビット(但しbは1より大)で編成するの
が普通になると思われる。
って進んできた。4メガバイトや16メガバイトを記憶す
るメモリ・チップの設計が、すでに報告されている。4
メガビット・チップを使って帯域幅が8データ・バイト
のチップ当たり1ビットのメモリ・システムを設計する
場合、最小のシステム容量は32メガバイトになる。しか
し、多くのシステムでは32メガバイトもの記憶容量は必
要でない。その結果、システム設計者は同じメモリ・チ
ップに同じECCワードの複数ビットを記憶させざるを得
なくなる。チップ当たり複数ビットのメモリ編成のもう
一つの利点は同時に給電しなければならないチップの数
が少なくなることである。将来はメモリ・システムをチ
ップ当たりbビット(但しbは1より大)で編成するの
が普通になると思われる。
チップ当たりbビットのメモリ編成では、チップの障
害はデータ・ワード中に記号誤り、即ち1乃至b個の誤
りから成る誤りパターンを生成することになる。従来の
SSC−DSDコードでは、記号誤りを効果的に制御できな
い。また、bが2より大きい場合、記号誤りがSSC−DSD
コードによって誤って訂正されることがあり得る。即
ち、データの保全性を喪失する可能性がある。
害はデータ・ワード中に記号誤り、即ち1乃至b個の誤
りから成る誤りパターンを生成することになる。従来の
SSC−DSDコードでは、記号誤りを効果的に制御できな
い。また、bが2より大きい場合、記号誤りがSSC−DSD
コードによって誤って訂正されることがあり得る。即
ち、データの保全性を喪失する可能性がある。
チップ当たりbビットのメモリ設計に適したECCがSSC
−DSDクラスのコードである。このクラスのコードはECC
ワード中のすべての単一記号誤りを訂正し、その中のす
べての二重記号誤りを検出することができる。但し記号
誤りはチップ障害から生じるbビットの誤りパターンで
ある。SSC−DSDコードは任意の単一チップ障害から生じ
るすべての誤りを訂正し、2つのチップの障害から生じ
るすべての誤りを検出することができる。以前から知ら
れているコードより一層効率のよいSSC−DSDを構成する
技法をここに記載する。即ち、新しいコードでは、同じ
量のデータ・ビットに必要な検査ビットは少なくなる。
言い換えれば新しいコードは、同じ数の検査ビットでこ
れまでのSSC−DSDコードに比べてより多くのデータ・ビ
ットを保護することができる。たとえば、これまでの64
データ・ビットでb=4の場合のSSC−DSDコードでは、
16個の検査ビットが必要である。それに対応する本発明
の新しいコードでは、検査ビットが14個しか必要でな
い。別の例として、b=4ビット及び20検査ビットの場
合、これまでの最も効率のよいSSC−DSDコードは2036デ
ータ・ビットを保護できるか、本発明による新しいコー
ドは19個の検査ビット4081データ・ビットを保護でき
る。
−DSDクラスのコードである。このクラスのコードはECC
ワード中のすべての単一記号誤りを訂正し、その中のす
べての二重記号誤りを検出することができる。但し記号
誤りはチップ障害から生じるbビットの誤りパターンで
ある。SSC−DSDコードは任意の単一チップ障害から生じ
るすべての誤りを訂正し、2つのチップの障害から生じ
るすべての誤りを検出することができる。以前から知ら
れているコードより一層効率のよいSSC−DSDを構成する
技法をここに記載する。即ち、新しいコードでは、同じ
量のデータ・ビットに必要な検査ビットは少なくなる。
言い換えれば新しいコードは、同じ数の検査ビットでこ
れまでのSSC−DSDコードに比べてより多くのデータ・ビ
ットを保護することができる。たとえば、これまでの64
データ・ビットでb=4の場合のSSC−DSDコードでは、
16個の検査ビットが必要である。それに対応する本発明
の新しいコードでは、検査ビットが14個しか必要でな
い。別の例として、b=4ビット及び20検査ビットの場
合、これまでの最も効率のよいSSC−DSDコードは2036デ
ータ・ビットを保護できるか、本発明による新しいコー
ドは19個の検査ビット4081データ・ビットを保護でき
る。
SSC−DSDコードのコード・ワードはN個のbビット記
号、即ちb・Nビットから構成される。コード・ワード
をC=(C1,C2,・・・,CN)と置く。但しCの各成分C
(1≦i≦N)はbビット・パターンの記号である。コ
ード・ワードは以下のように表現できる1組の線形方程
式を満足しなければならない。
号、即ちb・Nビットから構成される。コード・ワード
をC=(C1,C2,・・・,CN)と置く。但しCの各成分C
(1≦i≦N)はbビット・パターンの記号である。コ
ード・ワードは以下のように表現できる1組の線形方程
式を満足しなければならない。
H・Ct=0mod2 (1) 但しCtはCの転置行列であり、行列H、即ちコードの
パリティ検査行列はb・N個の列をもつ2値行列であ
る。行列Hの列はN個のb列グループに分割できる。H
の階数がrである場合、コードはr個の検査ビット及び
b・N−r個のデータ・ビットをもつ。そのコードは通
常(b・N,b・H−r)コードと表わされる。但しb・
Nはコード長で、b・N−rはデータ・ビット数であ
る。
パリティ検査行列はb・N個の列をもつ2値行列であ
る。行列Hの列はN個のb列グループに分割できる。H
の階数がrである場合、コードはr個の検査ビット及び
b・N−r個のデータ・ビットをもつ。そのコードは通
常(b・N,b・H−r)コードと表わされる。但しb・
Nはコード長で、b・N−rはデータ・ビット数であ
る。
ベクトルの記号重みとはベクトル中の非零記号の数で
ある。2つのベクトルの記号間隔とは2つの異なるベク
トルにおける記号位置の数である。コードの最小記号間
隔とはそのコードの任意の2つのコード・ワード間の記
号間隔の最小値である。コードの最小記号間隔が4以上
である場合、そのコードはSSC−DSDコードである。
ある。2つのベクトルの記号間隔とは2つの異なるベク
トルにおける記号位置の数である。コードの最小記号間
隔とはそのコードの任意の2つのコード・ワード間の記
号間隔の最小値である。コードの最小記号間隔が4以上
である場合、そのコードはSSC−DSDコードである。
従来技術に基づいて構成された周知のコードのパリテ
ィ検査行列は以下に示す一般式で表わされる。
ィ検査行列は以下に示す一般式で表わされる。
|T11T12・・・TIN 但しb×bの部分行列Tijはそれぞれ全零の行列であ
るかまたは次数bの原始多項式のコンパニオン行列の累
乗である。たとえば、原始多項式1+x+x4のコンパニ
オン行列は次のようになる。
るかまたは次数bの原始多項式のコンパニオン行列の累
乗である。たとえば、原始多項式1+x+x4のコンパニ
オン行列は次のようになる。
このコンパニオン行列の15種の異なる累乗のすべてを
第1表に示してある。
第1表に示してある。
T0は単位行列であり、T*は全零の行列を表わすのに
使用される。また、Tの逆行列はT-1=T14及びT-i=T
15-iである。
使用される。また、Tの逆行列はT-1=T14及びT-i=T
15-iである。
第2表の(A)は記号サイズがb=4である(44,3
2)SSC−DSDコードについて第1表のTを用いて表わし
た一般性のパリティ検査行列を示す。第2表の(B)は
後で説明する標準形のパリティ検査行列を示す。
2)SSC−DSDコードについて第1表のTを用いて表わし
た一般性のパリティ検査行列を示す。第2表の(B)は
後で説明する標準形のパリティ検査行列を示す。
メモリの特定の位置から読み取ったワードWは同じ位
置に元々書き込まれていたコード・ワードCと同じでな
いことがある。これは物理的な障害から誤りが生じうる
からである。WとCの差を誤りパターンEと定義する。
W=(W1,W2,…,WN)及びE=(E1,E2,…,EN)と置く
と、W=C+E及びEi=Wi−Ciである。但し1≦i≦N
である。(1)から次式が得られる。
置に元々書き込まれていたコード・ワードCと同じでな
いことがある。これは物理的な障害から誤りが生じうる
からである。WとCの差を誤りパターンEと定義する。
W=(W1,W2,…,WN)及びE=(E1,E2,…,EN)と置く
と、W=C+E及びEi=Wi−Ciである。但し1≦i≦N
である。(1)から次式が得られる。
S=H・Wt =H・(Ct+Et) =H・Et (3) ベクトルSは誤りシンドロームと呼ばれる。ベクトル
Sはパリティ検査行列Hとメモリから読み取ったワード
Wから計算され、メモリに記憶された元のコード・ワー
ドCから独立している。Wに誤りがない場合、即ちE=
0の場合、Sは全零のベクトルである。他方、Sが全零
のベクトルでない場合、Wの誤りが検出される。この場
合の誤り検出プロセスはまず誤りパターンEを決定し、
次いでWとEのビットごとに排他的論理和(XOR)演
算、即ちC=W−Eによって元のコード・ワードCを回
復することである。
Sはパリティ検査行列Hとメモリから読み取ったワード
Wから計算され、メモリに記憶された元のコード・ワー
ドCから独立している。Wに誤りがない場合、即ちE=
0の場合、Sは全零のベクトルである。他方、Sが全零
のベクトルでない場合、Wの誤りが検出される。この場
合の誤り検出プロセスはまず誤りパターンEを決定し、
次いでWとEのビットごとに排他的論理和(XOR)演
算、即ちC=W−Eによって元のコード・ワードCを回
復することである。
記号サイズがbでコード長がb・NのSSC−DSDコード
のパリティ検査行列はその行列のN個のb列グループの
各々の最初の非零b×b部分行列がb×bの単位行列で
ある場合、標準形であると言う。パリティ検査行列Hが
まず上記の式(2)の一般形で生成される場合、以下に
示すアルゴリズムを用いてその行列を標準形に変形する
ことができる。
のパリティ検査行列はその行列のN個のb列グループの
各々の最初の非零b×b部分行列がb×bの単位行列で
ある場合、標準形であると言う。パリティ検査行列Hが
まず上記の式(2)の一般形で生成される場合、以下に
示すアルゴリズムを用いてその行列を標準形に変形する
ことができる。
1.j=0と置く。
2.j=j+1と置く。j>Nならばアルゴリズムを終了
する。
する。
3.Tijが非零行列になる最小の整数i(但し1≦i≦
R)をkと置く。k≦i≦RについてTijをTij・
(Tki)-1mod2で置換する。但し(T)-1は行列Tの逆
行列を示す。
R)をkと置く。k≦i≦RについてTijをTij・
(Tki)-1mod2で置換する。但し(T)-1は行列Tの逆
行列を示す。
4.ステップ2に戻る。
このアルゴリズムを適用すると、第2表(A)のパリ
ティ行列を第2表(B)に示した標準形に変形すること
ができる。元のパリティ検査行列がSSC−DSDコードを定
義する場合、変形された標準形の行列も同じ数の検査ビ
ットをもつSSC−DSDコードを定義する。
ティ行列を第2表(B)に示した標準形に変形すること
ができる。元のパリティ検査行列がSSC−DSDコードを定
義する場合、変形された標準形の行列も同じ数の検査ビ
ットをもつSSC−DSDコードを定義する。
新しいコードが既知のコードから構成される。記号サ
イズがb′の既知の(b′・N,b′。N−r)SSC−DSD
コードのパリティ検査行列をHと置く。このコードの検
査ビットの数はrに等しい。記号サイズが(b′−e)
=bの新しいSSC−DSDコードを構成する手順は以下の通
りである。
イズがb′の既知の(b′・N,b′。N−r)SSC−DSD
コードのパリティ検査行列をHと置く。このコードの検
査ビットの数はrに等しい。記号サイズが(b′−e)
=bの新しいSSC−DSDコードを構成する手順は以下の通
りである。
1.行列Hを標準形の行列H(s)に変形する。
2.標準形の行列H(s)の各b′列グループから同じe
個の列の集合を一貫して除去する。次いで、作成された
行列からe個の全零行を除去する。得られる最終行列を
H(r)と置く。H(r)は記号のサイズが(b′−
e)=b、コード長が(b′−e)・NのSSC−DSDコー
ドのパリティ検査行列である。検査ビットの数はr−e
に等しい。一般に、eは1以上である。
個の列の集合を一貫して除去する。次いで、作成された
行列からe個の全零行を除去する。得られる最終行列を
H(r)と置く。H(r)は記号のサイズが(b′−
e)=b、コード長が(b′−e)・NのSSC−DSDコー
ドのパリティ検査行列である。検査ビットの数はr−e
に等しい。一般に、eは1以上である。
第2表(B)の行列の11個の列グループの各々の4番
目の列を除去し、且つその行列の4番目の行を除去する
と、その行列は第3表に示す形になる。
目の列を除去し、且つその行列の4番目の行を除去する
と、その行列は第3表に示す形になる。
この新しい行列は記号サイズがb=3の(33,22)SSC
−DSDコードを定義する。
−DSDコードを定義する。
第4表にここで説明した手法から構成できるいくつか
の新しいより効率的なSSC−DSDコードのパラメータを示
す。
の新しいより効率的なSSC−DSDコードのパラメータを示
す。
メモリ・システムをチップ当たり4ビットで構成し、
SSC−DSDコードを使って66データ・ビットを保護する。
以前から知られているコードでは、16個の検査ビットが
必要である。第4表から14個の検査ビットを備えた長さ
136ビットの新しいコードが構成できる。このコードは6
6データ・ビットを保護するように短縮でき、その結
果、従来の最良のコードに比べて検査ビットが2個節約
された(80,66)コードが作成できる。また、80ビット
・コード・ワードの場合、データ・ビットが2個多く使
用できる。b=4である(80,66)SSC−DSDコードの構
成について以下に説明する。
SSC−DSDコードを使って66データ・ビットを保護する。
以前から知られているコードでは、16個の検査ビットが
必要である。第4表から14個の検査ビットを備えた長さ
136ビットの新しいコードが構成できる。このコードは6
6データ・ビットを保護するように短縮でき、その結
果、従来の最良のコードに比べて検査ビットが2個節約
された(80,66)コードが作成できる。また、80ビット
・コード・ワードの場合、データ・ビットが2個多く使
用できる。b=4である(80,66)SSC−DSDコードの構
成について以下に説明する。
原始多項式1+x2+x5をそのコンパニオン行列と一緒
に使用する。
に使用する。
b′=5、R=3、N=34と置く。記号サイズが5の
SSC−DSDコードを定義するように式(2)のパリティ検
査行列を設計することができる。パリティ検査行列の項
目はTの累乗または5×5の全零の行列である。34個の
列グループのうちから20個だけを選んで以下に示す行列
を形成する。
SSC−DSDコードを定義するように式(2)のパリティ検
査行列を設計することができる。パリティ検査行列の項
目はTの累乗または5×5の全零の行列である。34個の
列グループのうちから20個だけを選んで以下に示す行列
を形成する。
以下に示す規則に従って上記の行列のマッピングから
得られた15×100の2値行列をHと置く。即ち5×5の
全零の行列に*をマップし、Tiにiをマップした。但し
0≦i≦30でTは式(4)の行列である。行列Hはb′
=5である(100,85)SSC−DSDコードを定義する。次
に、Hの4番目の行を削除しまたHの5番目ごとの列も
削除する。その結果得られる行列H2を第5表に示す。こ
の14×80行列がb=4である(80,66)SSC−DSDコード
のパリティ検査行列である。
得られた15×100の2値行列をHと置く。即ち5×5の
全零の行列に*をマップし、Tiにiをマップした。但し
0≦i≦30でTは式(4)の行列である。行列Hはb′
=5である(100,85)SSC−DSDコードを定義する。次
に、Hの4番目の行を削除しまたHの5番目ごとの列も
削除する。その結果得られる行列H2を第5表に示す。こ
の14×80行列がb=4である(80,66)SSC−DSDコード
のパリティ検査行列である。
メモリ・システム設計では、バイト・パリティを迅速
に検査することが望ましい。この場合には、ECC検査ビ
ットの生成の際の中間結果としていくつかのバイト・パ
リティを含めることができることが望ましい。データを
転送するためにバイト・パリティを生成する必要はな
い。このために第5表の行を変更して第6表行列H1を得
る。行列H1はECC検査ビットを生成するために使用す
る。
に検査することが望ましい。この場合には、ECC検査ビ
ットの生成の際の中間結果としていくつかのバイト・パ
リティを含めることができることが望ましい。データを
転送するためにバイト・パリティを生成する必要はな
い。このために第5表の行を変更して第6表行列H1を得
る。行列H1はECC検査ビットを生成するために使用す
る。
行列H1に関して、H1の対応する14列が正則行列を形成
する限り、即ち、これらの14列が線形独立である限り、
14ビット位置の任意の集合を検査ビットの位置に指定す
ることができる。位置1−12、21及び30をECC検査ビッ
ト位置に指定する。最初の4つのECC検査ビットはそれ
ぞれ2つのデータ・バイトのパリティから得ることがで
きる(H1の垂直線がデータ・バイトの境界線を定め
る)。たとえば、ECCビット4はビット40−48のバイト
・パリティとビット73−80のバイト・パリティのXORで
ある。
する限り、即ち、これらの14列が線形独立である限り、
14ビット位置の任意の集合を検査ビットの位置に指定す
ることができる。位置1−12、21及び30をECC検査ビッ
ト位置に指定する。最初の4つのECC検査ビットはそれ
ぞれ2つのデータ・バイトのパリティから得ることがで
きる(H1の垂直線がデータ・バイトの境界線を定め
る)。たとえば、ECCビット4はビット40−48のバイト
・パリティとビット73−80のバイト・パリティのXORで
ある。
行列H1は14個のECC検査ビットを生成するための規則
をもたらす。式(1)からH1の各行中の1によって示さ
れる位置にあるコード・ワードのXORが0に等しくなけ
ればならない。即ち、H1の各行がコード・ワードが満足
しなければならない14個の方程式を定義する。ECC検査
ビットはこれらの方程式から導かれる。たとえば、検査
ビット5は位置15、17、19、20、23、26−28、35、38−
40、43、46、48、51、52、55、56、58、61、66、68、7
2、78及び79にあるデータ・ビットのXORである。
をもたらす。式(1)からH1の各行中の1によって示さ
れる位置にあるコード・ワードのXORが0に等しくなけ
ればならない。即ち、H1の各行がコード・ワードが満足
しなければならない14個の方程式を定義する。ECC検査
ビットはこれらの方程式から導かれる。たとえば、検査
ビット5は位置15、17、19、20、23、26−28、35、38−
40、43、46、48、51、52、55、56、58、61、66、68、7
2、78及び79にあるデータ・ビットのXORである。
メモリから読み取ったコード・ワードのシンドローム
はメモリから直接読み取ったECCビットとメモリから読
み取ったデータから生成されたECCビットのXORである。
すべての単一チップの誤りシンドロームが非零であり、
すべての二重チップの誤りシンドロームが訂正可能など
の誤りシンドロームとも同じでないことが確認できる。
はメモリから直接読み取ったECCビットとメモリから読
み取ったデータから生成されたECCビットのXORである。
すべての単一チップの誤りシンドロームが非零であり、
すべての二重チップの誤りシンドロームが訂正可能など
の誤りシンドロームとも同じでないことが確認できる。
14個のシンドローム・ビットが全零の場合、誤りはな
いと考えられる。シンドロームが非零の場合、コード・
ワードに誤りがある。この場合、誤りのチップ位置とビ
ット位置を識別しなければならない。すべての二重チッ
プ誤りと一部の複数チップ誤りはUE(訂正不能誤り)と
して検出される。以下に示す説明では、シンドロームの
最初の4ビットをS1と呼び、シンドロームの最後の10ビ
ットをS2と呼ぶ。
いと考えられる。シンドロームが非零の場合、コード・
ワードに誤りがある。この場合、誤りのチップ位置とビ
ット位置を識別しなければならない。すべての二重チッ
プ誤りと一部の複数チップ誤りはUE(訂正不能誤り)と
して検出される。以下に示す説明では、シンドロームの
最初の4ビットをS1と呼び、シンドロームの最後の10ビ
ットをS2と呼ぶ。
誤り訂正のシンドロームを処理について、例として第
5表の行列を使用する。この行列を各チップに1つずつ
20個の4列部分行列に分割する。各部分行列は4×4の
単位行列と10×4の行列H(i)(i=1,2,…,20)か
ら構成される。チップiに誤りがあるかどうかを検査す
るには、H(i)にS1を乗じその結果得られる10ビット
・パターンをS2と比較する。完全に一致した場合、チッ
プiに誤りがあり、S1はチップi内の4ビット誤りパタ
ーンでる。一致しない場合、チップiには誤りがない。
第7表にこの実施例のチップへのコード・ワード・ビッ
ト位置の割当てを示す。
5表の行列を使用する。この行列を各チップに1つずつ
20個の4列部分行列に分割する。各部分行列は4×4の
単位行列と10×4の行列H(i)(i=1,2,…,20)か
ら構成される。チップiに誤りがあるかどうかを検査す
るには、H(i)にS1を乗じその結果得られる10ビット
・パターンをS2と比較する。完全に一致した場合、チッ
プiに誤りがあり、S1はチップi内の4ビット誤りパタ
ーンでる。一致しない場合、チップiには誤りがない。
第7表にこの実施例のチップへのコード・ワード・ビッ
ト位置の割当てを示す。
第1図の構成図はi=1及び4−20の場合にチップi
の誤りを識別する論理回路を示している。第2図はチッ
プ2と3用の論理回路を示している。シンドロームが非
零であり、20個のチップのどれにも誤り標識がない場
合、訂正不能な誤りを示すUE信号がオンになる。
の誤りを識別する論理回路を示している。第2図はチッ
プ2と3用の論理回路を示している。シンドロームが非
零であり、20個のチップのどれにも誤り標識がない場
合、訂正不能な誤りを示すUE信号がオンになる。
S1とH(i)の乗算はXORツリーで実施できる。第3
図にi=20の場合の乗算の例を示す。H(i=20)を第
8表に示す。1乃至10の個々の出力ビットをXORブロッ
クの下端に示し、1乃至4個の入力ビットをその上端に
示す。
図にi=20の場合の乗算の例を示す。H(i=20)を第
8表に示す。1乃至10の個々の出力ビットをXORブロッ
クの下端に示し、1乃至4個の入力ビットをその上端に
示す。
E.発明の効果 以上説明したように、本発明によればパッケージ当た
りbビットで構成されたメモリに対してECCコードを用
いて誤り検査を行うにあたり、 (a) 一般形の検査行列Hを生成し、 (b) これを標準形の行列H(s)に変換し、 (c) H(s)から検査ビット数rがr−eに減った
行列を生成し、これに基づいて新しいECCコードを構成
し、 (d) この新しいECCコードを用いてパッケージ当た
りbビットで構成されたメモリに対して誤り検査を行う ようにしたので、従来技術と比べて冗長ビットがe個節
約出来る。即ち同数のコード・ワード中でデータ・ビッ
トをe個多く使用できる。即ち、本発明の方式によれ
ば、同じ量のデータ・ビットに必要な検査ビットは少な
くなる。言い換えれば本方式によるコードは、同じ数の
検査ビットでこれまでのSSC−DSDコードに比べてより多
くのデータ・ビットを保護することができる。たとえ
ば、これまでの64データ・ビットでb=4のSSC−DSDコ
ードでは、16個の検査ビットが必要であったのに対し、
本方式によれば、検査ビットが14個しか必要でない。別
の例として、b=4ビット及び20検査ビットの場合、こ
れまでの最も効率のよいSSC−DSDコードは2036データ・
ビットを保護できるが、本方式によれば19個の検査ビッ
トで4081データ・ビットを保護できる。
りbビットで構成されたメモリに対してECCコードを用
いて誤り検査を行うにあたり、 (a) 一般形の検査行列Hを生成し、 (b) これを標準形の行列H(s)に変換し、 (c) H(s)から検査ビット数rがr−eに減った
行列を生成し、これに基づいて新しいECCコードを構成
し、 (d) この新しいECCコードを用いてパッケージ当た
りbビットで構成されたメモリに対して誤り検査を行う ようにしたので、従来技術と比べて冗長ビットがe個節
約出来る。即ち同数のコード・ワード中でデータ・ビッ
トをe個多く使用できる。即ち、本発明の方式によれ
ば、同じ量のデータ・ビットに必要な検査ビットは少な
くなる。言い換えれば本方式によるコードは、同じ数の
検査ビットでこれまでのSSC−DSDコードに比べてより多
くのデータ・ビットを保護することができる。たとえ
ば、これまでの64データ・ビットでb=4のSSC−DSDコ
ードでは、16個の検査ビットが必要であったのに対し、
本方式によれば、検査ビットが14個しか必要でない。別
の例として、b=4ビット及び20検査ビットの場合、こ
れまでの最も効率のよいSSC−DSDコードは2036データ・
ビットを保護できるが、本方式によれば19個の検査ビッ
トで4081データ・ビットを保護できる。
第1図は第9表に示すように編成された第5表及び第6
表に示す本発明の実施例に基づくシステム中のあるコー
ドについて誤り信号を生成し訂正不能な誤り(UE)を識
別するi記号(i=1または4乃至20)用の回路の部分
構成図である。 第2図は本発明に基づく第1図に示したi信号(i=2
及び3)用の回路の残りの部分の構成図である。 第3図は本発明に基づく、第10表に示した行列と第1図
に示したS1信号の乗算を実行するのに必要な論理回路で
ある。
表に示す本発明の実施例に基づくシステム中のあるコー
ドについて誤り信号を生成し訂正不能な誤り(UE)を識
別するi記号(i=1または4乃至20)用の回路の部分
構成図である。 第2図は本発明に基づく第1図に示したi信号(i=2
及び3)用の回路の残りの部分の構成図である。 第3図は本発明に基づく、第10表に示した行列と第1図
に示したS1信号の乗算を実行するのに必要な論理回路で
ある。
Claims (1)
- 【請求項1】パッケージ当たりbビットで構成されたメ
モリに対してECCコードを用いて誤り検査を行う方式で
あって、 (a) 記号サイズがb′(但しb′>b)、コード長
がb′・N(但しNはパッケージの数)、検査ビット数
がrであるSSC−DSDコードの一般形の検査行列Hを生成
するステップと、 (b) 上記検査行列Hを行列のN個のb′列群の各々
の最初の非零b′×b′部分行列がb′×b′単位行列
である標準形行列H(s)に変換するステップと、 (c) H(s)行列の各b′列群からe個の列(eは
一般形行列HのSSC−DSDコードから減少されるビット
数)よりなる同じ集合を除去し、ついでこのように形成
された行列からe個の全零行を除去して記号サイズが
b′−e=b、コード長が(b′−e)・N、検査ビッ
ト数がr−eである行列H(r)を生成することにより
新しいECCコードを構成するステップと、 (d) このように構成された新しいECCコードを用い
て前記メモリの誤りを検査するステップと、 を含むメモリの誤り検査方式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7539087A | 1987-07-20 | 1987-07-20 | |
US75390 | 1987-07-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6436337A JPS6436337A (en) | 1989-02-07 |
JP2506936B2 true JP2506936B2 (ja) | 1996-06-12 |
Family
ID=22125404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63122247A Expired - Lifetime JP2506936B2 (ja) | 1987-07-20 | 1988-05-20 | メモリの誤り検査方式 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0300139B1 (ja) |
JP (1) | JP2506936B2 (ja) |
DE (1) | DE3882175T2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4861628A (en) * | 1987-10-14 | 1989-08-29 | Exxon Research And Engineering Company | Thin film composite membrane prepared by suspension deposition |
EP0386506A3 (en) * | 1989-03-06 | 1991-09-25 | International Business Machines Corporation | Low cost symbol error correction coding and decoding |
EP0600137A1 (en) * | 1992-11-30 | 1994-06-08 | International Business Machines Corporation | Method and apparatus for correcting errors in a memory |
EP0629051B1 (en) * | 1993-06-10 | 1998-04-01 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Digital information error correcting apparatus for correcting single errors(sec),detecting double errors(ded)and single byte multiple errors(sbd),and the correction of an odd number of single byte errors(odd sbc). |
SG76501A1 (en) * | 1996-02-28 | 2000-11-21 | Sun Microsystems Inc | Error detection and correction method and apparatus for computer memory |
US6370669B1 (en) | 1998-01-23 | 2002-04-09 | Hughes Electronics Corporation | Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes |
US6430722B1 (en) | 1998-01-23 | 2002-08-06 | Hughes Electronics Corporation | Forward error correction scheme for data channels using universal turbo codes |
US7536624B2 (en) | 2002-01-03 | 2009-05-19 | The Directv Group, Inc. | Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes |
JP3453122B2 (ja) | 1998-08-17 | 2003-10-06 | ヒューズ・エレクトロニクス・コーポレーション | 最適性能に近いターボコードインターリーバ |
WO2000013323A1 (en) | 1998-08-27 | 2000-03-09 | Hughes Electronics Corporation | Method for a general turbo code trellis termination |
US6543013B1 (en) | 1999-04-14 | 2003-04-01 | Nortel Networks Limited | Intra-row permutation for turbo code |
US6691278B1 (en) * | 1999-10-13 | 2004-02-10 | Maxtor Corporation | Detecting errors in coded bit strings |
CN113595560A (zh) * | 2021-06-29 | 2021-11-02 | 浪潮电子信息产业股份有限公司 | 一种信息纠错方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623155A (en) * | 1969-12-24 | 1971-11-23 | Ibm | Optimum apparatus and method for check bit generation and error detection, location and correction |
US3745525A (en) * | 1971-12-15 | 1973-07-10 | Ibm | Error correcting system |
JPS5848939B2 (ja) * | 1977-12-23 | 1983-11-01 | 富士通株式会社 | エラ−訂正処理装置 |
US4509172A (en) * | 1982-09-28 | 1985-04-02 | International Business Machines Corporation | Double error correction - triple error detection code |
US4651321A (en) * | 1983-08-29 | 1987-03-17 | Amdahl Corporation | Apparatus for reducing storage necessary for error correction and detection in data processing machines |
US4617664A (en) * | 1984-06-29 | 1986-10-14 | International Business Machines Corporation | Error correction for multiple bit output chips |
-
1988
- 1988-04-19 EP EP88106199A patent/EP0300139B1/en not_active Expired - Lifetime
- 1988-04-19 DE DE19883882175 patent/DE3882175T2/de not_active Expired - Fee Related
- 1988-05-20 JP JP63122247A patent/JP2506936B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE3882175D1 (de) | 1993-08-12 |
DE3882175T2 (de) | 1994-01-27 |
EP0300139B1 (en) | 1993-07-07 |
EP0300139A3 (en) | 1990-05-02 |
EP0300139A2 (en) | 1989-01-25 |
JPS6436337A (en) | 1989-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4862463A (en) | Error correcting code for 8-bit-per-chip memory with reduced redundancy | |
US4464753A (en) | Two bit symbol SEC/DED code | |
US5418796A (en) | Synergistic multiple bit error correction for memory of array chips | |
US5226043A (en) | Apparatus and method for data error detection and correction and address error detection in a memory system | |
US4402045A (en) | Multi-processor computer system | |
EP0052216B1 (en) | Data storage systems | |
US4740968A (en) | ECC circuit failure detector/quick word verifier | |
JP2506936B2 (ja) | メモリの誤り検査方式 | |
JPS5960654A (ja) | エラ−訂正システム | |
US6457154B1 (en) | Detecting address faults in an ECC-protected memory | |
JPS59197940A (ja) | 誤り検出・補正メモリ | |
JPH02278921A (ja) | 2進データの符号化及び復号のための方法及び復号装置 | |
US5537423A (en) | Modular multiple error correcting code system | |
JPS6349245B2 (ja) | ||
US5450423A (en) | Data error correcting/detecting system and apparatus compatible with different data bit memory packages | |
US6539513B1 (en) | Dual functioning symbol error correction code | |
US7721177B2 (en) | Device and method for determining a position of a bit error in a bit sequence | |
US6519736B1 (en) | Generating special uncorrectable error codes for failure isolation | |
US5459740A (en) | Method and apparatus for implementing a triple error detection and double error correction code | |
US5761221A (en) | Memory implemented error detection and correction code using memory modules | |
US7093183B2 (en) | Symbol level error correction codes which protect against memory chip and bus line failures | |
US6463563B1 (en) | Single symbol correction double symbol detection code employing a modular H-matrix | |
KR101562606B1 (ko) | 이진 데이터의 오류 정정 및 오류 검출 방법 | |
US6460157B1 (en) | Method system and program products for error correction code conversion | |
Chen | Error-correcting codes for byte-organized memory systems |