CN105991230A - 存储器控制模块与方法以及纠错码编/解码电路与方法 - Google Patents

存储器控制模块与方法以及纠错码编/解码电路与方法 Download PDF

Info

Publication number
CN105991230A
CN105991230A CN201510090521.5A CN201510090521A CN105991230A CN 105991230 A CN105991230 A CN 105991230A CN 201510090521 A CN201510090521 A CN 201510090521A CN 105991230 A CN105991230 A CN 105991230A
Authority
CN
China
Prior art keywords
code
parity check
check bit
decoding
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.)
Granted
Application number
CN201510090521.5A
Other languages
English (en)
Other versions
CN105991230B (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.)
Hefei Peirui Microelectronics Co Ltd
Original Assignee
Realtek Semiconductor Corp
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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Publication of CN105991230A publication Critical patent/CN105991230A/zh
Application granted granted Critical
Publication of CN105991230B publication Critical patent/CN105991230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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

Landscapes

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

Abstract

本发明公开存储器控制模块与方法以及纠错码编/解码电路与方法。存储器控制模块包含:一暂存单元、一纠错码单元以及一读写控制单元。暂存单元用来暂存一目标数据。纠错码单元包含多个第一编码器及一第二编码器;第一编码器对该目标数据进行编码运算以产生多组第一奇偶校验位,该多组第一奇偶校验位具有至少两种长度;第二编码器对该目标数据及该多组第一奇偶校验位进行编码运算,以产生一组第二奇偶校验位。读写控制单元将该目标数据、该多组第一奇偶校验位及该组第二奇偶校验位转换成该存储器模块的数据格式。

Description

存储器控制模块与方法以及纠错码编/解码电路与方法
技术领域
本发明是关于存储器控制模块与方法以及纠错码编/解码电路与方法,尤其是关于使用LDPC码编/解码器与多个码长度不相等的BCH码编/解码器串接的存储器控制模块与方法以及纠错码编/解码电路与方法。
背景技术
纠错码(Error-Correcting Code,ECC)广泛地应用于与数字数据相关的系统或装置中,例如通讯系统、储存装置等,其中又以BCH(Bose-Chaudhuri-Hocquenghem)码及LDPC(Low Density Parity Check,,低密度奇偶校验)码较为常见。图1A为公知应用一个LDPC编码器与多个BCH编码器串接(concatenation)的纠错码的编码端。ECC编码电路100包含n个BCH编码器110-1~110-n,以及LDPC编码器120,每个BCH编码器110具有相同的码长度。BCH编码器110对目标数据D0编码后产生数据D1,其包含目标数据D0及多组BCH码奇偶校验位(parity check bit),每组BCH码奇偶校验位对应一个BCH编码器110。之后LDPC编码器120再将数据D1编码后产生数据D2,其包含目标数据D0、多组BCH码奇偶校验位及一组LDPC码奇偶校验位。图1B为对应图1A的纠错码的解码端。ECC解码电路150包含n个BCH解码器160-1~160-n,以及LDPC解码器170,同样的,BCH解码器160具有相同的码长度,且码长度与BCH编码器110的码长度相同。LDPC解码器170接收数据D2’(对应数据D2,但可能有若干错误比特),并依据其中的该组LDPC码奇偶校验位对错误比特进行修正,之后产生数据D1’。n个BCH解码器160分别对数据D1’进行解码,以修正残余的错误比特。最后可得到数据D0’,如果所有的错误比特都获得修正,则数据D0’将等于目标数据D0。
LDPC码的缺点为其在误比特率(bit error rate,BER)对应信号噪声比(signal-to-noise ratio,SNR)的关系图上有错误地板区(error floor region)的存在,其代表LDPC码的纠错能力受到限制。因此ECC解码电路150使用多个具有不同特性但码长度相同的BCH解码器160,以提高修正残余的错误比特的机率。如此设计除了降低误比特率之外,还可使LDPC码的错误地板区变得较不明显。然而每个BCH编码器110或BCH解码器160所使用的码长度固定,亦即每个BCH编码器110或BCH解码器160处理相同长度的BCH码奇偶校验位,限制了ECC编/解码电路的效能。
发明内容
鉴于现有技术的不足,本发明的一目的在于提供一种存储器控制模块与方法以及纠错码编/解码电路与方法。
本发明公开了一种存储器控制模块,用来控制一存储器模块,包含:一暂存单元、一纠错码单元以及一读写控制单元。暂存单元用来暂存一目标数据;纠错码单元,耦接该暂存单元,包含多个第一编码器及一第二编码器;第一编码器对该目标数据进行编码运算以产生多组第一奇偶校验位,该多组第一奇偶校验位具有至少两种长度;第二编码器,耦接该些第一编码器,用来对该目标数据及该多组第一奇偶校验位进行编码运算,以产生一组第二奇偶校验位。读写控制单元耦接该纠错码单元,用来将该目标数据、该多组第一奇偶校验位及该组第二奇偶校验位转换成该存储器模块的数据格式。
本发明另公开了一种控制方法,用于控制一存储器模块,包含:暂存一目标数据;使用一第一编码方法对该目标数据进行编码运算以产生多组第一奇偶校验位,其中该多组第一奇偶校验位具有至少两种长度;使用一第二编码方法对该目标数据进行编码运算,以产生一组第二奇偶校验位;以及将该目标数据、该多组第一奇偶校验位及该组第二奇偶校验位转换成该存储器模块的数据格式。
本发明另公开了一种纠错码解码电路,包含:一第一解码器,依据一组第一奇偶校验位对一目标数据执行一LDPC码解码运算;以及多个第二解码器,耦接该第一解码器,依据多组第二奇偶校验位对该目标数据执行一以BCH码为基础的解码运算;其中,该些第二解码器具有至少两种码长度。
本发明另公开了一种纠错码解码方法,包含:依据一组第一奇偶校验位对一目标数据执行一LDPC码解码运算;以及依据多组第二奇偶校验位对该目标数据执行一以BCH码为基础的解码运算;其中,该多组第二奇偶校验位具有至少两种长度。
本发明的存储器控制模块与方法以及纠错码编/解码电路与方法使用不同码长度的BCH码编/解码器来实作BCH码的编/解码运算,相较于公知的纠错码编/解码电路,本发明有较低的误比特率。
有关本发明的特征、实作与功效,兹配合附图作实施例详细说明如下。
附图说明
图1A及图1B为公知应用一个LDPC编码器与多个BCH编码器串接的纠错码的编码端与解码端;
图2为本发明的存储器控制模块的功能方块图;
图3为本发明纠错码单元214的细部功能方块图;
图4为本发明的存储器模块的控制方法的流程图;
图5为本发明纠错码单元所产生的数据D2的结构示意图;
图6为通讯系统的发射端或接收端的功能方块图;
图7为本发明纠错码解码方法的流程图;
图8为本发明与公知方法应用于存储器时的误块率与原始误比特率的关系图;
图9为本发明纠错码单元214的另一实施方式的细部功能方块图;
图10为本发明的存储器模块的控制方法的另一实施方式的流程图;以及
图11为本发明纠错码解码方法的另一实施方式的流程图。
其中,附图标记说明如下:
100 ECC编码电路
110、314 BCH编码器
120、316 LDPC编码器
150 ECC解码电路
160、364 BCH解码器
170、366 LDPC解码器
210 存储器控制模块
212 暂存单元
214 纠错码单元
216 读写控制单元
220 存储器模块
310 纠错码编码电路
312 BCH编码模块
313、363 控制单元
360、960 纠错码解码电路
362 BCH解码模块
610 基带电路
620 调制/解调制单元
630 天线
810、820、830、840 曲线
S410~S490、S710~S760、S1010~S1060、S1110~S1170 步骤
具体实施方式
以下说明内容的技术用语参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。
本发明的公开内容包含存储器控制模块与方法以及纠错码编/解码电路与方法,能够降低误比特率。在实施为可能的前提下,本技术领域技术人员能够依本说明书的公开内容来选择等效的元件或步骤来实现本发明,亦即本发明的实施并不限于后叙的实施例。由于本发明的存储器控制模块以及纠错码编/解码电路所包含的部分元件单独而言可能为已知元件,因此在不影响该装置发明的充分公开及可实施性的前提下,以下说明对于已知元件的细节将予以节略。此外,本发明的存储器模块的控制方法以及纠错码编/解码方法可以是软件及/或固件的形式,在不影响该方法发明的充分公开及可实施性的前提下,以下方法发明的说明将着重于步骤内容而非硬件。
存储器于存取数据时容易受到温度、电压等环境因素的影响,而造成数据错误,因此常利用ECC编/解码方法来减少数据的错误率。图2为本发明的存储器控制模块的功能方块图。存储器控制模块210用来控制存储器模块220的数据存取,包含暂存单元212、纠错码单元214以及读写控制单元216。存储器模块220例如是快闪存储器(flash memory)、固态硬盘(Solid State Drive,SSD)等的存储器模块。目标数据可能经由PCI(Peripheral Component Interconnect)总线、PCI Express总线、串行ATA(Serial ATA,Serial Advanced Technology Attachment)总线或通用串行总线(Universal Serial Bus,USB)等接口传输至存储器控制模块210。将目标数据写入存储器模块220时,目标数据先暂存在暂存单元212,之后再经由纠错码单元214计算出该目标数据的奇偶校验位。奇偶校验位连同该目标数据经由读写控制单元216转换成存储器模块220的信号格式,而后写入该存储器模块220。读出时,读写控制单元216从存储器模块220读取数据,读取的数据包含该现有储存的目标数据以及该些奇偶校验位。读取的数据可能受噪声、温度及存储器模块220本身的误差影响而出现错误。目标数据及奇偶校验位经读写控制单元216转换格式后,由纠错码单元214依据奇偶校验位对数据进行纠错运算。更正后的目标数据先暂存于暂存单元212再输出。
图3为本发明纠错码单元214的细部功能方块图,以及图4为本发明的存储器模块的控制方法的流程图。纠错码单元214包含纠错码编码电路310及纠错码解码电路360。纠错码编码电路310在将数据写入存储器模块220的程序中对数据进行纠错码编码运算,其包含BCH编码模块312及LDPC编码器316。BCH编码模块312包含控制单元313及k个(k>1)BCH编码器314。现有暂存于暂存单元212中的目标数据D0(步骤S410)进入BCH编码模块312后,由多个BCH编码器314对该目标数据进行编码运算以产生多组BCH码奇偶校验位(步骤S420)。在此步骤中,控制单元313依据BCH编码器314的码长度将目标数据D0分割,使每个BCH编码器314接收到对应自己的码长度的数据量。此处,码长度代表一个BCH编码器314处理的数据量加上所产生的奇偶校验位的长度;举例来说,假设一个BCH编码器314所处理的原始数据的数据量为16384比特,其更正能力为120比特,则根据BCH编/解码器的特征:N+m×T≤2m(N为原始数据的数据量,m为BCH编/解码器的阶数,T为BCH编/解码器的更正能力),阶数m=15。因此可得此BCH编码器314的奇偶校验位的长度为15×120=1800比特,亦即该BCH编码器314的码长度等于16384+1800=18184比特。不同码长度的BCH编码器314代表其各自所处理的原始数据长度或是所产生的奇偶校验位的长度不同。此k个BCH编码器314具有至少两种码长度。其中一实施为该k个BCH编码器314的码长度皆不相同;在其他的实施例中,其中的两个码长度可以相同(此时k>2)。因此控制单元313依据各BCH编码器314的码长度将目标数据D0分割;举例来说,BCH编码模块312包含4个BCH编码器314,其能够处理的原始数据的长度分别为:1024比特、2048比特、4096比特及8192比特,因此一个数据长度为15360比特的目标数据D0便会被分割成这四个长度的数据。每个BCH编码器314完成编码后产生各自的奇偶校验位(PB1、PB2、…、PBk),最后该k组奇偶校验位及目标数据D0由控制单元313组合成数据D1后,传送至LDPC编码器316。之后LDPC编码器316对数据D1编码,产生相对应的奇偶校验位(PBL)(步骤S430)。最后所有数据组合成数据D2(包含目标数据D0、k组BCH编码器314所产生的奇偶校验位PB1~PBk以及LDPC编码器316所产生的奇偶校验位PBL)输出,数据D2则由读写控制单元216转换为存储器模块220的数据格式(步骤S440)。
纠错码解码电路360在将数据读出存储器模块220的程序中对数据进行纠错码解码运算,其包含BCH解码模块362及LDPC解码器366。BCH解码模块362包含控制单元363及k个BCH解码器364。读取数据时读写控制单元216先依据存储器模块220的储存内容产生数据D2’(步骤S450),数据D2’再经由LDPC解码器366解码。数据D2’大致上与数据D2的内容相同,但可能有若干比特出现错误。LDPC解码器366依据数据D2’中的该组LDPC码奇偶校验位PBL来对数据D2’的其他部分(对应目标数据D0及该多组BCH码奇偶校验位PB1~PBk,但可能有若干错误比特)解码,解码后产生数据D1’(步骤S460)。数据D1’包含经过LDPC解码器366解码的目标数据D0’及该多组BCH码奇偶校验位PB1~PBk。控制单元363判断解码后的目标数据D0’是否已经没有错误比特,可以是依据目标数据D0’的本身作判断,或是依据LDPC解码器366所另外传递的控制信号(图未示,用以指示目标数据D0’是否仍有错误比特)作判断(步骤S470)。如果已经没有错误比特,则控制单元363将数据D1’中的该多组BCH码奇偶校验位PB1~PBk去除后,输出目标数据D0’(实质上等于目标数据D0),则完成纠错码的编/解码程序(步骤S480及步骤S485);如果仍有错误比特,则控制单元363选择其中一个BCH解码器364,令其依据相对应的一组BCH码奇偶校验位PBx(1≤x≤k)对数据D1’中除了BCH码奇偶校验位PB1~PBk的部分进行BCH码解码运算(步骤S490)。之后控制单元363再将BCH码解码运算后的数据连同BCH码奇偶校验位PB1~PBk组合成反馈数据DF,传送给LDPC解码器366。LDPC解码器366再次依据LDPC码的奇偶校验位PBL对反馈数据DF进行解码,以重新生成数据D1’(步骤S460)。
虽然在相同的奇偶校验位下LDPC码相对于BCH码有较好的更正能力,但LDPC码无法保证所有的错误比特皆能够得到更正,这也就是地板区存在的原因。相对的,BCH编码器314为一种保证纠错码,若错误的比特数在其更正能力的范围内,则能保证该些错误的比特一定能够被更正。本发明除了藉由串接的BCH码编/解码器及LDPC码编/解码器来提升数据的正确性之外,其中多BCH编码器314及BCH解码器364更设计为具有不同的码长度。在步骤S490中,使用BCH解码模块362解码时,依据BCH解码器364的码长度的顺序选取对应的BCH解码器364进行解码。举例来说,假设BCH解码器364-1~364-k的码长度由小至大排列(BCH解码器364-1的码长度最小,而BCH解码器364-k的码长度最大),第一次使用BCH码解码时,使用码长度最小的BCH解码器364-1进行解码,之后再依序递增码长度。如此设计的原因在于,错误的比特可以在数次的递回解码的过程中被依序解回,使错误比特得到更正的成功率大幅提高。相对的,如果是公知般使用相同长度的BCH码编/解码器,则每个BCH码编/解码器有可能在相同的数据大小中累积太多错误比特而造成全数的BCH码解码器皆无法更正错误比特的情形。上述选取BCH解码器364的顺序(亦即参考多组BCH码奇偶校验位PB1~PBk的顺序)不限于码长度由小到大,亦可由大到小或其他预先定义的顺序。
一般而言,存储器模块220对奇偶校验位有长度限制,因此在本发明中,BCH编码器314的多组奇偶校验位PB1~PBk的长度的总和加上LDPC编码器316的奇偶校验位PBL的长度后的总比特数,应小于等于存储器模块220所提供的奇偶校验位的长度(对一次的存/取操作而言)。再者,如前所述,在同样的奇偶校验位长度下,LDPC码的更正能力较BCH码佳。因此在一个实施例中,可以设计为让LDPC码的奇偶校验位PBL的长度超过数据D2的所有奇偶校验位的一半,也就是数据D2中LDPC码的奇偶校验位PBL的长度超过所有BCH码的奇偶校验位PB1~PBk的长度总和。图5为本发明纠错码单元所产生的数据D2的结构示意图。在此假设BCH编码模块312包含4个BCH编码器314(同理BCH解码模块362包含4个BCH解码器364)。数据D2包含数据1~数据4(其组合即为数据D0)以及5组奇偶校验位1~5。奇偶校验位1~4分别为对应数据1~4的BCH码的奇偶校验位,奇偶校验位5设计为LDPC码的奇偶校验位。在一个实施例中,数据1~数据4的长度分别为1024比特、2048比特、4096比特及8192比特(即数据D0的长度为1024+2048+4096+8192=15360比特),因此其所对应的BCH码编/解码器的阶数分别为11、12、13及14。并且假设每个BCH码编/解码器的纠错能力为3比特,则奇偶校验位1~4的长度分别为33比特、36比特、39比特及42比特(总和为33+36+39+42=150比特)。奇偶校验位5为1064比特,大于奇偶校验位1~4的长度总和。其中数据1~4及奇偶校验位1~4的组合即为数据D1。
本发明的纠错码单元214除了可以应用于存储器模块之外,亦可应用于采用BCH码及LDPC码的通讯系统。图6为通讯系统的发射端或接收端的功能方块图。纠错码单元214应用于发射端时,基带电路610所产生的目标数据由纠错码单元214编码后(此时纠错码单元214可以只包含纠错码编码电路310),再交由调制/解调制单元620调制后(此时调制/解调制单元620可以只包含调制电路),由天线630送出。对应于发射端的应用,本发明的纠错码编码方法,其流程与图4的步骤S420~S440类似,差别在于步骤S440由执行数据格式的转换改为执行信号调制。另一方面,当纠错码单元214应用于接收端时,其纠错码解码方法的流程图如图7所示。调制/解调制单元620由天线630接收射频信号并解调制(此时调制/解调制单元620可以只包含解调制电路)后产生目标数据(步骤S710),再由纠错码单元214进行解码运算(此时纠错码单元214可以只包含纠错码解码电路360)。目标数据同样包含发射端所传输的讯息部分、一组LDPC码的奇偶校验位PBL及多组BCH码的奇偶校验位PB1~PBk。LDPC解码器366依据该组LDPC码的奇偶校验位PBL对目标数据进行LDPC码解码运算(步骤S720)。之后控制单元363检查是否已经没有任何错误比特(步骤S730),若没有,则移除目标数据中所有奇偶校验位的部分后输出完成解码的讯息部分,并结束解码程序(步骤S740、步骤S750);如果还有错误比特存在,则BCH解码模块362对讯息的部分进行以BCH码为基础的解码运算(步骤S760)。控制单元363选择BCH解码器364的顺序可参考前述的实施例,并且目标数据的结构可参考图5,其细节不再重复赘述。请注意,通讯系统常用一种名为里德-所罗门码(Reed-solomoncodes)的编/解码运算,事实上里德-所罗门码为BCH码的其中一个特例,所以纠错码单元214亦适用于里德-所罗门码的运算。
图8为本发明与公知方法应用于存储器时的误块率(Block Error Rate,BLER)与原始误比特率(Raw BER)的关系图。在图中,愈靠近左边的曲线代表有较佳的纠错能力,同时代表存储器有更久的使用寿命。曲线810为单纯使用LDPC码编/解码器的曲线,曲线840为单纯使用BCH码编/解码器(更正能力T=123比特)的曲线。如前所述,一般而言LDPC码的更正能力较BCH码佳,但是曲线810在图上呈现地板区(即图中误块率约为10-5的转折处)。曲线830实际上为两条几近叠合的曲线,其中之一代表使用多个码长度相等的BCH码编/解码器与LDPC码编/解码器串接的结果,其效果相当近似使用单一BCH码编/解码器(更正能力T=187比特)的曲线,也就是说使用多个码长度相等的BCH码编/解码器与LDPC码编/解码器串接比单纯使用BCH码编/解码器(更正能力T=123比特)的效果来得好。曲线820实际上为两条几近叠合的曲线,其中的一代表使用多个码长度不相等的BCH码编/解码器与LDPC码编/解码器串接的结果,其效果相当近似使用单一BCH码编/解码器(更正能力T=208比特)的曲线,也就是说使用多个码长度不相等的BCH码编/解码器与LDPC码编/解码器串接比使用多个码长度相等的BCH码编/解码器与LDPC码编/解码器串接的效果来得好。另外,对应本发明的曲线在误块率约为10-5的位置处没有地板区,代表本发明可改善LDPC码的受限的纠错能力。
本发明在解码运算时亦可以先执行BCH码的解码运算再执行LDPC码的解码运算。图9为本发明纠错码单元214的另一实施方式的细部功能方块图,图10为其相对应的存储器模块的控制方法的流程图。编码时,暂存的目标数据(步骤S410)先经由BCH编码模块312编码(步骤S420),再经由纠错码编码电路310的LDPC编码器316编码(步骤S430),之后的步骤S440与图4相同。解码时,从存储器模块220读出数据后(步骤S450),先利用纠错码解码电路960的BCH解码模块362以一顺序对数据D2’解码(步骤S1010)。第一次解码时,控制单元363控制所有的BCH解码器364对数据D2’进行解码。如果解码完的数据已经正确(意即无错误比特)(步骤S1020),则BCH解码模块362去除数据D2’中的多组BCH码奇偶校验位,并且LDPC解码器366去除数据D1’中的该组LDPC码奇偶校验位后,输出完成解码的数据(步骤S1030),然后结束解码流程(步骤S1040)。然而如果经步骤S1010解码完的数据仍有错误比特(步骤S1020),则先对BCH码区块进行数据处理(意即先更正BCH码所能更正的错误)(步骤S1050)以得到数据D1’,再由LDPC解码器366对数据D1’解码产生反馈数据DF(步骤S1060)。之后BCH解码模块362再次对反馈数据进行解码(步骤S1010)。此时控制单元363依据步骤S490中所述的顺序依序使用BCH解码器364进行解码。因此步骤S1010所述的顺序包含第一次解码时使用全部的BCH解码器364进行解码,以及之后的迭代(iteration)运算中所依循的顺序。图11为应用于通讯系统的接收端时,纠错码解码方法的另一实施方式的流程图。解调制后的数据(步骤S1110),先进行以BCH码为基础的解码运算(步骤S1120),再进行LDPC码解码运算(步骤S1170)。图11流程的操作细节可以由图10的流程得知,故不再赘述。前述的实施例中先执行BCH码解码运算再执行LDPC码解码运算的好处在于,其一,一般而言BCH码的解码速度比LDPC码来得快,所以若解码程序一次即解码成功,步骤S1010(或步骤S1120)所花费的时间比步骤S460(或步骤S720)来得短;其二,整体解码程序的终止条件由BCH码的解码程序决定,可有效减轻错误地板区的影响。
由于本技术领域技术人员可藉由图2、图3及图6的装置发明的公开内容来了解图4及图7的方法发明的实施细节与变化以及由图2、图6及图9的装置发明的公开内容来了解图10及图11的方法发明的实施细节与变化,因此,为避免赘文,在不影响该方法发明的公开要求及可实施性的前提下,重复的说明在此予以节略。请注意,前揭附图中,元件的形状、尺寸、比例以及步骤的顺序等仅为示意,供本技术领域技术人员了解本发明之用,非用以限制本发明。另外,于实施为可能的前提下,本领域技术人员可依本发明的公开内容及自身的需求选择性地实施任一实施例的部分或全部技术特征,或者选择性地实施多个实施例的部分或全部技术特征的组合,藉此增加本发明实施时的弹性。再者,前揭实施例虽以存储器及通讯系统为例,然此并非对本发明的限制,本领域技术人员可依本发明的公开适当地将本发明应用于其它需要纠错码编码及/或解码的装置与系统。
虽然本发明的实施例如上所述,然而该些实施例并非用来限定本发明,本技术领域技术人员可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的权利要求所界定者为准。

