JPH11282701A - Ecc system for generating crc syndrome to random data in computer storage device - Google Patents

Ecc system for generating crc syndrome to random data in computer storage device

Info

Publication number
JPH11282701A
JPH11282701A JP10324623A JP32462398A JPH11282701A JP H11282701 A JPH11282701 A JP H11282701A JP 10324623 A JP10324623 A JP 10324623A JP 32462398 A JP32462398 A JP 32462398A JP H11282701 A JPH11282701 A JP H11282701A
Authority
JP
Japan
Prior art keywords
data
syndrome
error
crc
symbol
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.)
Granted
Application number
JP10324623A
Other languages
Japanese (ja)
Other versions
JP4346135B2 (en
Inventor
Zock Christopher
ゾック クリストファー
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 JPH11282701A publication Critical patent/JPH11282701A/en
Application granted granted Critical
Publication of JP4346135B2 publication Critical patent/JP4346135B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • H03M13/093CRC update after modification of the information word
    • 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/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/158Finite field arithmetic processing
    • 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
    • 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

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To avoid a waiting time that is related to access to a data buffer which is for nonrandomizing data before generating a cyclic redundancy check(CRC) syndrome by performing CRC check of randomized data. SOLUTION: Randomized data is subjected to CRC check. In this error correction processor, an error checking and correction(ECC) decoder uses an ECC redundancy signal and corrects an error in the randomized data. A syndrome generator 17 responds to the randomized data and generates a verification syndrome. A correction verifier 19 compares the verification syndrome with prescribed value and verifies the effectiveness and completeness of correction to the randomized data. A nonrandomizer nonrandomizes the randomized data after the verifier 19 shows that correction of the randomized data is effective and complete.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータ記憶
装置のための誤り訂正システムに関し、特に、書込み動
作中にデータがランダム化される前に巡回冗長検査(C
RC)シンボルが生成されるときの、ランダムデータに
対してCRCを実施することによって、積符号などの多
次元符号に対する訂正の有効性および完全性を証明する
ための効率的な方法および装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an error correction system for computer storage, and more particularly, to a cyclic redundancy check (C) before data is randomized during a write operation.
(RC) An efficient method and apparatus for proving the validity and completeness of correction for multidimensional codes, such as product codes, by performing a CRC on random data when symbols are generated.

【0002】[0002]

【従来の技術】コンピュータ記憶装置(磁気ディスクド
ライブおよび光ディスクドライブ)において、記録チャ
ネルの帯域幅は、信号パワーと同様に限定される。性能
利得を成し遂げるために、様々な符号化技術を用いてシ
ステムのノイズに対する免疫を高めることによって効果
的な信号対ノイズ比(SNR)を増加させている。この
ため、任意の低ビット誤り率を維持しながら記憶密度を
増加させることによって、記憶容量を増加させることが
可能となる。
2. Description of the Related Art In computer storage devices (magnetic disk drives and optical disk drives), the bandwidth of the recording channel is limited as well as the signal power. To achieve performance gains, various coding techniques are used to increase the effective signal-to-noise ratio (SNR) by increasing the system's immunity to noise. Therefore, the storage capacity can be increased by increasing the storage density while maintaining an arbitrary low bit error rate.

【0003】現在、記録装置において用いられている符
号には一般に2つのタイプがある。チャネル符号および
誤り訂正符号(ECC)である。チャネル符号は、記録
チャネルの特定の特徴によって引き起こされるノイズに
対するものである。例えば、ランレングス限定(RL
L)符号は、アナログ搬送波信号におけるデータシンボ
ルを示すパルス間の最小スペーシングを限定することに
よって、ノイズをシンボル間干渉に減衰するように設計
されたチャネル符号である。記録されるデータのスペク
トル内容は、読返し時にデータを正確に検出するシステ
ムの能力にも悪影響を与え得る。この結果、いくつかの
データシーケンスは、他のデータシーケンスよりも検出
が困難となり得る。この現象を考慮するために、通常、
データをランダム化するためのチャネル符号が、記録装
置において用いられている。このような記録装置は、デ
ータをディスク記憶媒体に書き込む前にランダム化する
ことによってデータを効果的に「不透明にする(white
n)」する。読み返し時に、記録チャネルは、データが
ランダム化されない場合よりも低いビット誤り率でラン
ダムデータを検出することができる。記憶媒体から読み
出されたデータは、ホストに転送される前に非ランダム
化される。
At present, there are generally two types of codes used in recording apparatuses. A channel code and an error correction code (ECC). Channel codes are for noise caused by certain characteristics of the recording channel. For example, run-length limited (RL
L) codes are channel codes designed to attenuate noise to intersymbol interference by limiting the minimum spacing between pulses representing data symbols in an analog carrier signal. The spectral content of the recorded data can also adversely affect the system's ability to accurately detect the data when read back. As a result, some data sequences may be more difficult to detect than others. To account for this phenomenon,
Channel codes for randomizing data are used in recording devices. Such recording devices effectively "opaque" the data by randomizing the data before writing it to a disk storage medium.
n) ". Upon readback, the recording channel can detect random data with a lower bit error rate than if the data were not randomized. Data read from the storage medium is non-randomized before being transferred to the host.

【0004】誤り訂正コーディング(ECC)におい
て、記録されるバイナリデータは、数学的に処理され、
データに追加される冗長シンボルを生成し、ディスク記
憶媒体に書き込まれる符号語を形成する。読み返し時に
は、記録された符号ワードは、読出し信号から評価(検
出)され、冗長シンボルは、評価された符号ワードを最
初に記録されたユーザデータに復号化するために用いら
れる。実際、冗長シンボルは、符号ワードが記録チャネ
ルを通過するときに、符号ワードをノイズから保護する
バッファを提供する。十分なノイズがこのバッファに
「浸透(penetrate)」すると、ノイズは、書き込まれ
た符号ワードを異なる受信符号ワードに変化させ、この
結果、ユーザデータに復号化されるときに誤りを生じ
る。
[0004] In error correction coding (ECC), recorded binary data is mathematically processed,
Generate redundant symbols that are added to the data to form codewords that are written to the disk storage medium. At the time of reading back, the recorded codeword is evaluated (detected) from the read signal, and the redundant symbols are used to decode the evaluated codeword into the first recorded user data. In effect, the redundant symbols provide a buffer that protects the code word from noise as it passes through the recording channel. If enough noise "penetrates" this buffer, the noise changes the written codeword to a different received codeword, resulting in errors when decoded into user data.

【0005】誤り訂正符号においてより多くの冗長シン
ボルが用いられるほど、符号語の周囲のバッファは大き
くなり、復号化誤りが発生する前に耐えられ得るノイズ
が多くなる。しかし、任意の低ビット誤り率を維持しな
がら所定のチャネルに対して達成可能な最大ユーザデー
タ転送率(または記録密度)を指す「チャネル容量」と
して公知の任意の所定の記録チャネルの性能には上限が
ある。最終的には、チャネル容量は、チャネル帯域幅お
よび信号対ノイズ(SNR)比の関数である。上記のよ
うに、チャネル符号および誤り訂正符号は、効果的なS
NRを増加させることによって性能を向上させる手段で
ある。
[0005] The more redundant symbols used in an error correction code, the larger the buffer around the codeword and the more noise that can be tolerated before a decoding error occurs. However, the performance of any given recording channel, known as "channel capacity," which refers to the maximum user data rate (or recording density) achievable for a given channel while maintaining an arbitrarily low bit error rate, There is an upper limit. Ultimately, channel capacity is a function of channel bandwidth and signal-to-noise (SNR) ratio. As described above, the channel code and the error correction code are effective S
This is a means for improving performance by increasing NR.

【0006】記録チャネルの信頼性および効率を最大に
するために、ユーザデータを符号化/復号化するための
解決法が多数ある。最終目標は、実現を簡単にし、コス
トを下げると共に、チャネル容量に近づくシステムを設
計することである。ブロック誤り訂正符号、特に、リー
ド−ソロモンブロック符号は、その優れた誤り訂正特性
および実現コストおよび複雑性が低いことにより、通
常、ディスク記憶システムにおいて用いられる。
[0006] In order to maximize the reliability and efficiency of the recording channel, there are a number of solutions for encoding / decoding user data. The end goal is to design a system that approaches channel capacity while simplifying implementation, lowering costs. Block error correction codes, especially Reed-Solomon block codes, are commonly used in disk storage systems due to their excellent error correction properties and low implementation cost and complexity.

【0007】ブロック符号は、ソースデータストリーム
のkシンボル入力ブロックを、nシンボル出力ブロック
または符号語に符号化する。ここで、n−kは、冗長シ
ンボルの数である、k/nは、符号率と呼ぶ。次に、符
号語は、通信媒体を通して転送され(通信媒体に記憶さ
れ)、受信器によって復号化される。符号化プロセス
は、入力ブロックに対して数学演算を行い、出力符号語
は、符号dminの最小距離として参照されるパラメータ
によって他の符号語とは異なったものにされる。符号語
間の最小距離dminは、システムが、受信された符号語
が誤って復号化される前の耐え得るノイズの量を決定す
る。
A block code encodes a k-symbol input block of a source data stream into an n-symbol output block or codeword. Here, nk is the number of redundant symbols, and k / n is called a code rate. Next, the codeword is transferred (stored in the communication medium) through the communication medium and decoded by the receiver. The encoding process performs mathematical operations on the input block, and the output codeword is made different from other codewords by a parameter referred to as the minimum distance of the code d min . The minimum distance d min between codewords determines the amount of noise that the system can tolerate before a received codeword is incorrectly decoded.

【0008】リード−ソロモン符号では、データストリ
ームは、シンボルのシーケンスとして処理され、シンボ
ルは、典型的には、有限フィールドGF(2w)から選
択される。パラメータwは、シンボル当たりのバイナリ
データビットの数を示す。kシンボル入力ブロックの各
シンボルは、データ多項式D(x)の係数を示す。次
に、冗長シンボル(多項式W(x)とも呼ぶ)は、生成
器多項式G(x)によって除算される入力データ多項式
D(x)の剰余除算として計算される。
[0008] In Reed-Solomon codes, the data stream is treated as a sequence of symbols, and the symbols are typically selected from a finite field GF (2 w ). The parameter w indicates the number of binary data bits per symbol. Each symbol of the k symbol input block indicates a coefficient of the data polynomial D (x). Next, a redundant symbol (also referred to as a polynomial W (x)) is calculated as the remainder division of the input data polynomial D (x) divided by the generator polynomial G (x).

【0009】[0009]

【数1】 ここで、mは、冗長シンボルの数と等しい生成器多項式
の次数である。次に、冗長多項式W(x)は、データ多
項式D(x)に加えられ、符号語多項式C(x)を生成
する。
(Equation 1) Here, m is the order of the generator polynomial equal to the number of redundant symbols. Next, the redundant polynomial W (x) is added to the data polynomial D (x) to generate a codeword polynomial C (x).

【0010】[0010]

【数2】 当業者には言うまでもなく、上記の動作を行う符号化器
回路は、リニアフィードバックシフトレジスタ(LFS
R)を用いて最小のコストで実現され得る。
(Equation 2) It will be appreciated by those skilled in the art that the encoder circuit that performs the above operations is a linear feedback shift register (LFS).
R) with minimal cost.

【0011】符号化の後、符号語C(x)は、ノイズ通
信チャネルを通して転送され、受信された符号語C’
(x)は、転送された符号語C(x)に誤り多項式E
(x)を加えたものと等しくなる。受信された符号語
C’(x)は、以下のステップに従って訂正される。
(1)誤りシンドロームSiを計算する。(2)誤りシ
ンドロームSiを用いて誤りロケータ多項式の係数を計
算する。(3)誤りロケータ多項式のルートを計算す
る。ルートの対数は、誤り位置Liである。(4)誤り
シンドロームSiおよび誤りロケータ多項式のルートを
用いて誤り値を計算する。
After encoding, the codeword C (x) is transferred over the noise communication channel and the received codeword C ′
(X) is an error polynomial E in the transferred codeword C (x).
It is equal to the sum of (x). The received codeword C ′ (x) is corrected according to the following steps.
(1) Calculate the error syndrome S i . (2) Calculate the coefficients of the error locator polynomial using the error syndrome Si. (3) Calculate the root of the error locator polynomial. Logarithm of the route is an error position L i. (4) Calculate the error value using the error syndrome S i and the root of the error locator polynomial.

【0012】誤りシンドロームSiは、生成器多項式G
(x)の因数によって除算される受信符号語多項式C’
(x)の剰余除算として計算される。
The error syndrome Si is represented by a generator polynomial G
Received codeword polynomial C ′ divided by a factor of (x)
Calculated as remainder division of (x).

【0013】[0013]

【数3】 このとき(Equation 3) At this time

【0014】[0014]

【数4】 であり、ここで、αは、有限フィールドGF(2w)の
基本要素である。復号化プロセスの他のステップを実施
し、誤りロケータ多項式を計算し、誤りロケータ多項式
のルートを計算し、誤り値を計算する技術は、当業者に
より周知であり、本発明を理解するために必要ではな
い。例えば、「COEFFICIENT UPDATING METHOD AND APPA
RATUS FOR REED-SOLOMON DECODER」という名称の下記で
参照する米国特許第5,446,743号を参照のこ
と。
(Equation 4) Where α is a basic element of the finite field GF (2 w ). Techniques for performing the other steps of the decoding process, calculating the error locator polynomial, calculating the root of the error locator polynomial, and calculating the error value are well known to those skilled in the art and are necessary to understand the present invention. is not. For example, "COEFFICIENT UPDATING METHOD AND APPA
See U.S. Patent No. 5,446,743, referenced below, entitled "RATUS FOR REED-SOLOMON DECODER."

【0015】誤り許容度をさらに増加させるための当該
技術分野で公知の他の技術としては、符号語を、多次元
または積符号として知られるものに改作することが挙げ
られる。ディジタルビデオディスク(DVD)記憶シス
テムは、例えば、一般に、図3Aに示す二次元積符号を
用いる。符号語は、交差する水平(行またはQ)および
垂直(列またはP)符号語に改作され、復号化プロセス
は、反復パスにおいて実行される。まず、水平符号語に
対してパスが行われ、できるだけ多くの誤りが訂正され
る。訂正不可能な水平符号語はすべて、変更されずに残
される。次に、垂直符号語に対してパスが行われ、でき
るだけ多くの誤りが訂正される。ここで、垂直符号語に
おいて訂正されるシンボルもまた、交差する水平符号語
に対する対応のシンボルを訂正する。この結果、水平符
号語は、次の水平パスにおいて訂正可能となり得る。同
様に、水平パスにおいて訂正されるシンボルは、前回訂
正不可能であった垂直符号語を、次の垂直パスにおいて
訂正可能にし得る。この反復プロセスは、全積符号が訂
正されるか、または訂正不可能になるまで続行される。
Another technique known in the art to further increase error tolerance is to adapt the codeword to what is known as a multidimensional or product code. Digital video disk (DVD) storage systems, for example, typically use the two-dimensional product code shown in FIG. 3A. The codewords are adapted to intersecting horizontal (row or Q) and vertical (column or P) codewords, and the decoding process is performed in an iterative pass. First, a pass is made to the horizontal codeword to correct as many errors as possible. All uncorrectable horizontal codewords are left unchanged. Next, a pass is made to the vertical codeword to correct as many errors as possible. Here, the symbol corrected in the vertical codeword also corrects the corresponding symbol for the intersecting horizontal codeword. As a result, the horizontal codeword may be correctable in the next horizontal pass. Similarly, a symbol that is corrected in a horizontal pass may make a previously uncorrectable vertical codeword correctable in the next vertical pass. This iterative process continues until the full product code is corrected or cannot be corrected.

【0016】図3Aの二次元積符号はさらに、行および
列符号語に対する訂正の有効性を検査するのに用いられ
るCRC冗長シンボルを有する。CRC冗長は、典型的
には、以下の式に従ってユーザデータを処理することに
よって生成される。
The two-dimensional product code of FIG. 3A also has CRC redundancy symbols that are used to check the validity of the correction for the row and column codewords. CRC redundancy is typically generated by processing user data according to the following equation:

【0017】[0017]

【数5】 ここで、P(x)は、有限フィールドGF(2m)にお
ける係数を有する多項式として示されるユーザデータで
あり、n−kは、CRC冗長シンボルの数であり、G
(x)は、生成器多項式である。次に、CRC冗長は、
得られる符号語C(x)がディスクに書き込まれる前に
ユーザデータに追加される。読出し動作中、ディスクか
ら読み出されたデータは、以下の式に従って処理され、
CRCシンドロームSCRCを生成する。
(Equation 5) Here, P (x) is user data represented as a polynomial having coefficients in a finite field GF (2 m ), nk is the number of CRC redundant symbols, and G
(X) is a generator polynomial. Next, CRC redundancy is
The resulting codeword C (x) is added to the user data before being written to the disc. During a read operation, data read from the disk is processed according to the following equation:
Generate CRC syndrome S CRC .

【0018】[0018]

