CN111756385A - 错误校正解码器 - Google Patents
错误校正解码器 Download PDFInfo
- Publication number
- CN111756385A CN111756385A CN201911044950.3A CN201911044950A CN111756385A CN 111756385 A CN111756385 A CN 111756385A CN 201911044950 A CN201911044950 A CN 201911044950A CN 111756385 A CN111756385 A CN 111756385A
- Authority
- CN
- China
- Prior art keywords
- error correction
- buffer
- iteration
- values
- stored
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1125—Soft-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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/253—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with concatenated codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
- H03M13/6325—Error control coding in combination with demodulation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请涉及一种错误校正解码器并且描述了用于错误校正的装置和方法。示例性错误校正解码器包括:映射器,被配置成基于对应于第一码字的第一组读取值来生成第一组对数似然比(LLR)值;第一缓冲器,联接到映射器,被配置成存储从映射器接收的第一组LLR值;以及节点处理器,联接到第一缓冲器,被配置成使用从第一缓冲器接收的第一组LLR值来执行第一错误校正解码操作,其中第一错误校正解码操作的第一迭代包括避免更新一个或多个变量节点的值,并且使用奇偶校验矩阵和第一缓冲器中存储的第一组LLR值的符号位来执行校正子校验。
Description
相关申请的交叉引用
本专利文件要求于2019年3月27日提交的申请号为10-2019-0035392的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文以用于所有目的。
技术领域
本公开的各个实施例总体涉及一种错误校正解码器,且更特别地,涉及一种使用迭代解码方案的错误校正解码器。
背景技术
存储器系统可存储由外部装置提供的数据,并且可将所存储的数据提供到外部装置。存储器系统可包括错误校正电路,以保证数据的可靠性。错误校正电路可使用错误校正码来执行错误校正编码和错误校正解码。
低密度奇偶校验(LDPC)码是强错误校正码的示例。LDPC的有效性源于LDPC迭代解码方案的特性,在LDPC迭代解码方案中,随着代码长度增加,每位的错误校正能力增加,而每位的计算复杂度保持不变。
发明内容
本公开的各个实施例涉及一种能够减少错误校正解码所需的缓冲器数量的错误校正解码器。
本公开的实施例可提供一种错误校正解码器。该错误校正解码器可包括:映射器,被配置成基于对应于第一码字的第一组读取值来生成第一组对数似然比(LLR)值;第一缓冲器,联接到映射器,被配置成存储从映射器接收的第一组LLR值;以及节点处理器,联接到第一缓冲器,被配置成使用从第一缓冲器接收的第一组LLR值来执行第一错误校正解码操作,其中第一错误校正解码操作的第一迭代包括避免更新一个或多个变量节点的值,并且使用奇偶校验矩阵和第一缓冲器中存储的第一组LLR值的符号位来执行校正子校验。
本公开的另一实施例可提供一种错误校正解码方法。该错误校正解码方法可包括:基于对应于第一码字的第一组读取值来生成第一组对数似然比(LLR)值;将第一组LLR值存储在第一缓冲器中;并且使用第一组LLR值来执行第一错误校正解码操作,其中第一错误校正解码操作的第一迭代包括避免更新一个或多个变量节点的值,并且使用奇偶校验矩阵和第一缓冲器中存储的第一组LLR值的符号位来执行校正子校验。
附图说明
图1是示出根据本公开的实施例的错误校正电路的示图。
图2是示出奇偶校验矩阵的示例示图。
图3是示出作为Tanner图的图2的奇偶校验矩阵的示图。
图4是示出使用图2的奇偶校验矩阵来计算校正子向量的示例示图。
图5是示出在硬判决解码中使用一个读取值来生成初始软值的过程的示例示图。
图6是示出在软判决解码中使用g个读取值来生成初始软值的过程的示例示图。
图7是查找表的示例。
图8A至图8D是示出列分层方案的示例示图。
图9是示出根据本公开的实施例的错误校正解码器的示例示图。
图10是示出根据本公开的实施例的存储器系统的示图。
图11是示出根据本公开的实施例的存储器装置的示图。
图12是示出存储块的示例示图。
图13和图14是示出包括图10的存储器控制器的存储器系统的实施例的示图。
具体实施方式
图1是示出根据本公开的实施例的错误校正电路的示例示图。
参照图1,错误校正电路10可包括错误校正编码器100和错误校正解码器200。
错误校正编码器100可接收待被编码的原始消息,并且可使用所接收的原始消息和错误校正码(ECC)的生成器矩阵来执行错误校正编码。在一些实施例中,错误校正编码器100还可使用所接收的原始消息和错误校正码的奇偶校验矩阵来执行错误校正编码。错误校正编码器100输出作为执行错误校正编码的结果而生成的码字,然后通过信道发送该码字。
信道可指通过其传送信息的有线或无线介质,或者指存储信息的存储介质。当错误校正电路10被应用于存储器系统时,信道可指在错误校正电路10与存储器装置之间传送和接收数据的接口,或者指存储器装置自身。当错误校正电路10被应用于存储器系统时,每个码字可被存储在存储器装置中包括的多个存储器单元(例如,构成单个页面的存储器单元)中。
在一些实施例中,错误校正编码器100可使用低密度奇偶校验(LDPC)码作为错误校正码,但本公开的实施例不限于此。
在一些实施例中,错误校正解码器200可从信道接收对应于码字的读取值,然后可使用所接收的读取值和错误校正码的奇偶校验矩阵来执行错误校正解码。
在一些实施例中,错误校正解码器200可使用实施迭代解码方案的各种算法来执行错误校正解码。例如,错误校正解码器200可使用也被称为“置信传播算法(BPA)”的消息传递算法(MPA)来执行错误校正解码。例如,错误校正解码器200可使用和积算法或最小和算法来执行错误校正解码,但本公开的实施例不限于此。
在一些实施例中,错误校正解码器200可在没有超过迭代解码方案中指定的最大迭代次数I的情况下,通过执行至少一次迭代来执行错误校正解码。当在最大迭代次数I之内生成了满足错误校正码(ECC)的奇偶校验矩阵的约束的有效码字时,错误校正解码器200可输出所生成的有效码字作为经解码码字。当未在最大迭代次数I之内生成满足错误校正码的奇偶校验矩阵的约束的有效码字时,错误校正解码器200可输出指示错误校正解码失败的失败信号。
在一些实施例中,错误校正解码器200可使用低密度奇偶校验(LDPC)码作为错误校正码,但本公开的实施例不限于此。
在一些实施例中,错误校正电路10可进一步包括后处理器,该后处理器被配置成支持错误校正解码器200,使得错误校正解码器200可生成有效码字。后处理器可支持错误校正解码器200,使得对用于错误校正解码操作的各种类型的参数进行修改,并且使用经修改参数来执行错误校正解码操作。
图2示出奇偶校验矩阵的示例,其描述了码字的分量必须满足的线性关系。这可用于判定具体向量是否是码字,也可用于解码算法。
可使用大小为(n-k)×n的奇偶校验矩阵来定义(n,k)码。此处,k表示原始消息的长度,并且n-k表示奇偶校验位的数量。奇偶校验矩阵的每一个条目可表示为“0”或“1”。当奇偶校验矩阵中包括的1的数量远小于0的数量时,(n,k)码可被称为“(n,k)LDPC码”。此处,n和k可以是自然数。作为示例,图2示出(7,4)码的奇偶校验矩阵。
其中每个条目被实施为子矩阵的矩阵可被称为“基础矩阵”。基础矩阵的每个条目可以是大小为z×z的子矩阵。此处,z可以是大于或等于2的整数。例如,基础矩阵中的“0”可指示相应的条目是零矩阵(大小z×z),并且基础矩阵中的“1”可指示相应的条目不是零矩阵。例如,当基础矩阵用于准循环(QC)-LDPC码时,“1”可指示相应的条目是循环矩阵。循环矩阵是通过将单位矩阵以预定移位值进行循环移位而获得的矩阵。在示例中,任何一个循环矩阵可具有不同于基础矩阵中的另一循环矩阵的移位值。
图3示出对应于图2的奇偶校验矩阵的Tanner图。
(n,k)码可由Tanner图表示,该Tanner图以等效二分图表示,并且由n-k个校验节点、n个变量节点以及边沿表示。校验节点对应于奇偶校验矩阵的行,变量节点对应于奇偶校验矩阵的列。每个边沿将一个校验节点连接到一个变量节点,并且在奇偶校验矩阵中被指示为条目“1”。
图2中示出的(7,4)码的奇偶校验矩阵可由图3中示出的Tanner图表示,该Tanner图包括三个校验节点CN1至CN3和七个变量节点VN1至VN7。将校验节点CN1至CN3连接到变量节点VN1至VN7的实线指示边沿。
基于Tanner图的消息传递算法,通过校验节点CN1至CN3与变量节点VN1至VN7之间的消息交换,可执行迭代解码。例如,可通过在每次迭代中,在校验节点CN1至CN3与变量节点VN1至VN7之间传送消息来执行迭代解码。
图4是示出使用图2的奇偶校验矩阵来计算校正子向量的示例示图。
校正子向量Si的所有符号Si1、Si2和Si3都是“0”表示校正子校验已经通过(成功)。这表示,在第i迭代中,已成功执行了错误校正解码。因此,可结束当前读取值的迭代解码,并且可输出对应于第i迭代的硬判决向量Ci作为经解码码字。
相反,当校正子向量Si中的符号Si1、Si2和Si3中的至少一个不为“0”时,这指示校正子校验失败。这表示,在第i迭代中,错误校正解码没有成功。因此,如果当前迭代未超过最大迭代次数I,则可执行后续迭代。另一方面,在当前迭代已达到最大迭代次数I时,可终止当前读取值的迭代解码,并且认为错误校正解码操作已经失败。
图5是示出在硬判决解码中使用一个读取值来生成初始软值的过程的示例示图。
在图5的示例中,示出了存储器单元的阈值电压分布Vth,每个存储器单元具有第一状态S1和第二状态S2中的任意一种。
为了获取对应于单个码字的单个读取向量,可将单个读取电压Vr1施加到存储单个码字的多个存储器单元(例如,构成单个页面的存储器单元)。因此,可获取每存储器单元的单个读取值。单个读取向量可包括对应于多个存储器单元的读取值。
例如,当第一读取电压Vr1被施加到多个存储器单元时,来自阈值电压低于第一读取电压Vr1的存储器单元的读取值可以是“1”,来自阈值电压高于第一读取电压Vr1的存储器单元的读取值可以是“0”。如该示例中所示,对应于第一读取电压Vr1的读取值可以是量化成两个电平(level)的读取值。
错误校正电路10可将量化成两个电平的读取值转换成初始软值(例如,对数似然比(LLR)值)。在示例中,可基于查找表来执行到初始软值的转换。
图6是示出在软判决解码中使用g个读取值来生成初始软值的过程的示例示图。
在图6的示例中,示出具有第一状态S1和第二状态S2中的任意一个的存储器单元的阈值电压(Vth)分布。
当使用(g+1)电平量化时,可将g个读取电压中的每一个顺序地施加到多个存储器单元,以便获取对应于单个码字的g个读取向量。在示例中,g可以是自然数。例如,如图6所示,当使用2电平量化时,可施加一个读取电压Vr1,并且当使用3电平量化时,可顺序地施加两个读取电压Vr1和Vr2。类似地,当使用8电平量化时,可顺序地施加七个读取电压Vr1至Vr7。因此,当使用(g+1)电平量化时,可从每个存储器单元获取g个读取值。
在示例中,当将g个读取电压中的任意一个施加到多个存储器单元时,来自阈值电压低于所施加的读取电压的存储器单元的读取值可以是“1”,并且来自阈值电压高于所施加的读取电压的存储器单元的读取值可以是“0”。
错误校正电路可通过组合分别对应于g个读取电压的读取值来生成被量化成g+1个电平的读取值。例如,如图6所示,当使用七个读取电压Vr1至Vr7时,错误校正电路可通过组合分别对应于七个读取电压Vr1至Vr7的读取值来生成被量化成八个电平的读取值。
错误校正电路可将被量化成g+1个电平的读取值转换成初始软值(例如,LLR值)。可基于查找表来执行到初始软值的转换。
在下面的描述中,术语“读取值”可指被量化成g+1个电平的读取值。
图7是可定义对应于多个量化电平的LLR值的查找表的示例示图。
错误校正电路可基于查找表来将被量化成g+1个量化电平的读取值中的每一个转换成对应于(g+1)个量化电平的g+1个LLR值中的任意一个。
例如,当使用2电平量化时,错误校正电路可将读取值中的一个转换成LLR1,并且将其它读取值转换成LLR2。例如,可将“1”转换成LLR1=“-4”,并且可将“0”转换成LLR2=“+4”。
图8A至图8D是示出作为一种消息传递算法的列分层方案的示例示图。
更一般地,根据调度方案,可将消息传递算法分类为洪流(flooding)方案、行分层方案或列分层方案。
在洪流方案的示例中,在每次迭代中,同时执行对所有校验节点的更新,并且同时执行对所有变量节点的更新。例如,在每次迭代中,在更新所有校验节点的值之前,应当更新所有变量节点。类似地,在每次迭代中,在更新所有变量节点的值之前,应当更新所有校验节点的值。
在列分层方案的示例中,在除第一迭代之外的各个迭代中,可顺序地执行对变量节点的更新。因此,在除第一迭代之外的所有迭代中,先前计算的变量节点的计算结果影响待随后计算的变量节点的计算结果。因此,对于列分层方案,码字的收敛速度高于洪流方案。列分层方案中的每次迭代可包括分别对应于多个变量节点的子迭代。
列分层方案,或者可称为垂直乱序调度(vertically shuffled scheduling,VSS)方案的一些实施例,包括LDPC解码器在形成奇偶校验矩阵的多个子矩阵之中选择共享相同层(或层索引、或列索引)的子矩阵,并且执行选择对应于形成所选择的子矩阵的列的变量节点的变量节点选择操作。
在示例中,LDPC解码器可将从所选择的变量节点向连接到所选择的变量节点的校验节点提供变量节点消息。LDPC解码器可基于所提供的变量节点消息,对提供有变量节点消息的校验节点执行校验节点更新操作。执行校验节点更新操作的校验节点可向连接到该校验节点的变量节点提供校验节点消息。LDPC解码器可基于所提供的校验节点消息,对提供有校验节点消息的变量节点执行变量节点更新操作。LDPC解码器可通过重复地执行变量节点选择操作、校验节点更新操作和变量节点更新操作,以垂直乱序调度方法来执行LDPC解码操作,直到成功地执行LDPC解码操作。在图8A至图8D中示出了VSS方案的示例操作。
如图8A所示,在第一迭代的第一子迭代(对应于处理奇偶校验矩阵的一个或多个列)中由变量节点VN1生成的变量节点到校验节点(V2C)消息可被发送到校验节点CN1和CN3。此后,在顺序地执行的、第一迭代的第二至第六子迭代中,由变量节点VN2至VN6生成的V2C消息可被发送到校验节点CN1至CN3。然后,在第一迭代的第七子迭代中,由变量节点VN7生成的V2C消息可被发送到校验节点CN3。
在上面参照图8A和图8B描述的第一迭代中,将V2C消息从变量节点发送到校验节点,但校验节点到变量节点(C2V)消息未从校验节点发送到变量节点。因此,在第一迭代中,更新了校验节点的值,但未更新变量节点的值。
此后,如图8C所示,在第二迭代的第一子迭代中,由校验节点CN1和CN3生成的C2V消息可被发送到变量节点VN1。基于从校验节点CN1和CN3接收的C2V消息,可更新变量节点VN1的值,并且可生成V2C消息并将V2C消息发送到校验节点CN1和CN3。然后,可基于从变量节点VN1接收的V2C消息来更新校验节点CN1和CN3的值。
此后,在顺序地执行的、第二迭代的第二至第六子迭代中,由校验节点CN1至CN3生成的C2V消息可被发送到变量节点VN2至VN6。因此,可更新变量节点VN2至VN6的值,并且可生成V2C消息并将该V2C消息发送到校验节点CN1至CN3。然后,可更新校验节点CN1至CN3的值。
此后,如图8D所示,在第二迭代的第七子迭代中,由校验节点CN3生成的C2V消息可被发送到变量节点VN7。基于从校验节点CN3接收的C2V消息,可更新变量节点VN7的值,并且可生成V2C消息并将将V2C消息发送到校验节点CN3。此外,可基于从变量节点VN7接收的V2C消息来更新校验节点CN3的值。
可以类似于针对第二迭代所描述的方式来执行第二迭代之后的迭代。
对于常规的错误校正解码,除了接收对应于码字的读取值的一个输入缓冲器之外,还使用两个输出缓冲器。在典型操作中,两个输出缓冲器中的第一个用于存储第一错误校正解码操作期间更新的变量节点的值,该第一错误校正解码操作使用对应于第一码字的第一读取值。当已通过第一错误校正解码操作时,需要时间从第一输出缓冲器输出变量节点的值作为经解码码字,因此两个输出缓冲器中的第二个用于存储在第二错误校正解码操作期间更新的变量节点的值,该第二错误校正解码操作使用对应于第二码字的第二读取值。当用于错误校正解码操作的缓冲器的数量减少时,错误校正解码器自身的大小也减小。
本公开技术的实施例提供了一种有利地减少用于错误校正解码的缓冲器的数量的方法和系统。在示例中,所描述的实施例可应用于在第一迭代中更新了校验节点的值,但在第一迭代中没有更新变量节点的值的情况。
例如,所描述的实施例可应用于列分层(或VSS)方案,但本公开的实施例不限于此。例如,本公开的实施例也可应用于在洪流方案或行分层方案中没有更新对应于第一迭代的变量节点的值的情况。
图9是示出根据本公开的实施例的错误校正解码器的示例示图。
如所示出的,错误校正解码器200可包括解码控制器210、映射器220、第一缓冲器230、节点处理器240及第二缓冲器250。
解码控制器210可控制映射器220,使得映射器220接收对应于码字的读取值,并且基于所接收的读取值来生成初始软值。
在第一实施例中,解码控制器210可控制映射器220,使得初始软值存储在第一缓冲器230中。在该实施例中,第一缓冲器230可仅用作输入缓冲器,并且第二缓冲器250可仅用作输出缓冲器。
在第二实施例中,解码控制器210可在第一缓冲器230与第二缓冲器250之间选择待存储初始软值的缓冲器。在该实施例中,解码控制器210可控制映射器220,使得初始软值存储在所选择的缓冲器中。在该实施例中,第一缓冲器230和第二缓冲器250的功能可彼此互换。也就是说,当第一缓冲器230用作输出缓冲器时,第二缓冲器250可用作输入缓冲器,而当第二缓冲器250用作输出缓冲器时,第一缓冲器230可用作输入缓冲器。
解码控制器210可控制节点处理器240,使得使用初始软值来执行错误校正解码操作。
在第一实施例中,解码控制器210可控制节点处理器240,使得使用第一缓冲器230中存储的初始软值来执行错误校正解码操作。
在第二实施例中,解码控制器210可控制节点处理器240,使得可使用在第一缓冲器230与第二缓冲器250之间选择的缓冲器中存储的初始软值来执行错误校正解码操作。
解码控制器210可从节点处理器240接收对应于各个迭代的校正子校验结果,并且可基于所接收的校正子校验结果来控制映射器220、第一缓冲器230、节点处理器240或第二缓冲器250中的至少一个。
当从节点处理器240接收到校正子校验失败的通知时,解码控制器210可控制映射器220、第一缓冲器230、节点处理器240或第二缓冲器250中的至少一个,使得执行后续迭代。在当前迭代已达到最大迭代次数I时,解码控制器210可输出指示错误校正解码已经失败的失败信号。
在第一实施例中,解码控制器210可控制节点处理器240,使得在第一迭代之后的迭代中更新的变量节点的值存储在第二缓冲器250中。
在第二实施例中,解码控制器210可在第一缓冲器230与第二缓冲器250之间选择待存储变量节点的值的缓冲器。此外,解码控制器210可控制节点处理器240,使得在第一迭代之后的迭代中更新的变量节点的值存储在所选择的缓冲器中。
当从节点处理器240接收到校正子校验已经通过的通知时,解码控制器210可控制映射器220、第一缓冲器230、节点处理器240或第二缓冲器250中的至少一个,使得使用对应于下一码字的读取值来执行错误校正解码操作。
映射器220可接收对应于下一码字的读取值,并且可基于所接收的读取值来生成初始软值。初始软值可以是包括符号位和幅值位的LLR值。例如,映射器220可基于查找表(LUT)222来将读取值转换成初始软值。
在第一实施例中,映射器220可将初始软值存储在第一缓冲器230中。
在第二实施例中,映射器220可将初始软值存储在由解码控制器210在第一缓冲器230与第二缓冲器250之间选择的缓冲器中。
节点处理器240可基于初始软值来执行错误校正解码。
在第一实施例中,节点处理器240可使用第一缓冲器230中存储的初始软值来执行错误校正解码。
在第二实施例中,节点处理器240可使用由解码控制器210在第一缓冲器230与第二缓冲器250之间选择的缓冲器中存储的初始软值来执行错误校正解码。
节点处理器240可包括变量节点更新模块242和校验节点更新模块244。
在初始化步骤,变量节点更新模块242可使用初始软值来初始化变量节点。例如,变量节点更新模块242可将初始软值顺序地分配到各个变量节点。初始软值中的每一个可包括符号位和幅值位。来自初始软值中包括的符号位和幅值位的幅值位序列可被称为“硬判决向量”。
在本公开的一些实施例中,第一迭代可包括将V2C消息从变量节点发送到校验节点的操作、基于V2C消息来更新校验节点的值的操作以及使用初始软值和奇偶校验矩阵来执行校正子校验的操作。
在第一迭代中,变量节点更新模块242可基于初始软值来生成V2C消息,并且可将所生成的V2C消息发送到校验节点更新模块244。
在第一迭代中,校验节点更新模块244可使用从变量节点更新模块242接收的V2C消息来更新校验节点的值。校验节点更新模块244可基于硬判决向量和奇偶校验矩阵来执行校正子校验,并且可向解码控制器210通知校正子校验的结果。当在第一迭代中校正子校验成功(通过)时,可对与下一码字相对应的读取值执行错误校正解码操作。另一方面,当在第一迭代中校正子校验失败时,可执行后续迭代。
在第一实施例中,校验节点更新模块244可从第一缓冲器230接收硬判决向量,并且可基于所接收的硬判决向量和奇偶校验矩阵来执行校正子校验。
在第二实施例中,校验节点更新模块244可接收来自由解码控制器210在第一缓冲器230与第二缓冲器250之间选择的缓冲器中存储的初始软值的硬判决向量,并且可基于所接收的硬判决向量和奇偶校验矩阵来执行校正子校验。
在本公开的一些实施例中,第一迭代之后的每次迭代可包括将C2V消息从校验节点发送到变量节点的操作、基于C2V消息来更新变量节点的值的操作、将V2C消息从变量节点发送到校验节点的操作、基于V2C消息来更新校验节点的值的操作以及使用所更新的变量节点的值和奇偶校验矩阵来执行校正子校验的操作。
在第一迭代之后的迭代中,校验节点更新模块244可基于在先前迭代中更新的校验节点的值生成C2V消息,并且可将所生成的C2V消息发送到变量节点更新模块242。
在第一迭代之后的迭代中,变量节点更新模块242可基于初始软值和从校验节点更新模块244接收的C2V消息来更新变量节点的值并且生成V2C消息。可将所生成的V2C消息发送到校验节点更新模块244。所更新的变量节点的值可包括符号位。因此,所更新的变量节点的值可被称为“硬判决向量”。
在第一实施例中,变量节点更新模块242可基于从第一缓冲器230接收的初始软值和从校验节点更新模块244接收的C2V消息来更新变量节点的值,并且可将所更新的变量节点的值存储在第二缓冲器250中。
在第二实施例中,变量节点更新模块242可基于从由解码控制器210在第一缓冲器230与第二缓冲器250之间选择的缓冲器接收的初始软值和从校验节点更新模块244接收的C2V消息,来更新变量节点的值。变量节点更新模块242可将所更新的变量节点的值存储在由解码控制器210在第一缓冲器230与第二缓冲器250之间选择的缓冲器中。例如,当初始软值存储在第一缓冲器230中时,可选择第二缓冲器250来存储变量节点的值,而当初始软值存储在第二缓冲器250中时,可选择第一缓冲器230来存储变量节点的值。
在第一迭代之后的迭代中,校验节点更新模块244可基于从变量节点更新模块242接收的V2C消息来更新校验节点的值。校验节点更新模块244可基于变量节点的值和奇偶校验矩阵来执行校正子校验。校验节点更新模块244可向解码控制器210通知校正子校验的结果。当在第一迭代之后的迭代中校正子校验通过时,可对与下一码字相对应的读取值执行错误校正解码操作,而当在第一迭代之后的迭代中校正子校验失败时,可执行下一迭代。
在第一实施例中,校验节点更新模块244可基于第二缓冲器250中存储的变量节点的值以及奇偶校验矩阵来执行校正子校验。
在第二实施例中,校验节点更新模块244可基于奇偶校验矩阵以及由解码控制器210在第一缓冲器230与第二缓冲器250之间选择的缓冲器中存储的变量节点的值来执行校正子校验。
在下文中,进一步描述根据第一实施例和第二实施例执行错误校正解码操作的示例。
<第一实施例>
解码控制器210可控制映射器220和节点处理器240,使得使用对应于第一码字的第一读取值来执行第一错误校正解码操作。
映射器220可接收第一读取值,并且可基于所接收的第一读取值来生成第一初始软值。映射器220可将所生成的第一初始软值存储在第一缓冲器230中。
节点处理器240可基于第一缓冲器230中存储的第一初始软值来执行初始化步骤和第一迭代。在第一迭代中,可仅更新校验节点的值,而不更新变量节点的值。在第一迭代中,节点处理器240可使用来自第一缓冲器230中存储的第一初始软值的符号位以及奇偶校验矩阵来执行校正子校验。
1.在第一错误校正解码操作的第一迭代中校正子校验通过的情况
当在第一错误校正解码操作的第一迭代中校正子校验通过时,解码控制器210可控制第一缓冲器230和第二缓冲器250,使得将来自第一缓冲器230中存储的第一初始软值的符号位存储在第二缓冲器250中。此处,第二缓冲器250中存储的符号位可被称为“第一硬判决向量”。解码控制器210可控制第二缓冲器250,使得输出第二缓冲器250中存储的第一硬判决向量作为经解码码字。
解码控制器210可控制映射器220和节点处理器240,使得使用对应于第二码字的第二读取值来执行第二错误校正解码操作。因此,映射器220可接收第二读取值,并且可基于所接收的第二读取值来生成第二初始软值。映射器220可将所生成的第二初始软值存储在第一缓冲器230中。此处,解码控制器210可控制映射器220,使得在输出第二缓冲器250中存储的第一硬判决向量之前,生成第二初始软值并且将第二初始软值存储在第一缓冲器230中。
节点处理器240可使用第一缓冲器230中存储的第二初始软值来执行第二错误校正解码操作。此处,解码控制器210可控制第二缓冲器250,使得在执行第二错误校正解码操作的第一迭代之前输出第二缓冲器250中存储的第一硬判决向量。
2-1.在第一错误校正解码操作的第一迭代或第一迭代之后的迭代中校正子校验失败的情况
当在第一错误校正解码操作的第一迭代中或者在第一迭代之后的迭代中校正子校验失败时,解码控制器210可控制节点处理器240,使得执行下一迭代。因此,可在校验节点更新模块244与变量节点更新模块242之间传送C2V消息和V2C消息,因此可更新变量节点的值和校验节点的值。
在第一迭代之后的迭代中,变量节点更新模块242可将所更新的变量节点的值存储在第二缓冲器250中。校验节点更新模块244可基于第二缓冲器250中存储的变量节点的值以及奇偶校验矩阵来执行校正子校验。
2-2.在第一错误校正解码操作的第一迭代之后的迭代中校正子校验通过的情况
在第一错误校正解码操作的第一迭代之后的迭代中校正子校验通过的情况下,解码控制器210可控制第二缓冲器250,使得输出第二缓冲器250中存储的变量节点的值作为经解码码字。
解码控制器210可控制映射器220和节点处理器240,使得使用对应于第二码字的第二读取值来执行第二错误校正解码操作。因此,映射器220可接收第二读取值,并且可基于所接收的第二读取值来生成第二初始软值。映射器220可将所生成的第二初始软值存储在第一缓冲器230中。此处,解码控制器210可控制映射器220,使得在输出第二缓冲器250中存储的变量节点的值之前,生成第二初始软值并且将第二初始软值存储在第一缓冲器230中。
节点处理器240可使用第一缓冲器230中存储的第二初始软值来执行第二错误校正解码操作。此处,解码控制器210可控制第二缓冲器250,使得在执行第二错误校正解码操作的第一迭代之前,输出第二缓冲器250中存储的变量节点的值。
<第二实施例>
每当执行对应于单个码字的错误校正解码操作时,解码控制器210可在第一缓冲器230与第二缓冲器250之间选择待存储初始软值的缓冲器和存储更新的变量节点的值的缓冲器。在下文中,假设当使用对应于第一码字的第一读取值来执行第一错误校正解码操作时,选择第一缓冲器230作为待存储初始软值的缓冲器,并且选择第二缓冲器250作为待存储更新的变量节点的值的缓冲器。
解码控制器210可控制映射器220和节点处理器240,使得使用对应于第一码字的第一读取值来执行第一错误校正解码操作。
映射器220可接收第一读取值,并且可基于所接收的第一读取值来生成第一初始软值。映射器220可将所生成的第一初始软值存储在第一缓冲器230中。
节点处理器240可基于第一缓冲器230中存储的第一初始软值来执行初始化步骤和第一迭代。在第一迭代中,仅更新校验节点的值,而不更新变量节点的值。在第一迭代中,节点处理器240可使用来自第一缓冲器230中存储的第一初始软值的符号位以及奇偶校验矩阵来执行校正子校验。
1.在第一错误校正解码操作的第一迭代中校正子校验通过的情况
在第一错误校正解码操作的第一迭代中校正子校验通过的情况下,解码控制器210可控制第一缓冲器230,使得输出来自第一缓冲器230中存储的第一初始软值的符号位作为经解码码字。此处,来自第一缓冲器230中存储的第一初始软值的符号位可被称为“第一硬判决向量”。
解码控制器210可控制映射器220和节点处理器240,使得使用对应于第二码字的第二读取值来执行第二错误校正解码操作。因此,映射器210可接收第二读取值,并且可基于所接收的第二读取值来生成第二初始软值。此处,解码控制器210可选择第二缓冲器250作为待存储第二初始软值的缓冲器。因此,映射器220可将第二初始软值存储在第二缓冲器250中。此处,解码控制器210可控制映射器220,使得在输出第一缓冲器230中存储的第一硬判决向量之前,生成第二初始软值并且将第二初始软值存储在第二缓冲器250中。
节点处理器240可使用第二缓冲器250中存储的第二初始软值来执行第二错误校正解码操作。此处,解码控制器210可控制第一缓冲器230,使得在执行第二错误校正解码操作的第一迭代之前输出第一缓冲器230中存储的第一硬判决向量。
2-1.在第一错误校正解码操作的第一迭代或第一迭代之后的迭代中校正子校验失败的情况
当在第一错误校正解码操作的第一迭代中或者在第一迭代之后的迭代中校正子校验失败时,解码控制器210可控制节点处理器240,使得执行下一迭代。因此,可在校验节点更新模块244与变量节点更新模块242之间传送C2V消息和V2C消息,因此可更新变量节点的值和校验节点的值。
在第一迭代之后的迭代中,变量节点更新模块242可将更新的变量节点的值存储在第二缓冲器250中。校验节点更新模块244可基于第二缓冲器250中存储的变量节点的值以及奇偶校验矩阵来执行校正子校验。
2-2.在第一错误校正解码操作的第一迭代之后的迭代中校正子校验通过的情况
在第一错误校正解码操作的第一迭代之后的迭代中校正子校验通过的情况下,解码控制器210可控制第二缓冲器250,使得输出第二缓冲器250中存储的变量节点的值作为经解码码字。
解码控制器210可控制映射器220和节点处理器240,使得使用对应于第二码字的第二读取值来执行第二错误校正解码操作。因此,映射器220可接收第二读取值,并且可基于所接收的第二读取值来生成第二初始软值。此处,解码控制器210可选择第一缓冲器230作为待存储第二初始软值的缓冲器。因此,映射器220可将第二初始软值存储在第一缓冲器230中。此处,解码控制器210可控制映射器220,使得在输出第二缓冲器250中存储的变量节点的值之前,生成第二初始软值并且将第二初始软值存储在第一缓冲器230中。
节点处理器240可使用第一缓冲器230中存储的第二初始软值来执行第二错误校正解码操作。此处,解码控制器210可控制第二缓冲器250,使得在执行第二错误校正解码操作的第一迭代之前,输出第二缓冲器250中存储的变量节点的值。
图10是示出根据本公开的实施例的存储器系统的示图。
如图10所示,存储器系统2000可包括存储数据的存储器装置2200和在主机1000的控制下控制存储器装置2200的存储器控制器2100。
在一些实施例中,主机1000可以是将数据存储在存储器系统2000中或从存储器系统2000中检索数据的装置或系统。例如,主机1000可包括计算机、便携式数字装置、平板电脑、数码相机、数字音频播放器、电视机、无线通信装置或移动电话中的至少一个,但本公开的实施例不限于此。
在一些实施例中,存储器控制器2100可控制存储器系统2000的全部操作。存储器控制器2100可响应于从主机1000接收的请求而执行各种操作。例如,存储器控制器2100可对存储器装置2200执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器控制器2100可将编程命令、地址、码字等传送到存储器装置2200。在读取操作期间,存储器控制器2100可将读取命令、地址等传送到存储器装置2200,并且可从存储器装置2200接收对应于码字的读取数据。在擦除操作期间,存储器控制器2100可将擦除命令和地址等传送到存储器装置2200。
在一些实施例中,存储器控制器2100可包括主机接口2110、中央处理单元(CPU)2120、存储器接口2130、缓冲存储器2140、错误校正电路2150及内部存储器2160。可由CPU2120控制主机接口2110、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160。
在一些实施例中,主机接口2110可将从主机1000接收的编程请求、读取请求和擦除请求传送到CPU 2120。在编程操作期间,主机接口2110可从主机1000接收对应于编程请求的原始数据,并且可将所接收的原始数据存储在缓冲存储器2140中。在读取操作期间,主机接口2110可将缓冲存储器2140中存储的经解码码字传送到主机1000。主机接口2110可使用各种接口协议来与主机1000通信。例如,主机接口2110可使用诸如以下的接口协议中的至少一种来与主机1000通信:高速非易失性存储器(NVMe)、高速外围组件互连(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、移动工业处理器接口(MIPI)、通用闪存(UFS)、小型计算机系统接口(SCSI)或串列SCSI(SAS),但本发明的实施例不限于此。
在一些实施例中,CPU 2120可执行各种类型的计算(操作)或生成命令和地址,以便控制存储器装置2200。例如,响应于从主机接口2110接收的请求,CPU 2120可生成编程操作、读取操作和擦除操作所需的各种命令和地址。
当从主机接口2110接收到编程请求时,CPU 2120可控制错误校正电路2150,从而对缓冲存储器2140中存储的原始数据执行错误校正编码。当从错误校正电路2150接收到已生成码字的通知时,CPU 2120可生成编程命令和地址,并且可控制存储器接口2130,使得将所生成的编程命令和地址以及缓冲存储器2140中存储的码字传送到存储器装置2200。
当从主机接口2110接收到读取请求时,CPU 2120可生成读取命令和地址,并且可控制存储器接口2130,使得将所生成的读取命令和地址传送到存储器装置2200。当从存储器接口2130接收到已接收到读取数据的通知时,CPU 2120可控制错误校正电路2150,使得对缓冲存储器2140中存储的读取数据执行错误校正解码操作。当从错误校正电路2150接收到已生成经解码码字的通知时,CPU 2120可控制主机接口2110,使得将缓冲存储器2140中存储的经解码码字传送到主机1000。
在一些实施例中,存储器接口2130可使用各种接口协议来与存储器装置2200通信。
在编程操作期间,存储器接口2130可将从CPU 2120接收的编程命令和地址以及缓冲存储器2140中存储的码字传送到存储器装置2200。
在读取操作期间,存储器接口2130可将从CPU 2120接收的读取命令和地址传送到存储器装置2200。在读取操作期间,存储器接口2130可将从存储器装置2200接收的读取数据存储在缓冲存储器2140中,并且可通知CPU 2120已接收到读取数据。
在一些实施例中,在存储器控制器2100控制存储器装置2200时,缓冲存储器2140可临时存储数据。
在编程操作期间,缓冲存储器2140可存储从主机接口2110接收的原始数据,并将所存储的原始数据传送到错误校正电路2150。在编程操作期间,缓冲存储器2140可存储从错误校正电路2150接收的码字,并且可将所存储的码字传送到存储器接口2130。
在读取操作期间,缓冲存储器2140可存储从存储器装置2200接收的读取数据,并且将所存储的读取数据传送到错误校正电路2150。在读取操作期间,缓冲存储器2140可存储从错误校正电路2150接收的经解码码字,并且可将所存储的经解码码字传送到主机接口2110。
在一些实施例中,错误校正电路2150可对原始数据执行错误校正编码,并且可对读取数据执行错误校正解码操作。错误校正电路2150可具有预定的错误校正能力。例如,当读取数据中存在不超过错误校正能力的错误位的数量时,错误校正电路2150可检测并校正读取数据中包括的错误。不超过错误校正电路2150的错误校正能力的错误位的最大数量可以认为是错误位的最大允许数量。错误校正电路2150可以是使用LDPC码的错误校正电路。
错误校正电路2150可包括错误校正编码器2152和错误校正解码器2154。
错误校正编码器2152可通过对从缓冲存储器2140接收的原始数据执行错误校正编码来生成码字。错误校正编码器2152可将所生成的码字传送到缓冲存储器2140,并且可通知CPU 2120已生成码字。错误校正编码器2152的基本配置和操作可与上面参照图1描述的错误校正编码器100的基本配置和操作相同。
错误校正解码器2154可通过对从缓冲存储器2140接收的读取数据执行错误校正解码操作来生成经解码码字。错误校正解码器2154可将经解码码字传送到缓冲存储器2140,并且可通知CPU 2120已生成经解码码字。当读取数据中包括的错误无法校正时,错误校正解码器2154可通知CPU 2120错误校正解码已经失败。错误校正解码器2154的基本配置和操作可与上面参照图1描述的错误校正解码器200的基本配置和操作相同。
在一些实施例中,内部存储器2160可用作存储存储器控制器2100的操作所需的各种类型信息的存储装置。内部存储器2160可存储多个表。在一些实施例中,内部存储器2160可存储将逻辑地址映射到物理地址的地址映射表。
在一些实施例中,存储器装置2200可在存储器控制器2100的控制下执行编程操作、读取操作、擦除操作、数据压缩操作和回拷(copyback)操作。存储器装置2200可被实施为当电源中断时丢失所存储数据的易失性存储器装置,或者被实施为即使当电源中断时也保留所存储数据的非易失性存储器装置。
存储器装置2200可从存储器控制器2100接收命令、地址和码字,并且可响应于命令和地址来存储码字。
存储器装置2200可响应于从存储器控制器2100接收的命令和地址来对码字执行读取操作,并且可将读取值提供到存储器控制器2100。
图11是示出根据本公开技术的一些实施例的存储器装置的示图。在示例中,图11所示的存储器装置可应用于图9所示的存储器系统。
存储器装置2200可包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可包括电压生成器2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232和电流感测电路2234。
控制逻辑2210可在图10的存储器控制器2100的控制下控制外围电路2220。
控制逻辑2210可响应于通过输入/输出电路2226而从存储器控制器2100接收的命令CMD和地址ADD来控制外围电路2220。例如,控制逻辑2210可响应于命令CMD和地址ADD而输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS和使能位VRY_BIT<#>。控制逻辑2210可响应于从电流感测电路2234接收的通过信号PASS或失败信号FAIL来确定验证操作是已通过还是已失败。
外围电路2220可执行将数据存储在存储器单元阵列2240中的编程操作、输出存储在存储器单元阵列2240中的数据的读取操作以及擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成器2222可响应于从控制逻辑2210接收的操作信号OP_CMD而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,电压生成器2222可向行解码器2224传送编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等。
行解码器2224可响应于从控制逻辑2210接收的行地址RADD,将操作电压Vop传送到与从包括在存储器单元阵列2240中的存储块之中选择的存储块联接的局部线LL。局部线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)结构,并且可等同地配置。
所公开技术的实施例包括错误校正解码器,该错误校正解码器包括:映射器,被配置成基于对应于第一码字的第一组读取值来生成第一组对数似然比(LLR)值;第一缓冲器,联接到映射器,被配置成存储从映射器接收的第一组LLR值;以及节点处理器,联接到第一缓冲器,被配置成使用从第一缓冲器接收的第一组LLR值来执行第一错误校正解码操作,其中第一错误校正解码操作的第一迭代包括避免更新一个或多个变量节点的值,并且使用奇偶校验矩阵和第一缓冲器中存储的第一组LLR值的符号位来执行校正子校验。
在一些实施例中,第二缓冲器联接到节点处理器和映射器;解码控制器,联接到节点处理器、映射器以及第一缓冲器和第二缓冲器,被配置成在确定在第一错误校正解码操作的第一迭代中校正子校验已经通过时,将符号位存储在第二缓冲器中。
在一些实施例中,解码控制器被进一步配置成输出第二缓冲器中存储的符号位作为经解码码字。
在一些实施例中,映射器被进一步配置成,在输出第二缓冲器中存储的符号位之前,基于对应于第二码字的第二组读取值来生成第二组LLR值;并且将该第二组LLR值存储在第一缓冲器中。
在一些实施例中,节点处理器被进一步配置成使用第一缓冲器中存储的第二组LLR值来执行第二错误校正解码操作,并且解码控制器被进一步配置成在执行第二错误校正解码操作的第一迭代之前,输出第二缓冲器中存储的符号位。
在一些实施例中,第二缓冲器联接到节点处理器和映射器,节点处理器被进一步配置成在确定在第一错误校正解码操作的第一迭代中校正子校验失败时执行第一迭代之后的迭代,并且将在第一迭代之后的迭代中更新的变量节点的值存储在第二缓冲器中,其中在确定未超过最大迭代次数时执行第一迭代之后的迭代。
在一些实施例中,节点处理器被进一步配置成在第一迭代之后的迭代中使用奇偶校验矩阵和第二缓冲器中存储的变量节点的值来执行校正子校验。
在一些实施例中,解码控制器被进一步配置成在确定基于第二缓冲器中存储的变量节点的值的校正子校验已经通过时,输出第二缓冲器中存储的变量节点的值作为经解码码字。
在一些实施例中,映射器被进一步配置成,在输出第二缓冲器中存储的变量节点的值之前,基于对应于第二码字的第二组读取值来生成第二组LLR值,并且将该第二组LLR值存储在第一缓冲器中。
在一些实施例中,解码控制器被配置成在确定在第一错误校正解码操作的第一迭代中校正子校验已经通过时,输出符号位作为经解码码字。
在一些实施例中,第二缓冲器联接到节点处理器和映射器,其中映射器被进一步配置成基于对应于第二码字的第二组读取值来生成第二组LLR值,并且将该第二组LLR值存储在第二缓冲器中。
在一些实施例中,映射器被配置成在输出第一缓冲器中存储的符号位之前,生成第二组LLR值并且将该第二组LLR值存储在第二缓冲器中。
在一些实施例中,节点处理器被进一步配置成使用第二缓冲器中存储的第二组LLR值来执行第二错误校正解码操作。
在一些实施例中,解码控制器被进一步配置成在执行第二错误校正解码操作的第一迭代之前,输出第一缓冲器中存储的符号位。
在一些实施例中,第一错误校正解码操作包括垂直乱序调度操作。
所公开技术的实施例进一步包括错误校正解码的方法,该方法包括:基于对应于第一码字的第一组读取值,生成第一组对数似然比(LLR)值;将第一组LLR值存储在第一缓冲器中;并且使用第一组LLR值来执行第一错误校正解码操作,其中第一错误校正解码操作的第一迭代包括避免更新一个或多个变量节点的值,并且使用奇偶校验矩阵和第一缓冲器中存储的第一组LLR值的符号位来执行校正子校验。
在一些实施例中,该方法进一步包括以下操作:在确定在第一错误校正解码操作的第一迭代中校正子校验已经通过时,将符号位存储在第二缓冲器中。
在一些实施例中,该方法进一步包括以下操作:输出第二缓冲器中存储的符号位作为经解码码字。
在一些实施例中,该方法进一步包括以下操作:在输出符号位之前,基于对应于第二码字的第二组读取值来生成第二组LLR值;并且将该第二组LLR值存储在第一缓冲器中。
在一些实施例中,该方法进一步包括以下操作:使用第一缓冲器中存储的第二组LLR值来执行第二错误校正解码操作;并且在执行第二错误校正解码操作的第一迭代之前,输出第二缓冲器中存储的符号位。
在一些实施例中,该方法进一步包括以下操作:在确定在第一错误校正解码操作的第一迭代中校正子校验已经失败时,执行第一迭代之后的迭代;并且将在第一迭代之后的迭代中更新的变量节点的值存储在第二缓冲器中,其中在确定未超过最大迭代次数时执行第一迭代之后的迭代。
在一些实施例中,该方法进一步包括以下操作:在第一迭代之后的迭代中使用奇偶校验矩阵和在第二缓冲器中存储的变量节点的值来执行校正子校验。
在一些实施例中,该方法进一步包括以下操作:在确定基于第二缓冲器中存储的变量节点的值的校正子校验已经通过时,输出第二缓冲器中存储的变量节点的值作为经解码码字。
在一些实施例中,该方法进一步包括以下操作:在输出第二缓冲器中存储的变量节点的值之前,基于对应于第二码字的第二组读取值来生成第二组LLR值;并且将该第二组LLR值存储在第一缓冲器中。
在一些实施例中,该方法进一步包括以下操作:在确定在第一错误校正解码操作的第一迭代中校正子校验已经通过时,输出符号位作为经解码码字。
在一些实施例中,该方法进一步包括以下操作:基于对应于第二码字的第二组读取值来生成第二组LLR值;并且将该第二组LLR值存储在第二缓冲器中。
在一些实施例中,在输出第一缓冲器中存储的符号位之前,生成并存储第二组LLR值。
在一些实施例中,该方法进一步包括以下操作:使用第二缓冲器中存储的第二组LLR值来执行第二错误校正解码操作。
在一些实施例中,该方法进一步包括以下操作:在执行第二错误校正解码操作的第一迭代之前,输出第一缓冲器中存储的符号位。
图12是示出存储块的示例示图。
存储器单元阵列可包括多个存储块,并且为了简化描述,在图12中示出了多个存储块中的任意一个存储块BLKi。
如所示出的,在第一选择线和第二选择线之间彼此平行布置的多个字线可联接到存储块BLKi。在本文中,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。例如,存储块BLKi可包括联接在位线BL1至BLm与源极线SL之间的多个串ST。位线BL1至BLm可分别联接到串ST,并且源极线SL可共同联接到串ST。可对串ST进行等同的配置,因此将通过示例的方式详细描述联接到第一位线BL1的串ST。
串ST可包括彼此串联联接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。单个串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中。
图13是示出包括例如图10的存储器控制器的存储器系统的实施例的示图。
参照图13,存储器系统30000可被实施为蜂窝电话、智能电话、平板电脑、个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。
存储器控制器2100可在处理器3100的控制下控制存储器装置2200的数据访问操作,例如编程操作、擦除操作或读取操作。
编程在存储器装置2200中的数据可在存储器控制器2100的控制下通过显示器3200输出。
无线电收发器3300可通过天线(ANT)发送和接收无线电信号。例如,无线电收发器3300可将通过天线接收的无线电信号改变为可由处理器3100处理的信号。因此,处理器3100可处理从无线电收发器3300输出的信号,并将处理后的信号传送到存储器控制器2100或显示器3200。存储器控制器2100可将由处理器3100处理的信号传送到存储器装置2200。此外,无线电收发器3300可将从处理器3100输出的信号改变为无线电信号,并且通过天线将改变后的无线电信号输出到外部装置。输入装置3400可用于输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据。输入装置3400可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。处理器3100可控制显示器3200的操作,使得从存储器控制器2100输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。
在实施例中,能够控制存储器装置2200的操作的存储器控制器2100可被实施为处理器3100的一部分或与处理器3100分开设置的芯片。
图14是示出包括例如图10的存储器控制器的存储器系统的实施例的示图。
如图14所示,存储器系统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可在微处理器6100的控制下通过卡接口7100和存储器控制器2100来执行与存储器装置2200的数据通信。
根据本公开技术,可减少错误校正解码所需的缓冲器的数量,因此可减小错误校正解码器的大小。
虽然已参照所公开技术的某些示例性实施例示出和描述了所公开技术,但本领域技术人员将理解的是,在不脱离由所附权利要求及其等同方案限定的所公开技术的精神和范围的情况下,可进行形式和细节上的各种改变。因此,所公开技术的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求还有其等同方案来确定。
在上述实施例中,可选择性地执行所有步骤或部分步骤,并且可省略步骤。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可被重新排列。本说明书和附图中公开的实施例仅示例以帮助理解所公开的技术,并且所公开的技术不限于此。也就是说,对于本领域技术人员应显而易见的是,可基于所公开技术的技术范围进行各种修改。
同时,已在附图和说明书中描述了所公开技术的示例性实施例。虽然本文中使用了特定的术语,但这些术语仅用于说明所公开的技术的实施例。因此,所公开技术不限于上述实施例,并且在所公开技术的精神和范围内可进行许多变化。对于本领域技术人员应显而易见的是,除本文公开的实施例之外,还可基于所公开技术的技术范围进行各种修改。
Claims (20)
1.一种错误校正解码器,包括:
映射器,基于对应于第一码字的第一组读取值来生成第一组对数似然比值,即第一组LLR值;
第一缓冲器,联接到所述映射器,存储从所述映射器接收的所述第一组LLR值;以及
节点处理器,联接到所述第一缓冲器,使用从所述第一缓冲器接收的所述第一组LLR值来执行第一错误校正解码操作,
其中所述第一错误校正解码操作的第一迭代包括:
避免更新一个或多个变量节点的值,并且
使用奇偶校验矩阵和所述第一缓冲器中存储的所述第一组LLR值的符号位来执行校正子校验。
2.根据权利要求1所述的错误校正解码器,进一步包括:
第二缓冲器,联接到所述节点处理器和所述映射器;以及
解码控制器,联接到所述节点处理器、所述映射器以及所述第一缓冲器和所述第二缓冲器,在确定在所述第一错误校正解码操作的所述第一迭代中所述校正子校验已经通过时,将所述符号位存储在所述第二缓冲器中。
3.根据权利要求2所述的错误校正解码器,其中所述解码控制器进一步输出所述第二缓冲器中存储的所述符号位作为经解码码字。
4.根据权利要求3所述的错误校正解码器,其中在输出所述第二缓冲器中存储的所述符号位之前,所述映射器进一步:
基于对应于第二码字的第二组读取值来生成第二组LLR值;以及
将所述第二组LLR值存储在所述第一缓冲器中。
5.根据权利要求4所述的错误校正解码器,
其中所述节点处理器进一步使用所述第一缓冲器中存储的第二组LLR值来执行第二错误校正解码操作,并且
所述解码控制器进一步在执行所述第二错误校正解码操作的第一迭代之前,输出所述第二缓冲器中存储的所述符号位。
6.根据权利要求1所述的错误校正解码器,进一步包括:
第二缓冲器,联接到所述节点处理器和所述映射器,
其中所述节点处理器进一步:
在确定在所述第一错误校正解码操作的所述第一迭代中所述校正子校验已经失败时,执行所述第一迭代之后的迭代,以及
将在所述第一迭代之后的迭代中更新的变量节点的值存储在所述第二缓冲器中,
其中在确定未超过最大迭代次数时,执行所述第一迭代之后的迭代。
7.根据权利要求6所述的错误校正解码器,其中所述节点处理器进一步在所述第一迭代之后的迭代中使用所述奇偶校验矩阵和所述第二缓冲器中存储的所述变量节点的值来执行校正子校验。
8.根据权利要求7所述的错误校正解码器,其中所述解码控制器进一步在确定基于所述第二缓冲器中存储的所述变量节点的值的校正子校验已经通过时,输出所述第二缓冲器中存储的所述变量节点的值作为经解码码字。
9.根据权利要求8所述的错误校正解码器,其中在输出所述第二缓冲器中存储的所述变量节点的值之前,所述映射器进一步:
基于对应于第二码字的第二组读取值来生成第二组LLR值;以及
将所述第二组LLR值存储在所述第一缓冲器中。
10.根据权利要求1所述的错误校正解码器,进一步包括:
解码控制器,在确定在所述第一错误校正解码操作的所述第一迭代中所述校正子校验已经通过时,输出所述符号位作为经解码码字。
11.根据权利要求10所述的错误校正解码器,进一步包括第二缓冲器,所述第二缓冲器联接到所述节点处理器和所述映射器,
其中所述映射器进一步:
基于对应于第二码字的第二组读取值来生成第二组LLR值;以及
将所述第二组LLR值存储在所述第二缓冲器中。
12.根据权利要求11所述的错误校正解码器,其中在输出所述第一缓冲器中存储的所述符号位之前,所述映射器生成所述第二组LLR值并且将所述第二组LLR值存储在所述第二缓冲器中。
13.根据权利要求11所述的错误校正解码器,其中所述节点处理器进一步使用所述第二缓冲器中存储的所述第二组LLR值来执行第二错误校正解码操作。
14.根据权利要求13所述的错误校正解码器,其中所述解码控制器进一步在执行所述第二错误校正解码操作的第一迭代之前,输出所述第一缓冲器中存储的所述符号位。
15.根据权利要求1所述的错误校正解码器,其中所述第一错误校正解码操作包括垂直乱序调度操作。
16.一种错误校正解码方法,包括:
基于对应于第一码字的第一组读取值来生成第一组对数似然比值即第一组LLR值;
将所述第一组LLR值存储在第一缓冲器中;并且
使用所述第一组LLR值来执行第一错误校正解码操作,
其中所述第一错误校正解码操作的第一迭代包括:
避免更新一个或多个变量节点的值,并且
使用奇偶校验矩阵和所述第一缓冲器中存储的所述第一组LLR值的符号位来执行校正子校验。
17.根据权利要求16所述的方法,进一步包括:
在确定在所述第一错误校正解码操作的所述第一迭代中所述校正子校验已经通过时,将所述符号位存储在第二缓冲器中。
18.根据权利要求16所述的方法,进一步包括:
在确定在所述第一错误校正解码操作的所述第一迭代中所述校正子校验已经失败时,执行所述第一迭代之后的迭代,并且
将在所述第一迭代之后的迭代中更新的变量节点的值存储在第二缓冲器中,
其中在确定未超过最大迭代次数时,执行所述第一迭代之后的迭代。
19.根据权利要求16所述的方法,进一步包括:
在确定在所述第一错误校正解码操作的所述第一迭代中所述校正子校验已经通过时,输出所述符号位作为经解码码字。
20.根据权利要求16所述的方法,其中所述第一错误校正解码操作包括垂直乱序调度操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190035392A KR102687096B1 (ko) | 2019-03-27 | 2019-03-27 | 오류 정정 디코더 |
KR10-2019-0035392 | 2019-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111756385A true CN111756385A (zh) | 2020-10-09 |
Family
ID=72604642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911044950.3A Withdrawn CN111756385A (zh) | 2019-03-27 | 2019-10-30 | 错误校正解码器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11128315B2 (zh) |
KR (1) | KR102687096B1 (zh) |
CN (1) | CN111756385A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529046A (zh) * | 2021-06-24 | 2022-12-27 | 北京特纳飞电子技术有限公司 | 闪速存储系统中的对数似然比映射表 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210064723A (ko) * | 2019-11-26 | 2021-06-03 | 에스케이하이닉스 주식회사 | 전자 장치 및 이의 동작 방법 |
US10944429B1 (en) * | 2020-01-02 | 2021-03-09 | Silicon Motion, Inc. | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
KR20210092391A (ko) * | 2020-01-16 | 2021-07-26 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치 |
US11887684B2 (en) | 2020-10-30 | 2024-01-30 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device, operating method of storage device, and operating method of electronic device including nonvolatile memory device |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7395487B2 (en) * | 2002-08-15 | 2008-07-01 | Broadcom Corporation | Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder |
US7644339B2 (en) * | 2006-10-02 | 2010-01-05 | Broadcom Corporation | Overlapping sub-matrix based LDPC (low density parity check) decoder |
US8301979B2 (en) * | 2008-10-07 | 2012-10-30 | Sandisk Il Ltd. | Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders |
KR102081588B1 (ko) | 2013-08-08 | 2020-02-26 | 삼성전자 주식회사 | Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러 |
US9553608B2 (en) * | 2013-12-20 | 2017-01-24 | Sandisk Technologies Llc | Data storage device decoder and method of operation |
DE102016100795B4 (de) * | 2015-06-30 | 2017-12-28 | Preh Gmbh | Wippschalter mit beweglichen Lichtschächten |
KR20180009558A (ko) | 2016-07-19 | 2018-01-29 | 삼성전자주식회사 | 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러 |
US10110249B2 (en) * | 2016-08-23 | 2018-10-23 | Sandisk Technologies Llc | Column-layered message-passing LDPC decoder |
US10511326B2 (en) * | 2017-11-14 | 2019-12-17 | Nyquist Semiconductor Limited | Systems and methods for decoding error correcting codes |
-
2019
- 2019-03-27 KR KR1020190035392A patent/KR102687096B1/ko active IP Right Grant
- 2019-10-08 US US16/596,550 patent/US11128315B2/en active Active
- 2019-10-30 CN CN201911044950.3A patent/CN111756385A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529046A (zh) * | 2021-06-24 | 2022-12-27 | 北京特纳飞电子技术有限公司 | 闪速存储系统中的对数似然比映射表 |
Also Published As
Publication number | Publication date |
---|---|
KR20200114151A (ko) | 2020-10-07 |
US20200313693A1 (en) | 2020-10-01 |
US11128315B2 (en) | 2021-09-21 |
KR102687096B1 (ko) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11050438B2 (en) | Memory controller | |
CN110673979B (zh) | 存储器控制器及其操作方法 | |
US11309916B2 (en) | Error correction circuit and memory controller having the same | |
US11128315B2 (en) | Error correction decoder | |
US11115064B2 (en) | Error correction decoder and memory system having the same | |
US11031952B2 (en) | Error correction decoder and memory system having the same | |
CN110415753B (zh) | 错误校正电路及操作该错误校正电路的方法 | |
US11239865B2 (en) | Error correction circuit and operating method thereof | |
CN110830046B (zh) | 纠错电路及其操作方法 | |
KR102592870B1 (ko) | 에러 정정 회로 및 이의 동작 방법 | |
US20200341829A1 (en) | Error correction decoder and memory controller having the same | |
KR102714837B1 (ko) | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 |
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: 20201009 |