Claims (34)

1.一存储器控制模块,用来控制一存储器模块,包含:
一暂存单元,用来暂存一目标数据;
一纠错码单元,耦接该暂存单元,包含
多个第一编码器,用来对该目标数据进行编码运算以产生多组第一奇偶校验位,其中所述多组第一奇偶校验位具有至少两种长度;以及
一第二编码器,耦接所述多个第一编码器,用来对该目标数据进行编码运算,以产生一组第二奇偶校验位;以及
一读写控制单元,耦接该纠错码单元,用来将该目标数据、所述多组第一奇偶校验位及该组第二奇偶校验位转换成该存储器模块的数据格式。
2.如权利要求1所述的存储器控制模块,其中该读写控制单元依据该存储器模块的储存内容产生一读取数据,该读取数据包含一中间数据、所述多组第一奇偶校验位及该组第二奇偶校验位,并且该纠错码单元还包含:
多个第一解码器,用来依据所述多组第一奇偶校验位对该中间数据进行解码运算,以修正该中间数据的错误比特;以及
一第二解码器,耦接所述多个第一解码器,用来依据该组第二奇偶校验位对该中间数据进行解码运算,以修正该中间数据的错误比特。
3.如权利要求2所述的存储器控制模块,其中该第二解码器早于所述多个第一解码器对该中间数据进行运算。
4.如权利要求2所述的存储器控制模块,其中所述多个第一解码器早于该第二解码器对该中间数据进行运算。
5.如权利要求2所述的存储器控制模块,还包含:
一控制单元,耦接所述多个第一解码器,用来依据一顺序控制所述多个第一解码器的解码顺序。
6.如权利要求5所述的存储器控制模块,其中该顺序为依据所述多个第一解码器的码长度顺序。
7.如权利要求1所述的存储器控制模块,其中所述多个第一编码器执行BCH码的编码运算,该第二编码器执行LDPC码的编码运算。
8.如权利要求1所述的存储器控制模块,其中该存储器模块具有一存储器容量,所述多组第一奇偶校验位及该组第二奇偶校验位的长度的总和与该存储器容量有关。
9.如权利要求8所述的存储器控制模块,其中该存储器模块为快闪存储器模块。
10.如权利要求1所述的存储器控制模块,其中所述多组第一奇偶校验位的长度的总和小于该组第二奇偶校验位的长度。
11.一种控制方法,用于控制一存储器模块,包含:
暂存一目标数据;
使用一第一编码方法对该目标数据进行编码运算以产生多组第一奇偶校验位,其中所述多组第一奇偶校验位具有至少两种长度;
使用一第二编码方法对该目标数据进行编码运算,以产生一组第二奇偶校验位;以及
将该目标数据、所述多组第一奇偶校验位及该组第二奇偶校验位转换成该存储器模块的数据格式。
12.如权利要求11所述的控制方法,还包含:
依据该存储器模块的储存内容产生一读取数据,该读取数据包含一中间数据、所述多组第一奇偶校验位及该组第二奇偶校验位;
使用一第一解码方法并依据所述多组第一奇偶校验位对该中间数据进行解码运算,以修正该中间数据的错误比特;以及
使用一第二解码方法并依据该组第二奇偶校验位对该中间数据进行解码运算,以修正该中间数据的错误比特。
13.如权利要求12所述的控制方法,其中该第一解码方法早于该第二解码方法对该中间数据进行运算。
14.如权利要求12所述的控制方法,其中该第二解码方法早于该第一解码器对该中间数据进行运算。
15.如权利要求12所述的控制方法,还包含:
依据一顺序参考所述多组第一奇偶校验位,以对该中间数据进行解码运算。
16.如权利要求15所述的控制方法,其中该顺序为依据所述多组第一奇偶校验位的长度顺序。
17.如权利要求11所述的控制方法,其中该第一编码方法对应BCH码的编码运算,该第二编码方法对应LDPC码的编码运算。
18.如权利要求11所述的控制方法,其中该存储器模块具有一存储器容量,所述多组第一奇偶校验位及该组第二奇偶校验位的长度的总和与该存储器容量有关。
19.如权利要求18所述的控制方法,其中该存储器模块为快闪存储器模块。
20.如权利要求11所述的控制方法,其中所述多组第一奇偶校验位的长度的总和小于该组第二奇偶校验位的长度。
21.一种纠错码解码电路,包含:
一第一解码器,依据一组第一奇偶校验位对一目标数据执行一LDPC码解码运算;以及
多个第二解码器,耦接该第一解码器,依据多组第二奇偶校验位对该目标数据执行一以BCH码为基础的解码运算;
其中,所述多个第二解码器具有至少两种码长度。
22.如权利要求21所述的纠错码解码电路,其中该第一解码器早于所述多个第二解码器对该目标数据进行运算。
23.如权利要求21所述的纠错码解码电路,其中所述多个第二解码器早于该第一解码器对该目标数据进行运算。
24.如权利要求21所述的纠错码解码电路,还包含:
一控制单元,耦接所述多个第二解码器,用来依据一顺序控制所述多个第二解码器的解码顺序。
25.如权利要求24所述的纠错码解码电路,其中该顺序为依据所述多个第二解码器的码长度顺序。
26.如权利要求21所述的纠错码解码电路,其中所述多组第二奇偶校验位的长度的总和小于该组第一奇偶校验位的长度。
27.如权利要求21所述的纠错码解码电路用于一无线通讯系统的接收端,且所述多个第二解码器执行一里德-所罗门码解码运算。
28.一种纠错码解码方法,包含:
依据一组第一奇偶校验位对一目标数据执行一LDPC码解码运算;以及
依据多组第二奇偶校验位对该目标数据执行一以BCH码为基础的解码运算;
其中,所述多组第二奇偶校验位具有至少两种长度。
29.如权利要求28所述的纠错码解码方法,其中该LDPC码解码运算早于该以BCH码为基础的解码运算执行。
30.如权利要求28所述的纠错码解码方法,其中该以BCH码为基础的解码运算早于该LDPC码解码运算执行。
31.如权利要求28所述的纠错码解码方法,还包含:
依据一顺序使用所述多组第二奇偶校验位,以进行该以BCH码为基础的解码运算。
32.如权利要求31所述的纠错码解码方法,其中该顺序为依据所述多组第二奇偶校验位的长度顺序。
33.如权利要求28所述的纠错码解码方法,其中所述多组第二奇偶校验位的长度的总和小于该组第一奇偶校验位的长度。
34.如权利要求28所述的纠错码解码方法用于一无线通讯系统的接收端,且该以BCH码为基础的解码运算为一里德-所罗门码解码运算。
CN201510090521.5A 2015-02-13 2015-02-28 存储器控制模块与方法以及纠错码编/解码电路与方法 Active CN105991230B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW104105187A TWI557747B (zh) 2015-02-13 2015-02-13 記憶體控制模組與方法以及錯誤更正碼編/解碼電路與方法
TW104105187 2015-02-13

