CN101938280A - 错误修正码的编码及解码方法以及编码解码器 - Google Patents

错误修正码的编码及解码方法以及编码解码器 Download PDF

Info

Publication number
CN101938280A
CN101938280A CN2009101680232A CN200910168023A CN101938280A CN 101938280 A CN101938280 A CN 101938280A CN 2009101680232 A CN2009101680232 A CN 2009101680232A CN 200910168023 A CN200910168023 A CN 200910168023A CN 101938280 A CN101938280 A CN 101938280A
Authority
CN
China
Prior art keywords
code
short
long
syndrome
check
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
CN2009101680232A
Other languages
English (en)
Other versions
CN101938280B (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.)
Huirong Technology (Shenzhen) Co.,Ltd.
Silicon Motion Inc
Original Assignee
Silicon Motion Shenzhen Inc
Silicon Motion 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 Silicon Motion Shenzhen Inc, Silicon Motion Inc filed Critical Silicon Motion Shenzhen Inc
Publication of CN101938280A publication Critical patent/CN101938280A/zh
Application granted granted Critical
Publication of CN101938280B publication Critical patent/CN101938280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words

Landscapes

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

Abstract

本发明涉及一种错误修正码的编码及解码方法,其包括:接收一原始数据;将该原始数据分割为多个区段数据;依据一第一产生多项式分别产生该等区段数据之短检查码;附加该等短检查码于该等区段数据之后,以分别产生多个短码字;结合该等短码字以得到一编码数据;依据一第二产生多项式以产生该编码数据之长检查码,其中该第一产生多项式为该第二产生多项式之至少一个最小多项式的函式;附加该长检查码于该编码数据之后,以产生该错误修正码之一长码字。本发明还涉及一种错误修正码的编码解码器,其包括一错误修正码编码器和一错误修正码解码器。本发明还涉及一种错误修正码的解码方法。本发明减少了错误修正码的解码时间,增进了解码器的效能。

Description