【数6】 ここで、C’(x)は、ディスクから読み出された(C
RC冗長を含む)受信符号語多項式である。符号語C’
(x)に誤りがない場合、シンドロームSCRCはゼロに
なる。
(Equation 6) Here, C ′ (x) is read from the disk (C
(Including RC redundancy) received codeword polynomial. Codeword C '
If there is no error in (x), the syndrome S CRC will be zero.

【0019】CRC冗長は、典型的には、ECC冗長シ
ンボルを符号化する前に書込み動作中にデータに対して
生成され、CRCシンドロームは、ECC冗長が積符号
を訂正するために用いられた後、読出し動作中に生成さ
れる。このように、CRCシンドロームは、訂正を検証
し、訂正ミスを検出するように動作する。これは、非常
に重要な機能である。なぜなら、この機能によって、誤
り訂正システムが、「悪いデータ」がホストシステムを
通過することを防止するためである。
CRC redundancy is typically generated on data during a write operation before encoding the ECC redundancy symbols, and the CRC syndrome is generated after the ECC redundancy is used to correct the product code. , Generated during a read operation. Thus, the CRC syndrome operates to verify the correction and detect a correction error. This is a very important function. This is because this feature allows the error correction system to prevent "bad data" from passing through the host system.

【0020】図1は、CD/DVD光ディスク記憶シス
テムにおいて典型的に見いだされる従来の誤り訂正シス
テムの概観を示す。書込み動作中(装置は読出し専用で
ないと仮定する)、ホストシステムから受信されたユー
ザデータは、データバッファ1に記憶される。次に、C
RC生成器および訂正検証器2は、ユーザデータをバッ
ファからライン3を介して読み出し、CRC冗長シンボ
ルを生成し、冗長シンボルが追加されたユーザデータを
データバッファ1に再び記憶する。その後、データ(C
RC冗長を含む)は、データバッファ1から再び読み出
され、データランダム化器4によってランダム化にさ
れ、ランダムデータは、データバッファ1に再び記憶さ
れる。次に、P/Q符号化器/復号化器5は、データバ
ッファ1からランダムデータを読み出し、ECC/シン
ドローム生成器12は、PおよびQ符号語に対してEC
C冗長シンボルを生成し、図3Aに示す二次元積符号を
形成する。個別のPおよびQ符号語は、ECC冗長シン
ボルを追加した後、データバッファ1に再び記憶され
る。全積符号が生成されると、全積符号は、データバッ
ファ1から読み出され、光記憶媒体6に書き込まれる。
FIG. 1 shows an overview of a conventional error correction system typically found in CD / DVD optical disk storage systems. During a write operation (assuming the device is not read-only), user data received from the host system is stored in data buffer 1. Next, C
The RC generator and correction verifier 2 reads the user data from the buffer via the line 3, generates a CRC redundant symbol, and stores the user data with the redundant symbol added back to the data buffer 1. Then, the data (C
(Including RC redundancy) are read out again from the data buffer 1 and randomized by the data randomizer 4, and the random data is stored again in the data buffer 1. Next, the P / Q encoder / decoder 5 reads random data from the data buffer 1, and the ECC / syndrome generator 12 performs
Generate a C redundant symbol to form the two-dimensional product code shown in FIG. 3A. The individual P and Q codewords are stored again in data buffer 1 after adding ECC redundancy symbols. When the full product code is generated, the full product code is read from the data buffer 1 and written to the optical storage medium 6.

【0021】システムが、コンパクトディスク(CD)
データフォーマット用に構成される場合、C1およびC
2として参照されるさらなる冗長が生成され、データが
ディスクに書き込まれる前に、データに追加される。従
って、CD記録フォーマットを容易にするために、誤り
訂正システムは、C1符号化器/復号化器7、C2符号
化器/復号化器8、および周知のクロスインターリーブ
リード−ソロモン符号(CIRC)を実現するためのイ
ンターリーブ器/非インターリーブ器9を有する。典型
的には、スタティックRAM(SRAM)10は、CI
RCコーディングプロセスを実現するために用いられ、
SRAMは、ダイナミックRAM(DRAM)よりもは
るかに速く、後者は、データバッファ1を実現するため
に用いられる。
The system is a compact disk (CD)
When configured for data format, C1 and C
Additional redundancy, referred to as 2, is generated and added to the data before it is written to disk. Therefore, to facilitate the CD recording format, the error correction system uses a C1 encoder / decoder 7, a C2 encoder / decoder 8, and the well-known cross-interleaved Reed-Solomon code (CIRC). It has an interleaver / non-interleaver 9 for realization. Typically, the static RAM (SRAM) 10 has a CI
Used to implement the RC coding process,
SRAM is much faster than dynamic RAM (DRAM), the latter being used to implement the data buffer 1.

【0022】読出し動作中、プロセスは逆に進行する。
CDフォーマット用に構成する場合、C1およびC2復
号化器は、ランダムデータが光ディスク6から読み出さ
れ、データバッファ1に記憶されるときに、ランダムデ
ータに予め訂正を行う。完全な積符号が、データバッフ
ァ1で利用できるようになると、P/Q復号化器5は、
PおよびQ符号語に対して反復パスを開始し、さらなる
訂正を行う。ECC/シンドローム生成器は、ライン1
3を介して誤り訂正器14に転送されるECCシンドロ
ームを生成する。誤り訂正器は、ECCシンドロームを
用いて、上記のように、個々の符号語における誤りを訂
正する。PまたはQパスの終わりには、ECC誤りシン
ドロームはすべてゼロになり、これは、積符号が、(訂
正ミスがなければ)誤りを含まないことを意味し、ラン
ダムデータは、データバッファ1から読み出され、非ラ
ンダム化器4よって非ランダム化される。データが非ラ
ンダム化される間、CRC生成器および訂正検証器2に
よって処理され、CRCシンドロームを生成する。CR
Cシンドロームがゼロである場合、これは、PおよびQ
符号語に対する訂正は有効かつ完了していることを意味
し、データは、再び、データバッファ1から読み出さ
れ、非ランダム化され、非ランダム化されたデータは、
ホストシステムに転送される。CRCシンドロームがゼ
ロでない場合、これは、積符号の訂正ミスがあったこと
を示し、CRC生成器および訂正検証器2は、誤りメッ
セージをライン11を介してホストシステムに転送し、
ホストシステムは、再試行動作(即ち、ディスクからデ
ータを再び読み出す試み)を開始する。
During a read operation, the process proceeds in reverse.
When configured for the CD format, the C1 and C2 decoders correct the random data in advance when the random data is read from the optical disk 6 and stored in the data buffer 1. Once the complete product code is available in data buffer 1, P / Q decoder 5
Start an iterative pass for the P and Q codewords to make further corrections. ECC / syndrome generator is on line 1
3 to generate an ECC syndrome transferred to the error corrector 14. The error corrector uses the ECC syndrome to correct errors in individual codewords as described above. At the end of the P or Q pass, the ECC error syndrome will be all zeros, meaning that the product code contains no errors (if there are no correction errors), and the random data will be read from data buffer 1. And is de-randomized by the de-randomizer 4. While the data is de-randomized, it is processed by the CRC generator and correction verifier 2 to generate a CRC syndrome. CR
If the C syndrome is zero, then P and Q
The correction to the codeword means valid and complete, the data is again read from the data buffer 1 and the non-randomized, non-randomized data is
Transferred to host system. If the CRC syndrome is not zero, this indicates that there was a product code correction error, and the CRC generator and correction verifier 2 forwards the error message to the host system via line 11;
The host system initiates a retry operation (ie, an attempt to read data from the disk again).

【0023】[0023]

【発明が解決しようとする課題】図1に示す従来の誤り
訂正システムの基本的な欠点は、データが、CRC検証
ステップを実施する前に、非ランダム化されなければな
らないことである。このためには、上記のように全積符
号を読み出し、データを非ランダム化し、CRCシンド
ロームを生成するためにさらにバッファにアクセスしな
ければならない。明らかに、これは、記憶システムの待
ち時間を増加させ、特に、円滑で中断されない性能を成
し遂げるために、音声/映像データの大きなブロック
が、連続したストリームにおいて記憶システムから読み
出されなければならないマルチメディアアプリケーショ
ンにはあまり望ましくない。
A basic disadvantage of the conventional error correction system shown in FIG. 1 is that the data must be de-randomized before performing the CRC verification step. This requires reading the full product code, de-randomizing the data, and further accessing the buffer to generate the CRC syndrome, as described above. Obviously, this increases the latency of the storage system, and in particular, in order to achieve smooth and uninterrupted performance, large blocks of audio / video data must be read from the storage system in a continuous stream. Less desirable for media applications.

【0024】従って、検証シンボルがランダム化の前に
生成され、ECCシンボルがランダム化の後に生成され
るときの、CD/DVD積符号などの多次元符号に対す
る訂正の有効性および完全性の証明に関連する待ち時間
を避けるコンピュータ記憶装置における誤り訂正システ
ムが求められている。
Therefore, when the verification symbols are generated before the randomization and the ECC symbols are generated after the randomization, it is necessary to prove the validity and completeness of the correction for a multidimensional code such as a CD / DVD product code. There is a need for an error correction system in computer storage that avoids the associated latency.

【0025】[0025]

【課題を解決するための手段】本発明による誤り訂正プ
ロセッサは、ディスク記憶媒体から読み出されたランダ
ム化されたデータ中の誤りを訂正するための誤り訂正プ
ロセッサであって、該ランダム化されたデータは、該ラ
ンダム化されたデータに対して生成されたECC冗長記
号と、ランダム化される前のデータに対して生成された
チェック記号とを含み、該誤り訂正プロセッサは、
(a)該ECC冗長記号を用いて、該ランダム化された
データ中の誤りを訂正するためのECC復号化器と、
(b)該ランダム化されたデータに応答して、検証シン
ドロームを生成するためのシンドローム生成器と、
(c)該検証シンドロームを所定の値と比較して、該ラ
ンダム化されたデータに対する訂正の有効性(validit
y)および完全性を検証するための訂正検証器と、
(d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後、該ラ
ンダム化されたデータを非ランダム化するための非ラン
ダム化器とを含んでおり、これにより上記目的が達成さ
れる。
SUMMARY OF THE INVENTION An error correction processor according to the present invention is an error correction processor for correcting an error in randomized data read from a disk storage medium, the error correction processor comprising: The data includes an ECC redundancy symbol generated for the randomized data and a check symbol generated for the data before being randomized, the error correction processor comprising:
(A) an ECC decoder for correcting an error in the randomized data using the ECC redundant symbol;
(B) a syndrome generator for generating a verification syndrome in response to the randomized data;
(C) comparing the verification syndrome with a predetermined value to determine the validity of the correction on the randomized data (validit
y) and a corrective verifier to verify integrity;
(D) a non-randomizer for non-randomizing the randomized data after the correction verifier indicates that the correction to the randomized data is valid and complete. Thus, the above object is achieved.

【0026】(a)前記ランダム化されたデータが、交
差する符号語の第1および第2の組を含み、(b)前記
ECC復号化器が、該第1の組の符号語および該第2の
組の符号語をシーケンシャルなパス(pass)で処理する
ことによって、該ランダム化されたデータ中の誤りを訂
正してもよい。
(A) said randomized data comprises first and second sets of intersecting codewords; and (b) said ECC decoder comprising said first set of codewords and said second set of codewords. The error in the randomized data may be corrected by processing the two sets of codewords in a sequential pass.

【0027】(a)前記シンドローム生成器が、前記第
1の組の符号語に対する第1のパスの間にデータ検証シ
ンドロームを生成し、(b)該シンドローム生成器が、
前記ランダム化されたデータを訂正するために前記EC
C復号化器によって生成される訂正値を用いて、誤り検
証シンドロームを生成し、(c)該シンドローム生成器
が、該データ検証シンドロームを該誤り検証シンドロー
ムと結合して、前記所定の値と比較される最終検証シン
ドロームを生成してもよい。
(A) said syndrome generator generates a data verification syndrome during a first pass for said first set of codewords; (b) said syndrome generator comprises:
The EC to correct the randomized data
Generating an error verification syndrome using the correction value generated by the C decoder; and (c) the syndrome generator combines the data verification syndrome with the error verification syndrome and compares the data verification syndrome with the predetermined value. A final verification syndrome to be performed may be generated.

【0028】(a)前記ECC復号化器が前記ランダム
化されたデータを処理するのと同時に、前記シンドロー
ム生成器が部分検証シンドロームを生成し、(b)該シ
ンドローム生成器が、該ECC複号化器によって処理さ
れている特定のランダム化されたデータ記号の位置に応
じて、該部分検証シンドロームを調整するためのオフセ
ットコントローラを含んでいてもよい。
(A) at the same time as the ECC decoder processes the randomized data, the syndrome generator generates a partial verification syndrome; and (b) the syndrome generator generates the partial verification syndrome. An offset controller for adjusting the partial verification syndrome depending on the location of the particular randomized data symbol being processed by the generator.

【0029】前記ECC復号化器が、ランダム化された
データ記号を訂正するための訂正値を生成し、(a)前
記オフセットコントローラが、前記訂正されたデータ記
号の位置に応じて前記部分検証シンドロームを調整し、
(b)前記シンドローム生成器が、該訂正値を用いて該
部分検証シンドロームを更新してもよい。
The ECC decoder generates a correction value for correcting a randomized data symbol, and (a) the offset controller generates a correction value according to a position of the corrected data symbol. Adjust
(B) The syndrome generator may update the partial verification syndrome using the correction value.

【0030】(a)前記チェック記号が、有限領域の生
成多項式G(x)に従って生成され、(b)前記オフセ
ットコントローラが、前記部分検証シンドロームにXK
modG(x)を掛けることによって該部分検証シンド
ロームを調整し、ここで、Kはオフセット値であり、m
od演算子は剰余除算(modulo division)を行っても
よい。
(A) The check symbol is generated according to a generating polynomial G (x) of a finite area, and (b) the offset controller transmits X K to the partial verification syndrome.
Adjust the partial verification syndrome by multiplying by modG (x), where K is an offset value and m
The od operator may perform modulo division.

【0031】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式に基づいてもよい。
(A) The check symbol may be generated according to a generator polynomial in a finite area, and (b) the predetermined value may be based on the generator polynomial.

【0032】(a)前記非ランダム化器が、所定のシー
ド(seed)値に従ってランダムパターンを生成し、
(b)該ランダムパターンが、前記ランダム化されたデ
ータと結合されて、該ランダム化されたデータを非ラン
ダム化してもよい。
(A) The non-randomizer generates a random pattern according to a predetermined seed value,
(B) The random pattern may be combined with the randomized data to de-randomize the randomized data.

【0033】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式および前記ランダムパターンに基づいてもよ
い。
(A) The check symbol may be generated according to a generator polynomial in a finite area, and (b) the predetermined value may be based on the generator polynomial and the random pattern.

【0034】前記チェック記号が、巡回冗長符号(CR
C)に従って生成されてもよい。
The check symbol is a cyclic redundancy code (CR
C).

【0035】本発明による方法は、ディスク記憶媒体か
ら読み出されたランダム化されたデータ中の誤りを訂正
する方法であって、該ランダム化されたデータは、該ラ
ンダム化されたデータに対して生成されたECC冗長記
号と、ランダム化される前のデータに対して生成された
チェック記号とを含み、該方法は、(a)該ECC冗長
記号を用いて、該ランダム化されたデータ中の誤りを訂
正するステップと、(b)該ランダム化されたデータに
応答して、検証シンドロームを生成するステップと、
(c)該検証シンドロームを所定の値と比較して、該ラ
ンダム化されたデータに対する訂正の有効性および完全
性を検証するステップと、(d)該訂正検証器が、該ラ
ンダム化されたデータに対する訂正が有効で且つ完全で
あることを示した後に、該ランダム化されたデータを非
ランダム化するステップとを包含しており、これによ
り、上記目的が達成される。
A method according to the invention for correcting an error in randomized data read from a disk storage medium, wherein the randomized data is Including a generated ECC redundancy symbol and a check symbol generated for the data before being randomized, the method comprising: (a) using the ECC redundancy symbol in the randomized data; Correcting the error; and (b) generating a verification syndrome in response to the randomized data;
(C) comparing the verification syndrome with a predetermined value to verify the validity and completeness of the correction to the randomized data; and (d) the correction verifier verifies the randomized data. De-randomizing the randomized data after indicating that the correction to is valid and complete, thereby achieving the above objective.

【0036】(a)前記ランダム化されたデータが、交
差する符号語の第1および第2の組を含み、(b)前記
訂正するステップは、該第1の組の符号語および該第2
の組の符号語をシーケンシャルなパスで処理することに
よって、該ランダム化されたデータ中の誤りを訂正して
もよい。
(A) said randomized data comprises first and second sets of intersecting codewords; and (b) said correcting comprises: said first set of codewords and said second set of codewords.
May be corrected in the randomized data by processing the set of codewords in a sequential pass.

【0037】前記検証シンドロームを生成するステップ
が、(a)前記第1の組の符号語に対する第1のパスの
間にデータ検証シンドロームを生成するステップと、
(b)前記ランダム化されたデータを訂正するための訂
正値を用いて、誤り検証シンドロームを生成するステッ
プと、(c)該データ検証シンドロームを該誤り検証シ
ンドロームと結合して、前記所定の値と比較される最終
検証シンドロームを生成するステップとを包含してもよ
い。
The step of generating the verification syndrome includes: (a) generating a data verification syndrome during a first pass for the first set of codewords;
(B) generating an error verification syndrome using a correction value for correcting the randomized data; and (c) combining the data verification syndrome with the error verification syndrome to generate the predetermined value. Generating a final verification syndrome that is compared to

【0038】前記検証シンドロームを生成するステップ
が、(a)前記ランダム化されたデータを処理してEC
C誤りシンドロームを生成するのと同時に、部分検証シ
ンドロームを生成するステップと、(b)該ECC誤り
シンドロームを生成するために処理されている特定のラ
ンダム化されたデータ記号の位置に応じて、該部分検証
シンドロームを調整するステップとを包含してもよい。
The step of generating the verification syndrome includes the steps of: (a) processing the randomized data to generate an EC;
Generating a partial verification syndrome at the same time as generating the C error syndrome; and (b) responding to a position of a particular randomized data symbol being processed to generate the ECC error syndrome. Adjusting the partial verification syndrome.

【0039】前記検証シンドロームを生成するステップ
が、(a)訂正されたデータ記号の位置に応じて前記部
分検証シンドロームを調整するステップと、(b)前記
データ記号を訂正するために用いられる前記訂正値で、
該部分検証シンドロームを更新するステップとをさらに
包含してもよい。
The step of generating the verification syndrome includes: (a) adjusting the partial verification syndrome in accordance with the position of the corrected data symbol; and (b) the correction used to correct the data symbol. By value,
Updating the partial verification syndrome.

【0040】(a)前記チェック記号が、有限領域の生
成多項式G(x)に従って生成され、(b)前記部分検
証シンドロームを調整する前記ステップが、該部分検証
シンドロームにXK modG(x)を掛けるステップを
包含し、ここで、Kはオフセット値であり、mod演算
子は剰余除算を行ってもよい。
(A) the check symbol is generated according to a generating polynomial G (x) of a finite area; and (b) the step of adjusting the partial verification syndrome is performed by adding X K modG (x) to the partial verification syndrome. Multiplying, where K is an offset value, and the mod operator may perform remainder division.

【0041】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式に基づいてもよい。
(A) The check symbol may be generated according to a generator polynomial in a finite area, and (b) the predetermined value may be based on the generator polynomial.

【0042】(a)前記非ランダム化器が、所定のシー
ド値に従ってランダムパターンを生成し、(b)該ラン
ダムパターンが、前記ランダム化されたデータと結合さ
れて、該ランダム化されたデータを非ランダム化しても
よい。
(A) The non-randomizer generates a random pattern according to a predetermined seed value, and (b) combines the random pattern with the randomized data to generate the randomized data. It may be non-randomized.

【0043】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式および前記ランダムパターンに基づいてもよ
い。
(A) The check symbol may be generated according to a generator polynomial in a finite area, and (b) the predetermined value may be based on the generator polynomial and the random pattern.

【0044】前記チェック記号が、巡回冗長符号(CR
C)に従って生成されてもよい。
The check symbol is a cyclic redundancy code (CR
C).

【0045】本発明による別の誤り訂正プロセッサは、
ディスク記憶媒体から読み出されたデータ中の誤りを訂
正するための誤り訂正プロセッサであって、該データ
は、ECC冗長記号とチェック記号とを含み、該誤り訂
正プロセッサは、(a)該ECC冗長記号を用いて、該
データ中の誤りを訂正するためのECC復号化器と、
(b)該データに応答して、検証シンドロームを生成す
るためのシンドローム生成器と、(c)該検証シンドロ
ームを所定の値と比較して、該データに対する訂正の有
効性および完全性を検証するための訂正検証器と、
(d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後、該デ
ータを非ランダム化するための非ランダム化器とを含ん
でおり、これにより上記目的が達成される。
Another error correction processor according to the invention is:
An error correction processor for correcting an error in data read from a disk storage medium, the data including an ECC redundancy symbol and a check symbol, wherein the error correction processor comprises: An ECC decoder for correcting errors in the data using the symbols;
(B) a syndrome generator for generating a verification syndrome in response to the data; and (c) comparing the verification syndrome with a predetermined value to verify the validity and completeness of the correction to the data. Correction verifier for
(D) a non-randomizer for non-randomizing the data after the correction verifier indicates that the correction to the randomized data is valid and complete; This achieves the above object.

【0046】本発明による別の誤り訂正プロセッサは、
ディスク記憶媒体から読み出されたランダム化されたデ
ータ中の誤りを訂正するための誤り訂正プロセッサであ
って、該ランダム化されたデータは、該ランダム化され
たデータに対して生成されたECC冗長記号と、ランダ
ム化される前のデータに対して生成されたチェック記号
とを含み、該誤り訂正プロセッサは、(a)該ディスク
から読み出された該ランダム化されたデータを格納する
ためのデータバッファと、(b)該データバッファから
該ランダム化されたデータを受け取るように接続され、
該ランダム化されたデータ中の誤りを訂正するために、
ECC誤りシンドロームおよび訂正値を生成するための
ECC復号化器と、(c)該ECC復号化器が該データ
バッファから該ランダム化されたデータを受け取るのと
同時に該データバッファから該ランダム化されたデータ
を受け取るように接続され、検証シンドロームを生成す
るためのシンドローム生成器と、(d)該検証シンドロ
ームを所定の値を比較して、該ランダム化されたデータ
に対する訂正の有効性および完全性を検証するための訂
正検証器と、(e)該データバッファから該ランダム化
されたデータを受け取るように接続され、該訂正検証器
が、該ランダム化されたデータに対する訂正が有効で且
つ完全であることを示した後、該ランダム化されたデー
タを非ランダム化するための非ランダム化器とを含んで
おり、これにより上記目的が達成される。
Another error correction processor according to the invention is:
An error correction processor for correcting an error in randomized data read from a disk storage medium, wherein the randomized data includes an ECC redundancy generated for the randomized data. A symbol and a check symbol generated for the data before being randomized, the error correction processor comprising: (a) data for storing the randomized data read from the disk; A buffer, and (b) connected to receive the randomized data from the data buffer;
To correct errors in the randomized data,
An ECC decoder for generating an ECC error syndrome and correction value; and (c) the randomized data from the data buffer at the same time the ECC decoder receives the randomized data from the data buffer. A syndrome generator connected to receive the data and for generating a verification syndrome; and (d) comparing the verification syndrome to a predetermined value to determine the validity and completeness of correction to the randomized data. A correction verifier for verifying; and (e) connected to receive the randomized data from the data buffer, wherein the correction verifier is correct and valid for the randomized data. Indicating that the randomized data includes a non-randomizer for non-randomizing the randomized data, Serial object is achieved.

【0047】前記検証シンドロームが、巡回冗長符号
(CRC)に従って生成されてもよい。
[0047] The verification syndrome may be generated according to a cyclic redundancy code (CRC).

【0048】前記シンドローム生成器が、ランダム化さ
れたデータ記号が訂正されるときに前記ECC復号化器
によって生成される訂正値を用いて、前記検証シンドロ
ームを更新してもよい。
[0048] The syndrome generator may update the verification syndrome with a correction value generated by the ECC decoder when a randomized data symbol is corrected.

【0049】多次元符号に対する訂正の有効性および完
全性の証明に関連する待ち時間を避けるコンピュータ記
憶装置のための誤り訂正システムが開示される。好まし
い実施態様において、検証は、巡回冗長検査(CRC)
を用いて実施される。書込み動作中、CRC冗長シンボ
ルは、ホストシステムから受信したユーザデータに対し
て計算され、CRCシンボルを追加した後、データは、
疑似ランダムデータパターンで排他的論理和計算するこ
とによってランダム化される。次に、ECCシンボル
は、ランダム化データに対して(好ましくは、リードソ
ロモン符号を用いて)生成され、行(Q)および列
(P)符号語の積符号を形成する。次に、この積符号
は、ディスクに書き込まれる。読み返し時、積符号は、
データバッファに記憶され、P/Q復号化器によって復
号化される。Q符号語に対する第1パスの間、データC
RCシンドロームは、訂正されていないランダム化デー
タに対して生成され、データCRCシンドロームは、デ
ータCRCレジスタに記憶される。さらに、第1パスお
よび次のパスにおいては、PまたはQ符号語に訂正がな
されるとき、訂正値は、誤りCRCレジスタに適用され
る。完全なCRC符号語を処理した後、データCRCレ
ジスタと誤りCRCレジスタとは組み合わされ、最終C
RCシンドロームが生成される。最終CRCシンドロー
ムは、定数と比較され、積符号に対する訂正が有効かつ
完了しているかどうかを決定する。このとき、定数は、
ランダムデータパターンに対するCRCと等しい。この
ように、CRC検査は、ランダム化データに対して行わ
れ得る。これによって、CRCシンドロームを生成する
前にデータを非ランダム化するためのデータバッファへ
のアクセスに関連する待ち時間が避けられる。
An error correction system for computer storage is disclosed that avoids the latency associated with proving the validity and integrity of corrections to multidimensional codes. In a preferred embodiment, the verification comprises a cyclic redundancy check (CRC)
It is implemented using. During a write operation, a CRC redundancy symbol is calculated for the user data received from the host system, and after adding the CRC symbol, the data is:
It is randomized by performing an exclusive OR operation with a pseudo random data pattern. Next, an ECC symbol is generated (preferably using a Reed-Solomon code) for the randomized data to form a product code of the row (Q) and column (P) codewords. This product code is then written to disk. When reading back, the product sign is
It is stored in a data buffer and decoded by a P / Q decoder. During the first pass for the Q codeword, the data C
An RC syndrome is generated for the uncorrected randomized data, and the data CRC syndrome is stored in a data CRC register. Further, in the first pass and the next pass, when a correction is made to the P or Q codeword, the correction value is applied to the error CRC register. After processing the complete CRC codeword, the data CRC register and the error CRC register are combined and the final C
An RC syndrome is generated. The final CRC syndrome is compared to a constant to determine whether the correction to the product code is valid and complete. At this time, the constant is
Equivalent to CRC for random data pattern. Thus, a CRC check may be performed on the randomized data. This avoids the latency associated with accessing the data buffer to de-randomize the data before generating the CRC syndrome.

【0050】本発明によって提供される他の利点は、P
およびQ符号語の訂正と同時に実行中にCRCシンドロ
ームを生成する能力である。従って、CRC符号語を処
理した直後に、CRCシンドロームは、訂正の有効性お
よび完全性を検査するために利用可能である。つまり、
CRCシンドロームを生成するためにデータバッファに
アクセスする必要はないのである。
Another advantage provided by the present invention is that P
And the ability to generate a CRC syndrome during execution simultaneously with the correction of the Q codeword. Thus, immediately after processing the CRC codeword, the CRC syndrome is available to check the validity and completeness of the correction. That is,
There is no need to access the data buffer to generate a CRC syndrome.

【0051】本発明の実施可能性局面は、PおよびQパ
ス中にデータおよび誤りCRCシンドロームを調節し、
CRC符号語シンボル内のオフセットを補うことであ
る。例えば、垂直(即ち、P)符号語を処理する場合、
処理される各垂直シンボルに対して、1行のデータシン
ボルによって誤りCRCシンドロームを調節する必要が
ある。これは、以下の式によってデータおよび誤りCR
Cシンドロームを乗算する特殊な乗算器回路を用いて実
行される。
The enablement aspect of the present invention is to adjust the data and error CRC syndrome during the P and Q passes,
Compensating for the offset within the CRC codeword symbol. For example, when processing a vertical (ie, P) codeword,
It is necessary to adjust the error CRC syndrome by one row of data symbols for each vertical symbol processed. This is because the data and error CR are:
This is performed using a special multiplier circuit that multiplies the C syndrome.

【0052】[0052]

【数7】 ここで、kは、オフセット(例えば、1行のシンボ
ル)、およびG(x)は、CRC生成器多項式である。
(Equation 7) Here, k is an offset (eg, one row of symbols), and G (x) is a CRC generator polynomial.

【0053】各データセクタに追加された個別のCRC
シンボルを有する多数のデータセクタを備えたDVD積
符号については、CDモードにおいてC1およびC2符
号化/復号化に用いられるSRAMが、各データセクタ
に対する部分データおよび誤りCRCシンドロームを記
憶するために用いられる。PおよびQパスの間、データ
および誤りCRCシンドロームレジスタは、P/Q復号
化器によって処理される現在のデータシンボルに応じ
て、適切な部分CRCシンドロームでロードされる。各
データセクタを処理した後、各データセクタに対するデ
ータCRCシンドロームと誤りCRCシンドロームとは
組み合わされ、疑似ランダムデータパターンに対するC
RCと等しい定数と比較される。
Individual CRC added to each data sector
For DVD product codes with multiple data sectors with symbols, the SRAM used for C1 and C2 encoding / decoding in CD mode is used to store the partial data and error CRC syndrome for each data sector. . During the P and Q passes, the data and error CRC syndrome registers are loaded with the appropriate partial CRC syndrome, depending on the current data symbol processed by the P / Q decoder. After processing each data sector, the data CRC error syndrome and the error CRC syndrome for each data sector are combined to form a CRS for the pseudo-random data pattern.
It is compared with a constant equal to RC.

【0054】本発明の上記ならびに他の局面および利点
は、以下の本発明の詳細な説明を図面を参照しながら読
むことによってより明確に理解される。
The above and other aspects and advantages of the present invention will be more clearly understood by reading the following detailed description of the present invention with reference to the drawings.

【0055】[0055]

【発明の実施の形態】なお本発明の優先権主張の基礎と
なる米国出願は、「AN ECC SYSTEM EMPLOYING A DATA B
UFFER FOR STORING CODEWORD DATA AND A SYNDROME BUF
FER FOR STORING ERROR SYNDOROMES」という名称の同時
に出願された米国特許出願第08/970,730号、
ならびに「CONCURRENTGENERATION OF ECC ERROR SYNDRO
MES AND CRC VALIDATION SYNDOROMES IN A DVDSTORAGE
DEVICE」という名称の同時に出願された米国特許出願第
08/970,600号および「COEFFICIENT UPDATING
METHOD AND APPARATUS FOR REED-SOLOMON DECODER」と
いう名称の米国特許第5,446,743号である。上
記の米国特許出願および米国特許は、本願では、参考の
ために援用する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The U.S. application on which the priority claim of the present invention is based is "AN ECC SYSTEM EMPLOYING A DATA B
UFFER FOR STORING CODEWORD DATA AND A SYNDROME BUF
No. 08 / 970,730, filed concurrently, entitled "FER FOR STORING ERROR SYNDOROMES,"
And "CONCURRENTGENERATION OF ECC ERROR SYNDRO
MES AND CRC VALIDATION SYNDOROMES IN A DVDSTORAGE
Co-filed US patent application Ser. No. 08 / 970,600 entitled “DEVICE” and “COEFFICIENT UPDATING
No. 5,446,743 entitled "METHOD AND APPARATUS FOR REED-SOLOMON DECODER". The aforementioned U.S. patent applications and U.S. patents are incorporated herein by reference.

【0056】[システムの概観]図2は、本発明の誤り訂
正システムの概観を示す。このシステムの動作は、以下
の変更を除いて、図1を参照しながら上述した従来のシ
ステムと同様である。読出し動作中、ECC誤りシンド
ロームは、第1水平パスにおいて、積符号の水平符号語
および垂直符号語の両方に対して同時に生成される。E
CC誤りシンドロームは、SRAM15内に記憶され、
SRAM15はCD積符号を復号化するときにCIRC
誤り訂正用にも用いられる。これにより、記憶装置の待
ち時間が大幅に減少する。なぜなら、次の水平または垂
直パスの間にECC誤りシンドロームを再生するために
データバッファ1にアクセスする必要がないからであ
る。本発明の他の重要な変更は、積符号の訂正と同時に
CRCシンドロームを生成すること、およびデータバッ
ファに記憶されたデータを非ランダム化する前にCRC
シンドロームを検査することである。これにより、CR
Cシンドロームを生成するために、データバッファ1か
ら積符号全体を読み出す必要がなくなり、記憶システム
の待ち時間はさらに減少する。
[Overview of System] FIG. 2 shows an overview of the error correction system of the present invention. The operation of this system is similar to the conventional system described above with reference to FIG. 1, except for the following changes. During a read operation, an ECC error syndrome is generated simultaneously for both the horizontal and vertical codewords of the product code in a first horizontal pass. E
The CC error syndrome is stored in the SRAM 15,
The SRAM 15 uses the CIRC when decoding the CD product code.
Also used for error correction. This greatly reduces the waiting time of the storage device. This is because there is no need to access the data buffer 1 to reproduce the ECC error syndrome during the next horizontal or vertical pass. Another important modification of the present invention is to generate the CRC syndrome concurrently with the correction of the product code, and the CRC before de-randomizing the data stored in the data buffer.
To test for the syndrome. Thereby, CR
There is no need to read the entire product code from the data buffer 1 to generate the C syndrome, and the latency of the storage system is further reduced.

【0057】図1の従来の誤り訂正システムと異なる構
成要素は、SRAM15、P/Q復号化器16(ECC
/シンドローム生成器17および誤り訂正器18を含
む)、およびCRC生成器および訂正検証器19であ
る。ECC/シンドローム生成器17は、ライン20を
介して誤り訂正器に転送されるECCシンドロームを生
成および記憶する際にSRAM15を用いる。データバ
ッファ1に記憶される符号語を訂正するための誤り訂正
器18によって生成される訂正値は、ECCシンドロー
ムを更新する際に使用されるECC/シンドローム生成
器17にもライン21を介して通信される。CRC生成
器および訂正検証器19はまた、SRAM15を用い
て、DVD積符号の16個のデータセクタに対する16
個の部分CRCシンドロームを記憶する。SRAM15
内に記憶される部分CRCシンドロームは、誤り訂正器
18によって生成される訂正値を用いて更新される。訂
正値は、ライン21を介して、CRC生成器および訂正
検証器19と通信される。
Components different from the conventional error correction system of FIG. 1 are an SRAM 15, a P / Q decoder 16 (ECC
/ Syndrome generator 17 and error corrector 18), and a CRC generator and correction verifier 19. The ECC / syndrome generator 17 uses the SRAM 15 in generating and storing ECC syndromes that are transferred to the error corrector via line 20. The correction value generated by the error corrector 18 for correcting the codeword stored in the data buffer 1 is also communicated via the line 21 to the ECC / syndrome generator 17 used when updating the ECC syndrome. Is done. The CRC generator and correction verifier 19 also uses the SRAM 15 to store 16 bits for the 16 data sectors of the DVD product code.
The partial CRC syndromes are stored. SRAM 15
The partial CRC syndrome stored in is updated with the correction value generated by the error corrector 18. The correction value is communicated via line 21 to the CRC generator and correction verifier 19.

【0058】[データフォーマット]図3Aは、DVD記
憶装置において典型的に用いられる2次元積符号のデー
タフォーマットを示す。積符号は、16個のデータセク
タを有し、各データセクタは、12個の水平符号語(Q
符号語)を有する。各水平符号語は、好ましくはリード
−ソロモン符号に従って生成される10個のECC冗長
シンボルを有する。182個の垂直符号語(P符号語)
があり、それぞれ、図示するように、16個の冗長シン
ボルを有する。ECC冗長シンボルは、ECC符号語も
形成する。即ち、ECC冗長シンボルは、ユーザデータ
と同様に訂正可能である。従って、右側には、10個の
ECC符号語を含む全部で182個の垂直符号語があ
り、下側には、16個の水平ECC符号語を含む208
個の水平符号語がある。
[Data Format] FIG. 3A shows a data format of a two-dimensional product code typically used in a DVD storage device. The product code has 16 data sectors, each data sector having 12 horizontal codewords (Q
Codeword). Each horizontal codeword has ten ECC redundant symbols, preferably generated according to a Reed-Solomon code. 182 vertical codewords (P codewords)
, Each having 16 redundant symbols as shown. ECC redundant symbols also form ECC codewords. That is, the ECC redundant symbol can be corrected similarly to the user data. Thus, on the right side there are a total of 182 vertical codewords, including 10 ECC codewords, and on the lower side, 208, including 16 horizontal ECC codewords.
There are horizontal codewords.

【0059】16個のデータセクタのそれぞれの端部に
は、ECC冗長シンボルを使用して符号語に対する訂正
の有効性および完全性を証明するのに用いられる4個の
CRCシンボルがある。上記のように、書込み動作中、
CRCシンボルは、通常、データがランダム化される前
およびECC冗長シンボルを加える前に、ユーザデータ
に対して生成される。従って、CRCシンボルは、EC
Cシンボルをカバーしない。さらに、従来の誤り訂正シ
ステムは、CRC検査を行う前にデータを非ランダム化
しなければならない。
At the end of each of the 16 data sectors, there are four CRC symbols used to prove the validity and completeness of the correction to the codeword using ECC redundant symbols. As described above, during a write operation,
CRC symbols are typically generated for user data before the data is randomized and before adding ECC redundancy symbols. Therefore, the CRC symbol is EC
Does not cover the C symbol. In addition, conventional error correction systems must de-randomize the data before performing a CRC check.

【0060】図3Bは、図3Aの積符号の最初の2個の
データセクタのさらなる詳細を示す。ECC符号語の訂
正と同時にCRCシンドロームを生成する本発明の技術
について、図3Bを参照しながら以下に説明する。
FIG. 3B shows further details of the first two data sectors of the product code of FIG. 3A. The technique of the present invention for generating a CRC syndrome simultaneously with correcting an ECC codeword will be described below with reference to FIG. 3B.

【0061】[データランダム化器/非ランダム化器]本
発明の誤り訂正システムは、ユーザデータを不透明に
し、検出するのが困難なデータシーケンスがディスクに
記録されるのを防止する。図2を参照しながら上述した
ように、データバッファ1に記憶されるユーザデータ
は、CRCシンボルが生成された後にランダム化され
る。次に、ECC/シンドローム生成器12は、ランダ
ム化データを処理し、図3Aに示す積符号のPおよびQ
符号語に対するECC冗長を生成する。読み返し時に、
積符号は訂正され、訂正が確認される。訂正が有効かつ
完了している場合、データは非ランダム化され、ホスト
システムに転送される。
Data Randomizer / Derandomizer The error correction system of the present invention opaques user data and prevents data sequences that are difficult to detect from being recorded on the disc. As described above with reference to FIG. 2, the user data stored in the data buffer 1 is randomized after the CRC symbol is generated. Next, the ECC / syndrome generator 12 processes the randomized data and generates P and Q of the product code shown in FIG. 3A.
Generate ECC redundancy for the codeword. When reading back,
The product code is corrected and the correction is confirmed. If the correction is valid and complete, the data is de-randomized and transferred to the host system.

【0062】データをランダム化/非ランダム化するた
めの回路は当業者に周知であり、図3Cおよび図3D
は、この回路を示す。回路は、ライン23に与えられる
疑似ランダムデータシーケンスを生成するためのランダ
ムパターン生成器を有する。読出し動作中、データバッ
ファ1に記憶されるユーザデータおよびCRCシンボル
は、加算器24においてランダムデータシーケンスに加
えられ(排他的論理和計算)、それによって、データが
ディスクに書き込まれる前にデータをランダム化する。
読み返し時に、ランダムパターン生成器22は、加算器
25において、ディスクから読み出されたデータに加え
られ(排他的論理和計算)、それによって、データをホ
ストシステムに転送する前にデータを非ランダム化す
る。
Circuits for randomizing / de-randomizing data are well known to those skilled in the art and are illustrated in FIGS. 3C and 3D.
Shows this circuit. The circuit has a random pattern generator for generating a pseudo-random data sequence provided on line 23. During a read operation, the user data and CRC symbols stored in the data buffer 1 are added to a random data sequence in an adder 24 (exclusive OR operation), thereby randomizing the data before the data is written to the disk. Become
Upon readback, the random pattern generator 22 adds to the data read from the disk in an adder 25 (exclusive OR), thereby de-randomizing the data before transferring it to the host system. I do.

【0063】好ましくは、疑似ランダムデータシーケン
スは、8ビットシンボル(ECC符号のシンボルサイ
ズ)を用いて生成される。疑似ランダムデータシーケン
スを生成するための好ましい実施態様は、図3Dに示す
ように、リニアフィードバックシフトレジスタ(LFS
R)を用いることである。LFSR回路は、ライン26
を介してシード値で初期化され、疑似ランダムデータシ
ーケンスは、シード値に応じて異なる。異なるシード値
は、図3Aに示す各DVD積符号に対して用いられる。
Preferably, the pseudo-random data sequence is generated using 8-bit symbols (the symbol size of the ECC code). A preferred embodiment for generating a pseudo-random data sequence is a linear feedback shift register (LFS), as shown in FIG. 3D.
R). The LFSR circuit operates on line 26
And the pseudo-random data sequence is different depending on the seed value. A different seed value is used for each DVD product code shown in FIG. 3A.

【0064】[水平および垂直ECCシンドロームの同
時生成]ECCおよびCRCシンドロームを同時に生成
し、訂正値を用いてECCおよびCRCシンドロームを
更新する回路および流れ図を以下に開示する。本発明の
ECCシンドローム生成器17について2つの実施態様
がある。第1の実施態様では、水平パスの間に水平符号
語に対してシンドロームが生成されるのと同時に、EC
Cシンドロームが、垂直符号パスに対して生成される。
以下にさらに詳細に記載するように、SRAM15は、
垂直シンドロームの生成を容易にする。このように、垂
直符号語に対するECCシンドロームが、水平パスの直
後にSRAM15内において利用できるので、垂直符号
語は、ECCシンドロームを生成するためにデータバッ
ファにアクセスせずに訂正され、それによって、誤り訂
正待ち時間が大幅に減少する。本実施態様は、訂正が、
通常、水平および垂直符号語に対する一回のパスの後完
了する、DVD記憶装置などにおけるように、大量のE
CC冗長を用いる積符号に特に適している。
[Simultaneous Generation of Horizontal and Vertical ECC Syndromes] A circuit and a flowchart for simultaneously generating ECC and CRC syndromes and updating ECC and CRC syndromes with correction values are disclosed below. There are two embodiments for the ECC syndrome generator 17 of the present invention. In a first embodiment, a syndrome is generated for a horizontal codeword during a horizontal pass while EC
A C syndrome is generated for the vertical code path.
As described in further detail below, the SRAM 15
Facilitates the generation of vertical syndrome. Thus, since the ECC syndrome for the vertical codeword is available in the SRAM 15 immediately after the horizontal pass, the vertical codeword is corrected without accessing the data buffer to generate the ECC syndrome, thereby causing an error. The correction waiting time is greatly reduced. In this embodiment, the correction is
Typically, a large amount of E, such as in a DVD storage device, completes after one pass on the horizontal and vertical codewords.
Particularly suitable for product codes using CC redundancy.

【0065】ECCシンドローム生成器17の第2の実
施態様は、より少ないECC冗長を用いる積符号に向け
られており、そのため、多数の水平および垂直パスを必
要とする。この実施態様では、SRAM15は、水平お
よび垂直符号語の両方に対してECCシンドロームを記
憶する。ECCシンドロームの両セットは、第1水平パ
スの間に同時に生成され、ECCシンドロームは、訂正
値を用いて更新される。このように、データバッファに
アクセスし、ECCシンドロームを再生成する際の待ち
時間は、水平および垂直パスの両方に対して避けられ
る。誤り訂正は、わずかな時間で行われる。なぜなら、
第1パスに続くパスは、データを訂正するためにデータ
バッファにアクセスすることのみが必要であるからであ
る。
The second embodiment of the ECC syndrome generator 17 is directed to a product code with less ECC redundancy, and thus requires multiple horizontal and vertical passes. In this embodiment, SRAM 15 stores ECC syndromes for both horizontal and vertical codewords. Both sets of ECC syndromes are generated simultaneously during the first horizontal pass, and the ECC syndromes are updated with the correction values. Thus, latency in accessing the data buffer and regenerating the ECC syndrome is avoided for both horizontal and vertical passes. Error correction is performed in a short time. Because
The pass following the first pass only needs to access the data buffer to correct the data.

【0066】本発明の第1の実施態様では、垂直誤りシ
ンドロームのみがSRAM15内に記憶されるが、これ
は、図4および図5を参照することによって理解され
る。図4は、各水平パスにおける水平符号語に対する誤
りシンドロームを生成するために用いられる回路を示
す。即ち、水平誤りシンドロームは常に再生成され、S
RAM15内には記憶されない。水平誤りシンドローム
iを生成するために、図4の回路は、以下の生成器多
項式G(x)の因数によって各水平符号語C’(x)の
剰余除算を計算する。
In the first embodiment of the present invention, only the vertical error syndrome is stored in the SRAM 15, which can be understood by referring to FIGS. FIG. 4 shows the circuitry used to generate error syndromes for the horizontal codeword in each horizontal pass. That is, the horizontal error syndrome is always regenerated and S
It is not stored in the RAM 15. To generate the horizontal error syndrome S i , the circuit of FIG. 4 calculates the remainder division of each horizontal codeword C ′ (x) by a factor of the generator polynomial G (x) below.

【0067】[0067]

【数8】 このとき(Equation 8) At this time

【0068】[0068]

【数9】 である。この計算を行うために、水平符号語(ECC冗
長を含む)のシンボルは、データバッファ1から連続し
て読み出され、ライン27を介して、リニアフィードバ
ックシフトレジスタ(LFSR)280から289のバン
クに与えられる。好ましい実施態様において、各水平符
号語は、図3Aに示すように、10個のECC冗長シン
ボルを含むので、図4では10個のLFSRが存在する
ことになる。各LFSRには、フィードバックパスにお
いて、対応するαi係数乗算器が設けられている。各L
FSRは、生成器多項式G(x)の各因数について剰余
除算を行い、これによって、上式についての誤りシンド
ロームSiを生成する。図4に開示する回路は、当業者
に周知であり、本発明の新規の局面は、垂直符号語に対
して誤りシンドロームを同時に生成することにある。図
5は、この詳細を示す。
(Equation 9) It is. To do this calculation, the symbol of the horizontal codeword (including the ECC redundancy) are read sequentially from the data buffer 1, through the line 27, the linear feedback shift register (LFSR) 28 0 to 28 9 Given to the bank. In the preferred embodiment, each horizontal codeword contains 10 ECC redundant symbols, as shown in FIG. 3A, so there will be 10 LFSRs in FIG. Each LFSR is provided with a corresponding α i coefficient multiplier in the feedback path. Each L
The FSR performs remainder division on each factor of the generator polynomial G (x), thereby generating an error syndrome S i for the above equation. The circuit disclosed in FIG. 4 is well known to those skilled in the art, and a novel aspect of the present invention is to simultaneously generate error syndromes for vertical codewords. FIG. 5 illustrates this detail.

【0069】数学的に、垂直符号語に対する誤りシンド
ロームは、上記の水平符号語に対するのと同様に計算さ
れる。即ち、垂直誤りシンドロームSiは、生成器多項
式G(x)の因数で各垂直符号語C’(x)の剰余除算
を計算することによって生成される。従来のシンドロー
ム生成器は、通常、図4に示すのと同じ回路を用いて垂
直誤りシンドロームを生成する。即ち、垂直符号語(E
CC冗長を含む)のシンボルは、データバッファ1から
連続して読み出され、LFSRのバンクを通してシフト
される。本発明において、垂直誤りシンドロームは、水
平誤りシンドロームの生成と同時に生成され、垂直パス
の間に垂直符号語を読み出すためにデータバッファへア
クセスすることが避けられる。
Mathematically, the error syndrome for a vertical codeword is calculated in the same way as for the horizontal codeword above. That is, the vertical error syndrome S i is generated by calculating the remainder division of each vertical codeword C ′ (x) by a factor of the generator polynomial G (x). Conventional syndrome generators typically generate vertical error syndromes using the same circuitry as shown in FIG. That is, the vertical codeword (E
Symbols (including CC redundancy) are read continuously from data buffer 1 and shifted through the banks of the LFSR. In the present invention, the vertical error syndrome is generated simultaneously with the generation of the horizontal error syndrome, avoiding accessing the data buffer to read the vertical codeword during the vertical pass.

【0070】図5は、垂直誤りシンドロームを同時に生
成するための回路を示す。この回路の動作は、図3Aに
示す積符号を参照することによって理解される。SRA
M15は、182個の垂直符号語のそれぞれに対して1
6個の誤りシンドロームSiを記憶する容量を有する。
SRAM15内における垂直誤りシンドロームSiは、
第1水平パスの初めにゼロに初期化される。第1水平符
号語を処理する際、シンボルは、データバッファ1から
連続して読み出され、ライン27を介して図4のLFS
Rに与えられ、水平誤りシンドロームを生成する。シン
ボルは、同時に、ライン27を介して図5に示す回路に
与えられ、垂直誤りシンドロームを生成する。図4と同
様に、図5は、生成器多項式G(x)の16個の因数に
よって垂直符号語シンボル(各垂直符号語は、16個E
CC冗長シンボルを有する)の剰余除算を計算するため
のシンドローム生成回路290から2915のバンクを有
する。
FIG. 5 shows a circuit for simultaneously generating vertical error syndromes. The operation of this circuit can be understood by referring to the product code shown in FIG. 3A. SRA
M15 is 1 for each of the 182 vertical codewords.
Has the capacity to store the six error syndromes S i.
The vertical error syndrome S i in the SRAM 15 is
Initialized to zero at the beginning of the first horizontal pass. When processing the first horizontal codeword, the symbols are read continuously from the data buffer 1 and, via line 27, the LFS of FIG.
R to generate a horizontal error syndrome. The symbols are simultaneously provided to the circuit shown in FIG. 5 via line 27 to generate a vertical error syndrome. Similar to FIG. 4, FIG. 5 illustrates a vertical codeword symbol (each vertical codeword is 16 E) by 16 factors of the generator polynomial G (x).
With a bank of syndrome generating circuits 29 0 to 29 15 for calculating the modular division of having CC redundancy symbols).

【0071】図5に示す個々のシンドローム生成回路2
0から2915を理解するために、第1水平符号語がデ
ータバッファから読み出されるときの動作について考え
よう。第1水平符号語の第1シンボルは、第1垂直符号
語の第1シンボルに対応する。従って、制御ライン30
は、第1垂直符号語に対して、16個の垂直誤りシンド
ローム(各8ビット)をSRAM15から取り出す。各
8ビット垂直ECCシンドロームは、対応するレジスタ
310から3115にラッチされ、乗算器320から3215
の出力として選択され、対応するαiフィードバック係
数330から33 15によって乗算される。ライン27上
の符号語シンボルは、乗算器340から3415の出力と
して選択され、加算器350から3515において、係数
乗算器の出力として加算される。加算器350から35
15の出力で更新されたシンドロームは、次に、SRAM
15内に再記憶される。第1水平符号語の第2シンボル
を処理する際、制御ライン30は、第2の垂直符号語に
対して、16個垂直誤りシンドロームをSRAM15か
ら取り出し、上記の手順が繰り返される。このプロセス
は、水平符号語のそれぞれに対して続行し、水平パスの
終わりには、垂直符号語を訂正するための誤りシンドロ
ームが、SRAM15内に記憶される。
The individual syndrome generation circuit 2 shown in FIG.
90From 29FifteenIn order to understand, the first horizontal codeword is
Operation when data is read from the data buffer
Like. The first symbol of the first horizontal codeword is the first vertical code
Corresponds to the first symbol of the word. Therefore, the control line 30
Is 16 vertical error symbols for the first vertical codeword.
The ROM (each 8 bits) is taken out from the SRAM 15. each
The 8-bit vertical ECC syndrome uses the corresponding register
310From 31FifteenAnd the multiplier 320From 32Fifteen
And the corresponding αiFeedback Section
Number 330From 33 FifteenMultiplied by On line 27
Is multiplied by the multiplier 340From 34FifteenOutput and
Is selected and the adder 35 is selected.0From 35FifteenAt the coefficient
It is added as the output of the multiplier. Adder 350From 35
FifteenThe syndrome updated with the output of
15 is stored again. The second symbol of the first horizontal codeword
, The control line 30 changes the second vertical codeword to
On the other hand, 16 vertical error syndromes
And the above procedure is repeated. This process
Continues for each of the horizontal codewords,
At the end, an error syndrome to correct the vertical codeword
Is stored in the SRAM 15.

【0072】水平パスの間に水平符号語が訂正される場
合、SRAM15内に記憶されている対応する垂直誤り
シンドロームは、訂正されたシンボルを考慮するために
更新されなければならない。図2のシンドローム生成器
17および誤り訂正器18は、好ましくは、隣接する符
号語上で動作する。換言すると、シンドローム生成器1
7が、現在の水平符号語に対して誤りシンドロームを生
成している間、誤り訂正器18は、前の水平符号語に対
してシンボルを訂正する。さらに、誤り訂正は、水平誤
りシンドロームの生成を追跡し、訂正値で垂直誤りシン
ドロームの調整を単純にする。
If the horizontal codeword is corrected during the horizontal pass, the corresponding vertical error syndrome stored in SRAM 15 must be updated to take into account the corrected symbol. The syndrome generator 17 and error corrector 18 of FIG. 2 preferably operate on adjacent codewords. In other words, the syndrome generator 1
While 7 generates an error syndrome for the current horizontal codeword, error corrector 18 corrects the symbol for the previous horizontal codeword. In addition, error correction tracks the generation of horizontal error syndromes and simplifies adjustment of vertical error syndromes with correction values.

【0073】例えば、シンドローム生成器17が、誤り
訂正器18が、第1の水平符号語を訂正する間、図3A
の第2水平符号語に対して誤りシンドロームを生成する
ことについて考慮する。シンドローム生成器17が、第
2符号語の第3シンボル36を通過し、第1符号語の第
3シンボル37に誤りがあると仮定する。誤り訂正器1
8は、データバッファ1に記憶されている第1水平符号
語の第3シンボル37を訂正するために用いられる訂正
値を生成し、訂正値は、図5の垂直シンドローム生成回
路290から2915にライン21を介して与えられる。
制御ライン30は、レジスタ310から3115にラッチ
される、第3垂直符号語に対する垂直誤りシンドローム
をSRAM15から取り出す。次に、レジスタ310
ら3115の出力は、加算器350から3515に対する入
力として、乗算器340から3415を通して選択され
る。ライン21を介して与えられる訂正値は、乗算器3
0から3215の出力として選択され、対応のαiフィー
ドバック係数330から3315によって乗算され、加算
器350から3515において垂直誤りシンドロームに加
算される。訂正値を対応するαiフィードバック係数3
0から3315によって乗算することは、現在の垂直E
CCシンドローム値と、訂正されているシンボルとの間
のオフセット(即ち、垂直符号語における1つのシンボ
ルのオフセット)を考慮するのに必要である。
For example, while the syndrome generator 17 corrects the first horizontal codeword while the error corrector 18 corrects the first horizontal codeword, FIG.
Consider generating error syndromes for the second horizontal codeword of. Assume that the syndrome generator 17 has passed the third symbol 36 of the second codeword and the third symbol 37 of the first codeword is erroneous. Error Corrector 1
8 generates a correction value used to correct the third symbol 37 of the first horizontal codeword stored in the data buffer 1, and the correction value is the vertical syndrome generation circuits 29 0 to 29 15 of FIG. Via line 21.
Control line 30 takes out is latched in the register 31 0 to 31 15, the vertical error syndromes for the third vertical codeword from SRAM 15. Next, the outputs of registers 31 0 through 31 15 are selected through multipliers 34 0 through 34 15 as inputs to adders 35 0 through 35 15 . The correction value provided via line 21 is
Is selected as the output of the 2 0 to 32 15, are multiplied by the corresponding alpha i feedback coefficient 33 0 to 33 15, is added to the vertical error syndromes at adder 35 0 35 15. Α i feedback coefficient 3 corresponding to the correction value
Multiplying by 3 0 to 33 15 gives the current vertical E
This is necessary to account for the offset between the CC syndrome value and the symbol being corrected (ie, the offset of one symbol in the vertical codeword).

【0074】水平パスの終わりには、垂直符号語に対す
る誤りシンドロームは、完全に生成され、即座に処理に
利用できる。従って、垂直パスを実行するためには、垂
直誤りシンドロームは、SRAM15から単に取り出さ
れ、垂直符号語を訂正するために誤り訂正器18によっ
て使用される。垂直パスの後、積符号のCRCシンボル
が、誤りがまだ残っていることを示す場合、上記のプロ
セスが繰り返される(即ち、水平および垂直誤りシンド
ロームが、次の水平パスにおいて再生成される)。
At the end of the horizontal pass, the error syndrome for the vertical codeword is completely generated and immediately available for processing. Thus, to perform a vertical pass, the vertical error syndrome is simply retrieved from SRAM 15 and used by error corrector 18 to correct the vertical codeword. After the vertical pass, if the CRC symbol of the product code indicates that errors still remain, the above process is repeated (ie, the horizontal and vertical error syndromes are regenerated in the next horizontal pass).

【0075】本発明の他の実施態様において、水平およ
び垂直シンドロームは両方ともSRAM15内に記憶さ
れる。なぜなら、これらは、第1水平パスにおいて同時
に生成されるからである。このように、上記の実施態様
のように、次の水平パスの間に水平シンドロームを再生
成する必要はない。シンドロームは、水平および垂直パ
スの間に単に取り出され、符号語を訂正するために使用
される。本実施態様は、積符号を訂正するために多数の
パスが必要である場合(例えば、記録密度を増加させる
ことによって、ECC冗長シンボルが減少する場合、ま
たはSNRが減少する場合)に特に有利である。
In another embodiment of the invention, both horizontal and vertical syndromes are stored in SRAM 15. Because they are generated simultaneously in the first horizontal pass. Thus, there is no need to regenerate the horizontal syndrome during the next horizontal pass as in the above embodiment. Syndromes are simply taken out during the horizontal and vertical passes and used to correct the codeword. This embodiment is particularly advantageous when multiple passes are required to correct the product code (eg, when increasing the recording density reduces ECC redundant symbols or decreases SNR). is there.

【0076】図6Aおよび図6Bは、それぞれ、本実施
態様による訂正値を用いて垂直および水平シンドローム
を更新するための回路を示す。これらの回路は、オフセ
ットを考慮する必要がないので、誤り訂正値21を、α
iで乗算する必要がないこと以外は、図5の回路と実質
的に同様に動作する。好ましい実施態様において、第1
水平パスにおいて水平および垂直誤りシンドロームを最
初に生成するための図4および図5の回路は、次のパス
において誤りシンドロームを更新するための図6Aおよ
び図6Bの回路と共用される。制御ライン30を介した
アドレッシングは、どの誤りシンドロームのセット(水
平または垂直)が、適切な時点でSRAM15から取り
出されるかを決定する。
FIGS. 6A and 6B show circuits for updating the vertical and horizontal syndromes using the correction values according to the present embodiment, respectively. Since these circuits do not need to consider the offset, the error correction value 21 is represented by α
It operates substantially the same as the circuit of FIG. 5, except that there is no need to multiply by i . In a preferred embodiment, the first
The circuitry of FIGS. 4 and 5 for first generating horizontal and vertical error syndromes in the horizontal pass is shared with the circuitry of FIGS. 6A and 6B for updating the error syndromes in the next pass. Addressing via control line 30 determines which set of error syndromes (horizontal or vertical) is retrieved from SRAM 15 at the appropriate time.

【0077】図7Aは、本発明の動作を説明するフロー
図であり、図示しないコントローラによって実行され
る。第1の水平パス37の間に、水平および垂直ECC
シンドロームおよびデータCRCシンドロームが同時に
生成され、SRAM15内に記憶される。また、第1の
水平パス37の間に、水平符号化語が訂正され、訂正値
を用いて、垂直シンドロームおよびSRAM15内に記
憶された誤りCRCシンドロームが更新される。第1の
および次の水平パスの後、ステップ38で、積符号への
訂正の有効性および完全性が最終CRCシンドロームを
用いて確認される。水平パス後も誤りが残る場合は、ス
テップ40で垂直パスが実行され、垂直符号語が訂正さ
れる。ここでは、訂正値を用いて、シンドロームバッフ
ァ内に記憶された水平シンドロームが更新される。垂直
パスの後、ステップ42で、訂正の有効性および完全性
が最終CRCシンドロームを用いて確認される。垂直パ
ス後も誤りが残る場合は、ステップ44で別の水平パス
が実行され、水平符号語が訂正される。実際の適用に依
存して、訂正はSRAM15内に記憶された水平シンド
ロームを用いて行われる(すなわち、水平シンドローム
はSRAM15内で既に利用可能な場合は再生成されな
い)。水平および垂直パス、ならびにCRC検査は、積
符号が訂正されるかまたは訂正不能と決定されるまで繰
り返される。
FIG. 7A is a flowchart for explaining the operation of the present invention, which is executed by a controller (not shown). During the first horizontal pass 37, horizontal and vertical ECC
The syndrome and the data CRC syndrome are simultaneously generated and stored in the SRAM 15. Also, during the first horizontal pass 37, the horizontal coded word is corrected, and the vertical syndrome and the error CRC syndrome stored in the SRAM 15 are updated using the correction value. After the first and next horizontal passes, in step 38 the validity and completeness of the correction to the product code is verified using the final CRC syndrome. If the error remains after the horizontal pass, a vertical pass is performed at step 40 to correct the vertical codeword. Here, the horizontal syndrome stored in the syndrome buffer is updated using the correction value. After the vertical pass, in step 42, the validity and completeness of the correction is verified using the final CRC syndrome. If the error remains after the vertical pass, another horizontal pass is performed at step 44 to correct the horizontal codeword. Depending on the actual application, corrections are made using horizontal syndromes stored in SRAM 15 (ie, horizontal syndromes are not regenerated if they are already available in SRAM 15). The horizontal and vertical passes and the CRC check are repeated until the product code is corrected or determined to be uncorrectable.

【0078】第1の水平パスの間に水平および垂直シン
ドロームならびにデータCRCシンドロームを同時に生
成するフロー図を図7Bに示し、また、第1のパスの間
に水平符号語を訂正し、訂正値を用いて垂直シンドロー
ムおよび誤りCRCシンドロームを更新するフロー図を
図7Cに示す(図7Bおよび図7Cのフロー図は平行し
て実行される)。図7Bを参照して、ステップ46で、
COLおよびROW変数がゼロに初期化される。SRA
M15がクリアされ、ブロック訂正不能誤りフラグ(B
LK_UNC)がクリアされ、そしてFIRST_PA
SSフラグが設定されて、これが第1の水平パスである
ことを示す。次に、ステップ48で、ROWの水平符号
語に対してシンボルが読み出され、これを用いて、上述
のように、図4の回路を用いて水平ECCシンドローム
が、および図5の回路を用いて垂直ECCシンドローム
が更新される。ステップ50でFIRST_PASSフ
ラグが設定されている場合は、このデータシンボルはま
た、図7Fのフロー図を実行することによってステップ
52でデータCRCシンドロームを更新するためにも用
いられる。次にステップ54でCOL変数がインクリメ
ントされ、現在の水平符号語のための次のシンボルを用
いて、第1の水平パスの間に水平および垂直ECCシン
ドロームならびにデータCRCシンドロームが更新され
る。
FIG. 7B shows a flow diagram for simultaneously generating the horizontal and vertical syndromes and the data CRC syndrome during the first horizontal pass, and also corrects the horizontal codeword during the first pass and converts A flow diagram for updating the vertical syndrome and the error CRC syndrome using the same is shown in FIG. 7C (the flow diagrams of FIGS. 7B and 7C are executed in parallel). Referring to FIG. 7B, at step 46,
The COL and ROW variables are initialized to zero. SRA
M15 is cleared and the block uncorrectable error flag (B
LK_UNC) is cleared and FIRST_PA
The SS flag is set, indicating that this is the first horizontal pass. Next, at step 48, a symbol is read for the ROW horizontal codeword, which is used to generate the horizontal ECC syndrome using the circuit of FIG. 4 and the circuit of FIG. 5, as described above. The vertical ECC syndrome is updated. If the FIRST_PASS flag is set in step 50, this data symbol is also used to update the data CRC syndrome in step 52 by performing the flow diagram of FIG. 7F. Next, at step 54, the COL variable is incremented and the horizontal and vertical ECC syndromes and data CRC syndrome are updated during the first horizontal pass with the next symbol for the current horizontal codeword.

【0079】ステップ56でCOL変数が182に等し
いときは、現在の水平符号語のための最終シンボルが読
み出されたことを意味する。ステップ58でループを実
行して、誤り訂正手順(図7Cのフロー図)が前の水平
符号語の処理を終了させるのを待つ。前の符号語の訂正
が終了すると、図7Cのステップ88で、訂正フラグが
非使用中にリセットされる。図7Bのステップ60で訂
正フラグは使用中に設定され、C_ROW変数は現在の
ROWに設定され、ROW変数はインクリメントされ、
COL変数はゼロにリセットされる。この時点で、図7
Cの訂正手順が実行され、現在の水平符号語(すなわち
C_ROWの符号語)が訂正され、同時に、次の水平符
号語(すなわちROWの符号語)のためにECCシンド
ロームが生成される。
If the COL variable equals 182 at step 56, it means that the last symbol for the current horizontal codeword has been read. A loop is executed at step 58 to wait for the error correction procedure (flow diagram of FIG. 7C) to finish processing the previous horizontal codeword. When the correction of the previous codeword is completed, the correction flag is reset to "not in use" in step 88 of FIG. 7C. In step 60 of FIG. 7B, the correction flag is set to busy, the C_ROW variable is set to the current ROW, the ROW variable is incremented,
The COL variable is reset to zero. At this point, FIG.
A C correction procedure is performed to correct the current horizontal codeword (ie, the C_ROW codeword), while at the same time generating an ECC syndrome for the next horizontal codeword (ie, the ROW codeword).

【0080】図7Cを参照して、ステップ64でループ
を実行して、図7Bのシンドローム生成手順が、現在の
水平符号語の処理を終了して訂正フラグを使用中に設定
するのを待つ。ステップ66で、訂正の間に現在のコラ
ムを追跡するC_COL変数がゼロにリセットされ(す
なわち、訂正中の水平符号語の最初のシンボルにリセッ
トされ)、符号語訂正不能フラグ(CW_UNC)がク
リアされる。ステップ68で、訂正中の水平符号語のた
めのECCシンドロームがSRAM15から取り出さ
れ、誤りロケータ多項式が生成され、ルートが有効シン
ボル位置に対応するかどうかが決定される。ステップ6
9で、ECCシンドロームが、誤りがないことを示すゼ
ロである場合は、ステップ71で誤りCRCシンドロー
ムが更新される。ステップ70で、シンドロームが、誤
りが多すぎるか、または誤りロケータ多項式のルートが
無効シンボルを指す場合は、ステップ73で、CW_U
NCおよびBLK_UNCフラグが設定され、符号語お
よびブロック全体(積符号)が訂正不能誤りを含むこと
を示し、ステップ71で誤りCRCシンドロームが更新
される。ステップ70で符号語が訂正可能である場合
は、ステップ72で、C_ROWの水平符号語のための
ECCシンドロームがクリアされる(ゼロにセットされ
る)。次にループを実行して、C_ROWの水平符号語
が訂正される。ステップ74で、C_COLのシンボル
が誤りである場合は、分岐を実行して、データバッファ
内に記憶されたシンボルが訂正され、訂正値を用いて垂
直シンドロームが更新される。この訂正は、ステップ7
6でC_COLがCOLより小さくなるまで遅延され
る。すなわち、図7Cの誤り訂正手順は、図7Bのシン
ドローム生成手順が現在の訂正コラムC_COLをパス
するまで待つ。これは、図5の回路が正しく作動するた
めには必要である。何故なら、この回路は、訂正値21
にαi33iを乗算して、1つのシンボルのオフセットを
計算するものであるからである。図7Cのステップ78
で、データバッファ内に記憶された水平符号語シンボル
が訂正値を用いて訂正され、ステップ80で、訂正値を
用いて、図5に関連して上述したようにC_COLの垂
直符号語のための垂直シンドロームが更新される。ステ
ップ81で、誤りCRCシンドロームが訂正値により更
新され(訂正値がゼロの場合でも)、ステップ82で、
変数C_COLが水平符号語の次のシンボルにインクリ
メントされ、訂正ループが再実行される。
Referring to FIG. 7C, a loop is executed at step 64 to wait for the syndrome generation procedure of FIG. 7B to finish processing the current horizontal codeword and set the correction flag to in use. At step 66, the C_COL variable tracking the current column during correction is reset to zero (ie, reset to the first symbol of the horizontal codeword being corrected) and the codeword uncorrectable flag (CW_UNC) is cleared. You. At step 68, the ECC syndrome for the horizontal codeword being corrected is retrieved from SRAM 15, an error locator polynomial is generated, and it is determined whether the root corresponds to a valid symbol position. Step 6
If, at 9, the ECC syndrome is zero, indicating no error, the error CRC syndrome is updated at step 71. If, at step 70, the syndrome is too errory or the root of the error locator polynomial points to an invalid symbol, then at step 73, CW_U
The NC and BLK_UNC flags are set, indicating that the codeword and the entire block (product code) contain an uncorrectable error, and in step 71 the error CRC syndrome is updated. If the codeword is correctable at step 70, then at step 72 the ECC syndrome for the C_ROW horizontal codeword is cleared (set to zero). Next, a loop is executed to correct the horizontal codeword of C_ROW. At step 74, if the symbol of C_COL is erroneous, a branch is performed to correct the symbol stored in the data buffer and the vertical syndrome is updated with the corrected value. This correction is made in step 7
At 6, it is delayed until C_COL is less than COL. That is, the error correction procedure of FIG. 7C waits until the syndrome generation procedure of FIG. 7B passes the current correction column C_COL. This is necessary for the circuit of FIG. 5 to work properly. Because the circuit has a correction value of 21
Is multiplied by α i 33 i to calculate the offset of one symbol. Step 78 of FIG. 7C
At step 80, the horizontal codeword symbols stored in the data buffer are corrected using the correction values, and at step 80, using the correction values, for the vertical codeword of C_COL as described above in connection with FIG. The vertical syndrome is updated. In step 81, the error CRC syndrome is updated with the correction value (even if the correction value is zero), and in step 82,
The variable C_COL is incremented to the next symbol of the horizontal codeword and the correction loop is executed again.

【0081】ステップ84でC_COLが182に等し
い場合は、水平符号語の最終シンボルが処理されたこと
を意味する。次の垂直パスの間に現在の水平符号語のた
めの誤りシンドロームの更新を迅速に行うために、ステ
ップ86で、これらの誤りシンドロームが最初の符号語
シンボルに再配置される。これは次の計算によって実行
される。
If C_COL is equal to 182 in step 84, it means that the last symbol of the horizontal codeword has been processed. In order to quickly update the error syndromes for the current horizontal codeword during the next vertical pass, at step 86 these error syndromes are relocated to the first codeword symbol. This is performed by the following calculation.

【0082】[0082]

【数10】 上記の動作を行う回路について以下により詳細に述べ
る。
(Equation 10) The circuit that performs the above operation is described in more detail below.

【0083】図7Cのステップ88で、訂正使用中フラ
グがクリアされ、ステップ64で、訂正手順は図7Bの
シンドローム生成手順が次の水平符号語のための誤りシ
ンドロームの生成を終了するのを待つ。シンドローム生
成手順および誤り訂正手順は、最終水平符号語が処理さ
れる(すなわち、図7Bのステップ62でROWが20
8に等しくなる)まで平行して実行される。このとき、
ステップ63でFIRST_PASSフラグがクリアさ
れ、制御は図7Aに戻る。図7Aのステップ38で、第
1の水平パス後も誤りが残っている場合は、ステップ4
0で垂直パスが実行される。この手順のフロー図は図7
Dに示す。
In step 88 of FIG. 7C, the correction in use flag is cleared, and in step 64, the correction procedure waits for the syndrome generation procedure of FIG. 7B to finish generating the error syndrome for the next horizontal codeword. . In the syndrome generation procedure and the error correction procedure, the final horizontal codeword is processed (that is, ROW is 20 in step 62 in FIG. 7B).
8). At this time,
In step 63, the FIRST_PASS flag is cleared and control returns to FIG. 7A. If the error remains after the first horizontal pass in step 38 of FIG. 7A, step 4
At 0, a vertical pass is performed. The flowchart of this procedure is shown in FIG.
D.

【0084】ステップ90で、訂正変数C_COLおよ
びC_ROWはゼロにリセットされ(すなわち、第1の
垂直符号語の最初のシンボルにリセットされ)、符号語
訂正不能フラグ(CW_UNC)はクリアされる。次に
ステップ92で、訂正中の垂直符号語のためのシンドロ
ームがSRAM15から取り出され、誤りロケータ多項
式を生成し、ルートが有効シンボル位置に対応するかど
うかを決定する。ステップ93で、ECCシンドローム
がゼロで誤りがないことを示す場合は、ステップ95で
誤りCRCシンドロームが更新される。ステップ94
で、シンドロームが、誤りが多すぎるか、または誤りロ
ケータ多項式のルートが無効シンボルを指す場合は、ス
テップ97で、CW_UNCおよびBLK_UNCフラ
グが設定され、ステップ95で誤りCRCシンドローム
が更新される。ステップ94で、符号語が訂正可能であ
る場合は、ステップ96で、垂直符号語のためのECC
シンドロームがクリアされる(ゼロに設定される)。次
にループを実行して、C_COLの垂直符号語が訂正さ
れる。ステップ98で、C_ROWのシンボルが誤りで
ある場合は、分岐を実行して、ステップ100でデータ
バッファ内に記憶されたシンボルが訂正され、ステップ
102で訂正値を用いて水平シンドロームが更新され
る。図6Aの回路を用いて、図5を参照して上述したの
と類似の方法で水平シンドロームが更新される。C_R
OWの水平ECCシンドロームがSRAM15から取り
出され、αi33iで乗算され、訂正値35iに加算さ
れ、SRAM15内に戻される。図7Dのフローチャー
トには示していないが、訂正が行われない場合も(すな
わち訂正値がゼロの場合も)符号語の各シンボルに対し
て水平シンドロームが更新される。これにより、図6A
のシンドローム更新回路が簡略化される。すなわち、E
CCシンドロームを次の符号語シンボルに位置付けるの
に、αi乗算器33iしか必要としない。
At step 90, the correction variables C_COL and C_ROW are reset to zero (ie, reset to the first symbol of the first vertical codeword) and the codeword uncorrectable flag (CW_UNC) is cleared. Next, at step 92, the syndrome for the vertical codeword being corrected is retrieved from the SRAM 15, an error locator polynomial is generated, and it is determined whether the root corresponds to a valid symbol position. If, at step 93, the ECC syndrome is zero, indicating no error, at step 95, the error CRC syndrome is updated. Step 94
If the syndrome is too errory or the root of the error locator polynomial points to an invalid symbol, the CW_UNC and BLK_UNC flags are set at step 97 and the error CRC syndrome is updated at step 95. If the codeword is correctable at step 94, then at step 96 the ECC for the vertical codeword is
The syndrome is cleared (set to zero). Next, a loop is executed to correct the vertical codeword of C_COL. If the symbol C_ROW is incorrect at step 98, a branch is performed to correct the symbol stored in the data buffer at step 100, and the horizontal syndrome is updated with the corrected value at step 102. Using the circuit of FIG. 6A, the horizontal syndrome is updated in a manner similar to that described above with reference to FIG. C_R
The OW horizontal ECC syndrome is extracted from the SRAM 15, multiplied by α i 33 i , added to the correction value 35 i , and returned into the SRAM 15. Although not shown in the flowchart of FIG. 7D, the horizontal syndrome is updated for each symbol of the codeword even when no correction is performed (that is, when the correction value is zero). As a result, FIG.
Is simplified. That is, E
Only the α i multiplier 33 i is needed to position the CC syndrome to the next codeword symbol.

【0085】図7Dのステップ104で、誤りCRCシ
ンドロームが訂正値に更新され(訂正値がゼロの場合
も)、ステップ105で、C_ROW変数が現在の垂直
符号語の次のシンボルにインクリメントされる。ステッ
プ106で、C_ROWが208に等しくなる、つまり
現在の垂直符号語の最終シンボルが処理されるまで、訂
正ルームが繰り返される。最終シンボルが処理されると
(または、ステップ94で符号語が訂正不能である場
合)、ステップ107で、C_COLの垂直符号語のた
めの誤りシンドロームが符号語の最初のシンボルに再配
置される。これは次の計算によって実行される。
In step 104 of FIG. 7D, the error CRC syndrome is updated to the correction value (even if the correction value is zero), and in step 105, the C_ROW variable is incremented to the next symbol of the current vertical codeword. At step 106, the correction room is repeated until C_ROW equals 208, ie, the last symbol of the current vertical codeword has been processed. Once the last symbol has been processed (or if the codeword is uncorrectable at step 94), at step 107, the error syndrome for the C_COL vertical codeword is relocated to the first symbol of the codeword. This is performed by the following calculation.

【0086】[0086]

【数11】 上記の動作を行う回路について以下により詳細に述べ
る。
[Equation 11] The circuit that performs the above operation is described in more detail below.

【0087】ステップ108で、C_COL変数が次の
垂直符号語にインクリメントされ、C_ROW変数がゼ
ロにリセットされて、次の垂直符号語の最初のシンボル
を指す。ステップ110でC_COLが182に等しく
なり、垂直符号語のすべてが処理されたことを示すま
で、図7Dの訂正手順が繰り返される。
At step 108, the C_COL variable is incremented to the next vertical codeword, and the C_ROW variable is reset to zero to point to the first symbol of the next vertical codeword. The correction procedure of FIG. 7D is repeated until C_COL equals 182 at step 110, indicating that all of the vertical codewords have been processed.

【0088】垂直パスの最後に、ステップ42で積符号
に誤りが残っている場合は、ステップ44で水平訂正パ
スが実行される。水平シンドロームがSRAM15内に
記憶されていない場合、ステップ44で図7Bのフロー
図が実行され、水平ECCシンドロームが再生成される
(FIRST_PASSを偽として)。しかし、SRA
M15内に水平ECCシンドロームが記憶されている場
合は、図7Eのフロー図が実行され、単に訂正システム
の待ち時間を低減させるECCシンドロームが取り出さ
れ処理される。
At the end of the vertical pass, if an error remains in the product code in step 42, a horizontal correction pass is executed in step 44. If the horizontal syndrome is not stored in the SRAM 15, the flow diagram of FIG. 7B is executed in step 44, and the horizontal ECC syndrome is regenerated (FIRST_PASS is false). However, SRA
If the horizontal ECC syndrome is stored in M15, the flowchart of FIG. 7E is executed, and the ECC syndrome that simply reduces the latency of the correction system is extracted and processed.

【0089】図7Eのステップ112で、訂正変数C_
COLおよびC_ROWがゼロにリセットされ(すなわ
ち、第1の水平符号語の最初のシンボルにリセットさ
れ)、符号語訂正不能フラグ(CW_UNC)がクリア
される。次にステップ114で、訂正中の水平符号語の
ためのシンドロームがSRAM15から取り出され、誤
りロケータ多項式を生成し、ルートが有効シンボル位置
に対応するかどうかを決定する。ステップ115で、E
CCシンドロームがゼロで誤りがないことを示す場合
は、ステップ117で誤りCRCシンドロームが更新さ
れる。ステップ116で、シンドロームが、誤りが多す
ぎるか、または誤りロケータ多項式のルートが無効シン
ボルを指す場合は、ステップ119でCW_UNCおよ
びBLK_UNCフラグが設定され、符号語およびブロ
ック全体(積符号)が訂正不能誤りを含むことを示し、
ステップ117で、誤りCRCシンドロームが更新され
る。ステップ116で、符号語が訂正可能である場合
は、ステップ118で、C_ROWの水平符号語のため
のECCシンドロームがクリアされる(ゼロに設定され
る)。次にループを実行して、C_ROWの水平符号語
が訂正される。
In step 112 of FIG. 7E, the correction variable C_
COL and C_ROW are reset to zero (ie, reset to the first symbol of the first horizontal codeword) and the codeword uncorrectable flag (CW_UNC) is cleared. Next, at step 114, the syndrome for the horizontal codeword being corrected is retrieved from the SRAM 15, an error locator polynomial is generated, and it is determined whether the root corresponds to a valid symbol location. At step 115, E
If the CC syndrome is zero, indicating no error, the error CRC syndrome is updated in step 117. If at step 116 the syndrome is too errory or the root of the error locator polynomial points to an invalid symbol, then at step 119 the CW_UNC and BLK_UNC flags are set and the codeword and the entire block (product code) are uncorrectable Indicates that it contains an error,
At step 117, the error CRC syndrome is updated. At step 116, if the codeword is correctable, then at step 118, the ECC syndrome for the C_ROW horizontal codeword is cleared (set to zero). Next, a loop is executed to correct the horizontal codeword of C_ROW.

【0090】ステップ120で、C_COLのシンボル
が誤りである場合は、分岐を実行して、ステップ122
でデータバッファ内に記憶されたシンボルが訂正され、
ステップ124で訂正値を用いて垂直シンドロームが更
新される。垂直パスの間に水平ECCシンドロームを更
新するのに図6Aを参照して上述したのと同様の方法
で、図6Bの回路を用いて垂直ECCシンドロームが更
新される。C_COLの垂直ECCシンドロームがSR
AM15から取り出され、αi33iで乗算され、訂正値
35iに加算され、SRAM15内に戻される。図7E
のフローチャートには示していないが、訂正が行われな
い場合も(すなわち訂正値がゼロの場合も)符号語の各
シンボルに対して、垂直ECCシンドロームが更新され
る。これにより図6Bのシンドローム更新回路が簡略化
される。すなわち、ECCシンドロームを次の符号語シ
ンボルに位置付けるのに、αi乗算器33iしか必要とし
ない。
If it is determined in step 120 that the symbol of C_COL is erroneous, the branch is executed and step 122 is executed.
The symbol stored in the data buffer is corrected by
At step 124, the vertical syndrome is updated using the correction value. The vertical ECC syndrome is updated using the circuit of FIG. 6B in a manner similar to that described above with reference to FIG. 6A to update the horizontal ECC syndrome during the vertical pass. C_COL vertical ECC syndrome is SR
Taked out of AM 15, multiplied by α i 33 i , added to correction value 35 i , and returned in SRAM 15. FIG. 7E
, The vertical ECC syndrome is updated for each symbol of the codeword even when no correction is made (ie, when the correction value is zero). This simplifies the syndrome update circuit of FIG. 6B. That is, only the α i multiplier 33 i is needed to position the ECC syndrome at the next codeword symbol.

【0091】図7Eのステップ126で、誤りCRCが
訂正値を用いて更新され(訂正値がゼロの場合も)、ス
テップ127で、C_COL変数が現在の水平符号語の
次のシンボルにインクリメントされる。ステップ128
で、C_COLが182に等しい場合は、現在の水平符
号語の最終シンボルが処理されたことを意味する。最終
シンボルが処理されると(または、ステップ116で符
号語が訂正不能である場合)、ステップ130で、C_
ROWの水平符号語のための誤りシンドロームが符号語
の最初のシンボルに再配置される。これは次の計算によ
って実行される。
In step 126 of FIG. 7E, the error CRC is updated with the correction value (even if the correction value is zero), and in step 127, the C_COL variable is incremented to the next symbol of the current horizontal codeword. . Step 128
If C_COL is equal to 182, it means that the last symbol of the current horizontal codeword has been processed. If the last symbol has been processed (or if the codeword is uncorrectable in step 116), then in step 130, C_
The error syndrome for the ROW horizontal codeword is relocated to the first symbol of the codeword. This is performed by the following calculation.

【0092】[0092]

【数12】 ステップ132で、C_ROW変数が次の水平符号語に
インクリメントされ、C_COL変数がゼロにリセット
されて、次の水平符号語の最初のシンボルを指す。ステ
ップ134でC_ROWが208に等しくなり、水平符
号語のすべてが処理されたことを示すまで、図7Eの訂
正手順が繰り返される。
(Equation 12) At step 132, the C_ROW variable is incremented to the next horizontal codeword and the C_COL variable is reset to zero to point to the first symbol of the next horizontal codeword. The correction procedure of FIG. 7E is repeated until C_ROW equals 208 at step 134, indicating that all of the horizontal codewords have been processed.

【0093】再び図7Aを参照すると、ステップ44で
水平パスが完了した後、誤りが残っている場合は、ステ
ップ40で別の垂直パスが実行される。積符号が訂正さ
れるかまたは訂正不能であると決定されるまで、繰り返
し水平および垂直パスが続けられる。各データセクタの
ためのデータCRCシンドロームおよび誤りCRCシン
ドロームを生成するフロー図を図7Gから図7Iに示
し、CRCシンドロームを生成する回路を図8から図1
1に示す。これらのフロー図および回路は以下のように
動作する。
Referring again to FIG. 7A, if errors remain after the horizontal pass is completed at step 44, another vertical pass is performed at step 40. Repeated horizontal and vertical passes continue until the product code is corrected or determined to be uncorrectable. FIGS. 7G to 7I are flow charts for generating the data CRC syndrome and the error CRC syndrome for each data sector, and the circuits for generating the CRC syndrome are shown in FIGS.
It is shown in FIG. These flow diagrams and circuits operate as follows.

【0094】[CRCシンドロームの生成および検証]図
3Aの各データセクタのためのCRCシンドロームは2
つの部分、すなわちデータCRCシンドロームおよび誤
りCRCシンドロームで生成される。データCRCシン
ドロームは、非訂正データに対するCRCとして生成さ
れ、誤りCRCシンドロームは、訂正値に対するCRC
として生成される。図3Aの積符号のデータセクタの処
理が終了すると、データCRCシンドロームと誤りCR
Cシンドロームとが組み合わされて最終CRCシンドロ
ームが生成され、定数と比較されて、このセクタに対す
る訂正が有効且つ完全であるかどうかが決定される。上
述のように、データCRCシンドロームおよび誤りCR
Cシンドロームは、ランダム化データに対して積符号を
訂正するのと同時に生成される。すなわち、従来のよう
に訂正後およびデータの非ランダム化後に生成されるの
ではない。
[Generation and Verification of CRC Syndrome] The CRC syndrome for each data sector in FIG.
It is generated in two parts: a data CRC syndrome and an error CRC syndrome. The data CRC syndrome is generated as a CRC for the uncorrected data, and the error CRC syndrome is a CRC for the corrected value.
Is generated as When the processing of the data sector of the product code of FIG. 3A is completed, the data CRC syndrome and the error CR
The C syndrome is combined with the final CRC syndrome to generate and compare to a constant to determine whether the correction for this sector is valid and complete. As described above, the data CRC syndrome and the error CR
The C syndrome is generated simultaneously with correcting the product code for the randomized data. That is, it is not generated after correction and after non-randomization of data as in the related art.

【0095】図1の従来の誤り訂正システムでは、CR
C冗長シンボルCRCREDは、データ多項式D(x)を
生成器多項式G(x)で割った剰余除算として生成され
る。
In the conventional error correction system shown in FIG.
The C redundant symbol CRC RED is generated as remainder division of the data polynomial D (x) divided by the generator polynomial G (x).

【0096】[0096]

【数13】 CRC冗長シンボルCRCREDをデータ多項式D(x)
に加算した後、疑似ランダムデータシーケンス多項式R
(x)を加算することによってデータをランダム化し、
この結果、符号語多項式C(x)がディスクに書き込ま
れる。
(Equation 13) CRC redundancy symbol CRC RED is converted to data polynomial D (x)
To the pseudorandom data sequence polynomial R
Randomizing the data by adding (x)
As a result, the codeword polynomial C (x) is written to the disk.

【0097】[0097]

【数14】 読み戻されると、受け取られた符号語多項式C’(x)
はECC冗長シンボルを用いて訂正され、訂正された符
号語から疑似ランダムデータシーケンスR(x)が減算
され、以下のCRCシンドロームSCRCが生成される。
[Equation 14] When read back, the received codeword polynomial C ′ (x)
Is corrected using ECC redundant symbols, the pseudo-random data sequence R (x) is subtracted from the corrected codeword, and the following CRC syndrome S CRC is generated.

【0098】[0098]

【数15】 CRCシンドロームSCRCは次にゼロと比較され、訂正
の有効性および完全性が確認される。
(Equation 15) The CRC syndrome S CRC is then compared to zero to confirm the validity and completeness of the correction.

【0099】本発明では、CRC検査は、訂正された符
号語を非ランダム化する前に行われる。本発明の実現可
能な改変として、データをランダム化/非ランダム化す
るために用いられる疑似ランダムデータシーケンスにわ
たって、最後のCRCシンドロームをCRCと比較して
もよい。これは、以下の数学関係により理解される。
In the present invention, the CRC check is performed before de-randomizing the corrected codeword. As a possible modification of the invention, the last CRC syndrome may be compared to the CRC over the pseudo-random data sequence used to randomize / de-randomize the data. This is understood by the following mathematical relationship.

【0100】[0100]

【数16】 ここで、D(x)はデータ多項式、CRCREDはCRC
冗長度、およびR(x)は、データをランダム化するた
めにデータ多項式に加えられる疑似ランダムデータシー
ケンス多項式である。結果としてディスクに書き込まれ
る符号語C(x)は、上述の従来技術の場合と同じであ
る。しかし、データを非ランダム化する前に(すなわ
ち、疑似ランダムデータシーケンス多項式R(x)を減
算する前に)受け取られた符号語C’(x)をCRC生
成器多項式で除算すれば、以下の関係が導かれる。
(Equation 16) Here, D (x) is a data polynomial, CRC RED is CRC
Redundancy, and R (x), is a pseudorandom data sequence polynomial added to the data polynomial to randomize the data. The resulting codeword C (x) written to the disk is the same as in the prior art described above. However, dividing the received codeword C ′ (x) by the CRC generator polynomial before de-randomizing the data (ie, before subtracting the pseudo-random data sequence polynomial R (x)) gives: The relationship is guided.

【0101】[0101]

【数17】 ここで、E(x)は誤り多項式である。上記の式は以下
のように書き換えることができる。
[Equation 17] Here, E (x) is an error polynomial. The above equation can be rewritten as:

【0102】[0102]

【数18】 上記の式で、(D(x)・xn-k+CRCRED) mod
G(x)=0である。従って、以下の式となる。
(Equation 18) In the above equation, (D (x) · x nk + CRC RED ) mod
G (x) = 0. Therefore, the following equation is obtained.

【0103】[0103]

【数19】 このように、受け取られた符号語C’(x)がECC冗
長を用いて完全に訂正された場合(すなわち、E(x)
=0)、受け取られた符号語C’(x)に対して生成さ
れる最後のCRCシンドロームは、上記の式から分かる
ように、疑似ランダムデータシーケンスR(x)をCR
C生成器多項式G(x)で除算した剰余除算に等しい。
疑似ランダムデータシーケンスR(x)および生成器多
項式G(x)は既知であるため、疑似ランダムデータシ
ーケンスR(x)を生成器多項式G(x)で割った剰余
は定数となる。すなわち、最後のCRCシンドロームは
単にこの定数と比較され、ECCシンドロームを用いた
訂正が有効且つ完全であるかどうかが決定される。CR
Cシンドロームは、受け取られた符号語の訂正と同時に
生成されるため、CRCシンドロームは直ちに利用可能
となる。つまり、従来技術のようにCRCシンドローム
を生成するために、データバッファから符号語全体を読
み出す必要はない。
[Equation 19] Thus, if the received codeword C ′ (x) is completely corrected using ECC redundancy (ie, E (x)
= 0), the final CRC syndrome generated for the received codeword C ′ (x) is the pseudo-random data sequence R (x), as can be seen from the above equation.
It is equal to the remainder division divided by the C generator polynomial G (x).
Since the pseudorandom data sequence R (x) and the generator polynomial G (x) are known, the remainder obtained by dividing the pseudorandom data sequence R (x) by the generator polynomial G (x) is a constant. That is, the last CRC syndrome is simply compared to this constant to determine whether correction using the ECC syndrome is valid and complete. CR
The C syndrome is generated immediately upon correction of the received codeword, so that the CRC syndrome is immediately available. That is, it is not necessary to read the entire codeword from the data buffer in order to generate the CRC syndrome as in the related art.

【0104】CRCシンドロームを受け取られた符号語
の訂正と同時に生成するために、本発明は、第1の水平
パスの間に非訂正データに対してデータCRCシンドロ
ームを生成し、また、水平および垂直パス両方の間に訂
正値に対して誤りCRCシンドロームを生成する。図3
Aの積符号のデータセクタの処理が終了すると、データ
CRCシンドロームと誤りCRCシンドロームとが組み
合わされて最終CRCシンドロームを生成し、これが定
数(R(x) mod G(x))と比較される。
To generate the CRC syndrome concurrently with the correction of the received codeword, the present invention generates a data CRC syndrome for the uncorrected data during a first horizontal pass, and also generates a horizontal and vertical CRC syndrome. Generate an error CRC syndrome for the correction value during both passes. FIG.
When the processing of the data sector of the product code of A is completed, the data CRC syndrome and the error CRC syndrome are combined to generate a final CRC syndrome, which is compared with a constant (R (x) mod G (x)).

【0105】本発明では、データCRCシンドロームお
よび誤りCRCシンドロームは従来の方法では(すなわ
ち、リニアフィードバックシフトレジスタ(LFSR)
を用いて)生成されない。何故なら、垂直パスの間にデ
ータシンボルがデータバッファから順次読み出されるの
ではないからである。そうではなく、データおよびCR
Cシンドロームが、処理中のデータシンボルの位置に対
応するように調整される。この調整は、データCRCシ
ンドロームおよび誤りCRCシンドロームを以下の値で
乗算することによって実行される。
In the present invention, the data CRC syndrome and the error CRC syndrome are stored in a conventional manner (ie, a linear feedback shift register (LFSR)).
Is not generated). This is because data symbols are not sequentially read from the data buffer during the vertical pass. Instead, data and CR
The C syndrome is adjusted to correspond to the position of the data symbol being processed. This adjustment is performed by multiplying the data CRC syndrome and the error CRC syndrome by the following values:

【0106】[0106]

【数20】 ここで、kは符号語にわたってシンドロームを「移動さ
せる」シンボルの数を表す。例えば、第1の水平パスの
間にデータCRCシンドロームを生成するとき、データ
CRCシンドロームは、
(Equation 20) Where k represents the number of symbols that “move” the syndrome across the codeword. For example, when generating the data CRC syndrome during the first horizontal pass, the data CRC syndrome

【0107】[0107]

【数21】 で乗算され、これにより、データCRCシンドロームが
現在の水平符号語の次のシンボルに調整される。垂直パ
スの間、誤りCRCシンドロームは、
(Equation 21) , Which adjusts the data CRC syndrome to the next symbol of the current horizontal codeword. During the vertical pass, the error CRC syndrome is

【0108】[0108]

【数22】 で乗算され、これにより、誤りCRCシンドロームが現
在の垂直符号語の次のシンボルに調整される。CRCシ
ンドロームを生成するこの方法の数学的な基礎につい
て、CRC生成器および訂正検証器を実現する回路に関
連して以下に述べる。
(Equation 22) , Thereby adjusting the error CRC syndrome to the next symbol of the current vertical codeword. The mathematical basis of this method of generating a CRC syndrome is described below with reference to circuits that implement a CRC generator and a corrective verifier.

【0109】図3Aに示すように、16個のデータセク
タがあり、それぞれにCRC冗長が付けられている。従
って、第1の水平パスの間に16個のデータCRCシン
ドロームが生成され、水平および垂直パス両方の間に1
6個の誤りCRCシンドロームが更新される。これらの
シンドロームは好ましくはSRAM15内に記憶され、
これによりSRAM15を用いて、CD−ROMフォー
マットのためのCIRC誤り訂正およびDVDフォーマ
ットのためのCRCシンドローム生成の両方が可能にな
る。第1の水平パスの間に新しいセクタがそれぞれ処理
されるに従って、現在のデータCRCシンドロームは開
始値に初期化される。データCRCシンドロームを次の
セクタのための開始値に初期化する前に、前のデータセ
クタのための現在のデータCRCシンドロームがSRA
M15内に記憶される。同様に、垂直符号語の処理時に
は、誤り訂正システムが16個のデータセクタを通って
垂直方向に進行するに従って、現在のデータセクタに対
応する適切な誤りCRCシンドロームがSRAM15か
ら取り出される。処理中の現在のデータセクタに従って
データCRCシンドロームおよび誤りCRCシンドロー
ムを更新するこのプロセスは、図7Fから図7Jのフロ
ー図により理解される。
As shown in FIG. 3A, there are 16 data sectors, each having CRC redundancy. Thus, 16 data CRC syndromes are generated during the first horizontal pass and 1 during both the horizontal and vertical passes.
Six error CRC syndromes are updated. These syndromes are preferably stored in the SRAM 15,
This enables both the CIRC error correction for the CD-ROM format and the generation of the CRC syndrome for the DVD format using the SRAM 15. As each new sector is processed during the first horizontal pass, the current data CRC syndrome is initialized to a starting value. Before initializing the data CRC syndrome to the starting value for the next sector, the current data CRC syndrome for the previous data sector must be SRA
Stored in M15. Similarly, when processing a vertical codeword, the appropriate error CRC syndrome corresponding to the current data sector is retrieved from SRAM 15 as the error correction system progresses vertically through the 16 data sectors. This process of updating the data and error CRC syndromes according to the current data sector being processed is understood by the flow diagrams of FIGS. 7F to 7J.

【0110】図7Fは、図3Aの積符号に対する第1の
水平パスの間にデータCRCシンドロームを生成するフ
ロー図を示す。この積符号の最初の2つのデータセクタ
は図3Bに示されている。図7Fのフロー図は、図7B
のステップ52で新しいデータシンボルがデータバッフ
ァから読み出される度に実行される。図7Fのステップ
136で、検査を行ってデータCRCシンドロームを次
のデータセクタの最初のシンボルに初期化すべきかどう
かが決定される。例えば、第1の水平符号語の最初のシ
ンボルを処理するとき、ステップ138で、データCR
Cシンドロームを記憶するデータレジスタDATA_R
EGが、図3Bの第1のデータセクタの最初のシンボル
160により初期化される。次のデータセクタに到達す
ると(すなわち、ステップ136でROWが12に等し
いとき)、ステップ138で第1のデータセクタのため
のデータCRCシンドロームがSRAM15内に保存さ
れ、DATA_REGが、次の水平符号語のための最初
のデータシンボル204により初期化される。
FIG. 7F shows a flow diagram for generating a data CRC syndrome during the first horizontal pass for the product code of FIG. 3A. The first two data sectors of this product code are shown in FIG. 3B. The flow chart of FIG.
Is executed each time a new data symbol is read from the data buffer in step 52 of FIG. In step 136 of FIG. 7F, a check is performed to determine whether the data CRC syndrome should be initialized to the first symbol of the next data sector. For example, when processing the first symbol of the first horizontal codeword, at step 138, the data CR
Data register DATA_R for storing C syndrome
The EG is initialized with the first symbol 160 of the first data sector in FIG. 3B. When the next data sector is reached (ie, when ROW is equal to 12 in step 136), the data CRC syndrome for the first data sector is stored in SRAM 15 in step 138 and DATA_REG stores the next horizontal codeword. Is initialized by the first data symbol 204 for

【0111】図7Fのフロー図について続けて説明する
と、データセクタの最初のシンボルが処理されず、且つ
ステップ144でCOLが172より小さい場合、ステ
ップ146でデータCRCシンドロームは1シンボル
(1列)だけ右に調整され、現在のデータシンボルがデ
ータCRCシンドロームに加えられる。ステップ144
で、COLが171より大きい場合は、現在のデータシ
ンボルはデータCRCシンドロームに加えられない。何
故なら、これはCRC符号語には含まれないECC冗長
シンボルであるからである(ECC冗長は、上述のよう
に書き込み動作中にCRC符号語が生成された後で加え
られる)。例えば、図3Bの第1の水平符号語が処理さ
れるとき、データCRCシンドロームの生成は、図7B
のステップ60でCOLがゼロにリセットされて、次の
水平符号語の処理が開始されるまで、シンボル148で
停止状態となる。次に、ステップ146で、第2の水平
符号語の最初のデータシンボル150をデータCRCシ
ンドロームに加える前に、データCRCシンドロームは
先ず1シンボルだけ右に(すなわち、図3Bのシンボル
150に)調整される。
Continuing with the flowchart of FIG. 7F, if the first symbol of the data sector is not processed and if COL is smaller than 172 in step 144, the data CRC syndrome is only one symbol (one column) in step 146. Adjusted to the right, the current data symbol is added to the data CRC syndrome. Step 144
If COL is greater than 171, the current data symbol is not added to the data CRC syndrome. This is because this is an ECC redundancy symbol that is not included in the CRC codeword (ECC redundancy is added after the CRC codeword is generated during a write operation as described above). For example, when the first horizontal codeword of FIG. 3B is processed, the generation of the data CRC syndrome is performed as shown in FIG.
COL is reset to zero in step 60, and the symbol 148 is stopped until the processing of the next horizontal codeword is started. Next, at step 146, before adding the first data symbol 150 of the second horizontal codeword to the data CRC syndrome, the data CRC syndrome is first adjusted one symbol to the right (ie, to symbol 150 of FIG. 3B). You.

【0112】データセクタの最終水平符号語の処理が終
了すると(すなわち、ステップ154でROW+1 m
od 12が0に等しく、ステップ156でCOLが1
81に等しいとき)、データCRCシンドロームは、対
応するデータセクタの最終シンボルに位置付けられる。
例えば、第1のデータセクタの処理が終了すると、デー
タCRCシンドロームは図3Bのシンボル152に対し
て位置付けられる。上述のように、それぞれの対応する
誤りCRCシンドロームもまた、CRC検査を行う前に
データセクタの最終データシンボルに位置付けられる。
When the processing of the last horizontal codeword of the data sector is completed (that is, ROW + 1 m in step 154)
od 12 is equal to 0 and COL is 1 in step 156
When equal to 81), the data CRC syndrome is located at the last symbol of the corresponding data sector.
For example, upon completion of the processing of the first data sector, the data CRC syndrome is positioned with respect to symbol 152 in FIG. 3B. As described above, each corresponding error CRC syndrome is also located at the last data symbol of the data sector before performing a CRC check.

【0113】第1のデータセクタの処理が終了すると、
図7Fのステップ136で、ROWは12に等しく、R
OW mod 12はゼロに等しい。従って、ステップ
138で、第1のデータセクタのための現在のデータC
RCシンドロームはSRAM15内に保存され、DAT
A_REGは、SRAM15から取り出される、第2の
データセクタのための開始位置により(すなわち、図3
Bのシンボル142に)初期化される。ステップ146
で、第2のデータセクタのCRC符号語のためのデータ
シンボルがデータCRCシンドロームに加えられる。こ
のプロセスは、16個のデータCRCシンドロームのす
べてが生成されSRAM15内に記憶されるまで続く。
When the processing of the first data sector is completed,
In step 136 of FIG. 7F, ROW is equal to 12 and R
OW mod 12 is equal to zero. Accordingly, at step 138, the current data C for the first data sector
RC syndrome is stored in SRAM15, and DAT
A_REG is derived from the starting position for the second data sector, which is retrieved from the SRAM 15 (ie, FIG.
(B symbol 142). Step 146
, A data symbol for the CRC codeword of the second data sector is added to the data CRC syndrome. This process continues until all 16 data CRC syndromes have been generated and stored in SRAM 15.

【0114】水平および垂直パスの間に誤りCRCシン
ドロームを生成するフロー図を図7Gから図7Jに示
す。第1の水平パスの間に、図7Cのステップ81で誤
りCRCシンドロームが訂正値に更新される(訂正値が
ゼロの場合も)。図7Gのステップ159で、現在のパ
スが水平であるか垂直であるかに依存して分岐が実行さ
れる。現在水平パスを行っている場合は、ステップ16
1でC_ROWが191より大きいならば、ECC冗長
はCRCシンドロームの一部ではないので、誤りCRC
シンドロームは更新されない。垂直パスの場合は、ステ
ップ162で訂正列C_COLおよび訂正行C_ROW
mod 12がゼロであるならば、ステップ164
で、誤りCRCシンドロームERR_REGを生成する
レジスタに、現在のデータセクタに対応するSRAM1
5からの一部誤りCRCシンドロームがロードされる。
FIGS. 7G to 7J show flowcharts for generating the error CRC syndrome during the horizontal and vertical passes. During the first horizontal pass, the error CRC syndrome is updated to the correction value (even if the correction value is zero) in step 81 of FIG. 7C. In step 159 of FIG. 7G, a branch is performed depending on whether the current path is horizontal or vertical. If a horizontal pass is currently being performed, step 16
If 1 and C_ROW is greater than 191, then the error CRC is incorrect because ECC redundancy is not part of the CRC syndrome.
Syndrome is not updated. In the case of a vertical pass, in step 162, the correction column C_COL and the correction row C_ROW
If mod 12 is zero, step 164
In the register for generating the error CRC syndrome ERR_REG, the SRAM1 corresponding to the current data sector is stored.
The partial error CRC syndrome from 5 is loaded.

【0115】ステップ166で、符号語が訂正不能であ
る(すなわち、訂正不能フラグ(CW_UNC)が設定
される)か、または現在の水平符号語のためのECCシ
ンドロームがゼロで訂正が不可能であることを示す場合
は、ステップ168で、符号語が現在のデータセクタの
最終水平符号語であるかどうかに依存して分岐が実行さ
れる。データセクタの最終符号語である(すなわち、C
_ROW+1 mod12がゼロに等しい)場合は、ス
テップ169で、誤りCRCシンドロームを171シン
ボルだけ右にシフトすることによって、現在のデータセ
クタのための誤りCRCシンドロームが、CRC符号語
の最終シンボルに(例えば、図3Bのシンボル158か
らシンボル152に)位置付けられ、C_COLが17
2に設定される。後述の乗算テーブル数を減らすため
に、ステップ169での誤りCRCシンドロームの17
1シンボルだけ右へのシフトは、誤りCRCシンドロー
ムを1シンボルだけ右にシフトすることを171回繰り
返すループにおいて実行される。現在の符号語がデータ
セクタの最終符号語でない場合は、ステップ170で、
誤りCRCシンドロームは、単に、現在の水平符号語を
飛ばすために1行下に調整される。この後、制御は図7
Eに戻り、データセクタの次の水平符号語の処理を続け
る。
At step 166, the codeword is uncorrectable (ie, the uncorrectable flag (CW_UNC) is set) or the ECC syndrome for the current horizontal codeword is zero and cannot be corrected. If so, a branch is taken at step 168 depending on whether the codeword is the last horizontal codeword of the current data sector. The last codeword of the data sector (ie, C
If _ROW + 1 mod 12 is equal to zero, then at step 169, the error CRC syndrome for the current data sector is shifted to the right by 171 symbols to the last symbol of the CRC codeword (eg, (From symbol 158 to symbol 152 in FIG. 3B) and C_COL is 17
Set to 2. In order to reduce the number of multiplication tables described later, the error CRC syndrome 17
Shifting one symbol right is performed in a loop that repeats shifting the error CRC syndrome right one symbol 171 times. If the current codeword is not the last codeword of the data sector, at step 170,
The error CRC syndrome is simply adjusted down one line to skip the current horizontal codeword. After this, the control
Returning to E, processing of the next horizontal codeword of the data sector is continued.

【0116】ステップ166で、符号語訂正不能フラグ
(CW_UNC)が設定されず、且つ現在の水平符号語
のためのECCシンドロームがゼロでない場合は、図7
Hのステップ172で、現在の訂正列C_COLの値に
基づいて分岐が実行される。C_COLが0から171
である場合は、現在の水平符号語の最初のデータシンボ
ルを処理していないならば(すなわち、ステップ174
でC_COLが0でないならば)、ステップ176で誤
りCRCシンドロームが1シンボル(1列)だけ右に調
整され、ステップ178で現在のデータシンボルのため
の訂正値が誤りCRCシンドロームに加えられる。この
プロセスは、現在の水平符号語のための訂正値のすべて
が、誤りCRCシンドロームに加えられるまで続く。水
平符号語のECCシンボルは(ステップ172でC_C
OLが173から180であるときは)、上述のように
これらはCRC符号語の一部ではないため、誤りCRC
シンドロームには加えられない。現在の水平符号語の最
終データシンボルが処理されると(すなわち、ステップ
172でC_COLが172に等しいとき)、ステップ
180で、誤りCRCシンドロームが、現在の水平符号
語が現在のデータセクタの最終符号語であるかどうかに
基づいて調整される。符号語がデータセクタの最終水平
符号語ではない場合は(すなわち、ステップ180で
(ROW+1)mod 12が0ではない場合は)、ス
テップ182で、誤りCRCシンドロームは1シンボル
だけ右に調整され、これにより次の水平符号語の最初の
シンボルに対して位置付けられる。現在の水平符号語が
現在のデータセクタの最終符号語である場合は、ステッ
プ181で、DATA_REGが現在のデータセクタの
ためのデータCRCシンドロームと共にSRAM15か
らロードされ、ERR_REGと組み合わされる。上述
のように結果が疑似ランダムシーケンスにわたってCR
Cに等しくない場合は、ステップ183でブロック訂正
不能フラグ(BLK_UNCフラグ)が設定される。次
に、ステップ184で、誤りCRCシンドロームは12
行だけ上におよび1シンボルだけ右に調整されて、デー
タセクタの最初のシンボルに対して再配置される。例え
ば、誤りCRCシンドロームが、図3Bの第1のデータ
セクタのCRC符号語の最終シンボル152に位置する
場合、ステップ184で誤りCRCシンドロームを12
行だけ上におよび1シンボルだけ右に調整することによ
り、誤りCRCシンドロームはデータセクタの最初のシ
ンボル160に位置付けられる。次にステップ185
で、現在のデータセクタのための誤りCRCシンドロー
ム(ERR_REGに記憶)がSRAM15内に再び記
憶される。
At step 166, if the codeword uncorrectable flag (CW_UNC) is not set and the ECC syndrome for the current horizontal codeword is not zero,
In step 172 of H, a branch is performed based on the current value of the correction sequence C_COL. C_COL is 0 to 171
, If the first data symbol of the current horizontal codeword has not been processed (ie, step 174).
If C_COL is not zero at step 176), the error CRC syndrome is adjusted right by one symbol (one column) at step 176 and the correction value for the current data symbol is added to the error CRC syndrome at step 178. This process continues until all of the correction values for the current horizontal codeword have been added to the error CRC syndrome. The ECC symbol of the horizontal codeword is (C_C
OL is 173 to 180), as described above, since these are not part of the CRC codeword,
It is not added to the syndrome. Once the last data symbol of the current horizontal codeword has been processed (ie, when C_COL is equal to 172 in step 172), in step 180, an error CRC syndrome indicates that the current horizontal codeword is the last code of the current data sector. Adjusted based on word. If the codeword is not the last horizontal codeword in the data sector (ie, if (ROW + 1) mod 12 is not 0 in step 180), then in step 182, the error CRC syndrome is adjusted one symbol to the right. For the first symbol of the next horizontal codeword. If the current horizontal codeword is the last codeword of the current data sector, at step 181, DATA_REG is loaded from SRAM 15 with the data CRC syndrome for the current data sector and combined with ERR_REG. As described above, the result is a CR
If it is not equal to C, a block uncorrectable flag (BLK_UNC flag) is set in step 183. Next, in step 184, the error CRC syndrome is 12
Adjusted just above the row and one symbol to the right, it is rearranged relative to the first symbol of the data sector. For example, if the error CRC syndrome is located at the last symbol 152 of the CRC codeword of the first data sector in FIG.
By adjusting up the row only and one symbol to the right, the erroneous CRC syndrome is located at the first symbol 160 of the data sector. Next, step 185
The error CRC syndrome (stored in ERR_REG) for the current data sector is stored again in SRAM 15.

【0117】図7Gおよび図7Hの誤りCRC更新手順
は、図3Aの16個のデータセクタすべてに対して誤り
CRCシンドロームが生成され、疑似ランダムシーケン
スにわたってCRCと比較されるまで繰り返される。第
1の水平パスの終了時に、図7Kのステップ254でB
LK_UNCフラグが調べられ、積符号の訂正の有効性
および完全性が確認される。誤りが残っている場合に
は、垂直パスが実行され、図7Dのステップ104で
(または、垂直符号語が飛ばされる場合はステップ95
で)、図7Iの誤りCRC更新手順が実行されて、誤り
CRCシンドロームを、垂直符号語に適用された訂正値
により更新する。
The error CRC update procedure of FIGS. 7G and 7H is repeated until an error CRC syndrome has been generated for all 16 data sectors of FIG. 3A and compared to the CRC over the pseudo-random sequence. At the end of the first horizontal pass, at step 254 in FIG.
The LK_UNC flag is examined to confirm the validity and completeness of the product code correction. If an error remains, a vertical pass is performed and at step 104 in FIG. 7D (or step 95 if the vertical codeword is skipped).
7), the error CRC update procedure of FIG. 7I is executed to update the error CRC syndrome with the correction value applied to the vertical codeword.

【0118】図7Gのステップ159で、制御は図7I
に分岐して、垂直パスのための誤りCRCシンドローム
を更新する。図7Iのステップ186で現在の訂正列C
_COLが171より大きい場合は、水平ECCシンボ
ルに対する垂直符号語はCRC符号語に含まれないた
め、何も更新されない。ステップ186でC_COLが
172より小さい場合は、ステップ188で検査が行わ
れ、誤りCRCシンドロームが、現在の垂直符号語を下
向きに進行して現在のデータセクタの最終行に到達した
かどうかを決定する。現在の訂正行C_ROW mod
12がゼロに等しい場合は、ステップ190で、現在
のデータセクタのための一部誤りCRCシンドロームが
SRAM15から取り出され、ERR_REGにロード
される。
At step 159 in FIG. 7G, the control proceeds to FIG.
To update the error CRC syndrome for the vertical path. In step 186 of FIG.
If _COL is greater than 171, nothing is updated because the vertical codeword for the horizontal ECC symbol is not included in the CRC codeword. If C_COL is less than 172 at step 186, a check is made at step 188 to determine if the erroneous CRC syndrome has proceeded down the current vertical codeword to the last row of the current data sector. . Current correction line C_ROW mod
If 12 is equal to zero, at step 190 the partially erroneous CRC syndrome for the current data sector is retrieved from SRAM 15 and loaded into ERR_REG.

【0119】ステップ192で符号語訂正不能誤りフラ
グ(CW_UNC)が設定されているか、または現在の
垂直符号語のためのECCシンドロームがゼロである場
合は、図7Jのフロー図が実行されて、誤りCRCシン
ドロームを1シンボルだけ右に調整する(すなわち、現
在の垂直符号語が飛ばされる)。ステップ193でC_
COLが171に等しくない場合は(すなわち、データ
セクタの最終垂直符号語を処理していない場合は)、ス
テップ194で、第1のデータセクタのための誤りCR
Cシンドロームが1シンボル(1列)だけ右に調整され
る。ステップ196で現在のデータセクタのための一部
誤りCRCシンドロームがSRAM15内に記憶され、
ステップ197でC_ROWが12だけインクリメント
される。すなわち次のデータセクタに移される。ステッ
プ198でC_ROWが191より大きくない場合は、
ステップ200でERR_REGが次のデータセクタの
ための一部誤りCRCシンドロームと共にSRAM15
からロードされ、ステップ194でこの誤りCRCシン
ドロームが1シンボルだけ右に調整され、ステップ19
6でSRAM15内に再記憶される。このループは、ス
テップ198でC_ROWが191より大きくなるまで
繰り返され、191より大きくなると、すべての誤りC
RCシンドロームが1シンボル(1列)だけ右に調整さ
れて、現在の垂直符号語が飛ばされる。
If the codeword uncorrectable error flag (CW_UNC) is set in step 192, or if the ECC syndrome for the current vertical codeword is zero, the flow diagram of FIG. Adjust the CRC syndrome right by one symbol (ie, skip the current vertical codeword). In step 193, C_
If COL is not equal to 171 (ie, if the last vertical codeword of the data sector has not been processed), then at step 194, the error CR for the first data sector is
The C syndrome is adjusted right by one symbol (one column). In step 196, the partial error CRC syndrome for the current data sector is stored in SRAM 15,
In step 197, C_ROW is incremented by 12. That is, it is moved to the next data sector. If C_ROW is not greater than 191 at step 198,
In step 200, the ERR_REG is stored in the SRAM 15 with a partial error CRC syndrome for the next data sector.
, The error CRC syndrome is adjusted right by one symbol in step 194, and
At 6, it is stored again in the SRAM 15. This loop is repeated until C_ROW is greater than 191 at step 198, at which point all errors C
The RC syndrome is adjusted right by one symbol (one column), skipping the current vertical codeword.

【0120】図7Jのステップ193でC_COLが1
71に等しい場合は、最終垂直符号語(ECC冗長の
前)は飛ばされることになる。従って、各データセクタ
のための最終CRCシンドロームを各データセクタのた
めに生成し、誤りが残っている場合はBLK_UNCフ
ラグを設定する必要がある。ステップ201で、現在の
データセクタ(ERR_REGに記憶)のための誤りC
RCシンドロームが11データシンボルだけ下に(例え
ば、図3Bのシンボル148からシンボル152に)調
整される。ステップ201は実際には、ERR_REG
を1シンボル(D1)だけ下に調整するのを11回繰り
返すループとして実現される。次にステップ203で、
DATA_REGが、SRAM15からの現在のデータ
セクタのためのデータCRCシンドロームにより初期化
され、DATA_REGをERR_REGと組み合わせ
ることによって最終CRCシンドロームが生成される。
最終CRCシンドロームが疑似ランダムシーケンスにわ
たってCRCに等しくない場合は、ステップ205でブ
ロック訂正不能フラグ(BLK_UNC)が設定され
る。ステップ207で、誤りCRCシンドロームは、1
2行だけ上におよび1データシンボルだけ右に(例え
ば、図3Bのシンボル152からシンボル160に)調
整することによって、データセクタの開始点に調整され
る。ステップ200で次のデータセクタのための誤りC
RCシンドロームがERR_REGにロードされ、上記
の手順が繰り返される。ステップ198でC_ROWが
191より大きい場合は、各データセクタに対してCR
C検査が行われ、誤りCRCシンドロームは各データセ
クタの開始点に再配置されているはずである。
In step 193 of FIG. 7J, C_COL is 1
If it is equal to 71, the final vertical codeword (before ECC redundancy) will be skipped. Therefore, it is necessary to generate a final CRC syndrome for each data sector for each data sector and set the BLK_UNC flag if errors remain. In step 201, the error C for the current data sector (stored in ERR_REG)
The RC syndrome is adjusted down by 11 data symbols (eg, from symbol 148 to symbol 152 in FIG. 3B). Step 201 is actually ERR_REG
Is adjusted downward by one symbol (D1) as a loop that repeats 11 times. Next, in step 203,
DATA_REG is initialized with the data CRC syndrome for the current data sector from SRAM 15, and the final CRC syndrome is generated by combining DATA_REG with ERR_REG.
If the final CRC syndrome is not equal to the CRC over the pseudo-random sequence, step 205 sets the block uncorrectable flag (BLK_UNC). At step 207, the error CRC syndrome is 1
By adjusting up two rows and one data symbol to the right (eg, from symbol 152 to symbol 160 in FIG. 3B), it is adjusted to the start of the data sector. Error 200 for the next data sector in step 200
The RC syndrome is loaded into ERR_REG and the above procedure is repeated. If C_ROW is greater than 191 at step 198, the CR for each data sector is
A C-check has been performed and the erroneous CRC syndrome should have been relocated to the start of each data sector.

【0121】再び図7Iを参照して、ステップ192
で、符号語訂正不能フラグ(CW_UNC)がセットさ
れず、ECCシンドロームがゼロでなければ、ステップ
206で分岐が実行され、現在の訂正行C_ROWの値
に基づいて誤りCRCシンドロームが更新される。ステ
ップ206でC_ROWが192〜207であれば、C
RC符号語にECC冗長記号が含まれないため、制御は
単に戻るだけである。C_ROWが0〜191であれ
ば、現在の誤りCRCシンドロームは、ステップ208
で1記号だけ下に調整され、ステップ210で、次の記
号の訂正値が誤りCRCシンドロームに加えられる。誤
りCRCシンドロームがデータセクタの最初の行にある
場合(即ち、ステップ212でC_ROWmod12が
ゼロである場合)、誤りCRCシンドロームを1記号だ
け下に調整するステップ208はスキップされる。
Referring again to FIG. 7I, step 192 is executed.
If the codeword uncorrectable flag (CW_UNC) is not set and the ECC syndrome is not zero, a branch is performed in step 206, and the error CRC syndrome is updated based on the current value of the corrected row C_ROW. If C_ROW is 192 to 207 in step 206, C
Since the RC codeword does not include an ECC redundancy symbol, control simply returns. If C_ROW is 0-191, the current error CRC syndrome is
Is adjusted down by one symbol, and in step 210, the correction value of the next symbol is added to the error CRC syndrome. If the error CRC syndrome is in the first row of the data sector (i.e., if C_ROWmod12 is zero in step 212), step 208 of adjusting the error CRC syndrome down one symbol is skipped.

【0122】ステップ209で、現在のデータセクタの
最後の行に達すると(即ち、C_ROW+1mod12
がゼロであれば)、誤りCRCシンドロームは、垂直方
向の次の符号語のデータセクタのトップ位置に調整され
る。これは、ステップ211で誤りCRCシンドローム
を1記号下(D1)に調整し、さらに、ステップ213
で1記号右で12記号上(UP12_R1)に調整す
る。ステップ215でC_COLが171に等しけれ
ば、誤りCRCシンドロームは、データセクタの最後の
記号の上に配置され、CRCチェックが行われる。ステ
ップ217で、現在のデータセクタのデータCRCシン
ドロームとともに、DATA_REGがSRAM15か
らロードされ、ERR_REGと結合され、最終CRC
シンドロームが生成される。最終CRCシンドロームが
疑似ランダムシーケンス上のCRCに等しくなければ、
ステップ219でブロック訂正不能フラグ(BLK_U
NC)がセットされる。その後、ステップ213で、誤
りCRCシンドロームは、12行上で1データ記号右
(UP12_R1)に動かされ、データセクタの最初の
記号上に再配置され(例えば、図3Bの記号152から
記号160に動かされ)、ステップ214で、現在のデ
ータセクタの誤りCRCシンドローム(ERR_REG
に格納されている)が、SRAM15に復元される。
In step 209, when the last row of the current data sector is reached (that is, C_ROW + 1mod12
Is zero), the error CRC syndrome is adjusted to the top position of the data sector for the next codeword in the vertical direction. This means that the error CRC syndrome is adjusted one symbol down (D1) in step 211, and
Is adjusted one symbol right and 12 symbols upward (UP12_R1). If C_COL is equal to 171 at step 215, the error CRC syndrome is located above the last symbol of the data sector and a CRC check is performed. At step 217, DATA_REG is loaded from SRAM 15 with the data CRC syndrome of the current data sector, combined with ERR_REG, and the final CRC
A syndrome is generated. If the final CRC syndrome is not equal to the CRC on the pseudo-random sequence,
In step 219, the block uncorrectable flag (BLK_U
NC) is set. Then, in step 213, the erroneous CRC syndrome is moved one data symbol right (UP12_R1) on line 12 and relocated on the first symbol of the data sector (eg, moved from symbol 152 to symbol 160 in FIG. 3B). ), At step 214, the error CRC syndrome (ERR_REG) of the current data sector.
Is stored in the SRAM 15.

【0123】垂直方向のパスの終わりで、BLK_UN
Cフラグが図7Kのステップ254で検査され、積符号
に対する訂正の有効性および完全性が検証される。誤り
がまだ残っていれば、水平方向のパスがもう一度行われ
る。水平方向の符号語のECCシンドロームがSRAM
15に格納されると、図7Eのフロー図が実行され、ス
テップ117および126で誤りCRCシンドロームが
更新される。水平方向の符号語のECCシンドロームが
SRAM15に格納されなければ、図7Cのフロー図が
実行され、ステップ71および81で誤りCRCシンド
ロームが更新される。
At the end of the vertical pass, BLK_UN
The C flag is checked in step 254 of FIG. 7K to verify the validity and completeness of the correction for the product code. If there are still errors, the horizontal pass is repeated. ECC syndrome of horizontal codeword is SRAM
When stored in step 15, the flow diagram of FIG. 7E is executed and the error CRC syndrome is updated in steps 117 and 126. If the horizontal codeword ECC syndrome is not stored in the SRAM 15, the flowchart of FIG. 7C is executed, and the error CRC syndrome is updated in steps 71 and 81.

【0124】図7Kのフロー図は、積符号が完全に訂正
されているかどうか、または、水平方向もしくは垂直方
向のパスの終わりで積符号が訂正不可能であるかどうか
を判定するステップを示す。ステップ252で、システ
ムは、ECC_BUSYフラグがクリアされるのを待っ
てから、BLK_UNCフラグの検査を行う。ステップ
254でブロック訂正不能フラグ(BLK_UNC)が
セットされず、前の水平方向または垂直方向のパスの間
に訂正不可能な誤りに遭遇しなかったことが示される
と、訂正手順は、従来技術で必要とされるような別のパ
スを行わずに、ステップ258で成功としてフローから
出る。
The flow diagram of FIG. 7K illustrates the steps of determining whether the product code has been completely corrected, or whether the product code is uncorrectable at the end of a horizontal or vertical pass. In step 252, the system waits for the ECC_BUSY flag to be cleared before checking the BLK_UNC flag. If in step 254 the block uncorrectable flag (BLK_UNC) is not set, indicating that no uncorrectable error has been encountered during a previous horizontal or vertical pass, the correction procedure is performed in the prior art. Step 258 exits the flow as successful without taking another pass as required.

