CN111049530A - 纠错电路及其操作方法 - Google Patents

纠错电路及其操作方法 Download PDF

Info

Publication number
CN111049530A
CN111049530A CN201910695341.8A CN201910695341A CN111049530A CN 111049530 A CN111049530 A CN 111049530A CN 201910695341 A CN201910695341 A CN 201910695341A CN 111049530 A CN111049530 A CN 111049530A
Authority
CN
China
Prior art keywords
ucns
iterations
error correction
trapping
syndrome
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.)
Withdrawn
Application number
CN201910695341.8A
Other languages
English (en)
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 CN111049530A publication Critical patent/CN111049530A/zh
Withdrawn legal-status Critical Current

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/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/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
    • 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
    • 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
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/1142Decoding using trapping sets
    • 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/1148Structural properties of the code parity-check or generator matrix
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with 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/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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization

Landscapes

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

Abstract

本文所提供的可以是用于检测陷阱集的纠错电路和操作纠错电路的方法。纠错电路可以包括:校正子校验历史管理器,被配置为维持与迭代解码方案的一个或多个迭代相对应的校正子校验的历史;以及陷阱集检测器,被配置为将陷阱集确定策略与校正子校验的历史进行比较,以在纠错解码被执行时确定校正子校验的历史是否满足陷阱集确定策略的标准,并且当校正子校验的历史满足陷阱集确定策略时确定存在陷阱集,其中陷阱集确定策略与校正子向量的变化、UCN的数目以及UCN的数目的变化中的至少一个相关。

Description