错误修正码的编码及解码方法以及编码解码器
技术领域
本发明涉及数据通信技术领域,更具体地说,涉及一种错误修正码的编码及解码方法以及编码解码器。
背景技术
错误修正码(error correction code)用于修正数据的错误。通信系统所传输的数据于传输端传送前经常事先被编码为错误修正码(包含数据讯息及检查码)。当接收端收到错误修正码数据时,即使数据于传输过程中遭受损毁而产生随机错误,亦可藉解码错误修正码而回复正确的数据。同样的,数据储存系统亦经常在储存数据前将所储存的数据编码为错误修正码。当数据于储存过程中遭受损毁而产生随机错误时,亦可藉解码错误修正码而回复正确的数据。常见的错误修正码如BCH码(Bose,Ray-Chaudhuri,and Hocquenghem code)及RS码(Reed-Solomon code)。BCH码常用于闪存数据的储存,而RS码常用于光盘数据的储存。
当数据储存系统欲取出其所储存的数据时,所取出的为编码后的错误修正码,因此在数据使用前必须先解码错误修正码,以还原为原始数据。图1为错误修正码的习知解码方法100的流程图。首先,解码器接收一错误修正码(步骤102)。接着,解码器依据该错误修正码的检查码(parity)计算多个症状码(syndrome)(步骤104)。接着,解码器检查是否该等症状码皆为零(步骤106)。若该等症状码为零,表示错误修正码没有发生错误,因此不需进一步的修正。反之,若该等症状码有其中之一不为零,表示错误修正码有错误发生,因此必须对错误修正码进行修正。首先,解码器依据该等症状码计算一错误多项式(error-location polynomial)的多个系数(步骤108)。接着,解码器执行一秦氏搜寻(Chien search)以找出该错误多项式的根(步骤110)。由于该错误多项式的根指示错误修正码中发生错误的位的位置,因此解码器便可依据该错误多项式的根修正该错误修正码(步骤112),而得到无错误的错误修正码,亦即得到正确的数据。
然而,当解码器于步骤108计算错误多项式的系数时,会耗费许多时间。同样的,当解码器于步骤110进行秦氏搜寻以找出错误多项式的根时,亦会耗费许多时间。于习知的解码方法100中,只要错误修正码的多个症状码其中之一不为零便表示有错误发生,因此必须执行步骤108与步骤110以便修正错误,也因而造成系统的解码时间的延迟。于错误修正码的多个症状码不为零时,若能在部分情况中以其它方式修正错误修正码,进而避免于步骤108中计算错误多项式的系数以及于步骤110中进行秦氏搜寻以找出错误多项式的根,则可大大的减少所需的解码时间,而增进解码器的效能。因此,需要一种可减少错误修正码的解码时间的编码及解码方法。
发明内容
本发明所要解决的技术问题在于针对现有技术的上述缺陷,提供一种错误修正码的编码及解码方法以及编码解码器。
本发明解决其技术问题所采用的技术方案之一是:构造一种错误修正码的编码及解码方法,其包括下列步骤:接收一原始数据;将该原始数据分割为多个区段数据;依据一第一产生多项式(generator polynomial)分别产生该等区段数据之短检查码(short parity);附加该等短检查码于该等区段数据之后,以分别产生多个短码字(short codeword);结合该等短码字以得到一编码数据;依据一第二产生多项式(generator polynomial)以产生该编码数据之长检查码(long parity),其中该第一产生多项式为该第二产生多项式之至少一个最小多项式(minimumpolynomial)的函式;附加该长检查码于该编码数据之后,以产生该错误修正码之一长码字(long codeword)。
本发明所述的错误修正码的编码及解码方法,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式。
本发明所述的错误修正码的编码及解码方法,更包括储存该长码字于一储存媒体中。
本发明所述的错误修正码的编码及解码方法,更包括:
自一储存媒体读出该长码字;自该长码字取出其所包含的该等短码字;依据该等短码字的该等短检查码计算该等短码字的多个短症状码;检查是否该等短症状码皆为零;以及当该等短症状码其中的一至数个非零短症状码不为零时,利用该等非零短症状码更正对应的该等短码字。
本发明所述的错误修正码的编码及解码方法,更包括:
当该等短症状码计算完毕后,依据该长码字的该长检查码计算该长码字的一长症状码;检查是否该长症状码为零;当该长症状码不为零时,检查是否该等非零短症状码均可正确更正对应的该等短码字;以及当该等非零短症状码均可正确更正对应的该等短码字时,利用该等非零短症状码更正该长症状码,以得一更正后长症状码。
本发明所述的错误修正码的编码及解码方法,更包括:
当该长症状码不为零,且该等非零短症状码的部分无法正确更正对应的该等短码字时,利用该长症状码对无法正确更正的该等短码字进行修正。
本发明所述的错误修正码的编码及解码方法,其中该长码字及该等短码字为BCH码或RS码。
本发明解决其技术问题所采用的技术方案之二是:构造一种错误修正码的编码解码器,其包括一错误修正码编码器以及一错误修正码解码器;该错误修正码编码器接收一原始数据,将该原始数据分割为多个区段数据,产生该等区段数据之短检查码(short parity),附加该等短检查码于该等区段数据之后以分别产生多个短码字(short codeword),结合该等短码字以得到一编码数据,产生该编码数据之长检查码(long parity),以及附加该长检查码于该编码数据之后以产生一长码字(long codeword),以供储存于一储存媒体;该错误修正码解码器自该储存媒体读出该长码字,自该长码字取出其所包含的该等短码字,依据该等短码字的该等短检查码计算该等短码字的多个短症状码(short syndrome),检查是否该等短症状码皆为零,以及当该等短症状码其中之一至数个非零短症状码不为零时,利用该等非零短症状码更正对应之该等短码字。
本发明所述的错误修正码的编码解码器,其中该错误修正码编码器依据一第一产生多项式以产生该等区段数据的该等短检查码,并依据一第二产生多项式以产生该编码数据的该长检查码,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的函式。
本发明所述的错误修正码的编码解码器,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式。
本发明所述的错误修正码的编码解码器,其中该错误修正码编码器包括:
一短码字编码器,依据该第一产生多项式以产生该等区段数据的该等短检查码;一第一添附器,附加该等短检查码于该等区段数据之后以分别产生该等短码字;一长码字编码器,结合该等短码字以得到该编码数据,并依据该第二产生多项式以产生该编码数据的该长检查码;以及一第二添附器,附加该长检查码于该编码数据之后以产生该长码字。
本发明所述的错误修正码的编码解码器,其中当该等短症状码计算完毕后,该错误修正码解码器依据该长码字的该长检查码计算该长码字的一长症状码,检查是否该长症状码为零,当该长症状码不为零时检查是否该等非零短症状码均可正确更正对应的该等短码字,当该等非零短症状码均可正确更正对应的该等短码字时,利用该等非零短症状码更正该长症状码以得一更正后长症状码。
本发明所述的错误修正码的编码解码器,其中当该长症状码不为零,且该等非零短症状码的部分无法正确更正对应的该等短码字时,该错误修正码解码器利用该长症状码对无法正确更正的该等短码字进行修正。
本发明所述的错误修正码的编码解码器,其中该错误修正码解码器包括:
一症状码计算模块,依据该等短码字的该等短检查码计算该等短码字的该等短症状码,并依据该长码字的该长检查码计算该长码字的该等长症状码;
一控制电路,检查是否该等短症状码皆为零,当该等短症状码其中的该等非零短症状码不为零时利用该等非零短症状码更正对应的该等短码字,检查是否该长症状码为零,当该长症状码不为零时检查是否该等非零短症状码均可正确更正对应的该等短码字,以及当该等非零短症状码均可正确更正对应的该等短码字时利用该等非零短症状码更正该长症状码。
本发明所述的错误修正码的编码解码器,其中该长码字及该等短码字为BCH码或RS码。
本发明解决其技术问题所采用的技术方案之三是:构造一种错误修正码的解码方法,其包括下列步骤:接收该错误修正码之一长码字(long codeword),其中该长码字包括多个短码字(short codeword)及一长检查码(long parity),每一该等短码字均包括一短检查码(short parity);自该长码字取出其所包含的该等短码字;依据该等短码字的该等短检查码计算该等短码字的多个短症状码(short syndrome);检查是否该等短症状码皆为零;当该等短症状码其中之一至数个非零短症状码不为零时,利用该等非零短症状码更正对应之该等短码字;当该等短症状码计算完毕后,依据该长码字的该长检查码计算该长码字的一长症状码(long syndrome);检查是否该长症状码为零;当该长症状码不为零时,检查是否该等非零短症状码均可正确更正对应之该等短码字;当该等非零短症状码均可正确更正对应之该等短码字时,利用该等非零短症状码更正该长症状码,以得一更正后长症状码。
本发明所述的错误修正码的解码方法,更包括:
当该长症状码不为零,且该等非零短症状码的部分无法正确更正对应的该等短码字时,利用该长症状码对无法正确更正的该等短码字进行修正。
本发明所述的错误修正码的解码方法,其中该等短码字的该等短检查码依据一第一产生多项式所产生,该长码字的该长检查码依据一第二产生多项式所产生,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的函式。
本发明所述的错误修正码的解码方法,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式。
本发明所述的错误修正码的解码方法,其中该长码字及该等短码字为BCH码或RS码。
实施本发明的技术方案,具有以下有益效果:减少了错误修正码的解码时间,降低了误判的机率,增进了解码器的效能。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是错误修正码的习知解码方法的流程图;
图2是本发明的数据储存系统的区块图;
图3A是本发明的错误修正码编码器的区块图;
图3B是本发明的错误修正码的编码方法的流程图;
图4是本发明所产生的一长码字的示意图;
图5是本发明的编码器的电路图,该编码器可为图3A的短码字编码器或长码字编码器;
图6是本发明的错误修正码解码器的区块图;
图7是本发明的症状码计算模块的电路图;
图8是本发明的错误修正码的解码方法的流程图。
图中,202是主机;204是数据储存装置;212是控制器;214是储存媒体;222是错误修正码编码器;224是错误修正码解码器;300是错误修正码编码器;302是短码字编码器;304是第一添附器;306是长码字编码器;308是第二添附器;CL是长码字;CS1、CS2、...、CSN是短码字;D1、D2、...、DN是区段数据;PS1、PS2、...、PSN是短检查码;PL是长检查码;500是短码字编码器或长码字编码器;530,511-51N是缓冲器;501-50N是加法器;521-52N是乘法器;600是错误修正码解码器;602是症状码计算模块;604是错误多项式计算模块;606是秦氏搜寻模块;608是控制电路;700是症状码计算模块;701、702、...、70K是症状码产生器;731-73K是加法器;721-72K是乘法器;711-71K是缓冲器。
具体实施方式
图2是本发明的数据储存系统200的区块图。于一实施例中,数据储存系统200包括一主机202以及一数据储存装置204。该数据储存装置204包括一控制器212及一储存媒体214。于一实施例中,控制器212包括一错误修正码编码器222以及一错误修正码解码器224。当主机202欲储存数据D1入数据储存装置204时,控制器212的错误修正码编码器222先将数据D1编码为错误修正码C1,控制器212再将错误修正码C1储存于储存媒体214。当主机202自数据储存装置204读取数据D2时,控制器212先自储存媒体214读取包含数据D2的错误修正码C2,再由控制器212的错误修正码解码器224将错误修正码C2解码为数据D2,最后控制器212再将数据D2传送至主机202。于一实施例中,数据储存装置204为一记忆卡,储存媒体214为一闪存,而错误修正码C1与C2为BCH码。于另一实施例中,数据储存装置204为一光驱,储存媒体214为一光盘片,而错误修正码C1与C2为RS码。请注意到,储存装置与错误修正码的类型并非本发明的限制,熟悉此项技艺者在本发明的实施例的教导下当可将其应用至任何类型的储存装置与错误修正码。
图3A是本发明的错误修正码编码器300的区块图。于一实施例中,错误修正码编码器300包括短码字编码器302、第一添附器304、长码字编码器306、以及第二添附器308。图3B是本发明的错误修正码的编码方法350的流程图。图3A的错误修正码编码器300依据图3B的编码方法350将原始数据D编码为错误修正码的一长码字CL。首先,错误修正码编码器300接收一原始数据D(步骤352)。接着,错误修正码编码器300将该原始数据D分割为多个区段数据(步骤354)。当短码字编码器302收到该等区段数据后,短码字编码器302接着依据一第一产生多项式(generator polynomial)依序产生该等区段数据的短检查码(short parity)Ps(步骤356)。
接着,第一添附器304附加该等短检查码Ps于该等区段数据之后,以分别产生多个短码字(short codeword)Cs(步骤358)。长码字编码器306接着结合该等短码字Ps以得到一编码数据(步骤360),并依据一第二产生多项式(generator polynomial)以产生该编码数据的长检查码(long parity)PL(步骤362)。最后,第二添附器308附加该长检查码PL于该编码数据之后,以产生该错误修正码的一长码字(long codeword)CL(步骤364)。其中,短码字编码器302的第一产生多项式为长码字编码器306的第二产生多项式的至少一个最小多项式(minimum polynomial)的函式。于一实施例中,该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式(least common multiple,LCM)。举例来说,假设长码字编码器306对应的第二产生多项式g(x)为多个最小多项式Ψ1(x)、Ψ2(x)、...、Ψk(x)的最小公倍式{Ψ1(x)×Ψ2(x)×...×Ψk(x)}。于一实施例中,短码字编码器302对应的第一产生多项式g’(x)为最小多项式Ψ1(x)。于另一实施例中,短码字编码器302对应的第一产生多项式g’(x)为最小多项式Ψ1(x)与Ψ2(x)的最小公倍式[Ψ1(x)×Ψ2(x)]。
图4是本发明所产生的一长码字CL的示意图。长码字CL由N个短码字CS1、CS2、...、CSN及一个长检查码PL所组成。每一个短码字CS1、CS2、...、CSN包括一区段数据及一短检查码。举例来说,短码字CS1由检查码PS1接续于相对应的区段数据D1之后而形成,短码字CS2由检查码PS2接续于相对应的区段数据D2之后而形成,而短码字CSN由检查码PSN接续于相对应的区段数据DN之后而形成。原始数据被切割为多个区段数据D1、D2、...、DN,而原始数据在经由图3A的错误修正码编码器300编码后形成图4的长码字CL
图5是本发明的编码器500的电路图,该编码器500可为图3A中的短码字编码器302或长码字编码器306。假设编码器500依据一产生多项式g(x)将数据DA转换为检查码P,而产生多项式g(x)的一次项系数为g1、二次项系数为g2、...、N次项系数为gN。编码器500包括加法器540、乘法器521~52N、加法器501~50N、以及缓冲器511~51N及530。首先,数据DA的位依次被送至加法器540。加法器540依次将数据DA的位与缓冲器51N储存的数据位DDN相加而得到数据DB。乘法器521、522、...、52N接着分别将数据DB与产生多项式g(x)的系数g1、g2、...、gN相乘而分别得到数据DC1、DC2、...、DCN。数据DB在经过缓冲器530的储存后,依次由加法器501、502、...、50N分别与数据DC1、DC2、...、DCN相加,而得到数据DDN。最后,缓冲器51N储存数据DDN后,将数据DDN输出为检查码P。
图6是本发明的错误修正码解码器600的区块图。于一实施例中,错误修正码解码器600包括症状码计算模块602、错误多项式计算模块604、秦氏搜寻模块606、以及控制电路608。当错误修正码解码器600收到错误修正码的一长码字时,错误修正码解码器600自该长码字取出其所包含的多个短码字。首先,症状码计算模块602依据该等短码字的短检查码计算该等短码字的多个短症状码(short syndrome)S1a,S1b,...,S1N,并依据该长码字的该长检查码计算该长码字的多个长症状码(long syndrome)S1,S2,...,SK。错误多项式计算模块604用以依据长码字的长症状码S1,S2,...,SK计算该长码字的错误多项式(error location polynomial)的系数。秦氏搜寻模块606用以找出该错误多项式的多个根,以供修正错误修正码的长码字。此外,当短码字的短症状码S1a,S1b,...,S1N不为0时,错误多项式计算模块604亦会依据不为零的短症状码计算短码字的错误多项式,并由秦氏搜寻模块606进行秦氏搜寻找出短码字的错误多项式的根,以立即更正短码字发生的错误。与图1的习知方法100类似,控制电路608检查长症状码S1,S2,...,SK是否为零,并于该等长症状码S1,S2,...,SK皆为零时停止错误多项式计算模块604对错误多项式的系数的计算,并停止该秦氏搜寻模块606对错误多项式的根的搜寻。然而,控制电路608尚有其它功能,可减少解码长码字所需的时间,而提升错误修正码解码器600的效能。此部分功能将以图8说明。
于一实施例中,由于用以编码短码字的第一产生多项式是用以编码长码字的第二产生多项式的最小多项式的函式,因此可利用同一组症状码计算模块602计算长码字的症状码与短码字的症状码。图7是本发明的症状码计算模块700的电路图。症状码计算模块700包括多个症状码产生器701、702、...、70K,该等症状码产生器701、702、...、70K分别产生长症状码的长症状码S1、S2、...、SK。症状码产生器701亦产生多个短码字的短症状码S1a,S1b,...,S1N。于一实施例中,长码字的数据位D被依次递送至症状码产生器702、...、70K,当长码字的数据位D被处理完毕,症状码产生器702、...、70K便产生长码字的长症状码S2、...、SK。同时,短码字的数据位D亦依序被递送至症状码产生器701。每当一短码字的数据位D被处理完毕,症状码产生器701便产生该短码字相应的一短症状码。例如,当区段数据D1与短检查码PS1被输入至症状码产生器701时,症状码产生器701便产生短码字CS1的短症状码;当区段数据D2与短检查码PS2被输入至症状码产生器701时,症状码产生器701便产生短码字CS2的短症状码。由于长码字由多个短码字所组成,当症状码产生器701将长码字所包括的多个短码字的数据位D均处理完毕,症状码产生器701便产生长码字的长症状码S1
图7中的每一症状码产生器701、702、...、70K包括一加法器、一乘法器、以及一缓冲器。举例来说,于第一症状码产生器701中,缓冲器711储存数据D1并将其输出。加法器731将长码字的数据位D与缓冲器711输出的数据D1相加后得到一第一症状码S1。乘法器721将系数α与症状码S1相乘后得到数据D1,而新得到的数据D1再被送至缓冲器711中储存。症状码产生器701的系数α为长码字编码器的产生多项式与短码字编码器的产生多项式的共同根,而其它症状码产生器702、...、70K的系数分别为α2、...、αK。而α、α2、...、αK为长码字编码器的产生多项式的根。
图8是本发明的错误修正码的解码方法800的流程图。图6的错误修正码解码器600依据方法800进行错误修正码的解码。首先,错误修正码解码器600接收一长码字(步骤802)。接着,症状码计算模块602循序计算该长码字中一短码字的短症状码(步骤804),例如,错误修正码解码器600首先对长码字CL中第一个短码字CS1进行计算。此时控制电路608检查是否计算得到的短症状码为零(步骤806)。当短症状码为零时,表示短码字正确无误,因此症状码计算模块602继续计算该长码字中其它的短码字的短症状码(步骤804),例如,接着计算第二个短码字CS2、第三个短码字CS3......直到该长码字中所有短码字均处理完毕为止(步骤812)。当短症状码不为零时,表示短码字有错误,因此控制电路608利用非零短症状码更正该短码字并纪录更正结果(步骤808),再由症状码计算模块602继续计算该长码字中的短码字的短症状码(步骤804),直到该长码字中所有短码字均处理完毕为止(步骤810)。
接着,症状码计算模块602计算长码字的长症状码(步骤814)。若长症状码为零(步骤816),表示长码字正确无误,则该长码字的解码结束。若长症状码不为零(步骤816),表示长码字有错误。此时控制电路608继续检查是否所有非零短症状码均可正确更正短码字(步骤818)。若所有非零短症状码均可正确更正短码字(步骤818),则控制电路608利用非零短症状码更正长症状码(步骤820),例如,若第四短码字的CS4的短症状码并非全为零,则利用该非零短症状码去更正非零长症状码中相对应的位置。若更正后长症状码为零(步骤822),表示该些错误已藉由短症状码更正成功,则可将该些利用短码字更正的更正结果回复予主机,无需再利用长症状码进行更正整个长码字,可大幅节省时间。若更正后长症状码不为零(步骤822),或部分非零短症状码无法正确更正短码字(步骤818),则控制电路608利用原本的长症状码针对无法正确更正的短码字进行修正(步骤824),以得到正确的长码字,而该长码字的解码结束。
若当所有短症状码为零时即认为该长码字正确无误,可能会发生误判。因为短症状码的更正能力较低,可能仅有一个或两个位的更正能力,而当该短码字发生的错误超过该短症状码的更正能力时,例如出现8个位的错误,该短症状码亦可能被计算为零。因此需要利用更正能力较强的长症状码再度进行检验。长症状码的更正能力较高,可能有24个位的更正能力。故若某短码字中出现8个位的错误,仍可通过长症状码发现,并进行后续更正。发生误判的机率就可降低。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。

Claims (20)

1.一种错误修正码的编码及解码方法,其特征在于,包括下列步骤:
接收一原始数据;
将该原始数据分割为多个区段数据;
依据一第一产生多项式分别产生该等区段数据的短检查码;
附加该等短检查码于该等区段数据之后,以分别产生多个短码字;
结合该等短码字以得到一编码数据;
依据一第二产生多项式以产生该编码数据的长检查码,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的函式;
附加该长检查码于该编码数据之后,以产生该错误修正码的一长码字。
2.根据权利要求1所述的错误修正码的编码及解码方法,其特征在于,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式。
3.根据权利要求1所述的错误修正码的编码及解码方法,其特征在于,更包括储存该长码字于一储存媒体中。
4.根据权利要求1所述的错误修正码的编码及解码方法,其特征在于,更包括:
自一储存媒体读出该长码字;
自该长码字取出其所包含的该等短码字;
依据该等短码字的该等短检查码计算该等短码字的多个短症状码;
检查是否该等短症状码皆为零;以及
当该等短症状码其中的一至数个非零短症状码不为零时,利用该等非零短症状码更正对应的该等短码字。
5.根据权利要求4所述的错误修正码的编码及解码方法,其特征在于,更包括:
当该等短症状码计算完毕后,依据该长码字的该长检查码计算该长码字的一长症状码;
检查是否该长症状码为零;
当该长症状码不为零时,检查是否该等非零短症状码均可正确更正对应的该等短码字;以及
当该等非零短症状码均可正确更正对应的该等短码字时,利用该等非零短症状码更正该长症状码,以得一更正后长症状码。
6.根据权利要求5所述的错误修正码的编码及解码方法,其特征在于,更包括:
当该长症状码不为零,且该等非零短症状码的部分无法正确更正对应的该等短码字时,利用该长症状码对无法正确更正的该等短码字进行修正。
7.根据权利要求1所述的错误修正码的编码及解码方法,其特征在于,其中该长码字及该等短码字为BCH码或RS码。
8.一种错误修正码的编码解码器,其特征在于,包括:
一错误修正码编码器,接收一原始数据,将该原始数据分割为多个区段数据,产生该等区段数据的短检查码,附加该等短检查码于该等区段数据之后以分别产生多个短码字,结合该等短码字以得到一编码数据,产生该编码数据的长检查码,以及附加该长检查码于该编码数据之后以产生一长码字以供储存于一储存媒体;以及
一错误修正码解码器,自该储存媒体读出该长码字,自该长码字取出其所包含的该等短码字,依据该等短码字的该等短检查码计算该等短码字的多个短症状码,检查是否该等短症状码皆为零,以及当该等短症状码其中的一至数个非零短症状码不为零时,利用该等非零短症状码更正对应的该等短码字。
9.根据权利要求8所述的错误修正码的编码解码器,其特征在于,其中该错误修正码编码器依据一第一产生多项式以产生该等区段数据的该等短检查码,并依据一第二产生多项式以产生该编码数据的该长检查码,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的函式。
10.根据权利要求9所述的错误修正码的编码解码器,其特征在于,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式。
11.根据权利要求9所述的错误修正码的编码解码器,其特征在于,其中该错误修正码编码器包括:
一短码字编码器,依据该第一产生多项式以产生该等区段数据的该等短检查码;
一第一添附器,附加该等短检查码于该等区段数据之后以分别产生该等短码字;
一长码字编码器,结合该等短码字以得到该编码数据,并依据该第二产生多项式以产生该编码数据的该长检查码;以及
一第二添附器,附加该长检查码于该编码数据之后以产生该长码字。
12.根据权利要求8所述的错误修正码的编码解码器,其特征在于,其中当该等短症状码计算完毕后,该错误修正码解码器依据该长码字的该长检查码计算该长码字的一长症状码,检查是否该长症状码为零,当该长症状码不为零时检查是否该等非零短症状码均可正确更正对应的该等短码字,当该等非零短症状码均可正确更正对应的该等短码字时,利用该等非零短症状码更正该长症状码以得一更正后长症状码。
13.根据权利要求8所述的错误修正码的编码解码器,其特征在于,其中当该长症状码不为零,且该等非零短症状码的部分无法正确更正对应的该等短码字时,该错误修正码解码器利用该长症状码对无法正确更正的该等短码字进行修正。
14.根据权利要求12所述的错误修正码的编码解码器,其特征在于,其中该错误修正码解码器包括:
一症状码计算模块,依据该等短码字的该等短检查码计算该等短码字的该等短症状码,并依据该长码字的该长检查码计算该长码字的该等长症状码;
一控制电路,检查是否该等短症状码皆为零,当该等短症状码其中的该等非零短症状码不为零时利用该等非零短症状码更正对应的该等短码字,检查是否该长症状码为零,当该长症状码不为零时检查是否该等非零短症状码均可正确更正对应的该等短码字,以及当该等非零短症状码均可正确更正对应的该等短码字时利用该等非零短症状码更正该长症状码。
15.根据权利要求8所述的错误修正码的编码解码器,其特征在于,其中该长码字及该等短码字为BCH码或RS码。
16.一种错误修正码的解码方法,其特征在于,包括下列步骤:
接收该错误修正码的一长码字,其中该长码字包括多个短码字及一长检查码,每一该等短码字均包括一短检查码;
自该长码字取出其所包含的该等短码字;
依据该等短码字的该等短检查码计算该等短码字的多个短症状码;
检查是否该等短症状码皆为零;
当该等短症状码其中的一至数个非零短症状码不为零时,利用该等非零短症状码更正对应的该等短码字;
当该等短症状码计算完毕后,依据该长码字的该长检查码计算该长码字的一长症状码;
检查是否该长症状码为零;
当该长症状码不为零时,检查是否该等非零短症状码均可正确更正对应的该等短码字;以及
当该等非零短症状码均可正确更正对应的该等短码字时,利用该等非零短症状码更正该长症状码,以得一更正后长症状码。
17.根据权利要求16所述的错误修正码的解码方法,其特征在于,更包括:
当该长症状码不为零,且该等非零短症状码的部分无法正确更正对应的该等短码字时,利用该长症状码对无法正确更正的该等短码字进行修正。
18.根据权利要求16所述的错误修正码的解码方法,其特征在于,其中该等短码字的该等短检查码依据一第一产生多项式所产生,该长码字的该长检查码依据一第二产生多项式所产生,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的函式。
19.根据权利要求16所述的错误修正码的解码方法,其特征在于,其中该第一产生多项式为该第二产生多项式的至少一个最小多项式的最小公倍式。
20.根据权利要求16所述的错误修正码的解码方法,其特征在于,其中该长码字及该等短码字为BCH码或RS码。
CN2009101680232A 2009-07-01 2009-08-10 错误修正码的编码及解码方法以及编码解码器 Active CN101938280B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22246809P 2009-07-01 2009-07-01
US61/222,468 2009-07-01

