JP4102546B2 - 積符号のための同時行/列シンドロームジェネレータ - Google Patents

積符号のための同時行/列シンドロームジェネレータ Download PDF

Info

Publication number
JP4102546B2
JP4102546B2 JP2000504660A JP2000504660A JP4102546B2 JP 4102546 B2 JP4102546 B2 JP 4102546B2 JP 2000504660 A JP2000504660 A JP 2000504660A JP 2000504660 A JP2000504660 A JP 2000504660A JP 4102546 B2 JP4102546 B2 JP 4102546B2
Authority
JP
Japan
Prior art keywords
syndrome
error
codewords
buffer
codeword
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
JP2000504660A
Other languages
English (en)
Other versions
JP2001511615A (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 JP2001511615A publication Critical patent/JP2001511615A/ja
Application granted granted Critical
Publication of JP4102546B2 publication Critical patent/JP4102546B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【0001】
(発明の分野)
本発明は、コンピュータ記憶装置のための誤り訂正システムに関し、具体的には、多次元符号の符号語(codeward)のシンドローム(syndrome)を生成する有用な方法および装置に関する。
【0002】
(発明の背景)
コンピュータシステムのための記憶装置では、同心または螺旋データトラックの形の回転磁気または光ディスクの表面に遷移の連続を書き込むために、デジタルデータストリームは、書き込み変換器の動作(例えば、コイルの電流またはレーザビームの強度)を変調する。記録されたデータの読み出しは、読み出し変換器をデータトラックの上で位置決めし、表面遷移を検知し、そして結果として得られるアナログ読み出し信号を、最初に記録されたデータを表す推定データシーケンスに復調することを必要とする。
【0003】
データをディスク記憶装置に記録し、そしてディスク記憶装置から読み出すプロセスは、デジタルデータがケーブルまたは大気などの雑音を伴う通信媒体を介して送られる通信チャネルと同様である。通信システムおよび記録システムの両方における目標は、送られた/記録されたデータを信頼性高く且つ効率的に受け取る/読み出すことである。信頼性は、データがどれくらい正確に受け取られたかの尺度である。あるいは、記録/通信プロセスに固有の雑音により改悪された後にチャネル信号から検出される推定データシーケンスのビット誤り率である。効率は、ソースデータレートの尺度である。即ち、特定のビット誤り率を維持しながら、ソースデータを通信媒体を介していかに速く送ることができるか、である。コンピュータ記憶システムでは、効率は、所与のトラックの線形データ密度、および1インチあたりの同心トラック数(tpi)の尺度である。
【0004】
「雑音を伴うチャネルの符号化定理」として知られていることにおいて、シャノン(Shannon)は、通信システムの信頼性パラメータと効率パラメータとが関連していることを示した。雑音が通信チャネルにおいて引き起こす基本的な制限は、通信の信頼性の制限ではなく、通信速度の制限である。誤り確率をゼロに近づけながら、離散的無記憶チャネルを介してデータを送ることができる最大のレートは、チャネル容量と呼ばれる。チャネル容量は、結局、チャネルバンド幅と、信号対雑音比、即ち、SNRとの関数である。
【0005】
通信システムにおいてSNRを増加し、従って、システムの信頼性および効率を増加する周知の方法は、ソースデータを誤り訂正符号(ECC)に従って符号化することである。誤り訂正符号は、雑音に対するシステムの免疫を増加させることにより、有効SNRを増加する。ブロック誤り訂正符号は通常、ディスク記憶システムにおいて使用され、特に、リード−ソロモンブロック符号が、その優れた誤り訂正特性、低い実現コストおよび低い複雑性のために、使用されている。
【0006】
ブロック符号は、ソースデータストリームのk記号入力ブロックを、n記号出力ブロックまたは符号語に符号化する。ここで、n−kは、冗長記号の数であり、k/nは、符号化率と呼ばれる。次いで、符号語が、通信媒体を介して送られ(通信媒体に記憶され)、そして受信器により復号化される。符号化プロセスは、出力符号語が、符号の最小距離dminと呼ばれるパラメータだけ互いに異なるように、入力ブロックに対して数学的演算を行う。符号語間の最小距離dminは、受け取られた符号語が誤って復号化される前にシステムが耐えることができる雑音量を決定する。
【0007】
リード−ソロモン符号では、データストリームの各記号は、典型的には、有限体GF(2w)から選択される。ここで、wは、記号中のバイナリデータビット数である。k記号入力ブロックの各記号は、データ多項式D(x)の係数を表す。次いで、冗長符号(多項式W(x)としても表される)が、入力データ多項式D(x)を生成多項式G(x)で割るモジュロ除算(modulo division)として計算される。
【0008】
【数1】
Figure 0004102546
【0009】
ここで、mは、生成多項式の次数であり、冗長記号の数に等しい。次いで、冗長多項式W(x)がデータ多項式D(x)に付加され、符号語多項式C(x)を生成する。
【0010】
【数2】
Figure 0004102546
【0011】
上記演算を行う符号器回路は、単に線形フィードバックシフトレジスタ(LFSR)として実現することができる。
【0012】
符号化後、符号語C(x)は、雑音を伴う通信チャネルを介して送られる。受け取られた符号語C’(x)は、送られた符号語C(x)に誤り多項式E(x)を足した値に等しい。受け取られた符号語C’(x)は、以下のステップに従って訂正される。(1)誤りシンドロームSiを計算する、(2)誤りシンドロームSiを用いて、誤りロケータ多項式の係数を計算する、(3)誤りロケータ多項式の根(root)を計算する;根の対数は、誤りロケータ多項式の根である、(4)誤りシンドロームSiおよび誤りロケータ多項式の根を用いて、誤り値を計算する。
【0013】
誤りシンドロームSiは、受け取られた符号語多項式C’(x)を生成多項式G(x)の因子で割るモジュロ除算として計算される。
【0014】
【数3】
Figure 0004102546
【0015】
このとき、
【0016】
【数4】
Figure 0004102546
【0017】
ここで、αは、有限体GF(2w)の原始要素である。復号化プロセスのその他のステップを行い、誤りロケータ多項式を計算し、誤りロケータ多項式の根を計算し、そして誤り値を計算する技術は当業者により周知であるため、本発明を理解するためには必要でない。例えば、上で参照した「COEFFICIENT UPDATING METHOD AND APPARATUS FOR REED−SOLOMON DECODER」と題された米国特許第5,446,743号を参照されたい。
【0018】
従来技術で知られている、システムの誤り耐性をさらに増加させる別の技術は、符号語を配列して、多次元または積符号として知られているものにすることである。例えば、光ディスク記憶システムは、通常、図2に示されるような2次元積符号を使用する。符号語は、交差する水平方向(即ち、行)および垂直方向(即ち、列)の符号語に配列され、そして復号化プロセスが、繰り返しの通過により行われる。まず、できるだけ多くの誤りを訂正するために、水平方向の符号語の通過が行われ、訂正不可能な水平方向の符号語があれば、それは改変されないままである。次いで、できるだけ多くの誤りを訂正するために、垂直方向の符号語に対して通過が行われ、垂直方向の符号語において訂正された記号がまた、交差する水平方向の符号語の対応する記号を訂正する。その結果、水平方向の符号語は、次の水平方向の通過中に訂正可能であり得る。同様に、水平方向の通過中に訂正された記号は、以前に訂正不可能であった垂直方向の符号語を、次の垂直方向の通過中に訂正可能にし得る。この反復プロセスは、積符号全体が訂正されるか、または訂正不可能であると考えられるまで続く。
【0019】
積符号の多次元の局面は、誤り耐性を大幅に増加するが、水平方向および垂直方向の符号語に対する繰り返しの通過は、かなりの量の計算時間を必要とする。光ディスク記憶装置では、この計算時間は、ディスクからデータを読み出す際の待ち時間になり、そしてまた、データを連続ストリームで急いで転送することを妨げ得る。これは、円滑でとぎれないオーディオ/ビデオストリーミングを必要とするマルチメディアの応用では特に、非常に望ましくない可能性がある。上で参照した「A METHOD AND APPARATUS FOR EFFICIENTLY PROCESSING A MULTI−DIMENSIONAL CODE1」と題された米国特許出願は、誤りを含むとしてフラグが立てられた水平方向および垂直方向の符号語だけを処理することにより(即ち、誤りのない符号語はスキップされる)、積符号の処理時間を短縮する方法を開示している。それでも、水平方向および垂直方向の各通過中に誤りシンドロームを再生するためにデータバッファから符号語を読み出す際に、かなりの待ち時間がある。
【0020】
Kashidaらに発行された米国特許第5,631,914号には、最初の水平方向の通過中に水平方向および垂直方向の符号語の誤りシンドロームを同時に生成することにより積符号を処理するための誤り訂正装置が開示されている。誤りシンドロームはシンドロームバッファに格納され、次いで、その後の訂正フェーズ中に水平方向および垂直方向の符号語中の誤りを検出および訂正するために使用される。水平方向の符号語に付与された訂正値は、交差する垂直方向の符号語の誤りシンドロームを更新するために使用され、そしてその逆の場合も同様であるため、その後の水平方向または垂直方向の通過中に誤りシンドロームを再生することは不要である。しかし、この技術は、訂正プロセスに待ち時間をもたらす。なぜなら、誤り訂正フェーズが始まり得る前、最初の水平方向の通過中に、水平方向および垂直方向の符号語の誤りシンドロームを生成しなければならないからである。
【0021】
従って、多次元符号を復号化するための、より高速でより効率的な誤り訂正プロセッサが必要とされている。
【0022】
(発明の要旨)
符号語の第2の組と交差する符号語の第1の組を含む多次元符号を訂正するための効率的な誤り訂正プロセッサが開示される。誤り訂正は、符号語の第1および第2の組に対して繰り返しの通過を行うことにより実行される。個々の符号語は、符号語データの関数として計算される誤りシンドロームを用いて訂正される。好適な実施形態では、個々の符号語は、リード−ソロモン符号に従って符号化され、そして、誤りシンドロームは、符号語多項式を生成多項式の因子で割るモジュロ除算として計算される。
【0023】
誤り訂正プロセッサは、多次元符号語全体を格納するためのデータバッファを含み、データバッファに格納された個々の符号語は、繰り返しの通過中に訂正される。データバッファにアクセスする際の待ち時間を最小限にするために、誤り訂正プロセッサは、個々の符号語についての誤りシンドロームを格納するためのシンドロームバッファを含む。この態様で、誤りシンドロームがシンドロームバッファにおいて既に利用可能であるとき、データバッファから個々の符号語を読み出す必要がなくなる。シンドロームバッファは、好ましくは、ダイナミックram(DRAM)として実現されるデータバッファと比べて非常に高速であるスタティックram(SRAM)として実現される。
【0024】
第1の実施形態では、第2の組の符号語の誤りシンドロームは、第1の組の符号語の誤りシンドロームを生成するのと同時に生成される。第1の組の符号語に対する通過が終了すると、第2の組の符号語の誤りシンドロームは、すぐにシンドロームバッファから利用可能となり、第2の組の符号語をデータバッファから読み出して誤りシンドロームを生成することが不要になる。これにより、誤り訂正プロセッサのスループットが大幅に増加する。
【0025】
第2の実施形態では、シンドロームバッファは、第1の組の符号語と第2の組の符号語の両方の誤りシンドロームを格納する。第1の組の符号語および第2の組の符号語の両方の誤りシンドロームは、第1の組の符号語に対する最初の通過中に同時に生成される。この態様で、最初の水平方向の通過後のデータバッファへの唯一のアクセスは、データ記号を訂正することであり、符号語全体をデータバッファから読み出して誤りシンドロームを再生することが不要になる。なぜなら、誤りシンドロームは既にシンドロームバッファにおいて利用可能であるからである。
【0026】
両実施形態において、シンドロームバッファに格納された誤りシンドロームは、交差する符号語で記号が訂正されると、更新される。例えば、第1の組の符号語の記号が訂正されると、その訂正された記号で第1の組の符号語と交差する第2の組の符号語についての誤りシンドロームがシンドロームバッファから読み出され、そして訂正値を用いて更新される。第1の組の符号語および第2の組の符号語の両方の誤りシンドロームが格納される第2の実施形態では、誤りシンドロームは、訂正されたデータ記号の場所に従って、訂正値を用いて自動的に調節される。
【0027】
本発明の上記およびその他の局面および利点は、図面を考慮しながら以下に示す本発明の詳細な説明を読むことによって、より良く理解される。
【0028】
(好適な実施形態の詳細な説明)
概要
ディスク記憶装置のための典型的な従来技術の誤り訂正プロセッサの概要が図1に示される。書き込み動作(記憶装置はリードオンリでないと仮定する)の間、ユーザデータはホストコンピュータから転送され、データバッファ2に格納される。次いで、冗長/シンドロームジェネレータ4は、多次元符号の個々の符号語についてECC冗長記号を生成するために、データバッファ2からデータを読み出す。一旦多次元符号のサブセット符号語が生成されると、サブセット符号語に対してCRC検査記号が生成され、次いで、多次元符号語全体が、ディスク記憶媒体6に書き込まれる。ディスク記憶媒体6は、磁気であっても光学であってもよい。
【0029】
好適な実施形態では、個々の符号語は、リード−ソロモン符号により生成される。リード−ソロモン符号語C(x)は、以下の形の多項式として表される。
【0030】
【数5】
Figure 0004102546
【0031】
ここで、D(x)はデータ多項式であり、G(x)は生成多項式であり、mは生成多項式G(x)の次数である。データ多項式D(x)の係数は、ホストシステムから受け取られ且つデータバッファ2に格納されるデータストリームのwビット記号である。符号語C(x)を生成するために、データ多項式D(x)にxmが掛けられ、そしてECC冗長記号が付加される。ここで、ECC冗長記号は、以下のモジュロ除算として生成される。
【0032】
【数6】
Figure 0004102546
【0033】
符号化プロセスは、当業者に周知であるように、線形フィードバックシフトレジスタ(LFSR)を用いて容易に実現され得る。
【0034】
読み出し動作の間、多次元符号語は、ディスク記憶装置6から読み出され、そしてデータバッファ2に格納される。次いで、訂正プロセッサは、符号語の第1および第2の組に対する繰り返しの通過を開始する。個々の符号語は、データバッファ2から読み出され、そして誤りシンドロームSiは、符号語多項式C’(x)を生成多項式G(x)の因子で割ることにより計算される。
【0035】
【数7】
Figure 0004102546
【0036】
このとき、
【0037】
【数8】
Figure 0004102546
【0038】
ここで、αは、有限体GF(2w)の原始要素である。シンドロームSiがゼロでない場合、それは、符号語C’(x)が、誤った記号を少なくとも1つ含むことを示す。シンドロームSiは、ライン10を介して誤り訂正器8に転送される。誤り訂正器8は、誤り位置および訂正値を計算する。次いで、誤った記号はデータバッファ2から読み出されて訂正され、そして、訂正された記号が、データバッファ2に戻される。
【0039】
図2は、典型的なデジタルビデオディスク(DVD)記憶システムにおいて現在使用されている2次元積符号の例示的なフォーマットを示す。この積符号は、16個のセクタを含み、各セクタは、12個の符号語を含む。従って、合計で208個の水平方向の符号語および182個の垂直方向の符号語となる。各セクタの端部には、水平方向および垂直方向の通過の終わりにユーザデータの訂正の有効性および完全性を確認するためのCRCバイトが4バイトある(上記の参考文献である「ERROR CORRECTION AND CONCURRENT VERIFICATION OF A PRODUCT CODE」と題された米国特許出願を参照されたい)。水平方向の符号語の各々は、172個の8ビットユーザデータ記号と、10個の8ビットECC冗長記号とを含む。垂直方向の符号語の各々は、192個の8ビットユーザーデータ記号と、16個の8ビットECC冗長記号とを含む。
【0040】
図1に示される従来技術の誤り訂正プロセッサは、水平方向および垂直方向の各通過中に誤りシンドロームSiを生成するために、データバッファ2から(水平方向または垂直方向の)符号語全体を読み出す。これは、積符号の符号語全体を訂正するために数回の通過が必要とされる場合は特に、データバッファ2にアクセスする際の待ち時間があり、効率的でない。
【0041】
誤り訂正プロセッサ
従来技術の欠点を克服する本発明の誤り訂正プロセッサが、図3に示される。図1の誤り訂正プロセッサと同様に、本発明は、ホストから受け取った書き込みデータと、ディスク記憶装置から受け取った読み出しデータとを格納するためのデータバッファ2を使用する。ただし、図1とは異なり、本発明は、誤りシンドロームを格納するためのシンドロームバッファ12を使用して、符号語が処理されるたびに誤りシンドロームを再生するためにデータバッファ2にアクセスする際の待ち時間を回避する。さらに、シンドロームジェネレータ14は、交差する符号語の第1および第2の組についての誤りシンドロームを同時に生成するように改変される。この態様で、第1の組の符号語の処理直後に、第2の組の符号語の誤りシンドロームが利用可能になり、第2の組の符号語をデータバッファ2から読み出して誤りシンドロームを生成することが不要になる。
【0042】
誤り訂正器8は、図1の従来技術と実質的に同じように動作する。ただし、誤り訂正器8では、従来技術に加えて、シンドロームバッファ12に格納された誤りシンドロームを更新するために、訂正値がライン16を介してシンドロームジェネレータ14に送られる。第2の組の符号語中の記号に訂正が行われると、その訂正された記号で第1の組の符号語と交差する第2の組の符号語の誤りシンドロームが、訂正値を用いて更新される。例えば、図2に示される2次元積符号について考える。水平方向の通過中に2番目の水平方向の符号語の3番目の記号17が訂正されると、3番目の垂直方向の符号語の誤りシンドロームが、訂正値を用いて同時に更新される。この態様で、水平方向の符号語に訂正が行われる場合であっても、水平方向の符号語に対する通過の終了直後に、すべての垂直方向の符号語の誤りシンドロームが利用可能となる。これにより、誤り訂正器8が、誤りシンドロームを再生するためにデータバッファから符号語を読み出す必要なく、垂直方向の符号語の訂正をすぐに開始することができるようになる。
【0043】
シンドロームバッファ12は、好ましくは、データバッファ2と比べて非常に高速なスタティックram(SRAM)として実現される(シンドロームバッファ12よりかなり多くのデータを格納するデータバッファ2は、好ましくは、コスト効率はより優れているがより低速であるダイナミックram(DRAM)を用いて実現される)。さらに、シンドロームバッファ12は、好ましくは、データバッファ2よりも幅の広いデータバスを使用し、多数の誤りシンドロームを並行してアクセスおよび更新できるようにする。
【0044】
同時シンドロームジェネレータ
以下に、本発明のシンドロームジェネレータ14の2つの実施形態が開示される。第1の実施形態では、垂直方向の符号語のシンドロームは、水平方向の通過中に水平方向の符号語のシンドロームを生成するのと同時に生成される。以下により詳細に説明されるように、シンドロームバッファ12は、垂直方向のシンドロームの生成を容易にする。従って、シンドロームバッファ12に格納された垂直方向の符号語のシンドロームは、水平方向の通過の直後に利用可能となり、シンドロームを生成するためにデータバッファにアクセスすることなく、垂直方向の符号語を訂正することができるため、誤り訂正待ち時間を大幅に短縮する。本実施形態は、デジタルビデオディスク(DVD)記憶装置などの場合のように大量のECC冗長を使用する積符号に特によく適している。なぜなら、通常、水平方向および垂直方向の符号語に対する1回の通過が終わると、訂正が終了するからである。
【0045】
より少ないECC冗長を使用し、従って水平方向および垂直方向の通過を多数回必要とする積符号に向けられる本発明の第2の実施形態によれば、シンドロームバッファ12は、水平方向の符号語および垂直方向の符号語の両方の誤りシンドロームを格納する。シンドロームの2つの組はともに、最初の水平方向の通過中に同時に生成され、そして、シンドロームは、訂正値を用いて更新される。この態様で、誤りシンドロームを再生するためにデータバッファにアクセスする際の待ち時間が、水平方向の通過および垂直方向の通過の両方について回避される。誤り訂正は、数分の1の時間で行われる。なぜなら、最初の通過の後に行われる通過は、データを訂正するためにデータバッファにアクセスするだけでよいからである。
【0046】
シンドロームバッファ12に垂直方向の誤りシンドロームだけを格納する本発明の第1の実施形態は、図4および図5を参照して理解される。図4は、水平方向の各通過中に、水平方向の符号語のシンドロームを生成するために使用される回路を示す。即ち、水平方向の誤りシンドロームは常に再生され、シンドロームバッファ12には格納されない。水平方向の誤りシンドロームSiを生成するために、図4の回路は、水平方向の符号語C’(x)の各々を生成多項式G(x)の因子で割るモジュロ除算を行う。
【0047】
【数9】
Figure 0004102546
【0048】
このとき、
【0049】
【数10】
Figure 0004102546
【0050】
この計算を実行するために、水平方向の符号語の記号(ECC冗長を含む)がデータバッファ2から順次読み出され、そして、ライン18を介して、線形フィードバックシフトレジスタ(LFSR)200〜209のバンクに付与される。好適な実施形態では、水平方向の符号語の各々は、図2に示されるように、10個のECC冗長記号を含む。このため、図4には10個のLFSRがあり、各LFSRは、フィードバック経路に、対応するαi係数乗算器を有する。各LFSRは、生成多項式G(x)の各因子についてモジュロ除算を行い、それにより、上記の式に従う誤りシンドロームSiを生成する。図4に開示される回路は当業者に周知であり、本発明の新規な局面は、垂直方向の符号語の誤りシンドロームを同時に生成することにある。この詳細は、図5に示される。
【0051】
数学的には、垂直方向の符号語の誤りシンドロームは、上記の水平方向の符号語の場合と同じ方法で計算される。即ち、垂直方向の誤りシンドロームSiは、垂直方向の符号語C’(x)の各々を生成多項式G(x)の因子で割るモジュロ除算を行うことにより生成される。従来技術のシンドロームジェネレータは、典型的には、図4に示される回路と同じ回路を使用して、垂直方向の誤りシンドロームを生成する。即ち、垂直方向の符号語の記号(ECC冗長を含む)が、データバッファ2から順次読み出され、そして、LFSRのバンクを通してシフトされる。本発明では、垂直方向の通過中に垂直方向の符号語を読み出すためにデータバッファにアクセスすることを回避するために、垂直方向の誤りシンドロームは、水平方向の誤りシンドロームの生成と同時に生成される。
【0052】
垂直方向の誤りシンドロームを同時に生成するための回路が、図5に示される。この回路の動作は、図2に示される積符号を参照して理解される。シンドロームバッファ12は、182個の垂直方向の符号語それぞれについての16個の誤りシンドロームSiを格納する容量を有する。シンドロームバッファ12内の垂直方向の誤りシンドロームSiは、最初の水平方向の通過の始めにゼロに初期化される。最初の水平方向の符号語を処理するとき、データバッファ2から記号が順次読み出され、そしてライン18を介して図4のLFSRに付与されて、水平方向の誤りシンドロームを生成する。これらの記号は、同時にライン18を介して図5に示される回路に付与されて、垂直方向の誤りシンドロームを生成する。図4と同様に、図5は、垂直方向の符号語の記号を生成多項式G(x)の16個の因子で割るモジュロ除算を行うためのシンドローム生成回路220〜2215のバンクを含む(垂直方向の符号語の各々は、16個のECC冗長記号を含む)。
【0053】
図5に示される個々のシンドローム生成回路220〜2215を理解するために、データバッファから最初の水平方向の符号語が読み出されるときの動作について考える。最初の水平方向の符号語の最初の記号は、最初の垂直方向の符号語の最初の記号に対応する。従って、制御ライン24は、シンドロームバッファ12から、最初の垂直方向の符号語についての16個の垂直方向の誤りシンドローム(それぞれ8ビット)を取り出す。8ビットの垂直方向の誤りシンドロームの各々は、対応するレジスタ260〜2615にラッチされ、マルチプレクサ280〜2815の出力として選択され、そして、対応するαiフィードバック係数300〜3015が掛けられる。ライン18上の符号語の記号は、マルチプレクサ320〜3215の出力として選択され、この出力は、加算器340〜3415で、係数乗算器の出力に付加される。次いで、加算器340〜3415の出力にある更新されたシンドロームは、シンドロームバッファ12に戻される。最初の水平方向の符号語の2番目の記号を処理するとき、制御ライン24は、シンドロームバッファ12から、2番目の垂直方向の符号語についての16個の垂直方向の誤りシンドロームを取り出し、上記手順が繰り返される。このプロセスは、水平方向の符号語の各々について継続し、そして、水平方向の通過の終了時には、垂直方向の符号語を訂正するための誤りシンドロームが、シンドロームバッファ12に格納されている。
【0054】
水平方向の通過中に水平方向の符号語が訂正されると、シンドロームバッファ12に格納された対応する垂直方向の誤りシンドロームは、訂正された記号を明らかにするために更新されなければならない。図3のシンドロームジェネレータ14および誤り訂正器8は、好ましくは、隣接する符号語に対して動作する。言い換えれば、シンドロームジェネレータ14が、現在の水平方向の符号語の誤りシンドロームを生成している間、誤り訂正器8は、その前の水平方向の符号語の記号を訂正している。さらに、誤り訂正は、訂正値を用いた垂直方向の誤りシンドロームの調節を単純化するために、水平方向の誤りシンドロームの生成を追跡する。
【0055】
例えば、シンドロームジェネレータ14が、図2の2番目の水平方向の符号語の誤りシンドロームを生成しており、誤り訂正器8が、最初の水平方向の符号語を訂正している場合を考える。シンドロームジェネレータ14が2番目の符号語の3番目の記号17を通り過ぎており、最初の符号語の3番目の記号36が誤っていると仮定する。誤り訂正器8は、データバッファ2に格納された最初の水平方向の符号語の3番目の記号36を訂正するために使用される訂正値を生成し、そして、訂正値はまた、ライン16を介して、図5の垂直方向シンドローム生成回路220〜2215に付与される。制御ライン24は、シンドロームバッファ12から、3番目の垂直方向の符号語の垂直方向の誤りシンドロームを取り出し、これらの誤りシンドロームは、レジスタ260〜2615にラッチされる。次いで、レジスタ260〜2615の出力は、マルチプレクサ320〜3215を介して、加算器340〜3415への入力として選択される。ライン16を介して付与される訂正値は、マルチプレクサ280〜2815の出力として選択され、対応するαiフィードバック係数300〜3015が掛けられ、次いで、加算器340〜3415で、垂直方向の誤りシンドロームに付加される。訂正値に、対応するαiフィードバック係数300〜3015を掛けることは、現在の垂直方向の誤りシンドローム値と、訂正されている記号との間のオフセット(即ち、垂直方向の符号語中の1つの記号のオフセット)を明らかにするために必要である。
【0056】
水平方向の通過の終了時に、垂直方向の符号語の誤りシンドロームは完全に生成され、そしてすぐに処理するために利用可能である。従って、垂直方向の通過を実行するためには、垂直方向の誤りシンドロームは、単にシンドロームバッファ12から読み出され、そして誤り訂正器8により、垂直方向の符号語を訂正するために使用される。垂直方向の通過後に、積符号のCRC記号が、まだ誤りが残っていることを示すと、上記プロセスが繰り返される(即ち、次の水平方向の通過中に、水平方向および垂直方向の誤りシンドロームが再生される)。
【0057】
本発明の別の実施形態では、水平方向のシンドロームおよび垂直方向のシンドロームの両方が、最初の水平方向の通過中に同時に生成されているときに、シンドロームバッファ12に格納される。この態様で、以前に説明した実施形態の場合のように、その後の水平方向の通過中に水平方向のシンドロームを再生することが不要である。シンドロームは単に、水平方向および垂直方向の通過中に取り出され、そして符号語を訂正するために使用される。本実施形態は、積符号を訂正するために通過が多数回必要とされる場合(例えば、ECC冗長記号がより少ない場合、または、記録密度を高くすることによりSNRが低減される場合)に、特に有利である。
【0058】
本実施形態について、訂正値を用いて垂直方向および水平方向のシンドロームを更新するための回路は、図6Aおよび図6Bにそれぞれ示される。これらの回路は、図5の回路と実質的に同じように動作する。ただし、これらの回路では、オフセットを明らかにする必要がないため、誤り訂正値16にαiを掛けることは不要である。好適な実施形態では、最初の水平方向の通過中に水平方向および垂直方向の誤りシンドロームを最初に生成するための図4および図5の回路は、その後の通過中に誤りシンドロームを更新するための図6Aおよび図6Bの回路と共有される。図6Aおよび図6Bのシンドロームバッファ(単数または複数)は、別個に実現されてもよく、単一のバッファ(即ち、単一の集積SRAM)として実現されてもよい。いずれにしても、制御ライン24を介するアドレス指定が、どの誤りシンドロームの組(水平方向または垂直方向)が適切な時間にシンドロームバッファから取り出されるかを決定する。
【0059】
図7Aは、水平方向のシンドロームおよび垂直方向のシンドロームの両方がシンドロームバッファに格納される場合の本発明の動作を示すフロー図である。まず、最初の水平方向の通過36中、水平方向および垂直方向のシンドロームが同時に生成され、そしてシンドロームバッファに格納される。最初の水平方向の通過36中にはまた、水平方向の符号語が訂正され、そして、訂正値を用いて垂直方向のシンドロームが更新される。最初およびその後の水平方向の通過の後、ステップ38で、CRC記号を用いて、積符号への訂正の有効性および完全性が確認される。水平方向の通過後に誤りがまだ残っていれば、ステップ40で、垂直方向の通過が実行され、垂直方向の符号語を訂正する。ここで、訂正値を用いて、シンドロームバッファに格納された水平方向のシンドロームが更新される。垂直方向の通過後、ステップ42で、CRC記号を用いて、訂正の有効性および完全性が再び確認される。垂直方向の通過後に誤りがまだ残っていれば、ステップ44で、別の水平方向の通過が実行され、シンドロームバッファに格納された水平方向のシンドロームを用いて、水平方向の符号語を訂正する(即ち、水平方向のシンドロームは、以前に説明した実施形態のように再生されない)。水平方向および垂直方向の通過は、積符号が訂正されるまで、または、訂正不可能であると考えられるまで、繰り返される。
【0060】
最初の水平方向の通過中に水平方向および垂直方向のシンドロームを同時に生成する場合のフロー図が、図7Bに示され、最初の通過中に水平方向の符号語を訂正し、そして訂正値を用いて垂直方向のシンドロームを更新する場合のフロー図が、図7Cに示される(図7Bおよび図7Cのフロー図は、並行して実行される)。図7Bを参照して、ステップ46で、変数COLおよびROWがゼロに初期化され、そしてシンドロームバッファが空にされる。次いで、ROWの水平方向の符号語について、ステップ48で記号が読み出され、そしてこの記号を用いて、ステップ50で上記の図4の回路を用いて水平方向のシンドロームを更新する。図7Bのステップ52で、図5の回路を用いて、上記のCOLの垂直方向の符号語の垂直方向の誤りシンドロームを更新する。次いで、ステップ54で、変数COLが増分され、そして現在の水平方向の符号語の次の記号を用いて、水平方向および垂直方向のシンドロームを更新する。
【0061】
ステップ56で変数COLが182に等しいとき、現在の水平方向の符号語の最後の記号が読み出されたことになる。ステップ58でループが実行され、誤り訂正手順(図7Cのフロー図)がその前の水平方向の符号語を処理し終わるのを待つ。前の符号語を訂正し終わると、図7Cのステップ88で、訂正フラグが、非ビジー状態にリセットされる。図7Bのステップ60で、訂正フラグがビジーにセットされ、変数C_ROWが現在のROWに設定され、変数ROWが増分され、そして変数COLがゼロにリセットされる。この時点で、図7Cの訂正手順が実行され、現在の水平方向の符号語(即ち、C_ROW)を訂正し、それと同時に、次の水平方向の符号語(即ち、ROW)のシンドロームが生成される。
【0062】
図7Cを参照して、ステップ64でループが実行され、図7Bのシンドロームジェネレータ手順が、現在の水平方向の符号語を処理し終わり、且つ訂正フラグをビジー状態にセットするのを待つ。ステップ66で、訂正中の現在の列を追跡する変数C_COLがゼロにリセットされる(即ち、訂正されている水平方向の符号語中の最初の記号にリセットする)。ステップ68で、訂正されている水平方向の符号語のシンドロームが処理され、誤りロケータ多項式を生成し、そして、根が有効な記号場所に対応するかどうかを判定する。ステップ70で、シンドロームが、誤りが多すぎることを示すか、または、誤りロケータ多項式の根が無効な記号を指すと、符号語は訂正不可能であると考えられる。ステップ70で符号語が訂正可能であれば、次いでステップ72で、C_ROWの水平方向の符号語のシンドロームがクリアされる(ゼロに設定される)。次いでループが実行され、C_ROWの水平方向の符号語を訂正する。ステップ74で、C_COLの記号が誤っていれば、分岐が実行され、データバッファに格納された記号を訂正し、そして、訂正値を用いて垂直方向のシンドロームを更新する。訂正は、ステップ76でC_COLがCOL未満になるまで遅らされる。即ち、図7Cの誤り訂正手順は、図7Bのシンドローム生成手順が現在の訂正列C_COLを通り過ぎるまで待つ。これは、図5の回路が正しく働くために必要である。なぜなら、この回路は、1つの記号のオフセットを明らかにするために、訂正値16にαi30iを掛けるからである。図7Cのステップ78で、データバッファに格納された水平方向の符号語の記号が、訂正値を用いて訂正され、ステップ80で、図5を参照して上で説明したように、訂正値を用いて、C_COLの垂直方向の符号語の垂直方向のシンドロームを更新する。ステップ82で、変数C_COLが、水平方向の符号語中の次の記号に増分され、そして訂正ループが再実行される。
【0063】
ステップ84でC_COLが182に等しいとき、訂正されている水平方向の符号語の最後の記号が処理されたことになる。次の垂直方向の通過中に行われる現在の水平方向の符号語の誤りシンドロームの更新を容易にするために、ステップ86で、現在の水平方向の符号語の誤りシンドロームが、符号語の最初の記号に配置しなおされる。これは、以下の計算により行われる。
【0064】
【数11】
Figure 0004102546
【0065】
異なるオフセット値を用いて同様の計算を行う例は、上で参照した「A METHOD AND APPRATATUS FOR EFFICIENTLY PROCESSING A MULTI−DIMENSIONAL CODE」と題された米国特許出願において提供される。
【0066】
図7Cのステップ88で、訂正ビジーフラグがクリアされ、そして訂正手順は、ステップ64で、図7Bのシンドローム生成手順が、次の水平方向の符号語の誤りシンドロームを生成し終わるのを待つ。シンドローム生成手順と誤り訂正手順とは、最後の水平方向の符号語が処理されるまで(即ち、図7Bのステップ62でROWが208と等しくなるまで)、並行して行われる。図7Aのステップ38で、最初の水平方向の通過後に誤りがまだ残っていれば、ステップ40で、垂直方向の通過が実行される。これについてのフロー図は、図7Dに示される。
【0067】
ステップ90で、訂正変数C_COLおよびC_ROWがゼロにリセットされる(即ち、最初の垂直方向の符号語の最初の記号にリセットされる)。次いで、ステップ92で、訂正されている垂直方向の符号語のシンドロームが処理され、誤りロケータ多項式を生成し、そして、根が有効な記号場所に対応するかどうかを判定する。ステップ94で、シンドロームが、誤りが多すぎることを示すか、または、誤りロケータ多項式の根が無効記号を指すと、符号語は訂正不可能であると考えられる。ステップ94で符号語が訂正可能であれば、ステップ96で、C_COLの垂直方向の符号語のシンドロームがクリアされる(ゼロに設定される)。次いでループが実行され、C_COLの垂直方向の符号語を訂正する。ステップ98で、C_ROWの記号が誤っていれば、分岐が実行され、ステップ100で、データバッファに格納された記号を訂正し、そしてステップ102で、訂正値を用いて水平方向のシンドロームを更新する。図6Aの回路は、図5を参照して上で説明された態様と同様の態様で水平方向のシンドロームを更新するために用いられる。C_ROWの水平方向のシンドロームがシンドロームバッファ12から取り出され、αi30iが掛けられ、訂正値34iに付加され、次いでシンドロームバッファ12に戻される。図7Dのフローチャートには示されていないが、水平方向のシンドロームは、訂正が行われなくても(即ち、訂正値がゼロであっても)、符号語の各記号について更新される。これにより、図6Aのシンドローム更新回路が単純化され、このシンドローム更新回路は、誤りシンドロームを次の符号語記号に配置するためにαi乗算器30iしか必要としない。
【0068】
図7Dのステップ104で、変数C_ROWは、現在の垂直方向の符号語中の次の記号に増分される。ステップ106で、C_ROWが208に等しければ、現在の垂直方向の符号語の最後の記号が処理されたことになる。最後の記号が処理された後(または、ステップ94で符号語が訂正不可能であれば)、C_COLの垂直方向の符号語の誤りシンドロームは、ステップ107で、符号語の最初の記号に配置しなおされる。これは、以下の計算により行われる。
【0069】
【数12】
Figure 0004102546
【0070】
ステップ108で、変数C_COLが、次の垂直方向の符号語に増分され、そして変数C_ROWは、次の垂直方向の符号語の最初の記号を指すよう、ゼロにリセットされる。図7Dの訂正手順は、ステップ110でC_COLが182に等しくなり、垂直方向の符号語のすべてが処理されたことを示すまで繰り返される。
【0071】
垂直方向の通過の終わりに、図7Aのステップ42で、CRC記号を用いて、行われた訂正が有効で完全なものであるかどうかを確認する。ステップ42で積符号中に誤りがまだ残っていれば、ステップ44で、水平方向の訂正通過が実行される。これについての詳細は、図7Eのフロー図に示される。
【0072】
ステップ112で、訂正変数C_COLおよびC_ROWはゼロにリセットされる(即ち、最初の水平方向の符号語の最初の記号にリセットされる)。次いで、訂正されている水平方向の符号語のシンドロームはステップ114で処理され、誤りロケータ多項式を生成し、そして、根が有効記号位置に対応するかどうかを判定する。ステップ116で、シンドロームが、誤りが多すぎることを示すか、または、誤りロケータ多項式の根が無効記号を指すと、符号語は訂正不可能であると考えられる。ステップ116で符号語が訂正可能であれば、ステップ118で、C_ROWの水平方向の符号語のシンドロームがクリアされる(ゼロに設定される)。次いでループが実行され、C_ROWの水平方向の符号語を訂正する。ステップ120で、C_COLの記号が誤っていれば、分岐が実行され、ステップ122で、データバッファに格納された記号を訂正し、そして、ステップ124で、訂正値を用いて垂直方向のシンドロームを更新する。図6Bの回路は、垂直方向の通過中に水平方向の誤りシンドロームを更新する場合の図6Aを参照して上で説明された態様と同様の態様で、垂直方向のシンドロームを更新するために使用される。C_COLの垂直方向のシンドロームは、シンドロームバッファ12から取り出され、αi30iが掛けられ、訂正値34iに付加され、次いでシンドロームバッファ12に戻される。図7Eにのフロー図には示されていないが、垂直方向のシンドロームは、訂正が行われなくても(即ち、訂正値がゼロであっても)、符号語の各記号について更新される。これにより、図6Bのシンドローム更新回路が単純化され、このシンドローム更新回路は、誤りシンドロームを次の符号語記号に配置するためにαi乗算器30iしか必要としない。
【0073】
図7Eのステップ126で、変数C_COLは、現在の水平方向の符号語中の次の記号に増分される。ステップ128で、C_COLが182に等しければ、現在の水平方向の符号語の最後の記号が処理されたことになる。最後の記号が処理された後(または、ステップ116で符号語が訂正不可能であれば)、C_ROWの水平方向の符号語の誤りシンドロームは、ステップ130で、符号語の最初の記号に配置しなおされる。これは、以下の計算により行われる。
【0074】
【数13】
Figure 0004102546
【0075】
ステップ132で、変数C_ROWが、次の水平方向の符号語に増分され、そして変数C_COLは、次の水平方向の符号語の最初の記号を指すよう、ゼロにリセットされる。図7Eの訂正手順は、ステップ134でC_ROWが208に等しくなり、水平方向の符号語のすべてが処理されたことを示すまで繰り返される。
【0076】
再び図7Aを参照して、ステップ44での水平方向の通過が終了した後、ステップ38で、CRC記号を用いて、積符号に行われた訂正が有効で完全なものであるかどうかを確認する。誤りがまだ残っていれば、ステップ40で、別の垂直方向の通過が実行される。繰り返し行われる水平方向および垂直方向の通過は、積符号が訂正されるまで、または訂正不可能であると考えられるまで続く。
【0077】
本発明の目的は、本明細書に開示された実施形態を通して十分に認識された。当業者は、本質的な機能から逸脱することなく、異なる実施形態を通して、本発明の様々な局面を達成することができることを認識する。例えば、図2に示される積符号は、典型的にはデジタルビデオディスク(DVD)において使用されるが、本発明は、コンパクトディスク(CD)において使用されるフォーマットなどの、その他の積符号フォーマットにも等しく適用可能である。さらに、本発明は、積符号だけではなく、その他の多次元符号に適用されてもよい。このように、開示された特定の実施形態は例示的なものであって、前掲の特許請求の範囲により適切に解釈される本発明の範囲を限定するものではない。
【図面の簡単な説明】
【図1】 ディスク記憶媒体上に格納される多次元符号語を訂正するための従来技術の誤り訂正プロセッサのブロック図である。
【図2】 典型的にはデジタルビデオディスク(DVD)において使用される2次元積符号の図である。
【図3】 誤りシンドロームを格納するためのシンドロームバッファを含む、本発明の誤り訂正プロセッサのブロック図である。
【図4】 本発明の第1の実施形態による、水平方向の符号語の誤りシンドロームを生成するための詳細な回路図である。
【図5】 水平方向の符号語の誤りシンドロームを生成するのと同時に、垂直方向の符号語の誤りシンドロームを生成するための詳細な回路図である。
【図6A】 本発明の別の実施形態において、シンドロームバッファが水平方向の符号語および垂直方向の符号語の両方の誤りシンドロームを格納する場合に、水平方向および垂直方向の誤りシンドロームをそれぞれ更新する回路を示す図である。
【図6B】 本発明の別の実施形態において、シンドロームバッファが水平方向の符号語および垂直方向の符号語の両方の誤りシンドロームを格納する場合に、水平方向および垂直方向の誤りシンドロームをそれぞれ更新する回路を示す図である。
【図7A】 シンドロームバッファに格納された水平方向および垂直方向の誤りシンドロームを用いて積符号を処理する場合の、誤り訂正プロセッサにより実行されるフロー図である。
【図7B】 水平方向の符号語に対する最初の通過中に水平方向および垂直方向の誤りシンドロームを同時に生成する場合のフロー図である。
【図7C】 最初の水平方向の通過中に水平方向の符号語を訂正し、そして、訂正値を用いて、シンドロームバッファに格納された垂直方向の誤りシンドロームを更新する場合のフロー図である。
【図7D】 シンドロームバッファに格納された垂直方向の誤りシンドロームを用いて、垂直方向の通過中に垂直方向の符号語を訂正し、そして、訂正値を用いて、シンドロームバッファに格納された水平方向の誤りシンドロームを更新する場合のフロー図である。
【図7E】 シンドロームバッファに格納された水平方向の誤りシンドロームを用いて、その後の水平方向の通過中に水平方向の符号語を訂正し、そして、訂正値を用いて、シンドロームバッファに格納される垂直方向の誤りシンドロームを更新する場合のフロー図である。

Claims (20)

  1. 符号語の第2の組と交差する符号語の第1の組を含む複数次元符号の形で記憶媒体(6)上に記録されるデジタルデータの誤りを訂正するための誤り訂正プロセッサであって、該誤り訂正プロセッサ
    (a)該記憶媒体(6)から読み出された該デジタルデータを格納するためのデータバッファ(2)と、
    (b)該符号語の第1の組に関連する第1の誤りシンドロームを格納するための第1のシンドロームバッファ(12)と、
    (c)該データバッファ(2)に格納された該デジタルデータと、該第1のシンドロームバッファ(12)に格納された該第1の誤りシンドロームとに応答して、該符号語の第1および第2の組についてそれぞれ該第1の誤りシンドロームおよび第2の誤りシンドロームを同時に生成するためのシンドロームジェネレータ(14)と、
    (d)該第1および第2の誤りシンドロームに応答して、該データバッファ(2)に格納された該デジタルデータを訂正するための誤り訂正器(8)と、を含み、
    該シンドロームジェネレータ(14)は、該第2の誤りシンドロームを生成する際、該第2の組の符号語の連続した記号を処理し、
    該シンドロームジェネレータ(14)は、該第1の組の符号語の記号と交差する、該第2の組の符号語の記号を用いて、該第1のシンドロームバッファ(12)に格納された該第1の誤りシンドロームを更新し、
    該誤り訂正器(8)は、該第2の組の符号語の記号を訂正するために、該第2の誤りシンドロームに応答して誤り訂正値を生成し、
    該シンドロームジェネレータ(14)は、該誤り訂正値を用いて、該第1のシンドロームバッファ(12)に格納された該第1の誤りシンドロームを更新し、
    該誤り訂正値は、以前の第2の組の符号語に対応し、該以前の第2の組の符号語は、該シンドロームジェネレータ(14)が現在の第2の組の符号語の誤りシンドロームを生成する間に訂正される誤り訂正プロセッサ。
  2. 前記シンドロームジェネレータ(14)が、前記第1および第2の組の符号語の交差する記号の場所により、前記第1のシンドロームバッファをアドレス指定する、請求項1に記載の誤り訂正プロセッサ。
  3. 前記シンドロームジェネレータ(14)が、前記以前の第2の組の符号語と前記現在の第2の組の符号語との間のオフセットを明らかにするために、前記誤り訂正値に定数を掛ける、請求項に1記載の誤り訂正プロセッサ。
  4. 前記シンドロームジェネレータ(14)が、前記第2の組の符号語のデータ記号を生成多項式の因子で割ることにより、前記第2の誤りシンドロームを生成する、請求項1に記載の誤り訂正プロセッサ。
  5. 前記シンドロームジェネレータ(14)が、前記第2の組の符号語のデータ記号を、前記生成多項式の少なくとも2つの因子で並行して割る、請求項4に記載の誤り訂正プロセッサ。
  6. 前記シンドロームジェネレータ(14)が、前記第2の組の符号語と交差する前記第1の組の符号語のデータ記号を生成多項式の因子で割ることにより、前記第1の誤りシンドロームを生成する、請求項1に記載の誤り訂正プロセッサ。
  7. 前記第2の組の符号語の前記第2の誤りシンドロームを格納するための第2のシンドロームバッファをさらに含む、請求項1に記載の誤り訂正プロセッサ。
  8. 前記シンドロームジェネレータ(14)が、前記第2の組の符号語の記号を用いて、前記第2のシンドロームバッファに格納された前記第2の誤りシンドロームを更新する、請求項7に記載の誤り訂正プロセッサ。
  9. (a)前記誤り訂正器(8)が、前記第1の組の符号語の記号を訂正するために、前記第1のシンドロームに応答して誤り訂正値を生成し、
    (b)前記シンドロームジェネレータ(14)が、該誤り訂正値を用いて、前記第2のシンドロームバッファに格納された前記第2の誤りシンドロームを更新する、請求項7に記載の誤り訂正プロセッサ。
  10. 前記誤り訂正値を用いて前記第2の誤りシンドロームを更新する前に、前記シンドロームジェネレータ(14)が、前記第1の組の符号語の訂正された記号の場所に関して前記第2の誤りシンドロームを調節する、請求項9に記載の誤り訂正プロセッサ。
  11. 符号語の第2の組と交差する符号語の第1の組を含む複数次元符号の形で記憶媒体(6)上に記録されるデジタルデータの誤りを訂正する方法であって、
    (a)該記憶媒体(6)から読み出された該デジタルデータをデータバッファ(2)に格納するステップと、
    (b)該符号語の第1の組に関連する第1の誤りシンドロームを第1のシンドロームバッファ(12)に格納するステップと、
    (c)該データバッファ(2)に格納された該デジタルデータと、該第1のシンドロームバッファ(12)に格納された該第1の誤りシンドロームとを用いて、該符号語の第1および第2の組についてそれぞれ該第1の誤りシンドロームおよび第2の誤りシンドロームを同時に生成するステップ(36)と、
    (d)該第1および第2の誤りシンドロームを用いて、該データバッファ(2)に格納された該デジタルデータを訂正するステップ(78、100、102)と、を包含し、
    該第1の誤りシンドロームおよび第2の誤りシンドロームを同時に生成する該ステップ(36)が、
    該第2の組の符号語の連続した記号を処理して、該第2の誤りシンドロームを生成するステップ(50)と、
    該第1の組の符号語の記号と交差する、該第2の組の符号語の記号を用いて、該第1のシンドロームバッファ(12)に格納された該第1の誤りシンドロームを更新するステップ(52)と、を包含し、
    該データバッファ(2)に格納された該デジタルデータを訂正する該ステップ(36)が、該第2の組の符号語の記号を訂正するために、該第2の誤りシンドロームに応答して誤り訂正値を生成するステップ(78)を包含し、
    該第1のシンドロームバッファ(12)に格納された該第1の誤りシンドロームを更新する該ステップ(52)が、該誤り訂正値を使用し(82)、
    該誤り訂正値(78)は、以前の第2の組の符号語に対応し、該以前の第2の組の符号語は、現在の第2の組の符号語の誤りシンドロームを生成する間に訂正される方法。
  12. 前記第1および第2の組の符号語の交差する記号の場所により、前記第1のシンドロームバッファ(12)をアドレス指定するステップ(52)をさらに包含する、請求項11に記載のデジタルデータの誤りを訂正する方法。
  13. 前記第1の誤りシンドロームを更新する前記ステップ(52)が、前記以前の第2の組の符号語と前記現在の第2の組の符号語との間のオフセットを明らかにするために、前記誤り訂正値に定数を掛けるステップを包含する、請求項に11記載のデジタルデータの誤りを訂正する方法。
  14. 前記第2の誤りシンドロームを生成する前記ステップ(36)が、前記第2の組の符号語のデータ記号を生成多項式の因子で割るステップを包含する、請求項11に記載のデジタルデータの誤りを訂正する方法。
  15. 前記割るステップが、前記第2の組の符号語のデータ記号を、前記生成多項式の少なくとも2つの因子で並行して割るステップを包含する、請求項14に記載のデジタルデータの誤りを訂正する方法。
  16. 前記第1の誤りシンドロームを生成する前記ステップが、前記第2の組の符号語と交差する前記第1の組の符号語のデータ記号を、生成多項式の因子で割るステップを包含する、請求項11に記載のデジタルデータの誤りを訂正する方法。
  17. 前記第1の誤りシンドロームおよび前記第2の誤りシンドロームを同時に生成する前記ステップ(36)が、前記第2の組の符号語の該第2の誤りシンドロームを第2のシンドロームバッファに格納するステップを包含する、請求項11に記載のデジタルデータの誤りを訂正する方法。
  18. 前記第1の誤りシンドロームおよび前記第2の誤りシンドロームを同時に生成する前記ステップ(36)が、前記第1の組の符号語の記号と交差する、前記第2の組の符号語の記号を用いて、前記第2のシンドロームバッファに格納された該第2の誤りシンドロームを更新するステップを包含する、請求項17に記載のデジタルデータの誤りを訂正する方法。
  19. (a)前記データバッファ(2)に格納された前記デジタルデータを訂正する前記ステップが、前記第1の組の符号語の記号を訂正するために、前記第1のシンドロームに応答して誤り訂正値を生成するステップを包含し、
    (b)前記第2のシンドロームバッファに格納された前記第2の誤りシンドロームを更新する前記ステップが、該誤り訂正値を使用する、請求項18に記載のデジタルデータの誤りを訂正する方法。
  20. 前記誤り訂正値を用いて前記第2の誤りシンドロームを更新する前記ステップの前に、前記第1の組の符号語の訂正された記号の場所に関して該第2の誤りシンドロームを調節する、請求項19に記載のデジタルデータの誤りを訂正する方法。
JP2000504660A 1997-07-23 1998-07-21 積符号のための同時行/列シンドロームジェネレータ Expired - Lifetime JP4102546B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/898,774 US5974580A (en) 1997-07-23 1997-07-23 Concurrent row/column syndrome generator for a product code
US08/898,774 1997-07-23
PCT/US1998/015091 WO1999005793A1 (en) 1997-07-23 1998-07-21 Concurrent row/column syndrome generator for a product code

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007329363A Division JP2008148334A (ja) 1997-07-23 2007-12-20 積符号のための同時行/列シンドロームジェネレータ

Publications (2)

Publication Number Publication Date
JP2001511615A JP2001511615A (ja) 2001-08-14
JP4102546B2 true JP4102546B2 (ja) 2008-06-18

Family

ID=25410024

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000504660A Expired - Lifetime JP4102546B2 (ja) 1997-07-23 1998-07-21 積符号のための同時行/列シンドロームジェネレータ
JP2007329363A Withdrawn JP2008148334A (ja) 1997-07-23 2007-12-20 積符号のための同時行/列シンドロームジェネレータ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007329363A Withdrawn JP2008148334A (ja) 1997-07-23 2007-12-20 積符号のための同時行/列シンドロームジェネレータ

Country Status (7)

Country Link
US (1) US5974580A (ja)
EP (1) EP0998791B1 (ja)
JP (2) JP4102546B2 (ja)
KR (1) KR100517482B1 (ja)
AU (1) AU8504798A (ja)
DE (1) DE69805803D1 (ja)
WO (1) WO1999005793A1 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3340933B2 (ja) * 1997-02-15 2002-11-05 東芝デジタルメディアエンジニアリング株式会社 誤り訂正方法及びdvd再生装置
US6457156B1 (en) * 1998-01-29 2002-09-24 Adaptec, Inc. Error correction method
US6047395A (en) * 1998-01-30 2000-04-04 Cirrus Logic, Inc. Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension
EP1146515A1 (en) * 1998-02-25 2001-10-17 Matsushita Electric Industrial Co., Ltd. High-speed error correcting apparatus with efficient data transfer
US6370671B1 (en) * 1998-06-18 2002-04-09 Globespan, Inc. Configurable decoder and method for decoding a reed-solomon codeword
CN1286275C (zh) 1999-11-24 2006-11-22 三洋电机株式会社 纠错装置
KR100685360B1 (ko) * 2000-01-31 2007-02-22 산요덴키가부시키가이샤 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치
US7458007B2 (en) * 2000-02-18 2008-11-25 Texas Instruments Incorporated Error correction structures and methods
US7240204B1 (en) * 2000-03-31 2007-07-03 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Scalable and unified multiplication methods and apparatus
US6651208B1 (en) * 2000-04-04 2003-11-18 Mosel Vitelic Corporation Method and system for multiple column syndrome generation
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US7159164B1 (en) * 2000-06-05 2007-01-02 Qualcomm Incorporated Method and apparatus for recovery of particular bits of a frame
EP1223578A3 (en) * 2000-12-12 2008-07-16 Kabushiki Kaisha Toshiba Data processing method using error-correcting code and an apparatus using the same method
US6910174B2 (en) * 2001-06-01 2005-06-21 Dphi Acquisitions, Inc. Error correction code block format
EP1293978A1 (en) * 2001-09-10 2003-03-19 STMicroelectronics S.r.l. Coding/decoding process and device, for instance for disk drives
US20030061558A1 (en) * 2001-09-25 2003-03-27 Fackenthal Richard E. Double error correcting code system
FR2834146A1 (fr) 2001-12-20 2003-06-27 St Microelectronics Sa Turbo-decodeur compact a haute efficacite
US7266750B1 (en) 2002-07-10 2007-09-04 Maxtor Corporation Error recovery strategies for iterative decoders
US20040163030A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Iterative error correcting system
US8832523B2 (en) * 2006-03-03 2014-09-09 Ternarylogic Llc Multi-state symbol error correction in matrix based codes
EP1569348A1 (en) * 2004-02-13 2005-08-31 Alcatel Iterative multidimensional decoding
DE102004036383B4 (de) * 2004-07-27 2006-06-14 Siemens Ag Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen
US7600177B2 (en) * 2005-02-08 2009-10-06 Lsi Corporation Delta syndrome based iterative Reed-Solomon product code decoder
US7653862B2 (en) * 2005-06-15 2010-01-26 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US7774676B2 (en) * 2005-06-16 2010-08-10 Mediatek Inc. Methods and apparatuses for generating error correction codes
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US20070067702A1 (en) * 2005-09-05 2007-03-22 Kuo-Lung Chien Method and apparatus for syndrome generation
US7624330B2 (en) * 2005-12-12 2009-11-24 Lsi Corporation Unified memory architecture for recording applications
US7743311B2 (en) * 2006-01-26 2010-06-22 Hitachi Global Storage Technologies Netherlands, B.V. Combined encoder/syndrome generator with reduced delay
US7823049B2 (en) * 2006-03-15 2010-10-26 Mediatek Inc. Methods and apparatuses for generating parity symbols for data block
US20070260963A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260960A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260961A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US9203436B2 (en) * 2006-07-12 2015-12-01 Ternarylogic Llc Error correction in multi-valued (p,k) codes
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US8196004B1 (en) 2007-03-27 2012-06-05 Marvell International Ltd. Fast erasure decoding for product code columns
US8245117B1 (en) * 2008-12-23 2012-08-14 Link—A—Media Devices Corporation Low complexity chien search in chase-type decoding of reed-solomon codes
US8762818B1 (en) * 2009-03-05 2014-06-24 Marvell International Ltd. System and methods for performing decoding error detection in a storage device
JP5544773B2 (ja) * 2009-07-22 2014-07-09 ソニー株式会社 エラー訂正装置、エラー訂正装置のメモリの制御方法および光ディスク記録再生装置
US8924814B2 (en) 2012-08-28 2014-12-30 Seagate Technology Llc Write management using partial parity codes
KR101512361B1 (ko) * 2013-10-16 2015-04-15 한국과학기술원 연접 비씨에이치 디코더 및 연접 비씨에이치 디코딩 방법
US9286159B2 (en) * 2013-11-06 2016-03-15 HGST Netherlands B.V. Track-band squeezed-sector error correction in magnetic data storage devices
US9413392B1 (en) 2015-12-14 2016-08-09 International Business Machines Corporation Post-decoding error check with diagnostics for product codes
JP2020195007A (ja) * 2019-05-24 2020-12-03 キオクシア株式会社 メモリシステム
KR20220080589A (ko) * 2020-12-07 2022-06-14 삼성전자주식회사 Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8601446A (nl) * 1986-06-05 1988-01-04 Philips Nv Werkwijze en inrichting voor het dekoderen van een blok kodesymbolen dat op twee manieren verdeeld is over kodewoorden die elk door een minimum-afstandssepareerbare kode beschermd zijn.
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
JP3137119B2 (ja) * 1989-06-07 2001-02-19 キヤノン株式会社 誤り訂正装置
JPH04222029A (ja) * 1990-12-21 1992-08-12 Sony Corp エラー訂正方法
US5412667A (en) * 1993-07-08 1995-05-02 Commodore Electronics Limited Decoder for cross interleaved error correcting encoded data
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
JPH09507117A (ja) * 1993-11-04 1997-07-15 シーラス ロジック,インコーポレイテッド リードソロモン復号化器
FR2712760B1 (fr) * 1993-11-19 1996-01-26 France Telecom Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés.
US5592498A (en) * 1994-09-16 1997-01-07 Cirrus Logic, Inc. CRC/EDC checker system
US5696927A (en) * 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
US5802080A (en) * 1996-03-28 1998-09-01 Seagate Technology, Inc. CRC checking using a CRC generator in a multi-port design
FR2751810B1 (fr) * 1996-07-23 1998-10-23 Sgs Thomson Microelectronics Systeme de correction d'erreurs dans des trames de donnees ayant des codes de parite horizontaux et verticaux
US5844920A (en) * 1996-11-07 1998-12-01 Cirrus Logic, Inc. Thermal asperity compensation using multiple sync marks for retroactive and split segment data synchronization in a magnetic disk storage system
US5844911A (en) * 1996-12-12 1998-12-01 Cirrus Logic, Inc. Disc storage system with spare sectors dispersed at a regular interval around a data track to reduced access latency

Also Published As

Publication number Publication date
KR20010022054A (ko) 2001-03-15
US5974580A (en) 1999-10-26
DE69805803D1 (de) 2002-07-11
KR100517482B1 (ko) 2005-09-28
JP2008148334A (ja) 2008-06-26
EP0998791A1 (en) 2000-05-10
AU8504798A (en) 1999-02-16
WO1999005793A1 (en) 1999-02-04
JP2001511615A (ja) 2001-08-14
EP0998791B1 (en) 2002-06-05

Similar Documents

Publication Publication Date Title
JP4102546B2 (ja) 積符号のための同時行/列シンドロームジェネレータ
JP4346135B2 (ja) コンピュータ記憶装置においてランダムデータに対してcrcシンドロームを生成するeccシステム
KR100573356B1 (ko) 코드워드데이터를저장하기위한데이터버퍼와에러신드롬을저장하기위한신드롬버퍼를사용하는ecc시스템
US6272659B1 (en) Error correction code processor employing adjustable correction power for miscorrection minimization
JP3966993B2 (ja) 積符号の誤り訂正および並行検査
US5991911A (en) Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US6047395A (en) Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension
US6003151A (en) Error correction and detection system for mass storage controller
US4881232A (en) Method and apparatus for error correction
US5844919A (en) Sector and track level error correction system for disc storage systems
US6662334B1 (en) Method and device for performing error correction on ECC data sectors
US7103829B2 (en) Coding for informed decoders
US20040257900A1 (en) Data recording method, recording medium and reproduction apparatus
KR100265769B1 (ko) 광 디스크 시스템에서의 에러 정정 장치 및 그 에러 정정 방법
JP4118127B2 (ja) データの復号方法およびそれを用いたディスク装置
US6832042B1 (en) Encoding and decoding system in an optical disk storage device
JP4290688B2 (ja) データ書込装置および記憶システム
EP1421699A2 (en) Enhanced coding for informed decoders
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
JP4244351B2 (ja) 信号処理装置および信号記憶システム
JP2001244823A (ja) クロスインターリーブドリードソロモンコードの復号の処理内の誤り訂正のための装置
JP2005064608A (ja) 信号処理方法及び信号処理回路
JP2001189059A (ja) 記録再生装置
JP2647646B2 (ja) 誤り訂正方法
JPH0824269B2 (ja) 誤り訂正方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080324

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

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120328

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140328

Year of fee payment: 6

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

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