纠错电路及其操作方法
相关申请的交叉引用
本专利文件要求2018年10月12日提交的韩国专利申请号10-2018-0122071的优先权,其全部内容出于所有目的通过引用并入本文。
技术领域
本专利文件中公开的技术和实现一般地涉及纠错电路和操作纠错电路的方法。
背景技术
存储器系统可以包括存储介质,其临时或持久地在其中的存储器装置上存储数据。为了控制作为相邻存储器单元之间的干扰或在写入、读取、传输或处理期间发生的任何数据损坏的结果而可能已经发生的数据中的错误,存储器系统可以使用诸如纠错编码和解码之类的纠错技术来确保数据可靠性。可以以硬件和/或软件的形式实现纠错技术。例如,用于纠错的电路可以使用纠错码在存储器系统中执行编码和解码。
低密度奇偶校验(LDPC)码具有超过其他传统纠错码技术的性能,并且已被广泛使用在通信和其他系统中。利用其迭代解码方案,LDPC编码可以随着码长度的增加而改善纠错性能(例如,每比特的纠错能力),而不会增加每比特的计算复杂度。
发明内容
可以在各种实施例中实现本专利文件中公开的技术,以提供在执行纠错解码时检测陷阱集的纠错电路以及操作纠错电路的方法。
所公开的技术的实施例可以提供用于基于迭代解码方案来执行纠错解码的纠错电路。该纠错电路可以包括:校正子校验历史管理器,被配置为维持与迭代解码方案的一个或多个迭代相对应的校正子校验的历史;以及陷阱集检测器,被配置为将陷阱集确定策略与校正子校验的历史进行比较,以在纠错解码被执行时确定校正子校验的历史是否满足陷阱集确定策略的标准,并且当校正子校验的历史满足陷阱集确定策略时确定存在陷阱集,其中陷阱集确定策略可以与校正子向量的变化、未满足的校验节点(UCN)的数目以及UCN的数目的变化中的至少一个相关。
所公开的技术的实施例可以提供操作纠错电路的方法,该纠错电路基于迭代解码方案执行纠错解码。该方法可以包括维持与迭代解码方案的一个或多个迭代相对应的校正子校验的历史,在纠错解码被执行时将陷阱集确定策略与校正子校验的历史进行比较,以校验校正子校验的历史是否满足陷阱集确定策略,并且当在最大迭代次数内校正子校验的历史满足陷阱集确定策略时,停止纠错解码,其中陷阱集确定策略可以与校正子向量的变化、未满足的校验节点(UCN)的数目以及UCN的数目的变化中的至少一个相关。
附图说明
图1是示出基于所公开的技术的实施例的纠错电路的图。
图2是示出奇偶校验矩阵的示例图。
图3是示出图2的奇偶校验矩阵作为Tanner图的图。
图4是用于解释使用图2的奇偶校验矩阵所计算出的校正子向量的示例图。
图5是用于解释在软判定解码中使用g个读取值生成初始值的过程的示例图。
图6是示出查找表的示例图。
图7是示出操作图1的纠错电路的方法的流程图。
图8是示出基于所公开的技术的实施例的陷阱集检测过程的流程图。
图9是示出基于所公开的技术的实施例的陷阱集确定策略的图。
图10是示出满足图9中所示的第一条件的情况的示例图。
图11是示出满足图9中所示的第二条件的情况的示例图。
图12是示出满足图9中所示的第三条件的情况的示例图。
图13是示出满足图9中所示的第四条件或第五条件的情况的示例图。
图14是示出满足图9中所示的第六条件或第七条件的情况的示例图。
图15是示出满足图9中所示的第八条件的情况的示例图。
图16是示出基于所公开的技术的实施例的存储器系统的图。
图17是示出基于所公开的技术的实施例的存储器装置的图。
图18是示出存储器块的图。
图19和图20是示出包括图16的存储器控制器的存储器系统的实施例的图。
具体实施方式
将参考稍后详细描述的实施例以及附图来澄清所公开的技术的优点和特征以及用于实现该技术的方法。所公开的技术不限于以下实施例,而是可以以其他形式体现。相反,提供这些实施例是为了使所公开的技术彻底和完整,并且将本公开的技术精神完全传达给本领域技术人员。
在下文中,将参考附图描述所公开的技术的一些实施例。
图1是示出基于所公开的技术的实施例的纠错电路的图。
参见图1,基于所公开的技术的实施例的纠错电路10可以包括纠错解码器100和后处理器200。
纠错解码器100可以使用采用迭代解码方案的各种算法来执行纠错解码。例如,纠错解码器100可以使用诸如“置信传播算法(BPA)”之类的消息传递算法(MPA)来执行纠错解码。如果消息在Tanner图中的节点之间被传递,则可以将一些纠错解码算法视为消息传递算法的示例。置信传播算法是用于对图形模型执行推理的消息传递算法。
纠错解码器100可以基于迭代解码方案在最大次数的迭代(即,最大迭代次数)内执行纠错解码。当在最大迭代次数内生成满足针对纠错码(ECC)的奇偶校验矩阵的约束的有效码字时,纠错解码器100可以将所生成的有效码字输出为解码的码字。当在达到最大迭代次数之后没有生成满足针对纠错码的奇偶校验矩阵的约束的有效码字时,纠错解码器100可以通过输出指示纠错解码已失败的“失败”信号来声明解码失败。纠错解码器100可以使用低密度奇偶校验(LDPC)码作为纠错码(ECC)。在所公开的技术的一些实现中,奇偶校验矩阵的约束可以包括必须被满足以声明解码成功的某个等式。
纠错解码器100可以包括映射器110、节点处理器120、校正子校验器130和解码控制器140。在一个实施例中,映射器110、校正子校验器130和解码控制器140中的至少一个可以存在于纠错解码器100的外部。
映射器110可以接收来自信道的读取值。读取值是从存储器装置读取的值。例如,在存储器位置或单元上实施的单个读取操作可以在二进制存储方案中产生零或一的二进制值。例如,映射器110可以从存储器装置接收与单个码字相对应的读取值。每个读取值可以是“0”或“1”。当使用硬判定解码时,单组读取值可以对应于单个码字。单组读取值可以被称为单个读取向量。当使用软判定解码时,多组读取值可以对应于单个码字。也就是说,当使用软判定解码时,多个读取向量可以对应于单个码字。
在一些实现中,信道可以包括通过其传达读取值的有线或无线介质或在其中存储信息的存储介质。在所公开的技术的一些实现中,信道可以包括在纠错电路10和存储器装置之间承载数据的接口,或者可以包括存储器装置本身。
映射器110可以使用读取值来生成量化的读取值。例如,映射器110可以使用g个读取向量来生成(g+1)级量化读取向量。包括在(g+1)级量化读取向量中的每个读取值可以是(g+1)级量化读取值。(g+1)级量化读取值可以是由g位组成的读取模式(例如,位序列)。例如,2级量化读取值可以是“1”或“0”。例如,2级量化读取值中的一个可以是“1”,并且2级量化读取值中的另一个可以是“0”。作为另一个示例,3级量化读取值可以是“11”、“10”、“01”或“00”。例如,3级量化读取值之一可以是“11”,3级量化读取值中的另一个可以是“00”,并且3级量化读取值的剩余的可以是“10”或“01”。
当使用软判定解码时(即,当g等于或大于2时),映射器110可以通过组合对应于g个读取电压的读取向量来生成(g+1)级量化读取向量。例如,当使用两个读取电压(例如,第一读取电压和第二读取电压)时,映射器110可以通过组合对应于第一读取电压的读取向量与对应于第二读取电压的读取向量来生成3级量化读取向量。对于该操作,映射器110可以包括第一缓冲器112。当使用g个读取电压时,第一缓冲器112可以接收和存储分别对应于g个读取电压的读取向量。因此,映射器110可以通过根据g个读取电压组合存储在第一缓冲器112中的读取向量来生成(g+1)级量化读取向量。
当使用硬判定解码时(即,当g为1时),映射器110可以确定单个接收读取向量本身是2级量化读取向量。
映射器110可以将(g+1)级量化读取向量(被量化为g+1级的读取向量)转换为用于符合迭代解码方案的纠错解码的初始向量,并且可以将初始向量提供到节点处理器120。初始向量可以包括多个初始值。也就是说,映射器110可以将(g+1)级量化读取值中的每一个转换为初始值。初始值例如可以是对数似然比(LLR)值。
节点处理器120可以基于在最大迭代次数内从映射器110接收的初始向量来执行纠错解码。节点处理器120可以使用采用迭代解码方案的各种算法来执行纠错解码。例如,节点处理器120可以使用消息传递算法(MPA)来执行纠错解码。作为示例而非限制,作为消息传递算法,可以使用和积算法、最小(min)和算法、或其他算法。在MPA的示例实现中,概率向量的形式的消息在图中的节点之间传递,其中算法的迭代可以被视为传递通过该图的消息。
MPA可以通过在变量节点和校验节点之间交换消息的迭代来生成收敛到读取值的正确估计的输出。消息可以包括从变量节点发送到校验节点的变量到校验(V2C)消息和从校验节点发送到变量节点的校验到变量(C2V)消息。包括从变量节点向校验节点传输V2C消息的过程、从校验节点向变量节点传输C2V消息的过程以及通过相应过程更新相应节点的值的过程在内的过程组合可以被称为一次迭代。
节点处理器120可以包括变量节点更新模块122和校验节点更新模块124。
变量节点更新模块122可以使用在执行第一次迭代之前从映射器110接收的初始向量(例如,LLR值)来初始化变量节点。也就是说,变量节点更新模块122可以将包括在初始向量中的初始值一个接一个地分配给相应的变量节点。变量节点更新模块122可以生成V2C消息并且在第一次迭代中将V2C消息发送到校验节点更新模块124,使得相应的变量节点的初始值被传送到与对应变量节点耦合的校验节点。变量节点更新模块122可以响应于在相应的迭代中从校验节点更新模块124接收的C2V消息来更新变量节点的值。变量节点更新模块122可以基于从校验节点更新模块124接收的C2V消息生成V2C消息,并且在除了第一次迭代之外的相应的迭代中将生成的V2C消息发送到校验节点更新模块124。
校验节点更新模块124可以响应于在相应的迭代中从变量节点更新模块122接收的V2C消息来更新校验节点的值。校验节点更新模块124可以基于从变量节点更新模块122接收的V2C消息生成C2V消息,并且在相应的迭代中将生成的C2V消息发送到变量节点更新模块122。
可以将初始值和消息称为软信息。软信息可以包括由整数或实数表达的值。在示例实现中,软信息可以是对数似然比(LLR)值。软信息可以包括概率的估计或表示属于码字的每个符号的估计是“0”或“1”的一些等效信息以及每个估计的置信值(概率或似然)。例如,软信息可以包括符号位和幅度位。符号位可以表示对应的符号的估计。例如,表示负值的符号位可以指示对应的符号更可能是“1”,并且表示正值的符号位使得对应的符号不太可能是“1”。相反,表示正值的符号位可以指示对应的符号更可能是“0”,并且表示负值的符号位使得对应的符号不太可能是“0”。幅度位可以表示关于符号位的置信值(概率或似然)。例如,当幅度位的值增加时,关于该符号位的置信值(概率或似然)可以增加。
节点处理器120可以在最大迭代次数I内重复迭代,并且可以将作为执行第i次迭代的结果而出现的变量节点的值(下文中称为“变量节点向量Ci”)提供给校正子校验器130。这里,I是自然数,并且i是小于或等于I的自然数。变量节点向量可以是行向量或列向量。下面,在所公开的技术的实施例的描述中,假设变量节点向量是行向量。
当在最大迭代次数I内生成满足纠错码的奇偶校验矩阵的约束的码字时,该码字可以说是有效码字,则校正子校验器130可以输出所生成的有效码字作为解码的码字。例如,校正子校验器130可以将在第i次迭代时从节点处理器120接收的变量节点向量Ci存储在第二缓冲器132中,并且可以对接收的变量节点向量Ci执行校正子校验。例如,可以通过校验由以下等式(1)计算的校正子向量Si的所有符号是否为“0”来执行校正子校验。可以将校正子向量Si表达为:
Figure BDA0002149185560000071
这里,Si标示对应于第i次迭代的校正子向量,H标示纠错码的奇偶校验矩阵,并且Ci T标示对应于第i次迭代的变量节点向量Ci的转置矩阵。
在校正子向量Si的所有符号都是“0”的情况下,可以确定校正子向量已通过校正子校验。这意味着已经在第i次迭代中成功地执行了纠错解码,因此校正子校验器130可以输出存储在第二缓冲器132中的变量节点向量Ci作为解码的码字。
在校正子向量Si的符号之中存在至少一个非零符号的情况下,可以确定校正子校验已经失败。这意味着纠错解码在第i次迭代中失败,因此当迭代次数落入最大迭代次数I内时,节点处理器120可以执行第(i+1)次迭代。这里,在校正子向量Si的符号之中与“0”以外的符号相对应的校验节点可以被称为“未满足的校验节点(UCN)”。当对应于第i次迭代的校正子校验失败时,校正子校验器130可以向解码控制器140通知校正子校验中的失败。这里,校正子校验器130可以将与第i次迭代相对应的校正子向量和关于UCN的数目的信息中的至少一个提供给解码控制器140。
在特定情形下,可能发生阻止纠错解码器100收敛到有效码字的陷阱集。通常,已知当存在陷阱集时,即使执行更多数目的附加迭代,也不可能通过纠错解码器100进行纠错。也就是说,当纠错解码器100收敛到陷阱集时,即使迭代次数落入最大迭代次数内,执行附加的迭代而没有进一步处理也可能导致资源的浪费。
当在最大迭代次数内校验陷阱集的存在时,解码控制器140可以控制节点处理器120,使得不执行附加的迭代,即,使得停止当前读取值的迭代解码。
解码控制器140可以包括校正子校验历史管理器142、陷阱集检测器144、陷阱集确定策略存储部146和计数缓冲器148。
校正子校验历史管理器142可以维持校正子校验的先前历史并且跟踪对校正子向量的改变。校正子校验的先前历史可以包括关于UCN的数目的信息和校正子向量中的至少一个。
在一个实施例中,校正子校验历史管理器142可以从校正子校验器130接收与每次迭代相对应的关于UCN的数目的信息。在这种情况下,校正子校验器130可以计算与每次迭代相对应的校正子向量中包括的UCN的数目,并且可以向校正子校验历史管理器142提供关于UCN的数目的信息。
在一个实施例中,校正子校验历史管理器142可以从校正子校验器130接收对应于每次迭代的校正子向量。在一个实施例中,校正子校验历史管理器142可以根据从校正子校验器130接收的校正子向量导出关于UCN的数目的信息,而不是从校正子校验器130接收与每次迭代相对应的UCN的数目的信息。
校正子校验历史管理器142可以存储与设定数目的迭代相对应的校正子向量和关于UCN的数目的信息中的至少一个。校正子校验的先前历史可以包括先前校正子校验操作的结果。在一些实现中,维持多次迭代中的每次迭代的校正子校验的历史。可以维持校正子校验的先前历史,使得每组记录对应于与设定数目的迭代相对应的一系列最近迭代。例如,校正子校验的先前历史可以包括与最近几次迭代(例如,最近五次迭代)相对应的关于UCN的数目的信息和校正子向量中的至少一个。
陷阱集检测器144可以基于由校正子校验历史管理器142维持的校正子校验的先前历史和存储在陷阱集确定策略存储部146中的陷阱集确定策略来校验是否存在陷阱集。即,陷阱集检测器144可以通过将陷阱集确定策略应用于校正子校验的先前历史来检测陷阱集。在一个实施例中,陷阱集检测器144可以将陷阱集确定策略应用于与多次迭代之中的设定数目的最近迭代中的每一个相对应的校正子校验的先前历史。
如上所述,已知当存在陷阱集时,即使在没有进一步单独处理的情况下执行附加迭代,也不可能进行纠错。因此,陷阱集检测器144可以校验陷阱集的存在,并且可以控制节点处理器120,使得当检测到陷阱集时停止迭代解码。可以说当在迭代解码过程中满足某些标准时存在陷阱集。例如,当即使在预定数目的解码迭代之后消息不改变时,或者当尽管消息正在改变但校正子向量收敛到错误方向时,可以说存在陷阱集。
当在关于当前读取值的当前解码迭代中满足陷阱集确定策略的一个或多个标准时,陷阱集检测器144可以确定存在陷阱集。
陷阱集确定策略可以包括需要满足以确定存在至少一个陷阱集的各种条件。例如,陷阱集确定策略可以包括与校正子校验的先前历史中包括的信息本身有关的条件或者可以从校正子校验的先前历史中估计的各种类型的信息。例如,陷阱集确定策略可以包括与以下情形中的至少一个相关的条件:校正子向量中的变化;UCN的数目;以及UCN的数目中的变化。陷阱集确定策略可以包括第一策略和第二策略中的至少一个。
第一策略可以包括至少一个条件。例如,第一策略可以包括与以下中的至少一个相关的条件:与设定数目的迭代中的每一个相对应的校正子向量中的变化的存在或不存在;在设定数目的迭代中的每一个中,UCN的数目与阈值之间的关系;在设定数目的迭代中的每一个中,UCN的数目中的变化的存在或不存在;以及设定数目的迭代中的每一个中的UCN的数目从先前迭代中的UCN的数目的变化。
与UCN的数目和阈值之间的关系相关的条件可以包括以下中的至少一个:例如在设定数目的迭代中的每一个中,UCN的数目是否小于阈值;以及在设定数目的迭代中的每一个中,UCN的数目是否等于阈值。
UCN的数目从先前迭代中的UCN的数目的变化相关的条件可以包括以下中的至少一个:例如UCN的数目是否在设定数目的迭代中单调减少;当前迭代中的UCN的数目是否已经从紧接前次迭代中的UCN的数目增加;以及当前迭代中的UCN的数目是否等于紧接前次迭代中的UCN的数目。
第二策略可以包括至少一个条件。例如,第二策略可以包括与以下信息中的至少一个相关的条件:关于当前迭代中的UCN的数目是否大于紧接前次迭代中的UCN的数目的信息;以及关于当前迭代中的UCN的数目是否等于紧接前次迭代中的UCN的数目的信息。
在一个实施例中,陷阱集检测器144可以在有或没有其他的情况下应用第一策略。在一个实施例中,当校正子校验的先前历史指示当前读取值从未满足第一策略中包括的任何条件时,陷阱集检测器144可以应用第一策略,而当校正子校验的先前历史指示当前读取值满足第一策略中包括的任何条件至少一次时,陷阱集检测器144可以应用第二策略。也就是说,第一策略可以在陷阱集检测器144检测到陷阱集之前应用于迭代,并且一旦陷阱集检测器144检测到陷阱集,则可以将第二策略应用于在陷阱集的检测之后开始的迭代。
在一个实施例中,当满足第一策略中包括的任何条件的场合总数达到预定数目时,陷阱集检测器144可以确定存在陷阱集。在一个实施例中,当第一策略中包括的任何一个条件被满足至少一次时,陷阱集检测器144可以确定存在陷阱集。在另一个实施例中,当第一策略中包括的一个或多个条件被满足多于一次时,陷阱集检测器144可以确定存在陷阱集。
当在预定数目的迭代处满足在第一策略中包括的任何条件并且确定存在陷阱集时,陷阱集检测器144可以通知后处理器200已经发生了陷阱集。因此,后处理器200可以执行预定义操作以消除陷阱集。例如,后处理器200可以支持纠错解码器100,使得用于纠错解码的各种类型的参数(例如,初始向量)被校正,并且使用校正的参数执行纠错解码。当没有提供后处理器200时,陷阱集检测器144可以在陷阱集出现时终止纠错解码。
在一个实施例中,当对于预定数目的连续迭代,满足第二策略中包括的任何条件时,陷阱集检测器144可以确定存在陷阱集。换句话说,当校正子校验的先前历史指示在预定数目的连续迭代处出现满足第二策略的场合时,陷阱集检测器144可以确定存在陷阱集。也就是说,与上述实施例不同,当对于预定数目的连续迭代,满足第一策略中包括的任何条件时,很可能存在陷阱集,并且因此可以应用第二策略以确认陷阱集的存在。
例如,当满足第一策略中包括的任何条件时,陷阱集检测器144可以将存储在计数缓冲器148中的计数值增加一(1)。当计数值为1时,陷阱集检测器144可以从下次迭代应用第二策略。此后,每当满足第二策略中包括的任何条件时,陷阱集检测器144可以将计数值增加1。在一个实施例中,当计数值超过预设阈值时,陷阱集检测器144可以终止纠错解码。其原因在于,纠错解码的附加迭代将不太可能成功。
每当计数值被更新时或者当计数值达到预设值时,陷阱集检测器144可以将计数值传送到后处理器200。后处理器200可以执行预定义的操作以消除陷阱集。例如,后处理器200可以支持纠错解码器100,使得用于纠错解码的各种类型的参数(例如,初始向量)被校正或更新,并且使用校正或更新的参数来执行纠错解码。当没有提供后处理器200时,陷阱集检测器144可以在计数值变为“1”时终止纠错解码。
每当针对新的读取值发起纠错解码时,陷阱集检测器144可以初始化计数值,或者当对于预定数目的连续迭代,不满足陷阱集确定策略中包括的任何条件时,可以初始化计数值。例如,当对于预定数目的连续迭代,不满足第二策略中包括的任何条件时,陷阱集检测器144可以初始化计数值。在这种情况下,可以将第一策略应用于下次迭代。换句话说,当校正子校验的先前历史指示对于预定数目的连续迭代,满足第二策略的场合没有出现时,陷阱集检测器144可以将第一策略应用于下次迭代。
陷阱集确定策略存储部146可以存储陷阱集确定策略,并且可以将陷阱集确定策略提供给陷阱集检测器144。
后处理器200可以支持纠错解码器100,使得纠错解码器100可以在存在陷阱集的情形下生成有效码字。例如,后处理器200可以支持纠错解码器100,使得用于纠错解码的各种类型的参数被校正或更新,并且使用校正或更新的参数执行纠错解码。也就是说,后处理器200可以防止纠错解码器100收敛到与先前迭代中的陷阱集相同的陷阱集。
图2是示出奇偶校验矩阵的示例图。
在图2中,示出了定义(n,k)码的奇偶校验矩阵H的示例。(n,k)码可以被定义为具有(n-k)×n大小的奇偶校验矩阵。奇偶校验矩阵的每个条目可以由“0”或“1”表示,并且当在奇偶校验矩阵中包括的1的数目远小于0的数目时,(n,k)码可以被称为“(n,k)LDPC码”。这里,n和k可以是自然数。在图2中,作为示例,示出了定义(7,4)码的奇偶校验矩阵。
在其中将每个条目实现为子矩阵的矩阵可以被称为“基矩阵”。基矩阵的每个条目可以是具有m×m大小的子矩阵。这里,m可以是2或更大的整数。例如,基矩阵中的零(0)可以指示对应的条目是零矩阵,并且基矩阵中的非零(例如,1)可以指示对应的条目不是零矩阵。例如,当基矩阵用于准循环(QC)-LDPC码时,“1”可以指示对应的条目是循环矩阵。循环矩阵可以是通过将单位矩阵循环移位预定移位值而获得的矩阵,并且任何一个循环矩阵可以具有与另一循环矩阵的移位值不同的移位值。
图3是示出图2的奇偶校验矩阵作为Tanner图的图。
(n,k)码可以由Tanner图来表示,该Tanner图是等效二分图的表示并且包括两种类型的节点。Tanner图可以由n-k个校验节点、n个变量节点和边来表示。校验节点对应于奇偶校验矩阵的行,并且变量节点对应于奇偶校验矩阵的列。每个边将一个校验节点耦合到一个变量节点,并且指示在奇偶校验矩阵中由1表示的条目。
图2中所示的(7,4)码的奇偶校验矩阵可以由包括三个校验节点CN1至CN3和七个变量节点VN1至VN7的Tanner图表示。用于将校验节点CN1至CN3耦合到变量节点VN1至VN7的实线表示边。
可以基于在如图3中所示的Tanner图上的校验节点CN1至CN3与变量节点VN1至VN7之间的迭代消息传递算法来执行迭代解码。即,在每次迭代中,可以在校验节点CN1至CN3与变量节点VN1至VN7之间传送消息的同时执行迭代解码。
变量节点可以使用从与其耦合的校验节点接收的C2V消息来执行纠错。变量节点可以生成要发送到与其耦合的校验节点的V2C消息,并且可以将生成的V2C消息分别发送到对应的校验节点。
校验节点可以使用从与其耦合的变量节点接收的V2C消息来执行奇偶校验。在奇偶校验中,可以使用包括在V2C消息中的符号位。校验节点可以生成要发送到与其耦合的变量节点的C2V消息,并且可以将生成的C2V消息分别发送到对应的变量节点。
图4是用于解释使用图2中所示的奇偶校验矩阵所计算出的校正子向量的示例图。
如上所述,可以基于奇偶校验矩阵H和与第i次迭代相对应的变量节点向量Ci的转置矩阵Ci T来生成校正子向量Si。校正子向量Si的符号Si1、Si2和Si3对应于图3中所示的Tanner图上的相应校验节点CN1至CN3
校正子向量Si的所有符号Si1、Si2和Si3都指示零(0)的情况意味着校正子向量Si已通过校正子校验。这意味着在相应的迭代中已成功执行纠错解码。因此,可以终止针对对应读取值的迭代解码,并且可以输出与第i次迭代相对应的变量节点向量Ci作为解码的码字。
校正子向量Si的符号Si1、Si2和Si3中的至少一个不是“0”的情况意味着校正子校验失败。这意味着在相应的迭代中纠错解码没有成功。因此,当迭代次数未达到最大迭代次数时,可以执行下次迭代。这里,对应于非零符号的校验节点可以被称为未满足校验节点(UCN)。
图5是用于解释在软判定解码中使用g个读取值生成初始值的过程的示例图。
在图5中,示出了具有第一状态S1和第二状态S2中的任何一个的存储器单元的阈值电压(Vth)分布。
对于n位多级单元NAND闪存,可以将每个单元的阈值电压编程为2n个可能值。在理想的多级单元NAND闪存中,每个值对应于非重叠阈值电压窗口(图5中未被示出)。在图5中,纵轴指示具有在横轴上表示的特定阈值电压的存储器单元的数目。被编程为相同值的存储器单元使它们的阈值电压落入同一窗口中,但它们的确切阈值电压可能不同。随着编程/擦除周期增加,不同编程状态的相邻阈值电压分布之间的裕度减小,并且最终分布开始重叠。结果,具有落在相邻分布的重叠范围内的阈值电压的存储器单元可被读取为被编程为除原始目标值之外的值,并且因此导致读取错误。在大多数情况下,可以通过使用纠错码(ECC)来管理这种读取错误。
当使用量化级g+1时,可以将g个读取电压顺序地应用到多个存储器单元以获取对应于单个码字的g个读取向量。例如,如图5中所示,当使用量化级2时,可以应用一个读取电压Vr1,并且当使用量化级3时,可以顺序地应用两个读取电压Vr1和Vr2。类似地,当使用量化级8时,可以顺序地应用七个读取电压Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7。这意味着,当使用量化级g+1时,可以将g个读取电压应用到每个存储器单元,并且因此可以从每个存储器单元获取g个读取值。
当g个读取电压中的任何一个被应用到多个存储器单元时,来自具有低于所应用的读取电压的阈值电压的存储器单元的读取值可以表现为“1”,并且来自具有高于所应用的读取电压的阈值电压的存储器单元的读取值可以表现为“0”。例如,如图5中所示,当使用七个读取电压Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7时,可以从每个存储器单元获取七个读取值。
纠错电路可以通过组合分别对应于g个读取电压的读取值来生成(g+1)级量化读取值。例如,如图5中所示,当使用七个读取电压时,纠错电路可以通过组合分别对应于七个读取电压的读取值来生成8级量化读取值。
纠错电路可以将(g+1)级量化读取值转换或映射到初始值(例如,LLR值)。可以通过参考设定的查找表来执行到初始值的转换或映射。
图6是示出查找表的示例图。
参见图6,查找表可以定义分别对应于多个量化级的LLR值。如上所讨论,相邻阈值电压分布可以重叠,并且具有落在相邻分布的重叠范围内的阈值电压的存储器单元可以通过使用诸如迭代解码方案的ECC来校正。在一些实现中,通过计算落入相邻阈值电压分布的重叠范围的某些决策区域中的概率的对数似然来获得迭代解码方案的初始值。
参考查找表,纠错电路可以将被量化到量化级g+1中的(g+1)级量化读取值中的每一个转换为与量化级g+1相对应的g+1个LLR值中的任何一个。
在量化级的数目为2的实现中,纠错电路可以将2级量化读取值之一转换为LLR值LLR1,并且将2级量化读取值中的另一个转换为LLR值LLR2。例如,2级量化读取值的“1”可以被转换为LLR值“-4”,并且2级量化读取值的“0”可以被转换为LLR值“+4”。
图7是示出操作图1的纠错电路的方法的流程图。
在步骤701处,纠错电路可以接收读取值,诸如对应于码字的读取向量。
在步骤703处,纠错电路可以将初始值分配给变量节点。当接收到每一个对应于单个码字的g个读取向量时,纠错电路可以生成(g+1)级量化读取向量。存储器控制器可以将(g+1)级量化读取向量转换为初始向量。例如,初始向量可以包括初始值,其各自对应于多个变量节点中的每一个。每个初始值可以是LLR值。
在步骤705处,纠错电路可以基于迭代解码方案在最大迭代次数I内执行第i次迭代。在第i次迭代中,可以交换V2C消息和C2V消息,并且因此可以更新变量节点和校验节点。
在步骤707处,纠错电路可以执行与第i次迭代相对应的校正子校验。
当校正子校验已经通过时,纠错电路可以在步骤709处输出在第i次迭代中的变量节点向量作为解码的码字。当校正子校验已经失败时,过程可以进行到步骤711。
在步骤711处,纠错电路可以确定迭代次数是否已经达到最大迭代次数I。当在步骤711处确定迭代次数已经达到最大迭代次数I时,该过程可以进行到步骤713。如果迭代次数尚未达到最大迭代次数I,则该过程可以进行到步骤721。
在步骤713处,由于尽管是最大迭代次数I,纠错电路仍未能生成有效码字,其可以输出指示纠错解码已经失败的“失败”信号。
在步骤721处,纠错电路可以校验是否存在陷阱集。当在迭代解码过程中出现陷阱集时,纠错电路可以检测陷阱集。稍后将参考图8进行步骤721的详细描述。
当在步骤721处确定检测到陷阱集时,纠错电路可以在步骤723处停止迭代解码。在检测到陷阱集时,即使迭代的数目尚未达到最大迭代次数I,纠错电路也可以停止纠错解码。当检测到陷阱集时,由后处理器修改用于纠错解码的各种类型的参数,以返回到步骤703或步骤705,并且基于修改后的参数执行纠错解码。
相反,当在步骤721处确定未检测到陷阱集时,可以在已经执行步骤731之后在步骤705处执行下次迭代。
图8是示出基于所公开的技术的实施例的陷阱集检测过程的流程图。
该过程可以从步骤711进行到步骤721a。在步骤721a处,纠错电路可以管理或维持校正子校验的先前历史。例如,纠错电路可以管理关于UCN的数目的信息和校正子向量中的至少一个。在一个实施例中,可以根据与最近执行的设定迭代次数相对应的一系列迭代来维持校正子校验的先前历史中的每个记录。
在步骤721b处,纠错电路可以对校正子校验的先前历史应用陷阱集确定策略。也就是说,纠错电路可以确定校正子校验的先前历史是否满足陷阱集确定策略中包括的任何条件。在一个实施例中,陷阱集确定策略可以包括第一策略和第二策略中的至少一个。例如,当在当前读取值的迭代解码期间从未满足陷阱集确定策略中包括的任何条件时,可以应用第一策略,而当在当前读取值的迭代解码期间曾经满足陷阱集确定策略中包括的任何条件时,可以应用第二策略。
当在步骤721b处确定校正子校验的先前历史满足陷阱集确定策略中包括的任何条件时,该过程可以进行到步骤721c,否则该过程可以进行到图7的步骤731。
在步骤721c处,纠错电路可以将计数值增加1。如上所讨论,基于所公开的技术的一些实施例所实现的纠错电路可以被配置为跟踪陷阱集确定的历史。这是通过对已满足陷阱集确定策略多少次进行计数来完成的。例如,这可以通过使用二进制数字计数器来完成,并且可以将计数值存储在存储器电路中。
在步骤721d处,纠错电路可以校验计数值是否已达到阈值。当计数值已达到阈值时,过程可以进行到图7的步骤723。也就是说,当计数值已达到阈值时,可以停止迭代解码。
当计数值未达到阈值时,可以在已经执行图7的步骤731之后执行下次迭代。
在一个实施例中,可以省略步骤721c和步骤721d。在这种情况下,当校正子校验的先前历史指示第一策略中包括的任何条件已经满足至少一次时,可以执行图7的步骤723,并且因此可以停止迭代解码。
图9是示出基于所公开的技术的实施例的陷阱集确定策略的示例图。
如上所述,陷阱集确定策略可以包括用来检测陷阱集的某些标准或条件。例如,陷阱集确定策略可以包括与诸如校正子向量中的变化、UCN的数目和UCN的数目中的变化之类的指定项中的至少一个相关的标准或条件。
在图9中,作为示例示出了其中在第一策略中包括七个条件并且在第二策略中包括一个条件的示例。在各种其他实现中,可以在陷阱集确定策略中包括与校正子向量中的变化、UCN的数目和UCN的数目中的变化相关的条件的各种组合。
在一个实施例中,可以选择性地应用图9中所示的一些条件。例如,当应用图9中所示的条件之中的第一条件、第二条件、第四条件和第六条件时,可以不应用第三条件、第五条件和第七条件。相反,当应用图9中所示的条件之中的第三条件、第五条件和第七条件时,可以不应用第一条件、第二条件、第四条件和第六条件。下面将详细描述各个条件。
第一条件指示其中对于α1个连续迭代而言校正子向量没有变化的情况。基于第一条件确定的前提是,当满足第一条件时,纠错解码的附加迭代将不太可能成功。
第二条件指示这样的情况:其中对于α2个连续迭代而言UCN的数目小于预定数目β1、其中当前迭代中的UCN的数目大于紧接前次迭代中的UCN的数目、并且其中在α2个连续迭代期间校正子向量没有变化至少一次。基于第二条件确定的前提是,当满足第二条件时,纠错解码的附加迭代将不太可能成功。
第三条件指示其中对于α1个连续迭代而言UCN的数目小于或等于预定数目β1并且其中当前迭代中的UCN的数目等于或大于紧接前次迭代中的UCN的数目的情况。基于第三条件确定的前提是,当满足第三条件时,纠错解码的附加迭代将不太可能成功。
第四条件指示其中对于α2个连续迭代而言UCN的数目小于预定数目β1并且其中对于α2个连续迭代而言UCN的数目保持不变的情况。基于第四条件确定的前提是,当满足第四条件时,纠错解码的附加迭代将不太可能成功。
第五条件指示其中对于α2个连续迭代而言UCN的数目小于预定数目β2并且其中对于α2个连续迭代而言UCN的数目保持不变的情况。基于第五条件确定的前提是,当满足第五条件时,纠错解码的附加迭代将不太可能成功。
第六条件指示其中对于α3个连续迭代而言UCN的数目小于预定数目β1并且其中对于α3个连续迭代而言UCN的数目不是单调减少的情况。基于第六条件确定的前提是,当满足第六条件时,纠错解码的附加迭代将不太可能成功。
第七条件指示其中对于α3个连续迭代而言UCN的数目小于预定数目β2并且其中对于α3个连续迭代而言UCN的数目不是单调减少的情况。基于第七条件确定的前提是,当满足第七条件时,纠错解码的附加迭代将不太可能成功。
即使满足第一条件至第七条件,也可以更新迭代解码过程中的消息。在这种情况下,由于存在通过执行附加迭代成功完成纠错解码的可能性,可以考虑到这种可能性来实验地确定α1、α2、α3、β1和β2。在一个实施例中,可以将α2设置为大于α1但小于α3的值。在一个实施例中,可以将β1设置为小于β2的值。
第八条件指示其中当前迭代中的UCN的数目等于或大于紧接前次迭代中的UCN的数目的情况。基于第八条件确定的前提是,当在满足第一策略中包括的至少一个条件的状态中当前迭代中的UCN的数目等于或大于紧接前次迭代中的UCN的数目时,纠错解码的附加迭代将不太可能成功。
图10是用于解释满足图9中所示的第一条件的情况的示例图。
在图10中,将校正子向量描绘为表格的内容,该表格指示与从第i次迭代(其是当前正在执行的迭代)到第(i-4)次迭代(其是在前第四次迭代)范围的迭代相对应的校正子校验的先前历史。
假设在图9中所示的第一条件中α1是3,则第一条件指示校正子向量在三次连续迭代中不改变的情况。
图10中所示的校正子校验的先前历史表示在最近三次迭代(i、i-1、i-2)中未更新校正子向量{1 0 0 0 1}。
因此,假设α1是3,则图10中所示的校正子校验的先前历史满足图9中所示的第一条件。
图11是用于解释满足图9中所示的第二条件的情况的示例图。
在图11中,将校正子向量和关于UCN的数目的信息描绘为表格的内容,该表格指示与从第i次迭代(其是当前正在执行的迭代)到第(i-4)次迭代(其是在前第四次迭代)范围的迭代相对应的校正子校验的先前历史。
假设在图9中所示的第二条件中α2和β1都是4,则第二条件指示这样的情况:其中在四次连续迭代中UCN的数目小于4、其中校正子向量在四次连续迭代中没有改变至少一次、并且其中当前迭代中的UCN的数目大于紧接前次迭代中的UCN的数目。
图11中所示的校正子校验的先前历史表示在最近四次迭代(i、i-1、i-2、i-3)中的UCN的数目小于4。此外,校正子校验的先前历史表示第(i-2)次迭代中的校正子向量{1 0 00 1}与(i-1)次迭代中的校正子向量{1 0 0 0 1}相同。也就是说,这表明在第(i-1)次迭代中校正子向量没有变化。此外,校正子校验的先前历史表示当前迭代(i)中的UCN的数目(=3)大于紧接前次迭代(i-1)中的UCN的数目(=2)。
因此,假设α2和β1都是4,则在图11中图示的校正子校验的先前历史满足图9中所示的第二条件。
图12是示出满足图9中所示的第三条件的情况的示例图。
在图12中,将关于UCN的数目的信息描绘为与从第i次迭代(其是当前正在执行的迭代)到第(i-4)次迭代(其是在前第四次迭代)范围的迭代相对应的校正子校验的先前历史。
假设在图9中所示的第三条件中α1和β1都是4,则第三条件指示其中在四次连续迭代中的UCN的数目小于4并且其中当前迭代中的UCN的数目等于或大于紧接前次迭代中的UCN的数目的情况。
图12中所示的校正子校验的先前历史表示在最近四次迭代(i、i-1、i-2、i-3)中的UCN的数目小于4。此外,校正子校验的先前历史表示当前迭代(i)中的UCN的数目(=2)等于紧接前次迭代(i-1)中的UCN的数目(=2)。
因此,假设α1和β1都是4,则在图12中示出的校正子校验的先前历史满足图9中所示的第三条件。
图13是用于解释满足图9中所示的第四条件或第五条件的情况的示例图。
在图13中,将关于UCN的数目的信息描绘为表格的内容,该表格指示与从第i次迭代(其是当前正在执行的迭代)到第(i-4)次迭代(其是在前第四次迭代)范围的迭代相对应的校正子校验的先前历史。
假设在图9中所示的第四条件中α2和β1都是4,则第四条件指示其中在四次连续迭代中的UCN的数目小于4并且在四次连续迭代中的UCN的数目彼此相等的情况。
假设在图9中所示的第五条件中α2是4且β2是5,则第五条件指示其中在四次连续迭代中的UCN的数目小于5并且在四次连续迭代中的UCN的数目彼此相等的情况。
在图13中所示的校正子校验的先前历史表示在最近四次迭代(i、i-1、i-2、i-3)中的UCN的数目(=3)彼此相等。
因此,假设α2和β1都是4,则在图13中所示的校正子校验的先前历史满足图9中所示的第四条件,并且假设α2是4且β2是5,则
图13中所示的校正子校验的先前历史满足图9中所示的第五条件。
图14是用于解释满足图9中所示第六条件或第七条件的情况的示例图。
在图14中,将关于UCN的数目的信息描绘为表格的内容,该表格指示与从第i次迭代(其是当前正在执行的迭代)到第(i-4)次迭代(其是在前第四次迭代)范围的迭代相对应的校正子校验的先前历史。
假设在图9中所示的第六条件中α3为5且β1为4,则第六条件指示其中对于过去五次连续迭代而言UCN的数目小于4并且对于五次连续迭代而言UCN的数目不是单调减少的情况。
假设在图9中所示的第七条件中α3是5且β2是5,则第七条件指示其中对于过去五次连续迭代而言UCN的数目小于5并且对于五次连续迭代而言UCN的数目不是单调减少的情况。
图14中所示的校正子校验的先前历史表示在最近五次迭代(i、i-1、i-2、i-3、i-4)中的所有UCN的数目都小于4。此外,校正子校验的先前历史表示第(i-1)次迭代中的UCN的数目是1并且第i次迭代中的UCN的数目是2。即,校正子校验的先前历史表示UCN的数目在第(i-1)次迭代和第i次迭代之间不是单调减少的。
因此,假设α3是5且β1是4,则图14中所示的校正子校验的先前历史满足图9中所示的第六条件,并且假设α3是5且β2是5,则图14中所示的校正子校验的先前历史满足图9中所示的第七条件。
图15是示出满足图9中所示的第八条件的情况的示例图。
在图15中,将关于UCN的数目的信息描绘为表格的内容,该表格指示与从第i次迭代(其是当前正在执行的迭代)到第(i-4)次迭代(其是在前第四次迭代)范围的迭代相对应的校正子校验的先前历史。
图9中所示的第八条件指示其中当前迭代(i)中的UCN的数目大于紧接前次迭代(i-1)中的UCN的数目的情况。
图15中所示的校正子校验的先前历史表示当前迭代(i)中的UCN的数目是3并且紧接前次迭代(i-1)中的UCN的数目是2。即,校正子校验的先前历史显示了当前迭代(i)中的UCN的数目大于紧接前次迭代(i-1)中的UCN的数目。
因此,图15中所示的校正子校验的先前历史满足图9中所示的第八条件。
图16是示出基于所公开的技术的实施例的存储器系统的图。
参见图16,存储器系统2000可以包括存储数据的存储器装置2200以及在主机1000的请求下控制存储器装置2200的存储器控制器2100。
主机1000可以使用诸如外围部件互连-快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、通用串行总线(USB)、多媒体卡(MMC)、增强型小磁盘接口(ESDI)、集成驱动电子装置(IDE)、移动行业处理器接口(MIPI)、通用闪存(UFS)、小型计算机小型接口(SCSI)和串行附接SCSI(SAS)之类的接口协议中的至少一个来与存储器系统2000通信。主机1000可以是包括一个或多个计算机处理器的装置或系统,该计算机处理器操作以从存储器系统2000取回数字信息或数据,或者将数字信息或数据存储或写入到存储器系统2000中。在各种应用中,主机1000可以是各种形式,包括例如个人计算机(PC)、便携式数字装置、平板PC、数码相机、数字音频播放器、数字多媒体播放器、电视、无线通信装置、蜂窝电话、控制台视频游戏硬件或数字机顶盒。
存储器控制器2100可以控制存储器系统2000的整体操作,并且可以控制主机1000和存储器装置2200之间的数据交换。例如,存储器控制器2100可以转换所接收的信息并且存储和输出转换的信息,从而可以在主机1000和存储器装置2200之间发送/接收命令、地址和数据。例如,在编程操作期间,存储器控制器2100可以将命令、地址、数据等传输到存储器装置2200。例如,在读取操作期间,存储器控制器2100可以将命令、地址等传输到存储器装置2200,并且可以从存储器装置2200接收读取值。
存储器控制器2100可以包括主机接口2110、中央处理单元(CPU)2120、存储器接口2130、缓冲存储器2140、纠错电路2150和内部存储器2160。主机接口2110、存储器接口2130、缓冲存储器2140、纠错电路2150和内部存储器2160可以由CPU 2120控制。
主机接口2110可以使用通信协议来执行与主机1000的数据交换。
CPU 2120可以执行各种类型的计算或生成命令和地址,以便控制存储器装置2200。例如,CPU 2120可以生成编程操作、读取操作、擦除操作、数据压缩操作和复制操作所需的各种命令。
存储器接口2130可以使用通信协议来与存储器装置2200通信。
缓冲存储器2140可以在存储器控制器2100控制存储器装置2200时临时存储数据。例如,直到程序操作完成,可以将从主机接收的数据临时存储在缓冲存储器2140中。此外,在读取操作期间,也可以将从存储器装置2200读取的数据临时存储在缓冲存储器2140中。
纠错电路2150可以在编程操作或读取操作期间执行用于纠错的编码和解码。
纠错电路2150可以包括纠错解码器2152和后处理器2154。纠错解码器2152可以对作为从存储器装置2200中读取的数据的读取值执行纠错解码。当在用于纠错的迭代解码过程中检测到错误时,纠错解码器2152可以使用奇偶校验矩阵来校正错误。例如,纠错解码器2152可以基于奇偶校验矩阵来计算校正子向量,并且可以基于所计算出的校正子向量来确定是否存在错误。当读取值中包含的错误是可校正的时,纠错解码器2152可以校正错误并且输出纠错后的数据。当读取值中包含的错误是不可校正的时,纠错解码器2152可以通知CPU2120解码失败。
纠错解码器2152可以包括映射器2152a、节点处理器2152b、校正子校验器2152c和解码控制器2152d。纠错解码器2152可以执行与纠错解码器100相同的操作,如上参考图1所述。即,图16中所示的映射器2152a、节点处理器2152b、校正子校验器2152c和解码控制器2152d可以执行分别对应于图1中所示的映射器110、节点处理器120、校正子校验器130和解码控制器140的操作。
后处理器2154可以执行与图1中所示的后处理器200相对应的操作。
可以将内部存储器2160用作存储存储器控制器2100的操作所需的各种类型的信息的存储器。内部存储器2160可以存储多个表格。例如,内部存储器2160可以存储用于在逻辑地址和物理地址之间进行映射的映射表。
存储器装置2200可以在存储器控制器2100的控制下执行编程操作、读取操作、擦除操作、数据压缩操作和复制操作。可以将存储器装置2200实现为易失性存储器装置,其中所存储的数据在供电中断时丢失,或者实现为非易失性存储器装置,其中所存储的数据即使在供电中断时也被保留。
图17是示出基于所公开的技术的实施例的存储器装置的图。可以将图17中所示的存储器装置应用于图16的存储器系统。
存储器装置2200可以包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可以包括电压生成电路2222、行解码器2224、输入/输出电路2226、列解码器2228、页缓冲器组2232和电流感测电路2234。
控制逻辑2210可以在图16的存储器控制器2100的控制下控制外围电路2220。
控制逻辑2210可以响应于通过输入/输出电路2226从存储器控制器2100接收的命令CMD和地址ADD来控制外围电路2220。例如,响应于命令CMD和地址ADD,控制逻辑2210可以输出操作信号OP_CMD、行地址RADD、列地址CADD、页缓冲器控制信号PBSIGNALS、以及使能位VRY_BIT<#>。控制逻辑2210可以响应于从电流感测电路2234接收的“通过”信号PASS或“失败”信号FAIL来确定“验证”操作是否成功(目标存储器单元是否已通过或未通过编程验证)。
外围电路2220可以执行将数据存储在存储器单元阵列2240中的编程操作、输出存储在存储器单元阵列2240中的数据的读取操作、以及擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成电路2222可以响应于从控制逻辑2210接收的操作信号OP_CMD生成用于编程、读取和擦除操作的各种操作电压Vop。例如,电压生成电路2222可以将编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等传送到行解码器2224。
响应于从控制逻辑2210接收的行地址RADD,行解码器2224可以将操作电压Vop传送到局部线LL,局部线LL耦合到从包括在存储器单元阵列2240中的存储器块之中所选择的存储器块。局部线LL可以包括局部字线、局部漏极选择线和局部源极选择线。另外,局部线LL可以包括耦合到存储器块的各种线,诸如源极线。
输入/输出电路2226可以将通过输入/输出(IO)线从存储器控制器接收的命令CMD和地址ADD传送到控制逻辑2210,或者可以与列解码器2228交换数据。
列解码器2228可以响应于从控制逻辑2210接收的列地址CADD而在输入/输出电路2226和页缓冲器组2232之间传送数据。例如,列解码器2228可以通过数据线DL来与页缓冲器PB1至PBm交换数据或者可以通过列线CL来与输入/输出电路2226交换数据。
页缓冲器组2232可以耦合到位线BL1至BLm,位线BL1至BLm共同耦合到存储器块BLK1至BLKi。页缓冲器组2232可以包括分别耦合到位线BL1至BLm的多个页缓冲器PB1至PBm。例如,一个页缓冲器可以耦合到每个位线。页缓冲器PB1至PBm可以响应于从控制逻辑2210接收的页缓冲器控制信号PBSIGNALS来被操作。例如,在编程操作期间,页缓冲器PB1至PBm可以临时存储从存储器控制器接收的编程数据,并且可以基于编程数据来控制要被应用到位线BL1至BLm的电压。此外,在读取操作期间,页缓冲器PB1至PBm可以临时存储通过位线BL1至BLm接收的数据,或者可以感测位线BL1至BLm的电压或电流。
在读取操作或验证操作期间,电流感测电路2234可以响应于从控制逻辑2210接收的使能位VRY_BIT<#>而生成参考电流,并且可以比较由参考电流生成的参考电压与从页缓冲器组2232接收的感测电压VPB,然后输出通过信号PASS或失败信号FAIL。
存储器单元阵列2240可以包括在其中存储数据的多个存储器块BLK1至BLKi。在存储器块BLK1至BLKi中,可以存储存储器装置2200的操作所需的各种类型的信息和用户数据。存储器块BLK1至BLKi各自可以被实现为二维(2D)结构或三维(3D)结构,并且可以被同等地配置。
图18是示出存储器块的示例的图。
存储器单元阵列可以包括多个存储器块,并且为了描述方便,图18中示出了多个存储器块中的任何一个存储器块BLKi。
在第一选择线和第二选择线之间彼此平行布置的多个字线可以耦合到存储器块BLKi。这里,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。详细地,存储器块BLKi可以包括耦合在位线BL1至BLm与源极线SL之间的多个串ST。位线BL1至BLm可以分别耦合到串ST,并且源极线SL可以共同耦合到串ST。串ST可以被相同地配置,并且因此将通过示例详细描述耦合到第一位线BL1的串ST。
串ST可以包括源极选择晶体管SST、多个存储器单元F1至F16、以及漏极选择晶体管DST,它们在源极线SL和第一位线BL1之间彼此串联耦合。单个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且可以在串ST中包括比图中所示的存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可以耦合到源极线SL,并且漏极选择晶体管DST的漏极可以耦合到第一位线BL1。存储器单元F1至F16可以串联耦合在源极选择晶体管SST和漏极选择晶体管DST之间。包括在不同串ST中的源极选择晶体管SST的栅极可以耦合到源极选择线SSL,包括在不同串ST中的漏极选择晶体管DST的栅极可以耦合到漏极选择线DSL,并且存储器单元F1至F16的栅极可以分别耦合到多个字线WL1至WL16。在包括在不同串ST中的存储器单元之中,耦合到相同字线的一组存储器单元可以被称为“物理页:PPG”。因此,存储器块BLKi可以包括与字线WL1至WL16的数目相同的数目的多个物理页PPG。
一个存储器单元可以存储一位数据。该单元被称为单级单元(SLC)。这里,一个物理页PPG可以存储与一个逻辑页LPG相对应的数据。对应于一个逻辑页LPG的数据可以包括与一个物理页PPG中包括的单元的数目相同的数目的数据位。例如,当两个或更多个数据位被存储在一个存储器单元中时,一个物理页PPG可以存储对应于两个或更多个逻辑页LPG的数据。例如,在以MLC类型驱动的存储器装置中,可以将对应于两个逻辑页的数据存储在一个物理页PPG中。在以TLC类型驱动的存储器装置中,可以将对应于三个逻辑页的数据存储在一个物理页PPG中。
图19是示出包括图16的存储器控制器的存储器系统的实施例的图。
参见图19,可以将存储器系统30000实现为蜂窝电话、智能电话、平板电脑、个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可以包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。
存储器控制器2100可以在处理器3100的控制下控制存储器装置2200的数据访问操作,例如编程、擦除或读取操作。
在存储器控制器2100的控制下,可以通过显示器3200输出在存储器装置2200中编程的数据。
无线电收发器3300可以通过天线ANT发送和接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号改变为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号并且将处理后的信号传输到存储器控制器2100或显示器3200。存储器控制器2100可以将由处理器3100处理的信号传输到存储器装置2200。此外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将改变后的无线电信号输出到外部装置。输入装置3400可以被用来输入用于控制处理器3100的操作的控制信号或者由处理器3100处理的数据。输入装置3400可以被实现为诸如触摸板或计算机鼠标、小键盘或键盘之类的指示装置。处理器3100可以控制显示器3200的操作,使得从存储器控制器2100输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。
在一个实施例中,可以将能够控制存储器装置2200的操作的存储器控制器2100实现为处理器3100的一部分或者实现为与处理器3100分开提供的芯片。
图20是示出包括图16的存储器控制器的存储器系统的实施例的图。
参见图20,可以将存储器系统70000体现在存储器卡或智能卡中。存储器系统70000可以包括存储器装置2200、存储器控制器2100和卡接口7100。
存储器控制器2100可以控制存储器装置2200和卡接口7100之间的数据交换。在一个实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但其不限于此。
卡接口7100可以根据主机60000的协议来对接主机60000和存储器控制器2100之间的数据交换。在一个实施例中,卡接口7100可以支持通用串行总线(USB)协议以及芯片间(IC)-USB协议。这里,卡接口7100可以是指能够支持由主机60000使用的协议的硬件、安装在硬件中的软件或信号传输方法。
当存储器系统70000连接到诸如PC、平板电脑、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒之类的主机60000的主机接口6200时,主机接口6200可以在微处理器(μP)6100的控制下通过卡接口7100和存储器控制器2100来执行与存储器装置2200的数据通信。
通过实现所公开的技术中公开的技术,可以通过在执行纠错解码时检测陷阱集来改善纠错解码的性能。
可以将所公开的装置或模块的一些部件实现为硬件、软件或其组合。例如,电子部件的硬件实现可以包括分立的模拟和/或数字部件,其例如被集成为印刷电路板的一部分。替代地或另外地,可以将所公开的部件或模块实现为专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)装置。一些实现可以附加地或替代地包括数字信号处理器(DSP),其是具有针对与本申请的公开的功能性相关联的数字信号处理的操作需求而优化的架构的专用微处理器。类似地,可以用软件、硬件或固件来实现每个模块内的各种部件或子部件。可以使用本领域中已知的连接方法和介质中的任何一种来提供模块之间的连接和/或模块内的部件,包括但不限于使用适当通过因特网、有线或无线网络的通信。
尽管出于说明性目的公开了所公开的技术的示例性实施例,但是本领域技术人员将理解,可以进行各种修改、添加和替换。因此,所公开的技术的范围必须由所附权利要求以及权利要求的等同物限定,而不是由前面的描述限定。

Claims (30)

1.一种用于基于迭代解码方案执行纠错解码的纠错电路,包括:
校正子校验历史管理器,被配置为维持与所述迭代解码方案的一个或多个迭代相对应的校正子校验的历史;以及
陷阱集检测器,被配置为将陷阱集确定策略与所述校正子校验的历史进行比较,以在纠错解码被执行时确定所述校正子校验的历史是否满足所述陷阱集确定策略的标准,并且当所述校正子校验的历史满足所述陷阱集确定策略时确定陷阱集存在,
其中所述陷阱集确定策略与校正子向量的变化、未满足的校验节点(UCN)的数目以及UCN的数目的变化中的至少一项相关。
2.根据权利要求1所述的纠错电路,其中所述校正子校验的历史中的每一个基于以下中的至少一项:与所述迭代解码方案的所述一个或多个迭代中的每个迭代相对应的校正子向量、以及关于与所述迭代解码方案的所述一个或多个迭代中的每个迭代相对应的所述UCN的数目的信息。
3.根据权利要求1所述的纠错电路,其中所述陷阱集检测器被配置为将所述陷阱集确定策略与所述一个或多个迭代之中的与最近执行的设定数目的迭代相对应的所述校正子校验的历史进行比较。
4.根据权利要求1所述的纠错电路,其中所述陷阱集确定策略包括与如下中的至少一项相关的条件:与设定数目的迭代中的每个迭代相对应的校正子向量的变化的存在或不存在、所述设定数目的迭代中的每个迭代中的所述UCN的数目和阈值之间的关系、所述设定数目的迭代中的每个迭代中的所述UCN的数目的变化的存在或不存在、以及所述设定数目的迭代中的每个迭代中的所述UCN的数目从前次迭代中的所述UCN的数目的变化。
5.根据权利要求4所述的纠错电路,其中所述陷阱集检测器被配置为当满足所述陷阱集确定策略中包括的条件中的任何一个条件至少一次时,确定所述陷阱集存在。
6.根据权利要求4所述的纠错电路,其中与所述UCN的数目和所述阈值之间的关系相关的条件包括以下中的至少一项:关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否小于所述阈值的信息、以及关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否等于所述阈值的信息。
7.根据权利要求4所述的纠错电路,其中与从所述前次迭代中的所述UCN的数目的变化相关的条件包括以下中的至少一项:关于针对所述设定数目的连续迭代所述UCN的数目是否已单调减小的信息、关于当前迭代中的所述UCN的数目是否已从紧接前次迭代中的所述UCN的数目增加的信息、以及关于所述当前迭代中的所述UCN的数目是否等于所述紧接前次迭代中的所述UCN的数目的信息。
8.根据权利要求1所述的纠错电路,其中所述陷阱集确定策略包括:
第一策略,被应用于所述一个或多个迭代之中的在所述陷阱集检测器检测到所述陷阱集之前的迭代,以及
第二策略,被应用于所述一个或多个迭代之中的在所述陷阱集检测器检测到所述陷阱集之后的迭代。
9.根据权利要求8所述的纠错电路,其中所述第一策略包括与以下中的至少一项相关的条件:与设定数目的迭代中的每个迭代相对应的校正子向量的变化的存在或不存在、所述设定数目的迭代中的每个迭代中的所述UCN的数目和阈值之间的关系、所述设定数目的迭代中的每个迭代中的所述UCN的数目的变化的存在或不存在、以及所述设定数目的迭代中的每个迭代中的所述UCN的数目从前次迭代中的所述UCN的数目的变化。
10.根据权利要求9所述的纠错电路,其中与所述UCN的数目和所述阈值之间的关系相关的条件包括以下中的至少一项:关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否小于所述阈值的信息、以及关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否等于所述阈值的信息。
11.根据权利要求9所述的纠错电路,其中与从所述前次迭代中的所述UCN的数目的变化相关的条件包括以下中的至少一项:关于针对所述设定数目的连续迭代所述UCN的数目是否单调减小的信息、关于当前迭代中的所述UCN的数目是否已从紧接前次迭代中的所述UCN的数目增加的信息、以及关于所述当前迭代中的所述UCN的数目是否等于所述紧接前次迭代中的所述UCN的数目的信息。
12.根据权利要求8所述的纠错电路,其中所述第二策略包括与当前迭代中的所述UCN的数目是否等于或大于紧接前次迭代中的所述UCN的数目相关的条件。
13.根据权利要求8所述的纠错电路,其中所述陷阱集检测器被配置为当在与所述一个或多个迭代相对应的所述校正子校验的历史之中所述校正子校验的历史满足所述第二策略的一个或多个场合在预定数目的连续迭代处出现时确定所述陷阱集存在。
14.根据权利要求8所述的纠错电路,其中所述陷阱集检测器被配置为当在与所述一个或多个迭代相对应的所述校正子校验的历史之中针对预定数目的连续迭代没有出现满足所述第二策略的校正子校验的历史时将所述第一策略应用于下次迭代。
15.根据权利要求1所述的纠错电路,其中所述陷阱集检测器被配置为当在最大迭代次数内确定所述陷阱集存在时停止所述纠错解码。
16.根据权利要求1所述的纠错电路,其中所述纠错解码是基于低密度奇偶校验(LDPC)码的纠错解码。
17.一种操作纠错电路的方法,所述纠错电路基于迭代解码方案执行纠错解码,所述方法包括:
维持与所述迭代解码方案的一个或多个迭代相对应的校正子校验的历史;
在纠错解码被执行时将陷阱集确定策略与所述校正子校验的历史进行比较,以校验所述校正子校验的历史是否满足所述陷阱集确定策略;以及
当在最大迭代次数内所述校正子校验的历史满足所述陷阱集确定策略时,停止所述纠错解码,
其中所述陷阱集确定策略与校正子向量的变化、未满足的校验节点(UCN)的数目以及所述UCN的数目的变化中的至少一项相关。
18.根据权利要求17所述的方法,其中所述校正子校验的历史的标准包括以下中的至少一项:与所述多个迭代中的每个迭代相对应的校正子向量、以及关于与所述多个迭代中的每个迭代相对应的所述UCN的数目的信息。
19.根据权利要求17所述的方法,其中校验所述校正子校验的历史中的任何一个是否满足所述陷阱集确定策略包括:
将所述陷阱集确定策略和与所述一个或多个迭代之中最近执行的设定数目的迭代相对应的所述校正子校验的历史进行比较,以校验所述校正子校验的历史是否满足所述陷阱集确定策略的标准。
20.根据权利要求17所述的方法,其中所述陷阱集确定策略包括与以下中的至少一项相关的条件:与设定数目的迭代中的每个迭代相对应的校正子向量的变化的存在或不存在、所述设定数目的迭代中的每个迭代中的所述UCN的数目和阈值之间的关系、所述设定数目的迭代中的每个迭代中的所述UCN的数目的变化的存在或不存在、以及所述设定数目的迭代中的每个迭代中的所述UCN的数目从前次迭代中的所述UCN的数目的变化。
21.根据权利要求20所述的方法,其中停止所述纠错解码包括:当满足所述陷阱集确定策略中包括的条件中的任何一个条件至少一次时,停止所述纠错解码。
22.根据权利要求20所述的方法,其中与所述UCN的数目和所述阈值之间的关系相关的条件包括以下中的至少一项:关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否小于所述阈值的信息、以及关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否等于所述阈值的信息。
23.根据权利要求20所述的方法,其中与从所述前次迭代中的所述UCN的数目的变化相关的条件包括以下中的至少一项:关于在所述设定数目的迭代中所述UCN的数目是否已单调减小的信息、关于当前迭代中的所述UCN的数目是否已从紧接前次迭代中的所述UCN的数目增加的信息、以及关于所述当前迭代中的所述UCN的数目是否等于所述紧接前次迭代中的所述UCN的数目的信息。
24.根据权利要求17所述的方法,其中所述陷阱集确定策略包括:
第一策略,被应用于所述一个或多个迭代之中的在检测到所述陷阱集之前的迭代,以及
第二策略,被应用于所述一个或多个迭代之中的在检测到所述陷阱集之后的迭代。
25.根据权利要求24所述的方法,其中所述第一策略包括与以下中的至少一项相关的条件:与设定数目的迭代中的每个迭代相对应的校正子向量的变化的存在或不存在、所述设定数目的迭代中的每个迭代中的所述UCN的数目和阈值之间的关系、所述设定数目的迭代中的每个迭代中的所述UCN的数目的变化的存在或不存在、以及所述设定数目的迭代中的每个迭代中的所述UCN的数目从前次迭代中的所述UCN的数目的变化。
26.根据权利要求25所述的方法,其中与所述UCN的数目和所述阈值之间的关系相关的条件包括以下中的至少一项:关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否小于所述阈值的信息、以及关于在所述设定数目的迭代中的每个迭代中所述UCN的数目是否等于所述阈值的信息。
27.根据权利要求25所述的方法,其中与从所述前次迭代中的所述UCN的数目的变化相关的条件包括以下中的至少一项:关于针对所述设定数目的连续迭代所述UCN的数目是否已单调减小的信息、关于当前迭代中的所述UCN的数目是否已从紧接前次迭代中的所述UCN的数目增加的信息、以及关于所述当前迭代中的所述UCN的数目是否等于所述紧接前次迭代中的所述UCN的数目的信息。
28.根据权利要求24所述的方法,其中所述第二策略包括与当前迭代中的所述UCN的数目是否等于或大于紧接前次迭代中的所述UCN的数目相关的条件。
29.根据权利要求24所述的方法,其中停止所述纠错解码包括:
当在与所述多个迭代相对应的所述校正子校验的历史之中,所述校正子校验的历史满足所述第二策略的一个或多个场合在预定数目的连续迭代处出现时,停止所述纠错解码。
30.根据权利要求17所述的方法,其中所述纠错解码是基于低密度奇偶校验(LDPC)码的纠错解码。
CN201910695341.8A 2018-10-12 2019-07-30 纠错电路及其操作方法 Withdrawn CN111049530A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0122071 2018-10-12
KR1020180122071A KR102592870B1 (ko) 2018-10-12 2018-10-12 에러 정정 회로 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
CN111049530A true CN111049530A (zh) 2020-04-21

Family

ID=70160793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910695341.8A Withdrawn CN111049530A (zh) 2018-10-12 2019-07-30 纠错电路及其操作方法

Country Status (3)

Country Link
US (1) US10931308B2 (zh)
KR (1) KR102592870B1 (zh)
CN (1) CN111049530A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102582326B1 (ko) * 2018-09-20 2023-09-26 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
EP4358415A3 (en) * 2022-10-18 2024-05-08 Samsung Electronics Co., Ltd. Storage device performing iterative error correction

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US20100042892A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Reconfigurable two's-complement and sign-magnitude converter
US8127209B1 (en) * 2007-07-30 2012-02-28 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US20120317462A1 (en) * 2011-06-13 2012-12-13 Zhen-U Liu Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
US8347195B1 (en) * 2009-01-22 2013-01-01 Marvell International Ltd. Systems and methods for near-codeword detection and correction on the fly
US20130343495A1 (en) * 2012-06-26 2013-12-26 Lsi Corporation Apparatus and method for breaking trapping sets
US20130346824A1 (en) * 2012-06-20 2013-12-26 Lsi Corporation Dynamically controlling the number of local iterations in an iterative decoder
US20140068367A1 (en) * 2012-09-04 2014-03-06 Lsi Corporation LDPC Decoder Trapping Set Identification
US20140082461A1 (en) * 2012-09-14 2014-03-20 Lsi Corp. Systems and Methods for Detector Side Trapping Set Mitigation
US8689074B1 (en) * 2011-06-27 2014-04-01 Cadence Design Systems, Inc. Method and apparatus for detecting trapping sets in decoding of information
US8689084B1 (en) * 2011-06-27 2014-04-01 Cadence Design Systems, Inc. Method and apparatus for breaking trapping sets in decoding of information
US8799742B1 (en) * 2007-07-30 2014-08-05 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US20140281785A1 (en) * 2013-03-15 2014-09-18 Omer FAINZILBER Error-correction decoding with conditional limiting of check-node messages
US20160274971A1 (en) * 2015-03-20 2016-09-22 SK Hynix Inc. Ldpc decoder, semiconductor memory system and operating method thereof
CN106971759A (zh) * 2016-12-14 2017-07-21 威盛电子股份有限公司 低密度奇偶校验装置与脱离矩阵陷阱集合方法
CN107135006A (zh) * 2016-02-26 2017-09-05 爱思开海力士有限公司 错误校正电路和错误校正方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930240B1 (ko) 2003-03-13 2009-12-09 삼성전자주식회사 효율적인 에러 정정을 위한 복호 방법 및 그 장치
KR100842583B1 (ko) 2005-11-21 2008-07-01 삼성전자주식회사 통신 시스템에서 데이터 수신 방법 및 장치
KR20080026559A (ko) 2007-12-26 2008-03-25 톰슨 라이센싱 반복 복호기에서의 중단 기준
US10176041B2 (en) 2014-06-16 2019-01-08 Tidal Systems, Inc. Deterministic read retry method for soft LDPC decoding in flash memories
US10135464B2 (en) 2015-01-05 2018-11-20 SK Hynix Inc. Reliability-assisted bit-flipping decoding algorithm
KR102556479B1 (ko) * 2015-03-20 2023-07-17 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799742B1 (en) * 2007-07-30 2014-08-05 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US8127209B1 (en) * 2007-07-30 2012-02-28 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US20100042892A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Reconfigurable two's-complement and sign-magnitude converter
US8347195B1 (en) * 2009-01-22 2013-01-01 Marvell International Ltd. Systems and methods for near-codeword detection and correction on the fly
US20120317462A1 (en) * 2011-06-13 2012-12-13 Zhen-U Liu Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
US8689074B1 (en) * 2011-06-27 2014-04-01 Cadence Design Systems, Inc. Method and apparatus for detecting trapping sets in decoding of information
US8689084B1 (en) * 2011-06-27 2014-04-01 Cadence Design Systems, Inc. Method and apparatus for breaking trapping sets in decoding of information
US20130346824A1 (en) * 2012-06-20 2013-12-26 Lsi Corporation Dynamically controlling the number of local iterations in an iterative decoder
US20130343495A1 (en) * 2012-06-26 2013-12-26 Lsi Corporation Apparatus and method for breaking trapping sets
US20140068367A1 (en) * 2012-09-04 2014-03-06 Lsi Corporation LDPC Decoder Trapping Set Identification
US20140082461A1 (en) * 2012-09-14 2014-03-20 Lsi Corp. Systems and Methods for Detector Side Trapping Set Mitigation
US20140281785A1 (en) * 2013-03-15 2014-09-18 Omer FAINZILBER Error-correction decoding with conditional limiting of check-node messages
US20160274971A1 (en) * 2015-03-20 2016-09-22 SK Hynix Inc. Ldpc decoder, semiconductor memory system and operating method thereof
CN107135006A (zh) * 2016-02-26 2017-09-05 爱思开海力士有限公司 错误校正电路和错误校正方法
CN106971759A (zh) * 2016-12-14 2017-07-21 威盛电子股份有限公司 低密度奇偶校验装置与脱离矩阵陷阱集合方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QIN HUANG等: "Trapping_sets_of_structured_LDPC_codes" *
刘洋: "低密度奇偶校验码的设计与应用研究" *

Also Published As

Publication number Publication date
KR20200041678A (ko) 2020-04-22
US20200119751A1 (en) 2020-04-16
US10931308B2 (en) 2021-02-23
KR102592870B1 (ko) 2023-10-24

Similar Documents

Publication Publication Date Title
US11050438B2 (en) Memory controller
CN110673979B (zh) 存储器控制器及其操作方法
US11031952B2 (en) Error correction decoder and memory system having the same
CN110415753B (zh) 错误校正电路及操作该错误校正电路的方法
US11128315B2 (en) Error correction decoder
US11239865B2 (en) Error correction circuit and operating method thereof
US11115064B2 (en) Error correction decoder and memory system having the same
US10931308B2 (en) Error correction circuit and method of operating the same
US11095316B2 (en) Controller and operating method for performing read operation to read data in memory device
CN110277999B (zh) Ldpc解码装置、包括其的存储器系统及其方法
US11804857B2 (en) Electronic device
US11055164B2 (en) Error correction decoder and memory controller having the same
CN110830046B (zh) 纠错电路及其操作方法
CN113496752B (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200421