Publications (2)

Publication Number Publication Date
CN101938280A true CN101938280A (zh) 2011-01-05
CN101938280B CN101938280B (zh) 2013-09-25

Family

ID=43391438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101680232A Active CN101938280B (zh) 2009-07-01 2009-08-10 错误修正码的编码及解码方法以及编码解码器

Country Status (4)

Country Link
KR (1) KR101314232B1 (zh)
CN (1) CN101938280B (zh)
TW (1) TWI397811B (zh)
WO (1) WO2011000176A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102832949A (zh) * 2011-06-13 2012-12-19 慧荣科技股份有限公司 控制基于消息传递算法的译码操作的方法及其控制装置
CN110352408A (zh) * 2017-06-09 2019-10-18 西部数据技术公司 具有应用程序感知纠错码的非易失性存储系统
WO2022228542A1 (zh) * 2021-04-30 2022-11-03 华为技术有限公司 数据传输方法、装置、系统及可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101636406B1 (ko) * 2015-01-30 2016-07-05 고려대학교 산학협력단 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법
TWI566091B (zh) 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
CN109314603B (zh) 2016-06-19 2022-08-16 Lg 电子株式会社 数据传输方法和发射机

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4630271A (en) * 1983-01-20 1986-12-16 Nippon Hoso Kyokai Error correction method and apparatus for data broadcasting system
US5642366A (en) * 1994-07-05 1997-06-24 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
US5782799A (en) * 1997-02-07 1998-07-21 Sarcos, Inc. Method for automatic dosing of drugs
JP2003323751A (ja) * 2002-04-30 2003-11-14 Sony Corp 光磁気ディスク
CN100557715C (zh) * 2006-08-11 2009-11-04 福昭科技(深圳)有限公司 利用一组ecc电路并行处理多组数据的方法
US7949927B2 (en) * 2006-11-14 2011-05-24 Samsung Electronics Co., Ltd. Error correction method and apparatus for predetermined error patterns
TWI332611B (en) * 2007-05-24 2010-11-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
US7853857B2 (en) * 2007-09-14 2010-12-14 Motorola Mobility, Inc. Multi-layer cyclic redundancy check code in wireless communication system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102832949A (zh) * 2011-06-13 2012-12-19 慧荣科技股份有限公司 控制基于消息传递算法的译码操作的方法及其控制装置
CN102832949B (zh) * 2011-06-13 2015-09-30 慧荣科技股份有限公司 控制基于消息传递算法的译码操作的方法及其控制装置
CN110352408A (zh) * 2017-06-09 2019-10-18 西部数据技术公司 具有应用程序感知纠错码的非易失性存储系统
WO2022228542A1 (zh) * 2021-04-30 2022-11-03 华为技术有限公司 数据传输方法、装置、系统及可读存储介质

