CN110391816A - 错误校正电路及包括错误校正电路的存储器系统 - Google Patents
错误校正电路及包括错误校正电路的存储器系统 Download PDFInfo
- Publication number
- CN110391816A CN110391816A CN201811463020.7A CN201811463020A CN110391816A CN 110391816 A CN110391816 A CN 110391816A CN 201811463020 A CN201811463020 A CN 201811463020A CN 110391816 A CN110391816 A CN 110391816A
- Authority
- CN
- China
- Prior art keywords
- node unit
- error
- check
- decoder
- parity
- 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.)
- Granted
Links
Classifications
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
-
- 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
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- 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
-
- 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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1131—Scheduling of bit node or check node processing
-
- 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1151—Algebraically constructed LDPC codes, e.g. LDPC codes derived from Euclidean geometries [EG-LDPC 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/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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- 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
- G11C2029/0409—Online test
-
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Discrete Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种错误校正电路。该错误校正电路包括:解码器,其包括与低密度奇偶校验(LDPC)方案的奇偶校验矩阵相对应的多个校验节点单元和变量节点单元,并且被配置成通过对码字进行解码来生成解码数据;校验子校验电路,其被配置成基于奇偶校验矩阵来计算码字的参考值,并且生成与参考值相对应的解码器运算控制信号;以及控制电路,其被配置成响应于解码器运算控制信号,控制是否使解码器的多个校验节点单元和变量节点单元中的每一个运算,其中解码器基于在多个校验节点单元和变量节点单元之中的、根据控制电路的控制而运算的校验节点单元和变量节点单元来对码字进行解码。
Description
相关申请的交叉引用
本申请要求于2018年4月18日提交的申请号为10-2018-0045210的韩国申请的优先权,其全部公开内容通过引用整体并入本文。
技术领域
本发明的各种实施例总体涉及一种错误校正电路。更特别地,实施例涉及一种基于低密度奇偶校验(LDPC)码来操作的错误校正电路。
背景技术
LDPC码可以被表征为相应的奇偶校验矩阵主要包括0和少量的非零值(例如,1)的错误校正码。LDPC码不仅可以用于校正在有线/无线通信系统之中传输的信号中的错误,而且还可以用于校正从存储器系统读出的数据中的错误。
存储器系统可以被配置成响应于从主机装置接收的写入请求,存储从主机装置提供的数据。而且,存储器系统可以被配置成响应于从主机装置接收的读取请求,将存储的数据提供至主机装置。主机装置可以是能够处理数据的电子装置并且可以包括计算机、数码相机或移动电话。存储器系统可以通过内置在主机装置中来操作,或者可以通过以单独的形式制造并且联接至主机装置来操作。
发明内容
在实施例中,一种错误校正电路可以包括:解码器,其包括与低密度奇偶校验(LDPC)方案的奇偶校验矩阵相对应的多个校验节点单元和变量节点单元,并且被配置成通过对码字进行解码来生成解码数据;校验子(syndrome)校验电路,其被配置成基于奇偶校验矩阵来计算码字的参考值,并且生成与参考值相对应的解码器运算控制信号;和控制电路,其被配置成响应于解码器运算控制信号,控制是否使解码器的多个校验节点单元和变量节点单元中的每一个运算,其中解码器基于在多个校验节点单元和变量节点单元之中的、根据控制电路的控制而运算的校验节点单元和变量节点单元来对码字进行解码。
在实施例中,一种存储器系统可以包括:存储器装置,其包括存储码字的存储器区域,并其被配置成从存储器区域读取码字并将码字输出到通道;和错误校正电路,其被配置成对通过通道传输的码字执行错误校正操作,其中错误校正电路包括:解码器,其包括与低密度奇偶校验(LDPC)方案的奇偶校验矩阵相对应的多个校验节点单元和多个变量节点单元;和电力控制器,其被配置成根据电力控制信息来切断供应至校验节点单元中的一个或多个第一校验节点单元的电力,其中解码器通过使用供应电力的变量节点单元和校验节点单元来对码字执行解码运算。
在实施例中,一种错误校正电路可以包括:存储装置,其被配置成预先存储信息,该信息表示待被断电的校验节点单元的一个或多个组合,其中组合分别对应于非零的参考数量;解码器,其被配置成对码字迭代地执行基于低密度奇偶校验(LDPC)的解码运算预定次数,直到解码运算成功,并且被配置成,在当前迭代的解码运算失败时输出非零数量的信息作为当前迭代中校验子校验的结果,其中在每次迭代时,通过多个校验节点单元和变量节点单元之中通电的校验节点单元和变量节点单元来执行解码运算;选择器,其被配置成根据非零数量在组合之中选择一个;和电力控制器,其被配置成切断供应至所选择组合的电力以用于后续迭代的解码运算,其中基于LDPC方案的奇偶校验矩阵来执行解码运算,并且奇偶校验矩阵的行和列对应于校验节点单元和变量节点单元。
附图说明
图1是示出根据实施例的错误校正电路的框图。
图2是示意性示出图1所示的奇偶校验矩阵的结构以及应用奇偶校验矩阵的解码器的结构的示图。
图3是描述根据实施例的图1所示的校验子校验电路计算参考值的方法的示图。
图4A和图4B是描述根据实施例的根据参考值控制校验节点单元的电力供应的方法的示图。
图5是描述根据实施例的从根据参考值选择的子矩阵序列中选择奇偶校验子矩阵的方法的示图。
图6是示出根据实施例的包括循环置换矩阵的奇偶校验矩阵的结构的示图。
图7是描述根据实施例的控制校验节点单元和变量节点单元的电力供应的方法的示图。
图8是示出根据实施例的存储器系统的框图。
图9是示出包括根据实施例的固态硬盘(SSD)的数据处理系统的示图。
图10是示出包括根据实施例的存储器系统的数据处理系统的示图。
图11是示出包括根据实施例的存储器系统的数据处理系统的示图。
图12是示出包括根据实施例的存储器系统的网络系统的示例的示图。
图13是示出包括在根据实施例的存储器系统中的非易失性存储器装置的示例的框图。
具体实施方式
在下文中,将通过本发明的示例性实施例参照附图来描述根据本发明的数据存储装置及其操作方法。然而,本发明可以不同的形式实现,并且不应该被解释为限于本文阐述的实施例。相反,提供这些实施例以详细描述本发明到本发明所属领域的技术人员能够实施本发明的技术构思的程度。
注意的是,对“实施例”的参考不一定意味着仅针对一个实施例,并且对“实施例”的不同参考不一定是相同的实施例。
将理解的是,本发明的实施例不限于附图中所示的细节,并且附图不一定按比例绘制,在一些情况下,比例可能被夸大以便更清楚地描绘本发明的某些特征。虽然使用了特定术语,但是将理解的是,使用的术语仅用于描述特定实施例的目的,并不旨在限制本发明的范围。
将进一步理解的是,当元件被称为“连接”或“联接”至另一元件时,它可以直接在另一元件上、连接或联接至另一元件,或者可以存在一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,它可以是在两个元件之间的唯一元件或也可以存在一个或多个中间元件。
当在本文中与项目列表一起使用时,短语“......和......中的至少一个”表示来自列表中的单个项目或列表中项目的任意组合。例如,“A、B和C中的至少一个”表示仅A、或仅B、或仅C、或A、B和C的任意组合。
如本文所使用的术语“或”表示两种或更多种替代物中的一种,但不是两者,也不是两者的任何组合。
如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,并且反之亦然。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“包括有”、“包含有”等指定所述元件的存在,而不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括相关所列项目中一个或多个的任意或所有组合。
除非另外定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员鉴于本公开通常理解的含义相同的含义。将进一步理解的是,除非本文明确地定义,否则诸如在常用词典中定义的那些术语的术语应该被解释为具有与在本公开和相关领域背景下的含义一致的含义,并且将不会以理想化或过于形式化的意义来理解。
在下列描述中,阐述了许多具体细节以便提供对本发明的透彻理解。可以在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,没有详细描述众所周知的进程结构和/或进程,以免不必要地模糊本发明。
还注意的是,在一些情况下,如对于相关领域的技术人员将显而易见的,除非另有明确说明,否则可以单独使用或结合另一实施例的其它元件使用,元件也被称为特征。
在下文中,将参照附图详细描述本发明的各种实施例。
图1是示出根据实施例的错误校正电路10的框图。
错误校正电路10可以包括解码器11、校验子校验电路12和控制电路13。解码器11可以包括低密度奇偶校验(LDPC)方案的(参照图2更详细地描述的)奇偶校验矩阵和与奇偶校验矩阵相对应的多个校验节点单元和变量节点单元,并且可以被配置成通过对码字进行解码来生成解码数据。校验子校验电路12可以被配置成基于奇偶校验矩阵来计算码字的参考值,并且生成与参考值相对应的解码器运算控制信号。控制电路13可以被配置成响应于解码器运算控制信号,控制是否使解码器11的多个校验节点单元和变量节点单元中的每一个运算。解码器11可以通过多个校验节点单元和变量节点单元之中的、根据控制电路13的控制运算的校验节点单元和变量节点单元来解码码字。
根据实施例,控制电路13可以控制是否使多个校验节点单元和变量节点单元运算,使得运算的校验节点单元的数量与参考值成比例。
根据实施例,校验子校验电路12可以通过将奇偶校验矩阵与码字的列矩阵相乘来计算校验子矩阵,并且可以计算与校验子矩阵中的非零元素的数量相对应的参考值。
根据实施例,当参考值超过阈值时,控制电路13可以控制多个变量节点单元以及校验节点单元全部运算。
根据实施例,校验子校验电路12可以基于奇偶校验矩阵来计算当前参考值,该当前参考值针对解码码字的解码结果。
根据实施例,解码器11可以通过对与当前参考值相对应的解码结果进行重新解码来生成解码数据。
根据实施例,在重新解码中,控制电路13可以根据当前参考值来切断供应至多个校验节点单元之中的一个或多个校验节点单元的电力。
根据实施例,校验子校验电路12可以根据当前参考值来生成解码器运算控制信号以仅使多个校验节点单元中的一些校验节点单元运算,使得解码器11使用奇偶校验子矩阵,该奇偶校验子矩阵是移除一行或多行的奇偶校验矩阵。
根据实施例,控制电路13可以控制多个校验节点单元的运算,使得顺序使用奇偶校验子矩阵,以便在每次重新解码时减小当前参考值。
根据实施例,控制电路13可以控制多个校验节点单元的运算,使得顺序使用的奇偶校验子矩阵的行数量按使用顺序具有升序。
根据实施例,控制电路13可以控制多个校验节点单元的运算,使得顺序使用的奇偶校验子矩阵包括相同数量的行。
根据实施例,奇偶校验矩阵可以包括多个行组,每个行组包括一个或多个循环置换矩阵的行,并且校验子校验电路12可以生成解码器运算控制信号,从而使用奇偶校验子矩阵,当从奇偶校验矩阵的行组中移除至少一个行组时获得该奇偶校验子矩阵。
根据实施例,当奇偶校验矩阵的行分别对应于多个校验节点单元并且奇偶校验矩阵的列分别对应于多个变量节点单元时,控制电路13可以根据参考值来控制是否使与行相对应的校验节点单元和与列相对应的变量节点单元运算,其中行和列构成奇偶校验子矩阵,当从子矩阵额外移除一列或多列时可以获得该奇偶校验子矩阵。当从奇偶校验子矩阵中移除一行或多行时可以获得该子矩阵。
根据实施例,从子矩阵额外移除以构成奇偶校验子矩阵的一列或多列可以由0构成。
根据实施例,从子矩阵额外移除以构成奇偶校验子矩阵的一列或多列可以是构成奇偶校验矩阵的信息矩阵和奇偶矩阵之中的奇偶矩阵。
详细地,参照图1,错误校正电路10可以接收码字,对码字执行错误校正操作,并且输出校正错误的信息,即解码数据。码字可以包括执行错误校正操作所需的数据,例如奇偶数据,以及原始信息,诸如用户数据。因此,错误校正电路10可以基于包括在码字中的奇偶数据对包括在码字中的原始信息执行错误校正操作,并且输出校正错误的信息。
如上所述,错误校正电路10可以包括解码器11、校验子校验电路12和控制电路13。
解码器11可基于LDPC码的奇偶校验矩阵来解码码字。如稍后将通过图3详细描述,解码器11可以包括与奇偶校验矩阵相对应的多个校验节点单元和多个变量节点单元。校验节点单元可以被配置成分别对应于奇偶校验矩阵的行,并且变量节点单元可以被配置成分别对应于奇偶校验矩阵的列。
解码器11可以根据由校验子校验电路12计算的码字的参考值来对码字执行解码运算。解码器11可以根据解码结果,即当前解码运算的结果的参考值,对当前解码运算的结果重复解码运算。解码运算的结果可以是在对原始码字执行解码运算时所更新/校正的码字。当通过参考值确定所更新/校正的码字或解码运算的结果不包括错误时,解码器11可以不再执行解码运算,并且可以结束错误校正操作。
校验子校验电路12可以基于应用于解码器11的奇偶校验矩阵来计算码字的参考值。参考值可以表示码字的错误率。如稍后将参照图3详细描述,参考值可以基本上与码字的错误率成比例。每当解码器11执行解码运算时,校验子校验电路12可以计算解码运算的结果的参考值。因此,参考值可以表示码字或解码运算的结果是否包括错误。校验子校验电路12可以将参考值传输至控制电路13,或者可以生成与参考值相对应的解码器运算控制信号,并将解码器运算控制信号传输至控制电路13。虽然下面描述控制电路13从校验子校验电路12接收参考值并参考参考值,但是将注意的是,根据实施例,控制电路13可从校验子校验电路12接收与参考值相对应的解码器运算控制信号,并且参考解码器运算控制信号。
控制电路13可以基于由校验子校验电路12计算的参考值来控制解码器11的性能。详细地,为了减少错误校正电路10的功耗,控制电路13可以基于参考值控制解码器11不执行一些原计划的解码计算。
控制电路13可以包括子矩阵选择器14和电力控制器15。
子矩阵选择器14可以根据由校验子校验电路12计算的参考值,从应用于解码器11的奇偶校验矩阵中选择奇偶校验子矩阵,并且可以基于奇偶校验子矩阵来控制电力控制器15确定是否需要关断校验节点单元。
详细地,子矩阵选择器14可以根据校验子校验电路12计算的参考值来选择奇偶校验子矩阵,当从应用于解码器11的奇偶校验矩阵中移除一行或多行时可以获得该奇校验子矩阵。电力控制器15可以仅将电力供应至与构成奇偶校验子矩阵的行相对应的校验节点单元和全部变量节点单元。稍后将参照图4A和图4B对其进行详细描述。
根据实施例,子矩阵选择器14可以根据参考值来选择由多个奇偶校验子矩阵构成的子矩阵序列,并且每当解码器11对码字重复解码运算时,顺序地选择子矩阵序列的奇偶校验子矩阵。稍后将参照图5对其进行详细描述。
根据实施例,子矩阵选择器14可以根据参考值来选择奇偶校验子矩阵,当从子矩阵中另外移除一列或多列时可以获得该奇偶校验子矩阵,当从奇偶校验矩阵中移除一行或多行时可以获得该子矩阵。电力控制器15可以仅将电力供应至与构成所选择奇偶校验子矩阵的行相对应的校验节点单元和与构成所选择奇偶校验子矩阵的列相对应的变量节点单元。稍后将参照图7对其进行详细描述。
电力控制器15可以根据参考值来切断供应至在解码器11的奇偶校验矩阵中包括的校验节点单元之中的一个或多个校验节点单元的电力。因此,切断电力供应的校验节点单元可能无法执行分配给它们的解码计算。
本实施例可以适用于基于与LDPC相关联的错误校正码(ECC)而操作的错误校正电路。例如,与LDPC相关联的ECC可以包括LDPC级联码和非二进制LDPC码。
而且,本实施例可以适用于基于所有解码算法而运算的错误校正电路。作为示例而非限制,解码算法可以包括比特翻转算法、符号翻转、多数逻辑、和积、最小和和最小-最大算法。
图2是示意性示出奇偶校验矩阵HM的结构以及应用奇偶校验矩阵HM的图1所示的解码器11的结构的示图。
参照图2,奇偶校验矩阵HM可以由p行和n列构成。奇偶校验矩阵HM可以表示n位数的码字的线性约束。奇偶校验矩阵HM可以被配置成主要包括0和一些非零值(例如,1)。
p行可以分别对应于图1的解码器11的p个校验节点单元C1至Cp。n列可以分别对应于解码器11的n个变量节点单元V1至Vn。
奇偶校验矩阵HM可以被划分为p×(n-p)信息矩阵HM1和p×p奇偶矩阵HM2。信息矩阵HM1可以指示校验节点单元C1至Cp中的哪些校验节点单元计算在码字中包括的信息位。奇偶矩阵HM2可以指示变量节点单元V1至Vn中的哪些变量节点单元计算在码字中包括的奇偶校验位。
可以二分图的形式示出应用奇偶校验矩阵HM的解码器11的结构,在该二分图中,校验节点单元C1至Cp和变量节点单元V1至Vn通过连接部CNT连接。
应用奇偶校验矩阵HM的解码器11可以包括p个校验节点单元C1至Cp和n个变量节点单元V1至Vn。如上所述,校验节点单元C1至Cp可以分别对应于奇偶校验矩阵HM的p行。变量节点单元V1至Vn可以分别对应于奇偶校验矩阵HM的n列。
连接在特定校验节点单元和特定变量节点单元之间的线路可以表示在奇偶校验矩阵HM中与特定校验节点单元相对应的行和与特定变量节点单元相对应的列的元素是非零元素。换言之,在奇偶校验矩阵HM中,非零元素中的每一个可以表示与其行相对应的校验节点单元和与其列相对应的变量节点单元通过线路连接。虽然未示出,但是图2中的连接部CNT可以包括校验节点单元C1至Cp与变量节点单元V1至Vn之间的所有连接。
变量节点单元V1至Vn可以分别接收码字的位。由线路联接的变量节点单元V1至Vn和校验节点单元C1至Cp可以执行消息传递进程。消息传递进程可以包括以下操作:各个校验节点单元C1到Cp更新输入到与其联接的变量节点单元的位和与位相对应的概率信息,例如对数似然比。校验节点单元C1至Cp中的每一个可以更新变量节点单元V1至Vn的位,使得与其连接的变量节点单元V1至Vn的位的二进制和变为0。
当所有变量节点单元V1至Vn和所有校验节点单元C1至Cp运算时,解码器11可以执行具有默认性能的解码运算。当变量节点单元V1至Vn和一些校验节点单元C1至Cp运算(即,关断一些校验节点单元C1至Cp)时,解码器11可以执行具有比默认性能低的性能的解码运算。在这种情况下,如果错误校正操作在即使解码器11执行具有比默认性能低的性能的解码运算时也成功,则可以通过关断一些校验节点单元C1至Cp来降低功耗。
图3是描述根据实施例的图1所示的校验子校验电路计算参考值的方法的示图。
参照图3,校验子校验电路12可以通过将奇偶校验矩阵HM与码字的列矩阵CW相乘来计算校验子矩阵SM,并且可以确定校验子矩阵SM中的非零元素的数量,以作为参考值。
由于基于奇偶校验矩阵HM生成码字,因此当码字中不存在错误时,校验子矩阵SM可以仅包括0。码字中的错误越多,校验子矩阵SM可以包括的非零元素越多。因此,当码字中不存在错误时,参考值可以被计算为0,并且可以基本上与码字的错误率成比例。
同时,如上所述,每当解码器11结束解码运算时,校验子校验电路12可以为解码运算的结果计算参考值。即,校验子校验电路12可以通过将奇偶校验矩阵HM与解码运算的结果相乘来计算校验子矩阵SM,并且可以确定校验子矩阵SM中非零元素的数量,以作为参考值。解码运算的结果可以是在根据消息传递进程执行计算之后在变量节点单元中所更新/校正的码字。即使在这种情况下,当在解码运算的结果中不存在错误时,参考值可以被计算为0,并且可以基本上与解码运算的结果的错误率成比例。
图4A和图4B是描述根据实施例的根据参考值控制校验节点单元的电力供应的方法的示图。图4A可以是由图1的校验子校验电路12来计算码字CW1的非零参考值RFV1的实施例,并且图4B可以是由图1的校验子校验电路12计算码字CW2的非零参考值RFV2的实施例。参考值RFV1可以大于参考值RFV2。换言之,码字CW1可以包括比码字CW2更多的错误。
首先,参照图4A,图1的子矩阵选择器14可以根据参考值RFV1来选择奇偶校验子矩阵SHM1,当从奇偶校验矩阵HM移除行41时可以获得改奇偶校验子矩阵SHM1。
图1的电力控制器15可以基于奇偶校验子矩阵SHM1来切断供应至解码器11的校验节点单元中的两个校验节点单元Cp-1和Cp的电力,并且将电力供应至剩余校验节点单元和所有变量节点单元。即,电力控制器15可以关断与从奇偶校验矩阵HM移除的行41相对应的校验节点单元Cp-1和Cp,并且可以将电力供应至与构成奇偶校验子矩阵SHM1的行相对应的校验节点单元和所有变量节点单元。关断的校验节点单元Cp-1和Cp不会通过连接部CNT接收任何输入,并且不会执行分配给它的计算。
相反,参照图4B,子矩阵选择器14可以根据参考值RFV2来选择奇偶校验子矩阵SHM2,当从奇偶校验矩阵HM移除行42时可以获得该奇偶校验子矩阵SHM2。
图1的电力控制器15基于奇偶校验子矩阵SHM2来切断供应至解码器11的校验节点单元中的三个校验节点单元Cp-2、Cp-1和Cp的电力,并且将电力供应至剩余校验节点单元和所有变量节点单元。即,电力控制器15可以关断与从奇偶校验矩阵HM移除的行42相对应的校验节点单元Cp-2、Cp-1和Cp,并且可以将电力供应至与构成奇偶校验子矩阵SHM2的行相对应的校验节点单元和所有变量节点单元。关断的校验节点单元Cp-2、Cp-1和Cp不会通过连接部CNT接收任何输入,并且不会执行分配给它的计算。
总之,图4A和图4B示出了当参考值较小时,图1的电力控制器15可以关断较多的校验节点单元。换言之,当对特定码字执行解码运算时待被关断的校验节点单元的数量可能与相应码字的参考值成反比。当参考值小时,即错误率低时,因为即使解码器11执行具有较低性能的解码运算,错误校正操作也会成功,所以也可以通过关断校验节点单元来降低功耗。
根据实施例,当参考值超过阈值时,子矩阵选择器14不会选择奇偶校验子矩阵。在这种情况下,电力控制器15可以将电力供应至解码器11的所有变量节点单元和所有校验节点单元。即,当确定错误率大于参考值时,解码器11可以执行具有默认性能的解码运算,而不是降低功耗。
虽然图4A和图4B示出了,当从奇偶校验矩阵HM中的最后一行开始移除行时,生成奇偶校验子矩阵SHM1和SHM2,但是将注意的是,实施例不限于此,并且可以通过测试来不同地选择奇偶校验矩阵HM中待移除的行。
可以通过测试根据参考值来预先确定切断哪些校验节点单元的电力供应。如果错误率很小,则可以通过估计即使不执行一些解码运算错误校正操作是否成功来执行测试。例如,可以通过下列来执行测试:针对各种参考值中的每一个,即各种错误率中的每一个不同地选择和关断校验节点并且然后利用关断的校验节点执行解码运算。作为测试的结果,可以选择错误校正操作成功的校验节点单元的组合。当从奇偶校验矩阵中移除了与校验节点单元的组合相对应的行时,可以确定奇偶校验子矩阵。测试结果可以被存储在错误校正电路10的单独存储区域中,以作为子矩阵选择器14可以参考的信息。
以这种方式,子矩阵选择器14可以根据参考值来选择一个奇偶校验子矩阵。根据下面要描述的另一实施例,子矩阵选择器14可以根据参考值来选择包括多个奇偶校验子矩阵的子矩阵序列。
图5是描述根据实施例的从根据参考值选择的子矩阵序列中选择奇偶校验子矩阵的方法的示图。
参照图5,图1的子矩阵选择器14可以管理分别对应于多个参考值RFV1、RFV2和RFV3的子矩阵序列SQ1、SQ2和SQ3的列表SQLIST。可以通过测试预先确定列表SQLIST。如果由校验子校验电路12计算码字的参考值,则子矩阵选择器14可以在列表SQLIST中选择与相应参考值相对应的子矩阵序列。
列表SQLIST的每个子矩阵序列可以由多个奇偶校验子矩阵构成。例如,图5示出了构成子矩阵序列SQ1的奇偶校验子矩阵SHM11至SHM16。当选择参考值RFV1时,可以选择子矩阵序列SQ1。在这种情况下,每当重复对码字的解码运算时,子矩阵选择器14可以顺序地选择奇偶校验子矩阵SHM11至SHM16。
例如,子矩阵选择器14可以在对码字执行初始解码运算时,选择奇偶校验子矩阵SHM11,并且可以在对初始解码运算的结果重复解码运算时,选择奇偶校验子矩阵SHM12。在这种情况下,电力控制器15可以基于从子矩阵序列SQ1顺序选择的奇偶校验子矩阵来如上所述控制对校验节点单元的电力供应。
根据实施例,列表SQLIST的每个子矩阵序列可以包括奇偶校验子矩阵,例如,奇偶校验子矩阵SHM11至SHM13,该奇偶校验子矩阵包括相同数量的行,。奇偶校验子矩阵SHM14至SHM16还可以包括相同数量的行。作为示例观察奇偶校验子矩阵SHM11至SHM13,每次重复解码运算并由此顺序地选择奇偶校验子矩阵SHM11至SHM13时,电力控制器15可以使与在先前解码运算中的校验节点单元不同的校验节点单元运算。即,解码器11通过使用不同的奇偶校验位再次执行解码运算。
根据实施例,可以在子矩阵序列SQ1中按行数量的升序来排列奇偶校验子矩阵SHM11至SHM16。换言之,可以按照从奇偶校验矩阵HM移除的行数量的降序来排列奇偶校验子矩阵SHM11至SHM16。这是为了当即使重复解码运算而错误校正操作仍不成功时,执行具有更高性能的解码运算。如图所示,子矩阵序列SQ1可以包括排列在最后的完整奇偶校验矩阵HM。
图6是示出根据实施例的包括循环置换矩阵的奇偶校验矩阵HM的结构的示图。
参照图6,奇偶校验矩阵HM可以被划分成行组RG1至RG5,并且行组RG1至RG5中的每一个可以包括循环置换矩阵的行。在图6中,作为示例示出了行组RG1至RG5的数量是5并且每行组的循环置换矩阵行数量是3。然而,本发明不限于此,并且行组的数量并且每行组的循环置换矩阵的行数量可以根据设计而变化。
当从奇偶校验矩阵HM中移除至少一个行组,例如行组RG4时,可以生成奇偶校验子矩阵SHM。即,从奇偶校验矩阵HM移除元素以生成奇偶校验子矩阵SHM的单位可以是行组。即使在这种情况下,电力控制器15也可以关断与行组RG4中包括的行相对应的校验节点单元。
此外,类似于如上所述,参考值越小,可以从奇偶校验矩阵HM移除的行组数量越多。
图7是描述根据实施例的控制对校验节点单元和变量节点单元的电力供应的方法的示图。
参照图7,根据实施例,奇偶校验矩阵HM可以包括奇偶矩阵HM2作为下三角矩阵。在这种情况下,子矩阵选择器14可以根据参考值选择奇偶校验子矩阵SHM7,当从子矩阵额外地移除列82时获得该奇偶校验子矩阵SHM7,当从奇偶校验矩阵HM移除行81时获得该子矩阵。在图7中,作为示例示出了移除两行81和两列82。选择奇偶校验子矩阵可以通过测试预先确定,根据参考值从奇偶校验子矩阵中移除多少行和多少列。
额外移除的列82可以由0构成。额外移除的列82可以包括在奇偶矩阵HM2中。
电力控制器15可以切断供应至与移除的行81相对应的校验节点单元Cp-1和Cp以及与移除的列82相对应的变量节点单元Vn-1和Vn的电力。换言之,电力控制器15可以将电力仅供应至与构成奇偶校验子矩阵SHM7的行相对应的校验节点单元和与构成奇偶校验子矩阵SHM7的列相对应的变量节点单元。
即,从奇偶校验矩阵HM移除的列82可以对应于待输入奇偶校验位的变量节点单元之中的、未与任何导通的校验节点单元连接的变量节点单元Vn-1和Vn。换言之,从奇偶校验矩阵HM移除的列82可以对应于待输入奇偶校验位的变量节点单元之中的、仅与关断的校验节点单元Cp-1和Cp连接的变量节点单元Vn-1和Vn。因此,在本实施例中,通过切断供应至变量节点单元Vn-1和Vn的电力,该变量节点单元Vn-1和Vn甚至可以被关断而在错误校正操作中不会引起实质性问题,可以使功耗的降低最大化。
图8是示出根据实施例的存储器系统100的框图。
参照图8,存储器系统100可以被配置成响应于主机装置的写入请求,存储从外部主机装置提供的数据。而且,存储器系统100可以被配置成响应于主机装置的读取请求,将存储的数据提供至主机装置。
存储器系统100可以由下列配置:个人计算机存储卡国际协会(PCMCIA)卡、标准闪存(CF)卡、智能媒体卡、记忆棒、各种多媒体卡(MMC、eMMC、RS-MMC和微型-MMC)、各种安全数字卡(SD、迷你-SD和微型-SD)、通用闪存(UFS)、固态硬盘(SSD),等等。
存储器系统100可包括控制器110和存储器装置120。
控制器110可以控制存储器系统100的一般操作。控制器110可以访问存储器装置120以处理主机装置的请求。而且,控制器110可以访问存储器装置120以执行存储器系统100的内部管理操作或后台操作,而不考虑主机装置的请求。对存储器装置120的访问可以包括写入访问和读取访问。
控制器110可以包括错误校正电路111。错误校正电路111可以对从存储器装置120的存储器区域121读取的码字CW执行错误校正操作。错误校正电路111可以与图1的错误校正电路10基本上相同的方式配置并且操作。
错误校正电路111可以基于电力控制信息来控制对解码器的校验节点单元和变量节点单元的电力供应。电力控制信息可以包括表示码字CW的错误率的信息。例如,电力控制信息可以包括码字CW的参考值。在这种情况下,类似于如上所述,参考值越低,关断的校验节点单元的数量可以越大。
再例如,电力控制信息可以包括联接存储器装置120和控制器110的通道CH的故障率。在这种情况下,通道CH的故障率越低,可以关断的校验节点单元的数量越大。可以通过本领域已知的各种通道测试来获得通道CH的故障率。
又例如,电力控制信息可包括存储器区域121的磨损率。存储器区域121的磨损率可与存储器区域121的擦除计数成比例。在这种情况下,存储器区域121的磨损率越低,关断的校验节点单元的数量可以越大。
存储器装置120可以根据控制器110的控制,存储从控制器110传输的数据,并且可以读出存储的数据并将读出的数据传输至控制器110。存储器装置120可以包括非易失性存储器装置或易失性存储器装置。
作为示例而非限制,非易失性存储器装置可以包括闪速存储器,诸如NAND闪存或NOR闪存、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)等。
易失性存储器装置可以包括DRAM(动态随机存取存储器)或SRAM(静态随机存取存储器)。
图9是示出包括根据实施例的固态硬盘(SSD)1200的数据处理系统的示图。参照图9,数据处理系统1000可以包括主机装置1100和SSD1200。
SSD 1200可以包括控制器1210、缓冲存储器装置1220、多个非易失性存储器装置1231至123n、电源1240、信号连接器1250和电源连接器1260。
控制器1210可以控制SSD 1200的一般操作。控制器1210可以包括主机接口单元1211、控制单元1212、随机存取存储器1213、错误校正码(ECC)单元1214和存储器接口单元1215。
主机接口单元1211可以通过信号连接器1250与主机装置1100交换信号SGL。信号SGL可以包括命令、地址、数据等。主机接口单元1211可以根据主机装置1100的协议接口连接主机装置1100和SSD 1200。例如,主机接口单元1211可以通过诸如下列的标准接口协议中的任何一个与主机装置1100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-E)和通用闪存(UFS)。
控制单元1212可以分析并处理从主机装置1100接收的信号SGL。控制单元1212可以根据用于驱动SSD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可以用作用于驱动这种固件或软件的工作存储器。
ECC单元1214可以生成待传输至非易失性存储器装置1231到123n中至少一个的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置1231至123n中。ECC单元1214可以基于奇偶校验数据来检测从非易失性存储器装置1231至123n中的至少一个读出的数据的错误。如果检测到的错误在可校正范围内,则ECC单元1214可以校正检测到的错误。
ECC单元1214可以与图1中示出的ECC单元10相同的方式来配置。
存储器接口单元1215可以根据控制单元1212的控制将诸如命令和地址的控制信号提供至非易失性存储器装置1231至123n中的至少一个。此外,存储器接口单元1215可以根据控制单元1212的控制与非易失性存储器装置1231至123n中的至少一个交换数据。例如,存储器接口单元1215可以将在缓冲存储器装置1220中存储的数据提供至非易失性存储器装置1231至123n中的至少一个,或者将从非易失性存储器装置1231至123n中的至少一个读取的数据提供至缓冲存储器装置1220。
缓冲存储器装置1220可以临时存储待存储在非易失性存储器装置1231至123n中的至少一个的数据。此外,缓冲存储器装置1220可以临时存储从非易失性存储器装置1231至123n中的至少一个读取的数据。临时存储在缓冲存储器装置1220中的数据可以根据控制器1210的控制被传输至主机装置1100或非易失性存储器装置1231到123n中的至少一个。
非易失性存储器装置1231至123n可以用作SSD 1200的存储介质。非易失性存储器装置1231至123n可以分别通过多个通道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接至一个通道。联接至每个通道的非易失性存储器装置可以联接至相同的信号总线和数据总线。
电源1240可以将通过电源连接器1260输入的电力PWR提供至SSD 1200的内部。电源1240可以包括辅助电源1241。辅助电源1241可以供应电力以使SSD 1200正常终止。辅助电源1241可以包括大容量电容器。
根据主机装置1100和SSD 1200之间的接口方案,信号连接器1250可以由各种类型的连接器配置。
根据主机装置1100的电力供应方案,电源连接器1260可以由各种类型的连接器配置。
图10是示出包括根据实施例的存储器系统2200的数据处理系统2000的示图。参照图10,数据处理系统2000可以包括主机装置2100和存储器系统2200。
主机装置2100可以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置2100可以包括用于执行主机装置的功能的内部功能块。
主机装置2100可以包括连接端子2110,诸如插座、插槽或连接器。存储器系统可以安装到连接端子2110。
存储器系统2200可以诸如印刷电路板的板的形式配置。存储器系统2200可以被称为存储器模块或存储卡。存储器系统2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240和连接端子2250。
控制器2210可以控制存储器系统2200的一般操作。控制器2210可以与图9中所示的控制器1210相同的方式配置。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231和2232中的数据。此外,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231和2232读取的数据。临时存储在缓冲存储器装置2220中的数据可以根据控制器2210的控制被传输至主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可以用作存储器系统2200的存储介质。
PMIC 2240可以将通过连接端子2250输入的电力提供至存储器系统2200的内部。PMIC 2240可以根据控制器2210的控制来管理存储器系统2200的电力。
连接端子2250可以联接至主机装置2100的连接端子2110。通过连接端子2250,可以在主机装置2100和存储器系统2200之间传输诸如命令、地址、数据等的信号和电力。根据主机装置2100和存储器系统2200之间的接口方案,连接端子2250可以被构造成各种类型。连接端子2250可以被布置在存储器系统2200的任何一侧上。
图11是示出包括根据实施例的存储器系统3200的数据处理系统3000的示图。参照图11,数据处理系统3000可以包括主机装置3100和存储器系统3200。
主机装置3100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
存储器系统3200可以表面安装型封装的形式配置。存储器系统3200可以通过焊球3250安装到主机装置3100。存储器系统3200可以包括控制器3210、缓冲存储器装置3220和非易失性存储装置3230。
控制器3210可以控制存储器系统3200的一般操作。控制器3210可以与图9中所示的控制器1210相同的方式配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3230中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3230读出的数据。临时存储在缓冲存储器装置3220中的数据可以根据控制器3210的控制被传输至主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可以用作存储器系统3200的存储介质。
图12是示出包括根据实施例的存储器系统4200的网络系统4000的示图。参照图12,网络系统4000可以包括通过网络4500联接的服务器系统4300和多个客户端系统4410至4430。
服务器系统4300可以响应于来自多个客户端系统4410至4430的请求来服务数据。例如,服务器系统4300可以存储从多个客户端系统4410至4430提供的数据。再例如,服务器系统4300可以将数据提供至多个客户端系统4410至4430。
服务器系统4300可以包括主机装置4100和存储器系统4200。存储器系统4200可以由图8所示的存储器系统100、图9所示的存储器系统1200、图10所示的存储器系统2200或图11所示的存储器系统3200来配置。
图13是示出包括在根据实施例的存储器系统中的非易失性存储器装置300的框图。参照图13,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压发生器350和控制逻辑360。
存储器单元阵列310可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域处的存储器单元MC。
行解码器320可以通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可以根据控制逻辑360的控制而操作。行解码器320可以解码从外部装置(未示出)提供的地址。行解码器320可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器320可以将从电压发生器350提供的字线电压提供至字线WL1至WLm。
数据读取/写入块330可以通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可以包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可以根据控制逻辑360的控制而操作。数据读取/写入块330可以根据操作模式用作写入驱动器或读出放大器。例如,数据读取/写入块330可以用作写入驱动器,该写入驱动器在写入操作中将从外部装置提供的数据存储在存储器单元阵列310中。再例如,数据读取/写入块330可以用作读出放大器,该读出放大器在读取操作中从存储器单元阵列310读出数据。
列解码器340可以根据控制逻辑360的控制而操作。列解码器340可以解码从外部装置提供的地址。列解码器340可以基于解码结果将数据读取/写入块330的、分别与位线BL1至BLn相对应的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压发生器350可以生成待在非易失性存储器装置300的内部操作中使用的电压。由电压发生器350生成的电压可以被施加到存储器单元阵列310的存储器单元。例如,在编程操作中生成的编程电压可以被施加到待执行编程操作的存储器单元的字线。再例如,在擦除操作中生成的擦除电压可以被施加到待执行擦除操作的存储器单元的阱区域。再例如,在读取操作中生成的读取电压可以被施加到待执行读取操作的存储器单元的字线。
控制逻辑360可以基于从外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可以控制非易失性存储器装置300的读取操作、写入操作和擦除操作。
虽然上面已经描述了各种实施例,但是本领域技术人员将理解的是,所描述的实施例仅是示例。因此,不应基于所描述的实施例来限制本文描述的错误校正电路以及包括该错误校正电路的存储器系统。
Claims (20)
1.一种错误校正电路,包括:
解码器,包括与低密度奇偶校验方案,即LDPC方案的奇偶校验矩阵相对应的多个校验节点单元和变量节点单元,并且通过对码字进行解码来生成解码数据;
校验子校验电路,基于所述奇偶校验矩阵来计算所述码字的参考值,并且生成与所述参考值相对应的解码器运算控制信号;以及
控制电路,响应于所述解码器运算控制信号,控制是否使所述解码器的所述多个校验节点单元和变量节点单元中的每一个运算,
其中所述解码器基于在所述多个校验节点单元和变量节点单元之中的、根据所述控制电路的控制而运算的校验节点单元和变量节点单元来对所述码字进行解码。
2.根据权利要求1所述的错误校正电路,其中所述控制电路控制是否使所述多个校验节点单元和变量节点单元运算,使得运算的校验节点单元的数量与所述参考值成比例。
3.根据权利要求1所述的错误校正电路,其中所述校验子校验电路通过将所述奇偶校验矩阵与所述码字的列矩阵相乘来计算校验子矩阵,并且确定与所述校验子矩阵中非零元素的数量相对应的所述参考值。
4.根据权利要求1所述的错误校正电路,其中当所述参考值超过阈值时,所述控制电路控制所有的所述多个变量节点单元和校验节点单元运算。
5.根据权利要求1所述的错误校正电路,其中所述校验子校验电路基于所述奇偶校验矩阵来计算对所述码字进行解码的解码结果的当前参考值。
6.根据权利要求5所述的错误校正电路,其中所述解码器通过对与所述当前参考值相对应的所述解码结果重新解码来生成所述解码数据。
7.根据权利要求6所述的错误校正电路,其中在所述重新解码中,所述控制电路根据所述当前参考值来切断供应到所述多个校验节点单元中的一个或多个校验节点单元的电力。
8.根据权利要求6所述的错误校正电路,其中所述校验子校验电路根据所述当前参考值来生成仅使所述多个校验节点单元中的一些校验节点单元运算的所述解码器运算控制信号,以使所述解码器使用奇偶校验子矩阵,所述奇偶校验子矩阵是移除一行或多行的所述奇偶校验矩阵。
9.根据权利要求8所述的错误校正电路,其中为了在每次执行重新解码时减小所述当前参考值,所述控制电路控制所述多个校验节点单元的运算,使得顺序地使用奇偶校验子矩阵。
10.根据权利要求9所述的错误校正电路,其中所述控制电路控制所述多个校验节点单元的运算,使得顺序使用的所述奇偶校验子矩阵的行数量按使用顺序具有升序。
11.根据权利要求9所述的错误校正电路,其中所述控制电路控制所述多个校验节点单元的运算,使得顺序使用的所述奇偶校验子矩阵包括相同数量的行。
12.根据权利要求8所述的错误校正电路,
其中所述奇偶校验矩阵包括多个行组,并且所述行组中的每一个包括一个或多个循环置换矩阵的行,并且
其中所述校验子校验电路生成所述解码器运算控制信号,从而使用所述奇偶校验子矩阵,当从所述奇偶校验矩阵的所述行组中移除至少一个行组时获得所述奇偶校验子矩阵。
13.根据权利要求1所述的错误校正电路,其中当所述奇偶校验矩阵的行分别对应于所述多个校验节点单元并且所述奇偶校验矩阵的列分别对应于所述多个变量节点单元时,所述控制电路根据所述参考值来控制是否使与行相对应的所述校验节点单元和与列相对应的变量节点单元运算,所述行和所述列配置奇偶校验子矩阵,当从所述奇偶校验矩阵中移除一行或多行时获得子矩阵,当从所述子矩阵额外移除一列或多列时获得所述奇偶校验子矩阵。
14.根据权利要求13所述的错误校正电路,其中从所述子矩阵额外移除以构成所述奇偶校验子矩阵的一列或多列由0构成。
15.根据权利要求13所述的错误校正电路,其中从所述子矩阵额外移除以构成所述奇偶校验子矩阵的一列或多列是构成所述奇偶校验矩阵的信息矩阵和奇偶矩阵之中的所述奇偶矩阵。
16.一种存储器系统,包括:
存储器装置,包括存储码字的存储器区域,并且从所述存储器区域读取所述码字并将所述码字输出到通道;以及
错误校正电路,对通过所述通道传输的所述码字执行错误校正操作,
其中所述错误校正电路包括:
解码器,包括与低密度奇偶校验方案,即LDPC方案的奇偶校验矩阵相对应的多个校验节点单元和多个变量节点单元;以及
电力控制器,根据电力控制信息来切断供应到所述校验节点单元中的一个或多个第一校验节点单元的电力,
其中所述解码器通过使用供应电力的变量节点单元和校验节点单元来对所述码字执行解码运算。
17.根据权利要求16所述的存储器系统,其中所述错误校正电路进一步包括校验子校验电路,所述校验子检验电路基于所述奇偶校验矩阵来计算所述码字的校验子校验值,以作为所述电力控制信息。
18.根据权利要求16所述的存储器系统,其中所述错误校正电路将所述通道的故障率称为所述电力控制信息。
19.根据权利要求16所述的存储器系统,其中所述错误校正电路将所述存储器区域的磨损率当作所述电力控制信息。
20.一种错误校正电路,包括:
存储装置,预先存储信息,所述信息表示待被断电的校验节点单元的一个或多个组合,其中所述组合分别对应于非零的参考数量;
解码器,对码字迭代地执行基于低密度奇偶校验,即基于LDPC的解码运算预定次数,直到所述解码运算成功,并且在当前迭代的解码运算失败时,所述解码器输出非零数量的信息作为当前迭代中校验子校验的结果,其中在每次迭代时,通过所述多个校验节点单元和变量节点单元之中通电的校验节点单元和变量节点单元来执行所述解码运算;
选择器,根据所述非零数量在所述组合之中选择一个组合;以及
电力控制器,其切断供应到所选择组合的电力以用于后续迭代的解码运算,
其中基于所述LDPC方案的奇偶校验矩阵来执行所述解码运算,并且
所述奇偶校验矩阵的行和列对应于所述校验节点单元和所述变量节点单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0045210 | 2018-04-18 | ||
KR1020180045210A KR102523059B1 (ko) | 2018-04-18 | 2018-04-18 | 에러 정정 회로 및 그것을 포함하는 메모리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110391816A true CN110391816A (zh) | 2019-10-29 |
CN110391816B CN110391816B (zh) | 2022-12-02 |
Family
ID=68236979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811463020.7A Active CN110391816B (zh) | 2018-04-18 | 2018-12-03 | 错误校正电路及包括错误校正电路的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10606695B2 (zh) |
KR (1) | KR102523059B1 (zh) |
CN (1) | CN110391816B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3419181A1 (en) * | 2017-06-19 | 2018-12-26 | Universite De Bretagne Sud | Simplified check node processing in non-binary ldpc decoder |
KR20210064723A (ko) * | 2019-11-26 | 2021-06-03 | 에스케이하이닉스 주식회사 | 전자 장치 및 이의 동작 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050021108A (ko) * | 2003-08-26 | 2005-03-07 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
US20070011565A1 (en) * | 2005-06-25 | 2007-01-11 | Samsung Electronics Co., Ltd. | Method and apparatus for low-density parity check encoding |
US20090106621A1 (en) * | 2007-10-19 | 2009-04-23 | Takashi Yokokawa | Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, data receiving method and program |
US20100192044A1 (en) * | 2007-07-18 | 2010-07-29 | Dong Bai | Qc-ldpc code decoder and corresponding decoding method |
US20140068393A1 (en) * | 2012-08-28 | 2014-03-06 | Marvell World Trade Ltd. | Symbol flipping decoders of non-binary low-density parity check (ldpc) codes |
US20140164875A1 (en) * | 2012-12-11 | 2014-06-12 | Samsung Electronics Co., Ltd. | Memory controller and method of operating the same |
US20140164866A1 (en) * | 2012-12-08 | 2014-06-12 | Lsi Corporation | Low Density Parity Check Decoder With Miscorrection Handling |
US20170272097A1 (en) * | 2016-03-17 | 2017-09-21 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090079007A (ko) * | 2008-01-16 | 2009-07-21 | 전북대학교산학협력단 | 엘디피씨 부호 복호 장치 및 복호 방법 |
KR101482684B1 (ko) | 2013-10-15 | 2015-01-16 | 한국과학기술원 | 디코딩 방법 및 이를 포함하는 메모리 시스템의 동작 방법 |
KR102556479B1 (ko) | 2015-03-20 | 2023-07-17 | 에스케이하이닉스 주식회사 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR102231278B1 (ko) * | 2017-06-07 | 2021-03-23 | 한국전자통신연구원 | 이진 로그를 사용하는 저밀도 패리티 검사 복호기 및 그것의 복호 방법 |
TWI646783B (zh) * | 2018-04-10 | 2019-01-01 | 大陸商深圳大心電子科技有限公司 | 解碼方法及儲存控制器 |
-
2018
- 2018-04-18 KR KR1020180045210A patent/KR102523059B1/ko active IP Right Grant
- 2018-11-26 US US16/199,581 patent/US10606695B2/en active Active
- 2018-12-03 CN CN201811463020.7A patent/CN110391816B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050021108A (ko) * | 2003-08-26 | 2005-03-07 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
US20070011565A1 (en) * | 2005-06-25 | 2007-01-11 | Samsung Electronics Co., Ltd. | Method and apparatus for low-density parity check encoding |
US20100192044A1 (en) * | 2007-07-18 | 2010-07-29 | Dong Bai | Qc-ldpc code decoder and corresponding decoding method |
US20090106621A1 (en) * | 2007-10-19 | 2009-04-23 | Takashi Yokokawa | Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, data receiving method and program |
US20140068393A1 (en) * | 2012-08-28 | 2014-03-06 | Marvell World Trade Ltd. | Symbol flipping decoders of non-binary low-density parity check (ldpc) codes |
US20140164866A1 (en) * | 2012-12-08 | 2014-06-12 | Lsi Corporation | Low Density Parity Check Decoder With Miscorrection Handling |
US20140164875A1 (en) * | 2012-12-11 | 2014-06-12 | Samsung Electronics Co., Ltd. | Memory controller and method of operating the same |
US20170272097A1 (en) * | 2016-03-17 | 2017-09-21 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
Also Published As
Publication number | Publication date |
---|---|
CN110391816B (zh) | 2022-12-02 |
KR102523059B1 (ko) | 2023-04-19 |
US10606695B2 (en) | 2020-03-31 |
US20190324849A1 (en) | 2019-10-24 |
KR20190121638A (ko) | 2019-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062258B (zh) | 用于错误恢复的循环交错的xor阵列 | |
KR101919934B1 (ko) | 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법 및 극 부호화된 부호어를 불휘발성 메모리 장치의 멀티 비트 데이터에 매핑하는 매핑 패턴을 선택하는 매핑 패턴 선택 방법 | |
US20150363266A1 (en) | Parity scheme for a data storage device | |
CN104750570B (zh) | 数据储存装置及其错误校正方法 | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
US20150293811A1 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
CN106856103A (zh) | 用于与非闪存的涡轮乘积码 | |
CN106663463A (zh) | 存储器裸芯的NAND闪存存储器与ReRAM之间的数据的芯片上复制 | |
CN110197696B (zh) | 电子装置、非暂时性计算机可读存储介质以及控制方法 | |
US8880782B2 (en) | Memory array including multi-state memory devices | |
CN110347530A (zh) | 数据存储装置及其操作方法 | |
KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
KR20190038964A (ko) | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 | |
CN109407967A (zh) | 存储器系统及其操作方法 | |
CN110391816A (zh) | 错误校正电路及包括错误校正电路的存储器系统 | |
CN105304142B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111868690A (zh) | 执行解码操作以模拟切换数据块的经识别位组中的位 | |
KR102333140B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110764948B (zh) | 数据存储装置、该数据存储装置的操作方法以及存储系统 | |
CN112416298A (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
CN110299181A (zh) | 非易失性存储器装置、其操作方法及数据存储装置 | |
CN110442302B (zh) | 存储器系统及用于操作存储器系统的方法 | |
KR20180078426A (ko) | 데이터 저장 장치의 에러 정정 코드 처리 방법 | |
CN109871339A (zh) | 存储器系统以及该存储器系统的操作方法 | |
US11502703B2 (en) | Descrambler for memory systems and method thereof |
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 |