JP3281387B2 - Crc/edcチェッカシステム - Google Patents

Crc/edcチェッカシステム

Info

Publication number
JP3281387B2
JP3281387B2 JP51040696A JP51040696A JP3281387B2 JP 3281387 B2 JP3281387 B2 JP 3281387B2 JP 51040696 A JP51040696 A JP 51040696A JP 51040696 A JP51040696 A JP 51040696A JP 3281387 B2 JP3281387 B2 JP 3281387B2
Authority
JP
Japan
Prior art keywords
byte
buffer
error pattern
sum
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
Application number
JP51040696A
Other languages
English (en)
Other versions
JPH10508988A (ja
Inventor
クリストファー ピー. ズーク,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cirrus Logic Inc
Original Assignee
Cirrus Logic Inc
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 Cirrus Logic Inc filed Critical Cirrus Logic Inc
Publication of JPH10508988A publication Critical patent/JPH10508988A/ja
Application granted granted Critical
Publication of JP3281387B2 publication Critical patent/JP3281387B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

【発明の詳細な説明】 本願は、以下の同時に出願された特許出願、すなわ
ち、Chris Zookにより1994年9月16日に出願され、“MU
LTIPURPOSE ERROR CORRECTION CALCULATION CIRCUIT"と
題された米国特許出願第08/306,918号、およびChris Zo
okにより1994年9月16日に出願され、“VERSATILE ERRO
R CORRECTION SYSTEM"と題された米国特許出願第08/30
7,259号に関連している。本願では、上記特許出願のす
べてが参考として援用される。
背 景 1.発明の分野 本発明は、CRCチェッキング機能を利用する誤り訂正
システムを含むがそれには限定されない、誤り訂正シス
テムに関する。
2.関連する技術および他の考察 ディスクドライブのような情報記憶装置は、一般に誤
り訂正能力を有している。この装置からトランスデュー
スされた情報は、典型的には、バイトのかたちでバッフ
ァに格納される。格納された情報は、通常、バイトから
構成される複数のブロックにフォーマットされる。例え
ばCDディスクドライブの場合、バッファは、複数のセク
タ(コンピュータデータを処理するとき)または複数の
フレーム(ディジタルオーディオデータを処理すると
き)を含んでいる。ここでは、これらを包括的に「ブロ
ック」と称する。
誤り訂正能力によれば、それぞれのセクタは、典型的
には、複数のCRCまたはEDCチェックバイトを有する。図
2は、それぞれが26バイトから構成される86のカラムに
グループ分けされたブロックを図示している。ブロック
内では、バイトから構成されるカラムはそれぞれ、1個
のカラムコードワードを備えており、各カラムの最後の
2バイトは、カラムコードワードのECC部分を構成して
おり、各カラムの残りの部分(つまり、最初の24バイ
ト)は、カラムコードワードのデータ部分を構成してい
る。例えば、バイト0000、0086、0172、…1978は、カラ
ムコードワードCW0のデータ部を含んでおり、バイト000
1、0087、0173、…1979は、カラムコードワードCW1のデ
ータ部を含んでいる。以下も同様である。図2に図示さ
れているように、それぞれのブロックの最後の4つのデ
ータバイト(例えば、バイト2060、2061、2062、2063)
は、誤り訂正情報を含んでいるので、EDCバイトまたはC
RCバイトとして知られている。あるフォーマットでは、
CRCバイトは、必ずしもブロックのデータ部分の最後の
数バイトではない。例えば、図2のブロックを完全には
満たさないデータフォーマットでは、CRCバイトをデー
タの最後に続けて配置し、その後に、それらのブロック
が満たされるまでゼロバイトで埋め込まれたCRCバイト
を置くこともできる。
誤り訂正多項式の演算以外では、CRCまたはEDCチェッ
クバイトが、付加的なチェック手段を提供する。一般
に、CRCバイトは、データバイト(または、場合によっ
てはビット)をバイト値(またはビット値)で表された
データの多項式D(x)の係数として扱い、D(x)x
n-kmodG(x)を計算することによって発生される。こ
こで、kはデータシンボルの個数であり、n−kはCRC
シンボルの個数であり、G(x)はCRC発生器多項式で
ある。コンパクトディスク(CD)ドライブの場合、CRC
発生器は、ビット値で表される。
従来より、CRCまたはEDCバイトを用いるバッファのチ
ェックは、そのバッファが訂正された後におこなわれて
いる。具体的には、誤り訂正フェーズのあいだ、バッフ
ァのバイトは、コードワードとしてアクセスされ、誤り
訂正多項式を用いて処理される。誤り多項式によるコー
ドワードに対する処理の結果、誤りを含んでいるコード
ワードのバイトを指定する誤りポインタが、それらのポ
インタにより位置の特定されたバイトの訂正に用いられ
る誤りパターンと共に発生される。誤りポインタおよび
誤りパターンによる発生の後、バッファにおけるバイト
が、ポインタにより指定されたバイトを訂正する目的で
アクセスされる。
ポインタにより指定されたバイトの訂正に引き続い
て、特にCRCまたはEDCチェックを目的として、バッファ
が再びアクセスされる。CRCまたはEDCチェックのあい
だ、バッファにおけるすべてのバイトから構成される多
項式(CRCバイトを含む)は、CRC発生器多項式により除
算される。もしその剰余がゼロであれば、ブロックが正
確に訂正されたことが確認される。
CRCまたはEDC機能は、データの完全性を確認するに当
たっての付加的なレベルを提供できるという利点を有し
てはいるものの、CRC/EDCチェックのためにはバッファ
に対して特別なアクセスが必要になるので、全体的な動
作速度が低下してしまう。
要 旨 EDC/CRCチェッカは、訂正パスのあいだに1ブロック
のデータが訂正されているあいだに、EDC/CRCチェック
をおこなうことによって、ブロック訂正に引き続いてED
C/CRCを目的としてバッファにアクセスすることを不要
にする。訂正パスのあいだ、EDC/CRCの和が累算され
る。この和は、そのブロックのパスが完了した後、もし
そのブロックにおけるEDC/CRCバイトによりそのブロッ
クが訂正されたことが確認されれば、ゼロになる。ブロ
ックの一回の訂正パスのあいだに、訂正されていない、
最も最近のコードワードのバイトは、累算された和に加
算される。最も最近のコードワードのバイトとバイト同
期関係にある以前のコードワードのバイトは、(必要で
あれば)訂正され、かつ(訂正がおこなわれる時には)
以前のコードワードのバイトを訂正するのに用いられた
誤りパターンを含む誤りパターン係数もまた、累算され
た和に加算される。ここで説明される実施形態では、ブ
ロックは、複数のコードワードカラムを有するものとし
て概念づけられ、バイト同期関係は、訂正されていない
バイトが累算されるときには、次の以前のコードワード
の対応するバイトに対して訂正がおこなわれるようにす
るものである。
よって、本発明のEDC/CRCチェッカは、最も最近のコ
ードワードCWnに対するシンドローム発生に用いられて
いるブロックバイトに対するCRCチェックをおこなうの
と同時に、以前のコードワード(例えば、CWn-1)の対
応して位置づけられたバイトに対しても訂正がおこなわ
れうるようにする。以前のコードワードの対応するバイ
トに対して訂正がおこなわれているとき、以前のコード
ワードの対応するバイトに対する誤りパターン係数もま
た、累算された和に加算される。なぜなら、対応するそ
のようなバイトは、訂正されていない状態で、それ以前
に和に加算されていたからである。実際には、誤りパタ
ーン係数は、誤りパターンの定数の倍数である。その定
数の倍数の値は、実現されるバイト位置同期関係に依存
している。
本発明のEDC/CRCチェッカは、バッファに対して別個
にアクセスすることを必要とせずにEDC/CRCチェックを
おこなうことができるという利点を有する。さらに、本
発明は、ブロックを完全には満たさず、CRCバイトをデ
ータの最後に続けて配置し、その後に、それらのブロッ
クが満たされるまでゼロバイトで埋め込まれたCRCバイ
トを置くことができるデータフォーマットともコンパチ
ブルである。
図面の簡単な説明 本発明の上記目的、特徴および利点、ならびにその他
の目的、特徴および利点は、添付の図面に図示されてい
る好ましい実施態様の、以下に述べるより詳細な説明か
ら明らかになるであろう。なお、全図面を通して、参照
番号は同一の部分を指すものとする。また、図面は必ず
しも実際の縮尺に則ったものではなく、本発明の原理を
図示するさいに強調されているところもある。
図1は、本発明によるEDC/CRCチェッカを用いる誤り
訂正システムの一例の模式的ブロック図である。
図2は、バッファに格納されているデータの1セクタ
を図示しており、セクタは、複数のロウおよびカラムを
なして格納されるものと概念づけられている。
図3Aは、本発明のある実施形態によるEDC/CRCチェッ
カ回路を示す模式図である。
図3Bは、データバイトと誤りパターンとが本質的に同
時アクセス可能である、本発明のある実施形態によるED
C/CRCチェッカ回路を示す模式図である。
図4Aは、2つのコードワード(例えば2つのカラム)
が一度に処理されうる、本発明のある実施形態によるED
C/CRCチェッカ回路を示す模式図である。
図4Bは、図4Aの回路と等価である、EDC/CRCチェッカ
回路を示す模式図である。
図4Cは、2つのコードワード(例えば2つのカラム)
が一度に処理可能であり、かつ、データバイトおよび誤
りパターンが本質的に同時アクセス可能である、本発明
のある実施形態によるEDC/CRCチェッカ回路を示す模式
図である。
図5は、2つのインタリーブされたブロックに分割さ
れるものと概念づけられたバッファを図示しており、そ
れぞれのブロックは、複数のロウおよびカラムをなして
組織されるものと概念づけられたバイトを有している。
図6は、EDC/CRCチェッキング演算に伴う各ステップ
を図示するフローチャートである。
図7は、図4Aのチェッカのチップ指向のインプリメン
テーションを示す模式的ブロック図である。
図面の詳細な説明 図1は、システムコントローラ10を介してバッファ
(破線15によって概略的に示される)と通信する誤り訂
正システムを示す。バッファは、その中に例えば図2に
示すような複数のブロックを格納している。図1の誤り
訂正システムは、さらに発生器、つまり発生部20(例え
ば、シンドローム発生用)、計算器、つまり計算部30
(例えば、誤りパターン計算用)、訂正器、つまり訂正
部60、およびEDCチェッカ部70を含む。図1の誤り訂正
システムの動作の全体は、コントローラ10により、例え
ばバスCBUS上に運ばれる制御信号およびその他の信号を
用いることによって管理される。
図1に示されているように、EDC/CRCチェッカ70は、
訂正器60からのラインERR上の誤りパターン、およびラ
インGDAT上のバッファデータを受け取るように接続され
ている。システムコントローラ10は、コントロールバス
CBUSを用いて、EDC/CRCチェッカ70の動作全般を、訂正
器60およびバッファへのアクセスと共に、管理する。シ
ステムコントローラの動作および訂正の一例は、ここで
参考として援用される。1994年9月16日に出願されたCh
ris Zookによる「多目的誤り訂正システム(VERSATILE
ERROR CORRECTION SYSTEM)」と題された米国特許願第0
8/307,259号を参照すれば理解されるコンパクトディス
ク(CD)のディスクドライブのコンテクストで理解され
る。しかし、本発明の原理はそのような例に限定される
ものではなく、EDC/CRCチェッキング全般に広く適用可
能であることは理解されたい。
以下にさらに詳しく説明するように、システムコント
ローラ10の管理の下に、EDC/CRCチェッカ70は、訂正器6
0と協調して、バイトが訂正されるバッファの同じパス
のあいだに訂正の正確さのEDC/CRCベリファイをおこな
うように効果的に動作する。
図3Aは、データ(図2のバッファに格納されている)
を操作し、本発明の原理を説明するのに適したEDC/CRC
チェッカの機能模式図である。図3Aのチェッカ70は、累
算レジスタ702のかたちのメモリを特徴としている。累
算レジスタ702は、レジスタフィードスイッチすなわちM
UX704によりフィードされる。このMUX704は、最終的に
はシステムコントローラ10に接続される選択ライン705
により動作される。レジスタフィードMUX704は、3つの
選択可能な信号源に接続されている。すなわち、加算器
706、ロウ乗算器708およびカラム乗算器710である。ロ
ウ乗算器708は、加算器712に接続されるている。レジス
タ702の内容の一残余の、または累算された和−は、レ
ジスタ出力ライン714上で利用可能である。レジスタ出
力ライン714は、カラム乗算器710と、加算器712と、加
算器706とに接続されている。
バッファからの訂正されていないデータバイトは、ラ
インGDAT上でANDゲート715の第1端子に与えられる。AN
Dゲート715の第2端子は、システムコントローラ10から
信号NOT_LAST_COLを受け取る。チェッカ70が和を取る目
的でバッファから依然としてデータバイトを得ているあ
いだに、信号NOT_LAST_COLは、バッファからの訂正され
ていないデータバイトを、ANDゲート715を通して効率よ
くゲートし、加算器712に与える。
加算器712は、レジスタ702に累算された和(ライン71
4上で利用可能である)と、バッファからの訂正されて
いないデータバイト(ラインGDAT上で与えられる)とを
加算する。加算器712によりつくられた和は、ロウ乗算
器708に入力として与えられる。前述したように、ロウ
乗算器708からの出力は、MUX704に与えられる選択可能
な入力の1つである。
訂正器60からの誤りパターンを運ぶラインERRは、乗
算器716に接続されている。現在のコードワードと以前
のコードワードとの間のバイト同期オフセット(例え
ば、カラムオフセット)に対応可能とするために、乗算
器716は、定数x8modG(x)により乗算して、誤りパタ
ーン係数を発生する。乗算器716により発生された積
(誤りパターン係数)は、加算器706の第1入力端子に
与えられる。加算器706の第2入力端子は、上述したよ
うに、レジスタ出力ライン714に接続されている。
図3Aにおいて、ロウ乗算器708のための乗算定数は、
8・86modG(x)である。この定数は、次のロウへと
進めるはたらきをする(すなわち、バッファにおいて86
バイトだけ進める。ここで、1バイトは8ビットであ
る)。カラム乗算器710のための乗算定数は、x
−(86・24−1)・8modG(x)である。この定数は、
あるカラムコードワードのデータ部分の最後のバイトか
ら、次のカラムコードワードの先頭へと移動するはたら
きをする(すなわち、バッファにおいて2063バイトだけ
後退する。ここで、1バイトは、8ビットである)。
図3Aに図示されている例では、訂正されていないデー
タ(ラインGDAT上にある)の1バイトと、ブロックのバ
イト位置同期の取られた別のバイトとは、ただちに共に
利用可能となるのではなく、チェッカに対してシーケン
シャルに(まず誤りパターンが、次いでデータバイト
が)与えられるという前提を含む。一方、図3Bの実施形
態は、訂正されていないデータバイトと、誤りパターン
とが同時にアクセス可能である、チェック70'を示して
いる。図3Bの実施形態では、加算器706は除かれてお
り、MUX704は2入力スイッチになっており、乗算器716
の出力は、第3の入力として加算器712に与えられる。
図4Aは、パフォーマンス上の理由からある種の実施形
態では望ましいこともあるものである、2つのコードワ
ード(例えば、一度に2つのカラム)を処理するように
構成されたチェッカ70″を示している。図4Aの実施形態
は、例えば、バッファが2つのインタリーブされたブロ
ックを含むものとして概念づけられており、バッファの
2つのコードワードが一度に操作される時に利用可能で
ある。例えば、図5は、2つのインタリーブされたブロ
ック(偶数ブロックおよび奇数ブロック)を示してい
る。ここで、1ブロックのそれぞれのカラムにおけるバ
イトは、カラムコードワードを構成している。すなわ
ち、0000、0043、0086、…、0989として表現されたバイ
トは、偶数ブロックの第1のカラムコードワードのデー
タ部分を形成しており、バイト0001、0044、0087、…09
90は、偶数ブロックの第2のカラムコードワードのデー
タ部分を形成している。以下も、偶数ブロックおよび奇
数ブロックのそれぞれにおける合計43のカラムコードワ
ードについて同様である。また、図5に示すように、各
ブロックの最後の2バイト(具体的には1030、1031と表
現されたバイト)は、EDCまたはCRCバイトである。
図4Aのチェッカ70″は、累算レジスタ702″を備えて
いる。レジスタ702″へのフィードは、選択信号705″に
より支配される、スイッチつまりMUX704″により制御さ
れる。チェッカ70″は、4つの入力信号を受け取る。す
なわち、より低いオーダーのデータ入力信号DATLと、よ
り低いオーダーの誤りパターン入力信号ERRLと、より高
いオーダーのデータ入力信号DATHと、より高いオーダー
の誤りパターン入力信号ERRHとの4つである。図5のイ
ンタリーブされたブロックのシナリオを参照すれば、例
えば、より低いオーダーの入力は、偶数ブロックに対応
し、より高いオーダーの入力は奇数ブロックに対応して
いてもよい。すなわち、DATLは、偶数ブロックからのカ
ラムコードワードCWevenNの選択されたバイトに対する
訂正されていないデータであり、ERRLは、カラムコード
ワードCWevenNの選択されたバイトと所定のバイト同期
関係にある(カラムコードワードCWevenN-1における)
バイトに対する誤りパターンであってもよい。DATHは、
奇数ブロックからのカラムコードワードCWoddNの選択さ
れたバイトに対する訂正されていないデータであり、ER
RHは、カラムコードワードCWoddNの選択されたバイトと
同期関係にある(カラムコードワードCWoddN-1におけ
る)バイトに対する誤りパターンであってもよい。
チェッカ70″は、さらに5つの乗算器を備えている。
すなわち、カラム乗算器710″と、ロウ乗算器708″と、
それぞれラインDATH、ERRLおよびERRH上に設けられた乗
算器750、760および770の5つである。乗算器708、71
0、750、760および770に対する乗算定数は、表Iにより
与えられる。
乗算器750、760、770の出力は、スイッチつまりMUX78
0のそれぞれの入力端子に接続されている。MUX780の出
力端子は、加算器790の第1入力端子に接続されてい
る。加算器790の第2入力端子は、レジスタ702″の出力
ライン714″に接続されている。加算器790の出力端子
は、MUX704″の第1入力端子に接続されており、MUX70
4″の他の2つの入力端子は、乗算器708″および710″
の出力端子に接続されている。図3Aの実施形態の場合と
同様に、ラインDATLは、信号NOT_LAST_COLがオンである
限りそれを通してデータバイトをゲートするためにその
上に接続されたANDゲート715″を有している。
図4Bは、図4Aの回路70″と本質的には等価であるチェ
ッカ回路70″’を示している。図4Bのチェッカ回路7
0″’は、いくつかの点で図4Aの回路70″と異なる。第
1の相違は、16ビット値に変換される信号DATL16、DAT
H16、ERRH16およびERRL16のフォーマットを伴う。具体
的には、ERRH16は、ERRHと、8つのゼロビットとを連結
することにより得られる16ビット値である。ここで、ER
RHは、高いオーダーの位置にある。ERRL16は、ERRLと、
8つのゼロビットとを連結することにより得られる16ビ
ット値である。ここで、ERRLは、低いオーダーの位置に
ある。DATH16およびDATL16は、それぞれERRH16およびER
RL16と同様に形成される。連結以前の誤りおよびデータ
バイトは、それぞれ8ビット長であり、CRC多項式は16
ビット長であるので、ERRの乗算、すなわちDATにX8を乗
ずることは、単に下位8ビットを上位8ビットにシフト
することであり、また(以下に述べるように)図4Bの乗
算器765の使用を、図4Aの乗算器750、760、770よりもむ
しろ容易にする。
図4Bと図4Aとの間の第2の相違は、ラインERRH16およ
びERRI16がMUX767をフィードしており、MUX767は乗算器
765をフィードしている点である。乗算器765の乗算定数
は、x16modG(x)である。乗算器765およびDATH16はと
もに、MUX780″’に接続されている。MUX780″’の出力
は、加算器790″’に接続されている。
図7は、2つの16ビット多項式を用いて2つのチェッ
クをおこなうための2つのCRC/EDC回路を設けている、
図4Bのチップ指向のインプリメンテーションを示してい
る。図7のチェッカ70″’は、一対の前置乗算器チップ
730(0)、730(1)と、一対の累算レジスタ732
(0)、732(1)と、EDC比較器734とを備えている。
チェッカ70″’では、両回路共に、(それぞれ前置乗算
器730(0)、730(1)を介して)、同一のデータの後
続する同一の誤りパターンを受け取る。
図7において、前置乗算器730(0)は多項式x16+x
15+x2+1を用い、前置乗算器730(1)は、多項式x16
+x2+x+1を用いる。例えば、図4Bに示されているそ
れぞれの乗算器について、図7のそれぞれの前置乗算器
730は、それ自身のXOR論理ゲートのセットを有してい
る。前置乗算器730の乗算器用の論理ゲートセットの構
成は、特定の乗算器への入力信号を、その乗算器固有の
16×16の2進行列で乗算し(例えば、複数のロウおよび
カラムをペアにし、その内積をとり)、16ビットの出力
信号を得ることと等価である。信号DATL16、DATH16、ER
RH16およびERRL16について既に述べたように、乗算以前
に、入力信号(例えば、DATLのような8ビット入力ベク
トル)は、その一端または他端が8つのゼロで埋め込ま
れて、その乗算用の16ビットベクトルをつくる(例え
ば、ベクトルDATL16を生じる)。
それぞれの乗算器の出力ベクトルのビットは、入力ベ
クトルのビットの線形結合であるので、行列乗算、すな
わち[0]=[I][T]により得られる。ここで、
[I]および[0]は、その右側にビット0をもつ入力
および出力ロウベクトルであり、[T]は、xmodG
(x)で乗算するための行列である。
前置乗算器730(0)については、乗算器765の乗算を
説明する16×16の2進行列は表2に与えられている。ロ
ウ乗算器708″用の行列は、表3に与えられている。カ
ラム乗算器710″用の行列は、表4に与えられている。
前置乗算器730(1)については、乗算器765の乗算を説
明する16×16の2進行列は表5に与えられている。ロウ
乗算器708″用の行列は、表6に与えられている。カラ
ム乗算器710″用の行列は、表7に与えられている。
上記乗算の例としては、 ERRH・X24modG1(x)=ERRH・X8・X16modG1(x)=ERRH16・X16modG1(x) [I]=[E0E1E2...E70000000] 出力のBIT0は、E0+E2+E3+E4+E5+E6+E7である。
図3Aと同様に、図4Aおよび図4Bに図示の例において
も、訂正されていないデータ(ラインGDAT上)の2バイ
トと、そのブロックの別のバイト位置同期のとられたバ
イト用の2つの誤りパターンとは、ただちに共に利用可
能となるのではなく、チェッカ70″にシーケンシャル
(まず誤りパターンが、次いでデータバイトが)与えら
れることを前提として含む。図4Cの実施形態が、図4Aの
実施形態と異なるのは、図4Cのチェッカ70″’が、本質
的に同時に利用可能となるデータバイトおよび誤りパタ
ーンのペアを処理する点である。図4Cの実施形態のロウ
およびカラム乗算器の定数は、図4Aの実施形態の場合と
同じである。
図4Cの実施形態では、チェッカ70′は、カラム乗算
器710′またはロウ乗算器708′により(2入力MUX7
50′を介して)フィードされるレジスタ702′を備
えている。レジスタ出力ライン714′は、加算器790
′の第1入力端子に接続されている。加算器790′
のその他4つの入力端子は、それぞれラインDATL、DA
TH、ERRLおよびERRHに接続されている。ラインDATH、ER
RLおよびERRHは、それぞれ、その上に接続された乗算器
750′、760′および770′を有している。加算器7
90′の出力端子は、ロウ乗算器708′の入力端子に
与えられる。ANDゲート715′は、ラインDATLおよびDA
TH上に設けられている。
動作 例えば図2を参照して既に述べたように、本発明のセ
クタは、86のカラムから構成されるブロックを含んでい
る。ここで、そのブロックのそれぞれのカラムにおける
バイトが1コードワードを構成している。CRC/EDCチェ
ックを目的として、コードワードのデータ部分のみが利
用される。したがって、以下で用いられる「コードワー
ド」は、そうではないと特に断らない限り、コードワー
ドのデータ部分のみを意味するものとする(つまり、コ
ードワードのECC部分を除くものとする)。例えば、000
0、0086、0172、…1978と表現されたバイトは、第1の
カラムコードワードのデータ部を形成しており、バイト
0001、0087、0173、…1979は、第2のコードワードのデ
ータ部を形成している。以下も、ブロックの合計86のコ
ードワードのすべてについて同様である。また、図1に
示されているように、それぞれのブロックの最後の4つ
のデータバイト(具体的には、例えばバイト2060、206
1、2062、2063と表されたバイト)は、EDCバイトまたは
CRCバイトである。
システムコントローラによるEDC/CRCチェッカ70の管
理に伴う各ステップは、図7に示されている。ステップ
S2において、カウンタ値ROWCOUNTおよびCOLCOUNTは、累
算レジスタ702における値(REGSUM)と共に、ゼロに初
期化される。また、最後のカラムフラグ(LASTCOL)
は、FALSEに初期化される。初期化ステップS2に続い
て、偶数番のステップS4〜S22を含むループが実行され
る。
このループのはじめ(ステップS4)に、ROWCOUNTおよ
びCOLCOUNTの現在の値により参照されるバイトと同期の
とられたバイト関係にある、バッファ内のバイトについ
て訂正がなされているかどうかが判定される。ここで説
明されている実施形態では、バイト同期関係とは、訂正
が以前のコードワードに対して(つまり、以前のコード
ワード、すなわち[COLCOUNT−1,ROWCOUNT]のバイトRO
WCOUNTについて)おこなわれるようにするものであるの
で、バッファ内の第1のカラムコードワードに対するル
ープを実行するときには、何の訂正も実行されない。
具体的には、ここで説明されている実施形態では、バ
イト位置同期とは、ステップS2において、ブロックのバ
イト(COLCOUNT−1,ROWCOUNT)に対する誤りパターンが
存在するかどうかが判定されるようにするものである。
前述したように、ステップ1608の判定は、ブロックの第
1のコードワードを処理する時には、否定になる。しか
し、後続するカラムコードワードの処理のあいだの判定
は、以下を代表として説明される。図1のバイト0001が
ROWCOUNTおよびCOLCOUNTの現在の値によりアクセスされ
るとき、誤りパターンの発生に関する判定が、バイト00
00についてなされる。図1のバイト0087がROWCOUNTおよ
びCOLCOUNTの現在の値により示されるとき、誤りパター
ンの発生に関する判定は、バイト0086についてなされ
る。以下も同様である。なお、本発明はこのような特定
のバイト同期関係に限定されないことは理解されたい。
なぜなら、その他のオフセット(例えば、さまざまに異
なる度合いのカラムオフセット)が、システム全体のそ
の他の考察に基づいて適当である範囲内で用いられうる
からである。
第1のコードワード以外のコードワードに対応するル
ープの実行については、以前のコードワードの対応する
バイトが訂正を必要とすることがある。訂正が必要とさ
れるとき、ステップS6において、同期のとられたバイト
(例えば、以前のコードワードの同期のとられたバイ
ト)に対する誤りパターン係数が、レジスタ702に加算
される。この誤りパターン係数は、誤りパターン(E
(x)、信号ERRにより運ばれる)を、乗算器716を用い
て乗算器定数(x8modG(x))で乗算することにより得
られる。換言すれば、ステップS6では、レジスタ702
は、REGSUM+E(x)x8modG(x)を得る。同期のとら
れたバイトが、そのブロックの最も最近にアクセスされ
たバイトから1カラムだけ(つまり、1バイトすなわち
8ビットだけ)オフセットされるという事実が、同期の
とられたバイトに対する誤りパターンはx8modG(x)に
より乗算されねばならない理由となる。この同じループ
を実行するあいだ、ステップS6で利用された誤りパター
ンは、また、バッファ内のブロックにおけるデータバイ
トを訂正するためにも用いられる。
ステップS8では、バッファからの訂正されていないデ
ータバイトがすべて、既にレジスタ702に加算されたか
どうか(つまり、COLCOUNTがバッファにおけるコードワ
ードの個数を超えたかどうか)が判定される。この判定
は、フラグLASTCOLの値をチェックすることによりなさ
れる。もしバッファからの訂正されていないデータバイ
トがすべて加算されていないのなら、実行は、ステップ
S10に続く。そうでなければ、実行は、ステップS12に続
く。
ステップS10では、チェッカ70は、ブロックからの次
の訂正されていないデータバイトを得る。具体的には、
ステップS10において、ブロックからの次の訂正されて
いないデータバイトは、データバイト(COLCOUNT、ROWC
OUNT)となる。このループを最初に実行するとき、得ら
れる最初のバイトは、バイト0000となる。このループを
引き続いて連続的に繰り返し実行するために、ステップ
S10では、ブロックのさらなるバイトがECCカラムコード
ワードの順番でアクセスされる(例えば、バイト0086、
0172、…、1978、0001、0087、…1979、0002、…206
3)。ステップS10では、ステップS10で得られたバイト
は、(ラインGDAT上で)で与えられ、レジスタ702に累
算された和(REGSUM)に(加算器712により)加算され
る。加算器712の和は、今度はロウ乗算器708のロウ進み
乗算定数x86・8modG(x)およびレジスタ702に格納
されている積により乗算される。よって、ステップS10
では、次の訂正されていないデータバイト係数D(x)
86・6modG(x)が、レジスタ702内の値(REGSUM)
に加算される。
ステップS12は、ブロックからの訂正されていないデ
ータバイトがすべてレジスタ702に加算されており(例
えば、ステップ710と同様に)、最後のコードワードに
対する誤りパターン係数の処理のみがおこなわれている
時に実行される。ステップS12では、レジスタ702の内容
は、ロウ乗算器708の乗算定数x86・6modG(x)によ
り乗算される。
ステップS10またはS12を実行した後、ステップS14で
は、ROWCOUNTの値は1だけインクリメントされる。も
し、ステップS16で判定されるときに、ROWCOUNTのイン
クリメントされた値が24に等しくないのなら、ステップ
S4に始まるループが、現在のコードワードの次のバイト
について実行される。しかし、もしROWCOUNTのインクリ
メントされた値が24に等しいのなら、ステップS18が実
行される。ROWCOUNTの値は、24を超えることを許されな
い。なぜなら、それぞれのカラムコードワードには24の
データバイトしかないからである。
ステップS18では、新しいカラムへの進みを考慮し
て、カラム乗算器710は、レジスタ702の内容を、カラム
調整定数x−(86・24−1)・8modG(x)で乗算する
はたらきをする。
ステップS18の後、ステップS20では、ROWCOUNTはゼロ
にリセットされ、COLCOUNTは1だけインクリメントされ
る。ステップS22は、フラグLASTCOLがセットされている
かどうかをチェックする。もしフラグLASTCOLがセット
されていないのなら、(ステップS24で)COLCOUNTの値
が最後のカラムの数を超えた(例えば、COLCOUNTが86で
ある)かどうかチェックされる。もしブロックの最後の
カラム(例えば、最後のコードワード)が超えられてい
ないのなら、実行は、ステップS2に戻り、ブロックの新
しいコードワードの最初のバイトについて継続する。そ
うでなければ、フラグLASTCOLは、ステップS2に戻って
ブロックの最後のコードワードに対する何らかの誤りパ
ターンを処理する以前に、ステップS26でTRUEにセット
される。
ブロックの最後のコードワードに対する誤りパターン
係数(がもしあれば、それ)がレジスタ702に加算され
た後、フラグLASTCOLを(ステップS22で)TRUEにセット
することによって、実行は、ステップS28にジャンプす
る。ステップS28では、レジスタ702における値(つま
り、値REGSUM)がゼロであるかどうかが判定される。ル
ープがすべて終了した後のレジスタ702における値は、
バッファにおける全バイト(CRCバイトを含む)から構
成される多項式をCRC発生器の多項式で除算したときの
剰余である。レジスタ702の値がゼロであることは、訂
正器60によりおこなわれた誤り訂正が正確であることを
確証する。
よって、レジスタ702にブロックの誤ったままになる
可能性のある(つまり、訂正されていない)データバイ
トを加算することは、レジスタ702にブロックの位置的
に同期のとられたバイトに対する誤りパターン係数(が
あれば、それ)を加算することと、時間的に合わせられ
ていることがわかる。
図3Bのチェッカ70'、図4Aのチェッカ70″、図4Bのチ
ェッカ70″’および図4Cのチェッカ70′の動作は、図
7に伴う各ステップについて既に述べた議論を参照すれ
ば理解される。図4A、図4Bおよび図4Cでは、2つのコー
ドワードが一度に操作される。図7の実施形態では、図
6の各ステップが、2つの構成要素であるチェッカ回路
70″’のそれぞれについて実行される。ここで、各構成
要素をなすチェッカ回路は、同一のデータを受け取る
が、2つの16ビット多項式の互いに異なる1つずつを用
いて動作する。最後に、両チェッカ回路は、ブロックを
訂正可能とするためには、結果的にゼロとならなければ
ならない。
よって、以上の説明から明らかなように、本発明によ
れば、CRC/EDCチェックは、データバイトの訂正が実行
されるバッファを通る同一のパスの間におこなわれる。
本発明の方法は、バッファにおけるバイトにシーケンシ
ャルにアクセスすることと、バッファの第1の選択され
たバイトを累算された和に(例えば、ステップS10で)
加算することとを伴う。ここで、アクセスされるバイト
は、もしその訂正が必要とされるのなら、まだ訂正を受
けてはいない。このパスが第1の選択されたバイトを指
しているあいだに、そのブロックの第2のバイトが、第
2のバイトに対する誤りパターンを用いて訂正される。
ここで、第1の選択されたバイトと第2の選択されたバ
イトとの間には、バイト位置同期関係がなりたち、ま
た、第2のバイトは、訂正されていない状態で、累算さ
れた和に既に加算されている。第2のバイトに対する誤
りパターン係数は、累算された和に(例えは、ステップ
S6で)加算される。それに引き続いて、ただし同一のパ
スの間に、第1のバイトに対する誤りパターン係数が、
累算された和に加算される。
以上に本発明を、その好ましい実施形態に言及しなが
ら具体的に示し、説明してきたが、その形式および詳細
については、本発明の精神および範囲から離れることな
く、さまざまな改変がその中になされうることは、当業
者には理解できるであろう。例えば、望みとあれば、2
つよりも多くのインタリーブに適応させることも可能で
ある。
独占所有権、すなわち特権を請求する本発明の実施形
態は、以下のように規定される。
フロントページの続き (73)特許権者 595158337 3100 West Warren Ave nue,Fremont,Califo rnia 94538,U.S.A. (56)参考文献 特開 昭63−255876(JP,A) 特開 昭63−257966(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 13/00

Claims (25)

    (57)【特許請求の範囲】
  1. 【請求項1】バッファ内にブロックの形態で格納された
    情報のバイトをチェックするシステムであって、 該バッファの訂正アクセスのあいだに、該ブロックの指
    定されたバイトを訂正するのに用いられる誤りパターン
    を出力する訂正ユニットと、 該バッファの該訂正アクセスのあいだに、該ブロックの
    該バイトに対して処理をおこない、該ブロックが訂正さ
    れたことを確認するためにCRC/EDC情報を用いるCRC/EDC
    チェッカと、 を備え、 該CRC/EDCチェッカが該ブロックの該バイトの和をとる
    ように動作し、 該訂正アクセスのあいだ、訂正されているバイトと、和
    のとられているバイトとの間にバイト位置同期関係がな
    りたつ、システム。
  2. 【請求項2】前記訂正パスのあいだ、前記チェッカが、
    前記ブロックからの選択されたバイトを前記和に加算し
    た後、該選択されたバイトが該選択されたバイトに対す
    る誤り値を用いて訂正されているあいだに、該和に対し
    て、該選択されたバイトに対する該誤り値を含む係数を
    も加算する、請求項1に記載のシステム。
  3. 【請求項3】前記訂正パスのあいだ、前記チェッカが、
    前記バッファからの選択されたバイトを前記和に加算し
    た後、該選択されたバイトが該選択されたバイトに対す
    る誤り値を用いて訂正されているあいだに、該和に対し
    て、該選択されたバイトに対する該誤り値を含む係数を
    も加算する、請求項2に記載のシステム。
  4. 【請求項4】バッファにおけるバイトの訂正ユニットに
    よる訂正と同期して、該バッファにおける情報のバイト
    をチェックするCRC/EDCチェッカシステムであって、 和が累算されるメモリ装置と、 該メモリに累算された該和に対して (1)該訂正ユニットによりまだ訂正されていない、該
    バッファの1バイト、および (2)該和に既に加算された1バイトに対する誤りパタ
    ーン を加算する加算器と、 を備え、 該和に加算された該バイトが、該誤りパターンが加算さ
    れている該バイトとバイト位置同期関係を有している、
    CRC/EDCチェッカシステム。
  5. 【請求項5】前記バッファが、複数のカラムおよびロウ
    を含むものと概念づけられ、該バッファに加算される前
    記バイトと、前記誤りパターンが加算される前記バイト
    とが同一のロウにある、請求項4に記載のCRC/EDCチェ
    ッカシステム。
  6. 【請求項6】前記誤りパターンが、前記累算された和に
    加算される誤りパターン係数に含まれており、該誤りパ
    ターン係数が、さらに定数の倍数を含んでいる、請求項
    4に記載のCRC/EDCチェッカシステム。
  7. 【請求項7】前記定数の倍数の値が、前記バイト位置同
    期関係に依存している、請求項6に記載のCRC/EDCチェ
    ッカシステム。
  8. 【請求項8】バッファに格納されている情報のバイトを
    チェックする方法であって、 該バッファ内の第1の選択されたバイトにアクセスし、
    該第1の選択されたバイトを累算された和に加算するス
    テップと、 該バッファ内の第2の選択されたバイトに対する誤りパ
    ターンを用いて、該バッファにおける該第2の選択され
    たバイトを訂正するステップと、 該第2の選択されたバイトに対する誤りパターンを、該
    累算された和に加算するステップと、 を含み、 該第1の選択されたバイトと、該第2の選択されたバイ
    トとの間にバイト位置同期関係がなりたつ、方法。
  9. 【請求項9】前記バッファが、複数のカラムおよびロウ
    を含むものと概念づけられ、前記第1の選択されたバイ
    トと、前記第2の選択されたバイトとが、同一のロウに
    ある、請求項8に記載の方法。
  10. 【請求項10】前記誤りパターンが、前記累算された和
    に加算される誤りパターン係数に含まれており、該誤り
    パターン係数が、さらに定数の倍数を含んでいる、請求
    項8に記載の方法。
  11. 【請求項11】前記定数の倍数の値が、前記バイト位置
    同期関係に依存している、請求項10に記載の方法。
  12. 【請求項12】バッファに格納されている情報のバイト
    をチェックする方法であって、 バッファ内のバイトにシーケンシャルにアクセスするス
    テップと、 該バッファの第1の選択されたバイトを累算された和に
    加算するステップであって、該アクセスされたバイト
    は、もしその訂正が必要とされるのなら、まだ訂正を受
    けてはいない、ステップと、 該バッファ内の第2の選択されたバイトに対する誤りパ
    ターンを用いて、該第2の選択されたバイトを訂正する
    ステップと、 該第2の選択されたバイトに対する該誤りパターンを、
    該累算された和に加算するステップと、 を含み、 該第1の選択されたバイトと、該第2の選択されたバイ
    トとの間にバイト位置同期関係がなりたつ、方法。
  13. 【請求項13】前記バッファが、複数のカラムおよびロ
    ウを含むものと概念づけられ、該バッファに加算される
    前記バイトと、前記誤りパターンが加算される前記バイ
    トとが、同一のロウにある、請求項12に記載の方法。
  14. 【請求項14】前記誤りパターンが、前記累算された和
    に加算される誤りパターン係数に含まれており、該誤り
    パターン係数が、さらに定数の倍数を含んでいる、請求
    項12に記載の方法。
  15. 【請求項15】前記定数の倍数の値が、前記バイト位置
    同期関係に依存している、請求項14に記載の方法。
  16. 【請求項16】バッファ内にブロックフォーマットで格
    納された情報のバイトを、該バッファの1パスのあいだ
    にチェックする方法であって、 該1パスのあいだに第1の選択されたバイトを累算され
    た和に加算するステップと、 該累算された和に対して、該第1の選択されたバイトに
    対する誤りパターンを加算する、後続はするが該同一パ
    ス内のステップと、 該第1の選択されたバイトが該累算された和に加算され
    た後、該誤りパターンを用いて該第1の選択されたバイ
    トを訂正するステップと、 を含み、 該誤りパターンが、該累算された和に加算される誤りパ
    ターン係数に含まれており、該誤りパターン係数が、さ
    らに定数の倍数を含んでおり、 該定数の倍数の値が、該バイト位置同期関係に依存して
    いる、方法。
  17. 【請求項17】バッファ内にブロックフォーマットで格
    納された情報のバイトをチェックする方法であって、 該バッファ内のバイトに該ブロックを通して一回のパス
    アクセスでシーケンシャルにアクセスするステップと、 アクセスされる時に、第1のバイトを累算された和に加
    算するステップであって、該第1のバイトは、もしその
    訂正が必要とされるのなら、まだ訂正を受けてはいな
    い、ステップと、 該ブロックの第2のバイトに対する誤りパターンを用い
    て、該第2のバイトを訂正するステップであって、該第
    2のバイトが、訂正されていないままで、該累算された
    和に既に加算されている、ステップと、 該第2のバイトに対する該誤りパターンを、該累算され
    た和に加算した後、該同一のパスのあいだに、 第3のバイトを該累算された和に加算し、 該第1のバイトに対する誤りパターンを用いて該第1の
    バイトを訂正し、かつ 該第1のバイトに対する該誤りパターンを該累算された
    和に加算する、ステップと、 を含み、 該第1の選択されたバイトと、該第2の選択されたバイ
    トとの間にバイト位置同期関係がなりたつ、方法。
  18. 【請求項18】前記バッファが、複数のカラムおよびロ
    ウを含むものと概念づけられ、前記第1の選択されたバ
    イトと、前記第2の選択されたバイトとが、同一のロウ
    にある、請求項17に記載の方法。
  19. 【請求項19】前記誤りパターンが、前記累算された和
    に加算される誤りパターン係数に含まれており、該誤り
    パターン係数が、さらに定数の倍数を含んでいる、請求
    項17に記載の方法。
  20. 【請求項20】前記定数の倍数の値が、前記バイト位置
    同期関係に依存している、請求項19に記載の方法。
  21. 【請求項21】前記ブロックを通した前記単一パスアク
    セスが完了したとき、もし該ブロックが正しく訂正され
    ていれば、前記累算された和がゼロである、請求項17に
    記載の方法。
  22. 【請求項22】バッファにおけるデータブロック内のバ
    イトについてEDC/CRCチェックをおこなう方法であっ
    て、 該ブロック内の訂正されていないデータバイトにシーケ
    ンシャルにアクセスし、それぞれの訂正されていないデ
    ータバイトを、該バイトにアクセスしたときに、累算さ
    れた和に加算するステップと、 訂正されていないデータバイトがアクセスされるとき
    に、該ブロック内の位置に関連するデータバイトが、利
    用可能な誤りパターンを有しているかどうかを判定する
    ステップであって、該位置に関連するデータバイトは、
    該累算された和に既に加算されている、ステップと、も
    し利用可能な誤りパターンが存在するのなら、 該位置に関連するデータバイトに対する該利用可能な誤
    りパターンを、該累算された和に加算する、ステップ
    と、 該ブロック内の訂正されていないデータバイトにシーケ
    ンシャルにアクセスするあいだに、該位置に関連するデ
    ータバイトを訂正するステップと、 を含み、 該位置に関連するデータバイトが、該アクセスされた訂
    正されていないデータバイトとバイト同期の取られた関
    係にある、方法。
  23. 【請求項23】バッファにおけるデータブロック内のバ
    イトについてEDC/CRCチェックをおこなう方法におい
    て、該バイトがコードワードに組織される、方法であっ
    て、 該ブロック内の最も最近のコードワードに対する訂正さ
    れていないデータバイトを累算された和にシーケンシャ
    ルに加算するステップと、 該最も最近のコードワードに対する訂正されていないデ
    ータバイトがアクセスされるときに、以前のコードワー
    ドにおける対応するデータバイトが、利用可能な誤りパ
    ターンを有しているかどうかを判定するステップであっ
    て、該以前のコードワードの該対応するデータバイト
    は、該累算された和に既に加算されている、ステップ
    と、もし利用可能な誤りパターンが存在するのなら、 該以前のコードワードの該対応するデータバイトに対す
    る該利用可能な誤りパターンを、該累算された和に加算
    するステップと、 を含む方法。
  24. 【請求項24】前記最も最近のコードワードの訂正され
    ていないデータバイトが、前記累算された和に加算され
    ていくあいだに、前記以前のコードワードの前記対応す
    るデータバイトを訂正するステップ をさらに含んでいる、請求項23に記載の方法。
  25. 【請求項25】前記以前のコードワードの前記対応する
    データバイトが、前記累算された和に加算されていく前
    記最も最近のコードワードの前記データバイトとバイト
    同期の取られた関係にある、請求項23に記載の方法。
JP51040696A 1994-09-16 1995-09-15 Crc/edcチェッカシステム Expired - Lifetime JP3281387B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/306,917 US5592498A (en) 1994-09-16 1994-09-16 CRC/EDC checker system
US306,917 1994-09-16
PCT/US1995/011988 WO1996008874A1 (en) 1994-09-16 1995-09-15 Crc/edc checker system

Publications (2)

Publication Number Publication Date
JPH10508988A JPH10508988A (ja) 1998-09-02
JP3281387B2 true JP3281387B2 (ja) 2002-05-13

Family

ID=23187456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51040696A Expired - Lifetime JP3281387B2 (ja) 1994-09-16 1995-09-15 Crc/edcチェッカシステム

Country Status (7)

Country Link
US (1) US5592498A (ja)
EP (1) EP0781471B1 (ja)
JP (1) JP3281387B2 (ja)
KR (1) KR970706656A (ja)
CN (1) CN1113474C (ja)
DE (1) DE69524430T2 (ja)
WO (1) WO1996008874A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012839A (en) * 1995-06-30 2000-01-11 Quantum Corporation Method and apparatus to protect data within a disk drive buffer
US6048090A (en) * 1997-04-23 2000-04-11 Cirrus Logic, Inc. Error correction and concurrent verification of a product code
US5920578A (en) * 1997-04-23 1999-07-06 Cirrus Logic, Inc. Method and apparatus for efficiently processing a multi-dimensional code
US5974580A (en) * 1997-07-23 1999-10-26 Cirrus Logic, Inc. Concurrent row/column syndrome generator for a product code
US5996105A (en) * 1997-11-14 1999-11-30 Cirrus Logic, Inc. ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
US6052815A (en) * 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device
US5991911A (en) * 1997-11-14 1999-11-23 Cirrus Logic, Inc. Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US6128760A (en) * 1998-10-13 2000-10-03 Lsi Logic Corporation Method and apparatus for calculating a CRC remainder
JP3527873B2 (ja) * 1999-09-03 2004-05-17 松下電器産業株式会社 誤り訂正装置
CN101673296B (zh) * 2009-09-02 2011-07-20 太仓市同维电子有限公司 数据通讯过程中文件校验的方法
CN102487282A (zh) * 2010-12-03 2012-06-06 上海华虹集成电路有限责任公司 一种实现可变长crc运算的电路
CN103809147A (zh) * 2012-11-12 2014-05-21 苏州工业园区新宏博通讯科技有限公司 一种交流电表故障自诊断方法
US10489240B2 (en) * 2015-09-25 2019-11-26 Microsoft Technology Licensing, Llc Efficient detection of corrupt data

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3868632A (en) * 1972-11-15 1975-02-25 Ibm Plural channel error correcting apparatus and methods
US3851306A (en) * 1972-11-24 1974-11-26 Ibm Triple track error correction
US4712215A (en) * 1985-12-02 1987-12-08 Advanced Micro Devices, Inc. CRC calculation machine for separate calculation of checkbits for the header packet and data packet
CN1009047B (zh) * 1985-12-27 1990-08-01 复旦大学 交叉穿插的里德-所罗门码的高速纠错译码系统
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
JPS63255876A (ja) * 1987-04-14 1988-10-24 Matsushita Electric Ind Co Ltd 符号誤り検出方法
US4949342A (en) * 1987-04-14 1990-08-14 Matsushita Electric Industrial Co., Ltd. Code error detecting method
JPS63257966A (ja) * 1987-04-15 1988-10-25 Matsushita Electric Ind Co Ltd 符号誤り検出方法
US4817095A (en) * 1987-05-15 1989-03-28 Digital Equipment Corporation Byte write error code method and apparatus
US5220568A (en) * 1988-05-31 1993-06-15 Eastman Kodak Company Shift correcting code for channel encoded data
US5218691A (en) * 1988-07-26 1993-06-08 Disk Emulation Systems, Inc. Disk emulation system
ES2054909T3 (es) * 1989-03-22 1994-08-16 Siemens Ag Procedimiento para el control de calidad al menos de dos secciones de transmision de un trayecto de transmision de señales digitales y dispositivo para la realizacion del procedimiento.
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5384786A (en) * 1991-04-02 1995-01-24 Cirrus Logic, Inc. Fast and efficient circuit for identifying errors introduced in Reed-Solomon codewords
US5291584A (en) * 1991-07-23 1994-03-01 Nexcom Technology, Inc. Methods and apparatus for hard disk emulation
US5422895A (en) * 1992-01-09 1995-06-06 Quantum Corporation Cross-checking for on-the-fly Reed Solomon error correction code
US5329535A (en) * 1992-04-30 1994-07-12 International Business Machines Corporation Variable block lengths on-the-fly error correcting decoder
US5592404A (en) * 1993-11-04 1997-01-07 Cirrus Logic, Inc. Versatile error correction system

Also Published As

Publication number Publication date
JPH10508988A (ja) 1998-09-02
DE69524430D1 (de) 2002-01-17
EP0781471B1 (en) 2001-12-05
CN1164941A (zh) 1997-11-12
US5592498A (en) 1997-01-07
EP0781471A1 (en) 1997-07-02
CN1113474C (zh) 2003-07-02
WO1996008874A1 (en) 1996-03-21
DE69524430T2 (de) 2002-08-14
KR970706656A (ko) 1997-11-03

Similar Documents

Publication Publication Date Title
US6048090A (en) Error correction and concurrent verification of a product code
US5920578A (en) Method and apparatus for efficiently processing a multi-dimensional code
US5157669A (en) Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors
US5170399A (en) Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
US5592404A (en) Versatile error correction system
US4142174A (en) High speed decoding of Reed-Solomon codes
US4881232A (en) Method and apparatus for error correction
US5996105A (en) ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
JP3281387B2 (ja) Crc/edcチェッカシステム
US6018626A (en) Error correction method and apparatus for disk drive emulator
JPS58219852A (ja) エラ−訂正回路
JP3245119B2 (ja) 新たな多項式配列構造を採用したリード−ソロモン復号器とその復号方法
EP0905911A2 (en) Data error correcting method and apparatus
US5555516A (en) Multipurpose error correction calculation circuit
JP2001127645A (ja) 誤り訂正方法および誤り訂正装置
US6128760A (en) Method and apparatus for calculating a CRC remainder
JP2810397B2 (ja) 誤り訂正装置
US5450420A (en) Error correction system for correcting errors generated in digital signals
JP2662472B2 (ja) 誤り訂正処理用シンドローム演算回路
JP2001292066A (ja) 誤り訂正装置および誤り訂正方法
US6564352B1 (en) Error detection circuit applicable to a disk reproduction apparatus
JP3252515B2 (ja) 誤り訂正装置
JP3135552B2 (ja) リードソロモン符号の誤り検出及び訂正装置
JP2907138B2 (ja) 誤り訂正の演算処理方法及び処理回路
JP2553571B2 (ja) ガロア体演算装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100222

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100222

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140222

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term