Also Published As

Publication number Publication date
KR20130014484A (ko) 2013-02-07
TW201102807A (en) 2011-01-16
KR101314232B1 (ko) 2013-10-02
WO2011000176A8 (zh) 2012-12-13
CN101938280B (zh) 2013-09-25
WO2011000176A1 (zh) 2011-01-06
TWI397811B (zh) 2013-06-01

Similar Documents

Publication Publication Date Title
CN102567134B (zh) 存储器模块的错误检查与校正系统以及方法
CN101938280B (zh) 错误修正码的编码及解码方法以及编码解码器
CN100386735C (zh) 对存储于存储设备中的数据进行编码和解码的方法
US20110004812A1 (en) Coder-decoder and method for encoding and decoding an error correction code
US8806295B2 (en) Mis-correction and no-correction rates for error control
CN101621299A (zh) 一种突发纠错的方法、设备和装置
CN102024501A (zh) 存储器系统以及对存储器系统的控制方法
US8032812B1 (en) Error correction decoding methods and apparatus
CN102938653B (zh) 一种利用图形处理器gpu实现的并行rs译码方法
CN111597072B (zh) 差错控制编码ecc系统及包括ecc系统的存储器设备
CN111628780A (zh) 数据编码、解码方法及数据处理系统
CN102970049B (zh) 基于钱搜索算法和福尼算法的并行电路及rs译码电路
RU2310273C2 (ru) Способ кодирования-декодирования информации в системах передачи данных
CN101779379B (zh) 使用通用级联码(gcc)进行编码和解码
CN105634506A (zh) 基于移位搜索算法的平方剩余码的软判决译码方法
CN110806948B (zh) 一种数据校验方法及装置
Gils A triple modular redundancy technique providing multiple-bit error protection without using extra redundancy
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
US20110161773A1 (en) Correcting double-bit burst errors using a low density parity check technique
CN101803204B (zh) 纠正位串错误的方法
JPH08293802A (ja) インターリーブ式誤り訂正方法
CN103346805A (zh) 一种长bch码的译码系统及方法
US9236890B1 (en) Decoding a super-code using joint decoding of underlying component codes
US8176395B2 (en) Memory module and writing and reading method thereof
JPH10327080A (ja) シンドローム計算装置

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Chegongmiao Futian Tian'an Science and Technology Venture Park B901, B902 and B903, Futian District, Shenzhen City, Guangdong Province

Co-patentee after: Silicon Motion, Inc.

Patentee after: Huirong Technology (Shenzhen) Co.,Ltd.

Address before: 518040 Guangdong, Shenzhen, Futian District, Che Kung Temple Futian Tian Tian science and Technology Pioneer Park B901, B902, B903

Co-patentee before: Silicon Motion, Inc.

Patentee before: SILICON MOTION SHENZHEN Inc.