Publications (2)

Publication Number Publication Date
CN105991230A true CN105991230A (zh) 2016-10-05
CN105991230B CN105991230B (zh) 2020-01-10

Family

ID=56621588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510090521.5A Active CN105991230B (zh) 2015-02-13 2015-02-28 存储器控制模块与方法以及纠错码编/解码电路与方法

Country Status (3)

Country Link
US (1) US9985657B2 (zh)
CN (1) CN105991230B (zh)
TW (1) TWI557747B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294542A (zh) * 2017-05-23 2017-10-24 南京邮电大学 Mlc闪存中基于双层ldpc码的编、译码方法
CN109710450A (zh) * 2017-10-25 2019-05-03 群联电子股份有限公司 数据编码方法、存储器控制电路单元与存储器存储装置
WO2019090657A1 (zh) * 2017-11-10 2019-05-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
CN110138499A (zh) * 2018-02-08 2019-08-16 深圳衡宇芯片科技有限公司 级联编码系统
CN110751977A (zh) * 2019-10-18 2020-02-04 西安工业大学 一种基于ldpc码的存储芯片容错装置及容错纠错方法
CN112332865A (zh) * 2020-10-29 2021-02-05 深圳电器公司 基于bch并行算法和ldpc算法的纠错电路及方法
CN112332865B (zh) * 2020-10-29 2024-06-07 深圳电器公司 基于bch并行算法和ldpc算法的纠错电路及方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021515A1 (en) * 2014-07-18 2016-01-21 Samsung Electro-Mechanics Co., Ltd. Electronic shelf label gateway, electronic shelf label system and communications method thereof
US10496335B2 (en) 2017-06-30 2019-12-03 Intel Corporation Method and apparatus for performing multi-object transformations on a storage device
TWI643462B (zh) * 2017-11-06 2018-12-01 瑞昱半導體股份有限公司 連續漸近暫存器式類比至數位轉換器之位元錯誤率預測電路
CN111796774B (zh) * 2020-07-07 2024-03-08 深圳宏芯宇电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379549A (zh) * 2001-04-04 2002-11-13 三菱电机株式会社 纠错编码方法、解码方法及其装置
CN1381115A (zh) * 2000-05-22 2002-11-20 三星电子株式会社 用于混合自动重复请求数据通信系统的数据发送设备和方法
CN1957532A (zh) * 2004-06-02 2007-05-02 泰克诺沃斯公司 用于转换fec编码以太网帧中数据的方法和设备
CN101465715A (zh) * 2007-12-21 2009-06-24 索尼株式会社 发送设备和方法、接收设备和方法,以及程序
CN102365849A (zh) * 2009-05-25 2012-02-29 株式会社日立制作所 存储设备及其控制方法
US20120240006A1 (en) * 2010-05-28 2012-09-20 Stec, Inc. Trellis-coded modulation in a multi-level cell flash memory device
CN104115126A (zh) * 2011-12-22 2014-10-22 桑迪士克科技股份有限公司 使用代数码的多阶段ecc编码

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
US7376883B2 (en) * 2003-10-27 2008-05-20 The Directv Group, Inc. Method and system for providing long and short block length low density parity check (LDPC) codes
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
EP2536030A1 (en) * 2011-06-16 2012-12-19 Panasonic Corporation Bit permutation patterns for BICM with LDPC codes and QAM constellations
CN103346802B (zh) * 2013-06-04 2014-12-31 上海华力创通半导体有限公司 Qc-ldpc码的构造方法
US20150012801A1 (en) * 2013-07-03 2015-01-08 Chih-Nan YEN Method of detecting and correcting errors with bch and ldpc engines for flash storage systems
US9654144B2 (en) * 2014-09-30 2017-05-16 Micron Technology, Inc. Progressive effort decoder architecture

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1381115A (zh) * 2000-05-22 2002-11-20 三星电子株式会社 用于混合自动重复请求数据通信系统的数据发送设备和方法
CN1379549A (zh) * 2001-04-04 2002-11-13 三菱电机株式会社 纠错编码方法、解码方法及其装置
CN1957532A (zh) * 2004-06-02 2007-05-02 泰克诺沃斯公司 用于转换fec编码以太网帧中数据的方法和设备
CN101465715A (zh) * 2007-12-21 2009-06-24 索尼株式会社 发送设备和方法、接收设备和方法,以及程序
CN102365849A (zh) * 2009-05-25 2012-02-29 株式会社日立制作所 存储设备及其控制方法
US20120240006A1 (en) * 2010-05-28 2012-09-20 Stec, Inc. Trellis-coded modulation in a multi-level cell flash memory device
CN104115126A (zh) * 2011-12-22 2014-10-22 桑迪士克科技股份有限公司 使用代数码的多阶段ecc编码

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294542A (zh) * 2017-05-23 2017-10-24 南京邮电大学 Mlc闪存中基于双层ldpc码的编、译码方法
CN107294542B (zh) * 2017-05-23 2020-08-11 南京邮电大学 Mlc闪存中基于双层ldpc码的编、译码方法
CN109710450A (zh) * 2017-10-25 2019-05-03 群联电子股份有限公司 数据编码方法、存储器控制电路单元与存储器存储装置
CN109710450B (zh) * 2017-10-25 2022-05-31 群联电子股份有限公司 数据编码方法、存储器控制电路单元与存储器存储装置
WO2019090657A1 (zh) * 2017-11-10 2019-05-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
CN110138499A (zh) * 2018-02-08 2019-08-16 深圳衡宇芯片科技有限公司 级联编码系统
CN110751977A (zh) * 2019-10-18 2020-02-04 西安工业大学 一种基于ldpc码的存储芯片容错装置及容错纠错方法
CN112332865A (zh) * 2020-10-29 2021-02-05 深圳电器公司 基于bch并行算法和ldpc算法的纠错电路及方法
CN112332865B (zh) * 2020-10-29 2024-06-07 深圳电器公司 基于bch并行算法和ldpc算法的纠错电路及方法

