CN113658618B - 错误校正解码器、具有其的错误校正电路及操作其的方法 - Google Patents

错误校正解码器、具有其的错误校正电路及操作其的方法 Download PDF

Info

Publication number
CN113658618B
CN113658618B CN202110194285.7A CN202110194285A CN113658618B CN 113658618 B CN113658618 B CN 113658618B CN 202110194285 A CN202110194285 A CN 202110194285A CN 113658618 B CN113658618 B CN 113658618B
Authority
CN
China
Prior art keywords
error correction
speed
ucn
decoding operation
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110194285.7A
Other languages
English (en)
Other versions
CN113658618A (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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113658618A publication Critical patent/CN113658618A/zh
Application granted granted Critical
Publication of CN113658618B publication Critical patent/CN113658618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

本公开提供了错误校正解码器、具有错误校正解码器的错误校正电路以及操作错误校正解码器的方法。错误校正解码器可以包括:计算器,被配置成通过对第一码字执行迭代解码操作来输出错误校正消息;校正子生成器,被配置成通过计算错误校正消息和奇偶校验矩阵来生成校正子,并且输出迭代数量和未满足校验节点(UCN)值,该迭代数量表示已经执行的迭代解码操作的次数,并且该UCN值表示校正子中的未满足校验节点的数量;速度选择器,被配置成根据迭代数量和UCN值来输出用于控制迭代解码操作的速度的速度代码。

Description

错误校正解码器、具有其的错误校正电路及操作其的方法
相关申请的交叉引用
本申请要求于2020年5月12日提交的申请号为10-2020-0056657的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种错误校正解码器、具有错误校正解码器的错误校正电路以及操作错误校正解码器的方法,并且更特别地,涉及一种提高了错误校正解码器的操作速度的错误校正解码器、具有错误校正解码器的错误校正电路以及操作错误校正解码器的方法。
背景技术
存储器系统可以包括可以存储数据的存储器装置,以及可以响应于来自主机的请求来控制存储器装置的控制器。例如,控制器可以对从主机提供到存储器装置的数据进行编程,并且可以读取存储器装置中存储的数据,并且将所读取的数据输出到主机。控制器可以包括错误校正电路以提高数据的可靠性。错误校正电路可以使用错误校正码执行编码和解码。例如,错误校正码可以包括:错误校正编码器,对从主机提供的数据进行编码;以及错误校正解码器,对从存储器装置读取的数据进行解码。从主机提供的数据可以是消息,并且从存储器装置读取的数据可以是码字。
错误校正电路可以通过使用低密度奇偶校验(LDPC)码等执行复杂的计算来将码字转换为消息。近来,随着码字的大小逐渐增加,错误校正解码所耗费的时间也增加。因此,控制器输出读取数据所需的时间也可能增加。因为特别是在使用LDPC码的解码期间执行复杂的计算,所以可能增加错误校正操作所耗费的时间。
发明内容
本公开的各个实施例涉及一种可以控制错误校正解码操作的速度的错误校正解码器、具有错误校正解码器的错误校正电路以及操作错误校正解码器的方法。
本公开的实施例可以提供一种错误校正解码器。错误校正解码器可以包括:计算器,被配置成通过对第一码字执行迭代解码操作来输出错误校正消息;校正子生成器,被配置成通过计算错误校正消息和奇偶校验矩阵来生成校正子,并且输出迭代数量和未满足校验节点(UCN)值,该迭代数量表示已经执行迭代解码操作的次数,该UCN值表示该校正子中的未满足校验节点的数量;速度选择器,被配置成根据迭代数量和UCN值来输出用于控制迭代解码操作的速度的速度代码,其中计算器基于速度代码来改变迭代解码操作的速度,并且当输入第二码字时,以改变后的速度执行迭代解码操作。
本公开的实施例可以提供一种错误校正电路。错误校正电路可以包括:错误校正编码器,被配置成通过对从主机接收的消息进行编码来生成码字,并且将该码字传输到存储器装置;以及错误校正解码器,被配置成从存储器装置接收码字,并且通过对该码字执行解码操作来输出消息,并且基于对先前码字的解码操作的结果,控制对后续码字的解码操作的速度。
本公开的实施例可以提供一种操作错误校正解码器的方法。该方法包括:通过使用第一码字和奇偶校验矩阵执行迭代解码操作来输出错误校正消息;通过计算错误校正消息和奇偶校验矩阵来生成校正子;检查校正子中是否存在未满足校验节点(UCN);当校正子中存在UCN时,对UCN的数量进行计数以生成UCN值,并且对与已经执行迭代解码操作的次数相对应的迭代数量进行计数;根据所计数的UCN值以及所计数的迭代数量来改变迭代解码操作的速度;当校正子中不存在UCN时,将用于生成校正子的转置矩阵的值作为消息而输出;并且使用第二码字和奇偶校验矩阵以改变后的速度执行迭代解码操作。
本公开的实施例可以提供一种操作低密度奇偶校验(LDPC)解码器的方法。该方法可以包括:通过改变变量节点来对当前码字迭代LDPC解码操作,直到该操作不导致未满足校验节点(UCN),并且对每次迭代之后的迭代数量和UCN的数量进行计数,该操作使用特定数量的变量节点以特定的时钟速度来执行;并且基于所计数的迭代数量以及所计数的UCN数量中的至少一个来调整变量节点的数量和时钟速度中的至少一个,以对后续码字执行LDPC解码操作。
附图说明
图1是示出根据本公开的实施例的错误校正电路的示图。
图2是示出根据本公开的实施例的迭代计算器和校正子校验器的示图。
图3是示出根据本公开的实施例的计算器的示图。
图4是示出根据本公开的实施例的速度选择器的示图。
图5是示出根据本公开的实施例的校正子生成器的示图。
图6是示出根据本公开的实施例的寄存器的示图。
图7是示出根据本公开的实施例的错误校正解码操作的流程图。
图8是示出根据本公开的实施例的奇偶校验矩阵的示图。
图9是示出与图8的奇偶校验矩阵相对应的泰纳(Tanner)图的示图。
图10是示出使用图8所示的奇偶校验矩阵来生成符号的方法的示图。
图11是示出根据本公开的实施例的符号和未满足校验节点(UCN)的示图。
图12和图13是示出根据本公开的实施例的控制错误校正解码操作的速度的方法的示图。
图14和图15是示出根据本公开的实施例的控制错误校正解码操作的速度的方法的示图。
图16是示出根据本公开的实施例的存储器系统的示图。
图17是示出诸如图16的存储器装置的示图。
图18是示出诸如图16的控制器的示图。
具体实施方式
图1是示出根据本公开的实施例的错误校正电路的示图。
参照图1,错误校正电路1000可以通过对从主机输出的消息MSG进行编码来输出码字CDWD,并且可以通过对从存储器装置输出的码字CDWD进行解码来输出消息MSG。
错误校正电路1000可以在编程操作期间通过执行错误校正编码操作来将消息MSG转换为码字CDWD,并且可以在读取操作期间通过执行错误校正解码操作来将码字CDWD转换为消息MSG。
错误校正电路10000可以包括可以执行错误校正编码操作的错误校正编码器1100、可以执行错误校正解码操作的错误校正解码器1200以及可以控制错误校正编码器1100和错误校正解码器1200的错误校正处理器1300。
错误校正编码器1100可以接收作为错误校正编码的目标的消息MSG,然后可以使用所接收的消息MSG和错误校正码(ECC)的矩阵来执行错误校正编码操作。根据实施例,错误校正编码器1100还可以使用错误校正码的奇偶校验矩阵来执行错误校正编码。错误校正编码器1100可以输出作为执行错误校正编码的结果而生成的码字CDWD。码字CDWD可以通过通道传输到存储器装置,并且可以存储在存储器装置中包括的多个存储器单元(例如,构成单个页面的存储器单元)中。错误校正编码器1100可以是使用LDPC码作为错误校正码的低密度奇偶校验(LDPC)编码器。
错误校正解码器1200可以使用采用迭代解码方案的各种算法来执行错误校正解码操作。例如,错误校正解码器1200可以使用也被称为“置信传播算法”的消息传递算法来执行错误校正解码操作。错误校正解码器1200可以在设定的最大数量的迭代(即,最大迭代数量)内执行多个错误校正解码操作和校正子校验操作,并且当相应的错误校正解码操作和校正子校验操作已经通过时,可以输出消息MSG。
错误校正解码器1200可以包括迭代计算器110和校正子校验器120。迭代计算器110可以使用奇偶校验矩阵来对码字CDWD迭代错误校正操作,然后可以输出错误校正消息(ECM)。例如,迭代计算器110可以使用码字CDWD生成奇偶校验矩阵,并且可以通过执行与一个循环相对应的错误校正操作来输出错误校正消息ECM。
校正子校验器120可以通过执行使用错误校正消息ECM和奇偶校验矩阵的解码操作来生成校正子,并且可以基于该校正子来确定解码操作是否已经通过或失败。例如,当校正子中包括未满足校验节点(UCN)时,校正子校验器120可以确定解码操作已经失败,而当校正子中不存在UCN时,校正子校验器120可以确定解码操作已经通过。
当确定解码操作已经失败时,校正子校验器120可以将失败信号FSG输出到迭代计算器110。响应于失败信号FSG,迭代计算器110可以通过执行与下一循环相对应的计算操作来输出错误校正消息ECM。通过这种方式,在解码操作在最大迭代数量内通过之前,迭代计算器110和校正子校验器120可以迭代计算或解码操作。
当确定解码操作已经通过时,校正子校验器120可以将在解码操作的迭代期间检测到的UCN值或UCN数量UCN#以及迭代的数量(即,迭代数量)ITR#传输到迭代计算器110。
迭代计算器110可以基于UCN值UCN#或迭代数量ITR#或者基于UCN值UCN#和迭代数量ITR#来控制后续输入的码字CDWD的计算速度。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者从先前值或参考值增加时,迭代计算器110可以控制计算速度,使得计算速度变得低于解码操作的先前速度或参考速度。当UCN值UCN#和迭代数量ITR#中的一个或两者从先前值或参考值减少时,迭代计算器110可以控制计算速度,使得计算速度变得高于先前速度或参考速度。当UCN值UCN#和迭代数量ITR#中的一个或两者等于先前值或参考值时,迭代计算器110可以将计算速度保持在先前速度或参考速度。
通过这种方式,本实施例可以基于对先前输入的码字的错误校正计算的结果来控制对后续待输入的码字的错误校正计算的速度。因此,当错误位的数量较少时,可以将计算速度调整为较高,从而使得错误校正解码器1200的性能提高。相反,当错误位的数量较大时,可以将计算速度调整为较低,从而在提高错误校正的可靠性的同时,减少错误校正解码器1200消耗的电力。
错误校正处理器1300可以响应于命令CMD来控制错误校正电路1000。例如,错误校正处理器1300可以响应于与编程操作相对应的命令CMD来启用错误校正编码器1100,并且可以响应于与读取操作相对应的命令CMD来启用错误校正解码器1200。进一步地,错误校正处理器1300还可以控制错误校正解码器1200中包括的迭代计算器110和校正子校验器120。对于该操作,错误校正处理器1300可以存储用于控制错误校正电路1000的算法。
图2是示出根据本公开的实施例的迭代计算器和校正子校验器的示图。
参照图2,迭代计算器110可以包括计算器21和速度选择器22,并且校正子校验器120可以包括校正子生成器23和寄存器24。
计算器21可以在输入码字CDWD时通过使用奇偶校验矩阵执行计算操作来生成错误校正消息ECM,并且可以将所生成的错误校正消息ECM输出到校正子生成器23。当从校正子生成器23输出失败信号FSG时,计算器21可以响应于失败信号FSG执行后续的错误校正操作,然后可以生成和输出与先前的错误校正消息不同的错误校正消息ECM。
速度选择器22可以根据UCN值UCN#和迭代数量ITR#中的一个或两者来输出不同的速度代码SPC。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者从先前值或参考值增加时,速度选择器22可以输出用于控制计算速度的速度代码SPC,使得计算速度变得低于先前速度或参考速度。当UCN值UCN#和迭代数量ITR#中的一个或两者从先前值或参考值减少时,速度选择器22可以输出用于控制计算速度的速度代码SPC,使得计算速度变得高于先前速度或参考速度。当UCN值UCN#和迭代数量ITR#中的一个或两者等于先前值或参考值时,速度选择器22可以输出用于将计算速度保持在先前速度或参考速度的速度代码SPC。
计算器21可以基于先前码字CDWD的速度代码SPC来改变计算速度,并且可以在输入后续码字CDWD时通过将改变后的计算速度应用于后续码字CDWD的计算来执行计算操作。随着计算速度增加,用于计算操作的电力可能增加,而随着计算速度降低,用于计算操作的电力可能减少。即,通过根据速度代码SPC设定的速度,计算器21所消耗的电力可以变化。
当错误校正消息ECM被输入到校正子生成器23时,校正子生成器23可以通过使用奇偶校验矩阵执行解码操作来生成校正子矢量。一组校正子矢量可称为“校正子”。校正子生成器23可以在校正子矢量之中存在任何UCN时确定解码操作已经失败,并且可以在校正子矢量之中不存在UCN时确定解码操作已经通过。当确定解码操作已经失败时,校正子生成器23可以将失败信号FSG输出到计算器21。校正子生成器23可以单独地对解码操作通过之前所发生的UCN的数量以及解码操作通过之前所执行计算操作的次数(或迭代数量)进行计数,然后可以生成UCN值UCN#和迭代数量ITR#。当确定解码操作已经通过时,校正子生成器23可以将在迭代解码操作期间生成的错误校正消息之中校正子检验操作通过的错误校正消息作为消息MSG来输出。
寄存器24可以临时存储UCN值UCN#和迭代数量ITR#,可以输出UCN值UCN#和迭代数量ITR#,UCN值UCN#和迭代数量ITR#两者都可以在解码操作已经通过时被重置。从寄存器24输出的UCN值UCN#和迭代数量ITR#可以输入到速度选择器22。
图3是示出根据本公开的实施例的计算器的示图。
参照图3,计算器21可以包括矩阵计算器31、时钟控制器32和位控制器33。
矩阵计算器31可以使用奇偶校验矩阵来对码字CDWD执行错误校正操作,然后可以生成错误校正消息ECM。矩阵计算器31可以与用于系统操作的时钟同步地执行错误校正操作,并且可以根据位数量来执行错误校正操作。执行以输出错误校正消息ECM的错误校正操作可以被称为“循环1”,并且执行以输出后续错误校正消息ECM的错误校正操作可以被称为“循环2”。当输入失败信号FSG时,矩阵计算器31可以改变变量节点VN或位,并且可以通过执行错误校正操作来输出改变后的错误校正消息ECM。
时钟控制器32可以控制时钟,使得矩阵计算器31可以顺序地执行计算操作。可以在时钟控制器32中设定初始周期,但是可以响应于第一速度代码SPC1而将该初始周期改变为另一周期。例如,时钟控制器32可以响应于第一速度代码SPC1而将周期已经改变的时钟提供到矩阵计算器31。矩阵计算器31可以与该时钟的周期同步地执行错误校正操作或奇偶校验操作。
位控制器33可以设定在一个循环中被执行计算操作的位的数量。也可以在位控制器33中设定初始位数量,但是可以响应于第二速度代码2SPC来改变执行每个计算操作的位数量。
因此,可以根据由时钟控制器32设定的时钟以及由位控制器33设定的位数量来改变由矩阵计算器31执行的计算操作的速度。
图4是示出根据本公开的实施例的速度选择器的示图。
参照图4,速度选择器22可以包括确定器41、时钟管理器42和位管理器43。
确定器41可以将UCN值UCN#和迭代数量ITR#与各自的比较值进行比较,并且可以基于比较结果来控制时钟管理器42和位管理器43中的一个或两者。也就是说,可以将UCN#与先前的UCN#或相应的参考值进行比较,并且将ITR#与先前的ITR#或相应的参考值进行比较。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者从先前的值或参考值增加时,确定器41可以向时钟管理器42和位管理器43中的一个或两者输出控制计算速度的信号,使得计算速度变得低于先前速度或参考速度。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者从先前的值或参考值减少时,确定器41可以向时钟管理器42和位管理器43中的一个或两者输出控制计算速度的信号,使得计算速度变得高于先前速度或参考速度。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者等于先前值或参考值时,确定器41可以向时钟管理器42和位管理器43中的一个或两者输出将计算速度保持在先前速度或参考速度的信号。
图5是示出根据本公开的实施例的校正子生成器的示图。
参照图5,校正子生成器23可以包括校正子解码器51和计数器52。
校正子解码器51可以通过计算错误校正消息ECM和奇偶校验矩阵来生成符号,并且可以基于所生成的符号来确定错误校正解码操作是否已经通过或失败。例如,当所有符号均为“0”时,校正子解码器51可以确定错误校正解码操作已经通过,而当符号中的至少一个为“1”时,校正子解码器51可以确定错误校正解码操作已经失败。一组所生成的符号可被称为“校正子”。当确定错误校正解码操作已经通过时,校正子解码器51可以输出最终消息MSG,而当确定错误校正解码操作已经失败时,校正子解码器51可以输出失败信号FSG。
计数器52可以对由校正子解码器51执行解码操作的迭代数量ITR#以及指示校正子矢量中与“1”相对应的位的数量的UCN值UCN#进行计数,并且输出累积的UCN值UCN#和迭代数量ITR#。
图6是示出根据本公开的实施例的寄存器的示图。
参照图6,寄存器24可以包括多个存储区域61和62。例如,寄存器24可以被实施为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或非易失性存储器。寄存器24可以包括可以存储UCN值UCN#的第一存储区域61以及可以存储迭代数量ITR#的第二存储区域62。第一存储区域61可以顺序地存储从校正子生成器(例如,图5的23)输出的UCN值UCN#,并且顺序地输出UCN值UCN#。第二存储区域62可以顺序地存储从校正子生成器23输出的迭代数量ITR#,并且顺序地输出迭代数量ITR#。
图7是示出根据本公开的实施例的错误校正解码操作的流程图。
参照图7,当在操作S71处接收到第一码字CDWD时,矩阵计算器(例如,图3的31)可以在操作S72处以第一速度(1st speed)执行错误校正操作,并且可以通过错误校正操作来生成错误校正消息。第一速度可以是预设的。
当错误校正消息输入到校正子解码器(例如,图5的51)时,校正子解码器51可以在操作S73处通过计算错误校正消息和奇偶校验矩阵来生成校正子SDR。然后,在操作S74处,校正子解码器51可以检查校正子SDR中的符号中的任意一个是否不为“0”,并且可以在至少一个符号为“1”时确定错误校正解码操作已经失败。此处,当与“1”相对应的符号是未满足校验节点(UCN)时,计数器(例如,图5的52)可以在操作S75处对UCN的数量UCN#进行计数,并且可以对为生成校正子SDR而执行的错误校正操作的迭代数量ITR#进行计数。当错误校正解码操作失败并且校正子解码器51输出失败信号FSG时,矩阵计算器31可以在操作S76处响应于失败信号FSG而改变变量节点VN,并且可以在操作S72处在设定的循环中执行错误校正操作的另一迭代。
在在操作S74处错误校正解码操作通过之前,可以迭代操作S72至S76直到最大迭代数量,并且如果错误校正解码操作在被执行了允许的最大次数之后仍未通过,则可以将S72的错误校正视为失败。
在操作S74处,当校正子中的所有符号均为“0”时,校正子解码器51可以确定错误校正解码操作已经通过,并且计数器52可以输出累积的UCN值UCN#和迭代数量ITR#。
在操作S77处,确定器41可以根据UCN值UCN#和迭代数量ITR#中的一个或两者来确定错误校正操作的速度。确定器41可以分别将UCN值UCN#和迭代数量ITR#与先前值或参考值进行比较,并且可以基于比较结果来控制时钟管理器(例如,图4的42)和位管理器(例如,图4的43)中的一个或两者,从而改变影响错误校正操作速度的条件。
例如,当UCN值UCN#和迭代数量ITR#中的一个或两者从先前的值或参考值增加时,确定器41可以向时钟管理器42和位管理器43中的一个或两者输出控制计算速度的信号,使得计算速度变得低于先前速度或参考速度。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者从先前的值或参考值减少时,确定器41可以向时钟管理器42和位管理器43中的一个或两者输出控制计算速度的信号,使得计算速度变得高于先前速度或参考速度。例如,当UCN值UCN#和迭代数量ITR#中的一个或两者等于先前值或参考值时,确定器41可以向时钟管理器42和位管理器43中的一个或两者输出将计算速度保持在先前速度或参考速度的信号。
时钟管理器42和位管理器43可以在确定器41的控制下输出信号,并且时钟控制器(例如,图3的32)和位控制器(例如,图3的33)可以根据从时钟管理器42和位管理器43输出的信号来改变与错误校正操作的速度有关的条件。时钟控制器32可以控制执行错误校正操作的时钟的周期,并且位控制器33可以控制在矩阵计算器31中使用的位数量。例如,当以第一速度对第一码字CDWD执行错误校正操作时,可以设定条件,使得以第二速度对后续码字执行错误校正操作,该第二速度不同于第一速度。
当在操作S77处完成错误校正操作的速度的设定时,矩阵计算器31可以在操作S78处接收第二码字CDWD,并且可以在操作S79处以第二速度执行错误校正操作。
下面详细描述上述错误校正操作和错误校正解码操作。
图8是示出根据本公开的实施例的奇偶校验矩阵的示图。
在图8中,示出了定义(n,k)码的奇偶校验矩阵H的示例。
(n,k)码可以被定义为具有(n-k)×n的大小的矩阵。奇偶校验矩阵H的每个条目都是例如“0”或“1”的两个值中的一个。在奇偶校验矩阵H中,1的数量小于0的数量。(n,k)码可以被称为“(n,k)LDPC码”。此处,n和k可以是正整数。在图8中,作为示例,示出了定义(7,4)码的奇偶校验矩阵H。
图9是示出与图8的奇偶校验矩阵相对应的泰纳(Tanner)图的示图。
参照图9,(n,k)码可以由具有等效二分图形式的泰纳图表示。泰纳图可以由n-k个校验节点、n个变量节点和边沿表示。在图9所示的泰纳图中,包括三个校验节点CN1至CN3、七个变量节点VN1至VN7以及多个边沿EG。
校验节点CN1至CN3可以对应于图8所示的奇偶校验矩阵H的列,并且变量节点VN1至VN7可以对应于奇偶校验矩阵的行。边沿EG中的每一个表示一个校验节点到一个变量节点的联接。
可以基于校验节点CN1至CN3与变量节点VN1至VN7之间的迭代消息传递算法来执行迭代解码操作。即,在每个迭代中,可以在校验节点CN1至CN3与变量节点VN1至VN7之间传送错误校正消息的同时执行迭代解码操作。
变量节点VN1至VN7中的每一个可以使用从联接到该变量节点的校验节点接收的校验节点到变量节点(C2V)消息来执行错误校正操作,并且可以生成待发送到与该变量节点联接的校验节点CN1至CN3的变量节点到校验节点(V2C)消息。变量节点VN1至VN7中的每一个可以将V2C消息发送到与该变量节点联接的校验节点CN1至CN3
校验节点CN1至CN3中的每一个可以使用从联接到该校验节点的变量节点VN1至VN7接收的V2C消息来执行奇偶校验操作,并且可以生成待发送到联接到该校验节点的变量节点VN1至VN7的C2V消息。校验节点CN1至CN3中的每一个可以将C2V消息发送到联接到该校验节点的变量节点VN1至VN7
循环可以是路径(图9中由粗线表示),来自一个节点的消息通过该路径经过边沿EG,然后返回到该节点本身。例如,(VN1至VN7之中)选择的变量节点和(CN1至CN3之中)选择的校验节点之间的每个消息发送路径可以被称为“循环”。
图10是示出使用图8所示的奇偶校验矩阵来生成符号的方法的示图,并且图11是示出根据本公开的实施例的符号和未满足校验节点(UCN)的示图。
参照图10和图11,可以基于奇偶校验矩阵(图8的H)以及与第i迭代相对应的变量节点矢量Ci1至Ci7的转置矩阵
Figure BDA0002945803670000131
来生成符号Si1至Si3
当所有符号Si1、Si2和Si3均为“0”时,校正子校验操作已经通过,并且这也意为相应的迭代中的错误校正解码已经成功。因此,可以终止对码字的迭代解码操作,并且可以输出与第i迭代相对应的变量节点矢量Ci1至Ci7作为消息MSG。
当校正子SDR的符号Si1、Si2和Si3中至少有一个不是“0”时,校正子校验操作已经失败。因为这意为相应迭代中的错误校正解码已经失败,所以除非当前迭代已经达到最大迭代数量,否则可以执行后续的迭代解码操作。此处,除“0”以外的符号表示UCN。例如,当校正子之中的符号中存在两个符号“1”时,UCN值UCN#可以是2。当后续生成的校正子中存在一个符号“1”时,UCN值UCN#为1,并且因此累积的UCN值UCN#可以是3。
图12和图13是示出根据本公开的实施例的控制错误校正解码操作的速度的方法的示图。
参照图12,在实施例中,可以控制执行迭代解码操作的时钟的周期。例如,当第一变量节点VN1向第一校验节点CN1发送错误校正消息时,可以执行第一计算C1,而当第一校验节点CN1向第二变量节点VN2发送错误校正消息时,可以执行第二计算C2。以该顺序,当在一个循环内顺序地执行第一至第六计算C1至C6时,可以与时钟CLK同步地顺序地执行第一至第六计算C1至C6。
参照图13,当第一时钟1CLK、第一UCN值UCN1和第一迭代数量ITR1被设定为参考值时,可以与第一时钟1CLK同步地顺序地执行在第一迭代解码操作期间执行的第一至第六计算C1至C6。
例如,作为对第一码字的迭代解码操作的结果,当UCN值UCN#和迭代数量ITR#被检测为分别大于第一UCN值UCN1和第一迭代数量ITR1的第二UCN值UCN2和第二迭代数量ITR2时,这意为检测到的错误的数量大于错误的参考数量。在这种情况下,为了提高对在第一码字后续待输入的第二码字的迭代解码操作的可靠性并降低功耗,可以设定具有第二周期F2的第二时钟2CLK,该第二周期F2比第一时钟1CLK的第一周期F1更长。因此,可以与第二时钟2CLK同步地并且比先前的迭代解码操作更慢地执行对第二码字的迭代解码操作。
作为对第一码字的迭代解码操作的结果,当UCN值UCN#和迭代数量ITR#被检测为分别小于第一UCN值UCN1和第一迭代数量ITR1的第三UCN值UCN3和第三迭代数量ITR3时,这意为检测到的错误的数量小于错误的参考数量。在这种情况下,为了将待在第一码字后续输入的第二码字的迭代解码操作的操作速度从先前操作速度增加,可以设定具有第三周期F3的第三时钟3CLK,该第三周期F3比第一时钟1CLK的第一周期F1更短。因此,可以与第三时钟3CLK同步地并且比先前的迭代解码操作更快地执行对第二码字的迭代解码操作。
图14和图15是示出根据本公开的实施例的控制错误校正解码操作的速度的方法的示图。
参照图14和图15,当UCN值UCN#和迭代数量ITR#增加时,可以增加在迭代解码操作的每次计算中将处理的位数量。例如,假设在对第一码字的迭代解码操作期间,每个循环(1CYC)将处理的位数量为N。在图14所示的实施例中,N为3,但这仅是示例;N可以改变为其它值。
在图14所示的实施例中,在一个循环(1CYC)中将处理的位数量为3(VN1、VN2和VN4)的情况下,作为对第一码字的迭代解码操作的结果,当UCN值UCN#和迭代数量ITR#被检测为大于第一UCN值UCN1和第一迭代数量ITR1的第二UCN值UCN2和第二迭代数量ITR2时,可以添加位15,以使在对第一码字后续输入的第二码字将执行的迭代解码操作期间每个循环(1CYC)能够处理M个位(其中M是大于N的正整数)。
图16是示出根据本公开的实施例的存储器系统的示图。
参照图16,存储器系统2000可以包括存储数据的存储器装置2100以及执行存储器装置2100与主机3000之间的通信的控制器2200。
存储器装置2100可以包括存储数据的多个存储块,并且存储块中的每一个可以包括易失性存储器单元或非易失性存储器单元。存储器装置2100可以通过通道与控制器2200通信。例如,存储器装置2100可以响应于从控制器2200输出的命令来执行各种操作。例如,在编程操作期间,存储器装置2100可以接收从控制器2200输出的编程命令和码字,并且可以响应于编程命令将码字存储在所选择的存储块中。进一步地,存储器装置2100可以响应于从控制器2200输出的读取命令和地址,将从所选择的存储块读取的数据(例如,码字)输出到控制器2200。
控制器2200可以执行主机3000和存储器装置2100之间的通信。控制器2200可以响应于来自主机3000的请求而控制存储器装置2100,或者在没有来自主机3000的请求的情况下,执行用于提高存储器系统2000的性能的后台操作。
主机3000可以生成用于各种操作的请求,并且可以将所生成的请求输出到存储器系统2000。例如,请求可以包括用于控制编程操作的编程请求、用于控制读取操作的读取请求、用于控制擦除操作的擦除请求等。主机3000可以通过诸如以下的各种接口中的任意一种与存储器系统2000通信:高速外围组件互连(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串列小型计算机系统接口(SCSI)(SAS)、高速非易失性存储器(NVMe)、通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)或电子集成驱动器(IDE)。
图17是示出图16的存储器装置的示图。
参照图17,存储器装置2100可以包括存储数据的存储器单元阵列300,执行编程操作、读取操作或擦除操作的外围电路(统称为元件310至350),以及控制外围电路的控制逻辑电路(LOGCON)370。外围电路可以包括电压生成器(VGEN)310、行解码器(RDEC)320、页面缓冲器组(PBG)330、列解码器(CDEC)340和输入/输出电路(IOC)350。
存储器单元阵列300可以包括存储数据的多个存储块MB1至MBk(其中k是正整数)。存储块MB1至MBk中的每一个可以包括多个存储器单元,可以以存储器单元水平地布置在衬底上的二维(2D)结构或者以存储器单元垂直地堆叠在衬底上的三维(3D)结构来实施。
电压生成器310可以响应于操作代码OPc而生成和输出用于各种操作的操作电压Vop。例如,电压生成器310可以生成和输出编程电压、验证电压、读取电压、通过电压、擦除电压等。在编程操作期间,电压生成器310可以响应于操作代码OPc而控制编程电压和验证电压的电平。
行解码器320可以响应于行地址RADD而从存储器单元阵列300中包括的存储块之中选择一个存储块,传送操作电压Vop,并且可以将操作电压Vop传输到所选择的存储块。
页面缓冲器组330可以通过位线联接到存储器单元阵列300。例如,页面缓冲器组330可以包括联接到各个位线的页面缓冲器。页面缓冲器可以响应于页面缓冲器控制信号PBSIG而同时操作,并且可以在编程操作或读取操作期间临时存储数据。对于该操作,页面缓冲器中的每一个可以包括临时存储数据的多个锁存器。锁存器的数量可以根据编程方案而变化。而且,可以根据可以在一个存储器单元中存储的位数量或根据验证操作中使用的验证电压的数量来不同地设计页面缓冲器。进一步地,验证电压可以用于确定待编程到相同目标电压的存储器单元的各个阈值电压。
列解码器340可以响应于列地址CADD在输入/输出电路350和页面缓冲器组330之间顺序地传送数据。
输入/输出电路350可以通过输入/输出线IO联接到控制器2200。输入/输出电路350可以通过输入/输出线IO接收/输出命令CMD、地址ADD和数据DATA。例如,输入/输出电路350将通过输入/输出线IO接收的命令CMD和地址ADD传输到控制逻辑电路360,并且可以将通过输入/输出线IO接收的数据传输到页面缓冲器组330。输入/输出电路350可以通过输入/输出线IO将从页面缓冲器组330接收的数据输出到控制器2200。
控制逻辑电路360可以响应于命令CMD和地址ADD而输出操作代码OPc、行地址RADD、页面缓冲器控制信号PBSIG和列地址CADD。例如,控制逻辑电路360可以包括诸如响应于命令CMD而运行的算法的软件,并且可以包括根据所采用的算法来输出各种类型的代码和信号的硬件。
图18是示出图16的控制器的示图。
参照图18,控制器2200可以包括通过总线276彼此通信的中央处理器(CPU)210、内部存储器220、后台操作管理器(BKOP管理器)230、错误校正电路(ECC)1000、主机接口(主机I/F)250以及存储器接口(存储器I/F)260。
CPU 210可以响应于来自主机(例如,图16的3000)的请求RQ来控制存储器装置(例如,图16的2100)。例如,当从主机3000接收到请求RQ时,CPU 210可以响应于所接收的请求而通过将诸如用于控制存储器装置2100的编程命令、读取命令或擦除命令的命令与地址组合来生成命令集。当没有从主机300接收到请求时,CPU 210可以通过控制后台操作管理器230来自主地执行后台操作,从而提高存储器系统(例如,图16的2000)的性能。
内部存储器220可以临时存储用于控制器2200的操作的各种类型的数据,或者可以在编程操作或读取操作期间临时存储数据。例如,内部存储器220可以被实施为DRAM、SRAM或非易失性存储器。内部存储器220可以存储用于存储器系统2000的操作的各个地址,并且可以存储和更新与各个地址相对应的存储块的各种类型的状态信息。例如,内部存储器220可以存储其中逻辑地址被映射到物理地址的映射表,并且可以响应于来自CPU 210的请求而输出所选择的地址。
响应于来自CPU 210的请求,后台操作管理器230可以输出用于诸如垃圾收集或损耗均衡的后台操作的命令。
错误校正电路1000可以如图1所示进行配置,并且可以执行诸如上述实施例中的错误校正操作。例如,错误校正电路1000可以在编程操作期间通过对从主机3000接收的数据(例如,消息)进行编码来输出码字,并且可以在读取操作期间通过对从存储器装置2100接收的数据(例如,码字)进行解码来输出消息。在编码和解码期间,可以使用低密度奇偶校验(LDPC)码。可选地,可以使用各种其它类型的代码中的任意一种来执行错误校正操作,例如,非LDPC码。
主机接口250可以在控制器2200和主机3000之间交换命令、地址、数据等。例如,主机接口250可以利用诸如以下的各种接口中的任意一种来实施:高速外围组件互连(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串列SCSI(SAS)、高速非易失性存储器(NVMe)、通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)或电子集成驱动器(IDE)。
存储器接口260可以在控制器2200和存储器装置2100之间交换命令、地址、数据等。例如,存储器接口260可以通过通道与存储器装置2100通信。
本公开的实施例可以基于先前错误校正解码操作的结果来控制将对后续码字执行的错误校正解码操作的速度。

Claims (19)

1.一种错误校正解码器,包括:
计算器,通过对第一码字执行迭代解码操作来输出错误校正消息;
校正子生成器,通过计算所述错误校正消息和奇偶校验矩阵来生成校正子,并且输出迭代数量和未满足校验节点UCN值,所述迭代数量表示已经执行所述迭代解码操作的次数,所述UCN值表示所述校正子中的未满足校验节点的数量;以及
速度选择器,根据所述迭代数量和所述UCN值来输出用于控制所述迭代解码操作的速度的速度代码,
其中所述计算器基于所述速度代码来改变所述迭代解码操作的速度,并且当输入第二码字时,以改变后的速度执行所述迭代解码操作。
2.根据权利要求1所述的错误校正解码器,其中所述计算器包括:
矩阵计算器,使用所述第一码字和所述奇偶校验矩阵来执行包括多个计算操作的所述迭代解码操作;
时钟控制器,响应于所述速度代码中包括的第一速度代码来控制时钟,以该时钟将执行所述迭代解码操作;以及
位控制器,响应于所述速度代码中包括的第二速度代码来控制所述迭代解码操作的每个循环将处理的位数量。
3. 根据权利要求1所述的错误校正解码器,其中所述校正子生成器包括:
校正子解码器,通过计算所述错误校正消息和所述奇偶校验矩阵来生成所述校正子,当在所述校正子中未检测到未满足校验节点时输出最终消息,当在所述校正子中检测到至少一个未满足校验节点时输出失败信号;以及
计数器,当在所述迭代解码操作期间输出所述失败信号时,对未满足校验节点的数量和已经执行所述迭代解码操作的次数进行计数,以生成所述UCN值和所述迭代数量,并且输出所述UCN值和所述迭代数量。
4. 根据权利要求3所述的错误校正解码器,其中:
所述校正子解码器将所述失败信号传输到所述计算器,并且
所述计算器响应于所述失败信号而执行所述迭代解码操作的另一迭代。
5.根据权利要求2所述的错误校正解码器,其中所述速度选择器包括:
确定器,将所述迭代解码操作的所述迭代数量与比较迭代值进行比较,并且将所述UCN值与比较UCN值进行比较;
时钟管理器,在所述确定器的控制下输出所述第一速度代码,用于改变用于所述迭代解码操作的时钟的周期;以及
位管理器,在所述确定器的控制下输出所述第二速度代码,用于改变所述迭代解码操作的每个循环将处理的位数量,
其中,所述比较迭代值表示先前迭代值或参考迭代值,并且所述比较UCN值表示先前UCN值或参考UCN值。
6.根据权利要求5所述的错误校正解码器,其中所述时钟管理器在所述迭代数量和所述UCN值分别大于所述比较迭代值和所述比较UCN值时,输出所述第一速度代码和所述第二速度代码,以使所述迭代解码操作的速度变得低于所述迭代解码操作的先前速度。
7. 根据权利要求6所述的错误校正解码器,其中:
使所述迭代解码操作的速度变得低于所述先前速度的所述第一速度代码包括用于增加所述时钟的周期的代码,并且
使所述迭代解码操作的速度变得低于所述先前速度的所述第二速度代码包括用于增加所述每个循环将处理的位数量的代码。
8.根据权利要求5所述的错误校正解码器,其中所述时钟管理器在所述迭代数量和所述UCN值分别小于所述比较迭代值和所述比较UCN值时,输出所述第一速度代码和所述第二速度代码,以使所述迭代解码操作的速度变得高于所述迭代解码操作的先前速度。
9. 根据权利要求8所述的错误校正解码器,其中:
使所述迭代解码操作的速度变得高于所述先前速度的所述第一速度代码包括用于减小所述时钟的周期的代码,并且
使所述迭代解码操作的速度变得高于所述先前速度的所述第二速度代码包括用于减少所述每个循环将处理的位数量的代码。
10. 一种错误校正电路,包括:
错误校正编码器,通过对从主机接收的消息进行编码来生成码字,并且将所述码字传输到存储器装置;以及
错误校正解码器,从所述存储器装置接收所述码字,并且对所述码字执行解码操作,从所述解码操作获得表示对所述码字执行迭代解码操作的迭代数量和未满足校验节点UCN值,并且基于所述迭代数量和所述UCN值控制对后续码字的所述解码操作的速度,所述迭代数量表示已经执行所述迭代解码操作的次数,所述UCN值表示校正子中的未满足校验节点的数量。
11.根据权利要求10所述的错误校正电路,其中由所述错误校正解码器执行的所述解码操作包括所述迭代解码操作和校正子校验操作。
12. 根据权利要求11所述的错误校正电路,其中所述错误校正解码器包括:
迭代计算器,执行所述迭代解码操作;以及
校正子校验器,执行所述校正子校验操作。
13.根据权利要求12所述的错误校正电路,
其中所述迭代计算器包括:
计算器,通过执行所述迭代解码操作来输出错误校正消息;以及
速度选择器,输出用于控制所述迭代解码操作的速度的速度代码,并且
其中所述校正子校验器包括:
校正子生成器,根据所述错误校正消息生成校正子,并且在所述校正子中的符号之中不存在未满足校验节点UCN时输出最终消息,并且在所述符号之中存在至少一个UCN时输出失败信号,以及
寄存器,存储并输出所述UCN值和所述迭代数量。
14.根据权利要求13所述的错误校正电路,其中所述计算器包括:
矩阵计算器,使用第一码字和奇偶校验矩阵来执行所述迭代解码操作,并且作为所述迭代解码操作的结果,输出所述错误校正消息;
时钟控制器,响应于所述速度代码中包括的第一速度代码来控制时钟,以该时钟将执行所述迭代解码操作;以及
位控制器,响应于所述速度代码中包括的第二速度代码来控制所述迭代解码操作的每个循环将处理的位数量。
15.根据权利要求14所述的错误校正电路,其中所述速度选择器包括:
确定器,将所述迭代数量与比较迭代值进行比较,并且将所述UCN值与比较UCN值进行比较;
时钟管理器,在所述确定器的控制下输出所述第一速度代码,用于改变所述时钟的周期;以及
位管理器,在所述确定器的控制下输出所述第二速度代码,用于改变所述迭代解码操作的每个循环将处理的位数量,
其中,所述比较迭代值表示先前迭代值或参考迭代值,并且所述比较UCN值表示先前UCN值或参考UCN值。
16. 根据权利要求14所述的错误校正电路,其中所述校正子生成器包括:
校正子解码器,通过计算所述错误校正消息和所述奇偶校验矩阵来生成所述校正子,当在所述校正子中未检测到所述UCN时输出所述最终消息,当在所述校正子中检测到所述UCN时输出所述失败信号;以及
计数器,当所述迭代解码操作期间输出所述失败信号时,对所述UCN进行计数以生成所述UCN值,并且对所述迭代数量进行计数,并且输出所述UCN值和所述迭代数量。
17. 根据权利要求13所述的错误校正电路,其中所述寄存器:
顺序地存储和输出所述UCN值和所述迭代数量,以及
在输出所述最终消息时重置所述UCN值和所述迭代数量。
18. 根据权利要求10所述的错误校正电路,其中所述错误校正解码器:
当作为对先前码字的所述解码操作的结果,错误位的数量大于先前值或参考值时,控制对所述后续码字的所述解码操作的速度,使得对所述后续码字的所述解码操作的速度变得低于对所述先前码字的所述解码操作的先前速度或参考速度,以及
当作为对所述先前码字的所述解码操作的结果,所述错误位的数量小于所述先前值或所述参考值时,控制对所述后续码字的所述解码操作的速度,使得对所述后续码字的所述解码操作的速度变得高于所述先前速度或所述参考速度。
19.一种操作错误校正解码器的方法,包括:
通过使用第一码字和奇偶校验矩阵执行迭代解码操作来输出错误校正消息;
通过计算所述错误校正消息和所述奇偶校验矩阵来生成校正子;
检查所述校正子中是否存在未满足校验节点UCN;
当所述校正子中存在UCN时,对所述UCN的数量进行计数,以生成UCN值,并且对与已经执行所述迭代解码操作的次数相对应的迭代数量进行计数;
根据所计数的UCN值以及所计数的迭代数量来改变所述迭代解码操作的速度;
当所述校正子中不存在UCN时,将用于生成所述校正子的转置矩阵的值作为消息输出;并且
使用第二码字和所述奇偶校验矩阵以改变后的速度执行所述迭代解码操作。
CN202110194285.7A 2020-05-12 2021-02-20 错误校正解码器、具有其的错误校正电路及操作其的方法 Active CN113658618B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200056657A KR20210138390A (ko) 2020-05-12 2020-05-12 에러 정정 디코더, 이를 포함하는 에러 정정 회로 및 에러 정정 디코더의 동작 방법
KR10-2020-0056657 2020-05-12

Publications (2)

Publication Number Publication Date
CN113658618A CN113658618A (zh) 2021-11-16
CN113658618B true CN113658618B (zh) 2023-03-17

Family

ID=78476958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110194285.7A Active CN113658618B (zh) 2020-05-12 2021-02-20 错误校正解码器、具有其的错误校正电路及操作其的方法

Country Status (3)

Country Link
US (1) US11515898B2 (zh)
KR (1) KR20210138390A (zh)
CN (1) CN113658618B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11949429B2 (en) * 2022-07-19 2024-04-02 Macronix International Co., Ltd. Memory device, error correction device and error correction method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107135006A (zh) * 2016-02-26 2017-09-05 爱思开海力士有限公司 错误校正电路和错误校正方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347195B1 (en) * 2009-01-22 2013-01-01 Marvell International Ltd. Systems and methods for near-codeword detection and correction on the fly
US8429498B1 (en) 2009-03-25 2013-04-23 Apple Inc. Dual ECC decoder
KR101678917B1 (ko) 2010-09-16 2016-11-24 삼성전자주식회사 디코더, 이의 동작방법, 및 이를 포함하는 장치들
US9454414B2 (en) * 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
TWI550628B (zh) 2014-07-16 2016-09-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US9768807B2 (en) * 2015-08-31 2017-09-19 Sandisk Technologies Llc On-the-fly syndrome and syndrome weight computation architecture for LDPC decoding
US9811418B2 (en) * 2015-10-26 2017-11-07 Sandisk Technologies Llc Syndrome-based codeword decoding
TWI612527B (zh) 2016-04-08 2018-01-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10447301B2 (en) * 2017-09-13 2019-10-15 Toshiba Memory Corporation Optimal LDPC bit flip decision
KR102475279B1 (ko) * 2017-12-18 2022-12-07 삼성전자주식회사 컨볼루션 타입의 저밀도 패리티 체크 코드를 이용하여 인코딩 및 디코딩을 수행하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107135006A (zh) * 2016-02-26 2017-09-05 爱思开海力士有限公司 错误校正电路和错误校正方法

Also Published As

Publication number Publication date
KR20210138390A (ko) 2021-11-19
US11515898B2 (en) 2022-11-29
CN113658618A (zh) 2021-11-16
US20210359710A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
US10103749B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
US11050438B2 (en) Memory controller
US11309916B2 (en) Error correction circuit and memory controller having the same
US11031952B2 (en) Error correction decoder and memory system having the same
US11115064B2 (en) Error correction decoder and memory system having the same
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
CN111756385A (zh) 错误校正解码器
CN113658618B (zh) 错误校正解码器、具有其的错误校正电路及操作其的方法
CN110277999B (zh) Ldpc解码装置、包括其的存储器系统及其方法
KR102605633B1 (ko) 컨트롤러 및 그것의 동작 방법
CN112687323A (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
US20230396269A1 (en) Scaled bit flip thresholds across columns for irregular low density parity check decoding
CN110830046B (zh) 纠错电路及其操作方法
CN112216328A (zh) 具有低复杂度解码的存储器系统及其操作方法
TWI829252B (zh) 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置
TWI804359B (zh) 低密度奇偶校檢碼的解碼方法及裝置
KR102668208B1 (ko) Ldpc 디코더, ldpc 디코더의 동작 방법 및 반도체 메모리 시스템
US11973515B2 (en) Hybrid precision MS decoder to reduce gate-count for long codes
US11387845B2 (en) LDPC decoder, operating method of LDPC decoder, and semiconductor memory system
US20240088915A1 (en) Bit-flipping decoder and decoding method for irregular codes
CN117335814A (zh) 低密度奇偶校检码的译码方法和装置
CN117472643A (zh) 低密度奇偶校检码的译码方法、存储介质和装置
CN115016980A (zh) 存储器控制器及操作存储器控制器的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant