Nothing Special   »   [go: up one dir, main page]

CN101047388A - 纠错装置 - Google Patents

纠错装置 Download PDF

Info

Publication number
CN101047388A
CN101047388A CNA2006101538144A CN200610153814A CN101047388A CN 101047388 A CN101047388 A CN 101047388A CN A2006101538144 A CNA2006101538144 A CN A2006101538144A CN 200610153814 A CN200610153814 A CN 200610153814A CN 101047388 A CN101047388 A CN 101047388A
Authority
CN
China
Prior art keywords
factor
correction
serial data
correct
group
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
CNA2006101538144A
Other languages
English (en)
Other versions
CN101047388B (zh
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
Publication of CN101047388A publication Critical patent/CN101047388A/zh
Application granted granted Critical
Publication of CN101047388B publication Critical patent/CN101047388B/zh
Expired - Fee Related 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/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
    • 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
    • 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/152Bose-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/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/1525Determination and particular use of error location polynomials
    • 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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial

Landscapes

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

Abstract

本发明涉及一种纠错装置。根据各包含至少2t+1个符号作为奇偶校验串的多个数据串中的第一数据串计算得到一组纠正因子;根据所述一组纠正因子得到错误位置多项式的系数;通过使用错误位置多项式的系数判断纠正是否成功,如果判断纠正失败,则对第二数据串执行同样的计算。反之,如果判断纠正成功,则利用前述组的纠正因子和错误位置多项式的系数对所述第一数据串进行纠错。

Description

纠错装置
技术领域
本发明涉及一种在记录再现装置、接收装置等中使用的纠错技术,更具体地,涉及一种通过采用Reed Solomon(里德所罗门)码来纠正数据串的错误的装置。
背景技术
Reed Solomon码(例如,参见后面的非专利文献1)作为纠错码(ECC)使用,用于记录再现装置(如磁盘装置)和电信系统。
非专利文献1:IMAI,Hideki,“Theory of coding”,第155-175页,电子信息与通信研究所编辑
在纠错装置内,输入ECC解码器的数据串由检测器输出。通常,如图1A所示,作为解码备选的单个数据串从检测器11输入ECC解码器12,并进行解码。在这种情况下,如果解码失败,错误就无法被纠正。
因此,存在使用如图1B所示的装置的情况,该装置从检测器21向ECC解码器22输入多个数据串。在这种情况下,ECC解码器22将作为备选的各个数据串进行解码,因此提高了纠正能力。
图1C例示了图1B中所示的ECC解码器22的结构。ECC解码器22由纠正因子(syndrom)计算单元41、错误位置多项式计算单元42、Chien搜索执行单元43和错误值计算单元44组成。
从检测器21输出的多个数据串一旦存储在数据存储单元31中,之后就一个一个输入到ECC解码器22,此时,ECC解码器22通过下面的过程纠正包含在数据串中的错误:
步骤1:纠正因子计算单元41计算输入到ECC解码器22的数据串的纠正因子多项式。
步骤2:错误位置多项式计算单元42根据该纠正因子多项式计算错误位置多项式。错误位置多项式的计算算法使用欧几里得方法(Euclidmethod)或Berlekamp Massey(伯利坎普-梅西)方法。(例如,参见下面的非专利文献2和3):
非专利文献2:E.R.Berlekamp,“Algebraic coding Theory”,McGraw-Hill Book Co.,176-199页以及218-240页,纽约,1968
非专利文献3:J.L.Massey,“Shift-Register Synthesis and BCHDecoding”,IEEE Transactions on Information Theory,卷IT-15,122-127页,1969
步骤3:Chien搜索执行单元43利用在步骤2获得的错误位置多项式进行Chien搜索,确定数据串中错误存在的位置(即,错误位置)。
步骤4:错误值计算单元44将错误位置的错误值纠正为正确值。
之后解码判断单元32检查错误值计算单元44输出的纠正后的数据串的合法性,如果判断结果为“非法”,确定纠正失败,并指示数据存储单元31输出下一解码备选。
这里,参考图1D至1H,给出基于Reed Solomon码的纠错的具体示例的描述。
根据次数为2t的发生器多项式生成纠错数为t的Reed Solomon码。假设用于编码的伽罗瓦域(Galois field)为GF(23),纠错数t为1,并利用基本元素(primitive element)α,则Reed Solomon码的发生器多项式可以表示如下,例如:
G(x)=(x-1)(x-α)
    =x23x+α    (1)
在这种情况下,3位的位串作为一个符号被处理,在解码器处,对信息串加上了2t(=2)个符号的奇偶校验串。例如,在编码图1D所示的位串的情况下,“001”、“110”和“101”分别对应伽罗瓦域表达式中的1,α5和α4。第j个符号代表传输字串多项式中项xj的系数。因此,这个位串代表了多项式x45x34x2
如图1E中所示,ECC解码器将位串代表的多项式除以表达式(1)所示的发生器多项式,并将代表所得余数多项式α4x+α4的奇偶校验串加入该位串中。在该余数多项式中,x的一次项和零次项的系数都是α4,因而加上图1F中的奇偶校验串,于是就产生了由五位符号组成的传输字串。
当这个传输字串被记录在磁盘中,并从中读出时,如图1G所示,可能将包含错误的接收字串输入到ECC解码器22中。由接收字串代表的接收字多项式如下:
Y(x)=αx45x34x24x+α4 (2)
在这种情况下,纠正因子计算单元41通过下面的表达式计算纠正因子多项式:
S(x)=s1+s2x
S1=Y(1)
S2=Y(α)                              (3)
纠正因子Si(i=1,2,…,2t)是将发生器多项式G(x)的第i个根代入接收字多项式Y(x)得到的值,纠正因子多项式S(x)是以纠正因子si作为xi-1项的系数的多项式。如果接收字串中不包含错误,所有的si变为0。
接着,错误定位器计算单元42,如下地根据纠正因子多项式S(x)计算错误位置多项式C(x):
C(x)=1+α-4x                          (4)
之后,Chien搜索执行单元43利用错误位置多项式C(x)计算C(αj)(j=0,1,2,3,4)的值,并输出C(αj)=0的位置j作为错误位置。在该示例中,因为C(α4)=1+α-4×α4=0,因而发现第四个符号有错误。
随后,错误值计算单元44通过预定的算法,利用纠正因子多项式S(x)和错误位置多项式C(x)计算第四个符号的纠正值,并对位串进行纠正。在本例中,得到纠正值“1”,接收字串的第四个符号相应地由α变为“1”,如图1H所示。
t=20的Reed Solomon码有时会用于磁盘,如图1I所示,在ECC编码器中,产生40个符号的奇偶校验串,并插入一个扇区位串前面,在这种情况下,纠正因子多项式S(x)和错误位置多项式C(x)示例如下:
S(x)=s1+s2x+…+s40x39       (5)
C(x)=1+x+α2x2+…+α35x8    (6)
上面描述的传统ECC解码面临下面的问题:
实际的接收字串远比5个符号长,造成接收字多项式Y(x)的次数很大。结果,纠正因子多项式S(x)的计算和Chien搜索的计算量变得相当大,因此解码过程要花费很长时间。
同时,图1C所示的结构在ECC解码器的输出侧判断解码的成功或失败,因此即使纠正由于特定解码备选包含错误超出了ECC解码器的纠正能力而失败,也要完成一系列的解码过程,因此降低了效率。于是,期望一种判断方法,能够在较早的阶段判断对备选数据串的解码是否失败,如果发现失败,则快速进行到下一候选的解码。
发明内容
本发明的目的是减少Reed Solomon码的解码处理的计算量,从而加速解码处理。
依据本发明的第一纠错装置包括数据存储装置、纠正因子计算装置、错误位置多项式计算装置、判断装置和纠正装置,通过使用纠错数t的Reed Solomon码或BCH(Bose Chaudhuri Hocquenghem,博斯-乔赫里-霍克文黑姆)码对数据串的错误进行纠正。
数据存储装置存储多个数据串,每个数据串都包括至少2t+1个符号作为奇偶校验串。纠正因子计算装置根据所述多个数据串中的第一数据串计算一组纠正因子。错误位置多项式计算装置根据这组纠正因子计算出错误位置多项式的系数。
判断装置利用所述错误位置多项式的系数判断纠正是否成功,并且如果判断纠正失败,则向数据存储装置请求第二数据串,如果判断纠正成功,则输出成功纠正的判断结果。纠正装置接收到成功纠正的判断结果时,利用该组纠正因子和错误位置多项式的系数纠正所述第一数据串的错误。
依据本发明的第二纠错装置包括数据存储装置、纠正因子计算装置、纠正因子存储装置、纠正因子更新装置和纠正装置,使用Reed Solomon或BCH码纠正数据串的错误。
数据存储装置存储多个数据串。纠正因子计算装置根据所述多个数据串中的第一数据串计算一组纠正因子。纠正因子存储装置存储该组纠正因子。纠正装置利用该组纠正因子纠正所述第一数据串的错误。
纠正因子更新装置根据第一数据串和第二数据串之间的差计算各纠正因子的差,将获得的差与这组纠正因子中包括的各纠正因子相加以更新这组纠正因子,当对所述第一数据串纠正失败时,将更新后的该组纠正因子作为第二数据串的一组纠正因子输出。
附图说明
图1A为单个解码备选的示意图;
图1B为示出了多个解码备选的示意图;
图1C为传统ECC解码器的结构图;
图1D为示出了信息串的示意图;
图1E为示出了奇偶校验生成算法运算的示意图;
图1F为示出了传输字串的示意图;
图1G为示出了包含错误的接收字串的示意图;
图1H为示出了纠正后的接收字串的示意图;
图1I为示出了传统传输字串的格式的示意图;
图2A是依据本发明的纠错装置的原理图;
图2B为记录再现装置的结构图;
图3为ECC编码器的结构图;
图4是示出了依据本发明的传输字串的格式的示意图;
图5为依据本发明的ECC解码器的结构图;
图6是示出了多个解码备选之间的差的图;
图7为纠正因子更新单元处的处理的流程图;
图8为错误位置多项式计算单元处的处理的流程图;
图9为比较单元处的处理的流程图;
图10为判断单元处的处理的流程图;以及
图11为信息处理装置的结构图。
具体实施方式
下面参照附图对本发明的优选实施例进行详细描述。
图2A为依据本发明的第一纠错装置和第二纠错装置的原理图。
依据本发明的第一纠错装置包括数据存储装置101、纠正因子计算装置102、错误位置多项式计算装置103、判断装置104和纠正装置105,利用纠错数t的Reed Solomon码或BCH(Bose Chaudhuri Hocquenghem)码纠正数据串的错误。
数据存储装置101存储多个数据串,各个字符串都包含至少2t+1个符号作为奇偶校验串。纠正因子计算装置102根据所述多个数据串中的第一数据串计算一组纠正因子。错误位置多项式计算装置103根据该组纠正因子计算出错误位置多项式的系数。
判断装置104利用该错误位置多项式的系数判断纠正是否成功,如果判断所述纠正失败,则向数据存储装置101请求第二数据串,如果判断所述纠正成功,则输出成功纠正的判断结果。纠正装置105在接收到成功纠正的判断结果时,利用该组纠正因子和错误位置多项式的系数纠正该第一数据串的错误。
通常,纠错数t的Reed Solomon码能够通过添加基于次数为2t的发生器多项式的包括2t个符号的奇偶校验串,来纠正包含在数据串中的多至t个错误符号。相对地,更多地增加基于更高次数的发生器多项式的另外的几个符号的奇偶校验会增长Reed Solomon码的冗余,因此可以计算出另外的几个纠正因子。
例如,增加基于次数为2t+1的发生器多项式的2t+1个符号构成的奇偶校验串使得可以计算出2t+1个纠正因子。根据这些纠正因子计算错误位置多项式的系数,使得可以在解码期间判断对数据串进行的纠正的成败。
随后,如果判断纠正失败,则开始第二数据串的解码处理,而不是去纠正第一数据串,从而使得可以消除对第一数据串进行无用的Chien搜索等,减少了计算量。
依据本发明的第二纠错装置包括数据存储装置101、纠正因子计算装置102、纠正因子存储装置106、纠正因子更新装置107和纠正装置108,使用Reed Solomon码或BCH码纠正数据串的错误。
数据存储装置101存储多个数据串。纠正因子计算装置102根据该多个数据串中的第一数据串计算一组纠正因子。纠正因子存储装置106存储这组纠正因子。纠正装置108利用这组纠正因子纠正第一数据串的错误。
纠正因子更新装置107根据第一数据串和第二数据串之间的差计算各纠正因子的差,将获得的差加到这组纠正因子中包括的各纠正因子上以更新这组纠正因子,当第一数据串的纠正失败时,将更新后的该组纠正因子作为第二数据串的纠正因子输出。
一般地,纠正因子是通过将预定值带入由数据串代表的多项式而计算得出的,因此仅与对第一数据串和第二数据串之间的差相对应的项进行计算,就可以计算出纠正因子的差。
因此,当第一数据串的纠正失败时,对已经计算出的第一数据串的每个纠正因子加上该差,代替重新计算第二数据串的各个纠正因子,使得可以获得第二数据串的各个纠正因子。这种结构简化了第二数据串的纠正因子的计算,减少了计算量。
数据存储装置101、纠正因子计算装置102、错误位置多项式计算装置103、判断装置104、纠正因子存储装置106和纠正因子更新装置107例如分别对应于后面结合图5描述的数据存储单元231、纠正因子计算单元501、错误位置多项式计算单元504、比较单元505、纠正因子存储单元502和纠正因子更新单元503。
纠正装置105例如对应于图5中示出的Chien搜索执行单元506、判断单元507和错误值计算单元508,而纠正装置108例如对应于图5中示出的错误位置多项式计算单元504、比较单元505、Chien搜索执行单元506、判断单元507和错误值计算单元508。
本发明被设计为能够在解码Reed Solomon码或BCH码期间判断对数据串的纠正的成败,从而在纠正失败的情况下消除无用的Chien搜索等。其还使得可以大大简化对第二位置及其后的编码备选的数据串的纠正因子计算,因而,这两者结合,导致减少了计算量和加快了解码处理的速度。
此后描述了在作为记录再现装置的代表示例的磁盘装置处实现的纠错处理的优选实施例。图2B例示了磁盘装置的记录再现系统的结构。该记录再现系统包括前置放大器201、读信道202和硬盘控制器203。
前置放大器201包括放大器211和驱动器212。读信道202包括热度(TA,thermal asperity)检测器221、可变增益放大器(VGA)222、低通滤波器(LPF)223、模/数转换器(ADC)224、有限脉冲响应(FIR)滤波器225、检测器226、驱动器227和记录补偿器228。
硬盘控制器203包括数据存储单元231、ECC解码器232、游程有限(RLL)解码器233、循环冗余码校验(CRC)解码器234、ECC编码器235、RLL编码器236与CRC编码器237。
记录数据首先在硬盘控制器203内经由CRC编码器237被RLL编码器236转换成满足约束条件的数据串。然后由ECC编码器235向该数据串添加奇偶校验串。
接着在读信道202中,记录数据经由记录补偿器228和驱动器227发送至前置放大器201。记录补偿器228执行补偿处理,在磁化反转邻接的位置,将反转间隔加宽一点。前置放大器201使驱动器212为记录头产生写电流。
相对地,当再现数据时,来自再现头的模拟电压被前置放大器201的放大器211放大,接着作为模拟信号输出到读信道202。在读信道202中,TA检测器221对模拟信号实施热度检测处理,然后经由VGA 222、LFP 223和ADC 224转换为数字信号。然后FIR滤波器225进行波形均衡,随后由检测器226产生位串。
然后,生成的位串被返回给硬盘控制器203,一旦存储在数据存储单元231中,就接着由ECC解码器232进行纠错。之后,经由RLL解码器233和CRC解码器234作为再现数据输出。
图3例示了图2B所示的ECC编码器235的结构。ECC编码器235包括奇偶校验生成单元301,该单元利用生成器多项式根据记录数据的位串产生奇偶校验串。纠错数t的Reed Solomon码生成器多项式通常可用下面的表达式描述:
G(x)=(x-α)(x-α2)…(x-α2t)          (7)
因此,在t=20的情况下,40次的生成器多项式通常如下:
G(x)=(x-α)(x-α2)…(x-α40)          (8)
相对地,为提早判断解码的成败,将本实施例构成为通过将生成器多项式的次数增加了1次而采用如下所示的41次的生成器多项式:
G(x)=(x-α)(x-α2)…(x-α40)(x-α41) (9)
由此,生成了41个符号的奇偶校验串,并如图4所示,将其插入一个扇区位串之前。这里,例如假设:伽罗瓦域GF(210)用于编码,一个扇区包括410符号以及一个符号包括10位。
图5例示了图2B所示的ECC解码器232的结构。ECC解码器232包括校验子计算单元501、校验子存储单元502、校验子更新单元503、错误位置多项式计算单元504、比较单元505、Chien搜索执行单元506、判断单元507和错误值计算单元508。
多个从读信道202送出的解码备选存储于数据存储单元231中,然后一个一个输入到ECC解码器232。ECC解码器232按照以下过程对第一备选数据串进行解码处理:
步骤1:校验子计算单元501计算数据串的校验子多项式(即多项式的系数),并将该校验子多项式输出到错误位置多项式计算单元504。在这种情况下,计算得出2t+1个校验子Si(i=1,2,…,2t,2t+1)的值。此外,校验子计算单元501还在校验子存储单元502中存储该校验子多项式,以将该校验子多项式用于第二备选及其后的备选的解码处理。
步骤2:错误位置多项式计算单元504通过Berlekamp Massey方法根据该校验子多项式计算错误位置多项式。
在Berlekamp Massey方法中,通常从多项式的初始值开始,对该多项式进行反复更新(更新次数与生成器多项式的次数相等),从而计算得出错误位置多项式。在此情况下,为计算第i位置多项式Ci(x),第i校验子Si的值是必须的。
错误位置多项式计算单元504将第2t位置多项式C2t(x)和第2t+1位置多项式C2t+1(x)随数据串输出至比较单元505。
步骤3:比较单元505比较多项式C2t(x)和C2t+1(x)的系数,从而检查两个多项式是否一致。
根据Berlekamp Massey方法的特征,如果包含在数据串内的错误数目为k(k<=t),多项式并不进行2k+1次及以后的反复更新,因而,从C2k(x)开始,其及其后的所有多项式变得相同。因此,如果多项式C2t(x)和C2t+1(x)一样,则错误数最多为t,表明其在纠错能力范围内。相反,如果C2t(x)和C2t+1(x)不一样,则错误的数目超过了纠错能力。
因而,如果C2t(x)和C2t+1(x)一样,则比较单元505判断对该备选的纠正成功,并将该数据串、纠正因子多项式、错误位置多项式和判断结果输出至Chien搜索执行单元506。相反,如果C2t(x)和C2t+1(x)不一样,则比较单元505判断该备选的纠正失败,并指示数据存储单元231输出下一个解码备选。
如上所述,将一个符号奇偶校验冗余地加入数据串使得可以冗余1地计算Berlekamp Massey方法的多项式,从而能够在解码期间检测出数据串的纠正失败。注意,也可以替代地采用冗余地添加了几个奇偶校验符号的格式。
步骤4:Chien搜索执行单元506利用错误位置多项式C(x)执行Chien搜索,针对数据串的所有位置j,计算C(αj)的值,并接着将该数据串、纠正因子多项式、错误位置多项式及C(αj)的计算结果输出至判断单元507。这里指示C(αj)=0的位置j为错误位置。
步骤5:判断单元507利用纠正因子多项式与C(αj)的计算结果判断纠正的成败,并且如果判断为纠正成功,则将从Chien搜索执行单元506接收的信息与该判断结果输出至错误值计算单元508。相反地,如果判断为纠正失败,则指示数据存储单元2231输出下一个解码备选。
步骤6:错误值计算单元508基于规定的算法,利用纠正因子多项式和错误位置多项式,将错误位置处的错误值纠正至正确值,然后从纠正后的数据串中消去奇偶校验串,并在随后的阶段将所得数据串输出至RLL解码器233。
因此,如果对第一备选的纠正成功,则从ECC解码器232输出纠错后的数据串。如果纠正失败,将请求对第二备选或其后的备选进行解码,使用存储于纠正因子存储单元502中的信息执行解码处理。
在这种情况下,纠正因子更新单元503对用于解码目标的备选与存储于纠正因子存储单元502中的第一备选进行比较,提取不同的符号,并更新在步骤1中存储于纠正因子存储单元502中的纠正因子多项式。然后纠正因子更新单元503将更新后的纠正因子多项式输出至错误位置多项式计算单元504。步骤2及其后的处理与上面所述的第一备选的情况一样。
如上所述,图5所示的ECC解码器232能够简化第二备选以及其后的备选的纠正因子多项式计算,并消除在比较单元505判断纠正失败的情况下的Chien搜索,因此大大减少了计算量。此外,在判断单元507判断纠正失败的情况下也排除了对错误的纠正,因此更进一步消减了计算量。
例如,比较包括n+1个符号的第一备选与图6所示的解码目标备选,第一备选在j=1位置的符号是α12,而解码目标备选在相同位置的符号为α6,因此它们的值显然不同。这种情况下,第一备选与解码目标备选的接收字多项式Y1(x)和Y(x)分别如下:
Y1(x)=α2xn22xn-1+…+α12x+α5     (10)
Y(x)=α2xn22xn-1+…+α6x+α5       (11)
第一备选与解码目标备选的纠正因子多项式S1(x)和S(x)分别如下:
S1(x)=s11+s12x+…+s12tx2t-1+s12t+1x2t
s1i=Y1(αi);(i=1,2,…2t,2t+1)        (12)
S(x)=s1+s2x+…+s2tx2t-1+s2t+1x2t
si=Y(αi);(i=1,2,…2t,2t+1)          (13)
这里s1i代表第一备选的第i个纠正因子,si代表解码目标备选的第i个纠正因子。在这种情况下,si可以用s1i按如下表达式表示:
si=s1i+Y(αi)-Y1(αi)
  =s1i+(α612i          (14)
表达式(14)表示对纠正因子存储单元502存储的s1i值增加变化量(α612)与αi之积得到了更新后的纠正因子si的值。
同时,在多个符号值不同的情况下,可以以与表达式(14)同样方法计算更新后的纠正因子si。在这种情况下,纠正因子的差Y(αi)-Y1(αi)是针对所有的符号值不同的位置j添加了符号值的变化量与(αi)j之积的结果。
利用如此更新后的纠正因子si,根据Berlekamp Massey方法依次计算出多项式C1(x)到C2t+1(x)。在t=20的情况下,多项式C1(x)、C40(x)与C41(x)例如如下:
C1(x)=1+αx
C40(x)=1+x+α2x2+…+α35x20
C41(x)=1+αx+α50x3+…+α100x20         (15)
此例中,C40(x)与C41(x)不同,因此判断对解码目标备选的纠正失败,进行到下一个备选的解码。
接下来参照图7至图10更详细地描述图5所示的ECC解码器232所进行的解码处理。
图7为纠正因子更新单元503处的处理的流程图。纠正因子更新单元503首先比较解码目标备选数据串与存储于纠正因子存储单元502中的备选数据串,并从各备选中提取出不同符号的值(步骤701)
接着,对于符号不同的所有位置j,计算符号的变化量与(αi)j之积的和,将所得的值确定为纠正因子差Y(αi)-Y1(αi)(步骤702)。然后,将该差加到存储于纠正因子存储单元502中的纠正因子上,从而更新了纠正因子(步骤703)。
图8为错误位置多项式计算单元504处的处理的流程图。错误位置多项式计算单元504首先完成初始化处理,以如下设置多项式C0(x)和B(x)、整数a、b和L(步骤801):
C0(x)=1
B(x)=1
a=1
b=1
L=0
接着,将表示重复次数的控制变量i设置为1(步骤802)。然后按照Berlekamp Massey方法利用纠正因子si的值根据第(i-1)个多项式Ci-1(x)的系数计算出第i个多项式Ci(x)的系数(步骤803)。在此情况下,设多项式Ci-1(x)的第j次项的系数为cj(j=1,2,…,L),则按照下面的算法计算多项式Ci(x)的系数,:
1)计算
d = s i + Σ j = 1 L c j s i - j
2)如果d=0,则
Ci-1(x)→Ci(x)
a+1→a
3)如果d≠0且2L>i-1,则
Ci-1(x)-db-1xaB(x)→Ci(x)
a+1→a
4)如果d≠0且2L≤i-1,则
Ci-1(x)-db-1xaB(x)→Ci(x)
i-L→L
Ci-1(x)→B(x)
d→b
1→a
然后比较i与生成器多项式的次数2t+1(步骤804)。如果i<2t+1,则使i=i+1(步骤806),并重复步骤803的计算。当i达到2t+1时,将多项式C2t(x)和C2t+1(x)的系数输出到比较单元505(步骤805)。
图9为比较单元505处的处理的流程图。比较单元505首先比较多项式C2t(x)的系数和多项式C2t+1(x)的各系数(步骤901),如果所有系数相同,则将多项式C2t+1(x)的系数作为错误位置多项式的系数输出至Chien搜索执行单元506(步骤902)。如果任一系数不同,则判断纠正失败,向数据存储单元231请求下一备选(步骤903)。
图10为判断单元507处的处理的流程图。判断单元507首先检查各纠正因子si(i=1,2,...,2t,2t+1)的值(步骤1001),如果所有纠正因子si为“0”,则判断不必进行纠正,将该判断结果输出至错误值计算单元508(步骤1003)。
如果任一纠正因子si不为“0”,则检查每个C(αj)(j=0,1,...,n)的值(步骤1002),如果存在C(αj)=0的位置,则将相应的位置j作为错误位置输出至错误值计算单元508(步骤1004)。如果所有C(αj)非零,则判断纠正失败,向数据存储单元231请求下一备选(步骤1005)。
在上述实施例中,说明是针对磁盘装置处的纠错提供的,不过,本发明也能够应用于存储产品(例如光盘装置)以及无线通信系统中使用的接收装置。本发明还可应用于BCH码。
同时,ECC编码器和ECC解码器不仅能通过硬件实现,也能通过软件实现。在由软件实现它们的情况下,使用图11所示的信息处理装置(例如,计算机)。
图11所示的信息处理装置包括中央处理单元(CPU)1101、存储器1102、输入装置1103、输出装置1104、外部存储装置1105、媒体驱动装置1106、网络连接装置1107和使前述所有部件互连的总线1108。
存储器1102包括只读存储器(ROM)、随机存取存储器(RAM)等,存储用于处理的程序和数据。CPU 1101使用存储器1102执行程序,从而执行编码处理和解码处理。
存储器1102存储了生成器多项式的系数、纠正因子多项式的系数和错误位置多项式的系数、解码备选的数据串、已纠错的数据串等等,作为处理目标或处理结果数据。在这种情况下,存储器1102用作图5所示的数据存储单元231和纠正因子存储单元502。
图3所示的奇偶校验生成单元301以及在图5所示的纠正因子计算单元501、纠正因子更新单元503、错误位置多项式计算单元504,比较单元505、Chien搜索执行单元506、判断单元507、错误值计算单元508对应于存储在存储器1102中的程序。
输入装置1103例如包括键盘、指示装置等,用于输入用户指令和信息。输出装置1104例如包括显示器、打印机、扬声器等,用于向用户输出查询和处理结果。
外部存储装置1105例如包括磁盘装置、光盘装置、磁光盘装置、磁带装置等。信息处理装置在外部存储装置1105中存储程序和数据,根据需要,通过将它们调入存储器1102而使用。
媒体驱动装置1106驱动便携式记录介质1109以存取记录内容。便携式记录介质1109为任意的计算机可读记录介质,例如存储卡、软盘、光盘、磁光盘。用户在便携式记录介质1109中存储程序和数据,根据需要,通过将它们调入存储器1102而使用它们。
网络连接装置1107被设置为通过与任意通信网络(如局域网(LAN))连接,来进行与通信相关的数据转换。该信息处理装置通过网络连接装置1107从外部装置接收程序和数据,并根据需要,通过将它们调入存储器1102而使用它们。

