CN102624403B - 用于对级联纠错码的有效解码的方法和系统 - Google Patents

用于对级联纠错码的有效解码的方法和系统 Download PDF

Info

Publication number
CN102624403B
CN102624403B CN201210024401.1A CN201210024401A CN102624403B CN 102624403 B CN102624403 B CN 102624403B CN 201210024401 A CN201210024401 A CN 201210024401A CN 102624403 B CN102624403 B CN 102624403B
Authority
CN
China
Prior art keywords
error correction
correction circuit
decoding
decoder
data
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.)
Expired - Fee Related
Application number
CN201210024401.1A
Other languages
English (en)
Other versions
CN102624403A (zh
Inventor
N·瓦尼卡
阳学仕
S·K·奇拉帕加里
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co 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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN102624403A publication Critical patent/CN102624403A/zh
Application granted granted Critical
Publication of CN102624403B publication Critical patent/CN102624403B/zh
Expired - Fee Related 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/2948Iterative decoding
    • H03M13/2951Iterative decoding using iteration stopping criteria
    • 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/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/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
    • 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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2966Turbo codes concatenated with another code, e.g. an outer block code

Landscapes

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

Abstract

本发明涉及用于对级联纠错码的有效解码的方法和系统。对所接收的数据进行解码包括:使用根据第一解码过程对数据进行解码的第一纠错电路对所接收的数据进行解码;在第一纠错电路完成执行用于纠正数据的第一解码过程之前终止对该第一解码过程的执行,并且输出经部分解码的数据;确定经部分解码的数据是否需要进一步解码;以及响应于确定经部分解码的数据需要进一步解码,使用根据第二解码过程对数据进行解码的第二纠错电路对经部分解码的数据进行解码。一种系统,其根据该方法对数据进行解码。

Description

用于对级联纠错码的有效解码的方法和系统
相关申请的交叉引用
本申请基于35U.S.C.§119(e)要求于2011年1月31日递交的美国临时申请No.61/437,954的权益,该申请通过引用的方式全文并入于此。
技术领域
本公开总体上涉及通信或者存储系统和方法,并且更具体地,涉及用于对级联纠错码进行解码的系统和方法。
背景技术
在此提供的背景技术描述是出于总体上呈现本公开的上下文的目的。本发明人的工作,就在本背景技术部分中所描述的而言,以及就在提交时并适合作为现有技术的描述的方面而言,并不明示或者暗示其为针对本公开的现有技术。
为了改善通信和存储系统的可靠性,通常向所传达或者存储的数据应用纠错码(ECC),而这向数据流添加了冗余。为了增加纠错的能力,多个纠错码可以相继级联。在许多情形中,两个纠错码级联在一起:内部码和外部码。内部码用于纠正大部分错误,而外部码用于纠正内部码未纠正的相对少的剩余错误。
为了纠正大部分错误,内部解码器利用比外部解码器更强的代码。内部解码器所使用的更强的代码需要较多的资源(例如能量和时间)来完成纠正。在内部解码器完成其解码操作之后,完成的经解码的结果被提供给外部解码器。完成的经解码的结果可以包含内部解码器在其完成解码过程期间未能纠正的附加错误。外部解码器能够纠正内部解码器未能纠正的附加错误。在外部解码器完成之后,提供了最终的经解码的结果。
如上所述,级联多个纠错码需要数据流中的更多冗余,以允许纠正更大量的错误。然而,典型的级联纠错码解码器系统可能消耗大量资源以便实现高水平的纠错能力。
发明内容
根据一个实施方式,提供了一种用于对数据进行解码的方法。该方法包括:接收待解码数据;使用根据第一解码过程对数据进行解码的第一纠错电路对所接收的数据进行解码;在第一纠错电路完成执行第一解码过程之前终止对用于纠正数据的该第一解码过程的执行,并且输出经部分解码的数据;确定经部分解码的数据是否需要进一步解码;以及响应于该确定,使用根据第二解码过程对数据进行解码的第二纠错电路对经部分解码的数据进行解码。
根据另一实施方式,在前述方法中,终止对第一解码过程的执行包括导出解码器错误度量;将解码器错误度量与停止规则相比较;确定解码器错误度量是否已满足停止规则;以及响应于确定解码器错误度量已满足停止规则而在完成第一解码过程之前终止对第一解码过程的执行。
根据第三实施方式,在前述方法中,终止对第一解码过程的执行包括确定是否已发生预定时间事件,该预定时间事件包括第一纠错电路的时间单位,其中该时间单位是时钟周期或者迭代解码器的迭代。
根据第四实施方式,在前述方法中,确定经部分解码的数据是否需要进一步解码包括确定解码器错误度量是否指示发散。
根据第五实施方式,一种用于对数据进行解码的系统。该系统包括纠错电路,其被配置成根据第一解码过程对所接收的数据进行解码。该纠错电路被配置成在完成第一解码过程之前终止对用于纠正数据的该第一解码过程的执行,并且输出经部分解码的数据;确定经部分解码的数据是否需要进一步解码;以及响应于确定经部分解码的数据需要进一步解码而根据第二解码过程对经部分解码的数据进行解码。
根据第六实施方式,纠错电路包括迭代解码器。
根据第七实施方式,该纠错电路进一步被配置成:导出解码器错误度量;将该解码器错误度量与停止规则相比较;确定解码器错误度量是否已满足停止规则;以及响应于确定解码器错误度量已满足停止规则而在完成第一解码过程之前终止对第一解码过程的执行。
根据第八实施方式,该纠错电路进一步被配置成:确定预定时间间隔中在第一解码过程中的翻转的位的数目。
根据第九实施方式,该纠错电路进一步被配置成:确定是否已发生预定时间事件,该预定时间事件包括纠错电路的时间单位。该时间单位是时钟周期或者第一解码过程的迭代。
根据第十实施方式,该纠错电路进一步被配置成:确定解码器错误度量是否指示发散。
附图说明
当与附图结合考虑以下详细描述时,本公开的其他特征、本公开的本质以及各种优势将变得明显,在附图中,相似的参考符号通篇指示相似的元素,并且在附图中:
图1示出了根据本公开的一个实施方式的存储系统的示例;
图2示出了根据本公开的一个实施方式的纠错电路的示例;
图3A至图3B示出了用于根据本公开的一个实施方式对所接收的数据进行解码的说明性过程;以及
图4示出了用于根据本公开的另一实施方式对所接收的数据进行解码的说明性过程。
具体实施方式
为了提供对本公开的整体理解,现在将描述某些说明性实施方式。然而,在此描述的系统和方法可以被适应和修改为适合于所处理的应用,并且在此描述的系统和方法可以在其他适当的应用中采用,以及此类其他添加和修改将不会脱离其范围。
图1示出了根据本公开的一个实施方式的存储系统100的示例。系统100可以用于将所接收的数据104从存储电路102传递到纠错电路106。在纠错电路106处理所接收的数据104以产生经解码的输出数据之后,经解码的输出数据被提供给输出端114。控制器电路108将控制器信号110提供给纠错电路106,这配置并且控制纠错电路106的操作。控制器信号110可以从纠错电路106传送到控制器电路108,以便控制器电路108决定纠错电路106应当利用来进行操作的过程,以及确定向纠错电路106提供的配置和控制信号110。
存储电路102可以表示其中存储有所接收的数据104的任何适当的存储介质,诸如磁存储设备(例如,硬盘)、电存储设备(例如,闪存、RAM)或者光存储设备(例如,CD-ROM)。在某些买施方式中,存储电路102可以表示闪存系统。备选地,存储电路102可以表示通过其传达所接收的数据104的任何适当的有线或者无线传输介质。存储电路102内的传输或者存储介质可以引起所接收的数据104受依赖于信号的噪声或者不依赖于信号的噪声和/或干扰所影响。该噪声可以在所接收的数据104中造成错误。为了纠正所接收的数据104中可能存在的错误,由纠错电路106对所接收的数据104进行解码。
可以使用一个或者多个数据承载信号将所接收的数据104从存储电路102传递到纠错电路106。数据承载信号可以通过存储电路102内的可能使信号退化的传输或者存储介质来传递。
纠错电路106从存储电路102接收所接收的数据104。如前所述,引入到经编码的数据中的噪声和/或干扰或者在存储电路102处所接收的噪声和/或干扰可以在所接收的数据104中造成错误。纠错电路106尝试基于这些错误对数据进行解码。
图2示出了根据本公开的一个实施方式的纠错电路106的示例。纠错电路106接收所接收的数据104并且处理该数据,以便纠正可能存在的错误。从控制器电路108接收的配置和控制信号110用来配置和控制纠错电路106的操作。
在某些实施方式中,纠错电路106可以使用其中使用了多个纠错码的级联编码方案。图2示出了级联编码方案,其包括第一纠错电路202和第二纠错电路204。第一纠错电路202和第二纠错电路204可以使用相同、相似或者不同的解码技术。在某些实施方式中,第一纠错电路202用于去除所接收的数据104中的大部分错误,从而使得第二纠错电路204接收可以被校正并且被提供给输出端114的相对少的错误。与第二纠错电路204相比,第一纠错电路202可能消耗更多的功率以执行其解码过程。
某些实施方式中,第一纠错电路202可以被实现为迭代解码器,诸如LDPC解码器或者Turbo解码器。LDPC解码器的示例为硬解码器(诸如位翻转解码器)或者软解码器(诸如基于对数似然性的解码器)。迭代解码器允许在所接收的数据104上发生解码过程的多个迭代。每个迭代尝试改善由之前的纠错迭代执行的纠错。在某些实施方式中,第一纠错电路202可以被实现为允许解码过程在完成之前终止并且可以提供经部分解码的输出的任何纠错解码器。
在某些实施方式中,第二纠错电路204可以基于代数码以产生使用硬解码模式的输出。这些类型的代码的示例为里得-所罗门(Reed-Solomon)码或者BCH码。如前所述,第二纠错电路204可以被配置成用于纠正比第一纠错电路202相对更少的错误,从而允许第二纠错电路204具有更短的平均解码时间并且消耗比第一纠错电路202更少的功率。
在某些实施方式中,第一纠错电路202处理所接收的数据104以产生第一经解码的输出212。基于某些停止规则,执行终止电路206可以在控制器电路108的引导下产生终止信号220。停止规则可以是向第一纠错电路202指示不需要进一步纠错的预定规则。如果第一纠错电路202从执行终止电路206接收到用于终止的信号,则控制器电路108可以引导第一纠错电路202提早终止执行,并且产生经部分解码的输出。如果第一纠错电路202完成,并且并未提早终止执行,则输出经完全解码的数据。
在第一纠错电路202终止或者完成之后,第一经解码的输出212可以被提供给选择电路208。选择电路208可以包括MUX、de-MUX、交换机或者允许输入被路由到所选输出的任何电路。选择电路208在控制器电路108的引导下选择是将第一经解码的输出216b直接提供给输出选择电路210、还是将第一经解码的输出216a提供给第二纠错电路204。该选择可以基于停止规则。如果第一经解码的输出216a被提供给第二纠错电路204,则第二纠错电路204对第一经解码的输出216a进行解码,并且纠正可能剩余的错误。第二纠错电路204继而可以在控制器电路108的引导下提供第二经解码的输出214给输出选择电路210。基于停止规则,输出选择电路210可以在控制器电路108的引导下向输出端114提供第一经解码的输出216b,或者如果执行了第二纠错电路204的解码过程,则提供第二经解码的输出214。
通过允许第一纠错电路202早些终止,可以降低第一纠错电路的功耗和解码时间,并且剩余错误可以由更低功率且更快的第二纠错电路204来纠正。由于大部分时间和功率被第一纠错电路202所消耗,所以通过减少由第一纠错电路202所使用的资源,可以降低整体系统功率和解码时间。
在图3A至图3B以及图4中更加详细地描述了在纠错电路106内的解码过程。这些附图示出了如下方法,该方法描述了不同电路之间的交互,特别是执行终止电路206、第一纠错电路202与第二纠错电路204之间的交互以及停止规则如何帮助控制器电路108控制和配置每个电路。
图3A至图3B示出了用于根据本公开的一个实施方式对所接收的数据104进行解码的说明性过程300和304。图3A描述了由纠错电路106执行的整体过程。在302处,纠错电路106从存储电路102接收所接收的数据104。在304处,第一纠错电路202执行第一解码过程。在第一解码过程终止之后,在306处,由控制器电路108做出是否需要进一步解码的判定。在312处,如果不需要进一步解码过程,则控制器电路108引导选择电路208和输出选择电路210在314处将第一经解码的输出212发送给输出端114。否则,如果需要进一步解码,则在310处,选择电路208被引导以发送第一经解码的输出212给第二纠错电路204,以在308处执行第二解码过程。一旦第二纠错电路204完成,则由第二纠错电路204产生的第二经解码的输出214通过输出选择电路210在314处被递送给输出端114。
图3B更详细地讨论了使用第一纠错电路202处理第一解码过程以及确定在第一解码过程期间何时终止的方法304。在302处,在接收所接收的数据104之后,在316处,控制器电路108引导第一纠错电路202执行第一解码过程。在316处,执行第一解码过程,直到已发生预定时间事件为止。预定时间事件可以包括预定的时间单位,其可以是时钟周期、迭代解码器的迭代或者第一解码过程的预定阶段。
在318处,在经过预定的时间单位之后,控制器电路108确定第一解码过程是否已完成。在326处,如果第一解码过程已完成,则在322处,控制器电路108引导第一纠错电路202终止第一解码过程,并且输出经完全解码的数据。在328处,如果第一解码过程并未完成,则在320处,控制器电路108通过将终止信号220从执行终止电路206发送到第一纠错电路202来确定是否提早终止第一解码过程。
控制器电路108基于停止规则确定是否终止第一解码过程。停止规则是指示第一纠错电路202是否要求进一步解码的预定规则。例如,如果控制器电路108估计在当前经处理的用户数据中的剩余错误的经计算的数目非常有可能是预定错误阈值、等于或者小于预定错误阈值,则可以不要求进一步解码。在某些实施方式中,如果控制器电路108估计在当前经处理的用户数据中的剩余错误的经计算的数目等于或者小于预定错误阈值,则可以不要求进一步解码。在另一示例中,基于计算的校验子权重(syndrome weight)与预定阈值的比较,可以不要求进一步解码。校验子权重是由第一纠错电路202计算的、指示在当前经处理的所接收的数据中的剩余错误的似然性的经计算值。这些经计算值中的每个经计算值是指示当前经处理的所接收的数据的可靠性的可靠性度量。
在330处,如果控制器电路108确定第一解码过程不应当早些终止,则在316处,第一解码过程继续处理,直到已过去另一预定的时间单位为止。否则,在332处,如果控制器电路108确定第一解码过程应当早些终止,则在324处,终止第一解码过程,并且输出经部分解码的数据。
如前所述,停止规则指示是否要求使用第一解码过程的进一步处理。如果经估计,当前经处理的所接收的数据内的错误的数目对于供第二纠错电路204进行纠正而言足够低的话,则可以不要求使用第一解码过程的进一步解码。通过使用第二纠错电路204,可以降低整体系统功率和整体解码时间。
备选地,如果进一步处理不是针对纠错而做出的,则可以不要求第一解码过程的进一步处理。时间单位之间的经解码的数据值的改变可以用作对第一解码过程是否正在进展的指示符。
附加地,不同时间单位之间的用户数据的改变的数目也可以指示在第一解码过程是否正在做出进展。不是确定错误是否已被纠正,而是控制器电路108可以计算用户数据内的改变的数目。几乎没有改变或者没有改变可以指示第一解码过程已停顿(stall)。用户数据的较大改变可以指示第一解码过程已失败,并且进一步解码可能增加错误的数目。当确定对于纠错而言没有进展时,终止该第一解码过程可以节省解码功率,并且减少解码时间,这是由于利用第一纠错电路202的附加使用将几乎不会带来进展或者不会带来进展。
用于终止第一解码过程的执行的方法中的每个方法可以单独使用或者组合在一起使用。
在某些实施方式中,用于确定当前经处理的所接收的数据内的错误的数目较低的方法可以包括确定校验子权重是否在预定阈值以下。解码过程的校验子权重可以指示在经处理的所接收的数据中剩余的错误的似然性。校验子权重由第一纠错电路202的第一解码过程计算。校验子权重的计算可以基于预定的时间单位而频繁更新,或者每当控制器电路108确定第一解码过程的进一步处理时更新。
较低的校验子权重可以指示用户数据中几乎没有剩余的错误。较低的校验子权重也可以用来指示已达到困境状态(trapping state)。当在用户数据中剩余错误的数目较低时,可能发生困境状态,其中不再有错误得到纠正。当处于困境状态中时,执行对使用第一解码过程的用户数据的进一步解码可能不会导致纠正更多的错误。通过标识校验子权重在某一阈值之下,可以避免困境状态,从而防止发生由于不能纠正更多错误的浪费的处理。
为了降低功耗并且改善解码时间,控制器电路108可以引导第一纠错电路202早些终止第一解码过程,并且引导第二纠错电路204尝试纠正剩余错误中的剩余部分。如果校验子权重指示不存在错误,则控制器电路108可以引导纠错电路106跳过第二纠错电路204的第二解码过程。控制器电路108可以使用多个预定阈值来确定是否提早终止第一解码过程。继而,控制器电路108可以引导第二纠错电路204执行使用第二解码过程的进一步处理,或者引导选择电路208和输出选择电路210将第一纠错电路202的经解码的输出212提供给输出端114。
在某些实施方式中,用于确定当前经处理的用户数据内的错误的数目未在减少的方法可以包括确定校验子权重是否在预定阈值之上。如前所述,校验子权重可以指示在经处理的用户数据中剩余的错误的似然性。较大的校验子权重可以指示剩余错误的数目较高。错误的数目可能过大以至于不能由第一纠错电路202的第一解码过程进行纠正。对用户数据的进一步处理可能不会对纠错过程提供任何改善,并且可能只是消耗功率和时间。在其中错误的数目可能较大的情况中,系统可以依靠备选方法(即,存储电路102内的重试和重传机制)来纠正这些错误电路。通过控制器电路108确定校验子权重是否超过预定阈值,第一解码过程可以终止,而不浪费功率和时间。
备选地,控制器电路108可以跨多个预定时间单位之间比较校验子权重的改变。校验子权重的减小可以指示正在做出纠错进展,并且第一解码过程可以能够纠正错误。相反,校验子权重的增加可以指示解码过程正在引入更多的错误而不是纠正错误。通过跨多个时间单位相比较,控制器电路108可以确定进一步解码是否可能是有益的。
在某些实施方式中,用于确定第一解码过程是否正向经解码的数据提供改变的方法可以包括确定在给定时间单位中,其值改变的位或者符号的数目、翻转的位的数目、或者经处理的所接收的数据的位的似然性的改变。控制器电路108可以通过将经解码的数据的改变与预定阈值相比较而评估第一解码过程的进展。后续时间单位之间的小的改变可以指示第一解码过程未在进展。如果几乎没有改变或者不发生改变,则第一解码过程可能处于稳定状态,其中不能够纠正附加的错误。为了防止浪费功率并且为了减小解码时间,控制器电路108可以引导执行终止电路206将终止信号220发送给第一纠错电路202,以当确定了稳定状态时早些终止。
备选地,后续时间单位之间的非常大的改变也可以指示第一解码过程未在正确的方向上进展。例如,如果第一纠错电路被配置成纠正多达100个错误,而在给定时间单位中翻转了200个比特,则解码过程可能已失败,并且将不会实现进一步进展。在该情况中,解码过程的早些终止防止功率和解码时间的进一步浪费。针对给定预定时间单位,将其值改变的位/符号的数目(即,翻转的位的数目)与预定阈值相比较允许控制器电路108确定是否可以实现进一步进展。
在某些实施方式中,用于确定第一解码过程可能不需要进一步处理的方法可以基于对数似然比(LLR)。第一纠错电路202可以计算对数似然比(LLR)度量,以指示经解码的数据或者所接收的数据的位为1或者0的似然性。大量的位具有为1或者0的高似然性可以指示剩余错误的数目较低。当剩余错误的数目较低时,控制器电路108可以引导执行终止电路206向第一纠错电路202发送终止信号220以终止执行,并且继而引导第二纠错电路204来纠正剩余错误。
备选地,大量位具有为0或者1的低似然性可以指示剩余错误的数目较高。在后续时间单位之后似然性几乎没有改变或者没有改变可以指示第一解码过程已失败,并且不能实现进展。在该情形中,解码过程的早些终止防止功率和解码时间的进一步浪费。针对给定预定时间单位,将LLR度量的改变相比较允许控制器电路108确定是否可以实现进一步进展。
图4示出了用于根据本公开的另一个实施方式对所接收的数据进行解码的说明性过程400。在402处,由纠错电路106从存储电路102接收所接收的数据。所接收的数据104被提供给第一纠错电路202,并且在404处,执行第一解码过程。在过去预定的时间单位之后,在406处,控制器电路108确定第一纠错电路202的第一解码过程是否已完成。在422处,如果第一解码过程未完成,则在408处,控制器电路108确定是否已满足停止规则。否则,在420处,如果第一解码过程已完成,则在412处,第一纠错电路202已终止第一解码过程。
如上所述,在408处,确定是否已满足停止规则包括由控制器电路108将由第一纠错电路202计算的经计算的解码器错误度量与停止规则相比较。解码器错误度量可以包括可靠性度量。停止规则可以包括预定阈值,并且可靠性度量可以包括在预定的时间单位中改变的或者翻转的位/符号的数量的计算值、LLR的改变、校验子权重或者校验子权重的改变。
在424处,如果并未满足停止规则,则在410处,控制器电路108引导第一纠错电路202继续第一解码过程持续另一预定时间单位。在426处,如果停止规则已满足,则在412处,控制器电路108引导执行终止电路206向第一纠错电路202发送终止信号,以早些终止第一解码过程。
在第一解码过程已终止之后,在414处,控制器电路108确定在第一解码过程期间是否已发生发散。发散指示经解码的输出数据中的剩余错误的数目不会通过进一步解码减少。由控制器电路108进行的发散确定可以包括分析停止规则,以确定是否第一解码过程已失败,而大量错误和剩余错误无法被纠正。在430处,如果已发生发散,则在418处,控制器电路108可以引导选择电路208和输出选择电路210将由第一纠错电路202产生的经解码的输出数据212递送给输出端114。否则,在428处,如果并未发生发散,则在416处,经解码的输出数据212被提供给第二纠错电路204,以执行第二解码过程。在第二解码过程完成之后,在418处,控制器电路108引导第二纠错电路204和输出选择电路210,以提供结果给输出端114。
前述仅示例说明了本公开的原理,并且可以在不脱离本公开的范围的情况下进行各种修改。本公开的上述实施方式是出于示例说明而不是限制的目的而呈现,并且本公开仅由以下权利要求书限制。

Claims (18)

1.一种用于对数据进行解码的方法,所述方法包括:
接收待解码数据;
使用根据第一迭代解码过程对数据进行解码的第一纠错电路对所接收的数据进行解码;
在所述第一纠错电路完成执行所述第一迭代解码过程之前终止对用于纠正所述数据的所述第一迭代解码过程的执行;
响应于所述终止,产生经部分解码的中间数据,所述经部分解码的中间数据由终止的所述第一迭代解码过程导致;
通过确定所述第一迭代解码过程是否已失败来确定所述经部分解码的中间数据是否需要进一步解码;以及
响应于确定所述第一迭代解码过程尚未失败,使用根据第二解码过程对数据进行解码的第二纠错电路对所述经部分解码的中间数据进行解码。
2.根据权利要求1所述的方法,其中所述第一纠错电路包括迭代解码器,并且其中终止对所述第一迭代解码过程的执行包括:
导出解码器错误度量;
将所述解码器错误度量与停止规则相比较;
确定所述解码器错误度量是否已满足所述停止规则;以及
响应于确定所述解码器错误度量已满足所述停止规则而在完成所述第一迭代解码过程之前终止对所述第一迭代解码过程的执行。
3.根据权利要求2所述的方法,其中对所述所接收的数据进行解码还包括计算所述第一迭代解码过程的中间结果的可靠性度量。
4.根据权利要求2所述的方法,其中所述解码器错误度量包括可靠性度量。
5.根据权利要求4所述的方法,其中所述可靠性度量包括校验子权重或者整体LLR度量。
6.根据权利要求1所述的方法,其中对所述所接收的数据进行解码包括确定在预定时间间隔中在所述第一迭代解码过程中的翻转的位的数目。
7.根据权利要求1所述的方法,其中所述第一纠错电路包括迭代解码器,并且其中终止对所述第一迭代解码过程的执行包括确定是否已发生预定时间事件,所述预定时间事件包括所述第一纠错电路的时间单位,其中所述时间单位是时钟周期或者所述迭代解码器的迭代。
8.根据权利要求1所述的方法,其中所述第一纠错电路包括迭代解码器,并且其中确定所述经部分解码的中间数据是否需要进一步解码还包括:
确定解码器错误度量是否指示发散。
9.根据权利要求1所述的方法,其中所述第一纠错电路包括迭代解码器,并且其中是否使用第二纠错电路对所述经部分解码的中间数据进行解码依赖于解码器错误度量是否指示发散。
10.一种用于对数据进行解码的系统,包括:
纠错电路,其被配置成根据第一迭代解码过程对所接收的数据进行解码,其中所述纠错电路被配置成:
在完成所述第一迭代解码过程之前终止对用于纠正所述数据的所述第一迭代解码过程的执行;
响应于终止所述执行,产生经部分解码的中间数据,所述经部分解码的中间数据由终止的所述第一迭代解码过程导致;
通过确定所述第一迭代解码过程是否已失败来确定所述经部分解码的中间数据是否需要进一步解码;以及
响应于确定所述第一迭代解码过程尚未失败,根据第二解码过程对所述经部分解码的中间数据进行解码。
11.根据权利要求10所述的系统,其中所述纠错电路包括迭代解码器,并且其中所述纠错电路进一步被配置成:
导出解码器错误度量;
将所述解码器错误度量与停止规则相比较;
确定所述解码器错误度量是否已满足所述停止规则;以及
响应于确定所述解码器错误度量已满足所述停止规则而在完成所述第一迭代解码过程之前终止对所述第一迭代解码过程的执行。
12.根据权利要求11所述的系统,其中所述纠错电路进一步被配置成计算所述第一迭代解码过程的中间结果的可靠性度量。
13.根据权利要求11所述的系统,其中所述解码器错误度量包括可靠性度量。
14.根据权利要求13所述的系统,其中所述可靠性度量包括校验子权重或者整体LLR度量。
15.根据权利要求10所述的系统,其中所述纠错电路进一步被配置成确定在预定时间间隔中在所述第一迭代解码过程中的翻转的位的数目。
16.根据权利要求10所述的系统,其中所述纠错电路进一步被配置成确定是否已发生预定时间事件,所述预定时间事件包括所述纠错电路的时间单位,其中所述时间单位是时钟周期或者所述第一迭代解码过程的迭代。
17.根据权利要求10所述的系统,其中所述纠错电路包括迭代解码器,并且其中所述纠错电路进一步被配置成确定解码器错误度量是否指示发散。
18.根据权利要求10所述的系统,其中所述纠错电路包括迭代解码器,并且其中所述纠错电路进一步被配置成依赖于解码器错误度量是否已指示发散而确定是否使用第二解码过程对所述经部分解码的中间数据进行解码。
CN201210024401.1A 2011-01-31 2012-01-31 用于对级联纠错码的有效解码的方法和系统 Expired - Fee Related CN102624403B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161437954P 2011-01-31 2011-01-31
US61/437,954 2011-01-31

Publications (2)

Publication Number Publication Date
CN102624403A CN102624403A (zh) 2012-08-01
CN102624403B true CN102624403B (zh) 2017-12-29

Family

ID=46564102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210024401.1A Expired - Fee Related CN102624403B (zh) 2011-01-31 2012-01-31 用于对级联纠错码的有效解码的方法和系统

Country Status (2)

Country Link
US (1) US8869000B2 (zh)
CN (1) CN102624403B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009086562A1 (en) * 2008-01-02 2009-07-09 Beehive Engineering Systems, Llc Statement-based computing system
US9256526B2 (en) * 2012-02-23 2016-02-09 National Taiwan University Flash memory storage system and access method
US9128710B2 (en) * 2012-06-05 2015-09-08 Sk Hynix Memory Solutions Inc. Power saving techniques that use a lower bound on bit errors
TWI477104B (zh) * 2012-09-13 2015-03-11 Mstar Semiconductor Inc 錯誤校正裝置與錯誤校正方法
CN103716119B (zh) * 2012-09-29 2016-12-28 晨星软件研发(深圳)有限公司 错误校正装置与错误校正方法
CN104035832B (zh) * 2013-03-04 2018-07-03 联想(北京)有限公司 电子设备和数据校验方法
MX350054B (es) * 2013-05-03 2017-08-23 Ibiquity Digital Corp Decodificación de correción de error hacia adelante iterativa para sistemas de radiodifusion fm en canal dentro de banda.
RU2607993C2 (ru) * 2015-03-25 2017-01-11 ООО "Топкон Позишионинг Системс" Способ и устройство идентификации и компенсации инверсии входного битового потока при декодировании LDPC кодов
KR20170076350A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10050642B2 (en) * 2016-03-17 2018-08-14 Silicon Motion Inc. Low power scheme for bit flipping low density parity check decoder
KR20180003320A (ko) 2016-06-30 2018-01-09 삼성전자주식회사 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
TWI674765B (zh) * 2017-02-24 2019-10-11 瑞昱半導體股份有限公司 一種疊代解碼裝置及其控制方法
KR102362943B1 (ko) * 2017-06-26 2022-02-15 삼성전자 주식회사 효율적인 harq 운영을 위한 방법 및 장치
JP2019057752A (ja) 2017-09-19 2019-04-11 東芝メモリ株式会社 メモリシステム
KR102475279B1 (ko) 2017-12-18 2022-12-07 삼성전자주식회사 컨볼루션 타입의 저밀도 패리티 체크 코드를 이용하여 인코딩 및 디코딩을 수행하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN110138499A (zh) * 2018-02-08 2019-08-16 深圳衡宇芯片科技有限公司 级联编码系统
KR102629457B1 (ko) 2018-10-24 2024-01-26 삼성전자주식회사 반도체 메모리 장치, 제어 장치, 및 메모리 시스템
US10824507B2 (en) * 2018-10-24 2020-11-03 Samsung Electronics Co., Ltd. Semiconductor memory device, controller, and memory system
US20240095123A1 (en) * 2022-09-21 2024-03-21 Micron Technology, Inc. Syndrome decoding system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533320B2 (en) * 2000-11-14 2009-05-12 Interdigital Technology Corporation Wireless transmit/receive unit having a turbo decoder with circular redundancy code signature comparison and method
KR100713331B1 (ko) * 2000-12-23 2007-05-04 삼성전자주식회사 부호분할다중접속 이동통신시스템의 반복복호 중지 장치 및 방법
US7260762B2 (en) * 2004-07-26 2007-08-21 Motorola, Inc. Decoder performance for block product codes
US7783958B1 (en) * 2005-11-03 2010-08-24 Entropic Communications, Inc. Broadband satellite system for the simultaneous reception of multiple channels using shared iterative decoder
US7765453B2 (en) * 2006-12-13 2010-07-27 Nortel Networks Limited Early termination controller for iterative FEC decoders and method therefor
JP5007676B2 (ja) * 2008-01-31 2012-08-22 富士通株式会社 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
CA2660073A1 (en) * 2008-03-25 2009-09-25 Kenneth Gracie Event cleanup processing for improving the performance of sequence based decoders
EP2200240B1 (en) * 2008-12-18 2011-06-15 STMicroelectronics Srl Method and apparatus for near-optimal computation of bit soft information in multiple antenna communication systems with iterative detection and decoding
US8537919B2 (en) * 2010-09-10 2013-09-17 Trellis Phase Communications, Lp Encoding and decoding using constrained interleaving

Also Published As

Publication number Publication date
US8869000B2 (en) 2014-10-21
CN102624403A (zh) 2012-08-01
US20120198308A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
CN102624403B (zh) 用于对级联纠错码的有效解码的方法和系统
CN101194451B (zh) 用于迭代解码器中的功率减小的方法及装置
US8812939B2 (en) Soft decoding systems and methods for flash based memory systems
US10103752B2 (en) Encoding/decoding method, device, and system
US8418047B2 (en) Data bus system, its encoder/decoder and encoding/decoding method
US10498362B2 (en) Low power error correcting code (ECC) system
CN107241102B (zh) 在硬决策软解码期间决定何时结束位翻转算法的方法
US20110083060A1 (en) Memory system and control method for the same
CN105247793A (zh) 针对错误校正码的误校正检测
JP2003218706A (ja) ターボデコーダとrsデコーダが縦続接続されたデコーディング装置及びそのデコーディング方法
JP2011081858A5 (zh)
KR101819152B1 (ko) 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로
CN102543149A (zh) 使用混合解码器执行有效解码的系统和方法
US20150155888A1 (en) Concatenated error correction device
TWI460733B (zh) 具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法
CN106537787B (zh) 译码方法和译码器
CN103929211B (zh) 一种bch编码方案自适应调整方法及系统
US8869010B1 (en) Controlling decoder iterations based on measurements of physical variables
US11750219B2 (en) Decoding method, decoder, and decoding apparatus
JP2002344330A (ja) ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
TWI645683B (zh) 使用代數碼與ldpc碼的部分聯結編碼系統
CN111277830B (zh) 一种编码方法、解码方法及装置
CN112286716A (zh) 一种1024字节的存储系统差错控制模块
CN113098532B (zh) 低时延低复杂度的极化码译码方法和系统
Talasadar et al. BER performance comparison of HOVA and SOVA in AWGN channel

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200426

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200426

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200426

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.

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

Granted publication date: 20171229

Termination date: 20200131

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