【0125】ステップ254でBLK_UNCフラグが
セットされると、ステップ256でパスカウント変数P
ASS_CNTがインクリメントされ、PASS_CN
Tが所定の最大値を上回ると、積符号は訂正不可能とな
り、訂正手順はステップ266で失敗としてフローから
出る。ステップ256でPASS_CNTが所定の最大
値未満であり、ステップ260で、前の水平方向および
垂直方向のパスで変更がなされていなければ(訂正が行
われていなければ)、それ以上パスを行っても役に立た
ないため、訂正手順はステップ266で再び失敗として
フローを出る。ステップ260で変更がなされていれ
ば、ステップ262でBLK_UNCフラグがクリアさ
れ、水平方向または垂直方向のパスをもう一度実行する
ことによって、ステップ264で訂正手順が続けられ
る。
When the BLK_UNC flag is set in step 254, the pass count variable P is set in step 256.
ASS_CNT is incremented and PASS_CN
If T exceeds a predetermined maximum, the product code becomes uncorrectable and the correction procedure exits the flow at step 266 as failed. If PASS_CNT is less than the predetermined maximum value in step 256 and if no changes were made in the previous horizontal and vertical passes (if no corrections were made) in step 260, no more passes may be made. Because it is useless, the correction procedure exits the flow again as a failure at step 266. If a change has been made at step 260, the BLK_UNC flag is cleared at step 262 and the correction procedure is continued at step 264 by performing another horizontal or vertical pass.

【0126】CRCシンドロームSCRCが、積符号の訂
正と同時に計算されるため、訂正手順は、水平方向また
は垂直方向のいずれかのパスの終わりでうまく終了し得
る。従って、本発明では、訂正が終了したかどうかを検
証するために、従来技術で必要とされていた別のパスが
必要でない。さらに、本発明では、データを非ランダム
化して訂正プロセスの終わりにCRCシンドロームS
CRCを生成するために必要とされていた別のパスが必要
でない。従って、本発明は、光記憶装置のスループット
を大幅に増加することにより、従来技術に対する大幅な
改良を提供する。
Since the CRC syndrome S CRC is calculated concurrently with the correction of the product code, the correction procedure can be successfully completed at the end of either the horizontal or vertical pass. Therefore, the present invention does not require another pass required in the prior art to verify whether the correction has been completed. In addition, the present invention de-randomizes the data so that the CRC syndrome S at the end of the correction process.
No separate path was needed to generate the CRC . Thus, the present invention provides a significant improvement over the prior art by significantly increasing the throughput of the optical storage device.

【0127】[CRC生成器回路]図2のCRC生成器お
よび訂正検証器19は、書き込み動作の間に、図3Aに
示される16個のデータセクタについてCRC冗長記号
を生成し、読み出し動作の間に、図7A〜図7Jを参照
して上で説明したように誤り訂正器18によって行われ
た訂正を検証する際に用いられるCRCシンドロームS
CRCを生成する。図8は、書き込み動作の間にCRC冗
長記号を生成するための従来のリニアフィードバックシ
フトレジスタ(LSFR)を示す。図8に示されるLF
SRの動作は周知であり、このLSFRは、入力多項式
D(x)を以下に示す生成多項式G(x)で割る。
[CRC Generator Circuit] The CRC generator and correction verifier 19 of FIG. 2 generate CRC redundancy symbols for the 16 data sectors shown in FIG. The CRC syndrome S used to verify the correction made by the error corrector 18 as described above with reference to FIGS.
Generate CRC . FIG. 8 shows a conventional linear feedback shift register (LSFR) for generating CRC redundancy symbols during a write operation. LF shown in FIG.
The operation of SR is well known, and this LSFR divides the input polynomial D (x) by the generator polynomial G (x) shown below.

【0128】 G(x)=gii+gi-1i-1+...+g1x+g0 入力多項式D(x)の係数は、LFSRを通してシリア
ルにシフトされる。ここで、シフト数は、入力多項式の
次数に1を加えた数に等しい。剰余、即ち、CRC冗長
は、シフトレジスタの最終状態である。図3Aに示され
るデータセクタの各々についてCRC冗長を生成するた
めに、データのkビットは、多項式P(x)の係数とし
て表される。従って、CRC冗長は、以下のように計算
される。
G (x) = g i x i + g i−1 x i−1 +... + G 1 x + g 0 The coefficients of the input polynomial D (x) are serially shifted through the LFSR. Here, the shift number is equal to the number obtained by adding 1 to the degree of the input polynomial. The remainder, or CRC redundancy, is the final state of the shift register. To generate CRC redundancy for each of the data sectors shown in FIG. 3A, k bits of data are represented as coefficients of a polynomial P (x). Therefore, CRC redundancy is calculated as follows.

【0129】 CRC冗長=P(x)・xn-k modG(x) ここで、n−kはCRC冗長記号の数であり、G(x)
は生成多項式である。最後のシフト後のレジスタの内容
がCRC冗長であり、このCRC冗長はその後、ユーザ
データに付加されて、CRC符号語を形成する。このC
RC符号語は、積符号に組み込まれて、その後、ディス
クに書き込まれる。
CRC redundancy = P (x) · x nk mod G (x) where nk is the number of CRC redundancy symbols and G (x)
Is a generator polynomial. The contents of the register after the last shift are CRC redundancy, which is then added to the user data to form a CRC codeword. This C
The RC codeword is embedded in the product code and then written to disk.

【0130】読み出し動作の間、ディスクから読み出さ
れたデータが処理され、以下の式に従ってCRCシンド
ロームSCRCが生成される。
During a read operation, the data read from the disk is processed and a CRC syndrome S CRC is generated according to the following equation:

【0131】 CRCシンドロームSCRC=C’(x)modG(x) ここで、C’(x)は、ディスクから読み出されたCR
C符号語(CRC冗長を含む)である。従来技術では、
誤り訂正器14が訂正をし終わると、データバッファ1
からデータが読み出され、非ランダム化器4によって非
ランダム化される。非ランダム化されたデータはその後
シリアルに処理されるため、図8の同じLFSR回路を
用いて、上記式によりCRCシンドロームSCRCを生成
することができる。
CRC syndrome S CRC = C ′ (x) modG (x) where C ′ (x) is the CR read from the disc.
C codeword (including CRC redundancy). In the prior art,
When the error corrector 14 completes the correction, the data buffer 1
Are read out from the memory and de-randomized by the de-randomizer 4. Since the non-randomized data is subsequently processed serially, the CRC syndrome S CRC can be generated by the above equation using the same LFSR circuit in FIG.

【0132】本発明では、図7A〜図7Jを参照して説
明したように、CRCシンドロームSCRCは、積符号の
訂正と同時に生成される。従って、データが一連の連続
するビットとして処理されないため、CRCシンドロー
ムSCRCを生成するために図8のLFSR回路を用いる
ことはできない。本発明のCRCシンドローム生成器が
どのようにしてCRCシンドロームSCRCを生成するか
を説明する前に、本発明のCRCシンドローム生成器の
概要を説明する。
In the present invention, as described with reference to FIGS. 7A to 7J, the CRC syndrome S CRC is generated simultaneously with the correction of the product code. Therefore, the LFSR circuit of FIG. 8 cannot be used to generate the CRC syndrome S CRC because the data is not processed as a series of consecutive bits. Before describing how the CRC syndrome generator of the present invention generates a CRC syndrome S CRC , an overview of the CRC syndrome generator of the present invention will be given.

【0133】図9は、DATACRC回路300およびE
RRORCRC回路302を含む、図2のCRCシンドロ
ーム生成器19のブロック図である。図7Aを参照して
上で説明したように、DATACRCは、ステップ37
で、図2のデータバッファ1から読み出された未訂正の
ランダム化されたデータを用いて、図3Aの積符号上の
最初の水平方向のパスの間に生成される。ERROR
CRCは、水平方向および垂直方向の符号語の反復処理の
間に誤り訂正器18によって生成される訂正値を用いて
生成される。データセクタの終わりに達すると、DAT
CRCおよびERRORCRCは、COMBINE回路30
4によって結合され、最終CRCシンドロームSCRC
06が生成される。この最終CRCシンドロームSCRC
306は、比較器307で定数と比較され、データセク
タがまだ誤りを含んでいるかどうかが判定される。CO
MBINE回路304によって行われる数学的機能は、
DATA CRCおよびERRORCRCの単純な排他的OR
(XOR)である。
FIG.CRCCircuit 300 and E
RRORCRC2. The CRC syndrome of FIG.
FIG. 2 is a block diagram of a game generator 19. Referring to FIG. 7A
As explained above, DATACRCIs the step 37
Thus, the uncorrected data read from the data buffer 1 in FIG.
Using the randomized data, the product code in FIG.
Generated during the first horizontal pass. ERROR
CRCIs the horizontal and vertical codeword iteration.
Using the correction value generated by the error corrector 18 in between
Generated. When the end of the data sector is reached, DAT
ACRCAnd ERRORCRCIs the COMBINE circuit 30
4 and the final CRC syndrome SCRC3
06 is generated. This final CRC syndrome SCRC
306 is compared with the constant by the comparator 307 and the data section is
It is determined whether the data still contains errors. CO
The mathematical functions performed by the MBINE circuit 304 are:
DATA CRCAnd ERRORCRCSimple exclusive OR of
(XOR).

【0134】上述のように、図3Aの積符号には16個
のデータセクタがある。したがって、SRAM15に格
納されるデータCRCシンドロームおよび誤りCRCシ
ンドロームは16個である。CRCチェックは、SRA
M15からデータCRCシンドロームおよび誤りCRC
シンドロームをそれぞれ読み出し、これらのデータCR
Cシンドロームおよび誤りCRCシンドロームをそれぞ
れDATACRC回路300およびERRORCRC回路30
2にロードすることによって、各データセクタについて
行われる。比較器307は、最終CRCシンドロームS
CRCを、各データセクタをランダム化するために用いら
れる疑似ランダムデータシーケンス上のCRCに等しい
定数と比較する。疑似ランダムデータシーケンスはブロ
ック(積符号)ごとに異なるため、記憶媒体から新しい
ブロックが読み出されるたびに、対応するCRC定数が
比較器307にロードされる。
As described above, the product code of FIG. 3A has 16 data sectors. Therefore, the number of data CRC syndromes and error CRC syndromes stored in the SRAM 15 is 16. CRC check is SRA
Data CRC syndrome and error CRC from M15
Each syndrome is read out, and these data CR
The C and error CRC syndromes are respectively converted to a DATA CRC circuit 300 and an ERROR CRC circuit 30.
2 for each data sector. The comparator 307 determines whether the final CRC syndrome S
The CRC is compared to a constant equal to the CRC on the pseudo-random data sequence used to randomize each data sector. Since the pseudo-random data sequence varies from block to block (product code), each time a new block is read from the storage medium, the corresponding CRC constant is loaded into comparator 307.

【0135】図9のDATACRC回路300およびER
RORCRC回路302は、図10により詳細に示され
る。図9のDATACRC回路300およびERRORCRC
回路302は、受け取ったCRC符号語多項式C’
(x)を、以下のような複数の部分集合多項式の線形結
合として表すことによって、データCRCシンドローム
および誤りCRCシンドロームを生成する。
The data CRC circuit 300 and ER shown in FIG.
The ROR CRC circuit 302 is shown in more detail in FIG. The DATA CRC circuit 300 and the ERROR CRC shown in FIG.
The circuit 302 receives the received CRC code word polynomial C ′
A data CRC syndrome and an error CRC syndrome are generated by expressing (x) as a linear combination of a plurality of subset polynomials as follows.

【0136】 C’(x)=Cj(x)+Cj-1(x)+...+C0(x) ここで、各部分集合多項式Ck(x)は、符号語多項式
C’(x)からの所定のビット数を含む。本明細書に開
示される実施形態では、各部分集合多項式は、符号語多
項式C’(x)の8ビットを含み、以下のように16進
法で表される。
C ′ (x) = C j (x) + C j−1 (x) +... + C 0 (x) where each subset polynomial C k (x) is a codeword polynomial C ′ ( x) contains a predetermined number of bits. In the embodiments disclosed herein, each subset polynomial includes the eight bits of the codeword polynomial C ′ (x) and is represented in hexadecimal as follows:

【0137】[0137]

【数23】 このようにして、CRCシンドロームSCRCは、概念的
に、以下のように各部分集合多項式のCRCシンドロー
ムの線形結合として生成され得る。
(Equation 23) In this way, the CRC syndrome S CRC can be conceptually generated as a linear combination of the CRC syndrome of each subset polynomial as follows.

【0138】CRCシンドロームSCRC=C0(x)mo
dG(x)+C1(x)modG(x)+...+C
j(x)modG(x)上記式は、以下のように表すこ
ともできる。
CRC syndrome S CRC = C 0 (x) mo
dG (x) + C 1 (x) modG (x) + ... + C
j (x) mod G (x) The above equation can also be expressed as follows.

【0139】[0139]

【数24】 ここで、(Equation 24) here,

【数25】 は、符号語C’(x)からの8ビットの多項式である
(即ち、
(Equation 25) Is an 8-bit polynomial from the codeword C ′ (x) (ie,

【数26】 である)。本発明で用いられる別の数学的関係は、以下
の式である。
(Equation 26) Is). Another mathematical relationship used in the present invention is:

【0140】[0140]

【数27】 再び図3Bを参照して、上記式を用いて、水平方向の符
号語上の最初のパスの間の最初のデータセクタの最初の
記号160についてのデータCRCシンドロームが計算
される。最初の記号160は、上記符号語C’(x)の
最も有意な係数、および上記部分集合多項式Cj(x)
のゼロでない係数を含む。最初の記号160は、(加算
器310で、最上位ビットにゼロをパディング(zero p
adding)し、ゼロを加えた後に)図10の32ビットレ
ジスタ308にロードされる。その後、図3Bの符号語
の次の記号140が読み出され、乗算器312で、レジ
スタ308の内容にxK modG(x)が掛けられ、デ
ータCRCシンドロームが1記号右にシフトされる(即
ち、図7Fのステップ146でK=R1である)。その
後、乗算結果は、(加算器310で符号語の次の記号1
40を加算して、その特定の部分集合多項式についての
CRCシンドローム計算を開始した後に)レジスタ30
8に再ロードされる。この計算は、残りの記号に対して
行われ、図3Bの水平方向の最初の符号語の最後の記号
148が読み出されるまで続けられる。その後、CRC
シンドロームは、レジスタ308の内容にxK modG
(x)を掛けることによって、図3Bの場所150に調
整される。ここで、Kは、1つ右の記号に等しい(即
ち、上記図7Fのステップ146でK=R1である)。
オフセットKの適切な値は、図10の乗算器312のS
EL制御ラインを介して選択される。
[Equation 27] Referring again to FIG. 3B, using the above equation, the data CRC syndrome for the first symbol 160 of the first data sector during the first pass on the horizontal codeword is calculated. The first symbol 160 is the most significant coefficient of the codeword C ′ (x) and the subset polynomial C j (x)
Contains the non-zero coefficient of. The first symbol 160 is (adder 310 with zero padding the most significant bit).
10) and loaded into the 32-bit register 308 of FIG. Thereafter, the next symbol 140 of the codeword of FIG. 3B is read, and the multiplier 312 multiplies the contents of register 308 by x K modG (x), shifting the data CRC syndrome one symbol right (ie, one symbol right). , K = R1 in step 146 of FIG. 7F). Thereafter, the result of the multiplication is expressed by (adder 310, symbol 1 next to the codeword).
(After starting the CRC syndrome calculation for that particular subset polynomial)
8 is reloaded. This calculation is performed on the remaining symbols and continues until the last symbol 148 of the first horizontal codeword in FIG. 3B is read. Then the CRC
The syndrome stores x K modG in the contents of the register 308.
By multiplying by (x), it is adjusted to the location 150 in FIG. 3B. Here, K is equal to the symbol to the right (ie, K = R1 in step 146 of FIG. 7F).
An appropriate value of the offset K is determined by S 3 of the multiplier 312 in FIG.
Selected via the EL control line.

【0141】このプロセスは、図3Bの最初のデータセ
クタの水平方向の最後の符号語の最後の記号が読み出さ
れるまで続けられ、レジスタ308は、CRC符号語
C’(x)の最初の記号(即ち、部分集合多項式C
j(x))についてのデータCRCシンドロームであっ
て、その他の記号(即ち、その他の部分集合多項式)に
ついて計算されたデータCRCシンドロームに加えられ
るデータCRCシンドロームを含み、これにより、最初
のデータセクタのCRC符号語C’(x)全体について
のデータCRCシンドロームを生成する。この時、最初
のデータセクタについてのデータCRCシンドローム
は、図3Bの最後の記号152に配置される。図7Fの
フロー図が再び実行され、次のデータセクタの最初の記
号204が処理されると、図7Fのステップ138で、
最初のデータセクタについてのデータCRCシンドロー
ムがSRAM15に格納され、次のデータセクタの最初
の記号204がレジスタ308にロードされる。上記プ
ロセスは、2番目およびそれ以降のデータセクタについ
ても繰り返され、最初の水平方向のパスの終わりで、1
6個のデータCRCシンドロームがすべて生成され、S
RAM15に格納される。
This process continues until the last symbol of the last horizontal codeword of the first data sector in FIG. 3B is read, and the register 308 stores the first symbol of the CRC codeword C ′ (x) ( That is, the subset polynomial C
j (x)), including the data CRC syndrome that is added to the data CRC syndrome calculated for the other symbols (ie, the other subset polynomials), thereby forming the first data sector. A data CRC syndrome for the entire CRC codeword C ′ (x) is generated. At this time, the data CRC syndrome for the first data sector is located at the last symbol 152 in FIG. 3B. Once the flow diagram of FIG. 7F has been executed again and the first symbol 204 of the next data sector has been processed, at step 138 of FIG.
The data CRC syndrome for the first data sector is stored in SRAM 15 and the first symbol 204 of the next data sector is loaded into register 308. The above process is repeated for the second and subsequent data sectors, at the end of the first horizontal pass, 1
All six data CRC syndromes are generated and S
It is stored in the RAM 15.

【0142】誤りCRCを生成するための図9のERR
ORCRC回路302はまた、図10の回路を含む。図2
の誤り訂正器18によって訂正値が生成されると、この
訂正値は、加算器310でレジスタ308に加えられ
る。乗算器312は、水平方向または垂直方向の符号語
の各記号が処理されているとき、訂正値が生成されるか
どうかに関わらず(即ち、訂正値がゼロであっても)、
レジスタ308の内容への適切なKオフセットの乗算を
続ける。各データセクタの終わりで、データCRCシン
ドロームおよび誤りCRCシンドロームが結合され、最
終CRCシンドロームSCRCJが生成される。上述のよう
に、この最終CRCシンドロームSCRCJは、訂正の有効
であるかどうかおよび完全であるかどうかを判断するた
めに用いられる。
ERR of FIG. 9 for generating an error CRC
OR CRC circuit 302 also includes the circuit of FIG. FIG.
When the correction value is generated by the error corrector 18 of this example, the correction value is added to the register 308 by the adder 310. Multiplier 312 determines whether a correction value is generated when each symbol of the horizontal or vertical codeword is being processed (ie, even if the correction value is zero),
Continue multiplying the contents of register 308 by the appropriate K offset. At the end of each data sector, the data CRC syndrome and the error CRC syndrome are combined to generate a final CRC syndrome S CRCJ . As described above, this final CRC syndrome S CRCJ is used to determine whether the correction is valid and complete.

【0143】図10のxK modG(x)乗算器312
を実現するための好適な実施形態は、図11を参照して
理解される。図11は、xK+i modG(x)という計
算によって生成される剰余のテーブルを表す。ここで、
iは{0,...,31}に等しい。図11のテーブル
は、CRCシンドロームの計算中に用いられるKオフセ
ット値(即ち、R1、D1およびUP12_R1)の各
々について生成される。その後、図10のレジスタ30
8の内容に適切なテーブルを掛けることによって(即
ち、32ビットベクトルに32×32行列を掛けること
によって)乗算が行われる。
The x K mod G (x) multiplier 312 shown in FIG.
A preferred embodiment for realizing is understood with reference to FIG. FIG. 11 shows a table of the remainder generated by the calculation of x K + i mod G (x). here,
i is equal to {0, ..., 31}. The table of FIG. 11 is generated for each of the K offset values (ie, R1, D1 and UP12_R1) used during the calculation of the CRC syndrome. Thereafter, the register 30 of FIG.
The multiplication is performed by multiplying the contents of 8 by the appropriate table (ie, by multiplying a 32-bit vector by a 32 × 32 matrix).

【0144】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルは、図13A〜図13EのVHDLソースコ
ードに示される。「constant r1_dvd_
tbl」として示されたテーブルは、1記号右へのシフ
ト(R1)調整を実現し、「constant d1_
dvd_tbl」として示されたテーブルは、1行下へ
のシフト(D1)調整を実現し、「constant
u12r1_dvd_tbl」として示されたテーブル
は、12記号上、1記号右のシフト(UP12_R1)
調整を実現する。
The actual table for implementing the multiplication of x K mod G (x) for the 32-bit CRC generator polynomial G (x) is shown in the VHDL source code of FIGS. 13A-13E. "Constant r1_dvd_
The table denoted as “tbl” implements a one symbol right shift (R1) adjustment, and “constant d1_
The table shown as “dvd_tbl” implements a one-row down shift (D1) adjustment and “constant”
The table indicated as “u12r1_dvd_tbl” has a shift of one symbol right by 12 symbols (UP12_R1).
Realize the adjustment.

【0145】図13A〜図13EのVHDLソースコー
ドの残りは、図10のレジスタ308の内容に適切なテ
ーブルを掛ける(即ち、32ビットベクトルに32×3
2行列を掛ける)ことによって、実際の乗算を実行す
る。入力レジスタ即ちベクトルと行列との積が、出力ベ
クトルであり、出力ベクトルの各要素は、テーブル(即
ち、行列)のi番目の行のn個の要素と、レジスタ(即
ち、列入力ベクトル)の対応する成分との積の和を求め
ることによって生成される。この和は、以下のように表
すことができる。
The remainder of the VHDL source code of FIGS. 13A-E is multiplied by the appropriate table to the contents of register 308 of FIG.
Multiply by two matrices) to perform the actual multiplication. The product of the input register or vector and matrix is the output vector, where each element of the output vector is the n elements of the ith row of the table (ie, matrix) and the n It is generated by summing the products with the corresponding components. This sum can be expressed as follows.

【0146】[0146]

【数28】 ここで、yiは、乗算器312の出力ベクトルであり、
ikは、図11のテーブルのi番目の行の32ビットで
あり、xkは、図10のレジスタ308に格納された3
2ビットである。乗算器312からの出力ベクトルyi
は、加算器310で入力ビットに加えられ、その結果
が、レジスタ308に格納される。
[Equation 28] Where y i is the output vector of multiplier 312,
a ik is the 32 bits of the i-th row in the table of FIG. 11, and x k is 3 bits stored in the register 308 of FIG.
Two bits. Output vector y i from multiplier 312
Is added to the input bits at adder 310, and the result is stored in register 308.

【0147】[SRAM]図2のSRAM15の構造およ
び動作は、図12Aを参照して理解される。上述のよう
に、SRAM15は、動作モードに依存して2つの機能
を実行する。即ち、CDモードでは、SRAM15は、
C1/C2符号化のためのデータバッファ処理を与え、
DVDモードでは、SRAM15は、積符号についての
ECCシンドロームと、CRC検証符号についてのCR
Cシンドロームとを格納する。DVDモードの場合の好
適な実施形態では、図3Aに示される積符号の垂直方向
のECCシンドロームが182個だけ、16個のデータ
セクタに対応する16個のCRCシンドロームととも
に、SRAM15に格納される。DVD積符号の208
個の水平方向のECCシンドロームは、水平方向のパス
の各々で再生成され、SRAM15には格納されない。
当業者は、この構成が単に特定の実施形態であって、S
RAM15の容量を、垂直方向および水平方向のECC
シンドローム、およびCRCシンドロームを格納するよ
うに増加させることができることを認識するであろう。
[SRAM] The structure and operation of the SRAM 15 of FIG. 2 can be understood with reference to FIG. 12A. As described above, the SRAM 15 performs two functions depending on the operation mode. That is, in the CD mode, the SRAM 15
Providing data buffering for C1 / C2 encoding;
In the DVD mode, the SRAM 15 stores the ECC syndrome for the product code and the CR for the CRC verification code.
The C syndrome is stored. In the preferred embodiment in the DVD mode, only 182 vertical ECC syndromes of the product code shown in FIG. 3A are stored in the SRAM 15 together with 16 CRC syndromes corresponding to 16 data sectors. DVD product code 208
The horizontal ECC syndromes are regenerated on each horizontal pass and are not stored in SRAM 15.
One skilled in the art will recognize that this configuration is merely a particular embodiment and that S
The capacity of the RAM 15 is changed according to the vertical and horizontal ECC.
It will be appreciated that the syndrome, and the CRC syndrome, can be increased to store.

【0148】図12Aを参照して、SRAM15は、好
ましくは、16個の256×8ビットメモリセル314
0〜31415のバンクとして実現される。各メモリセル
は、256データバイトにアクセスするための8ビット
入力アドレスと、アドレス指定されたデータバイトを出
力するための8ビット出力バスとを含む。アドレス復号
化器316は、制御ライン317を介して構成される動
作モードに依存して、12ビットアドレス318を復号
化する。CDモードの場合、メモリセル314 0〜31
15のバンクは、4k×8ビットバッファとしてアドレ
ス指定される。即ち、アドレス318の12ビットを全
部用いて、C1/C2復号化のための8ビットの1デー
タバイトにアクセスする。アドレス318の最初の8ビ
ットは、メモリセル3140〜31415の各々から同じ
データバイトを選択するために用いられる。メモリセル
の出力は、トライステートバッファ3200〜32015
を介してワイアードORされる(wireored)。アドレス
318の残りの4ビットを用いて、適切なトライステー
トバッファがイネーブルされ、それにより、バス322
上に、C1/C2復号化に用いられる適切なデータバイ
トをアサートする。
Referring to FIG. 12A, SRAM 15 is
More preferably, 16 256 × 8 bit memory cells 314
0~ 314FifteenIs realized as a bank. Each memory cell
Is 8 bits to access 256 data bytes
Outputs the input address and the addressed data byte.
And an 8-bit output bus. Address decryption
The converter 316 is configured to operate via a control line 317.
Decodes 12-bit address 318 depending on operation mode
Become In the case of the CD mode, the memory cell 314 0~ 31
4FifteenBanks are addressed as 4k x 8-bit buffers.
Specified. That is, the 12 bits of the address 318 are all
8 bits for C1 / C2 decoding.
Access tabibytes. First 8 bits of address 318
The memory cell 3140~ 314FifteenSame from each of
Used to select data bytes. Memory cell
Output of the tri-state buffer 3200~ 320Fifteen
Is wired-ORed. address
Using the remaining 4 bits of 318,
Buffer 322 is enabled so that bus 322
Above, the appropriate data bytes used for C1 / C2 decoding
Assert

【0149】DVDモードの場合、SRAM15は、2
56×128バッファとしてアドレス指定される。即
ち、アドレス318の最初の8ビットだけを用いて、メ
モリセル3140〜31415の各々から同じデータバイ
トを選択する。各メモリセルから出力される16データ
バイトは、324で結合され、図5および図6Bに示さ
れるような垂直方向の符号語の16個のECCシンドロ
ームを形成するか、または、図3Aに示されるデータセ
クタについてのCRCシンドロームの4バイトを形成す
る。
In the case of the DVD mode, the SRAM 15
Addressed as a 56 × 128 buffer. That is, using only the first 8 bits of the address 318, selects the same data byte from each memory cell 314 0-314 15. The 16 data bytes output from each memory cell are combined at 324 to form 16 ECC syndromes of the vertical codeword as shown in FIGS. 5 and 6B, or as shown in FIG. 3A. Form 4 bytes of CRC syndrome for the data sector.

【0150】DVDモードの場合の垂直方向のECCシ
ンドロームおよびCRCシンドロームの好適なマッピン
グは、図12Bに示される。最初の182個のアドレス
が、182個の垂直方向の符号語の16個のECCシン
ドロームを格納するために用いられる。次の10個のア
ドレスはスキップされ、アドレス192〜207は、図
3AのDVD積符号の16個のデータセクタについての
4バイトのデータCRCシンドロームおよび誤りCRC
シンドロームを16個格納するために用いられる。アド
レス192〜207を用いてデータCRCシンドローム
および誤りCRCシンドロームにアクセスすることによ
り、アドレスの3つの最下位ビットしか変わらないた
め、複号化回路が簡略化される。SRAM15の残り
は、DVDモードでは使用されない。
A preferred mapping of the vertical ECC and CRC syndromes for the DVD mode is shown in FIG. 12B. The first 182 addresses are used to store 16 ECC syndromes of 182 vertical codewords. The next ten addresses are skipped and addresses 192 to 207 are the 4-byte data CRC syndrome and error CRC for the 16 data sectors of the DVD product code of FIG. 3A.
It is used to store 16 syndromes. Accessing the data CRC syndrome and the error CRC syndrome using the addresses 192 to 207 simplifies the decoding circuit because only the three least significant bits of the address are changed. The rest of the SRAM 15 is not used in the DVD mode.

【0151】本発明の目的は、本明細書に開示された実
施形態により十分に実現されている。当業者は、本発明
の本質的な機能から逸脱することなく、様々な実施形態
によって本発明の様々な局面を達成することができるこ
とを認識するであろう。例えば、図3Aに示される積符
号は、典型的にはデジタルビデオディスク(DVD)で
用いられるが、本発明は、コンパクトディスク(CD)
に用いられるフォーマットを含む他の積符号フォーマッ
トに等しく適用可能である。さらに、本発明は、積符号
だけでなく、他の多次元符号にも適用され得る。このよ
うに、本明細書に開示された特定の実施形態は例示的な
ものであって、前掲の特許請求の範囲によって適切に解
釈される本発明の範囲を限定することを意味するもので
はない。
[0151] The objects of the present invention have been fully realized by the embodiments disclosed herein. Those skilled in the art will recognize that various embodiments can achieve various aspects of the present invention without departing from the essential function of the invention. For example, while the product code shown in FIG. 3A is typically used on a digital video disc (DVD), the present invention provides a compact disc (CD)
Is equally applicable to other product code formats, including those used for Further, the present invention can be applied not only to product codes, but also to other multidimensional codes. Thus, the specific embodiments disclosed herein are illustrative and are not meant to limit the scope of the invention, which is properly construed by the appended claims. .

【0152】[0152]

【発明の効果】本発明によれば、少なくとも以下の効果
が得られる。
According to the present invention, at least the following effects can be obtained.

【0153】まず、ランダム化データに対してCRC検
査を行うことによって、CRCシンドロームを生成する
前にデータを非ランダム化するためのデータバッファへ
のアクセスに関連する待ち時間が避けられる。
First, by performing a CRC check on the randomized data, the latency associated with accessing the data buffer for non-randomizing the data before generating the CRC syndrome is avoided.

【0154】さらに、PおよびQ符号語の訂正と同時に
実行中にCRCシンドロームを生成することにより、C
RC符号語を処理した直後に、訂正の有効性および完全
性を検査するためにCRCシンドロームを利用可能にす
る。これにより、CRCシンドロームを生成するために
データバッファにアクセスする必要がなくなる。
Further, by generating a CRC syndrome during execution simultaneously with the correction of the P and Q code words,
Immediately after processing the RC codeword, the CRC syndrome is made available to check the validity and completeness of the correction. This eliminates the need to access the data buffer to generate a CRC syndrome.

【図面の簡単な説明】[Brief description of the drawings]

【図1】CD/DVD光記憶装置において典型的に用い
られる従来の誤り訂正システムのブロック図である。
FIG. 1 is a block diagram of a conventional error correction system typically used in a CD / DVD optical storage device.

【図2】ランダムデータに対して実行中にCRCシンド
ロームを生成するCRC生成器および訂正検証器を有す
る、本発明の誤り訂正システムのブロック図である。
FIG. 2 is a block diagram of the error correction system of the present invention having a CRC generator and a correction verifier that generates a CRC syndrome on the fly for random data.

【図3A】16個のデータセクタを有するDVD光記憶
装置において典型的に用いられる積符号のフォーマット
を示す図である。
FIG. 3A is a diagram showing a format of a product code typically used in a DVD optical storage device having 16 data sectors.

【図3B】図3Aの積符号の最初の2つのデータセクタ
のフォーマットを示す図である。
FIG. 3B shows the format of the first two data sectors of the product code of FIG. 3A.

【図3C】本発明において用いられるデータランダム化
器/非ランダム化器の詳細を示す図である。
FIG. 3C is a diagram showing details of a data randomizer / non-randomizer used in the present invention.

【図3D】本発明において用いられるデータランダム化
器/非ランダム化器の詳細を示す図である。
FIG. 3D is a diagram showing details of a data randomizer / non-randomizer used in the present invention.

【図4】本発明の第1実施態様による水平符号語誤りシ
ンドロームを生成する詳細な回路を示す図である。
FIG. 4 is a diagram illustrating a detailed circuit for generating a horizontal codeword error syndrome according to the first embodiment of the present invention;

【図5】水平符号語に対する誤りシンドロームの生成と
同時に、垂直符号語誤りシンドロームを生成する詳細な
回路を示す図である。
FIG. 5 is a diagram showing a detailed circuit for generating a vertical codeword error syndrome simultaneously with generation of an error syndrome for a horizontal codeword.

【図6A】本発明の他の実施態様について、シンドロー
ムバッファが、水平および垂直符号語の両方に対する誤
りシンドロームを記憶するとき、水平および垂直誤りシ
ンドロームをそれぞれ更新する回路を示す図である。
FIG. 6A illustrates a circuit for updating the horizontal and vertical error syndromes, respectively, when the syndrome buffer stores error syndromes for both horizontal and vertical codewords, for another embodiment of the present invention.

【図6B】本発明の他の実施態様について、シンドロー
ムバッファが、水平および垂直符号語の両方に対する誤
りシンドロームを記憶するとき、水平および垂直誤りシ
ンドロームをそれぞれ更新する回路を示す図である。
FIG. 6B illustrates a circuit for updating the horizontal and vertical error syndromes, respectively, when the syndrome buffer stores error syndromes for both horizontal and vertical codewords, for another embodiment of the present invention.

【図7A】本発明の誤り訂正システムによって実行され
るステップの概略を示す流れ図である。
FIG. 7A is a flowchart outlining the steps performed by the error correction system of the present invention.

【図7B】水平符号語に対する第1パスの間に水平およ
び垂直誤りシンドロームを同時に生成し、積符号に対す
る訂正の有効性および完全性を検査するためのCRCシ
ンドロームを同時に生成するための流れ図である。
FIG. 7B is a flow diagram for simultaneously generating horizontal and vertical error syndromes during a first pass for horizontal codewords and simultaneously generating CRC syndromes for checking the validity and completeness of corrections for product codes. .

【図7C】第1(および次の)水平パスの間水平符号語
を訂正し、訂正値を用いてシンドロームバッファおよび
CRC誤りレジスタにおいて記憶される垂直誤りシンド
ロームを更新するための流れ図である。
FIG. 7C is a flow diagram for correcting a horizontal codeword during a first (and subsequent) horizontal pass and updating the vertical error syndrome stored in a syndrome buffer and a CRC error register with the correction value.

【図7D】シンドロームバッファに記憶される垂直誤り
シンドロームを用いて垂直パス中に垂直符号語を訂正
し、訂正値を用いてシンドロームバッファおよびCRC
誤りレジスタに記憶される水平誤りシンドロームを更新
するための流れ図である。
FIG. 7D corrects a vertical codeword during a vertical pass using a vertical error syndrome stored in a syndrome buffer, and uses the corrected value to provide a syndrome buffer and a CRC.
5 is a flowchart for updating a horizontal error syndrome stored in an error register.

【図7E】シンドロームバッファに記憶される水平誤り
シンドロームを用いて次の水平パス中に水平符号語を訂
正し、訂正値を用いてシンドロームバッファおよびCR
C誤りレジスタに記憶される垂直誤りシンドロームを更
新するための流れ図である。
FIG. 7E corrects the horizontal codeword during the next horizontal pass using the horizontal error syndrome stored in the syndrome buffer, and uses the correction value to
5 is a flowchart for updating a vertical error syndrome stored in a C error register.

【図7F】全積符号に対する第1水平パス中にデータC
RCシンドロームを生成するための流れ図である。
FIG. 7F illustrates data C during a first horizontal pass for a full product code.
5 is a flowchart for generating an RC syndrome.

【図7G】水平パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
FIG. 7G is a flowchart for updating an error CRC syndrome using a correction value during a horizontal pass.

【図7H】水平パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
FIG. 7H is a flowchart for updating an error CRC syndrome using a correction value during a horizontal pass.

【図7I】垂直パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
FIG. 71 is a flow diagram for updating an error CRC syndrome using a correction value during a vertical pass.

【図7J】垂直パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
FIG. 7J is a flowchart for updating an error CRC syndrome using a correction value during a vertical pass.

【図7K】CRCデータレジスタの内容とCRC誤りレ
ジスタの内容とを組合せ、水平および垂直パスの終わり
における訂正の有効性および完全性を検査するための最
終CRCシンドロームを生成する流れ図である。
FIG. 7K is a flow diagram for combining the contents of the CRC data register and the contents of the CRC error register to generate a final CRC syndrome for checking the validity and completeness of the correction at the end of the horizontal and vertical passes.

【図8】書込み動作中にCRC冗長を生成し、読出し動
作中にCRCシンドロームを生成するのに用いられる従
来のリニアフィードバックシフトレジスタ(LFSR)
を示す図である。
FIG. 8 shows a conventional linear feedback shift register (LFSR) used to generate CRC redundancy during a write operation and a CRC syndrome during a read operation.
FIG.

【図9】CRCシンドロームのデータパートを計算する
ためのDATACRC回路と、CRCシンドロームの誤り
部分を計算するためのERRORCRC回路と、DATAC
RCレジスタとERRORCRCレジスタとを組合せて、ラ
ンダムデータパターンに対するCRCと等しい定数と比
較される最終CRCシンドロームSCRCを生成するため
の回路とを有するCRC訂正検証回路のブロック図であ
る。
FIG. 9 shows a DATA CRC circuit for calculating a data part of a CRC syndrome, an ERROR CRC circuit for calculating an error part of the CRC syndrome, and a DATA C circuit.
FIG. 9 is a block diagram of a CRC correction verification circuit having a circuit for combining a RC register and an ERROR CRC register to generate a final CRC syndrome S CRC that is compared to a constant equal to the CRC for the random data pattern.

【図10】図9のDATACRC/ERRORCRC回路の詳
細なブロック図である。
FIG. 10 is a detailed block diagram of a DATA CRC / ERROR CRC circuit of FIG. 9;

【図11】乗算器がxK MOD G(x)を計算するた
めのマトリクスの一般的な形態を示す図である。
FIG. 11 is a diagram showing a general form of a matrix for a multiplier to calculate x K MOD G (x).

【図12A】SRAMの構造、ならびにCDフォーマッ
ト用および積符号に対する部分シンドロームを記憶する
ためのC1/C2符号、およびDVDフォーマット用の
CRC検証符号を復号化する間にどのようにSRAMが
構成されるかを示す図である。
FIG. 12A shows the structure of an SRAM and how the SRAM is configured while decoding a C1 / C2 code for storing a partial syndrome for a CD format and a product code, and a CRC verification code for a DVD format. FIG.

【図12B】本発明の好ましい実施態様における垂直E
CCシンドロームおよびCRC検証シンドロームのSR
AMマッピングを示す図である。
FIG. 12B shows a vertical E in a preferred embodiment of the present invention.
SR of CC syndrome and CRC verification syndrome
It is a figure showing AM mapping.

【図13A】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
FIG. 13A is a diagram showing VHDL source code for generating an actual table for realizing multiplication of x K modG (x) for a 32-bit CRC generating polynomial G (x).

【図13B】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
FIG. 13B is a diagram showing VHDL source code for generating an actual table for realizing multiplication of x K modG (x) for a 32-bit CRC generation polynomial G (x).

【図13C】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
FIG. 13C is a diagram showing VHDL source code for generating an actual table for realizing multiplication of x K modG (x) for a 32-bit CRC generating polynomial G (x).

【図13D】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
FIG. 13D is a diagram showing VHDL source code for generating an actual table for realizing multiplication of x K modG (x) for a 32-bit CRC generating polynomial G (x).

【図13E】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
FIG. 13E is a diagram showing VHDL source code for generating an actual table for realizing multiplication of x K modG (x) for a 32-bit CRC generating polynomial G (x).

【符号の説明】[Explanation of symbols]

1 データバッファ 3 ライン 4 ランダム化器/非ランダム化器 7 C1符号化器/復号化器 8 C2符号化器/復号化器 9 インターリーブ器/非インターリーブ器 15 SRAM 16 P/Q復号化器 17 ECC/シンドローム生成器 18 誤り訂正器 19 CRC生成器および訂正検証器 20 ライン 21 ライン Reference Signs List 1 data buffer 3 line 4 randomizer / non-randomizer 7 C1 encoder / decoder 8 C2 encoder / decoder 9 interleaver / non-interleaver 15 SRAM 16 P / Q decoder 17 ECC / Syndrome generator 18 error corrector 19 CRC generator and correction verifier 20 lines 21 lines

───────────────────────────────────────────────────── フロントページの続き (71)出願人 595158337 3100 West Warren Aven ue,Fremont,Californ ia 94538,U.S.A. ────────────────────────────────────────────────── ─── Continuation of front page (71) Applicant 595158337 3100 West Warren Avenue, Fremont, California 94538, U.S.A. S. A.

Claims (24)