Claims (8)

1、一种纠错装置,所述纠错装置利用纠错数t的里德所罗门码或BCH码对数据串的错误进行纠正,所述纠错装置包括:
数据存储装置,存储多个数据串,各数据串包含至少2t+1个符号作为奇偶校验串;
纠正因子计算装置,根据所述多个数据串中的第一数据串计算一组纠正因子;
错误位置多项式计算装置,根据所述一组纠正因子计算错误位置多项式的系数;
判断装置,利用错误位置多项式的系数判断纠正是否成功,如果判断所述纠正失败,则向所述数据存储装置请求第二数据串,而如果判断所述纠正成功,则输出成功纠正的判断结果;
纠正装置,在接收到了所述成功纠正的判断结果时,利用所述一组纠正因子和所述错误位置多项式的系数对所述第一数据串的错误进行纠正。
2、根据权利要求1所述的纠错装置,其中,所述错误位置多项式计算装置根据Berlekamp Massey方法,重复利用第i个纠正因子,根据第(i-1)个多项式的系数获得第i个多项式的系数的计算,而且所述判断装置比较第(2t+1)个多项式的系数与第2t个多项式的系数,如果第(2t+1)个多项式的系数与第2t个多项式的系数不同则判断纠正失败。
3、根据权利要求1所述的纠错装置,其中,
所述纠正装置包括Chien搜索执行装置和纠错值计算装置,该Chien搜索执行装置在接收到所述成功纠正的所述判断结果时,使用所述错误位置多项式搜索所述第一数据串的错误位置,所述纠错值计算装置用于计算搜索到的错误位置的正确值。
4、根据权利要求3所述的纠错装置,其中,
所述纠正装置还包括判断装置,如果所述一组纠正因子中的至少一个纠正因子非零,以及如果所述Chien搜索执行装置没有找到错误位置,则所述判断装置判断纠正失败,向所述数据存储装置请求所述第二数据串。
5、根据权利要求1所述的纠错装置,所述纠错装置还包括纠正因子存储装置和纠正因子更新装置,
所述纠正因子存储装置存储所述一组纠正因子,所述纠正因子更新装置根据所述第一数据串和第二数据串的差计算各纠正因子的差,通过将获得的差加到所述一组纠正因子中包括的各纠正因子上来更新该组纠正因子,并将更新后的该组纠正因子作为所述第二数据串的一组纠正因子输出。
6、根据权利要求1所述的纠错装置,所述纠错装置还包括编码装置,所述编码装置利用给定的信息串和生成器多项式的系数产生包括至少2t+1个符号的奇偶校验串,并通过将该奇偶校验串加到所述给定信息串上来生成数据串。
7、一种纠错装置,该纠错装置利用里德所罗门码或BCH码对数据串的错误进行纠正,该纠错装置包括:
数据存储装置,存储多个数据串;
纠正因子计算装置,根据所述多个数据串中的第一数据串计算一组纠正因子;
纠正因子存储装置,存储所述的一组纠正因子;
纠正装置,利用所述一组纠正因子纠正所述第一数据串的错误;以及
纠正因子更新装置,根据所述第一数据串和第二数据串之间的差计算各纠正因子的差,通过将所获得的差加到所述一组纠正因子中包括的各纠正因子上来更新所述一组纠正因子,并在对所述第一数据串的纠正失败时,将更新后的所述一组纠正因子作为所述第二数据串的一组纠正因子输出。
8、一种信息存储装置,配有纠错装置,所述纠错装置利用纠错数t的里德所罗门码或BCH码对数据串的错误进行纠正,所述纠错装置包括:
数据存储装置,存储多个数据串,各数据串包含至少2t+1个符号作为奇偶校验串;
纠正因子计算装置,根据所述多个数据串中的第一数据串计算一组纠正因子;
错误位置多项式计算装置,根据所述一组纠正因子计算错误位置多项式的系数;
判断装置,利用错误位置多项式的系数判断纠正是否成功,如果判断所述纠正将失败,则向所述数据存储装置请求第二数据串,而如果判断所述纠正成功,则输出成功纠正的判断结果;
纠正装置,在接收到了所述成功纠正的判断结果时,利用所述一组纠正因子和所述错误位置多项式的系数对所述第一数据串的错误进行纠正。
CN2006101538144A 2006-03-30 2006-09-12 纠错装置 Expired - Fee Related CN101047388B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006096049A JP4598711B2 (ja) 2006-03-30 2006-03-30 誤り訂正装置
JP2006-096049 2006-03-30
JP2006096049 2006-03-30

