CN110415753B - 错误校正电路及操作该错误校正电路的方法 - Google Patents
错误校正电路及操作该错误校正电路的方法 Download PDFInfo
- Publication number
- CN110415753B CN110415753B CN201910024629.2A CN201910024629A CN110415753B CN 110415753 B CN110415753 B CN 110415753B CN 201910024629 A CN201910024629 A CN 201910024629A CN 110415753 B CN110415753 B CN 110415753B
- Authority
- CN
- China
- Prior art keywords
- global iteration
- error correction
- global
- iteration
- read
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1575—Direct 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
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种错误校正电路及操作该错误校正电路的方法。该电路可在最大全局迭代数量G以内执行错误校正解码,并且可包括:映射器,被配置成通过使用对应于g个读取电压的读取值来生成待在第g全局迭代中使用的量化为g+1个电平的读取值;节点处理部件,被配置成通过使用量化为g+1个电平的读取值,在第g全局迭代期间执行错误校正解码;校正子信息管理部件,被配置成管理对应于第g全局迭代的校正子信息;以及全局迭代控制部件,被配置成当在第g全局迭代中错误校正解码失败时,确定对应于第g全局迭代的校正子信息是否满足在全局迭代跳过策略中定义的条件,并且决定是否跳过第g+1至第G‑1全局迭代。
Description
相关申请的交叉引用
本申请要求于2018年4月30日提交的申请号为10-2018-0050213的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种错误校正电路及操作该错误校正电路的方法。特别地,实施例涉及一种用于减少错误校正解码所需时间的错误校正电路及操作该错误校正电路的方法。
背景技术
存储器系统可存储从外部装置提供的数据,并且可将存储的数据提供到外部装置。存储器系统可包括错误校正电路,以保证数据的可靠性。错误校正电路可使用错误校正码来执行编码和解码。
低密度奇偶校验(LDPC)码是强错误校正码。这是由于LDPC迭代解码方案的特性,在该方案中,随着代码长度增加,每位错误校正能力提高,而每位计算复杂度保持不变。
发明内容
本公开的各个实施例涉及一种用于减少错误校正解码所需时间的错误校正电路及操作该错误校正电路的方法。
本公开的实施例可提供一种错误校正电路,用于在最大全局迭代数量G(其中G为自然数)以内执行错误校正解码。错误校正电路可包括:映射器,被配置成通过使用分别对应于g个读取电压(其中g为小于或等于G的自然数)的读取值来生成待在第g全局迭代中使用的量化为g+1个电平的读取值;节点处理部件,被配置成使用量化为g+1个电平的读取值,在第g全局迭代期间执行错误校正解码;校正子信息管理部件,被配置成管理对应于第g全局迭代的校正子信息;以及全局迭代控制部件,被配置成当在第g全局迭代中错误校正解码失败时,确定对应于第g全局迭代的校正子信息是否满足在全局迭代跳过策略中定义的条件,并且基于确定的结果来决定是否跳过第g+1至第G-1全局迭代。
本公开的实施例可提供一种操作错误校正电路的方法,其中错误校正电路在最大全局迭代数量G(其中G为自然数)以内执行错误校正解码。该方法可包括:通过使用分别对应于g个读取电压(其中g为小于或等于G的自然数)的读取值来生成待在第g全局迭代中使用的量化为g+1个电平的读取值;使用量化为g+1个电平的读取值,在第g全局迭代期间执行错误校正解码;管理对应于第g全局迭代的校正子信息;当在第g全局迭代中错误校正解码失败时,确定对应于第g全局迭代的校正子信息是否满足在全局迭代跳过策略中定义的条件;并且根据校正子信息是否满足条件来决定是否跳过第g+1至第G-1全局迭代。
本公开的实施例可提供一种基于低密度奇偶校验码对码字软判决错误校正码解码的方法。该方法可包括:根据预定数量的软读取电压对码字执行软判决ECC解码的迭代,直到软判决ECC解码成功;当鉴于未满足的校验节点的数量,当前迭代的结果不优于阈值时,通过跳过剩余的中间迭代来执行迭代之中最后的迭代;并且当鉴于未满足的校验节点的数量,当前迭代的结果不优于紧邻的在前迭代的结果时,通过跳过剩余的中间迭代来执行迭代之中最后的迭代。
附图说明
图1是示出根据本公开的实施例的错误校正电路的示图。
图2是示出图1所示的后处理器的示图。
图3是用于说明矩阵H的示图。
图4是将图3的矩阵H表示为Tanner图的示图。
图5是用于说明使用图3的矩阵H计算的校正子向量的示图。
图6是用于说明量化为两个电平的读取值的示图。
图7是用于说明生成量化为三个电平的读取值的示图。
图8是用于说明生成量化为八个电平的读取值的示图。
图9是示出根据本公开的实施例的查找表的示图。
图10是示出操作图1和图2所示的错误校正电路的方法的流程图。
图11是示出根据本公开的实施例的全局迭代跳过策略的示图。
图12是示出满足图11所示的第一条件的情况的示图。
图13A和图13B是示出分别满足图11所示的第二条件和第三条件的情况的示图。
图14是示出根据本公开的实施例的存储器系统的示图。
图15是示出根据本公开的实施例的存储器装置的示图。
图16是示出存储块的示图。
图17是示出具有3D结构的存储块的示例的示图。
图18是示出具有3D结构的存储块的示例的示图。
图19至图22是示出包括图14的存储器控制器的存储器系统的实施例的示图。
具体实施方式
参考稍后与附图一起详细描述的实施例,本公开的优点和特征及用于实现这些优点和特征的方法将变得更加显而易见。本公开不限于以下实施例,而是可以其它形式实现。相反地,提供这些实施例以便使本公开将彻底且充分,并且将本公开的技术实质全面地传达给本领域的技术人员。
注意的是,对“实施例”的参考不一定仅指一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”来描述各个元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不背离本公开的教导的情况下,以下讨论的第一元件也可被称为第二元件。同样,第二元件也可被称为第一元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”等指定存在所陈述的特征、数字、步骤、操作、元件、部件和/或其组合,但并不排除存在或添加一个或多个其它特征、数字、步骤、操作、元件、部件和/或其组合。
还应注意的是,在本说明书中,“连接/联接”不仅指一个部件直接联接另一部件,而且还指通过中间部件间接联接另一部件。在说明书中,除非上下文另有明确说明,否则当元件被称为“包括有”或“包含有”部件时,并不排除其它部件,而是可进一步包括其它部件。
上述示例性实施例仅用于理解本公开的技术实质的目的,并且本公开的范围不应限于上述示例性实施例。对于本公开所属领域的技术人员将显而易见的是,除了上述示例性实施例之外,还可基于本公开的技术实质进行其它修改。
在下文中,将参照附图描述本公开的实施例。
图1是示出根据本公开的实施例的错误校正电路10的示图。
参照图1,错误校正电路10可包括错误校正解码器100和后处理器200。
错误校正解码器100可接收读取值,并且可基于提供的读取值来执行错误校正解码。读取值可从存储器装置2200(参见图14)提供,并且可对应于被错误校正编码的单个码字。也就是说,错误校正解码器100可获取与从存储器装置2200提供的单个码字对应的读取值。
错误校正解码器100可基于量化为g+1个电平的读取值来执行错误校正解码。量化为g+1个电平的读取值中的每一个可以是包括g个位的组合模式,这将参照图6至图8进行描述。例如,量化为两个电平的读取值中的每一个可以是“1”或“0”(参见图6)。例如,量化为三个电平的读取值中的每一个可以是“11”、“10”或“00”(参见图7)。
当基于量化为g+1个电平的读取值执行的错误校正解码失败时,错误校正解码器100可基于量化为g+2个电平的读取值执行错误校正解码。
在下文中,用于基于量化为g+1个电平的读取值执行错误校正解码的进程被称为“第g全局迭代”。可在最大全局迭代数量G以内执行全局迭代。此处,G为自然数,g为小于或等于G的自然数。
错误校正解码器100可以是使用低密度奇偶校验(LDPC)码作为错误校正码(ECC)的LDPC解码器。
错误校正解码器100可包括映射器110、节点处理部件120和校正子校验部件130。
映射器110可接收读取值,并且可基于所提供的读取值来生成量化为g+1个电平的读取值。当g等于或大于2时,可通过对分别对应于g个读取电压的读取值进行组合来生成量化为g+1个电平的读取值。例如,可通过将对应于第一读取电压的读取值与对应于第二读取电压的读取值进行组合来生成量化为三个电平的读取值。对于该操作,映射器110可包括第一缓冲器112。第一缓冲器112可接收和存储分别对应于g个读取电压的读取值。因此,当提供对应于第g读取电压的读取值时,映射器110可通过对分别对应于第一至第g读取电压的读取值进行组合来生成量化为g+1个电平的读取值。当g为1时,量化为两个电平的读取值可以是对应于单个读取电压的读取值本身。
映射器110可将量化为g+1个电平的读取值转换为用于迭代解码方案的初始输入向量。初始输入向量包括多个初始输入值。也就是说,映射器110可将量化为g+1个电平的各个读取值转换为相应的初始输入值。初始输入值可以是由整数或实数表示的值。初始输入值可包括指示包含在码字中的标志(symbol)中的每一个将为0或1的可能性的值以及相应可能性的可靠性值(或置信度值)。例如,初始输入值可以是对数似然比(LLR)值。
节点处理部件120可在每一个全局迭代内基于从映射器110提供的初始输入向量来执行错误校正解码。节点处理部件120可根据采用迭代解码方案的各种算法来执行错误校正解码。例如,节点处理部件120可根据也可被称为“置信传播算法(BPA)”的消息传递算法(MPA)来执行错误校正解码。通过示例而非限制的方式,可使用和积算法、最小(min)和算法等,另外,可使用各种算法作为消息传递算法。
消息传递算法可生成输出,该输出通过在变量节点和校验节点之间执行的消息交换而集中于所期望的结果。消息可包括从变量节点发送到校验节点的变量到校验(V2C)消息,以及从校验节点发送到变量节点的校验到变量(C2V)消息。从变量节点向校验节点发送V2C消息并且从校验节点向变量节点发送C2V消息以及然后在消息交换期间更新各个节点的值的进程可以是单个局部迭代。也就是说,节点处理部件120可在每一个全局迭代内根据迭代解码方案来执行多个单个局部迭代。
节点处理部件120可包括变量节点更新模块122和校验节点更新模块124。
变量节点更新模块122可使用从映射器110提供的、例如LLR值的初始输入向量来初始化变量节点,以执行第一局部迭代。变量节点更新模块122可在各个局部迭代中响应于从校验节点更新模块124提供的C2V消息来更新相应的变量节点的值。
校验节点更新模块124可在各个局部迭代中响应于从变量节点更新模块122提供的V2C消息来更新相应的校验节点的值。
初始输入向量及C2V和V2C消息可被称为“软信息”。软信息可包括与属于错误校正解码操作的目标码字的标志中的每一个对应的符号(sign)位和大小位。符号位可指示相应的标志将为0或1的可能性。例如,负符号位可指示相应的标志为“1”的可能性高于为“0”的可能性。相反,正符号位可指示相应的标志为“0”的可能性高于为“1”的可能性。大小位可指示相应的符号位的可靠性值。例如,当大小位指示较大的值时,对于相应的符号位可指示较高的可靠性值。
节点处理部件120可在每一个全局迭代期间在最大局部迭代数量I以内执行局部迭代,并且可将变量节点的值(下文中称为“变量节点向量”)输出到校正子校验部件130作为执行第i局部迭代的结果。此处,I为自然数,并且i为小于或等于I的自然数。
当在最大局部迭代数量I以内生成满足错误校正码的奇偶校验矩阵的有效码字时,校正子校验部件130可输出相应的有效码字作为经解码码字。
例如,校正子校验部件130可将执行第i局部迭代的结果或从节点处理部件120提供的变量节点向量存储在第二缓冲器132中,并且可对提供的变量节点向量执行校正子校验。例如,可通过校验由以下等式1计算的校正子向量Si的所有标志是否为“0”来执行校正子校验。
[等式1]
校正子向量Si的所有标志均为0的情况可表示已经通过校正子校验。这表示已经在第i局部迭代中成功地执行了错误校正解码,因此校正子校验部件130可输出存储在第二缓冲器132中的变量节点向量Ci作为有效码字,即经解码码字。
同时,在校正子向量Si的标志之中存在除“0”之外的标志的情况可表示校正子校验已失败。这表示在第i局部迭代中错误校正解码已失败,因此当局部迭代的数量落入最大局部迭代数量I以内时,节点处理部件120可执行第i+1局部迭代。此处,校正子向量Si的标志之中、除0之外的标志可对应于未满足的校验节点(UCN)。
当在最大局部迭代数量I以内未生成满足错误校正码的奇偶校验矩阵的有效码字时,校正子校验部件130可将对应于第I局部迭代的校正子向量提供给后处理器200。可在每一个全局迭代中执行对应于第I局部迭代的校正子向量的提供。因此,事实是对应于第I局部迭代的校正子向量也可对应于其中执行了第I局部迭代的第g全局迭代。进一步地,第I局部迭代的错误校正解码的失败也可表示其中执行了第I局部迭代的第g全局迭代的错误校正解码的失败。
后处理器200可支持错误校正解码器100,使得错误校正解码器100能够生成有效码字。当在第g全局迭代中错误校正解码失败时,后处理器200可控制错误校正解码器100,使得错误校正解码器100在最大全局迭代数量G以内执行第g+1全局迭代。也就是说,当使用量化为g+1个电平的读取值的错误校正解码失败时,后处理器200可控制错误校正解码器100,使得错误校正解码器100使用量化为g+2个电平的读取值执行错误校正解码。
在实施例中,当在第g全局迭代中错误校正解码失败时,后处理器200可控制错误校正解码器100,使得跳过第g+1至第G-1全局迭代,并且执行最后的第G全局迭代。例如,当确定即使执行了第g+1至第G-1全局迭代,错误校正解码将成功的可能性也较低时,后处理器200可控制错误校正解码器100,使得跳过第g+1至第G-1全局迭代。对于该操作,后处理器200可具有全局迭代跳过策略,用于决定是否跳过第g+1至第G-1全局迭代。稍后将参照相关附图对全局迭代跳过策略进行描述。
图2是示出图1所示的后处理器200的示图。
参照图2,后处理器200可包括校正子信息管理部件202、全局迭代跳过策略管理部件204、全局迭代控制部件206和读取电平管理部件208。
校正子信息管理部件202可从校正子校验部件130接收校正子向量,并且可管理关于所接收的校正子向量的校正子信息。校正子信息可以是关于与属于每一个全局迭代的局部迭代之中的、最后的局部迭代对应的校正子向量的信息。也就是说,校正子信息管理部件202可接收与属于第g全局迭代的第I局部迭代对应的校正子向量,并且可管理与所接收的校正子向量对应的校正子信息。校正子信息可以是关于包括在相应的校正子向量中的UCN的数量的信息。校正子信息管理部件202可计算包括在所接收的校正子向量中的UCN的数量,并且可对应于相应的全局迭代的索引存储所计算的UCN的数量。可根据预定数量的最近全局迭代来管理校正子信息。例如,可根据三个最近全局迭代中的每一个来管理校正子信息。
全局迭代跳过策略管理部件204可管理全局迭代跳过策略。例如,全局迭代跳过策略可存储在全局迭代跳过策略管理部件204中。例如,全局迭代跳过策略可定义用于决定是否跳过最大全局迭代数量G以内的一些全局迭代的各种条件。全局迭代跳过策略可定义与校正子信息本身及可从校正子信息估计的各种类型的信息相关的条件。例如,全局迭代跳过策略可定义与UCN的数量和UCN的数量变化中的至少一个相关的条件。例如,全局迭代跳过策略可定义与以下中的至少一个相关的条件:对应于当前全局迭代的UCN的数量是否大于阈值、对应于当前全局迭代的UCN的数量是否等于对应于紧邻的在前全局迭代的UCN的数量、以及对应于当前全局迭代的UCN的数量是否大于对应于紧邻的在前全局迭代的UCN的数量。此处,阈值可以是预先设定的值。在实施例中,全局迭代跳过策略管理部件204可改变阈值。例如,全局迭代跳过策略管理部件204可根据矩阵H的行的数量来改变阈值。也就是说,当使用(n,k)码时,全局迭代跳过策略管理部件204可根据n-k的值来改变阈值。例如,全局迭代跳过策略管理部件204可随n-k的值增加而增加阈值。可按比例执行这种增加。
全局迭代控制部件206可基于由校正子信息管理部件202管理的校正子信息和由全局迭代跳过策略管理部件204管理的全局迭代跳过策略二者来控制全局迭代。例如,当在第g全局迭代中错误校正解码失败时,全局迭代控制部件206可从校正子信息管理部件202接收对应于第g全局迭代的校正子信息。在实施例中,全局迭代控制部件206可从全局迭代跳过策略管理部件204接收全局迭代跳过策略。例如,全局迭代控制部件206可在开始第一全局迭代之前接收全局迭代跳过策略。例如,当对应于当前全局迭代的校正子信息满足全局迭代跳过策略中定义的条件时,全局迭代控制部件206可控制错误校正解码器100,使得跳过在中间阶段的全局迭代并执行最后的全局迭代。例如,当决定跳过第g+1至第G-1全局迭代时,全局迭代控制部件206可控制映射器110,使得当分别对应于G个读取电压的所有读取值被提供时,映射器110生成量化为G+1个电平的读取值。例如,当最大全局迭代数量G为7,并且对应于第二全局迭代的校正子信息满足全局迭代跳过策略中定义的条件时,全局迭代控制部件206可控制错误校正解码器100,使得跳过第三至第六全局迭代,并且执行第七全局迭代。也就是说,全局迭代控制部件206可控制映射器110,使得当分别对应于七个读取电压的所有读取值被提供时,映射器110生成量化为八个电平的读取值。这表示映射器110可不生成量化为四个、五个、六个或七个电平的读取值,并且节点处理部件120可不使用量化为四个、五个、六个或七个电平的读取值来执行错误校正解码。
读取电平管理部件208可管理用于获取将在每一个全局迭代中使用的读取值的读取电压的电平。例如,假设错误校正解码器100可基于量化为最多三位的读取值执行错误校正解码,读取电平管理部件208可管理七个读取电压的电平。每当在最大全局迭代数量G以内错误校正解码失败时,读取电平管理部件208可输出请求对应于下一读取电压的读取值的信号。当全局迭代控制部件206决定跳过在中间阶段的全局迭代时,读取电平管理部件208可输出请求与对应于第G全局迭代的各个读取电压对应的读取值的信号。假设最大全局迭代数量G为7,并且作为使用分别与七个读取电压之中的第一和第二读取电压对应的读取值执行第二全局迭代的结果,全局迭代控制部件206决定跳过第三至第六全局迭代。在这种情况下,读取电平管理部件208可输出请求分别对应于第三至第七读取电压的读取值的信号。
图3是用于说明矩阵H的示图。
(n,k)码可由具有(n-k)×n的大小的矩阵H来定义。矩阵H的每一个条目可由0或1表示,并且当包括在矩阵H中的1的数量远小于0的数量时,(n,k)码可被称为(n,k)LDPC码。此处,n和k可以是自然数。在图3中,通过示例的方式示出了定义(7,4)码的矩阵H。
矩阵H的每一个条目可以是具有m×m的大小的子矩阵。此处,m可以是2或更大的整数。例如,矩阵H中的0可指示相应的条目是零矩阵,并且矩阵H中的1可指示相应的条目不是零矩阵。例如,当矩阵H是对应于准循环(QC)-LDPC码的矩阵H时,1可指示相应的条目是循环矩阵。循环矩阵可以是通过将单位矩阵循环地移位预定移位值而获得的矩阵,并且任意一个循环矩阵可具有与另一循环矩阵的移位值不同的移位值。
图4是将图3的矩阵H表示为Tanner图的示图。
(n,k)码可由表示等效二分图的Tanner图来表示。Tanner图可由n-k个校验节点、n个变量节点和边沿来表示。校验节点可对应于矩阵H中的行,变量节点可对应于矩阵H中的列。每一个边沿将一个校验节点联接到一个变量节点,并指示矩阵H中由1表示的条目。
如图4所示,图3所示的(7,4)码的矩阵H可由包括三个校验节点CN1至CN3和七个变量节点VN1至VN7的Tanner图表示。将校验节点CN1至CN3联接到七个变量节点VN1至VN7的实线可指示边沿。
可基于Tanner图上的校验节点CN1至CN3与变量节点VN1至VN7之间的迭代消息传递算法来执行迭代解码,诸如图4中所示。也就是说,在每一个迭代中,在校验节点CN1至CN3与变量节点VN1至VN7之间传送消息的同时可以执行迭代解码。变量节点可使用从联接到该变量节点的校验节点提供的C2V消息来执行错误校正,并且校验节点可使用从联接到该校验节点的变量节点提供的V2C消息来执行校验。为了校验,可使用包含在每一个V2C消息中的符号位。当由任意一个校验节点对包含在从联接到该校验节点的所有变量节点提供的V2C消息中的符号位执行异或(XOR)操作所获得的结果值为0时,可确定相应的校验节点满足。相反,当由任意一个校验节点对包含在从联接到该校验节点的所有变量节点提供的V2C消息中的符号位执行XOR操作所获得的结果值为1时,可确定校验节点不满足,并且相应的校验节点可被称为“UCN”。由校验节点计算的值可与由变量节点向量和矩阵H计算的校正子向量相等。
图5是用于说明使用图3所示的矩阵H计算的校正子向量的示图。
如上所述,可基于变量节点向量Ci的转置向量和矩阵H来生成校正子向量Si,其中变量节点向量Ci是第i局部迭代中的结果值。校正子向量Si中的标志r1、r2和r3对应于图4所示的Tanner图上的各个校验节点CN1至CN3。
校正子向量Si中的所有标志r1、r2和r3表示“0”的情况可表示已经通过校正子检查。这表示在相应的迭代中已成功地执行了错误校正解码。因此,终止对相应码字的迭代解码,并且可输出作为第i局部迭代中的结果值的变量节点向量Ci作为经解码码字。例如,如图5所示,假设变量节点向量Ci为{1 0 1 1 0 1 0},校正子向量Si中的所有标志r1、r2和r3可具有值0。因此,可将向量{1 0 1 1 0 1 0}确定为有效码字,即经解码码字。
校正子向量Si中的所有标志r1、r2和r3中的至少一个不为“0”的情况可表示未通过校正子校验。这表示错误校正解码在相应的迭代中没有成功,因此当迭代数量未达到最大局部迭代数量时可执行下一迭代。此处,非“0”的标志表示未满足的校验节点(UCN)。
图6是用于说明量化为两个电平的读取值的示图。
在图6中,示出了具有第一状态S1和第二状态S2中的任意一个的多个存储器单元的阈值电压分布。
为了获取量化为两个电平的读取值,可将例如第一读取电压Vr1的一个读取电压施加到多个存储器单元。可由“1”指示针对具有低于第一读取电压Vr1的阈值电压的存储器单元的读取值,并且可由“0”指示针对具有高于第一读取电压Vr1的阈值电压的存储器单元的读取值。在图6中,对应于第一读取电压Vr1的第一读取值可被视为量化为两个电平的读取值。
量化为两个电平的读取值可分别被转换为LLR值。在图6中,示出了量化为两个电平的读取值中,“1”被转换为LLR值“-6”并且“0”被转换为LLR值“+5”的示例。
图7是用于说明生成量化为三个电平的读取值的示图。
为了获取量化为三个电平的读取值,除了第一读取电压Vr1之外,可进一步将例如第二读取电压Vr2的另外的读取电压施加到多个存储器单元。
可由“1”指示针对具有低于第二读取电压Vr2的阈值电压的存储器单元的读取值,并且可由“0”指示针对具有高于第二读取电压Vr2的阈值电压的存储器单元的读取值。
为了生成量化为三个电平的读取值,对应于第一读取电压Vr1的第一读取值和对应于第二读取电压Vr2的第二读取值可彼此组合。参照图7,可以看出的是,第一读取值与第二读取值进行组合,因此生成了量化为三个电平的读取值。
量化为三个电平的读取值可分别被转换为LLR值。例如,在图7中,量化为三个电平的读取值中,“11”被转换为LLR值“-5”,“10”被转换为LLR值“-2”,并且“00”被转换为LLR值“+6”。
图8是用于说明生成量化为八个电平的读取值的示图。
为了获取量化为八个电平的读取值,除了第一和第二读取电压Vr1和Vr2之外,可进一步将例如第三至第七读取电压Vr3至Vr7的另外的读取电压施加到多个存储器单元。
可由“1”指示针对具有低于每一个读取电压的阈值电压的存储器单元的读取值,并且可由“0”指示针对具有高于每一个读取电压的阈值电压的存储器单元的读取值。
为了生成量化为八个电平的读取值,对应于第一读取电压Vr1的第一读取值至对应于第七读取电压Vr7的第七读取值可彼此组合。参照图8,可以看出的是,第一至第七读取值彼此组合,因此生成量化为八个电平的读取值。当使用七个读取电压时,每一个读取值可具有7位的长度。
类似于上面参照图6和图7描述的配置,量化为八个电平的读取值可分别被转换为LLR值。
图9是示出根据本公开的实施例的查找表的示图。
可将查找表存储在映射器110、错误校正解码器100或错误校正电路10中。参照图9,查找表可定义分别对应于各个量化电平的LLR值。
例如,当量化电平为2时,量化为两个电平的读取值中的任意一个可被转换为LLR1值,并且剩余的一个可被转换为LLR2值。例如,在对应于一个读取电压的读取值中,“1”可被转换为LLR1值,即“-6”,并且“0”可被转换为LLR2值,即“+5”。
类似地,量化为g+1个量化电平的读取值中的每一个可被转换为对应于各个量化电平的g+1个LLR值中的任意一个。
图10是描述操作图1和图2所示的错误校正电路10的方法的流程图。
在步骤1001中,错误校正电路10可生成量化为g+1个电平的读取值,以便执行第g全局迭代。例如,在第一全局迭代中,对应于一个读取电压的读取值本身可以是量化为两个电平的读取值。在第一全局迭代之后的全局迭代中,分别对应于g个读取电压的读取值可彼此组合,以便生成量化为g+1个电平的读取值。
在步骤1003中,错误校正电路10可将量化为g+1个电平的读取值分别转换为LLR值。可参考诸如图9所示设置的查找表,将量化为g+1个电平的读取值转换为LLR值。
在步骤1005中,错误校正电路10可在最大局部迭代数量I以内执行第i局部迭代。
在步骤1007中,错误校正电路可对作为第i局部迭代中的结果值的变量节点向量执行校正子校验。
在步骤1009中,错误校正电路10可确定在第i局部迭代中是否已经通过校正子校验。也就是说,错误校正电路10可确定在第i局部迭代中错误校正解码是否已成功。当在步骤1009中确定已经通过校正子校验(即,步骤1009中为“是”)时,进程可继续进行到步骤1011,否则进程可继续进行到步骤1021。
在步骤1011中,错误校正电路10可输出已经通过校正子校验的变量节点向量作为经解码码字。
当在步骤1009中确定未通过校正子校验(即,步骤1009中为“否”)时,在步骤1021中,错误校正电路10可确定是否已经执行了与最大局部迭代数量I相等数量的局部迭代。
当在步骤1021中确定未执行与最大局部迭代数量I相等数量的局部迭代(即,步骤1021中为“否”)时,在经过步骤1023之后,可在步骤1005中执行下一局部迭代,即第i+1局部迭代。
当在步骤1021中确定执行了与最大局部迭代数量I相等数量的迭代(即,步骤1021中为“是”)时,进程可继续进行到步骤1031。
在步骤1031中,错误校正电路10可确定是否已经执行了与最大全局迭代数量G相等数量的全局迭代。当在步骤1031中确定已经执行了与最大全局迭代数量G相等数量的全局迭代(即,步骤1031中为“是”)时,进程可继续进行到步骤1033,否则进程可继续进行到步骤1041。
在步骤1033中,因为在最大全局迭代数量G以内未生成有效码字,错误校正电路10可输出指示错误校正解码已失败的失败信号。
同时,当在步骤1031中确定尚未执行与最大全局迭代数量G相等数量的全局迭代(即,步骤1031中为“否”)时,在步骤1041中,错误校正电路10可管理校正子信息。例如,错误校正电路10可计算与属于第g全局迭代的第I局部迭代对应的校正子向量的UCN的数量,并且可根据第g全局迭代来存储所计算的UCN的数量。也就是说,错误校正电路10可管理与属于每一个全局迭代的最后局部迭代对应的校正子信息。
在步骤1043中,错误校正电路可确定校正子信息是否满足全局迭代跳过策略中定义的条件。
当在步骤1043中确定校正子信息不满足全局迭代跳过策略中定义的条件(即,步骤1043中为“否”)时,在经过步骤1051之后,可在步骤1001中执行下一全局迭代,即第g+1全局迭代。
当在步骤1043中确定校正子信息满足全局迭代跳过策略中定义的条件(即,步骤1043中为“是”)时,可在经过步骤1053之后,在步骤1001中执行第G全局迭代。也就是说,当对应于第g全局迭代的校正子信息满足全局迭代跳过策略中定义的条件时,可跳过第g+1至第G-1全局迭代,并且可执行第G全局迭代。例如,假设最大全局迭代数量G为7,并且当前正在执行的全局迭代为第二全局迭代,则可跳过第三至第六全局迭代,并且可执行第七全局迭代。
图11是示出根据本公开的实施例的全局迭代跳过策略的示图。
全局迭代跳过策略可定义与全局迭代中的UCN的数量和UCN的数量变化中的至少一个相关的条件以及对应于该条件的动作。在图11中,通过示例的方式示出了定义三个条件的示例。
第一条件表示当前全局迭代中的UCN的数量大于阈值的情况。也就是说,在当前全局迭代中的UCN的数量过大时,前提是即使执行了在中间阶段的全局迭代,成功地执行错误校正解码的可能性也很低。因此,可执行最后的全局迭代。此处,可实验性地设置阈值。在实施例中,可根据矩阵H的行的数量来设置阈值。也就是说,当使用(n,k)码时,可根据n-k的值来改变阈值。例如,随着n-k的值增加,阈值也可增加。可按比例执行这种增加。
第二条件表示当前全局迭代中的UCN的数量等于紧邻的在前全局迭代中的UCN的数量的情况,第三条件表示当前全局迭代中的UCN的数量大于紧邻的在前全局迭代中的UCN的数量的情况。也就是说,在当前全局迭代中的UCN的数量等于(第二条件)或大于(第三条件)紧邻的在前全局迭代中的UCN的数量时,前提是即使执行了在中间阶段的全局迭代,成功地执行错误校正解码的可能性也很低。因此,为了使用足够量的信息来成功地执行错误校正解码,可执行最后的全局迭代。
图12是示出满足图11所示的第一条件的情况的示图。
在图12中,通过示例的方式描述了对应于第一全局迭代的校正子向量和对应于该校正子向量的UCN的数量。
假设在图11所示的第一条件中阈值为3,则第一条件表示当前全局迭代中的UCN的数量大于3的情况。
同时,图12所示的校正子信息表示当前全局迭代(即,第一全局迭代)中的UCN的数量为4的情况。
因此,假设阈值为3,图12所示的校正子信息满足图11所示的第一条件。因此,可跳过在中间阶段的全局迭代,并且可执行最后的全局迭代。
图13A和图13B是示出分别满足图11所示的第二条件和第三条件的情况的示图。
参照图13A,可以看出的是,当前全局迭代中的UCN的数量(即,4)等于紧邻的在前全局迭代中的UCN的数量(即,4)。
参照图13B,可以看出的是,当前全局迭代中的UCN的数量(即,4)大于紧邻的在前全局迭代中的UCN的数量(即,3)。
也就是说,图13A所示的校正子信息满足图11所示的第二条件,并且图13B所示的校正子信息满足图11所示的第三条件。
因此,可跳过在中间阶段的全局迭代,并且可执行最后的全局迭代。
图14是示出根据本公开的实施例的存储器系统2000的示图。
参照图14,存储器系统2000可包括存储数据的存储器装置2200和在主机1000的控制下控制存储器装置2200的存储器控制器2100。
主机1000能够使用诸如以下的接口协议与存储器系统2000通信:高速外围部件互连(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)或串列SCSI(SAS)。主机1000与存储器系统2000之间使用的接口协议不限于上述示例,并且可使用诸如通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)或电子集成驱动器(IDE)接口协议的接口协议。
存储器控制器2100可控制存储器系统2000的整体操作,并且可控制主机1000与存储器装置2200之间的数据交换。例如,存储器控制器2100可转换提供的信息并存储和输出所转换的信息,使得在主机1000和存储器装置2200之间可以传输/接收命令、地址和数据。例如,在编程操作期间,存储器控制器2100可将命令、地址、数据等传输到存储器装置2200。
存储器控制器2100可包括主机接口2110、中央处理单元(CPU)2120、存储器接口2130、缓冲存储器2140、错误校正电路2150及内部存储器2160。可由CPU 2120控制主机接口2110、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160。
主机接口2110可使用通信协议来执行与主机1000的数据交换。
CPU 2120可执行各种类型的计算或生成命令和地址,以便控制存储器装置2200。例如,CPU 2120可生成编程操作、读取操作、擦除操作、数据压缩操作和回拷(copy-back)操作所需的各种命令。
存储器接口2130可使用通信协议与存储器装置2200通信。
当存储器控制器2100控制存储器装置2200时,缓冲存储器2140可临时存储数据。例如,在完成编程操作之前,可将从主机提供的数据临时存储在缓冲存储器2140中。进一步地,在读取操作期间,从存储器装置2200读取的数据也可被临时存储在缓冲存储器2140中。
可对应于图1和图2所示的错误校正电路10的错误校正电路2150可在编程操作或读取操作期间执行用于错误校正的编码和解码。错误校正电路2150可包括错误校正解码器2152(可对应于图1和图2所示的错误校正解码器100)和后处理器2154(可对应于图1和图2所示的后处理器200)。
错误校正解码器2152可对来自存储器装置2200的对应于码字的读取数据执行错误校正解码。当在用于错误校正的迭代解码进程中检测到错误时,错误校正解码器2152可使用矩阵H来校正错误。例如,错误校正解码器2152可基于矩阵H计算对应于读取数据的校正子,并且可基于所计算的校正子来确定读取数据中是否包含错误。当包含在读取数据中的错误可校正时,错误校正解码器2152可校正错误并输出错误校正后的数据。当包含在读取数据中的错误不可校正时,错误校正解码器2152可向CPU 2120报告错误校正解码失败。
错误校正解码器2152可包括映射器2152a(可对应于图1和图2所示的映射器110)、节点处理部件2152b(可对应于图1和图2所示的节点处理部件120)和校正子校验部件2152c(可对应于图1和图2所示的校正子校验部件130)。错误校正解码器2152可执行与上面参照图1和图2描述的错误校正解码器100相同的操作。也就是说,图14所示的映射器2152a、节点处理部件2152b和校正子校验部件2152c可执行分别对应于图1和图2所示的映射器110、节点处理部件120和校正子校验部件130的操作。
后处理器2154可包括校正子信息管理部件2154a(可对应于图2所示的校正子信息管理部件202)、全局迭代跳过策略管理部件2154b(可对应于图2所示的全局迭代跳过策略管理部件204)、全局迭代控制部件2154c(可对应于图2所示的全局迭代控制部件206)和读取电平管理部件2154d(可对应于图2所示的读取电平管理部件208)。后处理器2154可执行与上面参照图2描述的后处理器200相同的操作。也就是说,图14所示的校正子信息管理部件2154a、全局迭代跳过策略管理部件2154b、全局迭代控制部件2154c和读取电平管理部件2154d可执行分别对应于图2所示的校正子信息管理部件202、全局迭代跳过策略管理部件204、全局迭代控制部件206和读取电平管理部件208的操作。
当决定跳过第g+1至第G-1全局迭代时,全局迭代控制部件2154c可控制映射器2152a,使得在分别对应于G个读取电压的所有读取值被提供时映射器2152a生成量化为G+1个电平的读取值。例如,当最大全局迭代数量G为7,并且对应于第二全局迭代的校正子信息满足全局迭代跳过策略中定义的条件时,全局迭代控制部件2154c可控制映射器2152a,使得跳过第三至第六全局迭代,并且执行第七全局迭代。也就是说,全局迭代控制部件2154c可控制映射器2152a,使得当分别对应于七个读取电压的所有读取值被提供时,映射器2152a生成量化为八个电平的读取值。
当在第g全局迭代中错误校正解码失败时,读取电平管理部件2154d可请求CPU2120来执行对应于第g+1读取电压的读取操作,从而提供将用于第g+1全局迭代的读取值。因此,CPU 2120可将命令和地址传输到存储器装置2200,使得可执行对应于第g+1读取电压的读取操作。
在实施例中,当决定跳过第g+1至第G-1全局迭代时,读取电平管理部件2154d可在全局迭代控制部件2154c的控制下请求CPU2120来执行与第g+1读取电压至第G读取电压对应的读取操作。因此,CPU 2120可将命令和地址传输到存储器装置2200,使得可执行与第g+1读取电压至第G读取电压对应的读取操作。
内部存储器2160可用作存储存储器控制器2100的操作所需的各种类型信息的存储单元。内部存储器2160可存储多个表。例如,内部存储器2160可存储用于在逻辑地址与物理地址之间进行映射的映射表。
存储器装置2200可在存储器控制器2100的控制下执行编程操作、读取操作、擦除操作、数据压缩操作和回拷操作。存储器装置2200可被实施为存储的数据在电源中断时丢失的易失性存储器装置,或者被实施为存储的数据即使在电源中断时也被保持的非易失性存储器装置。
图15是示出根据本公开的实施例的存储器装置2200的示图。图15所示的存储器装置可对应于图14的存储器装置。
存储器装置2200可包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可包括电压生成电路2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232和电流感测电路2234。
控制逻辑2210可在图14的存储器控制器2100的控制下控制外围电路2220。
控制逻辑2210可响应于通过输入/输出电路2226从存储器控制器2100提供的命令CMD和地址ADD来控制外围电路2220。例如,控制逻辑2210可响应于命令CMD和地址ADD,输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS、使能位VRY_BIT<#>和列地址CADD。控制逻辑2210可响应于从电流感测电路2234提供的通过信号PASS或失败信号FAIL来确定验证操作是已通过还是已失败。
外围电路2220可执行将数据存储在存储器单元阵列2240中的编程操作、输出存储在存储器单元阵列2240中的数据的读取操作以及擦除存储在存储器单元阵列2240中的数据的擦除操作。
电压生成电路2222可响应于从控制逻辑2210提供的操作信号OP_CMD而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,电压生成电路2222可向行解码器2224传输编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等。
行解码器2224可响应于从控制逻辑2210提供的行地址RADD,将操作电压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)结构,并且可同等地配置。
图16是示出图15所示的多个存储块BLK1至BLKi之中的存储块BLKi的示图。存储块BLKi可对应于存储块BLK1至BLKi之中的任意一个存储块。
存储器单元阵列可包括多个存储块,并且为便于描述,在图16中示出了多个存储块中的任意一个存储块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中。
图17是示出具有3D结构的存储块BLKi的示例的示图。存储块BLKi可对应于图15所示的存储块BLK1至BLKi之中的任意一个存储块。
存储器单元阵列2240可包括多个存储块BLK1至BLKi。当通过示例的方式描述第一存储块BLK1时,第一存储块BLK1可包括多个串ST11至ST1m和ST21至ST2m。在实施例中,串ST11至ST1m和ST21至ST2m中的每一个可形成为“U”形。在第一存储块BLK1中,可在行方向(例如,X方向)上布置m个串。虽然在图17中,示出了两个串被布置在列方向(例如,Y方向)上,但给出该实施例是为了便于描述,并且在其它实施例中,在列方向(例如,Y方向)上可以布置三个或更多个串。
多个串ST11至ST1m和ST21至ST2m中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
源极选择晶体管SST和漏极选择晶体管DST以及存储器单元MC1至MCn可具有相似的结构。例如,源极和漏极选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧道绝缘层、电荷撷取层和阻挡绝缘层。例如,可在每一个串中设置用于提供沟道层的柱(pillar)。例如,可在每一个串中设置用于提供沟道层、隧道绝缘层、电荷撷取层和阻挡绝缘层中的至少一个的柱。
每一个串的源极选择晶体管SST可联接在源极线SL与存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的串的源极选择晶体管可联接到在行方向上延伸的源极选择线,并且布置在不同行中的串的源极选择晶体管可联接到不同的源极选择线。在图17中,第一行中的串ST11至ST1m的源极选择晶体管可联接到第一源极选择线SSL1。第二行中的串ST21至ST2m的源极选择晶体管可联接到第二源极选择线SSL2。
在另一实施例中,串ST11至ST1m和ST21至ST2m的源极选择晶体管可共同联接到一个源极选择线。
每一个串中的第一至第n存储器单元MC1至MCn可联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp可被顺序地布置在垂直方向(例如,Z方向)上,并且可串联联接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn可被顺序地布置在垂直方向(例如,Z方向)上,并且可串联联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn可通过管道晶体管PT而彼此联接。每一个串中的第一至第n存储器单元MC1至MCn的栅极可分别联接到第一至第n字线WL1至WLn。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。当设置虚设存储器单元时,可稳定地控制相应串的电压或电流。每一个串的管道晶体管PT的栅极可联接到管线PL。
每一个串的漏极选择晶体管DST可联接在相应位线和存储器单元MCp+1至MCn之间。布置在行方向上的串可联接到在行方向上延伸的相应漏极选择线。第一行中的串ST11至ST1m的漏极选择晶体管可联接到漏极选择线DSL1。第二行中的串ST21至ST2m的漏极选择晶体管可联接到第二漏极选择线DSL2。
布置在列方向上的串可联接到在列方向上延伸的位线。在图17中,第一列中的串ST11和ST21可联接到第一位线BL1。第m列中的串ST1m和ST2m可联接到第m位线BLm。
在布置在行方向上的串之中,联接到相同字线的存储器单元可构成一个页面。例如,第一行中的串ST11至ST1m之中的、联接到第一字线WL1的存储器单元可构成一个页面。在第二行中的串ST21至ST2m之中,联接到第一字线WL1的存储器单元可构成一个另外的页面。可通过选择漏极选择线DSL1和DSL2中的任意一个来选择布置在一个行的方向上的串。可通过选择字线WL1至WLn中的任意一个来从所选择的串中选择一个页面。
图18是示出具有3D结构的存储块BLKi的示例的示图。存储块BLKi可对应于图15所示的存储块BLK1至BLKi之中的任意一个存储块。
存储器单元阵列2240包括多个存储块BLK1至BLKi。当通过示例的方式描述第一存储块BLK1时,第一存储块BLK1可包括多个串ST11'至ST1m'和ST21'至ST2m'。串ST11'至ST1m'和ST21'至ST2m'中的每一个可沿垂直方向(例如,Z方向)延伸。在存储块BLKi中,可在行方向(例如,X方向)上布置m个串。虽然在图18中,示出了两个串被布置在列方向(例如,Y方向)上,但给出该实施例是为了便于描述,并且在其它实施例中,在列方向(例如,Y方向)上可以布置三个或更多个串。
串ST11'至ST1m'和ST21'至ST2m'中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每一个串的源极选择晶体管SST可联接在源极线SL与存储器单元MC1至MCn之间。布置在相同行中的串的源极选择晶体管可联接到相同的源极选择线。布置在第一行中的串ST11'至ST1m'的源极选择晶体管可联接到第一源极选择线SSL1。布置在第二行中的串ST21'至ST2m'的源极选择晶体管可联接到第二源极选择线SSL2。在实施例中,串ST11'至ST1m'和ST21'至ST2m'的源极选择晶体管可共同联接到一个源极选择线。
每一个串中的第一至第n存储器单元MC1至MCn可串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极可分别联接到第一至第n字线WL1至WLn。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。当设置虚设存储器单元时,可稳定地控制相应串的电压或电流。因此,可提高存储在第一存储块BLK1中的数据的可靠性。
每一个串的漏极选择晶体管DST可联接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的串的漏极选择晶体管DST可联接到沿行方向延伸的漏极选择线。第一行中的串ST11'至ST1m'的漏极选择晶体管DST可联接到第一漏极选择线DSL1。第二行中的串ST21'至ST2m'的漏极选择晶体管DST可联接到第二漏极选择线DSL2。
也就是说,除从每一个串中排除管道晶体管PT以外,图18的第一存储块BLK1可具有与图17的第一存储块BLK1的电路相似的电路。
图19是示出包括图14的存储器控制器的存储器系统的实施例的示图。
参照图19,存储器系统30000可被实施为蜂窝电话、智能电话、平板电脑、个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器系统30000可包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。
存储器控制器2100可在处理器3100的控制下控制存储器装置2200的数据访问操作,例如编程操作、擦除操作或读取操作。
被编程在存储器装置2200中的数据可在存储器控制器2100的控制下通过显示器3200输出。
无线电收发器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是示出包括图14的存储器控制器的存储器系统的实施例的示图。
参照图20,存储器系统40000可被实现在个人计算机、平板电脑、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器中。
存储器系统40000可包括存储器装置2200和能够控制存储器装置2200的数据处理操作的存储器控制器2100。
处理器4100可根据从输入装置4200输入的数据通过显示器4300输出存储在存储器装置2200中的数据。例如,输入装置4200可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。
处理器4100可控制存储器系统40000的整体操作,并且控制存储器控制器2100的操作。在实施例中,能够控制存储器装置2200的操作的存储器控制器2100可被实施为处理器4100的一部分或与处理器4100分开设置的芯片。
图21是示出包括图14的存储器控制器的存储器系统的实施例的示图。
参照图21,存储器系统50000可被实现在例如以下的图像处理装置中:数码相机、设置有数码相机的便携式电话、设置有数码相机的智能电话或设置有数码相机的平板电脑。
存储器系统50000可包括存储器装置2200和存储器控制器2100,存储器控制器2100能够控制存储器装置2200的数据处理操作,例如编程操作、擦除操作或读取操作。
存储器系统50000的图像传感器5200可将光学图像转换为数字信号。转换后的数字信号可被传输到处理器5100或存储器控制器2100。在处理器5100的控制下,转换后的数字信号可通过显示器5300输出,或通过存储器控制器2100而被存储在存储器装置2200中。存储在存储器装置2200中的数据可在处理器5100或存储器控制器2100的控制下通过显示器5300输出。
在实施例中,能够控制存储器装置2200的操作的存储器控制器2100可被实施为处理器5100的一部分或与处理器5100分开设置的芯片。
图22是示出包括图14的存储器控制器的存储器系统的实施例的示图。
参照图22,存储器系统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的数据通信。
根据本公开,可减少错误校正解码所需的时间。
虽然为了说明的目的已公开了本公开的示例性实施例,但本领域技术人员将理解的是,各种修改、添加和替换是可行的。因此,本公开的范围必须由所附权利要求和权利要求的等同物来限定,而非由之前的描述来限定。
Claims (18)
1.一种错误校正电路,用于在最大全局迭代数量G以内执行错误校正解码,其中G为自然数,所述错误校正电路包括:
映射器,通过使用分别对应于g个读取电压的读取值来生成待在第g全局迭代中使用的量化为g+1个电平的读取值,其中g为小于或等于G的自然数;
节点处理部件,通过使用所述量化为g+1个电平的读取值,在所述第g全局迭代期间执行错误校正解码;
校正子信息管理部件,管理对应于所述第g全局迭代的校正子信息;以及
全局迭代控制部件,当在所述第g全局迭代中错误校正解码失败时,确定对应于所述第g全局迭代的所述校正子信息是否满足在全局迭代跳过策略中定义的条件,并且基于所述确定的结果来决定是否跳过第g+1至第G-1全局迭代,
其中所述全局迭代跳过策略定义与以下中的至少一个相关的条件:
对应于当前全局迭代的未满足的校验节点即UCN的数量是否等于对应于紧邻的在前全局迭代的UCN的数量,以及
对应于所述当前全局迭代的UCN的数量是否大于对应于紧邻的在前全局迭代的UCN的数量。
2.根据权利要求1所述的错误校正电路,其中所述全局迭代控制部件在对应于所述第g全局迭代的所述校正子信息满足所述条件时,决定跳过所述第g+1至第G-1全局迭代。
3.根据权利要求2所述的错误校正电路,其中所述全局迭代控制部件在决定跳过所述第g+1至第G-1全局迭代时,控制所述映射器以使所述映射器在分别对应于G个读取电压的所有读取值被提供时生成量化为G+1个电平的读取值。
4.根据权利要求1所述的错误校正电路,其中所述节点处理部件在所述第g全局迭代期间在最大局部迭代数量I以内执行多个局部迭代,其中I为自然数。
5.根据权利要求4所述的错误校正电路,其中:
所述校正子信息管理部件存储与在属于所述第g全局迭代的第I局部迭代中生成的校正子向量相关的信息,作为对应于所述第g全局迭代的所述校正子信息,并且
所述全局迭代控制部件当在所述第g全局迭代中错误校正解码失败时,从所述校正子信息管理部件接收对应于所述第g全局迭代的校正子信息。
6.根据权利要求1所述的错误校正电路,其中所述全局迭代控制部件从存储所述全局迭代跳过策略的全局迭代跳过策略管理部件接收所述全局迭代跳过策略。
7.根据权利要求6所述的错误校正电路,其中所述全局迭代跳过策略进一步定义与对应于当前全局迭代的UCN的数量是否大于阈值相关的条件。
8.根据权利要求7所述的错误校正电路,其中所述全局迭代跳过策略管理部件根据用于所述错误校正解码的奇偶校验矩阵中的行的数量来改变所述阈值。
9.根据权利要求1所述的错误校正电路,其中:
所述映射器将所述量化为g+1个电平的读取值分别转换为对数似然比值,即LLR值,并且
所述节点处理部件包括:
变量节点更新模块,使用从所述映射器提供的LLR值来初始化变量节点,并且基于从校验节点提供的校验到变量消息即C2V消息来更新所述变量节点;以及
校验节点更新模块,基于从所述变量节点提供的变量到校验消息即V2C消息来更新所述校验节点。
10.一种操作错误校正电路的方法,其中所述错误校正电路在最大全局迭代数量G以内执行错误校正解码,其中G为自然数,所述方法包括:
通过使用分别对应于g个读取电压的读取值来生成待在第g全局迭代中使用的量化为g+1个电平的读取值,其中g为小于或等于G的自然数;
通过使用所述量化为g+1个电平的读取值,在所述第g全局迭代期间执行错误校正解码;
管理对应于所述第g全局迭代的校正子信息;
当在所述第g全局迭代中错误校正解码失败时,确定对应于所述第g全局迭代的所述校正子信息是否满足全局迭代跳过策略中定义的条件;并且
根据所述校正子信息是否满足所述条件,决定是否跳过第g+1至第G-1全局迭代,
其中所述全局迭代跳过策略定义与以下中的至少一个相关的条件:
对应于当前全局迭代的未满足的校验节点即UCN的数量是否等于对应于紧邻的在前全局迭代的UCN的数量,以及
对应于所述当前全局迭代的UCN的数量是否大于对应于紧邻的在前全局迭代的UCN的数量。
11.根据权利要求10所述的方法,进一步包括:
当对应于所述第g全局迭代的所述校正子信息满足所述条件时,跳过所述第g+1至第G-1全局迭代,并且执行第G全局迭代。
12.根据权利要求11所述的方法,进一步包括:
当决定跳过所述第g+1至第G-1全局迭代时,在分别对应于G个读取电压的所有读取值被提供时生成量化为G+1个电平的读取值。
13.根据权利要求10所述的方法,其中所述第g全局迭代包括在最大局部迭代数量I以内的使用迭代解码方案来执行错误校正解码的多个局部迭代,其中I为自然数。
14.根据权利要求13所述的方法,其中所述校正子信息是与在第I局部迭代中生成的校正子向量相关的信息。
15.根据权利要求10所述的方法,其中所述全局迭代跳过策略进一步定义与对应于当前全局迭代的UCN的数量是否大于阈值相关的条件。
16.根据权利要求15所述的方法,其中当基于(n,k)码执行错误校正解码时,根据n-k的值来设置所述阈值。
17.根据权利要求10所述的方法,其中所述第g全局迭代包括:
将所述量化为g+1个电平的读取值分别转换为对数似然比值,即LLR值,并且
基于所转换的LLR值来执行错误校正解码。
18.根据权利要求10所述的方法,其中执行错误校正解码包括基于低密度奇偶校验码即LDPC码来执行错误校正解码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0050213 | 2018-04-30 | ||
KR1020180050213A KR102540772B1 (ko) | 2018-04-30 | 2018-04-30 | 에러 정정 회로 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110415753A CN110415753A (zh) | 2019-11-05 |
CN110415753B true CN110415753B (zh) | 2023-06-13 |
Family
ID=68291333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910024629.2A Active CN110415753B (zh) | 2018-04-30 | 2019-01-10 | 错误校正电路及操作该错误校正电路的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10911068B2 (zh) |
KR (1) | KR102540772B1 (zh) |
CN (1) | CN110415753B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102582326B1 (ko) * | 2018-09-20 | 2023-09-26 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 이의 동작 방법 |
KR20210064723A (ko) * | 2019-11-26 | 2021-06-03 | 에스케이하이닉스 주식회사 | 전자 장치 및 이의 동작 방법 |
CN111446970A (zh) * | 2020-02-11 | 2020-07-24 | 上海威固信息技术股份有限公司 | 一种低密度奇偶校验码译码软判决信息预处理方法 |
KR20210158223A (ko) * | 2020-06-23 | 2021-12-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2447204C (en) * | 2002-11-29 | 2010-03-23 | Memory Management Services Ltd. | Error correction scheme for memory |
JP2005228039A (ja) * | 2004-02-13 | 2005-08-25 | Toshiba Corp | 半導体装置及びそのメモリテスト方法 |
US8499226B2 (en) * | 2010-06-29 | 2013-07-30 | Lsi Corporation | Multi-mode layered decoding |
US8832532B2 (en) * | 2012-06-20 | 2014-09-09 | Lsi Corporation | Dynamically controlling the number of local iterations in an iterative decoder |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9454414B2 (en) * | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
TWI521529B (zh) * | 2014-04-15 | 2016-02-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20160102738A (ko) | 2015-02-23 | 2016-08-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
CN106997777B (zh) * | 2015-09-18 | 2021-01-05 | 爱思开海力士有限公司 | 具有改进的硬解码吞吐量的vss ldpc解码器 |
-
2018
- 2018-04-30 KR KR1020180050213A patent/KR102540772B1/ko active IP Right Grant
- 2018-12-14 US US16/220,681 patent/US10911068B2/en active Active
-
2019
- 2019-01-10 CN CN201910024629.2A patent/CN110415753B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20190334549A1 (en) | 2019-10-31 |
US10911068B2 (en) | 2021-02-02 |
KR20190125866A (ko) | 2019-11-07 |
CN110415753A (zh) | 2019-11-05 |
KR102540772B1 (ko) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US11050438B2 (en) | Memory controller | |
CN110415753B (zh) | 错误校正电路及操作该错误校正电路的方法 | |
CN110673979B (zh) | 存储器控制器及其操作方法 | |
US11031952B2 (en) | Error correction decoder and memory system having the same | |
US11128315B2 (en) | Error correction decoder | |
CN111726121B (zh) | 错误校正解码器和具有该错误校正解码器的存储器系统 | |
US11239865B2 (en) | Error correction circuit and operating method thereof | |
US11095316B2 (en) | Controller and operating method for performing read operation to read data in memory device | |
US10931308B2 (en) | Error correction circuit and method of operating the same | |
US11804857B2 (en) | Electronic device | |
CN110830046B (zh) | 纠错电路及其操作方法 | |
CN113098527A (zh) | 电子装置及其操作方法 | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device |
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 |