Also Published As

Publication number Publication date
CN105991230B (zh) 2020-01-10
TWI557747B (zh) 2016-11-11
US20160241273A1 (en) 2016-08-18
US9985657B2 (en) 2018-05-29
TW201629981A (zh) 2016-08-16

Similar Documents

Publication Publication Date Title
CN105991230A (zh) 存储器控制模块与方法以及纠错码编/解码电路与方法
EP3510699B1 (en) Method and apparatus for encoding data using a polar code
CN101944067B (zh) 存储数据的方法和存储器系统
CN103201976B (zh) 用于聚合分组传输中的分组级擦除保护编码的方法和装置
CN101621299B (zh) 一种突发纠错的方法、设备和装置
CN101091319B (zh) 多级低密度奇偶校验
KR20200017520A (ko) 극성 코드 인코딩 방법 및 디바이스
CN103444144A (zh) 利用稀疏信令码进行噪声回弹、引脚效率且低功率的通信的方法和系统
CN103888148A (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
CN101425871B (zh) 多元纠错码发射接收装置及数据传输系统以及相关方法
TWI311869B (en) 3-stripes gilbert low density parity-check codes
CN107423161B (zh) 应用于快闪存储器中的自适应ldpc码纠错码系统和方法
BR112019018329B1 (pt) Método para processamento de informação e aparelho em um dispositivo de comunicações
CN104303155A (zh) 用于组合错误译码与调制方案的设备及方法
CN103973314A (zh) 一种基于ldpc的信号编解码方法、及接收端和发送端
CN109257140A (zh) 一种极化信道可靠度排序的方法、极化码编码方法及装置
CN108809477A (zh) 重叠复用系统的处理方法、装置及系统
CN104135345A (zh) 一种应用于长期演进系统的跨层编解码方法
CN110233698A (zh) 极化码的编码及译码方法、发送设备、接收设备、介质
CN101448281B (zh) 一种无线传感器网络中的容错方法
CN107306140A (zh) 一种gel码字结构编码和译码的方法、装置及相关设备
CN104112479B (zh) 编码器、译码器和包括其的半导体器件
CN102742164B (zh) 一种译码方法和译码装置
EP4340231A1 (en) Polar code encoding method and decoding method and apparatuses
CN113348780B (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
TA01 Transfer of patent application right

Effective date of registration: 20190422

Address after: 230012 Hefei Intelligent Industrial Park Standardized Workshop No. 11 at the junction of Wenzhong Road and Qianjiang Road, Xinzhan District, Hefei City, Anhui Province

Applicant after: Hefei Peirui Microelectronics Co., Ltd.

Address before: Hsinchu City, Taiwan, China

Applicant before: Ruiyu Semiconductor Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant