JPH11282701A - コンピュータ記憶装置においてランダムデータに対してcrcシンドロームを生成するeccシステム - Google Patents

コンピュータ記憶装置においてランダムデータに対してcrcシンドロームを生成するeccシステム

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
English (en)
Other versions
JP4346135B2 (ja
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/ja
Application granted granted Critical
Publication of JP4346135B2 publication Critical patent/JP4346135B2/ja
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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (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

(57)【要約】 (修正有) 【課題】 ECCシンボルが検証シンボルのランダム化
の後に生成されるときの、積符号などの多次元符号に対
する訂正に関連する待ち時間を避ける。 【解決手段】 積符号は、P/Q復号化器による復号化
のために、データバッファに格納される。未訂正のラン
ダム化されたデータに対してデータCRCシンドローム
が生成され、データCRCレジスタに格納される。ま
た、PまたはQ符号語に対して訂正が行われると、訂正
値が誤りCRCレジスタに与えられる。CRC符号語全
体の処理が終わると、データCRCレジスタおよび誤り
CRCレジスタが結合され、最終CRCシンドロームが
生成され、定数と比較され、積符号に対する訂正が有効
かつ完全であるかを判断される。ここで、この定数は、
ランダムデータパターン上のCRCに等しい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ記憶
装置のための誤り訂正システムに関し、特に、書込み動
作中にデータがランダム化される前に巡回冗長検査(C
RC)シンボルが生成されるときの、ランダムデータに
対してCRCを実施することによって、積符号などの多
次元符号に対する訂正の有効性および完全性を証明する
ための効率的な方法および装置に関する。
【0002】
【従来の技術】コンピュータ記憶装置(磁気ディスクド
ライブおよび光ディスクドライブ)において、記録チャ
ネルの帯域幅は、信号パワーと同様に限定される。性能
利得を成し遂げるために、様々な符号化技術を用いてシ
ステムのノイズに対する免疫を高めることによって効果
的な信号対ノイズ比(SNR)を増加させている。この
ため、任意の低ビット誤り率を維持しながら記憶密度を
増加させることによって、記憶容量を増加させることが
可能となる。
【0003】現在、記録装置において用いられている符
号には一般に2つのタイプがある。チャネル符号および
誤り訂正符号(ECC)である。チャネル符号は、記録
チャネルの特定の特徴によって引き起こされるノイズに
対するものである。例えば、ランレングス限定(RL
L)符号は、アナログ搬送波信号におけるデータシンボ
ルを示すパルス間の最小スペーシングを限定することに
よって、ノイズをシンボル間干渉に減衰するように設計
されたチャネル符号である。記録されるデータのスペク
トル内容は、読返し時にデータを正確に検出するシステ
ムの能力にも悪影響を与え得る。この結果、いくつかの
データシーケンスは、他のデータシーケンスよりも検出
が困難となり得る。この現象を考慮するために、通常、
データをランダム化するためのチャネル符号が、記録装
置において用いられている。このような記録装置は、デ
ータをディスク記憶媒体に書き込む前にランダム化する
ことによってデータを効果的に「不透明にする(white
n)」する。読み返し時に、記録チャネルは、データが
ランダム化されない場合よりも低いビット誤り率でラン
ダムデータを検出することができる。記憶媒体から読み
出されたデータは、ホストに転送される前に非ランダム
化される。
【0004】誤り訂正コーディング(ECC)におい
て、記録されるバイナリデータは、数学的に処理され、
データに追加される冗長シンボルを生成し、ディスク記
憶媒体に書き込まれる符号語を形成する。読み返し時に
は、記録された符号ワードは、読出し信号から評価(検
出)され、冗長シンボルは、評価された符号ワードを最
初に記録されたユーザデータに復号化するために用いら
れる。実際、冗長シンボルは、符号ワードが記録チャネ
ルを通過するときに、符号ワードをノイズから保護する
バッファを提供する。十分なノイズがこのバッファに
「浸透(penetrate)」すると、ノイズは、書き込まれ
た符号ワードを異なる受信符号ワードに変化させ、この
結果、ユーザデータに復号化されるときに誤りを生じ
る。
【0005】誤り訂正符号においてより多くの冗長シン
ボルが用いられるほど、符号語の周囲のバッファは大き
くなり、復号化誤りが発生する前に耐えられ得るノイズ
が多くなる。しかし、任意の低ビット誤り率を維持しな
がら所定のチャネルに対して達成可能な最大ユーザデー
タ転送率(または記録密度)を指す「チャネル容量」と
して公知の任意の所定の記録チャネルの性能には上限が
ある。最終的には、チャネル容量は、チャネル帯域幅お
よび信号対ノイズ(SNR)比の関数である。上記のよ
うに、チャネル符号および誤り訂正符号は、効果的なS
NRを増加させることによって性能を向上させる手段で
ある。
【0006】記録チャネルの信頼性および効率を最大に
するために、ユーザデータを符号化/復号化するための
解決法が多数ある。最終目標は、実現を簡単にし、コス
トを下げると共に、チャネル容量に近づくシステムを設
計することである。ブロック誤り訂正符号、特に、リー
ド−ソロモンブロック符号は、その優れた誤り訂正特性
および実現コストおよび複雑性が低いことにより、通
常、ディスク記憶システムにおいて用いられる。
【0007】ブロック符号は、ソースデータストリーム
のkシンボル入力ブロックを、nシンボル出力ブロック
または符号語に符号化する。ここで、n−kは、冗長シ
ンボルの数である、k/nは、符号率と呼ぶ。次に、符
号語は、通信媒体を通して転送され(通信媒体に記憶さ
れ)、受信器によって復号化される。符号化プロセス
は、入力ブロックに対して数学演算を行い、出力符号語
は、符号dminの最小距離として参照されるパラメータ
によって他の符号語とは異なったものにされる。符号語
間の最小距離dminは、システムが、受信された符号語
が誤って復号化される前の耐え得るノイズの量を決定す
る。
【0008】リード−ソロモン符号では、データストリ
ームは、シンボルのシーケンスとして処理され、シンボ
ルは、典型的には、有限フィールドGF(2w)から選
択される。パラメータwは、シンボル当たりのバイナリ
データビットの数を示す。kシンボル入力ブロックの各
シンボルは、データ多項式D(x)の係数を示す。次
に、冗長シンボル(多項式W(x)とも呼ぶ)は、生成
器多項式G(x)によって除算される入力データ多項式
D(x)の剰余除算として計算される。
【0009】
【数1】 ここで、mは、冗長シンボルの数と等しい生成器多項式
の次数である。次に、冗長多項式W(x)は、データ多
項式D(x)に加えられ、符号語多項式C(x)を生成
する。
【0010】
【数2】 当業者には言うまでもなく、上記の動作を行う符号化器
回路は、リニアフィードバックシフトレジスタ(LFS
R)を用いて最小のコストで実現され得る。
【0011】符号化の後、符号語C(x)は、ノイズ通
信チャネルを通して転送され、受信された符号語C’
(x)は、転送された符号語C(x)に誤り多項式E
(x)を加えたものと等しくなる。受信された符号語
C’(x)は、以下のステップに従って訂正される。
(1)誤りシンドロームSiを計算する。(2)誤りシ
ンドロームSiを用いて誤りロケータ多項式の係数を計
算する。(3)誤りロケータ多項式のルートを計算す
る。ルートの対数は、誤り位置Liである。(4)誤り
シンドロームSiおよび誤りロケータ多項式のルートを
用いて誤り値を計算する。
【0012】誤りシンドロームSiは、生成器多項式G
(x)の因数によって除算される受信符号語多項式C’
(x)の剰余除算として計算される。
【0013】
【数3】 このとき
【0014】
【数4】 であり、ここで、αは、有限フィールドGF(2w)の
基本要素である。復号化プロセスの他のステップを実施
し、誤りロケータ多項式を計算し、誤りロケータ多項式
のルートを計算し、誤り値を計算する技術は、当業者に
より周知であり、本発明を理解するために必要ではな
い。例えば、「COEFFICIENT UPDATING METHOD AND APPA
RATUS FOR REED-SOLOMON DECODER」という名称の下記で
参照する米国特許第5,446,743号を参照のこ
と。
【0015】誤り許容度をさらに増加させるための当該
技術分野で公知の他の技術としては、符号語を、多次元
または積符号として知られるものに改作することが挙げ
られる。ディジタルビデオディスク(DVD)記憶シス
テムは、例えば、一般に、図3Aに示す二次元積符号を
用いる。符号語は、交差する水平(行またはQ)および
垂直(列またはP)符号語に改作され、復号化プロセス
は、反復パスにおいて実行される。まず、水平符号語に
対してパスが行われ、できるだけ多くの誤りが訂正され
る。訂正不可能な水平符号語はすべて、変更されずに残
される。次に、垂直符号語に対してパスが行われ、でき
るだけ多くの誤りが訂正される。ここで、垂直符号語に
おいて訂正されるシンボルもまた、交差する水平符号語
に対する対応のシンボルを訂正する。この結果、水平符
号語は、次の水平パスにおいて訂正可能となり得る。同
様に、水平パスにおいて訂正されるシンボルは、前回訂
正不可能であった垂直符号語を、次の垂直パスにおいて
訂正可能にし得る。この反復プロセスは、全積符号が訂
正されるか、または訂正不可能になるまで続行される。
【0016】図3Aの二次元積符号はさらに、行および
列符号語に対する訂正の有効性を検査するのに用いられ
るCRC冗長シンボルを有する。CRC冗長は、典型的
には、以下の式に従ってユーザデータを処理することに
よって生成される。
【0017】
【数5】 ここで、P(x)は、有限フィールドGF(2m)にお
ける係数を有する多項式として示されるユーザデータで
あり、n−kは、CRC冗長シンボルの数であり、G
(x)は、生成器多項式である。次に、CRC冗長は、
得られる符号語C(x)がディスクに書き込まれる前に
ユーザデータに追加される。読出し動作中、ディスクか
ら読み出されたデータは、以下の式に従って処理され、
CRCシンドロームSCRCを生成する。
【0018】
【数6】 ここで、C’(x)は、ディスクから読み出された(C
RC冗長を含む)受信符号語多項式である。符号語C’
(x)に誤りがない場合、シンドロームSCRCはゼロに
なる。
【0019】CRC冗長は、典型的には、ECC冗長シ
ンボルを符号化する前に書込み動作中にデータに対して
生成され、CRCシンドロームは、ECC冗長が積符号
を訂正するために用いられた後、読出し動作中に生成さ
れる。このように、CRCシンドロームは、訂正を検証
し、訂正ミスを検出するように動作する。これは、非常
に重要な機能である。なぜなら、この機能によって、誤
り訂正システムが、「悪いデータ」がホストシステムを
通過することを防止するためである。
【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に書き込まれる。
【0021】システムが、コンパクトディスク(CD)
データフォーマット用に構成される場合、C1およびC
2として参照されるさらなる冗長が生成され、データが
ディスクに書き込まれる前に、データに追加される。従
って、CD記録フォーマットを容易にするために、誤り
訂正システムは、C1符号化器/復号化器7、C2符号
化器/復号化器8、および周知のクロスインターリーブ
リード−ソロモン符号(CIRC)を実現するためのイ
ンターリーブ器/非インターリーブ器9を有する。典型
的には、スタティックRAM(SRAM)10は、CI
RCコーディングプロセスを実現するために用いられ、
SRAMは、ダイナミックRAM(DRAM)よりもは
るかに速く、後者は、データバッファ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を介してホストシステムに転送し、
ホストシステムは、再試行動作(即ち、ディスクからデ
ータを再び読み出す試み)を開始する。
【0023】
【発明が解決しようとする課題】図1に示す従来の誤り
訂正システムの基本的な欠点は、データが、CRC検証
ステップを実施する前に、非ランダム化されなければな
らないことである。このためには、上記のように全積符
号を読み出し、データを非ランダム化し、CRCシンド
ロームを生成するためにさらにバッファにアクセスしな
ければならない。明らかに、これは、記憶システムの待
ち時間を増加させ、特に、円滑で中断されない性能を成
し遂げるために、音声/映像データの大きなブロック
が、連続したストリームにおいて記憶システムから読み
出されなければならないマルチメディアアプリケーショ
ンにはあまり望ましくない。
【0024】従って、検証シンボルがランダム化の前に
生成され、ECCシンボルがランダム化の後に生成され
るときの、CD/DVD積符号などの多次元符号に対す
る訂正の有効性および完全性の証明に関連する待ち時間
を避けるコンピュータ記憶装置における誤り訂正システ
ムが求められている。
【0025】
【課題を解決するための手段】本発明による誤り訂正プ
ロセッサは、ディスク記憶媒体から読み出されたランダ
ム化されたデータ中の誤りを訂正するための誤り訂正プ
ロセッサであって、該ランダム化されたデータは、該ラ
ンダム化されたデータに対して生成されたECC冗長記
号と、ランダム化される前のデータに対して生成された
チェック記号とを含み、該誤り訂正プロセッサは、
(a)該ECC冗長記号を用いて、該ランダム化された
データ中の誤りを訂正するためのECC復号化器と、
(b)該ランダム化されたデータに応答して、検証シン
ドロームを生成するためのシンドローム生成器と、
(c)該検証シンドロームを所定の値と比較して、該ラ
ンダム化されたデータに対する訂正の有効性(validit
y)および完全性を検証するための訂正検証器と、
(d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後、該ラ
ンダム化されたデータを非ランダム化するための非ラン
ダム化器とを含んでおり、これにより上記目的が達成さ
れる。
【0026】(a)前記ランダム化されたデータが、交
差する符号語の第1および第2の組を含み、(b)前記
ECC復号化器が、該第1の組の符号語および該第2の
組の符号語をシーケンシャルなパス(pass)で処理する
ことによって、該ランダム化されたデータ中の誤りを訂
正してもよい。
【0027】(a)前記シンドローム生成器が、前記第
1の組の符号語に対する第1のパスの間にデータ検証シ
ンドロームを生成し、(b)該シンドローム生成器が、
前記ランダム化されたデータを訂正するために前記EC
C復号化器によって生成される訂正値を用いて、誤り検
証シンドロームを生成し、(c)該シンドローム生成器
が、該データ検証シンドロームを該誤り検証シンドロー
ムと結合して、前記所定の値と比較される最終検証シン
ドロームを生成してもよい。
【0028】(a)前記ECC復号化器が前記ランダム
化されたデータを処理するのと同時に、前記シンドロー
ム生成器が部分検証シンドロームを生成し、(b)該シ
ンドローム生成器が、該ECC複号化器によって処理さ
れている特定のランダム化されたデータ記号の位置に応
じて、該部分検証シンドロームを調整するためのオフセ
ットコントローラを含んでいてもよい。
【0029】前記ECC復号化器が、ランダム化された
データ記号を訂正するための訂正値を生成し、(a)前
記オフセットコントローラが、前記訂正されたデータ記
号の位置に応じて前記部分検証シンドロームを調整し、
(b)前記シンドローム生成器が、該訂正値を用いて該
部分検証シンドロームを更新してもよい。
【0030】(a)前記チェック記号が、有限領域の生
成多項式G(x)に従って生成され、(b)前記オフセ
ットコントローラが、前記部分検証シンドロームにXK
modG(x)を掛けることによって該部分検証シンド
ロームを調整し、ここで、Kはオフセット値であり、m
od演算子は剰余除算(modulo division)を行っても
よい。
【0031】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式に基づいてもよい。
【0032】(a)前記非ランダム化器が、所定のシー
ド(seed)値に従ってランダムパターンを生成し、
(b)該ランダムパターンが、前記ランダム化されたデ
ータと結合されて、該ランダム化されたデータを非ラン
ダム化してもよい。
【0033】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式および前記ランダムパターンに基づいてもよ
い。
【0034】前記チェック記号が、巡回冗長符号(CR
C)に従って生成されてもよい。
【0035】本発明による方法は、ディスク記憶媒体か
ら読み出されたランダム化されたデータ中の誤りを訂正
する方法であって、該ランダム化されたデータは、該ラ
ンダム化されたデータに対して生成されたECC冗長記
号と、ランダム化される前のデータに対して生成された
チェック記号とを含み、該方法は、(a)該ECC冗長
記号を用いて、該ランダム化されたデータ中の誤りを訂
正するステップと、(b)該ランダム化されたデータに
応答して、検証シンドロームを生成するステップと、
(c)該検証シンドロームを所定の値と比較して、該ラ
ンダム化されたデータに対する訂正の有効性および完全
性を検証するステップと、(d)該訂正検証器が、該ラ
ンダム化されたデータに対する訂正が有効で且つ完全で
あることを示した後に、該ランダム化されたデータを非
ランダム化するステップとを包含しており、これによ
り、上記目的が達成される。
【0036】(a)前記ランダム化されたデータが、交
差する符号語の第1および第2の組を含み、(b)前記
訂正するステップは、該第1の組の符号語および該第2
の組の符号語をシーケンシャルなパスで処理することに
よって、該ランダム化されたデータ中の誤りを訂正して
もよい。
【0037】前記検証シンドロームを生成するステップ
が、(a)前記第1の組の符号語に対する第1のパスの
間にデータ検証シンドロームを生成するステップと、
(b)前記ランダム化されたデータを訂正するための訂
正値を用いて、誤り検証シンドロームを生成するステッ
プと、(c)該データ検証シンドロームを該誤り検証シ
ンドロームと結合して、前記所定の値と比較される最終
検証シンドロームを生成するステップとを包含してもよ
い。
【0038】前記検証シンドロームを生成するステップ
が、(a)前記ランダム化されたデータを処理してEC
C誤りシンドロームを生成するのと同時に、部分検証シ
ンドロームを生成するステップと、(b)該ECC誤り
シンドロームを生成するために処理されている特定のラ
ンダム化されたデータ記号の位置に応じて、該部分検証
シンドロームを調整するステップとを包含してもよい。
【0039】前記検証シンドロームを生成するステップ
が、(a)訂正されたデータ記号の位置に応じて前記部
分検証シンドロームを調整するステップと、(b)前記
データ記号を訂正するために用いられる前記訂正値で、
該部分検証シンドロームを更新するステップとをさらに
包含してもよい。
【0040】(a)前記チェック記号が、有限領域の生
成多項式G(x)に従って生成され、(b)前記部分検
証シンドロームを調整する前記ステップが、該部分検証
シンドロームにXK modG(x)を掛けるステップを
包含し、ここで、Kはオフセット値であり、mod演算
子は剰余除算を行ってもよい。
【0041】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式に基づいてもよい。
【0042】(a)前記非ランダム化器が、所定のシー
ド値に従ってランダムパターンを生成し、(b)該ラン
ダムパターンが、前記ランダム化されたデータと結合さ
れて、該ランダム化されたデータを非ランダム化しても
よい。
【0043】(a)前記チェック記号が、有限領域の生
成多項式に従って生成され、(b)前記所定の値が、該
生成多項式および前記ランダムパターンに基づいてもよ
い。
【0044】前記チェック記号が、巡回冗長符号(CR
C)に従って生成されてもよい。
【0045】本発明による別の誤り訂正プロセッサは、
ディスク記憶媒体から読み出されたデータ中の誤りを訂
正するための誤り訂正プロセッサであって、該データ
は、ECC冗長記号とチェック記号とを含み、該誤り訂
正プロセッサは、(a)該ECC冗長記号を用いて、該
データ中の誤りを訂正するためのECC復号化器と、
(b)該データに応答して、検証シンドロームを生成す
るためのシンドローム生成器と、(c)該検証シンドロ
ームを所定の値と比較して、該データに対する訂正の有
効性および完全性を検証するための訂正検証器と、
(d)該訂正検証器が、該ランダム化されたデータに対
する訂正が有効で且つ完全であることを示した後、該デ
ータを非ランダム化するための非ランダム化器とを含ん
でおり、これにより上記目的が達成される。
【0046】本発明による別の誤り訂正プロセッサは、
ディスク記憶媒体から読み出されたランダム化されたデ
ータ中の誤りを訂正するための誤り訂正プロセッサであ
って、該ランダム化されたデータは、該ランダム化され
たデータに対して生成されたECC冗長記号と、ランダ
ム化される前のデータに対して生成されたチェック記号
とを含み、該誤り訂正プロセッサは、(a)該ディスク
から読み出された該ランダム化されたデータを格納する
ためのデータバッファと、(b)該データバッファから
該ランダム化されたデータを受け取るように接続され、
該ランダム化されたデータ中の誤りを訂正するために、
ECC誤りシンドロームおよび訂正値を生成するための
ECC復号化器と、(c)該ECC復号化器が該データ
バッファから該ランダム化されたデータを受け取るのと
同時に該データバッファから該ランダム化されたデータ
を受け取るように接続され、検証シンドロームを生成す
るためのシンドローム生成器と、(d)該検証シンドロ
ームを所定の値を比較して、該ランダム化されたデータ
に対する訂正の有効性および完全性を検証するための訂
正検証器と、(e)該データバッファから該ランダム化
されたデータを受け取るように接続され、該訂正検証器
が、該ランダム化されたデータに対する訂正が有効で且
つ完全であることを示した後、該ランダム化されたデー
タを非ランダム化するための非ランダム化器とを含んで
おり、これにより上記目的が達成される。
【0047】前記検証シンドロームが、巡回冗長符号
(CRC)に従って生成されてもよい。
【0048】前記シンドローム生成器が、ランダム化さ
れたデータ記号が訂正されるときに前記ECC復号化器
によって生成される訂正値を用いて、前記検証シンドロ
ームを更新してもよい。
【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シンドロームを生成する
前にデータを非ランダム化するためのデータバッファへ
のアクセスに関連する待ち時間が避けられる。
【0050】本発明によって提供される他の利点は、P
およびQ符号語の訂正と同時に実行中にCRCシンドロ
ームを生成する能力である。従って、CRC符号語を処
理した直後に、CRCシンドロームは、訂正の有効性お
よび完全性を検査するために利用可能である。つまり、
CRCシンドロームを生成するためにデータバッファに
アクセスする必要はないのである。
【0051】本発明の実施可能性局面は、PおよびQパ
ス中にデータおよび誤りCRCシンドロームを調節し、
CRC符号語シンボル内のオフセットを補うことであ
る。例えば、垂直(即ち、P)符号語を処理する場合、
処理される各垂直シンボルに対して、1行のデータシン
ボルによって誤りCRCシンドロームを調節する必要が
ある。これは、以下の式によってデータおよび誤りCR
Cシンドロームを乗算する特殊な乗算器回路を用いて実
行される。
【0052】
【数7】 ここで、kは、オフセット(例えば、1行のシンボ
ル)、およびG(x)は、CRC生成器多項式である。
【0053】各データセクタに追加された個別のCRC
シンボルを有する多数のデータセクタを備えたDVD積
符号については、CDモードにおいてC1およびC2符
号化/復号化に用いられるSRAMが、各データセクタ
に対する部分データおよび誤りCRCシンドロームを記
憶するために用いられる。PおよびQパスの間、データ
および誤りCRCシンドロームレジスタは、P/Q復号
化器によって処理される現在のデータシンボルに応じ
て、適切な部分CRCシンドロームでロードされる。各
データセクタを処理した後、各データセクタに対するデ
ータCRCシンドロームと誤りCRCシンドロームとは
組み合わされ、疑似ランダムデータパターンに対するC
RCと等しい定数と比較される。
【0054】本発明の上記ならびに他の局面および利点
は、以下の本発明の詳細な説明を図面を参照しながら読
むことによってより明確に理解される。
【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号である。上
記の米国特許出願および米国特許は、本願では、参考の
ために援用する。
【0056】[システムの概観]図2は、本発明の誤り訂
正システムの概観を示す。このシステムの動作は、以下
の変更を除いて、図1を参照しながら上述した従来のシ
ステムと同様である。読出し動作中、ECC誤りシンド
ロームは、第1水平パスにおいて、積符号の水平符号語
および垂直符号語の両方に対して同時に生成される。E
CC誤りシンドロームは、SRAM15内に記憶され、
SRAM15はCD積符号を復号化するときにCIRC
誤り訂正用にも用いられる。これにより、記憶装置の待
ち時間が大幅に減少する。なぜなら、次の水平または垂
直パスの間にECC誤りシンドロームを再生するために
データバッファ1にアクセスする必要がないからであ
る。本発明の他の重要な変更は、積符号の訂正と同時に
CRCシンドロームを生成すること、およびデータバッ
ファに記憶されたデータを非ランダム化する前にCRC
シンドロームを検査することである。これにより、CR
Cシンドロームを生成するために、データバッファ1か
ら積符号全体を読み出す必要がなくなり、記憶システム
の待ち時間はさらに減少する。
【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と通信される。
【0058】[データフォーマット]図3Aは、DVD記
憶装置において典型的に用いられる2次元積符号のデー
タフォーマットを示す。積符号は、16個のデータセク
タを有し、各データセクタは、12個の水平符号語(Q
符号語)を有する。各水平符号語は、好ましくはリード
−ソロモン符号に従って生成される10個のECC冗長
シンボルを有する。182個の垂直符号語(P符号語)
があり、それぞれ、図示するように、16個の冗長シン
ボルを有する。ECC冗長シンボルは、ECC符号語も
形成する。即ち、ECC冗長シンボルは、ユーザデータ
と同様に訂正可能である。従って、右側には、10個の
ECC符号語を含む全部で182個の垂直符号語があ
り、下側には、16個の水平ECC符号語を含む208
個の水平符号語がある。
【0059】16個のデータセクタのそれぞれの端部に
は、ECC冗長シンボルを使用して符号語に対する訂正
の有効性および完全性を証明するのに用いられる4個の
CRCシンボルがある。上記のように、書込み動作中、
CRCシンボルは、通常、データがランダム化される前
およびECC冗長シンボルを加える前に、ユーザデータ
に対して生成される。従って、CRCシンボルは、EC
Cシンボルをカバーしない。さらに、従来の誤り訂正シ
ステムは、CRC検査を行う前にデータを非ランダム化
しなければならない。
【0060】図3Bは、図3Aの積符号の最初の2個の
データセクタのさらなる詳細を示す。ECC符号語の訂
正と同時にCRCシンドロームを生成する本発明の技術
について、図3Bを参照しながら以下に説明する。
【0061】[データランダム化器/非ランダム化器]本
発明の誤り訂正システムは、ユーザデータを不透明に
し、検出するのが困難なデータシーケンスがディスクに
記録されるのを防止する。図2を参照しながら上述した
ように、データバッファ1に記憶されるユーザデータ
は、CRCシンボルが生成された後にランダム化され
る。次に、ECC/シンドローム生成器12は、ランダ
ム化データを処理し、図3Aに示す積符号のPおよびQ
符号語に対するECC冗長を生成する。読み返し時に、
積符号は訂正され、訂正が確認される。訂正が有効かつ
完了している場合、データは非ランダム化され、ホスト
システムに転送される。
【0062】データをランダム化/非ランダム化するた
めの回路は当業者に周知であり、図3Cおよび図3D
は、この回路を示す。回路は、ライン23に与えられる
疑似ランダムデータシーケンスを生成するためのランダ
ムパターン生成器を有する。読出し動作中、データバッ
ファ1に記憶されるユーザデータおよびCRCシンボル
は、加算器24においてランダムデータシーケンスに加
えられ(排他的論理和計算)、それによって、データが
ディスクに書き込まれる前にデータをランダム化する。
読み返し時に、ランダムパターン生成器22は、加算器
25において、ディスクから読み出されたデータに加え
られ(排他的論理和計算)、それによって、データをホ
ストシステムに転送する前にデータを非ランダム化す
る。
【0063】好ましくは、疑似ランダムデータシーケン
スは、8ビットシンボル(ECC符号のシンボルサイ
ズ)を用いて生成される。疑似ランダムデータシーケン
スを生成するための好ましい実施態様は、図3Dに示す
ように、リニアフィードバックシフトレジスタ(LFS
R)を用いることである。LFSR回路は、ライン26
を介してシード値で初期化され、疑似ランダムデータシ
ーケンスは、シード値に応じて異なる。異なるシード値
は、図3Aに示す各DVD積符号に対して用いられる。
【0064】[水平および垂直ECCシンドロームの同
時生成]ECCおよびCRCシンドロームを同時に生成
し、訂正値を用いてECCおよびCRCシンドロームを
更新する回路および流れ図を以下に開示する。本発明の
ECCシンドローム生成器17について2つの実施態様
がある。第1の実施態様では、水平パスの間に水平符号
語に対してシンドロームが生成されるのと同時に、EC
Cシンドロームが、垂直符号パスに対して生成される。
以下にさらに詳細に記載するように、SRAM15は、
垂直シンドロームの生成を容易にする。このように、垂
直符号語に対するECCシンドロームが、水平パスの直
後にSRAM15内において利用できるので、垂直符号
語は、ECCシンドロームを生成するためにデータバッ
ファにアクセスせずに訂正され、それによって、誤り訂
正待ち時間が大幅に減少する。本実施態様は、訂正が、
通常、水平および垂直符号語に対する一回のパスの後完
了する、DVD記憶装置などにおけるように、大量のE
CC冗長を用いる積符号に特に適している。
【0065】ECCシンドローム生成器17の第2の実
施態様は、より少ないECC冗長を用いる積符号に向け
られており、そのため、多数の水平および垂直パスを必
要とする。この実施態様では、SRAM15は、水平お
よび垂直符号語の両方に対してECCシンドロームを記
憶する。ECCシンドロームの両セットは、第1水平パ
スの間に同時に生成され、ECCシンドロームは、訂正
値を用いて更新される。このように、データバッファに
アクセスし、ECCシンドロームを再生成する際の待ち
時間は、水平および垂直パスの両方に対して避けられ
る。誤り訂正は、わずかな時間で行われる。なぜなら、
第1パスに続くパスは、データを訂正するためにデータ
バッファにアクセスすることのみが必要であるからであ
る。
【0066】本発明の第1の実施態様では、垂直誤りシ
ンドロームのみがSRAM15内に記憶されるが、これ
は、図4および図5を参照することによって理解され
る。図4は、各水平パスにおける水平符号語に対する誤
りシンドロームを生成するために用いられる回路を示
す。即ち、水平誤りシンドロームは常に再生成され、S
RAM15内には記憶されない。水平誤りシンドローム
iを生成するために、図4の回路は、以下の生成器多
項式G(x)の因数によって各水平符号語C’(x)の
剰余除算を計算する。
【0067】
【数8】 このとき
【0068】
【数9】 である。この計算を行うために、水平符号語(ECC冗
長を含む)のシンボルは、データバッファ1から連続し
て読み出され、ライン27を介して、リニアフィードバ
ックシフトレジスタ(LFSR)280から289のバン
クに与えられる。好ましい実施態様において、各水平符
号語は、図3Aに示すように、10個のECC冗長シン
ボルを含むので、図4では10個のLFSRが存在する
ことになる。各LFSRには、フィードバックパスにお
いて、対応するαi係数乗算器が設けられている。各L
FSRは、生成器多項式G(x)の各因数について剰余
除算を行い、これによって、上式についての誤りシンド
ロームSiを生成する。図4に開示する回路は、当業者
に周知であり、本発明の新規の局面は、垂直符号語に対
して誤りシンドロームを同時に生成することにある。図
5は、この詳細を示す。
【0069】数学的に、垂直符号語に対する誤りシンド
ロームは、上記の水平符号語に対するのと同様に計算さ
れる。即ち、垂直誤りシンドロームSiは、生成器多項
式G(x)の因数で各垂直符号語C’(x)の剰余除算
を計算することによって生成される。従来のシンドロー
ム生成器は、通常、図4に示すのと同じ回路を用いて垂
直誤りシンドロームを生成する。即ち、垂直符号語(E
CC冗長を含む)のシンボルは、データバッファ1から
連続して読み出され、LFSRのバンクを通してシフト
される。本発明において、垂直誤りシンドロームは、水
平誤りシンドロームの生成と同時に生成され、垂直パス
の間に垂直符号語を読み出すためにデータバッファへア
クセスすることが避けられる。
【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のバンクを有
する。
【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内に記憶される。
【0072】水平パスの間に水平符号語が訂正される場
合、SRAM15内に記憶されている対応する垂直誤り
シンドロームは、訂正されたシンボルを考慮するために
更新されなければならない。図2のシンドローム生成器
17および誤り訂正器18は、好ましくは、隣接する符
号語上で動作する。換言すると、シンドローム生成器1
7が、現在の水平符号語に対して誤りシンドロームを生
成している間、誤り訂正器18は、前の水平符号語に対
してシンボルを訂正する。さらに、誤り訂正は、水平誤
りシンドロームの生成を追跡し、訂正値で垂直誤りシン
ドロームの調整を単純にする。
【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つのシンボ
ルのオフセット)を考慮するのに必要である。
【0074】水平パスの終わりには、垂直符号語に対す
る誤りシンドロームは、完全に生成され、即座に処理に
利用できる。従って、垂直パスを実行するためには、垂
直誤りシンドロームは、SRAM15から単に取り出さ
れ、垂直符号語を訂正するために誤り訂正器18によっ
て使用される。垂直パスの後、積符号のCRCシンボル
が、誤りがまだ残っていることを示す場合、上記のプロ
セスが繰り返される(即ち、水平および垂直誤りシンド
ロームが、次の水平パスにおいて再生成される)。
【0075】本発明の他の実施態様において、水平およ
び垂直シンドロームは両方ともSRAM15内に記憶さ
れる。なぜなら、これらは、第1水平パスにおいて同時
に生成されるからである。このように、上記の実施態様
のように、次の水平パスの間に水平シンドロームを再生
成する必要はない。シンドロームは、水平および垂直パ
スの間に単に取り出され、符号語を訂正するために使用
される。本実施態様は、積符号を訂正するために多数の
パスが必要である場合(例えば、記録密度を増加させる
ことによって、ECC冗長シンボルが減少する場合、ま
たはSNRが減少する場合)に特に有利である。
【0076】図6Aおよび図6Bは、それぞれ、本実施
態様による訂正値を用いて垂直および水平シンドローム
を更新するための回路を示す。これらの回路は、オフセ
ットを考慮する必要がないので、誤り訂正値21を、α
iで乗算する必要がないこと以外は、図5の回路と実質
的に同様に動作する。好ましい実施態様において、第1
水平パスにおいて水平および垂直誤りシンドロームを最
初に生成するための図4および図5の回路は、次のパス
において誤りシンドロームを更新するための図6Aおよ
び図6Bの回路と共用される。制御ライン30を介した
アドレッシングは、どの誤りシンドロームのセット(水
平または垂直)が、適切な時点でSRAM15から取り
出されるかを決定する。
【0077】図7Aは、本発明の動作を説明するフロー
図であり、図示しないコントローラによって実行され
る。第1の水平パス37の間に、水平および垂直ECC
シンドロームおよびデータCRCシンドロームが同時に
生成され、SRAM15内に記憶される。また、第1の
水平パス37の間に、水平符号化語が訂正され、訂正値
を用いて、垂直シンドロームおよびSRAM15内に記
憶された誤りCRCシンドロームが更新される。第1の
および次の水平パスの後、ステップ38で、積符号への
訂正の有効性および完全性が最終CRCシンドロームを
用いて確認される。水平パス後も誤りが残る場合は、ス
テップ40で垂直パスが実行され、垂直符号語が訂正さ
れる。ここでは、訂正値を用いて、シンドロームバッフ
ァ内に記憶された水平シンドロームが更新される。垂直
パスの後、ステップ42で、訂正の有効性および完全性
が最終CRCシンドロームを用いて確認される。垂直パ
ス後も誤りが残る場合は、ステップ44で別の水平パス
が実行され、水平符号語が訂正される。実際の適用に依
存して、訂正はSRAM15内に記憶された水平シンド
ロームを用いて行われる(すなわち、水平シンドローム
はSRAM15内で既に利用可能な場合は再生成されな
い)。水平および垂直パス、ならびにCRC検査は、積
符号が訂正されるかまたは訂正不能と決定されるまで繰
り返される。
【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シンドロームが更新され
る。
【0079】ステップ56でCOL変数が182に等し
いときは、現在の水平符号語のための最終シンボルが読
み出されたことを意味する。ステップ58でループを実
行して、誤り訂正手順(図7Cのフロー図)が前の水平
符号語の処理を終了させるのを待つ。前の符号語の訂正
が終了すると、図7Cのステップ88で、訂正フラグが
非使用中にリセットされる。図7Bのステップ60で訂
正フラグは使用中に設定され、C_ROW変数は現在の
ROWに設定され、ROW変数はインクリメントされ、
COL変数はゼロにリセットされる。この時点で、図7
Cの訂正手順が実行され、現在の水平符号語(すなわち
C_ROWの符号語)が訂正され、同時に、次の水平符
号語(すなわちROWの符号語)のためにECCシンド
ロームが生成される。
【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が水平符号語の次のシンボルにインクリ
メントされ、訂正ループが再実行される。
【0081】ステップ84でC_COLが182に等し
い場合は、水平符号語の最終シンボルが処理されたこと
を意味する。次の垂直パスの間に現在の水平符号語のた
めの誤りシンドロームの更新を迅速に行うために、ステ
ップ86で、これらの誤りシンドロームが最初の符号語
シンボルに再配置される。これは次の計算によって実行
される。
【0082】
【数10】 上記の動作を行う回路について以下により詳細に述べ
る。
【0083】図7Cのステップ88で、訂正使用中フラ
グがクリアされ、ステップ64で、訂正手順は図7Bの
シンドローム生成手順が次の水平符号語のための誤りシ
ンドロームの生成を終了するのを待つ。シンドローム生
成手順および誤り訂正手順は、最終水平符号語が処理さ
れる(すなわち、図7Bのステップ62でROWが20
8に等しくなる)まで平行して実行される。このとき、
ステップ63でFIRST_PASSフラグがクリアさ
れ、制御は図7Aに戻る。図7Aのステップ38で、第
1の水平パス後も誤りが残っている場合は、ステップ4
0で垂直パスが実行される。この手順のフロー図は図7
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しか必要としない。
【0085】図7Dのステップ104で、誤りCRCシ
ンドロームが訂正値に更新され(訂正値がゼロの場合
も)、ステップ105で、C_ROW変数が現在の垂直
符号語の次のシンボルにインクリメントされる。ステッ
プ106で、C_ROWが208に等しくなる、つまり
現在の垂直符号語の最終シンボルが処理されるまで、訂
正ルームが繰り返される。最終シンボルが処理されると
(または、ステップ94で符号語が訂正不能である場
合)、ステップ107で、C_COLの垂直符号語のた
めの誤りシンドロームが符号語の最初のシンボルに再配
置される。これは次の計算によって実行される。
【0086】
【数11】 上記の動作を行う回路について以下により詳細に述べ
る。
【0087】ステップ108で、C_COL変数が次の
垂直符号語にインクリメントされ、C_ROW変数がゼ
ロにリセットされて、次の垂直符号語の最初のシンボル
を指す。ステップ110でC_COLが182に等しく
なり、垂直符号語のすべてが処理されたことを示すま
で、図7Dの訂正手順が繰り返される。
【0088】垂直パスの最後に、ステップ42で積符号
に誤りが残っている場合は、ステップ44で水平訂正パ
スが実行される。水平シンドロームがSRAM15内に
記憶されていない場合、ステップ44で図7Bのフロー
図が実行され、水平ECCシンドロームが再生成される
(FIRST_PASSを偽として)。しかし、SRA
M15内に水平ECCシンドロームが記憶されている場
合は、図7Eのフロー図が実行され、単に訂正システム
の待ち時間を低減させるECCシンドロームが取り出さ
れ処理される。
【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の水平符号語
が訂正される。
【0090】ステップ120で、C_COLのシンボル
が誤りである場合は、分岐を実行して、ステップ122
でデータバッファ内に記憶されたシンボルが訂正され、
ステップ124で訂正値を用いて垂直シンドロームが更
新される。垂直パスの間に水平ECCシンドロームを更
新するのに図6Aを参照して上述したのと同様の方法
で、図6Bの回路を用いて垂直ECCシンドロームが更
新される。C_COLの垂直ECCシンドロームがSR
AM15から取り出され、αi33iで乗算され、訂正値
35iに加算され、SRAM15内に戻される。図7E
のフローチャートには示していないが、訂正が行われな
い場合も(すなわち訂正値がゼロの場合も)符号語の各
シンボルに対して、垂直ECCシンドロームが更新され
る。これにより図6Bのシンドローム更新回路が簡略化
される。すなわち、ECCシンドロームを次の符号語シ
ンボルに位置付けるのに、αi乗算器33iしか必要とし
ない。
【0091】図7Eのステップ126で、誤りCRCが
訂正値を用いて更新され(訂正値がゼロの場合も)、ス
テップ127で、C_COL変数が現在の水平符号語の
次のシンボルにインクリメントされる。ステップ128
で、C_COLが182に等しい場合は、現在の水平符
号語の最終シンボルが処理されたことを意味する。最終
シンボルが処理されると(または、ステップ116で符
号語が訂正不能である場合)、ステップ130で、C_
ROWの水平符号語のための誤りシンドロームが符号語
の最初のシンボルに再配置される。これは次の計算によ
って実行される。
【0092】
【数12】 ステップ132で、C_ROW変数が次の水平符号語に
インクリメントされ、C_COL変数がゼロにリセット
されて、次の水平符号語の最初のシンボルを指す。ステ
ップ134でC_ROWが208に等しくなり、水平符
号語のすべてが処理されたことを示すまで、図7Eの訂
正手順が繰り返される。
【0093】再び図7Aを参照すると、ステップ44で
水平パスが完了した後、誤りが残っている場合は、ステ
ップ40で別の垂直パスが実行される。積符号が訂正さ
れるかまたは訂正不能であると決定されるまで、繰り返
し水平および垂直パスが続けられる。各データセクタの
ためのデータCRCシンドロームおよび誤りCRCシン
ドロームを生成するフロー図を図7Gから図7Iに示
し、CRCシンドロームを生成する回路を図8から図1
1に示す。これらのフロー図および回路は以下のように
動作する。
【0094】[CRCシンドロームの生成および検証]図
3Aの各データセクタのためのCRCシンドロームは2
つの部分、すなわちデータCRCシンドロームおよび誤
りCRCシンドロームで生成される。データCRCシン
ドロームは、非訂正データに対するCRCとして生成さ
れ、誤りCRCシンドロームは、訂正値に対するCRC
として生成される。図3Aの積符号のデータセクタの処
理が終了すると、データCRCシンドロームと誤りCR
Cシンドロームとが組み合わされて最終CRCシンドロ
ームが生成され、定数と比較されて、このセクタに対す
る訂正が有効且つ完全であるかどうかが決定される。上
述のように、データCRCシンドロームおよび誤りCR
Cシンドロームは、ランダム化データに対して積符号を
訂正するのと同時に生成される。すなわち、従来のよう
に訂正後およびデータの非ランダム化後に生成されるの
ではない。
【0095】図1の従来の誤り訂正システムでは、CR
C冗長シンボルCRCREDは、データ多項式D(x)を
生成器多項式G(x)で割った剰余除算として生成され
る。
【0096】
【数13】 CRC冗長シンボルCRCREDをデータ多項式D(x)
に加算した後、疑似ランダムデータシーケンス多項式R
(x)を加算することによってデータをランダム化し、
この結果、符号語多項式C(x)がディスクに書き込ま
れる。
【0097】
【数14】 読み戻されると、受け取られた符号語多項式C’(x)
はECC冗長シンボルを用いて訂正され、訂正された符
号語から疑似ランダムデータシーケンスR(x)が減算
され、以下のCRCシンドロームSCRCが生成される。
【0098】
【数15】 CRCシンドロームSCRCは次にゼロと比較され、訂正
の有効性および完全性が確認される。
【0099】本発明では、CRC検査は、訂正された符
号語を非ランダム化する前に行われる。本発明の実現可
能な改変として、データをランダム化/非ランダム化す
るために用いられる疑似ランダムデータシーケンスにわ
たって、最後のCRCシンドロームをCRCと比較して
もよい。これは、以下の数学関係により理解される。
【0100】
【数16】 ここで、D(x)はデータ多項式、CRCREDはCRC
冗長度、およびR(x)は、データをランダム化するた
めにデータ多項式に加えられる疑似ランダムデータシー
ケンス多項式である。結果としてディスクに書き込まれ
る符号語C(x)は、上述の従来技術の場合と同じであ
る。しかし、データを非ランダム化する前に(すなわ
ち、疑似ランダムデータシーケンス多項式R(x)を減
算する前に)受け取られた符号語C’(x)をCRC生
成器多項式で除算すれば、以下の関係が導かれる。
【0101】
【数17】 ここで、E(x)は誤り多項式である。上記の式は以下
のように書き換えることができる。
【0102】
【数18】 上記の式で、(D(x)・xn-k+CRCRED) mod
G(x)=0である。従って、以下の式となる。
【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シンドローム
を生成するために、データバッファから符号語全体を読
み出す必要はない。
【0104】CRCシンドロームを受け取られた符号語
の訂正と同時に生成するために、本発明は、第1の水平
パスの間に非訂正データに対してデータCRCシンドロ
ームを生成し、また、水平および垂直パス両方の間に訂
正値に対して誤りCRCシンドロームを生成する。図3
Aの積符号のデータセクタの処理が終了すると、データ
CRCシンドロームと誤りCRCシンドロームとが組み
合わされて最終CRCシンドロームを生成し、これが定
数(R(x) mod G(x))と比較される。
【0105】本発明では、データCRCシンドロームお
よび誤りCRCシンドロームは従来の方法では(すなわ
ち、リニアフィードバックシフトレジスタ(LFSR)
を用いて)生成されない。何故なら、垂直パスの間にデ
ータシンボルがデータバッファから順次読み出されるの
ではないからである。そうではなく、データおよびCR
Cシンドロームが、処理中のデータシンボルの位置に対
応するように調整される。この調整は、データCRCシ
ンドロームおよび誤りCRCシンドロームを以下の値で
乗算することによって実行される。
【0106】
【数20】 ここで、kは符号語にわたってシンドロームを「移動さ
せる」シンボルの数を表す。例えば、第1の水平パスの
間にデータCRCシンドロームを生成するとき、データ
CRCシンドロームは、
【0107】
【数21】 で乗算され、これにより、データCRCシンドロームが
現在の水平符号語の次のシンボルに調整される。垂直パ
スの間、誤りCRCシンドロームは、
【0108】
【数22】 で乗算され、これにより、誤りCRCシンドロームが現
在の垂直符号語の次のシンボルに調整される。CRCシ
ンドロームを生成するこの方法の数学的な基礎につい
て、CRC生成器および訂正検証器を実現する回路に関
連して以下に述べる。
【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のフロ
ー図により理解される。
【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により初期化される。
【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に)調整される。
【0112】データセクタの最終水平符号語の処理が終
了すると(すなわち、ステップ154でROW+1 m
od 12が0に等しく、ステップ156でCOLが1
81に等しいとき)、データCRCシンドロームは、対
応するデータセクタの最終シンボルに位置付けられる。
例えば、第1のデータセクタの処理が終了すると、デー
タCRCシンドロームは図3Bのシンボル152に対し
て位置付けられる。上述のように、それぞれの対応する
誤りCRCシンドロームもまた、CRC検査を行う前に
データセクタの最終データシンボルに位置付けられる。
【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内に記憶されるまで続く。
【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シンドロームがロードされる。
【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に戻り、データセクタの次の水平符号語の処理を続け
る。
【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内に再び記
憶される。
【0117】図7Gおよび図7Hの誤りCRC更新手順
は、図3Aの16個のデータセクタすべてに対して誤り
CRCシンドロームが生成され、疑似ランダムシーケン
スにわたってCRCと比較されるまで繰り返される。第
1の水平パスの終了時に、図7Kのステップ254でB
LK_UNCフラグが調べられ、積符号の訂正の有効性
および完全性が確認される。誤りが残っている場合に
は、垂直パスが実行され、図7Dのステップ104で
(または、垂直符号語が飛ばされる場合はステップ95
で)、図7Iの誤りCRC更新手順が実行されて、誤り
CRCシンドロームを、垂直符号語に適用された訂正値
により更新する。
【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にロード
される。
【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列)だけ右に調整さ
れて、現在の垂直符号語が飛ばされる。
【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シンドロームは各データセ
クタの開始点に再配置されているはずである。
【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はスキップされる。
【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に復元される。
【0123】垂直方向のパスの終わりで、BLK_UN
Cフラグが図7Kのステップ254で検査され、積符号
に対する訂正の有効性および完全性が検証される。誤り
がまだ残っていれば、水平方向のパスがもう一度行われ
る。水平方向の符号語のECCシンドロームがSRAM
15に格納されると、図7Eのフロー図が実行され、ス
テップ117および126で誤りCRCシンドロームが
更新される。水平方向の符号語のECCシンドロームが
SRAM15に格納されなければ、図7Cのフロー図が
実行され、ステップ71および81で誤りCRCシンド
ロームが更新される。
【0124】図7Kのフロー図は、積符号が完全に訂正
されているかどうか、または、水平方向もしくは垂直方
向のパスの終わりで積符号が訂正不可能であるかどうか
を判定するステップを示す。ステップ252で、システ
ムは、ECC_BUSYフラグがクリアされるのを待っ
てから、BLK_UNCフラグの検査を行う。ステップ
254でブロック訂正不能フラグ(BLK_UNC)が
セットされず、前の水平方向または垂直方向のパスの間
に訂正不可能な誤りに遭遇しなかったことが示される
と、訂正手順は、従来技術で必要とされるような別のパ
スを行わずに、ステップ258で成功としてフローから
出る。
【0125】ステップ254でBLK_UNCフラグが
セットされると、ステップ256でパスカウント変数P
ASS_CNTがインクリメントされ、PASS_CN
Tが所定の最大値を上回ると、積符号は訂正不可能とな
り、訂正手順はステップ266で失敗としてフローから
出る。ステップ256でPASS_CNTが所定の最大
値未満であり、ステップ260で、前の水平方向および
垂直方向のパスで変更がなされていなければ(訂正が行
われていなければ)、それ以上パスを行っても役に立た
ないため、訂正手順はステップ266で再び失敗として
フローを出る。ステップ260で変更がなされていれ
ば、ステップ262でBLK_UNCフラグがクリアさ
れ、水平方向または垂直方向のパスをもう一度実行する
ことによって、ステップ264で訂正手順が続けられ
る。
【0126】CRCシンドロームSCRCが、積符号の訂
正と同時に計算されるため、訂正手順は、水平方向また
は垂直方向のいずれかのパスの終わりでうまく終了し得
る。従って、本発明では、訂正が終了したかどうかを検
証するために、従来技術で必要とされていた別のパスが
必要でない。さらに、本発明では、データを非ランダム
化して訂正プロセスの終わりにCRCシンドロームS
CRCを生成するために必要とされていた別のパスが必要
でない。従って、本発明は、光記憶装置のスループット
を大幅に増加することにより、従来技術に対する大幅な
改良を提供する。
【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)で割る。
【0128】 G(x)=gii+gi-1i-1+...+g1x+g0 入力多項式D(x)の係数は、LFSRを通してシリア
ルにシフトされる。ここで、シフト数は、入力多項式の
次数に1を加えた数に等しい。剰余、即ち、CRC冗長
は、シフトレジスタの最終状態である。図3Aに示され
るデータセクタの各々についてCRC冗長を生成するた
めに、データのkビットは、多項式P(x)の係数とし
て表される。従って、CRC冗長は、以下のように計算
される。
【0129】 CRC冗長=P(x)・xn-k modG(x) ここで、n−kはCRC冗長記号の数であり、G(x)
は生成多項式である。最後のシフト後のレジスタの内容
がCRC冗長であり、このCRC冗長はその後、ユーザ
データに付加されて、CRC符号語を形成する。このC
RC符号語は、積符号に組み込まれて、その後、ディス
クに書き込まれる。
【0130】読み出し動作の間、ディスクから読み出さ
れたデータが処理され、以下の式に従ってCRCシンド
ロームSCRCが生成される。
【0131】 CRCシンドロームSCRC=C’(x)modG(x) ここで、C’(x)は、ディスクから読み出されたCR
C符号語(CRC冗長を含む)である。従来技術では、
誤り訂正器14が訂正をし終わると、データバッファ1
からデータが読み出され、非ランダム化器4によって非
ランダム化される。非ランダム化されたデータはその後
シリアルに処理されるため、図8の同じLFSR回路を
用いて、上記式によりCRCシンドロームSCRCを生成
することができる。
【0132】本発明では、図7A〜図7Jを参照して説
明したように、CRCシンドロームSCRCは、積符号の
訂正と同時に生成される。従って、データが一連の連続
するビットとして処理されないため、CRCシンドロー
ムSCRCを生成するために図8のLFSR回路を用いる
ことはできない。本発明のCRCシンドローム生成器が
どのようにしてCRCシンドロームSCRCを生成するか
を説明する前に、本発明のCRCシンドローム生成器の
概要を説明する。
【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)である。
【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にロードされる。
【0135】図9のDATACRC回路300およびER
RORCRC回路302は、図10により詳細に示され
る。図9のDATACRC回路300およびERRORCRC
回路302は、受け取ったCRC符号語多項式C’
(x)を、以下のような複数の部分集合多項式の線形結
合として表すことによって、データCRCシンドローム
および誤りCRCシンドロームを生成する。
【0136】 C’(x)=Cj(x)+Cj-1(x)+...+C0(x) ここで、各部分集合多項式Ck(x)は、符号語多項式
C’(x)からの所定のビット数を含む。本明細書に開
示される実施形態では、各部分集合多項式は、符号語多
項式C’(x)の8ビットを含み、以下のように16進
法で表される。
【0137】
【数23】 このようにして、CRCシンドロームSCRCは、概念的
に、以下のように各部分集合多項式のCRCシンドロー
ムの線形結合として生成され得る。
【0138】CRCシンドロームSCRC=C0(x)mo
dG(x)+C1(x)modG(x)+...+C
j(x)modG(x)上記式は、以下のように表すこ
ともできる。
【0139】
【数24】 ここで、
【数25】 は、符号語C’(x)からの8ビットの多項式である
(即ち、
【数26】 である)。本発明で用いられる別の数学的関係は、以下
の式である。
【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制御ラインを介して選択される。
【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に格納される。
【0142】誤りCRCを生成するための図9のERR
ORCRC回路302はまた、図10の回路を含む。図2
の誤り訂正器18によって訂正値が生成されると、この
訂正値は、加算器310でレジスタ308に加えられ
る。乗算器312は、水平方向または垂直方向の符号語
の各記号が処理されているとき、訂正値が生成されるか
どうかに関わらず(即ち、訂正値がゼロであっても)、
レジスタ308の内容への適切なKオフセットの乗算を
続ける。各データセクタの終わりで、データCRCシン
ドロームおよび誤りCRCシンドロームが結合され、最
終CRCシンドロームSCRCJが生成される。上述のよう
に、この最終CRCシンドロームSCRCJは、訂正の有効
であるかどうかおよび完全であるかどうかを判断するた
めに用いられる。
【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行列を掛けること
によって)乗算が行われる。
【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)
調整を実現する。
【0145】図13A〜図13EのVHDLソースコー
ドの残りは、図10のレジスタ308の内容に適切なテ
ーブルを掛ける(即ち、32ビットベクトルに32×3
2行列を掛ける)ことによって、実際の乗算を実行す
る。入力レジスタ即ちベクトルと行列との積が、出力ベ
クトルであり、出力ベクトルの各要素は、テーブル(即
ち、行列)のi番目の行のn個の要素と、レジスタ(即
ち、列入力ベクトル)の対応する成分との積の和を求め
ることによって生成される。この和は、以下のように表
すことができる。
【0146】
【数28】 ここで、yiは、乗算器312の出力ベクトルであり、
ikは、図11のテーブルのi番目の行の32ビットで
あり、xkは、図10のレジスタ308に格納された3
2ビットである。乗算器312からの出力ベクトルyi
は、加算器310で入力ビットに加えられ、その結果
が、レジスタ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シンドロームを格納するよ
うに増加させることができることを認識するであろう。
【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復号化に用いられる適切なデータバイ
トをアサートする。
【0149】DVDモードの場合、SRAM15は、2
56×128バッファとしてアドレス指定される。即
ち、アドレス318の最初の8ビットだけを用いて、メ
モリセル3140〜31415の各々から同じデータバイ
トを選択する。各メモリセルから出力される16データ
バイトは、324で結合され、図5および図6Bに示さ
れるような垂直方向の符号語の16個のECCシンドロ
ームを形成するか、または、図3Aに示されるデータセ
クタについてのCRCシンドロームの4バイトを形成す
る。
【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モードでは使用されない。
【0151】本発明の目的は、本明細書に開示された実
施形態により十分に実現されている。当業者は、本発明
の本質的な機能から逸脱することなく、様々な実施形態
によって本発明の様々な局面を達成することができるこ
とを認識するであろう。例えば、図3Aに示される積符
号は、典型的にはデジタルビデオディスク(DVD)で
用いられるが、本発明は、コンパクトディスク(CD)
に用いられるフォーマットを含む他の積符号フォーマッ
トに等しく適用可能である。さらに、本発明は、積符号
だけでなく、他の多次元符号にも適用され得る。このよ
うに、本明細書に開示された特定の実施形態は例示的な
ものであって、前掲の特許請求の範囲によって適切に解
釈される本発明の範囲を限定することを意味するもので
はない。
【0152】
【発明の効果】本発明によれば、少なくとも以下の効果
が得られる。
【0153】まず、ランダム化データに対してCRC検
査を行うことによって、CRCシンドロームを生成する
前にデータを非ランダム化するためのデータバッファへ
のアクセスに関連する待ち時間が避けられる。
【0154】さらに、PおよびQ符号語の訂正と同時に
実行中にCRCシンドロームを生成することにより、C
RC符号語を処理した直後に、訂正の有効性および完全
性を検査するためにCRCシンドロームを利用可能にす
る。これにより、CRCシンドロームを生成するために
データバッファにアクセスする必要がなくなる。
【図面の簡単な説明】
【図1】CD/DVD光記憶装置において典型的に用い
られる従来の誤り訂正システムのブロック図である。
【図2】ランダムデータに対して実行中にCRCシンド
ロームを生成するCRC生成器および訂正検証器を有す
る、本発明の誤り訂正システムのブロック図である。
【図3A】16個のデータセクタを有するDVD光記憶
装置において典型的に用いられる積符号のフォーマット
を示す図である。
【図3B】図3Aの積符号の最初の2つのデータセクタ
のフォーマットを示す図である。
【図3C】本発明において用いられるデータランダム化
器/非ランダム化器の詳細を示す図である。
【図3D】本発明において用いられるデータランダム化
器/非ランダム化器の詳細を示す図である。
【図4】本発明の第1実施態様による水平符号語誤りシ
ンドロームを生成する詳細な回路を示す図である。
【図5】水平符号語に対する誤りシンドロームの生成と
同時に、垂直符号語誤りシンドロームを生成する詳細な
回路を示す図である。
【図6A】本発明の他の実施態様について、シンドロー
ムバッファが、水平および垂直符号語の両方に対する誤
りシンドロームを記憶するとき、水平および垂直誤りシ
ンドロームをそれぞれ更新する回路を示す図である。
【図6B】本発明の他の実施態様について、シンドロー
ムバッファが、水平および垂直符号語の両方に対する誤
りシンドロームを記憶するとき、水平および垂直誤りシ
ンドロームをそれぞれ更新する回路を示す図である。
【図7A】本発明の誤り訂正システムによって実行され
るステップの概略を示す流れ図である。
【図7B】水平符号語に対する第1パスの間に水平およ
び垂直誤りシンドロームを同時に生成し、積符号に対す
る訂正の有効性および完全性を検査するためのCRCシ
ンドロームを同時に生成するための流れ図である。
【図7C】第1(および次の)水平パスの間水平符号語
を訂正し、訂正値を用いてシンドロームバッファおよび
CRC誤りレジスタにおいて記憶される垂直誤りシンド
ロームを更新するための流れ図である。
【図7D】シンドロームバッファに記憶される垂直誤り
シンドロームを用いて垂直パス中に垂直符号語を訂正
し、訂正値を用いてシンドロームバッファおよびCRC
誤りレジスタに記憶される水平誤りシンドロームを更新
するための流れ図である。
【図7E】シンドロームバッファに記憶される水平誤り
シンドロームを用いて次の水平パス中に水平符号語を訂
正し、訂正値を用いてシンドロームバッファおよびCR
C誤りレジスタに記憶される垂直誤りシンドロームを更
新するための流れ図である。
【図7F】全積符号に対する第1水平パス中にデータC
RCシンドロームを生成するための流れ図である。
【図7G】水平パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
【図7H】水平パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
【図7I】垂直パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
【図7J】垂直パス中に訂正値を用いて誤りCRCシン
ドロームを更新するための流れ図である。
【図7K】CRCデータレジスタの内容とCRC誤りレ
ジスタの内容とを組合せ、水平および垂直パスの終わり
における訂正の有効性および完全性を検査するための最
終CRCシンドロームを生成する流れ図である。
【図8】書込み動作中にCRC冗長を生成し、読出し動
作中にCRCシンドロームを生成するのに用いられる従
来のリニアフィードバックシフトレジスタ(LFSR)
を示す図である。
【図9】CRCシンドロームのデータパートを計算する
ためのDATACRC回路と、CRCシンドロームの誤り
部分を計算するためのERRORCRC回路と、DATAC
RCレジスタとERRORCRCレジスタとを組合せて、ラ
ンダムデータパターンに対するCRCと等しい定数と比
較される最終CRCシンドロームSCRCを生成するため
の回路とを有するCRC訂正検証回路のブロック図であ
る。
【図10】図9のDATACRC/ERRORCRC回路の詳
細なブロック図である。
【図11】乗算器がxK MOD G(x)を計算するた
めのマトリクスの一般的な形態を示す図である。
【図12A】SRAMの構造、ならびにCDフォーマッ
ト用および積符号に対する部分シンドロームを記憶する
ためのC1/C2符号、およびDVDフォーマット用の
CRC検証符号を復号化する間にどのようにSRAMが
構成されるかを示す図である。
【図12B】本発明の好ましい実施態様における垂直E
CCシンドロームおよびCRC検証シンドロームのSR
AMマッピングを示す図である。
【図13A】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
【図13B】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
【図13C】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
【図13D】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
【図13E】32ビットCRC生成多項式G(x)につ
いてのxK modG(x)の乗算を実現するための実際
のテーブルを生成するVHDLソースコードを示す図で
ある。
【符号の説明】
1 データバッファ 3 ライン 4 ランダム化器/非ランダム化器 7 C1符号化器/復号化器 8 C2符号化器/復号化器 9 インターリーブ器/非インターリーブ器 15 SRAM 16 P/Q復号化器 17 ECC/シンドローム生成器 18 誤り訂正器 19 CRC生成器および訂正検証器 20 ライン 21 ライン
───────────────────────────────────────────────────── フロントページの続き (71)出願人 595158337 3100 West Warren Aven ue,Fremont,Californ ia 94538,U.S.A.

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 ディスク記憶媒体から読み出されたラン
    ダム化されたデータ中の誤りを訂正するための誤り訂正
    プロセッサであって、該ランダム化されたデータは、該
    ランダム化されたデータに対して生成されたECC冗長
    記号と、ランダム化される前のデータに対して生成され
    たチェック記号とを含み、該誤り訂正プロセッサは、 (a)該ECC冗長記号を用いて、該ランダム化された
    データ中の誤りを訂正するためのECC復号化器と、 (b)該ランダム化されたデータに応答して、検証シン
    ドロームを生成するためのシンドローム生成器と、 (c)該検証シンドロームを所定の値と比較して、該ラ
    ンダム化されたデータに対する訂正の有効性(validit
    y)および完全性を検証するための訂正検証器と、 (d)該訂正検証器が、該ランダム化されたデータに対
    する訂正が有効で且つ完全であることを示した後、該ラ
    ンダム化されたデータを非ランダム化するための非ラン
    ダム化器とを含む、誤り訂正プロセッサ。
  2. 【請求項2】 (a)前記ランダム化されたデータが、
    交差する符号語の第1および第2の組を含み、 (b)前記ECC復号化器が、該第1の組の符号語およ
    び該第2の組の符号語をシーケンシャルなパス(pass)
    で処理することによって、該ランダム化されたデータ中
    の誤りを訂正する、請求項1に記載の誤り訂正プロセッ
    サ。
  3. 【請求項3】 (a)前記シンドローム生成器が、前記
    第1の組の符号語に対する第1のパスの間にデータ検証
    シンドロームを生成し、 (b)該シンドローム生成器が、前記ランダム化された
    データを訂正するために前記ECC復号化器によって生
    成される訂正値を用いて、誤り検証シンドロームを生成
    し、 (c)該シンドローム生成器が、該データ検証シンドロ
    ームを該誤り検証シンドロームと結合して、前記所定の
    値と比較される最終検証シンドロームを生成する、請求
    項2に記載の誤り訂正プロセッサ。
  4. 【請求項4】 (a)前記ECC復号化器が前記ランダ
    ム化されたデータを処理するのと同時に、前記シンドロ
    ーム生成器が部分検証シンドロームを生成し、 (b)該シンドローム生成器が、該ECC複号化器によ
    って処理されている特定のランダム化されたデータ記号
    の位置に応じて、該部分検証シンドロームを調整するた
    めのオフセットコントローラを含む、請求項2に記載の
    誤り訂正プロセッサ。
  5. 【請求項5】 前記ECC復号化器が、ランダム化され
    たデータ記号を訂正するための訂正値を生成し、 (a)前記オフセットコントローラが、前記訂正された
    データ記号の位置に応じて前記部分検証シンドロームを
    調整し、 (b)前記シンドローム生成器が、該訂正値を用いて該
    部分検証シンドロームを更新する、請求項4に記載の誤
    り訂正プロセッサ。
  6. 【請求項6】 (a)前記チェック記号が、有限領域の
    生成多項式G(x)に従って生成され、 (b)前記オフセットコントローラが、前記部分検証シ
    ンドロームにXK modG(x)を掛けることによって
    該部分検証シンドロームを調整し、ここで、Kはオフセ
    ット値であり、mod演算子は剰余除算(modulo divis
    ion)を行う、請求項4に記載の誤り訂正プロセッサ。
  7. 【請求項7】 (a)前記チェック記号が、有限領域の
    生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式に基づく、請求項
    1に記載の誤り訂正プロセッサ。
  8. 【請求項8】 (a)前記非ランダム化器が、所定のシ
    ード(seed)値に従ってランダムパターンを生成し、 (b)該ランダムパターンが、前記ランダム化されたデ
    ータと結合されて、該ランダム化されたデータを非ラン
    ダム化する、請求項1に記載の誤り訂正プロセッサ。
  9. 【請求項9】 (a)前記チェック記号が、有限領域の
    生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式および前記ランダ
    ムパターンに基づく、請求項8に記載の誤り訂正プロセ
    ッサ。
  10. 【請求項10】 前記チェック記号が、巡回冗長符号
    (CRC)に従って生成される、請求項1に記載の誤り
    訂正プロセッサ。
  11. 【請求項11】 ディスク記憶媒体から読み出されたラ
    ンダム化されたデータ中の誤りを訂正する方法であっ
    て、該ランダム化されたデータは、該ランダム化された
    データに対して生成されたECC冗長記号と、ランダム
    化される前のデータに対して生成されたチェック記号と
    を含み、該方法は、 (a)該ECC冗長記号を用いて、該ランダム化された
    データ中の誤りを訂正するステップと、 (b)該ランダム化されたデータに応答して、検証シン
    ドロームを生成するステップと、 (c)該検証シンドロームを所定の値と比較して、該ラ
    ンダム化されたデータに対する訂正の有効性および完全
    性を検証するステップと、 (d)該訂正検証器が、該ランダム化されたデータに対
    する訂正が有効で且つ完全であることを示した後に、該
    ランダム化されたデータを非ランダム化するステップと
    を包含する、方法。
  12. 【請求項12】 (a)前記ランダム化されたデータ
    が、交差する符号語の第1および第2の組を含み、 (b)前記訂正するステップは、該第1の組の符号語お
    よび該第2の組の符号語をシーケンシャルなパスで処理
    することによって、該ランダム化されたデータ中の誤り
    を訂正する、請求項11に記載の方法。
  13. 【請求項13】 前記検証シンドロームを生成するステ
    ップが、 (a)前記第1の組の符号語に対する第1のパスの間に
    データ検証シンドロームを生成するステップと、 (b)前記ランダム化されたデータを訂正するための訂
    正値を用いて、誤り検証シンドロームを生成するステッ
    プと、 (c)該データ検証シンドロームを該誤り検証シンドロ
    ームと結合して、前記所定の値と比較される最終検証シ
    ンドロームを生成するステップとを包含する、請求項1
    2に記載の方法。
  14. 【請求項14】 前記検証シンドロームを生成するステ
    ップが、 (a)前記ランダム化されたデータを処理してECC誤
    りシンドロームを生成するのと同時に、部分検証シンド
    ロームを生成するステップと、 (b)該ECC誤りシンドロームを生成するために処理
    されている特定のランダム化されたデータ記号の位置に
    応じて、該部分検証シンドロームを調整するステップと
    を包含する、請求項12に記載の方法。
  15. 【請求項15】 前記検証シンドロームを生成するステ
    ップが、 (a)訂正されたデータ記号の位置に応じて前記部分検
    証シンドロームを調整するステップと、 (b)前記データ記号を訂正するために用いられる前記
    訂正値で、該部分検証シンドロームを更新するステップ
    とをさらに包含する、請求項14に記載の方法。
  16. 【請求項16】 (a)前記チェック記号が、有限領域
    の生成多項式G(x)に従って生成され、 (b)前記部分検証シンドロームを調整する前記ステッ
    プが、該部分検証シンドロームにXK modG(x)を
    掛けるステップを包含し、ここで、Kはオフセット値で
    あり、mod演算子は剰余除算を行う、請求項14に記
    載の方法。
  17. 【請求項17】 (a)前記チェック記号が、有限領域
    の生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式に基づく、請求項
    11に記載の方法。
  18. 【請求項18】 (a)前記非ランダム化器が、所定の
    シード値に従ってランダムパターンを生成し、 (b)該ランダムパターンが、前記ランダム化されたデ
    ータと結合されて、該ランダム化されたデータを非ラン
    ダム化する、請求項11に記載の方法。
  19. 【請求項19】 (a)前記チェック記号が、有限領域
    の生成多項式に従って生成され、 (b)前記所定の値が、該生成多項式および前記ランダ
    ムパターンに基づく、請求項18に記載の方法。
  20. 【請求項20】 前記チェック記号が、巡回冗長符号
    (CRC)に従って生成される、請求項11に記載の方
    法。
  21. 【請求項21】 ディスク記憶媒体から読み出されたデ
    ータ中の誤りを訂正するための誤り訂正プロセッサであ
    って、該データは、ECC冗長記号とチェック記号とを
    含み、該誤り訂正プロセッサは、 (a)該ECC冗長記号を用いて、該データ中の誤りを
    訂正するためのECC復号化器と、 (b)該データに応答して、検証シンドロームを生成す
    るためのシンドローム生成器と、 (c)該検証シンドロームを所定の値と比較して、該デ
    ータに対する訂正の有効性および完全性を検証するため
    の訂正検証器と、 (d)該訂正検証器が、該ランダム化されたデータに対
    する訂正が有効で且つ完全であることを示した後、該デ
    ータを非ランダム化するための非ランダム化器とを含
    む、誤り訂正プロセッサ。
  22. 【請求項22】 ディスク記憶媒体から読み出されたラ
    ンダム化されたデータ中の誤りを訂正するための誤り訂
    正プロセッサであって、該ランダム化されたデータは、
    該ランダム化されたデータに対して生成されたECC冗
    長記号と、ランダム化される前のデータに対して生成さ
    れたチェック記号とを含み、該誤り訂正プロセッサは、 (a)該ディスクから読み出された該ランダム化された
    データを格納するためのデータバッファと、 (b)該データバッファから該ランダム化されたデータ
    を受け取るように接続され、該ランダム化されたデータ
    中の誤りを訂正するために、ECC誤りシンドロームお
    よび訂正値を生成するためのECC復号化器と、 (c)該ECC復号化器が該データバッファから該ラン
    ダム化されたデータを受け取るのと同時に該データバッ
    ファから該ランダム化されたデータを受け取るように接
    続され、検証シンドロームを生成するためのシンドロー
    ム生成器と、 (d)該検証シンドロームを所定の値を比較して、該ラ
    ンダム化されたデータに23対する訂正の有効性および
    完全性を検証するための訂正検証器と、 (e)該データバッファから該ランダム化されたデータ
    を受け取るように接続され、該訂正検証器が、該ランダ
    ム化されたデータに対する訂正が有効で且つ完全である
    ことを示した後、該ランダム化されたデータを非ランダ
    ム化するための非ランダム化器とを含む、誤り訂正プロ
    セッサ。
  23. 【請求項23】 前記検証シンドロームが、巡回冗長符
    号(CRC)に従って生成される、請求項22に記載の
    誤り訂正プロセッサ。
  24. 【請求項24】 前記シンドローム生成器が、ランダム
    化されたデータ記号が訂正されるときに前記ECC復号
    化器によって生成される訂正値を用いて、前記検証シン
    ドロームを更新する、請求項22に記載の誤り訂正プロ
    セッサ。
JP32462398A 1997-11-14 1998-11-16 コンピュータ記憶装置においてランダムデータに対してcrcシンドロームを生成するeccシステム Expired - Lifetime JP4346135B2 (ja)

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 (ja) 1999-10-15
JP4346135B2 JP4346135B2 (ja) 2009-10-21

Family

ID=25517706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32462398A Expired - Lifetime JP4346135B2 (ja) 1997-11-14 1998-11-16 コンピュータ記憶装置においてランダムデータに対してcrcシンドロームを生成するeccシステム

Country Status (4)

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

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 (zh) * 2017-07-05 2020-04-21 爱迪德技术有限公司 数据保护
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
CN1555061A (zh) * 1998-02-25 2004-12-15 松下电器产业株式会社 纠错装置
FR2776115B1 (fr) * 1998-03-13 2000-07-21 Thomson Multimedia Sa Dispositif de correction d'erreurs et lecteur de disque optique comportant un tel dispositif
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 (ko) * 1999-07-20 2006-08-11 삼성전자주식회사 스크램블러
JP3450756B2 (ja) * 1999-09-08 2003-09-29 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
KR20010081335A (ko) * 2000-02-12 2001-08-29 구자홍 차세대 고밀도 기록 매체를 위한 디지털 데이터의 오류정정 부호화 방법
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6384747B1 (en) 2000-10-23 2002-05-07 Cirrus Logic, Inc. Data encoding to provide run-length control in a data storage system
TW476932B (en) * 2000-10-23 2002-02-21 Acer Labs Inc Decoding system for disk and the method thereof
US6714144B1 (en) 2000-10-23 2004-03-30 Cirrus Logic, Inc. Data randomization 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 (ja) * 2004-03-31 2005-10-20 Sanyo Electric Co Ltd 誤り箇所の検出方法、その方法を利用する誤り検出回路、誤り訂正回路、および再生装置
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
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
US20070260960A1 (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 (ja) * 2007-08-28 2011-12-07 日本電気株式会社 並列巡回符号生成装置および並列巡回符号検査装置
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 (ja) 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
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
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
US8543888B2 (en) * 2009-06-09 2013-09-24 Microchip Technology Incorporated Programmable cyclic redundancy check CRC unit
JP2011008879A (ja) * 2009-06-26 2011-01-13 Toshiba Storage Device Corp ディスクドライブ装置
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
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
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
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
WO2012092902A2 (zh) * 2012-02-14 2012-07-12 华为技术有限公司 一种译码方法和译码装置
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
KR20130136341A (ko) * 2012-06-04 2013-12-12 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
US8930780B2 (en) * 2012-08-28 2015-01-06 Lsi Corporation Systems and methods for non-zero syndrome based processing
KR101990972B1 (ko) * 2012-10-04 2019-06-19 삼성전자 주식회사 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러
KR102002925B1 (ko) 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US9104591B2 (en) 2012-12-11 2015-08-11 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
KR102133542B1 (ko) * 2013-12-03 2020-07-14 에스케이하이닉스 주식회사 랜더마이저 및 디랜더마이저를 포함하는 메모리 시스템
KR102108386B1 (ko) 2013-12-23 2020-05-08 삼성전자주식회사 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US10388400B2 (en) 2015-05-18 2019-08-20 SK Hynix Inc. Generalized product codes 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
US10498366B2 (en) 2016-06-23 2019-12-03 SK Hynix Inc. Data dependency mitigation in parallel decoders for flash storage
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 (ja) * 2017-03-24 2021-03-10 キオクシア株式会社 復号装置
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
DE102018104233A1 (de) * 2017-06-09 2018-12-13 Taiwan Semiconductor Manufacturing Co., Ltd. Verfahren zum erkennen eines adressendecodierfehlers und adressendecodierfehler-erkennungssystem
US20210141764A1 (en) * 2019-11-13 2021-05-13 Western Digital Technologies, Inc. Metadata verification in a distributed storage system
KR20220139199A (ko) 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
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 (ja) * 1990-12-21 1992-08-12 Sony Corp エラー訂正方法
US5412667A (en) * 1993-07-08 1995-05-02 Commodore Electronics Limited Decoder for cross interleaved error correcting encoded data
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
US5446743A (en) * 1993-11-04 1995-08-29 Cirrus Logic, Inc. Coefficient updating method and apparatus for Reed-Solomon decoder
FR2712760B1 (fr) * 1993-11-19 1996-01-26 France Telecom Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés.
US5592498A (en) * 1994-09-16 1997-01-07 Cirrus Logic, Inc. CRC/EDC checker system
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 (zh) * 2017-07-05 2020-04-21 爱迪德技术有限公司 数据保护
CN111052089B (zh) * 2017-07-05 2024-03-19 爱迪德技术有限公司 数据保护
US11052900B2 (en) 2017-12-20 2021-07-06 Toyota Jidosha Kabushiki Kaisha Hybrid vehicle

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4346135B2 (ja) コンピュータ記憶装置においてランダムデータに対してcrcシンドロームを生成するeccシステム
KR100573356B1 (ko) 코드워드데이터를저장하기위한데이터버퍼와에러신드롬을저장하기위한신드롬버퍼를사용하는ecc시스템
JPH11282702A (ja) Dvd記憶装置におけるecc誤りシンドローム及びcrc検証シンドロームの同時生成
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 (ja) 積符号の誤り訂正および並行検査
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 (ko) 에러정정방법,에러정정장치,데이터판독장치,및데이터맵핑방법
US5428630A (en) System and method for verifying the integrity of data written to a memory
JP3239863B2 (ja) データ復号処理装置および方法
US20030147167A1 (en) Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems
US6772385B2 (en) Error-correcting device and decoder enabling fast error correction with reduced circuit scale
KR19990028201A (ko) 10 비트 리드-솔로몬 에러 정정 모듈을 위한 전용 alu구조
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
JP2001211086A (ja) 選択的可変冗長性を具備する誤り訂正符号を与えるシステム及び方法
JP3777246B2 (ja) ディスク記憶装置内の誤りを訂正するためのシステムおよび誤り制御チップ、ならびに符号化および復号化の方法
JP2001292066A (ja) 誤り訂正装置および誤り訂正方法
JP3992443B2 (ja) 符号化方法、復号方法、符号化回路、復号回路、記憶装置、記憶媒体、通信装置
KR100200052B1 (ko) 고밀도 컴팩트 디스크용 오류정정 복호기
JP2004152337A (ja) 記録再生装置及びコンピュータプログラム並びに送受信システム
JP3519684B2 (ja) 誤り訂正符号を用いたデータ処理装置
JP2000306342A (ja) 誤り訂正符号化装置
JPH1141113A (ja) 誤り訂正装置

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