【特許請求の範囲】[Claims] 【請求項1】 ディスク記憶媒体から読み出されたラン
ダム化されたデータ中の誤りを訂正するための誤り訂正
プロセッサであって、該ランダム化されたデータは、該
ランダム化されたデータに対して生成されたECC冗長
記号と、ランダム化される前のデータに対して生成され
たチェック記号とを含み、該誤り訂正プロセッサは、 (a)該ECC冗長記号を用いて、該ランダム化された
データ中の誤りを訂正するためのECC復号化器と、 (b)該ランダム化されたデータに応答して、検証シン
ドロームを生成するためのシンドローム生成器と、 (c)該検証シンドロームを所定の値と比較して、該ラ
ンダム化されたデータに対する訂正の有効性(validit
y)および完全性を検証するための訂正検証器と、 (d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後、該ラ
ンダム化されたデータを非ランダム化するための非ラン
ダム化器とを含む、誤り訂正プロセッサ。
An error correction processor for correcting an error in randomized data read from a disk storage medium, wherein the randomized data is The ECC redundancy symbol and a check symbol generated for the data before being randomized, the error correction processor comprising: (a) using the ECC redundancy symbol to generate the randomized data; An ECC decoder for correcting errors therein; (b) a syndrome generator for generating a verification syndrome in response to the randomized data; and (c) a predetermined value for the verification syndrome. The validity of the correction to the randomized data (validit
y) and a correction verifier to verify the integrity; and (d) the correction verifier indicates that the correction to the randomized data is valid and complete, and then A non-randomizer for non-randomizing the data.
【請求項2】 (a)前記ランダム化されたデータが、
交差する符号語の第1および第2の組を含み、 (b)前記ECC復号化器が、該第1の組の符号語およ
び該第2の組の符号語をシーケンシャルなパス(pass)
で処理することによって、該ランダム化されたデータ中
の誤りを訂正する、請求項1に記載の誤り訂正プロセッ
サ。
2. The method according to claim 1, wherein (a) said randomized data is
Including first and second sets of intersecting codewords; and (b) said ECC decoder sequentially passing said first set of codewords and said second set of codewords.
2. The error correction processor according to claim 1, wherein the error correction processor corrects an error in the randomized data.
【請求項3】 (a)前記シンドローム生成器が、前記
第1の組の符号語に対する第1のパスの間にデータ検証
シンドロームを生成し、 (b)該シンドローム生成器が、前記ランダム化された
データを訂正するために前記ECC復号化器によって生
成される訂正値を用いて、誤り検証シンドロームを生成
し、 (c)該シンドローム生成器が、該データ検証シンドロ
ームを該誤り検証シンドロームと結合して、前記所定の
値と比較される最終検証シンドロームを生成する、請求
項2に記載の誤り訂正プロセッサ。
3. The syndrome generator generates a data verification syndrome during a first pass for the first set of codewords, and (b) the syndrome generator generates the data verification syndrome during a first pass on the first set of codewords. Generating an error verification syndrome using the correction value generated by the ECC decoder to correct the data, and (c) combining the data verification syndrome with the error verification syndrome. 3. The error correction processor according to claim 2, wherein a final verification syndrome is generated that is compared with the predetermined value.
【請求項4】 (a)前記ECC復号化器が前記ランダ
ム化されたデータを処理するのと同時に、前記シンドロ
ーム生成器が部分検証シンドロームを生成し、 (b)該シンドローム生成器が、該ECC複号化器によ
って処理されている特定のランダム化されたデータ記号
の位置に応じて、該部分検証シンドロームを調整するた
めのオフセットコントローラを含む、請求項2に記載の
誤り訂正プロセッサ。
(A) at the same time as the ECC decoder processes the randomized data, the syndrome generator generates a partial verification syndrome; and (b) the syndrome generator generates the partial verification syndrome. 3. The error correction processor according to claim 2, further comprising an offset controller for adjusting said partial verification syndrome in response to the position of a particular randomized data symbol being processed by the decoder.
【請求項5】 前記ECC復号化器が、ランダム化され
たデータ記号を訂正するための訂正値を生成し、 (a)前記オフセットコントローラが、前記訂正された
データ記号の位置に応じて前記部分検証シンドロームを
調整し、 (b)前記シンドローム生成器が、該訂正値を用いて該
部分検証シンドロームを更新する、請求項4に記載の誤
り訂正プロセッサ。
5. The ECC decoder generates a correction value for correcting a randomized data symbol, wherein: (a) the offset controller determines the partial value according to a position of the corrected data symbol. 5. The error correction processor of claim 4, wherein: adjusting a verification syndrome; and (b) the syndrome generator updates the partial verification syndrome with the correction value.
【請求項6】 (a)前記チェック記号が、有限領域の
生成多項式G(x)に従って生成され、 (b)前記オフセットコントローラが、前記部分検証シ
ンドロームにXK modG(x)を掛けることによって
該部分検証シンドロームを調整し、ここで、Kはオフセ
ット値であり、mod演算子は剰余除算(modulo divis
ion)を行う、請求項4に記載の誤り訂正プロセッサ。
6. The check symbol is generated according to a generator polynomial G (x) of a finite area, and (b) the offset controller multiplies the partial verification syndrome by X K mod G (x). Adjust the partial verification syndrome, where K is the offset value and the mod operator is modulo divis
5. The error correction processor according to claim 4, wherein the error correction processor performs ion).
【請求項7】 (a)前記チェック記号が、有限領域の
生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式に基づく、請求項
1に記載の誤り訂正プロセッサ。
7. The error correction processor according to claim 1, wherein: (a) the check symbol is generated according to a generator polynomial in a finite area; and (b) the predetermined value is based on the generator polynomial.
【請求項8】 (a)前記非ランダム化器が、所定のシ
ード(seed)値に従ってランダムパターンを生成し、 (b)該ランダムパターンが、前記ランダム化されたデ
ータと結合されて、該ランダム化されたデータを非ラン
ダム化する、請求項1に記載の誤り訂正プロセッサ。
8. The non-randomizer generates a random pattern according to a predetermined seed value, and (b) combines the random pattern with the randomized data to generate the random pattern. 2. The error correction processor according to claim 1, wherein the randomized data is non-randomized.
【請求項9】 (a)前記チェック記号が、有限領域の
生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式および前記ランダ
ムパターンに基づく、請求項8に記載の誤り訂正プロセ
ッサ。
9. The error correction processor according to claim 8, wherein (a) the check symbol is generated according to a generator polynomial in a finite area; and (b) the predetermined value is based on the generator polynomial and the random pattern. .
【請求項10】 前記チェック記号が、巡回冗長符号
(CRC)に従って生成される、請求項1に記載の誤り
訂正プロセッサ。
10. The error correction processor of claim 1, wherein the check symbols are generated according to a cyclic redundancy code (CRC).
【請求項11】 ディスク記憶媒体から読み出されたラ
ンダム化されたデータ中の誤りを訂正する方法であっ
て、該ランダム化されたデータは、該ランダム化された
データに対して生成されたECC冗長記号と、ランダム
化される前のデータに対して生成されたチェック記号と
を含み、該方法は、 (a)該ECC冗長記号を用いて、該ランダム化された
データ中の誤りを訂正するステップと、 (b)該ランダム化されたデータに応答して、検証シン
ドロームを生成するステップと、 (c)該検証シンドロームを所定の値と比較して、該ラ
ンダム化されたデータに対する訂正の有効性および完全
性を検証するステップと、 (d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後に、該
ランダム化されたデータを非ランダム化するステップと
を包含する、方法。
11. A method for correcting an error in randomized data read from a disk storage medium, wherein the randomized data includes an ECC generated for the randomized data. A redundant symbol and a check symbol generated for the data before being randomized, the method comprising: (a) using the ECC redundant symbol to correct an error in the randomized data; (B) generating a verification syndrome in response to the randomized data; and (c) comparing the verification syndrome with a predetermined value to enable correction of the randomized data. Verifying the correctness and completeness; and (d) after the correction verifier indicates that the correction to the randomized data is valid and complete, Comprising a step of non-randomized data, method.
【請求項12】 (a)前記ランダム化されたデータ
が、交差する符号語の第1および第2の組を含み、 (b)前記訂正するステップは、該第1の組の符号語お
よび該第2の組の符号語をシーケンシャルなパスで処理
することによって、該ランダム化されたデータ中の誤り
を訂正する、請求項11に記載の方法。
12. The method according to claim 12, wherein: (a) said randomized data comprises first and second sets of intersecting codewords; and (b) said correcting comprises: The method according to claim 11, wherein errors in the randomized data are corrected by processing a second set of codewords in a sequential pass.
【請求項13】 前記検証シンドロームを生成するステ
ップが、 (a)前記第1の組の符号語に対する第1のパスの間に
データ検証シンドロームを生成するステップと、 (b)前記ランダム化されたデータを訂正するための訂
正値を用いて、誤り検証シンドロームを生成するステッ
プと、 (c)該データ検証シンドロームを該誤り検証シンドロ
ームと結合して、前記所定の値と比較される最終検証シ
ンドロームを生成するステップとを包含する、請求項1
2に記載の方法。
13. The step of generating the verification syndrome comprises: (a) generating a data verification syndrome during a first pass for the first set of codewords; and (b) the randomized syndrome. Generating an error verification syndrome using a correction value for correcting data; and (c) combining the data verification syndrome with the error verification syndrome to generate a final verification syndrome that is compared with the predetermined value. Generating.
3. The method according to 2.
【請求項14】 前記検証シンドロームを生成するステ
ップが、 (a)前記ランダム化されたデータを処理してECC誤
りシンドロームを生成するのと同時に、部分検証シンド
ロームを生成するステップと、 (b)該ECC誤りシンドロームを生成するために処理
されている特定のランダム化されたデータ記号の位置に
応じて、該部分検証シンドロームを調整するステップと
を包含する、請求項12に記載の方法。
14. The step of generating the verification syndrome includes the steps of: (a) processing the randomized data to generate an ECC error syndrome and simultaneously generating a partial verification syndrome; Adjusting the partial verification syndrome in response to the location of a particular randomized data symbol being processed to generate an ECC error syndrome.
【請求項15】 前記検証シンドロームを生成するステ
ップが、 (a)訂正されたデータ記号の位置に応じて前記部分検
証シンドロームを調整するステップと、 (b)前記データ記号を訂正するために用いられる前記
訂正値で、該部分検証シンドロームを更新するステップ
とをさらに包含する、請求項14に記載の方法。
15. The step of generating the verification syndrome includes: (a) adjusting the partial verification syndrome according to the position of the corrected data symbol; and (b) correcting the data symbol. Updating the partial verification syndrome with the correction value.
【請求項16】 (a)前記チェック記号が、有限領域
の生成多項式G(x)に従って生成され、 (b)前記部分検証シンドロームを調整する前記ステッ
プが、該部分検証シンドロームにXK modG(x)を
掛けるステップを包含し、ここで、Kはオフセット値で
あり、mod演算子は剰余除算を行う、請求項14に記
載の方法。
16. The step (a) wherein the check symbol is generated according to a generator polynomial G (x) of a finite area; and (b) the step of adjusting the partial verification syndrome comprises: X K modG (x The method of claim 14, comprising multiplying by K), where K is an offset value and the mod operator performs remainder division.
【請求項17】 (a)前記チェック記号が、有限領域
の生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式に基づく、請求項
11に記載の方法。
17. The method of claim 11, wherein (a) the check symbol is generated according to a finite domain generator polynomial; and (b) the predetermined value is based on the generator polynomial.
【請求項18】 (a)前記非ランダム化器が、所定の
シード値に従ってランダムパターンを生成し、 (b)該ランダムパターンが、前記ランダム化されたデ
ータと結合されて、該ランダム化されたデータを非ラン
ダム化する、請求項11に記載の方法。
18. The non-randomizer generates a random pattern according to a predetermined seed value, and (b) combines the random pattern with the randomized data to generate the random pattern. The method of claim 11, wherein the data is non-randomized.
【請求項19】 (a)前記チェック記号が、有限領域
の生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式および前記ランダ
ムパターンに基づく、請求項18に記載の方法。
19. The method of claim 18, wherein (a) the check symbol is generated according to a finite domain generator polynomial; and (b) the predetermined value is based on the generator polynomial and the random pattern.
【請求項20】 前記チェック記号が、巡回冗長符号
(CRC)に従って生成される、請求項11に記載の方
法。
20. The method of claim 11, wherein the check symbols are generated according to a cyclic redundancy code (CRC).
【請求項21】 ディスク記憶媒体から読み出されたデ
ータ中の誤りを訂正するための誤り訂正プロセッサであ
って、該データは、ECC冗長記号とチェック記号とを
含み、該誤り訂正プロセッサは、 (a)該ECC冗長記号を用いて、該データ中の誤りを
訂正するためのECC復号化器と、 (b)該データに応答して、検証シンドロームを生成す
るためのシンドローム生成器と、 (c)該検証シンドロームを所定の値と比較して、該デ
ータに対する訂正の有効性および完全性を検証するため
の訂正検証器と、 (d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後、該デ
ータを非ランダム化するための非ランダム化器とを含
む、誤り訂正プロセッサ。
21. An error correction processor for correcting an error in data read from a disk storage medium, wherein the data includes an ECC redundant symbol and a check symbol, wherein the error correction processor comprises: a) an ECC decoder for correcting an error in the data using the ECC redundant symbol; and (b) a syndrome generator for generating a verification syndrome in response to the data. A) a correction verifier for comparing the verification syndrome with a predetermined value to verify the validity and completeness of the correction for the data; and (d) a correction verifier for correcting the randomized data. A non-randomizer for de-randomizing the data after indicating that the data is valid and complete.
【請求項22】 ディスク記憶媒体から読み出されたラ
ンダム化されたデータ中の誤りを訂正するための誤り訂
正プロセッサであって、該ランダム化されたデータは、
該ランダム化されたデータに対して生成されたECC冗
長記号と、ランダム化される前のデータに対して生成さ
れたチェック記号とを含み、該誤り訂正プロセッサは、 (a)該ディスクから読み出された該ランダム化された
データを格納するためのデータバッファと、 (b)該データバッファから該ランダム化されたデータ
を受け取るように接続され、該ランダム化されたデータ
中の誤りを訂正するために、ECC誤りシンドロームお
よび訂正値を生成するためのECC復号化器と、 (c)該ECC復号化器が該データバッファから該ラン
ダム化されたデータを受け取るのと同時に該データバッ
ファから該ランダム化されたデータを受け取るように接
続され、検証シンドロームを生成するためのシンドロー
ム生成器と、 (d)該検証シンドロームを所定の値を比較して、該ラ
ンダム化されたデータに23対する訂正の有効性および
完全性を検証するための訂正検証器と、 (e)該データバッファから該ランダム化されたデータ
を受け取るように接続され、該訂正検証器が、該ランダ
ム化されたデータに対する訂正が有効で且つ完全である
ことを示した後、該ランダム化されたデータを非ランダ
ム化するための非ランダム化器とを含む、誤り訂正プロ
セッサ。
22. An error correction processor for correcting an error in randomized data read from a disk storage medium, wherein the randomized data comprises:
An ECC redundancy symbol generated for the randomized data and a check symbol generated for the data before being randomized, the error correction processor comprising: (a) reading from the disk; A data buffer for storing the randomized data, and (b) connected to receive the randomized data from the data buffer, for correcting an error in the randomized data. An ECC decoder for generating an ECC error syndrome and a correction value; and (c) the randomizing data from the data buffer at the same time that the ECC decoder receives the randomized data from the data buffer. A syndrome generator connected to receive the verified data and generating a verification syndrome; and (d) the verification syndrome. A correction verifier for comparing the ROHM with a predetermined value to verify the validity and completeness of the correction to the randomized data; and (e) rewriting the randomized data from the data buffer. A non-randomizer for non-randomizing the randomized data after the correction verifier is connected to receive and indicates that the correction to the randomized data is valid and complete. And an error correction processor.
【請求項23】 前記検証シンドロームが、巡回冗長符
号(CRC)に従って生成される、請求項22に記載の
誤り訂正プロセッサ。
23. The error correction processor of claim 22, wherein the verification syndrome is generated according to a cyclic redundancy code (CRC).
【請求項24】 前記シンドローム生成器が、ランダム
化されたデータ記号が訂正されるときに前記ECC復号
化器によって生成される訂正値を用いて、前記検証シン
ドロームを更新する、請求項22に記載の誤り訂正プロ
セッサ。
24. The syndrome of claim 22, wherein the syndrome generator updates the verification syndrome with a correction value generated by the ECC decoder when a randomized data symbol is corrected. Error correction processor.
JP32462398A 1997-11-14 1998-11-16 ECC system for generating a CRC syndrome for random data in a computer storage device Expired - Lifetime JP4346135B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/970,918 US6052815A (en) 1997-11-14 1997-11-14 ECC system for generating a CRC syndrome over randomized data in a computer storage device
US08/970.918 1997-11-14

Publications (2)

Publication Number Publication Date
JPH11282701A true JPH11282701A (en) 1999-10-15
JP4346135B2 JP4346135B2 (en) 2009-10-21

Family

ID=25517706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32462398A Expired - Lifetime JP4346135B2 (en) 1997-11-14 1998-11-16 ECC system for generating a CRC syndrome for random data in a computer storage device

Country Status (4)

Country Link
US (1) US6052815A (en)
JP (1) JP4346135B2 (en)
KR (1) KR100562832B1 (en)
TW (1) TW432279B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213190B2 (en) 2002-12-27 2007-05-01 Kabushiki Kaisha Toshiba Data processing apparatus and method
CN111052089A (en) * 2017-07-05 2020-04-21 爱迪德技术有限公司 Data protection
US11052900B2 (en) 2017-12-20 2021-07-06 Toyota Jidosha Kabushiki Kaisha Hybrid vehicle

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1146515A1 (en) * 1998-02-25 2001-10-17 Matsushita Electric Industrial Co., Ltd. High-speed error correcting apparatus with efficient data transfer
FR2776115B1 (en) * 1998-03-13 2000-07-21 Thomson Multimedia Sa ERROR CORRECTION DEVICE AND OPTICAL DISC DRIVE COMPRISING SUCH A DEVICE
US6370671B1 (en) * 1998-06-18 2002-04-09 Globespan, Inc. Configurable decoder and method for decoding a reed-solomon codeword
US6412090B1 (en) * 1998-06-18 2002-06-25 Globespanvirata, Inc. Galois field computation system and method
US6467060B1 (en) * 1998-06-26 2002-10-15 Seagate Technology Llc Mass storage error correction and detection system, method and article of manufacture
US6367047B1 (en) * 1998-10-20 2002-04-02 Ecrix Multi-level error detection and correction technique for data storage recording device
KR100611955B1 (en) * 1999-07-20 2006-08-11 삼성전자주식회사 Scrambler
JP3450756B2 (en) * 1999-09-08 2003-09-29 松下電器産業株式会社 Error correction method and error correction device
KR20010081335A (en) * 2000-02-12 2001-08-29 구자홍 Coding method for correcting error of digital data in high density disc
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6714144B1 (en) 2000-10-23 2004-03-30 Cirrus Logic, Inc. Data randomization in a data storage system
TW476932B (en) * 2000-10-23 2002-02-21 Acer Labs Inc Decoding system for disk and the method thereof
US6384747B1 (en) 2000-10-23 2002-05-07 Cirrus Logic, Inc. Data encoding to provide run-length control in a data storage system
US6785856B1 (en) 2000-12-07 2004-08-31 Advanced Micro Devices, Inc. Internal self-test circuit for a memory array
US6684353B1 (en) 2000-12-07 2004-01-27 Advanced Micro Devices, Inc. Reliability monitor for a memory array
TW479226B (en) * 2000-12-15 2002-03-11 Acer Labs Inc Disc decoding system and method
TW522393B (en) * 2001-02-02 2003-03-01 Acer Labs Inc Decoding system and method for disks
TW569188B (en) * 2001-02-07 2004-01-01 Media Tek Inc Method and apparatus for error processing in optical disk memories
US20030079161A1 (en) * 2001-10-22 2003-04-24 Verboom Johannes J. Optimized data storage system and method for optical storage system
US7174498B2 (en) 2002-02-15 2007-02-06 Intel Corporation Obtaining cyclic redundancy code
US7296212B1 (en) * 2002-11-15 2007-11-13 Broadwing Corporation Multi-dimensional irregular array codes and methods for forward error correction, and apparatuses and systems employing such codes and methods
US7158058B1 (en) 2002-12-09 2007-01-02 Marvell International Ltd. Method and apparatus for generating a seed set in a data dependent seed selector
US20040161226A1 (en) * 2003-01-21 2004-08-19 Watson Scott Edward Integrated audio / video recorder with magnetic and optical data storage
US8645803B2 (en) 2010-05-10 2014-02-04 Ternarylogic Llc Methods and systems for rapid error correction by forward and reverse determination of coding states
US7523305B2 (en) * 2003-12-17 2009-04-21 International Business Machines Corporation Employing cyclic redundancy checks to provide data security
US6968478B1 (en) * 2003-12-18 2005-11-22 Xilinx, Inc. Method and apparatus for data transfer validation
US7225387B2 (en) * 2004-02-03 2007-05-29 International Business Machines Corporation Multilevel parallel CRC generation and checking circuit
EP1569348A1 (en) * 2004-02-13 2005-08-31 Alcatel Iterative multidimensional decoding
JP2005293724A (en) * 2004-03-31 2005-10-20 Sanyo Electric Co Ltd Detection method for error point, error detection circuit using its method, error correction circuit, and reproducing device
US7099221B2 (en) 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7600177B2 (en) * 2005-02-08 2009-10-06 Lsi Corporation Delta syndrome based iterative Reed-Solomon product code decoder
US20060242450A1 (en) * 2005-04-11 2006-10-26 Li-Lien Lin Methods and apparatuses for selectively rebuffering and decoding a portion of a data block read from an optical storage medium
US7437642B1 (en) * 2005-07-22 2008-10-14 Liontech Trains Llc Model train command protocol using front and back error bytes
US7624330B2 (en) * 2005-12-12 2009-11-24 Lsi Corporation Unified memory architecture for recording applications
US7559011B1 (en) 2006-02-10 2009-07-07 Xilinx, Inc. Circuit having a programmable circuit and method of validating a bitstream loaded into a programmable device
US20070260960A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260963A1 (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
US9203438B2 (en) * 2006-07-12 2015-12-01 Ternarylogic Llc Error correction by symbol reconstruction in binary and multi-valued cyclic 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
US7900120B2 (en) * 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
US8020115B2 (en) * 2007-04-09 2011-09-13 Infineon Technologies Ag Apparatus, method and system for permanent storage of data
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8127211B2 (en) * 2007-06-20 2012-02-28 Texas Instruments Incorporated Adding known data to CRC processing without increased processing time
US8201060B2 (en) * 2007-07-11 2012-06-12 Ternarylocig LLC Methods and systems for rapid error correction of Reed-Solomon codes
US8032813B2 (en) * 2007-07-17 2011-10-04 Texas Instruments Incorporated Concurrent production of CRC syndromes for different data blocks in an input data sequence
JP4831018B2 (en) * 2007-08-28 2011-12-07 日本電気株式会社 Parallel cyclic code generation apparatus and parallel cyclic code inspection apparatus
US8131920B2 (en) * 2007-12-06 2012-03-06 Hitachi Global Storage Technologies, Netherlands B.V. Method and system for dynamically allocating read and write sequence randomizer
JP5166074B2 (en) 2008-02-29 2013-03-21 株式会社東芝 Semiconductor memory device, control method thereof, and error correction system
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US8732386B2 (en) 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8543888B2 (en) * 2009-06-09 2013-09-24 Microchip Technology Incorporated Programmable cyclic redundancy check CRC unit
JP2011008879A (en) * 2009-06-26 2011-01-13 Toshiba Storage Device Corp Disk drive
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8677055B2 (en) 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8392807B2 (en) * 2010-07-23 2013-03-05 Sandisk Technologies Inc. System and method of distributive ECC processing
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
CN102742164B (en) * 2012-02-14 2014-04-30 华为技术有限公司 Decoding method and decoding device
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
KR20130136341A (en) * 2012-06-04 2013-12-12 에스케이하이닉스 주식회사 Semiconductor device and operating method thereof
US8930780B2 (en) * 2012-08-28 2015-01-06 Lsi Corporation Systems and methods for non-zero syndrome based processing
KR101990972B1 (en) * 2012-10-04 2019-06-19 삼성전자 주식회사 Method for performing cyclic redundancy check operation in memory system and memory controller using the same
KR102002925B1 (en) 2012-11-01 2019-07-23 삼성전자주식회사 Memory module, memory system havint the same, and driving method thereof
US9098428B2 (en) * 2012-12-11 2015-08-04 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
KR102133542B1 (en) * 2013-12-03 2020-07-14 에스케이하이닉스 주식회사 Memory system including randomizer and derandomizer
KR102108386B1 (en) 2013-12-23 2020-05-08 삼성전자주식회사 Storage device and data encoding and decoding methods thereof
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
CN106169312B (en) 2015-05-18 2021-05-07 爱思开海力士有限公司 Generalized product code for flash storage
US10498366B2 (en) 2016-06-23 2019-12-03 SK Hynix Inc. Data dependency mitigation in parallel decoders for flash storage
US10484020B2 (en) 2016-02-03 2019-11-19 SK Hynix Inc. System and method for parallel decoding of codewords sharing common data
US10439649B2 (en) * 2016-02-03 2019-10-08 SK Hynix Inc. Data dependency mitigation in decoder architecture for generalized product codes for flash storage
US10523245B2 (en) 2016-03-23 2019-12-31 SK Hynix Inc. Soft decoder for generalized product codes
JP6840591B2 (en) * 2017-03-24 2021-03-10 キオクシア株式会社 Decryptor
DE102018104233A1 (en) * 2017-06-09 2018-12-13 Taiwan Semiconductor Manufacturing Co., Ltd. METHOD FOR DETECTING AN ADDRESS DECODER ERROR AND ADDRESS DECODER ERRECTION DETECTION SYSTEM
US10553300B2 (en) 2017-06-09 2020-02-04 Taiwan Semiconductor Manufacturing Company, Ltd. Method of detecting address decoding error and address decoder error detection system
US20210141764A1 (en) * 2019-11-13 2021-05-13 Western Digital Technologies, Inc. Metadata verification in a distributed storage system
KR20220139199A (en) * 2021-04-07 2022-10-14 삼성전자주식회사 Semiconductor memory devices and memory systems including the same
US11940872B2 (en) 2022-04-21 2024-03-26 Analog Devices International Unlimited Company Error correction code validation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4597083A (en) * 1984-04-06 1986-06-24 Ampex Corporation Error detection and correction in digital communication systems
US5157669A (en) * 1988-10-14 1992-10-20 Advanced Micro Devices, Inc. Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors
US5027357A (en) * 1988-10-14 1991-06-25 Advanced Micro Devices, Inc. ECC/CRC error detection and correction system
JPH04222029A (en) * 1990-12-21 1992-08-12 Sony Corp Method for correcting error
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
WO1995012850A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Reed-solomon decoder
FR2712760B1 (en) * 1993-11-19 1996-01-26 France Telecom Method for transmitting bits of information by applying concatenated block codes.
US5592498A (en) * 1994-09-16 1997-01-07 Cirrus Logic, Inc. CRC/EDC checker system
US5691994A (en) * 1995-05-08 1997-11-25 Western Digital Corporation Disk drive with fast error correction validation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213190B2 (en) 2002-12-27 2007-05-01 Kabushiki Kaisha Toshiba Data processing apparatus and method
CN111052089A (en) * 2017-07-05 2020-04-21 爱迪德技术有限公司 Data protection
CN111052089B (en) * 2017-07-05 2024-03-19 爱迪德技术有限公司 Data protection
US11052900B2 (en) 2017-12-20 2021-07-06 Toyota Jidosha Kabushiki Kaisha Hybrid vehicle

Also Published As

Publication number Publication date
JP4346135B2 (en) 2009-10-21
TW432279B (en) 2001-05-01
KR19990044903A (en) 1999-06-25
US6052815A (en) 2000-04-18
KR100562832B1 (en) 2006-12-01

Similar Documents

Publication Publication Date Title
JP4346135B2 (en) ECC system for generating a CRC syndrome for random data in a computer storage device
KR100573356B1 (en) An ecc system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
JPH11282702A (en) Simultaneous generation of ecc error syndrome and crc verification syndrome in dvd storage device
US5974580A (en) Concurrent row/column syndrome generator for a product code
US6272659B1 (en) Error correction code processor employing adjustable correction power for miscorrection minimization
JP3966993B2 (en) Product code error correction and parallel checking
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
US5920578A (en) Method and apparatus for efficiently processing a multi-dimensional code
US6003151A (en) Error correction and detection system for mass storage controller
KR100415136B1 (en) Meth0d and apparatus for c0rrecting data errors
US5428630A (en) System and method for verifying the integrity of data written to a memory
JP3239863B2 (en) Data decoding processing apparatus and method
JP2007087529A (en) Signal decoding device, signal decoding method and storage system
US6772385B2 (en) Error-correcting device and decoder enabling fast error correction with reduced circuit scale
KR19990028201A (en) Dedicated ALU Architecture for 10-Bit Reed-Solomon Error Correction Module
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
JP2001211086A (en) System and method for providing error correcting code having selective variable redundancy
JP3777246B2 (en) System and error control chip for correcting errors in a disk storage device, and encoding and decoding methods
JP3362146B2 (en) Reproduction device and recording / reproduction device
JP2001292066A (en) Error correction device and error correction method
JP3992443B2 (en) Encoding method, decoding method, encoding circuit, decoding circuit, storage device, storage medium, and communication device
KR100200052B1 (en) Error correction decoder for high density compact disk
JP2004152337A (en) Recording and reproducing device, computer program and transmitting and receiving system
JP3519684B2 (en) Data processing device using error correction code
JP2000306342A (en) Error correcting encoding apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090120

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090123

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090220

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

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: 20090623

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090714

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: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term