JP4833173B2 - 復号化器、符号化・復号化装置及び記録再生装置 - Google Patents

復号化器、符号化・復号化装置及び記録再生装置 Download PDF

Info

Publication number
JP4833173B2
JP4833173B2 JP2007234267A JP2007234267A JP4833173B2 JP 4833173 B2 JP4833173 B2 JP 4833173B2 JP 2007234267 A JP2007234267 A JP 2007234267A JP 2007234267 A JP2007234267 A JP 2007234267A JP 4833173 B2 JP4833173 B2 JP 4833173B2
Authority
JP
Japan
Prior art keywords
parity
bit
error
likelihood
decoder
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.)
Active
Application number
JP2007234267A
Other languages
English (en)
Other versions
JP2008136173A (ja
Inventor
利雄 伊東
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007234267A priority Critical patent/JP4833173B2/ja
Priority to US11/977,266 priority patent/US8055977B2/en
Priority to KR1020070108564A priority patent/KR100935842B1/ko
Priority to EP07119455A priority patent/EP1926102A1/en
Publication of JP2008136173A publication Critical patent/JP2008136173A/ja
Application granted granted Critical
Publication of JP4833173B2 publication Critical patent/JP4833173B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • 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/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • 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/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/11Error 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 using multiple parity bits
    • 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
    • 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/27Coding, 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 using interleaving techniques
    • 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • H03M13/455Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding using a set of erasure patterns or successive erasure decoding, e.g. generalized minimum distance [GMD] decoding
    • 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/63Joint error correction and other techniques
    • H03M13/6343Error control coding in combination with techniques for partial response channels, e.g. recording

Landscapes

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

Description

本発明は、記録再生装置や通信装置に使用される誤り訂正符号を含むデータの符号化装置、復号化装置、符号化・復号化装置及び記録再生に関し、特に、ECCコードを付与したデータブロックの誤り訂正のための符号化装置、復号化装置、符号化・復号化装置及び記録再生装置に関する。
磁気ディスク装置等の記録再生装置や通信系の分野においては、低品質の伝送信号や記録再生信号からデータを再生する際に、データ再生の信頼性を向上するため、最尤シーケンス検出(Maximunm−Likelihood Sequence Detection)を用いたデータ復号技術と、ECC(Error Correction Code)を用いた誤り訂正技術が広く普及している。
このECC符号として、RS(Reed Solomon)符号が利用されている。最尤検出器から出力されたビット列は、媒体ノイズや回路ノイズの影響のため、数ビットに誤った値が代入される。ECCは、誤りを持つビット列の誤り訂正を行い、誤り訂正されたビット列を出力する。 例えば、磁気ディスク装置では、ECCの訂正に失敗した場合、リトライを行う必要があるが、リトライは極力避けたい。そこで、最尤検出器からいくつかの候補列を受け取って、候補列をECCで復号できるかを順番に試すことが提案されている(例えば、特許文献1参照)。
図37乃至図39は、リードソロモン符号に基づく誤り訂正動作の説明図、図40は、従来の最尤シーケンスを用いた誤り訂正回路のブロック図である。
先ず、符号化を説明する。図37に示すように、誤り訂正数tのリードソロモン符号は、次数2tの生成多項式から生成される。例えば、符号化に用いるガロア体をGF(2の3乗)とし、誤り訂正数tを「1」とすると、リードソロモン符号の生成多項式は、原始元αを用いて、例えば、次式(1)のように表現される。
Figure 0004833173
この例では、α=1から開始し、3ビットのビット列が1シンボルとして扱われ、ECC符号化では、2t(=2)のシンボルのパリティ列が情報列に付加される。例えば、図37の情報列を符号化する場合、情報列(ビット表示)”001“,”110“,”101“は、ガロア体表示における1、αの五乗、αの四乗にそれぞれ対応付けられる。ここで、j番目のシンボルは、送信語列の多項式におけるxの項の係数を表す。従って、ビット列(情報列)は、多項式x+α+αを表す。
ECC符号化は、図38に示すように、ビット列が表す多項式を、式(1)の生成多項式で割り算し、得られた剰余多項式αx+αを表すパリティ列を、ビット列に付加する。この剰余多項式は、xの1次及び0次の項の係数がともにαであるから、図37に示すようなパリティ列が付加され、5シンボルからなる送信語列が生成される。
この送信語列が、例えば、磁気ディスクに記録され、読み出された場合に、図39に示すように、誤りを含む受信列が、ECC復号器に入力される可能性がある。この受信語列は、次式(2)で示される。
Figure 0004833173
図40に示すように、受信側の誤り訂正回路では、最尤検出器20は、入力信号から最尤シーケンスに従い、複数の候補データ列を作成する。データ保存部31は、作成された複数の候補データ列を格納する。ECC復号器22は、シンドローム計算部41と、誤り位置多項式計算部42と、チェーンサーチ実行部43と、誤り値計算部44を備える。
シンドローム計算部41は、ECC復号器22に入力されたデータ列のシンドローム計算式(以下で説明する)を計算する。誤り位置多項式計算部42は、シンドローム多項式から誤り位置多項式(以下で説明する)を計算する。誤り位置多項式の計算アルゴリズムとしては、例えば、ユークリッド法又はバーレカンプマッシ(Berlekamp Massey)法が用いられる(例えば、非特許文献1,2参照)。
チェーンサーチ実行部43は、前述の誤り位置多項式を用いて、チェーンサーチを実行し、データ列上の誤りのある位置(誤り位置)を決定する。誤り値計算部44は、誤り位置の誤った値を正しい値に訂正する。その後、復号判定部32は、誤り値計算部44から出力される訂正後のデータ列の正当性をチエックし、正当でなければ、訂正失敗と判定して、データ保存部31に次の復号候補データ列を出力するように指示する。
先ず、シンドローム計算部41は、例えば、図39の受信語列に対し、次式(3)によりシンドローム多項式を計算する。
Figure 0004833173
式(3)において、シンドロームs(i=1,2、....,2t)は、式(1)の生成多項式G(x)のi番目の根を、受信語多項式Y(x)に代入して得られる値であり、シンドローム多項式S(x)は、シンドロームsを、xi−1の項の係数とする多項式である。受信語列に誤りが含まれていなければ、すべてのsが「0」となる。
次に、誤り位置多項式計算部42は、バーレカンプマッシ(Berlekamp Massey)法に従い、シンドローム多項式S(x)から、次式(4)の誤り位置多項式C(x)を計算する。
Figure 0004833173
次に、チェーンサーチ実行部43は、式(4)の誤り位置多項式C(x)を用いて、C(α)の値(j=0,1,2,3,4)を計算し、C(α)=0となる位置jを、誤り位置として、出力する。図39の例では、C(α)=1+α−4・α=0となるので、4番目のシンボルに誤りがあることが検出できる。
次に、誤り値計算部44は、式(3)のシンドローム多項式S(x)と式(4)の誤り位置多項式C(x)を用いて、所定のアルゴリズムで4番目のシンボルの正しい値を計算し、そのビット列を訂正する。ここでは、正しい値「1」が求められ、図39に示す受信語列における4番目のシンボルが、αから「1」に訂正される。
例えば、図41に示すように、磁気ディスク装置では、誤り訂正数t=20となるリードソロモン符号が用いられる。ECC符号化では、10ビットを1シンボルとし、40シンボルのパリティ列が、1セクタのビット列(4096ビット=410シンボル)の前に挿入される。この場合、シンドローム多項式S(x)と誤り位置多項式C(x)は、例えば、下記式(5)、(6)で表される。
Figure 0004833173
Figure 0004833173
特開平11−330985号公報 E. R. Berlekamp, "Algebraic Coding Theory", McGraw-Hill Book Co., pp.176-199 and pp. 218-240, New York, 1968 J. L. Massay, "Shift-register Synthesis and BCH Decoding", IEEE Transactions on Information Theory, vol. IT-15, pp. 122-127, 1969
一方、図42に示すように、ブロック長が長い場合には、rインターリーブ方式を用いることがある(図30では、r=4インターリーブの例である)。即ち、ブロックをr個のブロックに分割し、分割したブロックに対し、前述の多項式により、RS符号(ECC符号)を計算し、付加する。
誤り訂正性能の面では、rインターリーブ方式より、1インターリーブ方式の方が良い。即ち、図41に示したように、1インターリーブ方式は、前述の符号化、復号化原理によれば、1ブロック全体を対象として、RS符号を作成するので、誤り性能が1ブロック全体となり、高い。一方、rインターリーブ方式は、図42に示したように、1ブロックのr分の1を対象として、RS符号を作成するので、誤り性能が1ブロックのr分の1となり、1インターリーブ方式より低い。
例えば、1ブロックを4kbyte(=32,000ビット)とした場合には、ECC符号として、1シンボル当たり12ビットのRS符号を使用する必要がある。即ち、1シンボルを10ビットとすると、対象ビット数は、210−1=1023シンボル(=10230ビット)となり、1ブロック全体の訂正ができない。
一方、1シンボルを12ビットとすると、対象ビット数は、212−1=4092シンボル(=49104ビット)となり、1ブロック全体の訂正が可能である。しかしながら、1シンボルのビット数を増加すると、ECCの符号器、復号器、それに付随するバッファ等が増加し、回路規模が、現行の1シンボル10ビットの場合の数倍になる問題がある。
逆に、現行の1シンボル10ビットECCを使用する場合は、1インターリーブ構成は、使用できないので、4インターリーブ構成で、行う必要がある。しかし、前述のように、誤り訂正性能は、1インターリーブ構成より劣化する問題がある。
従って、本発明の目的は、回路規模の増加と、誤り訂正性能の劣化を防止するための復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
又、本発明の他の目的は、複数インターリーブ構成でECC符号化しても、誤り訂正性能の劣化を防止するための復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
更に、本発明の更に他の目的は、複数インターリーブ構成でECC符号化・復号化して、少ない回路規模で実現するとともに、誤り訂正性能の劣化を防止するための復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
この目的の達成のため、本発明の復号化器は、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブされた各ブロックのデータ列から生成された誤り訂正符号のパリティと、前記データ列と前記誤り訂正符号のパリティとからなる誤り訂正符号語の複数のビット数毎に、作成されたパリティビットとを、前記誤り訂正符号語に付加された符号化データ列を復号化する復号化器であって、受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する。
又、本発明の符号化・復号化装置は、データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する符号化器と、受信した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する復号化器とを有する。
又、本発明の記録再生装置は、記憶媒体にデータを書き込み且つ読み取るヘッドと、前記記憶媒体に書き込むべきデータ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加して、前記ヘッドに出力するパリティ符号器と、前記ヘッドから読み出した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する。
更に、本発明は、好ましくは、前記軟出力復号器の符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、前記ECC復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行う。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記復号失敗時に、前記ECC復号器から前記復号を失敗した前記ブロックの識別子を受け、前記失敗したブロックの前記パリティビットによる誤り検出された前記mビットのデータを対象として、前記尤度による訂正を行う。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記ECC復号器の前記誤り訂正符号語のm×nビット毎にパリティビットを計算し、且つm×nビット毎の計算されたパリティビットと前記分離された対応するパリティビットとの比較により、前記誤り検出された前記mビットのデータを特定する。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記パリティビットの比較により、前記誤り検出された前記計算されたパリティビットと前記分離されたパリティビットとの加算結果からパリティラー値を計算し、前記mビットのデータの誤り発生位置を特定する。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記誤り検出されたmビットの各ビットの尤度から誤り候補ビットを特定する。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記mビット単位に、前記mビットの各ビットの尤度から尤度の比較的低いビット位置を前記訂正候補として、抽出する。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記パリティビットの生成多項式に従い、前記パリティラー値に対応するエラー候補位置のテーブルを有し、前記パリティラー値で前記テーブルを参照し、且つ前記参照結果と前記尤度とから、前記mビットのデータの誤り発生位置を特定する。
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記mビットのデータの誤り発生位置のデータをフリップし、前記データ保存器の前記データ列を更新する。
データ列を、m(m≧2)ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、所定のビット数毎に、パリティビットを付加した連接型符号化データを作成するので、複数ブロックにインターリーブして誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、軟出力復号器の尤度とパリティチエック結果で、ECC復号データ列を訂正するため、訂正性能劣化も防止できる。
以下、本発明の実施の形態を、記録再生システム、エラー候補抽出器、符号化器、ECC復号器、他の符号化器、他のECC復号器、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
(記録再生システム)
図1は、本発明の一実施の形態の磁気ディスク装置の記録再生システムのブロック図である。図1に示すように、磁気ディスク装置の記録再生系は、大きく分けて、ハードディスクコントローラ(HDC)203と、リードチャネル(RDC)202と、プリアンプ(又はヘッドIC)201からなる。
先ず、記録時には、記録データは、HDC203内のCRC符号器237で、CRC符号(Cyclic Redundancy Code)が付加される。その後に、記録符号器236が、MTR符号(Maximum Transition Run Code)やRLL(Run Length Limited)符号などの拘束条件が満たされるデータ列に変換する。そして、ECC符号器235は、図2以下で後述するように、インターリーブして、RSパリティ列を付加する。
更に、パリティ符号器234は、図2以下で説明するように、ECCとは別のエラー検出を行うための2ビットパリティを求め、求めた全ての2ビットパリティを、ECC符号化データ列に付加する。
パリティが付加されたECC符号化されたデータ列は、RDC202に入力する。RDC202内の記録補償器229は、磁化反転が隣接する箇所で、反転間隔を多少広げる補償処理を行う。そして、RDC202内のドライバ228は、記録補償されたデータ列をプリアンプ201に出力する。プリアンプ201では、ドライバ212が、図示しない記録ヘッド(ライトヘッド)のライト電流を発生し、記録ヘッドを駆動して、図示しない磁気ディスクに記録を行う。
一方、再生の際は、プリアンプ201のアンプ211が、再生ヘッド(リードヘッド)からのアナログ電圧を増幅した後、RDC202に出力する。RDC202のサーマルアスペリティ検出処理部221は、サーマルアスピリテイ処理した後、可変利得アンプ(VGA)222が、振幅調整する。
その後、ローパスフィルタ(LPF)223が、振幅調整されたリード信号の高周波数域をカットし、A/Dコンバータ(ADC)224が、そのアナログ出力をデジタル信号へ変換する。その後、FIR(Finite Impulse Response)フィルタ225が、PR(Partial Response)波形等化を行った後、軟出力検出器226に入力する。
軟出力検出器(復号器)226は、SOVA(Soft Output Viterbi),NPSOVA(Noise Predictive Soft Output Viterbi),BCJR(Bahl,Cocke,Jelinek and Raviv Algorithm)などの軟出力検出器(復号器)で構成され、最尤復号を行う。
第1のパリティ・尤度訂正器227は、検出器226が求めた尤度を使用して、誤り候補の位置情報を求め、尤度と位置情報のテーブルを作成する。軟出力検出器226から0又は1に硬判定された復号列は、HDC203に送られる。ECC復号器230は、4インターリーブ構成での誤り訂正を行う。
復号が成功した場合は、記録復号器231が、記録符号器236の符号化と逆の復号化を行い、CRC復号器232が、CRC復号し、再生データとして出力する。
又、ECC復号器230で復号が失敗した場合は、第2のパリティ・尤度訂正器233にデータが入力される。第2のパリティ・尤度訂正器233は、第1のパリティ・尤度訂正器227の尤度と位置情報テーブルを利用して、ECCの訂正が失敗したブロックの訂正を行う。
第2のパリティ・尤度訂正器233で訂正されたデータは、ECC復号器230へ入力され、ECCによる誤り訂正を行う。ECC復号器230で復号が成功した場合は、前述のように、記録復号器231、CRC復号器232を経て、再生データとして出力される。一方、ECC復号が、失敗した場合は、第2のパリティ・尤度訂正器233に再度データが入力され、ブロックの訂正が行われる。
このようにECCによる誤り訂正が失敗した場合は、尤度情報を使用して、第2のパリティ・尤度訂正器233とECC復号器230での反復を繰り返すことによって、訂正能力を高めていくことができる。
ここで、ECC復号器230での誤り訂正を何回か繰り返す場合があるため、図9以下で説明する高速判定ECC回路を使用する。これにより、計算量が削減できる。
又、本発明では、第1のパリティ・尤度訂正器227は、軟出力検出器226から復号列の各ビットの位置と、その尤度を受け、パリティが付加されたデータ列の単位で、尤度が低い(誤りの可能性の高い)ビット位置をエラー候補として、抽出し、テーブルを作成する。
即ち、エラー候補として、誤りの可能性の高いビット位置を抽出するため、ECC復号器230に、有効な訂正ができるエラー候補を提供できる。又、エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、ECC復号器230が、尤度の低い順にエラー候補を取り出すことができるように、尤度順にソートする回数を削減でき、計算量削減に有効である。
(符号化器)
次に、図1のECC符号器及びパリティ符号器の構成を説明する。図2は、図1のECC符号器235及びパリティ符号器234のブロック図、図3は、図2のインターリーブ部の動作説明図、図4は、図2のECC符号器の動作説明図、図5乃至図7は、図2のパリティ符号器の動作説明図である。
図2に示すように、ECC符号器235は、インターリーブ部102、ECC符号器104、デ・インターリーブ部106からなる。インターリーブ部102は、図3に示すように、4kByteセクタのデータ列1000を、4つのブロック1001,1002,1003,1004にインターリーブする。このインターリーブを行う際、セクタのデータ列1000を、20ビットのビット間隔でインターリーブを行う。
ECC符号器104は、4つに分割された各ブロック1001,1002,1003,1004に対し、ECC符号化を行い、図4に示すように、各ブロック1001〜1004に、RS符号のパリティ1011,1012,1013,1014を付加する。ECC符号器104は、復号が失敗したという情報を、誤り位置多項式を求めた際に判定できるように、tシンボル訂正に対し、2t+1シンボルのRSパリティを付加することが望ましい。
即ち、誤り訂正数tのリードソロモン符号の生成多項式は、下記式(7)で表される。但し、式(1)と異なり、αから開始して、表している。
Figure 0004833173
従って、誤り訂正数t=20の場合は、次式(8)のような40次の生成多項式が用いられる。
Figure 0004833173
これに対し、本実施の形態では、誤り位置多項式計算で復号の成否を早期に判定するため、生成多項式の次数を増やして、次式(9)のような41次の生成多項式を用いる。
Figure 0004833173
即ち、ECC符号化に、41シンボルのパリティ列が生成され、1セクタのビット列(410シンボル)の前に挿入される。
デ・インターリーブ部106は、図4に示すように、RSパリティが付加された各ブロックに対し、20ビットの間隔で、デ・インターリーブ処理を行い、1系列のデータ列(RS符号列)へ変換する。
例えば、4kByteのセクタデータ列を4分割すると、1ブロックは、1kByteとなる。誤り訂正数tを55シンボルとすると、2t+1シンボル(=111シンボル)のRSパリティを付加する。
次に、パリティ符号器234は、図5に示すように、RS符号列1100を、80ビット(=20ビット*4)の間隔で分割する。分割された各ブロック(80ビット)に対し、図5に示すように、2ビットのパリティ1110,1111,・・・、111m、111nを求め、全パリティをRS符号列の後に挿入し、データを出力する。
パリティ符号器234のパリティの求め方を、図6に示す。尚、図6では、図5の最初の80ビットブロックのデータからパリティを求める例を示す。図6に示すように、80ビットブロックのデータ「11001・・・」を、3ビットの「111」で割った余りをパリティ列として、求める。ここで、3ビット「111」は、多項式(x+x+1)を示している。
図7は、ECC符号器235とパリティ符号器234で生成される符号の構成を示す。20ビットのビット間隔でのインターリーブにより生成された4つのブロック1001,1002,1003,1004に、ECC符号器により、RSパリティ1011,1012,1013,1014が付加される。
又、20ビット×4(4ブロック)=80ビットの縦方向に対し、パリティ符号器234により、2ビットパリティ1110〜111nが計算され、付加される。このため、ここで、生成される符号は、横方向がRS符号による誤り訂正符号であり、縦方向がマルチパリティ(2ビットパリティ)による誤り検出符号からなる連接型の符号の構成になっている。
このように、4分割ブロックを、20ビットでのインターリーブで作成し、誤り訂正及び検出符号を連接型符号とし、4分割したブロックの横方向に、RS符号による誤り訂正符号を、縦方向に、マルチパリティによる誤り検出符号を適用する。これを、セクタデータ列で見ると、横方向に80ビット毎に、誤り検出符号が設けられ、80ビット単位で誤りを検出でき、且つ20ビット(80ビットの1/4)の4インターリーブ単位で、RS符号が設けられ、4インターリーブ単位で、誤り訂正が可能となる。
これにより、ECC復号失敗時に、訂正位置を、局所的に特定でき、利得向上に寄与する。ここで、20ビット単位で、2ビットパリティとしたのは、符号化効率と訂正能力とバランスで採用したものであり、2ビットパリティなら、20ビット単位のインターリーブが最適である。又、他の値を採用でき、例えば、4ビットパリティなら、30ビット単位のインターリーブが最適である。
(復号化装置)
図8は、図1の復号化装置の基本構成のブロック図、図9は、図8の詳細ブロック図である。
図8に示すように、軟出力検出器226は、0又は1の硬判定ビット列と、各ビットの尤度(ソフトインフォーメーション)を出力する。ECC復号器(RS復号器)230は、後述するように、硬判定ビット列を受け、4インターリーブし、各ブロックをECC復号し、復号成功なら、復号列を出力する。
パリティ・尤度訂正器227,233は、後述するように、軟出力検出器226からの尤度から尤度の低いビット位置を選択且つ保持し、RS復号器230の復号失敗により、保持した尤度の低いビット位置から誤り位置を絞り、ビット列のその位置をフリップして、RS復号器230に入力する。復号失敗時に、これを反復し、訂正能力を高める。
図9で詳細に説明する。ECC復号器230は、RS符号部・パリティ部の分割部110、インターリーブ部112、データ保存・更新部114、ECC復号器116、デ・インターリーブ部118からなる。
ECC復号器116は、シンドローム計算部260と、シンドローム保存部262と、シンドローム値更新部264と、誤り位置多項式作成部266と、チェーンサーチ実行部268と、誤り値計算部270とを備える。
シンドローム値計算部260が、検出器226からの復号列のシンドロームを計算し、シンドローム値保存部262に計算したシンドローム値を保存する。誤り位置多項式作成部266は、作成されたシンドローム多項式から誤り位置多項式を計算し、訂正能力を超えているかを判定する。
シンドローム値更新部264は、パリティ・尤度訂正器233により、データ更新されたビット列の更新部分のシンドローム値を計算し、シンドローム値保存器262に保存されたシンドローム値を更新する。
チェーンサーチ実行部268は、誤り位置多項式作成部266で、復号が失敗しないと判断された場合に、チェーンサーチにより誤り位置を求める。誤り値計算部270は、チェーンサーチで復号が失敗と判断されない場合に、即ち、チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
このように、前のシンドローム値を保存しておき、復号失敗時に、パリティ・尤度訂正器233で訂正された復号列の訂正部分のシンドローム値を計算して、前のシンドローム値を更新する。このため、訂正されたビット列は、シンドローム値を1から計算する必要がないので、計算量を削減できる。
また、後述するように、誤り位置多項式を計算した段階で、復号が失敗したかどうかを判定できるため、復号が失敗した場合は、次のビット列の復号に移ることができ、計算量が削減される。
次に、パリティ・尤度訂正器は、第1のパリティ・尤度訂正器227と、第2のパリティ・尤度訂正器233とからなる。第1のパリティ・尤度訂正器227は、後述するように、検出器226からの各ビットの尤度を受け、4インターリーブの各ブロック毎に、尤度の低いビット位置を抽出する。
第2のパリティ・尤度訂正器233は、後述するように、パリティ計算部120と、パリティ値チエック部122と、エラー候補テーブル保存器124と、エラーフリップ部126とからなる。
(第1のパリティ・尤度訂正器)
図10は、第1のパリティ・尤度訂正器227のブロック図、図11は、図10のRS符号部の尤度とパリティ部の尤度の分割動作の説明図、図12は、図10の候補選出部の動作説明図、図13は、図10のパリティ部ソート部の動作説明図、図14は、図10のエラー候補テーブルの説明図である。
図10に示すように、第1のパリティ・尤度訂正器227は、尤度をブロック部の尤度と、パリティ部の尤度に分割する分割部130と、分割された尤度を保持するスタックテーブル132と、ブロック部の尤度の低いビット位置を抽出する候補抽出部134と、パリティ部の尤度を低い順にソートするパリティ部ソート部136とを有する。
分割部130は、図9の検出器(NPSOVA)により求められた各ビットの尤度を示すビット尤度列を、図11に示すように、20ビットブロックの尤度と2ビットパリティの尤度に分割し、スタックテーブル132に格納する。この分割による各ブロックは、図11に示すように、RS符号列を、縦方向・横方向で分割した1成分(20ビット)に対応する。
候補選出部134は、各20ビットブロックの尤度から尤度の低いビットの位置を抽出する。図12に示すように、スタックテーブル132には、20ビットブロックの尤度値が対応するビット位置に格納されている。尤度の絶対値が高いほど、そのビットは、正しい確率が高いことを示し、低いと、そのビットは、誤っている確率が高いことを示す。誤っている確率の高いビットを抽出したいので、尤度の低いビットのみを扱う。
候補選出部134は、もっとも尤度の絶対値が小さいビット位置と、2番目に尤度の絶対値が小さいビット位置を抽出する。図12では、スタックテーブル132の20ビットの尤度値から、もっとも尤度の絶対値が小さい(0.3)のビット位置「8」と、2番目に尤度の絶対値が小さい(0.6)のビット位置「2」、「3」と、それらの尤度の絶対値「0.3」、「0.6」を抽出した状態を示す。
又、パリティソート部136は、スタックテーブル132の2ビットパリティの尤度値から、尤度の絶対値の小さい順に並べ、リストを作成する。
図14は、図10のエラー候補テーブル124を示し、選出部134、ソート部136で、作成したリストを、図11の縦方向に従って、格納したテーブルが作成される。図14に示されたテーブル124は、20×4=80ビットブロックでの誤っている確率の高いビット位置のテーブルである。エラー候補テーブル124に、各80ビットブロックでの誤り確率の高いビット位置テーブルを作成し、これらの結果を第2のパリティ・尤度訂正器233に出力する。
また、図14のように、尤度の絶対値が同じになる連続ビット列は同一の行に保存され、このビット列が1つの誤り候補となる。図14に示したように、尤度の絶対値が同じになるためには、等化ターゲット(線形等化のパラメータ)として、例えば、PR(Partial response)−4のように、対称となるようなものを用いると良い。
このようなエラー候補保存器124の上位エラー候補を利用して、以下で説明するECC復号器230が、効率的にエラー訂正を行う。
(ECC復号器)
図15は、図9のECC復号器の分割動作説明図、図16は、図9のインターリーブ動作説明図、図17は、図9の復号成功時のデ・インターリーブ動作説明図、図18は、図9の復号失敗時のデ・インターリーブ動作説明図である。
図9のECC復号器230の動作を、図15乃至図18を用いて、説明する。図9に示したように、検出器(NPSOVA)226の尤度値を“0”または“1”の値に硬判定された結果が、ECC復号器230に代入される。
ECC復号器230では、分割部110が、図15に示すように、硬判定されたビット列を、RS符号部1100と、2ビットパリティ部1111〜111nに分割する。分割されたすべての2ビットパリティ1111〜111nは、第2のパリティ・尤度訂正器233のパリティ値チエック部122へ出力される。
次に、インターリーブ部112は、分割されたRS符号部1100を、図16に示すように、20ビット間隔で、インターリーブを行い、4つのRSブロック1001、1011〜1004,1014に分割する。即ち、図4の符号化のデ・インターリーブと逆の置き換えを行う。
分割された各RSブロックは、データ保存・更新部114に格納された後、ECC復号器116により復号される。復号の結果、すべてのRSブロックの復号が成功した場合は、デ・インターリーブ部118は、図17に示すように、各RSブロックからRSパリティ1011〜1014を除去した後に、20ビット間隔でのデ・インターリーブ処理を行い、セクタデータ1000を出力して、終了する。
復号の結果、いくつかのRSブロックでの復号が失敗した場合は、ECC復号器230から復号が失敗したすべてのRSブロック番号を、第2のパリティ・尤度訂正器233に出力する。また、デ・インターリーブ部118は、図18に示すように、各RSブロック1001〜1014からRSパリティ1011〜1014を除去せずに、20ビット間隔でのデ・インターリーブ処理を行い、結果である元のRS符号部1100を、第2のパリティ・尤度訂正器233に出力する。
次に、ECC復号器116を説明する。シンドローム計算部260は、式(3)に従い、データ列のシンドローム多項式(多項式の係数s1,s2,・・・)を計算し、計算したシンドローム多項式を誤り位置多項式計算部266に出力する。この時、2t+1個のシンドローム係数si(i=1,2,....,2t,2t+1)の値を計算する。これとともに、2回目以降の候補の復号処理で利用するため、シンドローム計算部260は、計算したシンドローム多項式をシンドローム値保存部262に格納する。
誤り位置多項式計算部266は、バーレカンプマッシ(BM)法により、シンドローム多項式を計算する。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。このとき、i番目の多項式Ci(x)を求めるには、i番目のシンドロームsiの値が必要となる。
この誤り位置多項式計算部266は、2t番目の多項式C2t(x)と、2t+1番目の多項式C2t+1(x)を、生成する。そして、誤り位置多項式計算部266は、2t番目の多項式C2t(x)と、2t+1番目の多項式C2t+1(x)の係数を比較し、2つの多項式が一致するか否かを判定する。
バーレカンプマッシ法では、データ列に含まれる誤りの数がk個(k≦t)の場合、2k+1回目以降の繰り返しでは、多項式が更新されず、C2k(x)以降の多項式は、全て同じとなるという性質がある。従って、C2t(x)とC2t+1(x)が一致すれば、誤りの数は、高々t個であり、誤り訂正能力の範囲内であることが判る。逆に、C2t(x)とC2t+1(x)が一致しなければ、誤り訂正能力を超えていることになる。
従って、C2t(x)とC2t+1(x)が一致すれば、この候補の訂正が成功すると判定し、データ列、シンドローム多項式、誤り位置多項式、及び判定結果をチェーンサーチ実行部268に出力する。又、C2t(x)とC2t+1(x)が異なる場合は、候補の訂正が失敗したと判断して、現在復号中のRSブロックに対し、復号失敗のフラグを立て、第2のパリティ・尤度訂正器233のそのブロック番号を出力する。
このように、1シンボルのパリティを余分にデータ列に付加することにより、バーレカンプマッシ法の多項式を1つ余分に計算することにより、復号途中でデータ列の訂正失敗を検出できる。なお、数シンボルのパリティを余分に付加するフォーマットを用いても良い。
復号が失敗しないと判断された場合は、チェーンサーチにより誤り位置を求める。即ち、チェーンサーチ実行部268は、誤り位置多項式C(x)を用いて、チェーンサーチを実行し、データ列上の全ての位置jについて、C(α)の値(j=0,1,2,3,4、...、n)を計算する。尚、C(α)=0となる位置jが、誤り位置である。
更に、チェーンサーチ実行部268は、シンドローム多項式と、C(α)の値を用いて、訂正の成否を判定し、訂正が成功すると判定した場合は、チェーンサーチ実行部268が、受け取ったデータ列、シンドローム多項式、誤り位置多項式を、誤り値計算部270に出力する。又、訂正が失敗すると判断した場合には、現在復号中のRSブロックに対し、復号失敗のフラグを立て、第2のパリティ・尤度訂正器233のそのブロック番号を出力する。
チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。即ち、誤り値計算部270は、シンドローム多項式と誤り位置多項式を用いて、所定のアルゴリズムで、データ列の誤り位置の誤った値を、正しい値に訂正する。そして、訂正後のデータ列を、デ・インターリーブ部118に出力する。
即ち、復号が成功した場合には、誤り訂正されたデータ列が、ECC復号器230から出力される。訂正が失敗して、2回目以降の復号をする必要が生じた場合は、シンドローム値保存部262に格納された情報を用いて、復号処理を行う。
次に、後述するように、第2のパリティ・尤度訂正器232で、エラー箇所をフリップすることにより、データ更新・保存部114のデータを更新し、保存する。この更新されたRSブロックに対し、データを更新された箇所に対応して、シンドローム値更新部264が、シンドロームを計算し、保存部262に保存されていたシンドローム値を更新し、且つ更新したシンドローム多項式を、誤り位置多項式計算部266に出力する。
以下、前述のように、誤り位置多項式計算部266で、誤り位置多項式を作成し、復号が失敗と判断された場合は、現在のRSブロックに対し、復号が失敗したというフラグを立て、第2のパリティ・尤度訂正器232に出力する。同様に、復号が失敗しないと判断された場合は、チェーンサーチ実行部268により誤り位置を求める。更に、チェーンサーチで復号が失敗と判断された場合は、同様に、現在のRSブロックに対し、復号が失敗したというフラグを立て、第2のパリティ・尤度訂正器232に出力する。チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
以上のように、フリップされたビット列は、シンドローム値を1から計算する必要がないので計算量を削減できる。また誤り位置多項式を計算した段階で復号が失敗したかどうかを判定できるため、復号が失敗した場合は次の工程に移ることができ計算量が削減される。このように、このECC復号器116は、従来のECC復号器より、計算量が削減でき、高速な復号が可能となる。
(第2のパリティ・尤度訂正器)
図19は、第2のパリティ・尤度訂正器のエラーフリップ部126のブロック図、図20は、図9のパリティチエックによる誤り位置特定動作を説明図、図21は、図19のパリティラー値の説明図、図22は、図19のパリティブロックの位置番号の定義の説明図、図23は、エラー発生位置対応テーブルの説明図、図24は、図19のビットフリップ動作の説明図である。
第2のパリティ・尤度訂正器233に、復号が失敗したすべてのRSブロック番号と、デ・インターリーブ処理が行われたRS符号部1100(図18参照)が入力された後、図2のパリティ符号器と同様にパリティを求める。
すなわち、図9のパリティ計算部120は、図5に示したように、RS符号部1100を、80ビットの間隔で分割し、分割された各ブロックに対し、図5、図6のように、2ビットのパリティを再計算する。
パリティ値チエック部122は、分割部110からのパリティ符号器で生成されたパリティ値と再計算によるパリティ値が一致するかパリティ値チェックを行う。図20は、パリティチェックの状態図を示す。図20の例では、最初のパリティブロック列でのパリティ値が異なる値をもつ。
パリティチェックで、値が一致しているパリティブロック列は、誤りなしと判断し、値が一致していないパリティブロック列は、誤りがあると判断する。ここでは、最初のパリティブロック列が、誤りがあると判断される。
図19に示すように、図9のエラーフリップ部126は、パリティチエック結果と復号失敗ブロック番号とからブロック内でのエラー位置を絞り込むブロック内エラー特定部140と、パリティラー値を計算するパリティラー値計算部142と、図23で説明するエラー開始位置を格納するエラー開始位置テーブル144と、パリティラー値からテーブル144を参照して、エラー位置を特定し、エラー位置のビット値を反転するビットフリップ部146とを有する。
図20の例に示すように、RSブロック列では、2番目のRSブロック1002の復号が失敗し、他のRSブロック1001,1003,1004では、復号が成功している。ブロック内エラー特定部140は、復号が成功しているRSブロックでは、誤りがないと判断し、復号が失敗したRSブロック1002に誤りがあると判断する。この例では、2番目のRSブロック1002に誤りがあると判断する。
そこで、ブロック内エラー特定部140は、誤りは、最初のパリティブロック列と2番目のRSブロック1002内にあると断定できる。即ち、図20の灰色の領域に誤りがあると特定する。このように、誤りのある領域を、パリティ値が一致しないパリティブロック列と、復号が失敗したRSブロック列との共通部分に絞り込むことができる。
更に、図20では、灰色の20ビットブロックに誤りがあると特定したが、誤りの位置のさらなる絞込みを行う。そこで、パリティ値に注目する。図21に示すように、パリティラー値計算部142は、パリティ符号器で生成されたパリティ値と、再計算によるパリティ値の足し算を行った結果を計算し、パリティラー値とする。
図22に示すように、パリティブロックの位置番号を定義するとき、図23に示すような、パリティラー値からエラーの発生位置を絞り込む関係(テーブル)がある。即ち、図6で説明したパリティ作成ルールでは、3ビットの「111」で80ビットのデータ列を割り、余りの2ビットをパリティとしている。2ビットのパリティでは、パリティが一致しない場合は、パリティラー値は、「01」、「10」、「11」の3通りである。
このため、3つのケースで、エラー開始位置を1ビットエラー、2ビットエラーで求めると、図23のように、3の倍数で、異なる開始位置が得られる。このため、パリティラー値からエラーの発生位置を絞り込むことができる。この例では、図21のように、パリティラー値が「10」であるから、1ビットエラーが発生している場合は、図23のように、図22の位置番号0,3,6・・・のいずれかの場所に発生し、それ以外での場所では、発生しえないことがわかる。
また、2ビットエラーが発生している場合は、図22の位置番号1,2,4,5,7,8・・・のいずれかの場所に発生し、それ以外での場所では発生しえないことがわかる。このパリティラー値によるエラーの位置の絞込みについては、3の倍数ビットのエラー以外のすべてのエラーに対して絞込みを行うことができる。
ビットフリップ部146は、パリティラー値から図23のエラー開始位置テーブルを参照して、1ビットエラー開始位置と、2ビットエラー開始位置を求める。そして、エラー候補テーブル124と、パリティラー値から求めたエラー開始位置とから、エラー箇所を特定し、エラー箇所のビットのフリップを行う。
例えば、パリティブロック列のエラー候補テーブル124を、図14の内容であるとする。図14と図22の位置情報を対応させるため、図14の位置情報に対し、20ビットブロック番号i(i=1,2,3,4)に対し,図14の位置jを、図22の位置20(i−1)+jに対応させる。
図20の例では、灰色の領域以外に誤りは発生していないため、20ビットブロック番号1,3,4は使用しなくて良い。図14のエラー候補テーブル124では、20ビットブロック2の2番目、即ち、図22の22番目の場所に、1ビットエラーが発生している可能性がもっとも高いということを示している。
しかし、図23では、パリティラー値が「10」の場合、22番目の場所に、1ビットエラーは発生しないことを示している。そこで、ビットフリップ部146は、エラー候補テーブル124の示す候補は間違いと判断して、次に誤っている可能性が高い25,26番目(図14の尤度0.5の位置5,6)の場所に、2ビットエラーが発生していると判定する。
図23でも、パリティラー値が「10」の場合、25,26番目の場所の2ビットエラーの発生がありうることを示している。このため、ビットフリップ部146は、25,26番目の場所に、2ビットエラーが発生していると判断し、図24に示すように、25,26番目のビットの値をフリップ(反転)する。
他の誤りのあるパリティブロック列に対しても、同様の処理を行い、エラーフリップのされた2番目のRSブロックに、保存器114のデータを更新し、ECC復号器116で誤り訂正を行う。2回目以降の誤り訂正では,1回目で復号が失敗したRSブロックのみを行えばよく、すべてのRSブロックの訂正を行う必要がない。
又、図14のエラー候補テーブル124において、パリティのビットが、もっとも誤っている可能性が高い(尤度が最も低い)ことを示す場合がある。この場合、ビットフリップ部146は、先に、テーブル124に示すパリティ値のビットをフリップし、再計算されたパリティ値と同じ値になるかを判定し、同じ値なら、パリティのビットに誤りがあったと判断して、パリティのビットをフリップする。そして、この場合は、RSブロックの訂正は行わない。
また,複数のRSブロックで復号が失敗する場合がある。この場合,図14のエラー候補テーブル124からRSブロックの復号が失敗したブロックに対応するすべての20ビットブロックに対し、1番目に誤っている可能性の高い候補と、2番目に誤っている可能性の高い候補を取り出す。そして、それらの候補と、図23の開始位置とを比較して、フリップする候補を選びだす。また、1,2番目の両候補とも、図23の開始位置と合わない場合は、候補なしと判断して、フリップ操作は行わず、終了する。
このようして、エラー位置を絞り込むことができるため、1インターリーブのECCを超える性能を有することが確認できた。
更に、図9のECC復号器116と組み合わせることにより、ECC復号器の訂正不可の判定の高速化と、復号対象のデータ列のシンドローム作成を高速化でき、計算量の少ない復号が可能となる。
(他の符号化器)
前述の図2のパリティ符号器234は、図5に示したように、RS符号列1100を、80ビット(=20ビット*4)の間隔で分割し、分割された各ブロック(80ビット)に対し、2ビットのパリティ1110,1111,・・・、111m、111nを求め、全パリティをRS符号列の後に挿入し、データを出力していた。
そして、図7に示したように、4分割ブロックを、20ビットでのインターリーブで作成し、誤り訂正及び検出符号を連接型符号とし、4分割したブロックの横方向に、RS符号による誤り訂正符号を、縦方向に、マルチパリティによる誤り検出符号を適用していた。
しかしながら、他の縦方向の分割方法も適用できる。図25は、本発明の他のパリティ付加方法の説明図、図26は、図25の付加方法によるパリティ符号器234で生成される符号の構成の説明図である。
図25に示すように、RS符号列1100を、30ビットなどの任意の間隔で分割し、パリティ1110,1111、・・・・を付加する。図5では、4分割単位の80ビットの間隔で、パリティを付加していたが、このように、80ビット(m×nビット)間隔に限らず、他のビット数の間隔で、パリティを付加しても良い。
図25の場合、パリティ符号器234で生成される符号の構成は、図26に示すように、2つのRS符号列1001,1002との間にパリティを挿入する形となる。また、2つにRS符号列1002,1003との間では、20ビットのビット間隔の間にパリティが付加される。
図27は、本発明の更に他のパリティ付加方法の説明図、図28は、図26の付加方法によるパリティ符号器234で生成される符号の構成の説明図である。
図27に示すように、先ず、RS符号列1100を、20ビットのビット間隔でインターリーブを行い、2つのブロックA,Bを作成する。そして、各ブロックA,Bを40ビットの間隔で分割し、このブロックを40ビット間隔で、パリティ1110,1111、・・・を作成する。この場合、パリティ符号器234で生成される符号の構成は、図28に示すように、離れたRSブロック1001と1013に対して、パリティ1110が付加されていることを意味する。
このように、インターリーブして、20ビット分離したブロック間で、パリティを作成しても良い。
次に、図6では、パリティ符号器234のパリティの求め方を、80ビットブロックのデータ「11001・・・」を、3ビットの「111」で割った余りをパリティ列として、求めていた。ここで、3ビット「111」は、多項式(x2+x+1)を示している。
この実施例では、より高速にパリティを計算できる他のパリティ生成器234を説明する。図29は、高速パリティ演算の説明図、図30は、図29の実現のためのパリティ生成器234の構成図である。
図29に示すように、パリティ多項式x^2+x+1の場合、図6で説明した80ビットブロックのデータ列を、3ビットずつ、上段、中段、下段に振り分ける。そして、振り分けられたビット値について、上段、中段、下段のそれぞれに、XOR演算を行う。図29では、XOR演算の結果が、上段、中段、下段で、それぞれ「0」、「1」、「0」となる。
次に、XOR演算の結果から、2ビット値をそれぞれ選択する。上段の結果が、「0」の場合は、2ビット値「00」を選択し、「1」の場合は、2ビット値「10」を選択する。図29の例では、上段の結果が「0」なので、「00」を選択する。
中段の結果が「0」の場合は、2ビット値「00」を選択し、「1」の場合は、2ビット値「11」を選択する。図29の例では、中段の結果が「1」なので、「11」を選択する。下段の結果が「0」の場合は、2ビット値「00」を選択し、「1」の場合は、2ビット値「01」を選択する。図29の例では、下段の結果が「0」なので、「00」を選択する。
そして、それぞれ選択した2ビット値を、ビットごとに、XOR演算を行う。図29の例では、00+11+00=11となる。そして、このXORした結果が求めるべきパリティの値となる。
即ち、図6の式において、80ビットの1つのデータブロックを複数のブロックに分割し、分割した各ブロックのXORを計算し、計算結果をXORすることにより、図6の計算式と同じ結果が得られる。図6の手法では、80ビットブロックのデータからパリティを求めるために、約240回のXORが必要なのに対し、この実施の形態のパリティ符号化方式では、82回のXORで済み、計算量が約1/3に減らすことができる。
また,80ビットブロックのデータからパリティを求めるために、この実施の形態のパリティ符号化方式では、80ビットブロックのデータの両端から計算を開始することも出来、また、80ビットブロックのデータを、複数のブロックに分割して、分割データの両端から計算を開始することも出来るため、パラレル処理に有効である。これに対し、図6に方法は、データの両端から計算を開始することは難しく、パラレル処理に不向きである。
図30は、本発明の他のパリティ付加器234のブロック図である。図30に示すように、インターリーブ回路234−1は、80ビットブロックのデータ列を、3ビットずつ、上段、中段、下段に振り分ける。XOR演算器234−2,234−3,234−4は、振り分けられたビット値について、上段、中段、下段のそれぞれに、XOR演算を行う。
2ビット変換部234−5,234−6,234−7は、各々、XOR演算器234−2,234−3,234−4の結果から、図29で説明した2ビット値をそれぞれ選択する。そして、XOR回路234−8は、各変換結果をXORして、パリティを生成する。
(他の復号化器)
次に、本発明の他の復号化器を説明する。図31は、本発明の他の復号化方法の説明のためパリティラーと復号失敗ブロックの関係図、図32は、図31の場合のエラーテーブルの説明図である。
図8で説明したように、パリティ・尤度訂正器227,233は、復号が失敗したすべてのRSブロック番号とデ・インターリーブ処理が行われたRS符号部が入力された後、パリティ符号器と同様にパリティを求める。すなわち、図7のようにRS符号部を80ビットの間隔で分割し、分割された各ブロックに対し、図20のように、2ビットのパリティを求める。
パリティを再計算した後、パリティ符号器(又は高速パリティ符号器)で生成されたパリティ値と、再計算によるパリティ値が一致するか、パリティ値チェックを行う。図31は、パリティチェックによる復号結果の図を示す。
図31の例では、すべてのRSブロックの復号が失敗している点で、図20、図22の例とは異なる。また、図31では、最初のパリティブロック列でのパリティ値が異なる値をもつ。パリティチェックで、値が一致しているパリティブロック列は、誤りなしと判断し、値が一致していないパリティブロック列は、誤りがあると判断する。
従って、図31では、最初のパリティブロック列は、誤りがあると判断する。また復号が成功しているRSブロックでは、誤りがないと判断し、復号が失敗したRSブロックに誤りがあると判断するため、この例では、すべてのRSブロックに誤りがあると判断する。図31では、灰色の領域に誤りがある。
また図32のエラー候補テーブル124を見ると、図14と異なり、どのRSブロックの誤り位置候補も、誤っている確率が非常に大きい。即ち、尤度が低い。このようなケースの場合は、従来のように、1つの誤り候補を絞り込んでも、誤訂正をしている可能性が高い。
図33、図34は、本発明の他の復号化方法の説明図である。そこで、このようなケースに対しては、図33に示すように、パリティブロック列全体に、イレージャフラグ(図33のE)を立てる。又は、図34に示すように、パリティブロック列の一部にイレージャフラグ(図34のE)を立てる。
そして、RS(ECC)復号器で、イレージャとして訂正を行う。このほうが、結果として誤り性能を向上させることができる。
図35は、本発明の他の実施の形態の復号化器の説明図、図36は、本発明の他の実施の形態の復号化器のブロック図である。図中、図9で示したものと同一のものは、同一の記号で示してある。
図9で説明したシンドローム値保存部262とシンドローム値更新部264とを有しない従来のECC復号器116は、通常の訂正に加え、消失訂正を行うことができる。
この実施の形態では、この従来のECC復号器116を使用して訂正を行う。消失訂正を行う場合は、図36に示すように、ECC復号器116に、RSブロックに加え、消失位置情報を入力する必要がある。
図36の消失位置検出部128が、消失位置情報を求める。図35を用いて、説明する。消失位置検出部128は、パリティ値チエック部122の結果が、不一致であり、且つエラー候補テーブル124のエラーブロックの候補の尤度が低い場合に、その消失位置を検出し、出力する。
図35では、上記の符号化とあわせるため、RSブロックは、800シンボル(1kByteビット)のブロックと、40シンボルのRSパリティからなると仮定する。ここで、RSブロックの右から0,1・・・、839とシンボル番号を振るとき、消失位置検出部128が、838番目と839番目の位置に、消失を立てる場合、ECC復号器116に、消失位置のシンボル番号(838,839)を入力する。また、838番目、839番目の各シンボルのデータ値は、すべて「0」の値を代入しておく。
次に、ECC復号器116を説明する。シンドローム計算部260は、前述の式(3)に従い、データ列のシンドローム多項式(多項式の係数s1,s2,・・・)を計算し、計算したシンドローム多項式を、誤り位置多項式計算部266に出力する。この時、2t(=40)個のシンドローム係数si(i=1,2,....,2t,)の値を計算する。
また、消失多項式計算部272は、入力された消失位置のシンボル番号(838、839)から、以下式(10)の消失多項式を計算する。
λ(x)=(1−α838・x)(1−α839・x) ・・・・(10)
そして、誤り位置多項式計算部266は、バーレカンプマッシ(BM)法により、上記で求めたシンドローム多項式と、消失多項式を用いて、誤り位置多項式を計算する。消失多項式を用いたBM法の計算方法は、周知であり、例えば、文献:Error Control Systems for Digital Communication and Storage(著者:Stephen B. Wicker、出版社:Prentice Hall)により、詳述されている。
次に、求められた誤り位置多項式を使用して、チェーンサーチ実行部268により誤り位置を求める。即ち、チェーンサーチ実行部268は、誤り位置多項式C(x)を用いて、チェーンサーチを実行し、データ列上の全ての位置jについて、C(αj)の値(j=0,1,2,3,4、...、n)を計算する。尚、C(αj)=0となる位置jが、誤り位置である。
更に、チェーンサーチ実行部268は、シンドローム多項式と、C(αj)の値を用いて、訂正の成否を判定し、訂正が成功すると判定した場合は、チェーンサーチ実行部268が、受け取ったデータ列、シンドローム多項式、消失多項式、誤り位置多項式を、誤り値計算部270に出力する。
又、訂正が失敗すると判断した場合には、現在復号中のRSブロックに対し、復号失敗のフラグを立て、そのブロック番号を出力する。このチェーンサーチで、誤り位置が特定された場合は、誤り値を計算する。即ち、誤り値計算部270は、シンドローム多項式、消失多項式、誤り位置多項式を用いて、所定のアルゴリズムで、データ列の誤り位置の誤った値を、正しい値に訂正する。
ここで、消失訂正を行わない場合の誤り訂正能力tを20シンボルとするとき、消失訂正を行う場合の誤り訂正能力t’と消失数hには、次の関係式が成り立つ。
2t’+h=2t=40
上記の例では、消失数が2個となるので、上記の関係式から、t’=19が求まる。よって,上記の例では、2個の消失と、19個の誤りを訂正できることを意味する。もし、2個の消失位置に誤りがある場合は、合計21個のシンボルの誤りを訂正できることを意味し、消失訂正を行わない場合の誤り訂正能力以上の誤りを訂正できることを意味する。
(他の実施の形態)
前述の実施の形態では、ECC符号として、リードソロモン符号で説明したが、BCH(Bose Chaudhari Hocquengham)符号等の他の符号を利用できる。インターリーブを4インターリーブで説明したが、2以上のインターリーブ構成に適用でき、インターリーブも20ビット単位に限られない。パリティを2ビットとしたが、1ビットや3ビット以上も適用できる。又、ECC復号器は、図9の構成に限らず、他の構成のものも適用できる。更に、磁気ディスク装置の記録再生装置の適用の例で説明したが、光ディスク装置等の他の媒体記憶装置や、通信装置にも適用できる。
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
(付記1)データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有することを特徴とする符号化器。
(付記2)前記ECC符号器は、前記各ブロックのデータ列を前記mビット毎に、デ・インターリーブし、前記データ列に復元することを特徴とする付記1の符号化器。
(付記3)前記ECC符号器は、前記データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成するECC符号部と、前記各ブロックのデータ列を前記mビット毎に、デ・インターリーブし、且つ前記データ列に復元し、且つ前記誤り訂正符号のパリティを前記復元されたデータ列に付加するデ・インターリーブ部とを有することを特徴とする付記2の符号化器。
(付記4)前記ECC符号器は、前記誤り訂正符号として、リードソロモン符号を生成することを特徴とする付記1の符号化器。
(付記5)前記パリティ符号器は、多項式の割り算の余りにより前記パリティを作成することを特徴とする付記1の符号化器。
(付記6)データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブされた各ブロックのデータ列から生成された誤り訂正符号のパリティと、誤り訂正符号語の複数のビット数毎に、作成されたパリティビットとを、前記誤り訂正符号語に付加された符号化データ列を復号化する復号化器であって、受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有することを特徴とする復号化器。
(付記7)前記ECC復号回路は、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有することを特徴とする付記6の復号化器。
(付記8)前記軟出力復号器の符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、前記ECC復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行うことを特徴とする付記7の復号化器。
(付記9)前記パリティ・尤度訂正器は、前記復号失敗時に、前記ECC復号器から前記復号を失敗した前記ブロックの識別子を受け、前記失敗したブロックの前記パリティビットによる誤り検出された前記mビットのデータを対象として、前記尤度による訂正を行うことを特徴とする付記8の復号化器。
(付記10)前記パリティ・尤度訂正器は、前記ECC復号器の前記誤り訂正符号語のm×nビット毎にパリティビットを計算し、且つm×nビット毎の計算されたパリティビットと前記分離された対応するパリティビットとの比較により、前記誤り検出された前記mビットのデータを特定することを特徴とする付記9の復号化器。
(付記11)前記パリティ・尤度訂正器は、前記パリティビットの比較により、前記誤り検出された前記計算されたパリティビットと前記分離されたパリティビットとの加算結果からパリティラー値を計算し、前記mビットのデータの誤り発生位置を特定することを特徴とする付記10の復号化器。
(付記12)前記パリティ・尤度訂正器は、前記誤り検出されたmビットの各ビットの尤度から誤り候補ビットを特定することを特徴とする付記10の復号化器。
(付記13)前記パリティ・尤度訂正器は、前記mビット単位に、前記mビットの各ビットの尤度から尤度の比較的低いビット位置を前記訂正候補として、抽出することを特徴とする付記9の復号化器。
(付記14)前記パリティ・尤度訂正器は、前記パリティビットの生成多項式に従い、前記パリティラー値に対応するエラー候補位置のテーブルを有し、前記パリティラー値で前記テーブルを参照し、且つ前記参照結果と前記尤度とから、前記mビットのデータの誤り発生位置を特定することを特徴とする付記11の復号化器。
(付記15)前記パリティ・尤度訂正器は、前記mビットのデータの誤り発生位置のデータをフリップし、前記データ保存器の前記データ列を更新することを特徴とする付記8の復号化器。
(付記16)前記符号化データ列の前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記7の復号化器。
(付記17)データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する符号化器と、受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有する復号化器とを有することを特徴とする符号化・復号化装置。
(付記18)前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記17の符号化・復号化装置。
(付記19)記憶媒体にデータを書き込み且つ読み取るヘッドと、前記記憶媒体に書き込むべきデータ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加して、前記ヘッドに出力するパリティ符号器と、前記ヘッドから読み出した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号のパリティによる誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うECC復号回路とを有することを特徴とする記録再生装置。
(付記20)前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記19の記録再生装置。
データ列を、m(m≧2)ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、複数のビット数毎に、パリティビットを付加した連接型符号化データを作成するので、複数ブロックにインターリーブして誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、軟出力復号器の尤度とパリティチエック結果で、ECC復号データ列を訂正するため、訂正性能劣化も防止できる。このため、WINDOWS(登録商標)のVISTA(登録商標)に使用されるロングセクタータイプの記録再生装置の回路規模増加を防止しつつ、訂正性能を向上できる。
本発明の一実施形態を示す媒体記憶装置の記録再生系の構成図である。 図1の符号器のブロック図である。 図2のインターリーブ部の動作説明図である。 図2のECC符号器の動作説明図である。 図2のパリティ符号器のパリティ付与動作の説明図である。 図2のパリティ生成式の説明図である。 図2のパリティ符号器の出力の説明図である。 図1の復号器のブロック図である。 図8の復号器の詳細ブロック図である。 図9の第1のパリティ・尤度訂正器のブロック図である。 図10のRS符号部の尤度とパリティ部の尤度の分割動作の説明図である。 図10の候補選出部の動作説明図である。 図10のパリティ部ソート部の動作説明図である。 図10のエラー候補テーブルの説明図である。 図9のECC復号器の分割動作説明図である。 図9のインターリーブ動作説明図である。 図9の復号成功時のデ・インターリーブ動作説明図である。 図9の復号失敗時のデ・インターリーブ動作説明図である。 図9の第2のパリティ・尤度訂正器のビットフリップ部のブロック図である。 図9のパリティチエックによる誤り位置特定動作の説明図である。 図19のパリティラー値の説明図である。 図19のパリティブロックの位置番号の定義の説明図である。 図19のエラー発生位置対応テーブルの説明図である。 図19のビットフリップ動作の説明図である。 本発明の他の実施の形態のパリティ付加方法の説明図である。 図25のパリティとRS符号ブロックの関係図である。 本発明の更に他の実施の形態のパリティ付加方法の説明図である。 図27のパリティとRS符号ブロックの関係図である。 本発明の他の実施の形態のパリティ付加器の説明図である。 図29のパリティ付加器のブロック図である。 本発明の他の実施の形態の復号化方法の説明のためのパリティチエック結果とRS復号失敗ブロックの関係図である。 本発明の他の実施の形態の復号化方法のエラー候補テーブルの説明図である。 本発明の他の実施の形態の復号化方法の説明図である。 本発明の更に他の実施の形態の復号化方法の説明図である。 本発明の他の実施の形態の復号化動作の説明図である。 本発明の他の実施の形態の復号化器のブロック図である。 従来の誤り訂正のための符号化動作の説明図である。 図37のパリティ列生成動作の説明図である。 従来の誤り訂正動作の説明図である。 従来の誤り訂正回路のブロック図である。 従来の1インターリーブ構成の説明図である。 従来の4インターリーブ構成の説明図である。
符号の説明
102 インターリーブ部
104 ECC符号器
106 デ・インターリーブ部
110 分割部
112 インターリーブ部
114 データ保存・更新部
116 ECC復号器
118 デ・インターリーブ部
120 パリティ計算部
122 パリティ値チエック部
124 エラー候補テーブル保存器
126 エラーフリップ部
130 ブロック・パリティ尤度分割部
132 スタックテーブル
134 候補選出部
136 パリティ尤度ソート部
140 ブロック内エラー特定部
142 パリティラー値計算部
144 エラー開始位置テーブル
146 ビットフリップ部
201 プリアンプ
202 リードチャネル
203 ハードディスクコントローラ
226 軟出力検出器
227 第1のパリティ・尤度訂正器
230 ECC復号器
233 第2のパリティ・尤度訂正器
234 パリティ符号器
235 ECC符号器

Claims (8)

  1. データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブされた各ブロックのデータ列から生成された誤り訂正符号のパリティと、前記データ列と前記誤り訂正符号のパリティとからなる誤り訂正符号語の複数のビット数毎に、作成されたパリティビットとを、前記誤り訂正符号語に付加された符号化データ列を復号化する復号化器であって、
    受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、
    前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、
    前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する
    ことを特徴とする復号化器。
  2. 前記軟出力復号器の符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、
    前記パリティビットが分離された前記符号ビット列を、前記m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブするインターリーブ部と、
    インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、
    前記ECC復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、
    前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行う
    ことを特徴とする請求項の復号化器。
  3. 前記パリティ・尤度訂正器は、前記復号失敗時に、前記ECC復号器から前記復号を失敗した前記ブロックの識別子を受け、前記失敗したブロックの前記パリティビットによる誤り検出された前記mビットのデータを対象として、前記尤度による訂正を行う
    ことを特徴とする請求項の復号化器。
  4. 前記パリティ・尤度訂正器は、前記ECC復号器の前記誤り訂正符号語のm×nビット毎にパリティビットを計算し、且つm×nビット毎の計算されたパリティビットと前記分離された対応するパリティビットとの比較により、前記誤り検出された前記mビットのデータを特定する
    ことを特徴とする請求項の復号化器。
  5. 前記パリティ・尤度訂正器は、前記パリティビットの比較により、前記誤り検出された前記計算されたパリティビットと前記分離されたパリティビットとの加算結果からパリティラー値を計算し、前記mビットのデータの誤り発生位置を特定する
    ことを特徴とする請求項の復号化器。
  6. 前記パリティ・尤度訂正器は、前記mビット単位に、前記mビットの各ビットの尤度から尤度の比較的低いビット位置を前記訂正候補として、抽出する
    ことを特徴とする請求項の復号化器。
  7. データ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する符号化器と、
    受信した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する復号化器とを有する
    ことを特徴とする符号化・復号化装置。
  8. 記憶媒体にデータを書き込み且つ読み取るヘッドと、
    前記記憶媒体に書き込むべきデータ列を、m(m≧2)ビット毎に、n(n≧2)ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するECC符号器と、
    前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加して、前記ヘッドに出力するパリティ符号器と、
    前記ヘッドから読み出した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、
    前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うECC復号器と、
    前記ECC復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ECC復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する
    ことを特徴とする記録再生装置。
JP2007234267A 2006-10-30 2007-09-10 復号化器、符号化・復号化装置及び記録再生装置 Active JP4833173B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007234267A JP4833173B2 (ja) 2006-10-30 2007-09-10 復号化器、符号化・復号化装置及び記録再生装置
US11/977,266 US8055977B2 (en) 2006-10-30 2007-10-24 Decoding device, encoding/decoding device and recording/reproducing device
KR1020070108564A KR100935842B1 (ko) 2006-10-30 2007-10-26 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록재생 장치
EP07119455A EP1926102A1 (en) 2006-10-30 2007-10-29 Maximum likelihood detector, error correction circuit and medium storage device with error candidate extraction.

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006294185 2006-10-30
JP2006294185 2006-10-30
JP2007234267A JP4833173B2 (ja) 2006-10-30 2007-09-10 復号化器、符号化・復号化装置及び記録再生装置

Publications (2)

Publication Number Publication Date
JP2008136173A JP2008136173A (ja) 2008-06-12
JP4833173B2 true JP4833173B2 (ja) 2011-12-07

Family

ID=39273158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007234267A Active JP4833173B2 (ja) 2006-10-30 2007-09-10 復号化器、符号化・復号化装置及び記録再生装置

Country Status (4)

Country Link
US (1) US8055977B2 (ja)
EP (1) EP1926102A1 (ja)
JP (1) JP4833173B2 (ja)
KR (1) KR100935842B1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844560B2 (en) 2006-04-17 2010-11-30 Siemens Medical Solutions Usa, Inc. Personalized prognosis modeling in medical treatment planning
JP5007676B2 (ja) * 2008-01-31 2012-08-22 富士通株式会社 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
WO2009098776A1 (ja) * 2008-02-08 2009-08-13 Fujitsu Limited バックアップ方法、ディスクアレイ装置及びコントローラ
JP5293360B2 (ja) * 2009-04-10 2013-09-18 富士通株式会社 復調装置
US8484535B2 (en) 2009-04-21 2013-07-09 Agere Systems Llc Error-floor mitigation of codes using write verification
US8381080B2 (en) * 2010-06-15 2013-02-19 Lsi Corporation Reducing a degree of a polynomial in a polynomial division calculation
US8904258B2 (en) * 2010-09-07 2014-12-02 Zephyr Photonics Modulation-forward error correction (MFEC) codes and methods of constructing and utilizing the same
KR20120063329A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
US9054840B2 (en) 2011-12-15 2015-06-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Error detection and correction of a data transmission
US8850295B2 (en) * 2012-02-01 2014-09-30 Lsi Corporation Symbol flipping data processor
US9203757B2 (en) * 2012-03-22 2015-12-01 Texas Instruments Incorporated Network throughput using multiple reed-solomon blocks
TW201346922A (zh) * 2012-05-14 2013-11-16 Toshiba Kk 記憶體控制器、記憶裝置及錯誤修正方法
US8719682B2 (en) * 2012-06-15 2014-05-06 Lsi Corporation Adaptive calibration of noise predictive finite impulse response filter
US8924828B2 (en) * 2012-08-30 2014-12-30 Kabushiki Kaisha Toshiba Memory controller, semiconductor storage device, and memory control method for error correction using Chien search
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9468085B2 (en) 2012-12-29 2016-10-11 Zephyr Photonics Inc. Method and apparatus for implementing optical modules in high temperatures
US9160452B2 (en) 2012-12-29 2015-10-13 Zephyr Photonics Inc. Apparatus for modular implementation of multi-function active optical cables
US9190809B2 (en) 2012-12-29 2015-11-17 Zephyr Photonics Inc. Method and apparatus for active voltage regulation in optical modules
US10958348B2 (en) 2012-12-29 2021-03-23 Zephyr Photonics Inc. Method for manufacturing modular multi-function active optical cables
US9728936B2 (en) 2012-12-29 2017-08-08 Zephyr Photonics Inc. Method, system and apparatus for hybrid optical and electrical pumping of semiconductor lasers and LEDs for improved reliability at high temperatures
US9172462B2 (en) 2012-12-31 2015-10-27 Zephyr Photonics Inc. Optical bench apparatus having integrated monitor photodetectors and method for monitoring optical power using same
TWI514778B (zh) * 2014-03-27 2015-12-21 Storart Technology Co Ltd 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路
US9369267B2 (en) * 2014-05-07 2016-06-14 Texas Instruments Incorporated Communication reception with compensation for relative variation between transmit bit interval and receiver sampling interval
US9460771B2 (en) 2014-09-25 2016-10-04 Kilopass Technology, Inc. Two-transistor thyristor SRAM circuit and methods of operation
US9564199B2 (en) 2014-09-25 2017-02-07 Kilopass Technology, Inc. Methods of reading and writing data in a thyristor random access memory
US9564441B2 (en) 2014-09-25 2017-02-07 Kilopass Technology, Inc. Two-transistor SRAM semiconductor structure and methods of fabrication
US9741413B2 (en) 2014-09-25 2017-08-22 Kilopass Technology, Inc. Methods of reading six-transistor cross-coupled thyristor-based SRAM memory cells
US9496021B2 (en) * 2014-09-25 2016-11-15 Kilopass Technology, Inc. Power reduction in thyristor random access memory
US9613968B2 (en) 2014-09-25 2017-04-04 Kilopass Technology, Inc. Cross-coupled thyristor SRAM semiconductor structures and methods of fabrication
US9449669B2 (en) 2014-09-25 2016-09-20 Kilopass Technology, Inc. Cross-coupled thyristor SRAM circuits and methods of operation
US20160093624A1 (en) 2014-09-25 2016-03-31 Kilopass Technology, Inc. Thyristor Volatile Random Access Memory and Methods of Manufacture
US9530482B2 (en) 2014-09-25 2016-12-27 Kilopass Technology, Inc. Methods of retaining and refreshing data in a thyristor random access memory
KR102254102B1 (ko) 2015-01-23 2021-05-20 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10572189B2 (en) * 2016-11-04 2020-02-25 Sandisk Technologies Llc Method and decoder to adjust an error locator polynomial based on an error parity
US10439644B2 (en) 2015-07-14 2019-10-08 Western Digital Technologies, Inc. Error locator polynomial decoder and method
US10461777B2 (en) 2015-07-14 2019-10-29 Western Digital Technologies, Inc. Error locator polynomial decoder and method
CN108511027A (zh) * 2015-12-18 2018-09-07 中国科学院计算技术研究所 一种用于自动校正访问存储装置数据的装置及方法
CN108964837B (zh) 2017-05-24 2020-10-09 华为技术有限公司 一种比特块流收发方法及设备
KR20190014744A (ko) * 2017-08-03 2019-02-13 에스케이하이닉스 주식회사 에러 정정 회로 및 이를 포함하는 메모리 시스템
US10707899B2 (en) * 2017-08-31 2020-07-07 SK Hynix Inc. Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
EP3682547B1 (en) * 2017-09-12 2022-08-03 Telefonaktiebolaget LM Ericsson (PUBL) Crc interleaving pattern for polar codes
EP4220968A1 (en) * 2017-09-27 2023-08-02 Mitsubishi Electric Corporation Coding device and transmitter
US10749547B2 (en) * 2018-03-28 2020-08-18 Intel Corporation Error detector and/or corrector checker method and apparatus
US11184024B2 (en) * 2019-12-02 2021-11-23 SK Hynix Inc. Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes
US11356122B2 (en) * 2020-03-13 2022-06-07 Marvell Asia Pte Ltd. Systems and methods for interleaved hamming encoding and decoding
US11050437B1 (en) * 2020-06-26 2021-06-29 Mahesh Rameshbhai Patel Implementation of invertible functions using party logic
KR20230168003A (ko) 2022-06-03 2023-12-12 삼성전자주식회사 향상된 오류 정정 기능을 갖는 전자 장치 및 그 동작 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1139338A3 (en) * 1994-03-19 2006-10-11 Sony Corporation Optical disk and method and apparatus for recording and then playing information back from that disc
JPH08315515A (ja) * 1995-05-18 1996-11-29 Sony Corp データ記録/再生装置および方法、並びにデータ記録媒体
US5636231A (en) 1995-09-05 1997-06-03 Motorola, Inc. Method and apparatus for minimal redundancy error detection and correction of voice spectrum parameters
JPH11127138A (ja) * 1997-10-24 1999-05-11 Sony Corp 誤り訂正符号化方法及びその装置並びにデータ伝送方法
JP3567733B2 (ja) 1998-05-08 2004-09-22 株式会社日立製作所 信号復号方法、信号復号回路及びこれを用いた情報伝送通信装置、情報記憶再生装置
WO2001048927A1 (en) 1999-12-24 2001-07-05 Ensemble Communications, Inc. Method and apparatus for concatenated channel coding
US7184486B1 (en) * 2000-04-27 2007-02-27 Marvell International Ltd. LDPC encoder and decoder and method thereof
JP4505953B2 (ja) 2000-06-08 2010-07-21 ソニー株式会社 符号化装置及び符号化方法、並びに、復号装置及び復号方法
US6965652B1 (en) * 2000-06-28 2005-11-15 Marvell International Ltd. Address generator for LDPC encoder and decoder and method thereof
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
US20030099303A1 (en) * 2001-06-04 2003-05-29 Koninklijke Philips Electronics N.V. Digital television (DTV) transmission system using enhanced coding schemes
JP4135497B2 (ja) * 2002-12-26 2008-08-20 株式会社日立製作所 データ再生方法及びデータ再生装置
JP4202161B2 (ja) * 2003-03-18 2008-12-24 三菱電機株式会社 符号化装置および復号装置
JP4294407B2 (ja) * 2003-08-18 2009-07-15 株式会社日立グローバルストレージテクノロジーズ 信号処理方法及び信号処理回路
US7318187B2 (en) 2003-08-21 2008-01-08 Qualcomm Incorporated Outer coding methods for broadcast/multicast content and related apparatus
KR20050114162A (ko) * 2004-05-31 2005-12-05 삼성전자주식회사 리드-솔로몬 부호를 사용하는 이동통신 시스템에서 내부및 외부 부호 복호 방법 및 그 장치
US7530003B2 (en) * 2005-02-17 2009-05-05 Hitachi Global Storage Technologies Netherlands B.V. Permuting MTR code with ECC without need for second MTR code
US7680108B2 (en) * 2005-10-21 2010-03-16 Samsung Electronics Co., Ltd. Digital broadcasting transmission and reception systems for stream including normal stream and turbo stream and methods thereof
US7409622B1 (en) * 2005-11-10 2008-08-05 Storage Technology Corporation System and method for reverse error correction coding
US7913152B2 (en) * 2006-01-03 2011-03-22 Samsung Electronics Co., Ltd. Transmitter and system for transmitting/receiving digital broadcasting stream and method thereof

Also Published As

Publication number Publication date
JP2008136173A (ja) 2008-06-12
KR100935842B1 (ko) 2010-01-08
US8055977B2 (en) 2011-11-08
KR20080039257A (ko) 2008-05-07
US20080104481A1 (en) 2008-05-01
EP1926102A1 (en) 2008-05-28

Similar Documents

Publication Publication Date Title
JP4833173B2 (ja) 復号化器、符号化・復号化装置及び記録再生装置
JP5007676B2 (ja) 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
JP5251000B2 (ja) 誤り訂正回路及び媒体記憶装置
US9048879B1 (en) Error correction system using an iterative product code
KR100766354B1 (ko) 에러 정정 장치, 부호기, 복호기, 방법 및 정보 기억 장치
KR100848614B1 (ko) 오류 정정 장치
US8127216B2 (en) Reduced state soft output processing
JP2007087529A (ja) 信号復号装置、信号復号方法、および記憶システム
CN101174839A (zh) 编码装置、解码装置、编码/解码装置及记录/再现装置
CN108370252B (zh) 对乘积码诊断的后解码错误检查
JP2010009719A (ja) 復号器及び記録再生装置
US20030051201A1 (en) Coding/decoding process and device, for instance for disk drives
US20100241922A1 (en) Error correction circuit and data storage device
US20090307561A1 (en) Decoding device, decoding method, and recording and reproducing device
JP4294407B2 (ja) 信号処理方法及び信号処理回路
JP2010152960A (ja) エラー訂正回路及び記憶装置
JP2004193727A (ja) 信号処理方法及び信号処理回路
JP2005285205A (ja) 情報記録再生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110715

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4833173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3