Publications (2)

Publication Number Publication Date
CN101047388A true CN101047388A (zh) 2007-10-03
CN101047388B CN101047388B (zh) 2010-07-14

Family

ID=37890271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101538144A Expired - Fee Related CN101047388B (zh) 2006-03-30 2006-09-12 纠错装置

Country Status (6)

Country Link
US (1) US7793197B2 (zh)
EP (1) EP1841074B1 (zh)
JP (1) JP4598711B2 (zh)
KR (1) KR100848614B1 (zh)
CN (1) CN101047388B (zh)
DE (1) DE602006004170D1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510803B (zh) * 2009-03-03 2012-03-07 西安理工大学 无线激光通信GF(q)域上的纠错系统及其纠错方法
CN102045073B (zh) * 2009-10-26 2013-04-17 成都市华为赛门铁克科技有限公司 一种bch码译码方法和装置
CN101814922B (zh) * 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5251000B2 (ja) * 2006-11-01 2013-07-31 富士通株式会社 誤り訂正回路及び媒体記憶装置
US8205144B1 (en) 2008-10-13 2012-06-19 Marvell International Ltd. Error event processing methods and systems
JP5367686B2 (ja) 2010-12-24 2013-12-11 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
JP2012137885A (ja) 2010-12-24 2012-07-19 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
KR101800445B1 (ko) 2011-05-09 2017-12-21 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
WO2013038464A1 (en) * 2011-09-16 2013-03-21 Hitachi, Ltd. Multi-stage encoding and decoding of bch codes for flash memories
KR101226439B1 (ko) 2011-12-27 2013-01-25 한국과학기술원 리드-솔로몬 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법
US20140068378A1 (en) * 2012-08-31 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor storage device and memory controller
JP2014082574A (ja) * 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
CN104184544B (zh) * 2013-05-24 2019-01-11 中兴通讯股份有限公司 一种解码方法及装置
JP2015053096A (ja) 2013-09-09 2015-03-19 マイクロン テクノロジー, インク. 半導体装置、及び誤り訂正方法
TWI514778B (zh) * 2014-03-27 2015-12-21 Storart Technology Co Ltd 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路
US10381102B2 (en) 2014-04-30 2019-08-13 Micron Technology, Inc. Memory devices having a read function of data stored in a plurality of reference cells
KR102504176B1 (ko) * 2016-06-23 2023-03-02 에스케이하이닉스 주식회사 반도체장치
US10636495B2 (en) 2018-06-12 2020-04-28 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
JP2021150733A (ja) 2020-03-17 2021-09-27 キオクシア株式会社 半導体装置及び半導体記憶装置
US11972822B2 (en) * 2021-09-24 2024-04-30 Sandisk Technologies Llc Programmable ECC for MRAM mixed-read scheme
US11978491B2 (en) 2021-09-24 2024-05-07 Sandisk Technologies Llc Mixed current-forced read scheme for MRAM array with selector

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63236416A (ja) * 1987-03-25 1988-10-03 Mitsubishi Electric Corp 符号化復号化方法
WO1992013344A1 (en) * 1991-01-22 1992-08-06 Fujitsu Limited Error correction processing device and error correction method
JP3615778B2 (ja) * 1993-04-05 2005-02-02 日本フィリップス株式会社 カラー撮像装置
US5771244A (en) 1994-03-09 1998-06-23 University Of Southern California Universal Reed-Solomon coder/encoder
US5778009A (en) 1995-06-14 1998-07-07 Quantum Corporation Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
US5942005A (en) * 1997-04-08 1999-08-24 International Business Machines Corporation Method and means for computationally efficient error and erasure correction in linear cyclic codes
JPH113573A (ja) * 1997-04-15 1999-01-06 Mitsubishi Electric Corp 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
JPH11272568A (ja) * 1998-01-07 1999-10-08 Hitachi Ltd 記憶再生装置、誤り訂正方法及びこれらを用いた携帯情報端末ならびにディジタルカメラ
KR100301518B1 (ko) * 1999-07-28 2001-11-01 구자홍 리드 솔로몬 복호기에서의 정정 불가능 에러 검출 방법
JP2001167222A (ja) 1999-09-29 2001-06-22 Denso Corp 誤り訂正方法、2次元コード読取方法、2次元コード読取装置及び記録媒体
EP1102406A3 (en) * 1999-11-17 2003-11-19 STMicroelectronics, Inc. Apparatus and method for decoding digital data
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
CN100394506C (zh) * 2003-08-20 2008-06-11 上海乐金广电电子有限公司 纠错装置及方法
JP4534498B2 (ja) 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
JP2006048783A (ja) * 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814922B (zh) * 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统
CN101510803B (zh) * 2009-03-03 2012-03-07 西安理工大学 无线激光通信GF(q)域上的纠错系统及其纠错方法
CN102045073B (zh) * 2009-10-26 2013-04-17 成都市华为赛门铁克科技有限公司 一种bch码译码方法和装置

Also Published As

Publication number Publication date
DE602006004170D1 (de) 2009-01-22
KR100848614B1 (ko) 2008-07-28
EP1841074A2 (en) 2007-10-03
US20070245220A1 (en) 2007-10-18
EP1841074B1 (en) 2008-12-10
US7793197B2 (en) 2010-09-07
JP4598711B2 (ja) 2010-12-15
EP1841074A3 (en) 2007-12-19
CN101047388B (zh) 2010-07-14
JP2007274239A (ja) 2007-10-18
KR20070098426A (ko) 2007-10-05

Similar Documents

Publication Publication Date Title
CN101047388A (zh) 纠错装置
JP4833173B2 (ja) 復号化器、符号化・復号化装置及び記録再生装置
CN1311639C (zh) 软纠错代数解码器
CN1084966C (zh) 纠错编码译码方法和利用这种方法的电路
JP3966993B2 (ja) 積符号の誤り訂正および並行検査
CN101064162A (zh) 纠错装置、编码器、解码器、方法以及信息存储装置
JP5251000B2 (ja) 誤り訂正回路及び媒体記憶装置
CN1838542A (zh) 解码设备和方法以及程序
US20110004812A1 (en) Coder-decoder and method for encoding and decoding an error correction code
CN1941138A (zh) 信号处理装置、信号处理方法及存储系统
CN1122025A (zh) 纠错译码器和纠错译码方法
CN1359103A (zh) 采用纠错码的数据处理方法和采用该方法的设备
CN1941139A (zh) 信号处理装置、信号处理方法及存储系统
CN1465140A (zh) 编码和解码事前部分地已知的信息
EP2141816A1 (en) Encoding method, encoding apparatus, decoding method, and decoding apparatus using block code
CN1941137A (zh) 信号处理装置、信号处理方法及存储系统
CN1311464C (zh) 数据记录方法,数据记录装置,编码方法和编码装置
CN1318905A (zh) 测链搜索装置
CN1369984A (zh) 处理(m)或(2m)比特数据的里德-索罗门解码器及其解码方法
CN1290113C (zh) 数据再现方法和装置
CN1152379C (zh) 光盘驱动装置的编码/解码系统
CN1482744A (zh) 交叉交织理德-所罗门码的校正
CN1725354A (zh) 数据处理设备和方法
US7293220B2 (en) Data accessing apparatus and method
CN1797585A (zh) 检测由磁记录介质再现的码字中的错误事件的方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100714

Termination date: 20180912

CF01 Termination of patent right due to non-payment of annual fee