JPH0328093B2 - - Google Patents
Info
- Publication number
- JPH0328093B2 JPH0328093B2 JP61301932A JP30193286A JPH0328093B2 JP H0328093 B2 JPH0328093 B2 JP H0328093B2 JP 61301932 A JP61301932 A JP 61301932A JP 30193286 A JP30193286 A JP 30193286A JP H0328093 B2 JPH0328093 B2 JP H0328093B2
- Authority
- JP
- Japan
- Prior art keywords
- bytes
- crc
- byte
- error correction
- check bytes
- 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
- 238000012937 correction Methods 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 12
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 208000011580 syndromic disease Diseases 0.000 description 22
- 238000001514 detection method Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 6
- 101000651958 Crotalus durissus terrificus Snaclec crotocetin-1 Proteins 0.000 description 5
- 101100258328 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-2 gene Proteins 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 206010009944 Colon cancer Diseases 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
【発明の詳細な説明】
A 産業上の利用分野
本発明は、2進データの可変長レコードの末尾
に付加された誤り検出検査バイト、特に巡回冗長
検査即ちCRC(cyclic redundancy check)バイ
トの設計、計算および生成の改良に関する。
に付加された誤り検出検査バイト、特に巡回冗長
検査即ちCRC(cyclic redundancy check)バイ
トの設計、計算および生成の改良に関する。
B 従来技術
巡回冗長検査(CRC)は、2進データの可変
長レコードを伝送、検索または記憶する際の誤り
検出に極めて効率的であり、かつ充分に適合して
いる。CRCは、冗長度の大きさがほとんど無視
できる態様でほぼすべての誤りパターンを検出す
ることができる。
長レコードを伝送、検索または記憶する際の誤り
検出に極めて効率的であり、かつ充分に適合して
いる。CRCは、冗長度の大きさがほとんど無視
できる態様でほぼすべての誤りパターンを検出す
ることができる。
CRCは周知である。たとえば、W.W.ピーター
ソン(Peterson)とD.T.ブラウン(Brown)の
「誤り検出巡回コード(Cyclic Codes for Error
Detection)」、IRE概要(Proceeding of the
IRE)、pp.228−235、1961年1月、アーヴインド
M.パテル(Arvind M.Patel)の春季合同コンピ
ユータ会議、1971年、を参照のこと。
ソン(Peterson)とD.T.ブラウン(Brown)の
「誤り検出巡回コード(Cyclic Codes for Error
Detection)」、IRE概要(Proceeding of the
IRE)、pp.228−235、1961年1月、アーヴインド
M.パテル(Arvind M.Patel)の春季合同コンピ
ユータ会議、1971年、を参照のこと。
C 発明が解決しようとする問題点
線形フイードバツク・レジスタは、CRCバイ
トを使つて誤り検出用可変長2進データを符号化
および復号するのに必要な、まず唯一のハードウ
エアである。CRCバイトは、GF(2)多項式除算回
路を使つて生成される。かかる回路では、2進情
報が送られてくると、その情報が、フイードバツ
ク・シフト・レジスタに逐次シフトされる。
CRCバイトが、2進データの後に送られてきて、
受信側で順番に受け取られる。生成されたCRC
バイトが、次いで、受け取られたCRCバイトと
比較されて、受け取られたメツセージに誤りがあ
れば検出する。この受け取られたメツセージは、
フイードバツク・シフト・レジスタによつて、同
様に処理される。CRCバイトの桁数によつて、
コードの検査能力が決まる。その数は通常、シフ
ト・レジスタの符号化および復号のステージ数に
等しい。
トを使つて誤り検出用可変長2進データを符号化
および復号するのに必要な、まず唯一のハードウ
エアである。CRCバイトは、GF(2)多項式除算回
路を使つて生成される。かかる回路では、2進情
報が送られてくると、その情報が、フイードバツ
ク・シフト・レジスタに逐次シフトされる。
CRCバイトが、2進データの後に送られてきて、
受信側で順番に受け取られる。生成されたCRC
バイトが、次いで、受け取られたCRCバイトと
比較されて、受け取られたメツセージに誤りがあ
れば検出する。この受け取られたメツセージは、
フイードバツク・シフト・レジスタによつて、同
様に処理される。CRCバイトの桁数によつて、
コードの検査能力が決まる。その数は通常、シフ
ト・レジスタの符号化および復号のステージ数に
等しい。
D 問題を解決するための手段
本発明の目的は、ECC訂正の後にレコード全
体のデータ保全性検査のための可変長レコードの
末尾に付加される、複数対の誤り検出検査バイト
の設計、計算および作成の改良を提供することで
ある。誤り検出検査バイトはそれぞれ、関連する
検査バイトを計算するのに使われるのと同じ、8
次の原始多項式から成る随伴T行列の異なるべき
乗を使つて計算される。この随伴T行列を使用す
ると、妥当な大きさのガロア域即ちガロア拡大体
GF(28)が得られ、その計算が便利になるが同時
に各検査バイト対の2つの構成要素に対応する、
データ列内での反復オフセツトによつて、サイク
ル長が長くなる。
体のデータ保全性検査のための可変長レコードの
末尾に付加される、複数対の誤り検出検査バイト
の設計、計算および作成の改良を提供することで
ある。誤り検出検査バイトはそれぞれ、関連する
検査バイトを計算するのに使われるのと同じ、8
次の原始多項式から成る随伴T行列の異なるべき
乗を使つて計算される。この随伴T行列を使用す
ると、妥当な大きさのガロア域即ちガロア拡大体
GF(28)が得られ、その計算が便利になるが同時
に各検査バイト対の2つの構成要素に対応する、
データ列内での反復オフセツトによつて、サイク
ル長が長くなる。
本発明にもとづくかかるCRCバイトは、対と
して生成され、それぞれそのレコードの他の関連
するECC検査バイトを計算するのに使われるも
のと同じ、既約多項式G(x)の随伴行列の異な
るべき乗を使つて計算される。実際行なわれてい
る多くの応用例では、G(x)は8次の原始多項
式である。
して生成され、それぞれそのレコードの他の関連
するECC検査バイトを計算するのに使われるも
のと同じ、既約多項式G(x)の随伴行列の異な
るべき乗を使つて計算される。実際行なわれてい
る多くの応用例では、G(x)は8次の原始多項
式である。
同じT行列を使うことによつて、長いサイクル
長を得るために通常高次(たとえば、16次)多項
式除算器を使用している従来のCRC作成では見
られない、計算の便利さが得られる。サイクル長
が長くなるほど、同一レコード内の2つの誤りが
相殺される機会が減る。したがつて、サイクル長
はレコード長よりも長くなければならない。本発
明は、従来のCRCの大きなガロア拡大体GF(216)
の代わりに、GF(28)などの妥当な大きさの拡大
体を使つて、長いサイクル長が得られる。
長を得るために通常高次(たとえば、16次)多項
式除算器を使用している従来のCRC作成では見
られない、計算の便利さが得られる。サイクル長
が長くなるほど、同一レコード内の2つの誤りが
相殺される機会が減る。したがつて、サイクル長
はレコード長よりも長くなければならない。本発
明は、従来のCRCの大きなガロア拡大体GF(216)
の代わりに、GF(28)などの妥当な大きさの拡大
体を使つて、長いサイクル長が得られる。
本発明は、2レベル誤り訂正コード構成にも利
用できる。本発明では、可変長レコードが、それ
ぞれ、単一の誤り検出用の2×2検査バイトの双
方向介在巡回コードワードおよび二重誤り検出用
の1×2拡大検査バイトを有する、サブブロツク
に分割される。第2のレベルで、一つのサブブロ
ツク内の2重バースト誤りが、ブロツクの末尾に
追加された1×2拡大検査バイトでサブブロツク
検査バイトを再処理することによつて訂正され
る。ブロツクの末尾に追加される4つの検査バイ
トがCRC検査バイトであり、この検査バイトは
本発明に従つて生成され、ECC訂正の後で十分
に強力なデータ保全性検査をもたらす。
用できる。本発明では、可変長レコードが、それ
ぞれ、単一の誤り検出用の2×2検査バイトの双
方向介在巡回コードワードおよび二重誤り検出用
の1×2拡大検査バイトを有する、サブブロツク
に分割される。第2のレベルで、一つのサブブロ
ツク内の2重バースト誤りが、ブロツクの末尾に
追加された1×2拡大検査バイトでサブブロツク
検査バイトを再処理することによつて訂正され
る。ブロツクの末尾に追加される4つの検査バイ
トがCRC検査バイトであり、この検査バイトは
本発明に従つて生成され、ECC訂正の後で十分
に強力なデータ保全性検査をもたらす。
上記の2レベルECC体系で使用する場合、同
一のT行列を使用することで、第2レベルの誤り
訂正のためにCRCバイトの再計算が必要になつ
たときの計算が便利になる。
一のT行列を使用することで、第2レベルの誤り
訂正のためにCRCバイトの再計算が必要になつ
たときの計算が便利になる。
E 実施例
4つの検査バイト、CRC1、CRC2、CRC3、
CRC4は、それぞれ次の式によつて与えられる。
CRC4は、それぞれ次の式によつて与えられる。
CRC1=
〓i
T-iDi (1)
CRC2=
〓i
T-2izi (2)
CRC3=
〓i
T-3iDi (3)
CRC4=
〓i
T-4iZi (4)
行列Tは、8次原始多項式G(x)の随伴行列
である。この多項式は、次式によつて与えられ
る。
である。この多項式は、次式によつて与えられ
る。
G(x)=g0g1×g2×2…g7×7×8 (5)
ただし、はモジユーロー2の和を示す。
同じ原始要素Tの異なるべき乗を使つて、すべ
てのCRCおよびECC関数を作成する。多項式G
(x)の行列は、下記の正則行列によつて与えら
れる。
てのCRCおよびECC関数を作成する。多項式G
(x)の行列は、下記の正則行列によつて与えら
れる。
方程式(1)−(4)によると、バイト列〔Di〕は、
あるレコード内のすべてのデータ・バイトおよび
すべての第1レベル検査バイトから構成され、第
2レベル検査バイトは除外されている。バイト列
〔Zi〕は、上記と同じバイトから構成されている
が、この場合はさらに、列〔Di〕と〔Zi〕間の
反復する2バイトのオフセツトを生成するため、
各サブブロツク(最終サブブロツクを除く)の末
尾2バイト位置に対応する2つの検査バイトが除
外されている。その2つのバイトは、2サイクル
の間シフト・レジスタ処理〔Zi〕を制御するクロ
ツク信号を阻止することによつて、除外される。
あるレコード内のすべてのデータ・バイトおよび
すべての第1レベル検査バイトから構成され、第
2レベル検査バイトは除外されている。バイト列
〔Zi〕は、上記と同じバイトから構成されている
が、この場合はさらに、列〔Di〕と〔Zi〕間の
反復する2バイトのオフセツトを生成するため、
各サブブロツク(最終サブブロツクを除く)の末
尾2バイト位置に対応する2つの検査バイトが除
外されている。その2つのバイトは、2サイクル
の間シフト・レジスタ処理〔Zi〕を制御するクロ
ツク信号を阻止することによつて、除外される。
これらの列中の第1レベル検査バイト(および
それに対応する誤りパターン)は、CRC計算で
は空白バイト(すなわち、すべてゼロ)に置き換
えることができる。このように空白バイトを使う
と、ECC検査バイト中の誤りを訂正する必要が
なくなる。
それに対応する誤りパターン)は、CRC計算で
は空白バイト(すなわち、すべてゼロ)に置き換
えることができる。このように空白バイトを使う
と、ECC検査バイト中の誤りを訂正する必要が
なくなる。
列〔Zi〕は、列〔Di〕から各サブブロツクの
末尾の2バイトだけ、オフセツトされている。G
(x)が8次原始多項式の場合、行列T-1とT-2の
べき指数は、255である。典型的サブブロツクが
102バイトの長さである場合、本発明の反復オフ
セツト構成は、下記に示すように、列〔Di〕と
〔Zi〕について、2つのCRC検査の組合せ有効サ
イクル長をもたらす。
末尾の2バイトだけ、オフセツトされている。G
(x)が8次原始多項式の場合、行列T-1とT-2の
べき指数は、255である。典型的サブブロツクが
102バイトの長さである場合、本発明の反復オフ
セツト構成は、下記に示すように、列〔Di〕と
〔Zi〕について、2つのCRC検査の組合せ有効サ
イクル長をもたらす。
〔Di〕について255×102=26.010バイト
〔Zi〕について255×100=25.500バイト
すなわち、同一検出可能な2つの誤りパターン
がデータの255までのサブブロツクから成る任意
のレコードについて両型式のCRC検査で同時に
相殺し合うことはない。
がデータの255までのサブブロツクから成る任意
のレコードについて両型式のCRC検査で同時に
相殺し合うことはない。
4つの検査バイト、CRC1、CRC2、CRC3、
CRC4はすべて、それぞれ事前設定乗数T-1、
T-2、T-3、T-4を含む4つの8ビツト・シフ
ト・レジスタによつて計算される。列〔Di〕は、
それぞれ事前設定乗数T-1とT-3を含むシフト・
レジスタ1と3に入力される。同様に、列〔Zi〕
は、それぞれ事前設定乗数T-2とT-4を含むシフ
ト・レジスタ2と4に入力される。添字〔i〕
は、降順にカウントされ、最終のバイトが各列中
のD1とZ1によつて識別される。
CRC4はすべて、それぞれ事前設定乗数T-1、
T-2、T-3、T-4を含む4つの8ビツト・シフ
ト・レジスタによつて計算される。列〔Di〕は、
それぞれ事前設定乗数T-1とT-3を含むシフト・
レジスタ1と3に入力される。同様に、列〔Zi〕
は、それぞれ事前設定乗数T-2とT-4を含むシフ
ト・レジスタ2と4に入力される。添字〔i〕
は、降順にカウントされ、最終のバイトが各列中
のD1とZ1によつて識別される。
本発明に従つてすべてのCRCバイトを計算す
る実例として、方程式(3)を実現するための典型的
なエンコーダ構成を第1図に示す。最終のバイト
が入力されると、4つのシフト・レジスタの内容
が、それぞれ0、1、2および3個の追加サイク
ルによつて空白(すべてゼロ)入力で置き換えら
れる。シフト・レジスタの最終内容は、4つの検
査バイトから構成される。
る実例として、方程式(3)を実現するための典型的
なエンコーダ構成を第1図に示す。最終のバイト
が入力されると、4つのシフト・レジスタの内容
が、それぞれ0、1、2および3個の追加サイク
ルによつて空白(すべてゼロ)入力で置き換えら
れる。シフト・レジスタの最終内容は、4つの検
査バイトから構成される。
読取り過程中、データを受け取つたときCRC
シンドロームがECCシンドロームと一緒にオ
ン・ザ・フライ方式で生成される。もちろん、
CRCシンドロームは、第1レベルおよび第2レ
ベル誤り訂正のために調整しなければならない。
4つのCRCシンドロームS−1、S-2、S-3、S−
4、の式は次式で与えられる。
シンドロームがECCシンドロームと一緒にオ
ン・ザ・フライ方式で生成される。もちろん、
CRCシンドロームは、第1レベルおよび第2レ
ベル誤り訂正のために調整しなければならない。
4つのCRCシンドロームS−1、S-2、S-3、S−
4、の式は次式で与えられる。
S-1=CR^C1
〓i
T-iD^i
〓i
T-iE1(Di)
〓i
T-iE2(Di) (7)
S-2=CR^C2
〓i
T-2iz^i
〓i
T-2iE1(zi)
〓i
T-2iE2(zi) (8)
S-3=CR^C3
〓i
T-3iDi
〓i
T-3iE1(Di)
〓i
T-3iE2(Di) (9)
S-4=CR^C4
〓i
T-4iz^i
〓i
T-4iE1(zi)
〓i
T-4iE2(zi) (10)
記号∧はリードバツク・バイトを表し、E1(Di)
とE1(Zi)は第1レベル誤り訂正パターンを表し、
E2(Di)とE2(Zi)は、それぞれ記録されたバイト
DiとZiに対応する第2レベル誤り訂正パターン
を表す。検査バイトに対応する誤りパターンは、
空白バイトで置換えられる。
とE1(Zi)は第1レベル誤り訂正パターンを表し、
E2(Di)とE2(Zi)は、それぞれ記録されたバイト
DiとZiに対応する第2レベル誤り訂正パターン
を表す。検査バイトに対応する誤りパターンは、
空白バイトで置換えられる。
データ列〔D^i〕とそれに対応する誤り訂正パ
ターンの列〔E1(Di)〕が、それぞれ、第1レベ
ル・デコーダの入力部と出力部に出る。第2レベ
ル誤り訂正が必要な場合、誤りパターン〔E2
(Di)が、第2レベルでの復号化に利用できる。
ターンの列〔E1(Di)〕が、それぞれ、第1レベ
ル・デコーダの入力部と出力部に出る。第2レベ
ル誤り訂正が必要な場合、誤りパターン〔E2
(Di)が、第2レベルでの復号化に利用できる。
第1レベル・デコーダが、サブロツク緩衝記憶
装置とオン・ザ・フライ誤り訂正を含む場合、訂
正済みデータ、すなわち組合せ列〔DiE1(Di)〕
から第1レベルCRCシンドロームを計算するこ
とができる。しかし、第1レベル誤り訂正を後回
しにする場合、サブブロツク緩衝記憶装置および
訂正済データ列を、そのままでは利用できない。
この場合、部分計算を組み合わせることによつて
CRCシンドロームを計算することができる。シ
ンドロームS-3を使つて、すべてのCRCシンドロ
ームに適用できる過程を例示する。式9の部分計
算を、下記のように定義する。
装置とオン・ザ・フライ誤り訂正を含む場合、訂
正済みデータ、すなわち組合せ列〔DiE1(Di)〕
から第1レベルCRCシンドロームを計算するこ
とができる。しかし、第1レベル誤り訂正を後回
しにする場合、サブブロツク緩衝記憶装置および
訂正済データ列を、そのままでは利用できない。
この場合、部分計算を組み合わせることによつて
CRCシンドロームを計算することができる。シ
ンドロームS-3を使つて、すべてのCRCシンドロ
ームに適用できる過程を例示する。式9の部分計
算を、下記のように定義する。
S-3(0)=CR^C3
〓i
T-3iD^i (11)
S-3(1)=S-3(0)
〓i
T-3iE1(Di) (12)
S-3(2)=S-3(1)
〓i
T-3i(Di) (13)
ただし、S-3(0)、S-3(1)およびS-3(2)は、それぞ
れ、誤り訂正のない場合、第1レベルの誤り訂正
がある場合、および第2レベルの誤り訂正がある
場合のS-3の値を示す。式(7)、(8)、および(10)の部
分計算に対応する式を、本明細書の付録Aに示
す。
れ、誤り訂正のない場合、第1レベルの誤り訂正
がある場合、および第2レベルの誤り訂正がある
場合のS-3の値を示す。式(7)、(8)、および(10)の部
分計算に対応する式を、本明細書の付録Aに示
す。
式(11)と(12)は、2つのシフト・レジスタ(両者と
も第1図に示したものと同様である。)を使つて、
訂正されていない列〔D^i〕と第1レベル誤りパ
ターンのある列〔E1(Di)〕を別々に処理するこ
とによつて生成できる。各シフト・レジスタは乗
数T-3を使用する。誤りが訂正されていない場
合、第1シフト・レジスタが十分なCRC検査を
もたらす。この検査は、レコードの末尾でただち
に行なうことができる。第1レベル誤り訂正が必
要な場合、第2シフト・レジスタが、レコードの
末尾から1ブロツク後でCRC検査を行なう。
も第1図に示したものと同様である。)を使つて、
訂正されていない列〔D^i〕と第1レベル誤りパ
ターンのある列〔E1(Di)〕を別々に処理するこ
とによつて生成できる。各シフト・レジスタは乗
数T-3を使用する。誤りが訂正されていない場
合、第1シフト・レジスタが十分なCRC検査を
もたらす。この検査は、レコードの末尾でただち
に行なうことができる。第1レベル誤り訂正が必
要な場合、第2シフト・レジスタが、レコードの
末尾から1ブロツク後でCRC検査を行なう。
しかし、2つの列〔Di〕と〔E1(Di)〕が1つ
のシフト・レジスタで処理できるのが好ましい。
この2つの列間の1ブロツクの遅延が、それらの
間でちようど102バイト位置分の遅延をもたらす
ことに注意すべきである。第1レベル・デコーダ
の出力と同期されているカウント・ダウン・クロ
ツクjを使用する場合、入力部にDj−102が現わ
れるのと同期して、出力部にE1(Dj)が現われ
る。式(11)と(12)を組み合せ、jを使つて下記のよう
に書き直すことができる。
のシフト・レジスタで処理できるのが好ましい。
この2つの列間の1ブロツクの遅延が、それらの
間でちようど102バイト位置分の遅延をもたらす
ことに注意すべきである。第1レベル・デコーダ
の出力と同期されているカウント・ダウン・クロ
ツクjを使用する場合、入力部にDj−102が現わ
れるのと同期して、出力部にE1(Dj)が現われ
る。式(11)と(12)を組み合せ、jを使つて下記のよう
に書き直すことができる。
S-3(1)=CRC3L+102
〓j=1
T-3j〔T3x102Dj-102E1(Dj)〕 (14)
ただし、Lは列〔Di〕の長さを表す。j>Lの
場合E1(Dj)が、またj≦102の場合Dj−102が存
在しない(空白バイトである)ことに注意すべき
である。
場合E1(Dj)が、またj≦102の場合Dj−102が存
在しない(空白バイトである)ことに注意すべき
である。
式(14)は、第2図に示すシフト・レジスタに
よつて生成できる。このシフト・レジスタ内で
は、クロツク・パラメータjがL+102から1ま
でカウント・ダウンされる間に、列〔D^j〕が事
前設定乗数T3x102に入り、入力部で列〔E1(Di)〕
に加えられる。列〔D^j〕はj=L+102から始ま
り、j=103で終わる。列E1(Dj)はj=Lから
始まり、j=102を経てj=1まで続く。シフ
ト・レジスタの最終内容をCR^Cと組み合わせる
と、S-3(1)が得られる。
よつて生成できる。このシフト・レジスタ内で
は、クロツク・パラメータjがL+102から1ま
でカウント・ダウンされる間に、列〔D^j〕が事
前設定乗数T3x102に入り、入力部で列〔E1(Di)〕
に加えられる。列〔D^j〕はj=L+102から始ま
り、j=103で終わる。列E1(Dj)はj=Lから
始まり、j=102を経てj=1まで続く。シフ
ト・レジスタの最終内容をCR^Cと組み合わせる
と、S-3(1)が得られる。
第3図において、レコードの末尾の4つのリー
ドバツクCRCバイトは、すべてリードバツク過
程中に対応するシフト・レジスタによつて、デー
タと一緒に処理することもできる。符号化中にサ
ブブロツク検査バイトに空白バイトが入力される
のと同様に、レコードの末尾のCRC位置にも空
白バイトが入力される。同様に、リードバツク過
程中に、シンドローム生成用にも空白バイトが入
力される。例えば、第3図に示すように、バイト
CRC3は、例〔Di〕の最終バイトD1から2バイ
ト位置だけ物理的にオフセツトされている。した
がつて、復号化中およびシンドローム・パターン
生成中に、シフト・レジスタ中のバイトD1の後
のCRC3に2つの追加空白バイトが入力される。
ドバツクCRCバイトは、すべてリードバツク過
程中に対応するシフト・レジスタによつて、デー
タと一緒に処理することもできる。符号化中にサ
ブブロツク検査バイトに空白バイトが入力される
のと同様に、レコードの末尾のCRC位置にも空
白バイトが入力される。同様に、リードバツク過
程中に、シンドローム生成用にも空白バイトが入
力される。例えば、第3図に示すように、バイト
CRC3は、例〔Di〕の最終バイトD1から2バイ
ト位置だけ物理的にオフセツトされている。した
がつて、復号化中およびシンドローム・パターン
生成中に、シフト・レジスタ中のバイトD1の後
のCRC3に2つの追加空白バイトが入力される。
リードバツク・バイトCR^C3は、シフト・レ
ジスタ20内でバイトD1と2つの空白バイトの
後で事前設定乗数21によつて処理される。入力
列〔E1(Di)〕の後に、2つの空白バイトを入力
する必要はない。したがつて、シフト・レジスタ
20の最終内容は、シンドロームS-3(1)である。
誤りが訂正されていない場合、最終リードバツ
ク・バイトCRC3が入力されたときのシフト・
レジスタ20の内容によつて、十分にCRC検査
が行なわれる。具体的にいうと、シンドローム
S-3(1)がゼロである場合に限つては、j=102での
内容がゼロである。したがつて、ECCシンドロ
ームがすべてゼロの場合、最終の100のシフト操
作を行なわずに、レコードの末尾でのCRCレジ
スタの即時内容によつて、完全なCRC検査が行
なわれる。大部分のデータ・レジスタは誤りがな
いので、本発明のこの特徴により性能が大幅に高
まる。
ジスタ20内でバイトD1と2つの空白バイトの
後で事前設定乗数21によつて処理される。入力
列〔E1(Di)〕の後に、2つの空白バイトを入力
する必要はない。したがつて、シフト・レジスタ
20の最終内容は、シンドロームS-3(1)である。
誤りが訂正されていない場合、最終リードバツ
ク・バイトCRC3が入力されたときのシフト・
レジスタ20の内容によつて、十分にCRC検査
が行なわれる。具体的にいうと、シンドローム
S-3(1)がゼロである場合に限つては、j=102での
内容がゼロである。したがつて、ECCシンドロ
ームがすべてゼロの場合、最終の100のシフト操
作を行なわずに、レコードの末尾でのCRCレジ
スタの即時内容によつて、完全なCRC検査が行
なわれる。大部分のデータ・レジスタは誤りがな
いので、本発明のこの特徴により性能が大幅に高
まる。
他のCRCシンドロームも同様に計算される。
シンドロームS-1は、式(7)によつて与えられるが、
第2図に示したものの代わりに、異なる乗数回
路、すなわち、T-1とT102を必要とするだけであ
る。シンドロームS-2とS-4は、列〔z^i〕と〔E1
(zi)〕の処理が必要である。これらの列では、1
サブブロツクの遅延は、それらの列の間の100バ
イト位置に相当する。したがつて、S-2に対応す
る乗数回路はT-2とT2×100であり、S-4に対応す
るのは、T-4とT4x100である。
シンドロームS-1は、式(7)によつて与えられるが、
第2図に示したものの代わりに、異なる乗数回
路、すなわち、T-1とT102を必要とするだけであ
る。シンドロームS-2とS-4は、列〔z^i〕と〔E1
(zi)〕の処理が必要である。これらの列では、1
サブブロツクの遅延は、それらの列の間の100バ
イト位置に相当する。したがつて、S-2に対応す
る乗数回路はT-2とT2×100であり、S-4に対応す
るのは、T-4とT4x100である。
CRC3の場合と同様に、符号化またはシンド
ローム生成操作中に空白バイトを適当な数のサイ
クルに入力することによつて、任意のCRCバイ
トをそのシフト・レジスタによつてデータと一緒
に処理することができる。具体的にいうと、
CRC1、CRC2、CRC3およびCRC4は、0、
1、2および3個の追加サイクルが必要であり、
それぞれそれらの列〔Di〕と〔D^i〕または〔zi〕
と〔z^i〕の末尾に空白バイトが入力される。
ローム生成操作中に空白バイトを適当な数のサイ
クルに入力することによつて、任意のCRCバイ
トをそのシフト・レジスタによつてデータと一緒
に処理することができる。具体的にいうと、
CRC1、CRC2、CRC3およびCRC4は、0、
1、2および3個の追加サイクルが必要であり、
それぞれそれらの列〔Di〕と〔D^i〕または〔zi〕
と〔z^i〕の末尾に空白バイトが入力される。
誤りが存在しない場合、CRCシンドロームは
すべてゼロである。第2レベル誤り訂正が必要な
場合、4つまでのバイト誤り訂正を含むサブブロ
ツクの1つが関係する。4つの誤りバイトのそれ
ぞれについて、先に参照した発明の第2レベル
ECCデコーダによつて生成される誤り位置番号
から、列〔Di〕中のバイト・カウント〔i〕を
求める。その後、式「B」について、次式を利用
して、ECCデコーダが使用するものと同じ対数
表および真数表を使つて、各iに対する項“T-3i
E2(Di)”を計算する。
すべてゼロである。第2レベル誤り訂正が必要な
場合、4つまでのバイト誤り訂正を含むサブブロ
ツクの1つが関係する。4つの誤りバイトのそれ
ぞれについて、先に参照した発明の第2レベル
ECCデコーダによつて生成される誤り位置番号
から、列〔Di〕中のバイト・カウント〔i〕を
求める。その後、式「B」について、次式を利用
して、ECCデコーダが使用するものと同じ対数
表および真数表を使つて、各iに対する項“T-3i
E2(Di)”を計算する。
T-3iE2(Di)=log-1{(logE2(Di)−3i〕
modulo255}. (15)
この項を以前に計算したS-3(1)に加えると、CRC
シンドロームS-3に対応する式(9)の最終CRC検査
が完了する。
シンドロームS-3に対応する式(9)の最終CRC検査
が完了する。
同様にして、4つの誤りのおのおのについて列
〔zi〕のバイト・カウントiを求める。シンドロ
ームS-1、S-2、S-3、S-4の計算も同様に行なう。
誤りがすべて適切に訂正され、誤りが全く存在し
ない場合には、CRCシンドロームのこれらの最
終値は、すべてゼロでなければならない。
〔zi〕のバイト・カウントiを求める。シンドロ
ームS-1、S-2、S-3、S-4の計算も同様に行なう。
誤りがすべて適切に訂正され、誤りが全く存在し
ない場合には、CRCシンドロームのこれらの最
終値は、すべてゼロでなければならない。
CRCバイトに誤りがあると、不必要な再読取
り操作が生じやすく、性能が低下する。こうした
性能の低下を避けるため、不必要な再読取り操作
と充分な誤り訂正・検出能力をつり合わせる操作
規則を採用することができる。
り操作が生じやすく、性能が低下する。こうした
性能の低下を避けるため、不必要な再読取り操作
と充分な誤り訂正・検出能力をつり合わせる操作
規則を採用することができる。
規則1: サブブロツク・レベルおよびブロツ
ク・レベルのECCシンドロームがゼロである
場合、CRCバイトをすべて無視できる。
ク・レベルのECCシンドロームがゼロである
場合、CRCバイトをすべて無視できる。
規則2: 第2レベル訂正が必要でない場合、
〔Di〕列上の1つの非ゼロCRC検査と〔zi〕列
上の1つの非ゼロCRC検査を無視する。
〔Di〕列上の1つの非ゼロCRC検査と〔zi〕列
上の1つの非ゼロCRC検査を無視する。
規則3: CRC検査がすべてゼロで、かつ第2
レベル訂正が必要でない場合、ブロツク・レベ
ルECC検査を無視できる。
レベル訂正が必要でない場合、ブロツク・レベ
ルECC検査を無視できる。
規則2により、列〔Di〕と〔zi〕でそれぞれ1
個ずつ合計2個までのCRCバイト中の誤りが許
容され、したがつて、これらの列の間のオフセツ
トによる利益は維持される。偶数段と奇数段の誤
りをつり合わせるために、奇数段CRC、すなわ
ち、CRC1とCRC3を列〔Di〕から生成し、偶
数段CRC、すなわちCRC2とCRC4を列「zi」
から生成する。
個ずつ合計2個までのCRCバイト中の誤りが許
容され、したがつて、これらの列の間のオフセツ
トによる利益は維持される。偶数段と奇数段の誤
りをつり合わせるために、奇数段CRC、すなわ
ち、CRC1とCRC3を列〔Di〕から生成し、偶
数段CRC、すなわちCRC2とCRC4を列「zi」
から生成する。
F 発明の効果
本発明によると、GF(28)中の同じ原始フイー
ルド要素から導かれた4つの独立したCRC検査
バイトによつて、計算が便利になり、かつ検査の
性能が向上する。列〔Di〕と〔zi〕の反復オフセ
ツトによつて、16次多項式を使用せずに、所期の
長いサイクル長がもたらされる。
ルド要素から導かれた4つの独立したCRC検査
バイトによつて、計算が便利になり、かつ検査の
性能が向上する。列〔Di〕と〔zi〕の反復オフセ
ツトによつて、16次多項式を使用せずに、所期の
長いサイクル長がもたらされる。
付録 A
式(7)
S-1(0)=CR^C1
〓i
T-iD^i (7A)
S-1(1)=S-1(0)
〓i
T-iE1(Di) (7B)
S-1(2)=S-1(1)
〓i
T-iE2(Di) (7C)
式(8)
S-2(0)=CR^C2
〓i
T-2iz^i (8A)
S-2(1)=S-2(0)
〓i
T-2iE1(zi) (8B)
S-2(2)=S-2(1)
〓i
T-2iE2(zi) (8C)
式(10)
S-4(0)=CR^C4+
〓i
T-4iz^i (10A)
S-4(1)=S-4(0)
〓i
T-4iE1(zi) (10B)
S-4(2)=S-4(1)
〓i
T-4iE2(zi) (10C)
第1図は、本発明の原理に従つて構成された、
符号化フイードバツク・シフト・レジスタの論理
の構成図である。第2図は、本発明の原理に従つ
て構成された、データと誤りパターンを同時に復
号するフイードバツク・シフト・レジスタの論理
の構成図である。第3図は、本発明の原理に従つ
て作成されたデイスク・メモリ・トラツク用に構
成された、2レベル符号化レコードの末尾のデー
タ・バイト、サブブロツク、およびブロツク検査
バイトのフオーマツトを示す説明図である。
符号化フイードバツク・シフト・レジスタの論理
の構成図である。第2図は、本発明の原理に従つ
て構成された、データと誤りパターンを同時に復
号するフイードバツク・シフト・レジスタの論理
の構成図である。第3図は、本発明の原理に従つ
て作成されたデイスク・メモリ・トラツク用に構
成された、2レベル符号化レコードの末尾のデー
タ・バイト、サブブロツク、およびブロツク検査
バイトのフオーマツトを示す説明図である。
Claims (1)
- 【特許請求の範囲】 1 m(予め定められた正数)バイトの間隔で誤
り訂正検査バイトを挿入してなる可変長レコード
用に、複数の巡回冗長検査バイトを計算する装置
であつて、 上記誤り訂正検査バイトを含む上記可変長レコ
ード中のすべてのデータ・バイトを順次受け取
り、このデータ・バイトにT-n(−nは整数であ
り、誤り訂正検査バイトを計算するのに使用され
るいかなる整数とも異なる整数)の形の行列を掛
けて、第1の指定された所定数の巡回冗長検査バ
イトを生成する第1計算手段と、 上記第1計算手段が受け取つた上記可変長レコ
ードから、上記可変長レコードの最終間隔以外の
各間隔の末尾の所定数の誤り訂正検査バイトを除
いたものに含まれるすべてのデータ・バイトを受
け取り、このデータ・バイトにT-(n+1)の形の行
列を掛け、第2の指定された所定数の巡回冗長検
査バイトを生成する第2計算手段と、 上記誤り訂正検査バイトを含む上記可変長レコ
ードに上記第1計算手段の巡回冗長検査バイトお
よび上記第2計算手段の巡回冗長検査バイトを連
結して出力する手段とを有することを特徴とする
巡回冗長検査バイトを計算する装置。 2 上記末尾の所定数の誤り訂正検査バイトの位
置について上記第2計算手段の順次操作を禁止し
て上記末尾の所定数の誤り訂正検査バイトを除外
する手段を有する特許請求の範囲第1項に記載の
装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US828101 | 1986-02-10 | ||
US06/828,101 US4703485A (en) | 1986-02-10 | 1986-02-10 | Method and apparatus for computing and implementing error detection check bytes |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62190931A JPS62190931A (ja) | 1987-08-21 |
JPH0328093B2 true JPH0328093B2 (ja) | 1991-04-18 |
Family
ID=25250921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61301932A Granted JPS62190931A (ja) | 1986-02-10 | 1986-12-19 | 巡回冗長検査バイトを計算する装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4703485A (ja) |
EP (1) | EP0233075B1 (ja) |
JP (1) | JPS62190931A (ja) |
DE (1) | DE3787900T2 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4856003A (en) * | 1987-05-07 | 1989-08-08 | Digital Equipment Corporation | Error correction code encoder |
US4849975A (en) * | 1987-11-10 | 1989-07-18 | International Business Machines Corporation | Error correction method and apparatus |
US4916701A (en) * | 1988-09-21 | 1990-04-10 | International Business Machines Corporation | Method and system for correcting long bursts of consecutive errors |
US5022080A (en) * | 1990-04-16 | 1991-06-04 | Durst Robert T | Electronic notary |
EP0470451A3 (en) * | 1990-08-07 | 1993-01-20 | National Semiconductor Corporation | Implementation of the high-level data link control cyclic redundancy check (hdlc crc) calculation |
US5321704A (en) * | 1991-01-16 | 1994-06-14 | Xilinx, Inc. | Error detection structure and method using partial polynomial check |
US5285456A (en) * | 1991-05-15 | 1994-02-08 | International Business Machines Corporation | System and method for improving the integrity of control information |
EP0563491A1 (en) * | 1992-03-31 | 1993-10-06 | International Business Machines Corporation | Method and apparatus for implementing a triple error detection and double error correction code |
EP0609595B1 (en) * | 1993-02-05 | 1998-08-12 | Hewlett-Packard Company | Method and apparatus for verifying CRC codes by combination of partial CRC codes |
US5602857A (en) * | 1993-09-21 | 1997-02-11 | Cirrus Logic, Inc. | Error correction method and apparatus |
US5465260A (en) * | 1993-11-04 | 1995-11-07 | Cirrus Logic, Inc. | Dual purpose cyclic redundancy check |
US5629949A (en) * | 1993-09-21 | 1997-05-13 | Cirrus Logic, Inc. | Error correction verification method and apparatus using CRC check remainders |
US5592498A (en) * | 1994-09-16 | 1997-01-07 | Cirrus Logic, Inc. | CRC/EDC checker system |
US6125469A (en) * | 1994-10-18 | 2000-09-26 | Cirrus Logic, Inc. | Error correction method and apparatus |
JP3268547B2 (ja) * | 1995-06-06 | 2002-03-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 直接アクセス記憶装置に記録する定義済み情報を、エラー訂正コードを利用しエラー検出するための方法及び装置 |
US6378105B1 (en) * | 1999-05-24 | 2002-04-23 | Oak Technology, Inc. | Reed-Solomon multiplication method |
US6532566B1 (en) | 1999-05-24 | 2003-03-11 | Oak Technology, Inc. | Modified Reed-Solomon multiplication |
US7047480B2 (en) * | 2002-11-12 | 2006-05-16 | Microsoft Corporation | Matrix multiplication in a Galois field for forward error correction |
US7191383B2 (en) * | 2003-03-28 | 2007-03-13 | International Business Machines Corporation | System and method for optimizing iterative circuit for cyclic redundancy check (CRC) calculation |
US20140055290A1 (en) | 2003-09-09 | 2014-02-27 | Peter Lablans | Methods and Apparatus in Alternate Finite Field Based Coders and Decoders |
US7865806B2 (en) * | 2006-03-03 | 2011-01-04 | Peter Lablans | Methods and apparatus in finite field polynomial implementations |
US20060077750A1 (en) * | 2004-10-07 | 2006-04-13 | Dell Products L.P. | System and method for error detection in a redundant memory system |
US9071281B2 (en) * | 2013-03-10 | 2015-06-30 | Intel Corporation | Selective provision of error correction for memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5573909A (en) * | 1978-11-28 | 1980-06-04 | Matsushita Electric Ind Co Ltd | Signal processor |
JPS59165541A (ja) * | 1983-02-28 | 1984-09-18 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | 多数バイトエラ−訂正システム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2095440B (en) * | 1981-03-23 | 1985-10-09 | Sony Corp | Digital television signal processing |
CA1203019A (en) * | 1982-01-19 | 1986-04-08 | Tetsu Watanabe | Apparatus for recording and reproducing a digital signal |
JPS58198935A (ja) * | 1982-05-15 | 1983-11-19 | Sony Corp | デ−タ伝送方法 |
US4504948A (en) * | 1982-12-29 | 1985-03-12 | International Business Machines Corporation | Syndrome processing unit for multibyte error correcting systems |
JP2533076B2 (ja) * | 1983-04-30 | 1996-09-11 | ソニー株式会社 | エラ−訂正のための符号化方法 |
-
1986
- 1986-02-10 US US06/828,101 patent/US4703485A/en not_active Expired - Lifetime
- 1986-12-19 JP JP61301932A patent/JPS62190931A/ja active Granted
-
1987
- 1987-02-10 DE DE87301126T patent/DE3787900T2/de not_active Expired - Lifetime
- 1987-02-10 EP EP87301126A patent/EP0233075B1/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5573909A (en) * | 1978-11-28 | 1980-06-04 | Matsushita Electric Ind Co Ltd | Signal processor |
JPS59165541A (ja) * | 1983-02-28 | 1984-09-18 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | 多数バイトエラ−訂正システム |
Also Published As
Publication number | Publication date |
---|---|
EP0233075A2 (en) | 1987-08-19 |
DE3787900D1 (de) | 1993-12-02 |
EP0233075A3 (en) | 1990-05-16 |
US4703485A (en) | 1987-10-27 |
EP0233075B1 (en) | 1993-10-27 |
JPS62190931A (ja) | 1987-08-21 |
DE3787900T2 (de) | 1994-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0328093B2 (ja) | ||
CA1204874A (en) | Multibyte error correcting system involving a two- level code structure | |
US4142174A (en) | High speed decoding of Reed-Solomon codes | |
US8812940B2 (en) | Programmable error correction capability for BCH codes | |
US7278085B1 (en) | Simple error-correction codes for data buffers | |
EP0114938A2 (en) | On-the-fly multibyte error correction | |
JPH03136524A (ja) | 長バースト誤りに対する誤り検出及び訂正システム | |
JPS6273336A (ja) | マルチバイト・エラ−訂正方法及びシステム | |
US4856003A (en) | Error correction code encoder | |
JP3046988B2 (ja) | データストリームのフレーム同期検出方法及び装置 | |
JPH01155721A (ja) | エラー訂正方法 | |
US7502988B2 (en) | Decoding and error correction for algebraic geometric codes | |
JPS63244935A (ja) | 誤り検出訂正方法とシステム | |
JPH04505545A (ja) | 非システム的コード用高速エンコーダ | |
US20100299575A1 (en) | Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string | |
JPH0452556B2 (ja) | ||
JPH0831806B2 (ja) | エラー訂正方法 | |
JP3875274B2 (ja) | 短縮ファイア符号エラートラッピング復号方法および装置 | |
JP3989558B2 (ja) | GF(2▲上w+i▼)のシンボルの(w+i+1)ビット表現を用いる変形リードソロモンエラー訂正システム | |
US4527269A (en) | Encoder verifier | |
EP0753942A2 (en) | Word-wise processing for reed-solomon codes | |
JPS632370B2 (ja) | ||
EP1102406A2 (en) | Apparatus and method for decoding digital data | |
US4298981A (en) | Decoding shortened cyclic block codes | |
JPH0351008B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |