CN116170029A - 低密度奇偶校验解码器和储存装置 - Google Patents

低密度奇偶校验解码器和储存装置 Download PDF

Info

Publication number
CN116170029A
CN116170029A CN202211467166.5A CN202211467166A CN116170029A CN 116170029 A CN116170029 A CN 116170029A CN 202211467166 A CN202211467166 A CN 202211467166A CN 116170029 A CN116170029 A CN 116170029A
Authority
CN
China
Prior art keywords
variable node
variable
check
nodes
unit logic
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.)
Pending
Application number
CN202211467166.5A
Other languages
English (en)
Inventor
李冈石
柳根荣
黄映竣
孙弘乐
申峻昊
全甫奂
韩泫升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020220008006A external-priority patent/KR102511827B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN116170029A publication Critical patent/CN116170029A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Abstract

一种低密度奇偶校验(LDPC)解码器,其用码字的值将可变节点初始化并且输出参考不规则的奇偶校验矩阵更新的可变节点作为解码的消息。该LDPC解码器包括:多个单位逻辑电路,其在单模式或多模式下操作,在单模式中,所有单位逻辑电路更新包括至少一个可变节点的一个可变节点组,在多模式中,单位逻辑电路中的每一个通过更新不同的可变节点而并行地更新多个可变节点组;以及模式控制器,其控制多个单位逻辑电路,以在单模式下更新可变节点组中的其程度大于阈值程度的高程度可变节点组,并且在多模式下更新可变节点组中的其程度小于或等于阈值程度的低程度可变节点组。

Description

低密度奇偶校验解码器和储存装置
相关申请的交叉引用
本申请要求于2021年11月24日在韩国知识产权局提交的韩国专利申请No.10-2021-0162955和于2022年1月19日在韩国知识产权局提交的韩国专利申请No.10-2022-0008006的优先权的权益,所述申请的全部公开以引用方式并入本文中用于所有目的。
技术领域
本发明构思的方面涉及一种低密度奇偶校验(LDPC)解码器和包括LDPC解码器的储存装置。
背景技术
半导体存储器划分为易失性存储器装置和非易失性存储器装置。易失性存储器装置会在其电力被切断时丢失存储的数据,但是非易失性存储器装置即使切断其电力也可保留存储的数据。特别地,由于闪速存储器具有高编程速度、低功耗和大容量数据储存等优点,因此闪速存储器被广泛用作计算机系统等中的储存介质。
当将数据编程至非易失性存储器的存储器单元中时,存储器单元的阈值电压形成特定范围的阈值电压分布。随着非易失性存储器的操作继续,阈值电压分布可变差。当阈值电压分布变差时,在通过以预定读电平执行读操作而读取的数据中可包括许多错误比特。
通过对读取的数据执行错误校正解码,可从读取的数据中获得正确数据。错误校正解码的示例是低密度奇偶校验(LDPC)解码。LDPC解码是通过重复执行彼此连接的可变节点和校验节点的更新来校正数据中的错误的解码方法。可变节点与校验节点之间的连接关系可由奇偶校验矩阵限定。
当连接至可变节点中的每一个的校验节点的数量不恒定时,LDPC码可被称作不规则的LDPC码。当连接至可变节点中的每一个的校验节点的数量不同时,更新每个可变节点所需的计算量可有差异。如果更新每个可变节点所需的计算量不同,当LDPC解码器按次序更新可变节点时,可能无法完全利用LDPC解码器的计算资源。
发明内容
示例实施例提供了一种具有改进的吞吐量和改进的解码延迟的LDPC解码器。
示例实施例还提供了一种储存装置,其能够利用低密度奇偶校验(LDPC)解码器精确和快速地读取存储在存储器单元中的数据。
根据示例实施例,一种低密度奇偶校验(LDPC)解码器,其用码字的值将可变节点初始化并且输出参考不规则的奇偶校验矩阵更新的可变节点作为解码的消息,该LDPC解码器包括:多个单位逻辑电路,其在单模式或多模式下操作,在单模式中,所有单位逻辑电路更新包括至少一个可变节点的一个可变节点组,在多模式中,单位逻辑电路中的每一个通过更新不同的可变节点并行地更新多个可变节点组;以及模式控制器,其控制多个单位逻辑电路,以在单模式下更新可变节点组中的其程度大于阈值程度的高程度可变节点组,并且在多模式下更新可变节点组中的其程度小于或等于阈值程度的低程度可变节点组。
根据示例实施例,一种低密度奇偶校验(LDPC)解码器包括:数据缓冲器,其缓冲以不规则的LDPC码编码的数据并且将数据的值提供至可变节点;校验节点更新器,其更新连接至可变节点的校验节点;可变节点更新器,其更新连接至更新的校验节点的可变节点;以及综合征检查仪,其根据更新的可变节点的综合征检查结果输出可变节点的值作为解码的数据,其中,可变节点更新器包括一个或多个单位逻辑电路组,并且根据可变节点中的每一个所需的计算量,控制单位逻辑电路组中的每一个在一个周期中更新一个可变节点,或者控制单位逻辑电路组中的每一个中包括的单位逻辑电路中的每一个在一个周期中并行地更新不同的可变节点。
根据示例实施例,一种储存装置包括:存储器装置,其存储以不规则的低密度奇偶校验(LDPC)码编码的数据;以及LDPC单元,其通过从存储器装置输出的数据的值将可变节点初始化,更新连接至可变节点的校验节点,通过根据可变节点中的每一个的程度是否超过阈值程度而重复执行在一个周期中更新Q(其中Q是自然数)个可变节点的操作或者在一个周期中同时更新Q×K(其中K是自然数)个可变节点来更新可变节点,并且根据可变节点的综合征检查结果输出可变节点的值。
附图说明
将从下面结合附图的详细描述中更加清楚地理解本发明构思的以上和其它方面、特征和优点,在附图中:
图1是示出根据本公开中的示例性实施例的低密度奇偶校验(LDPC)解码器的框图;
图2是示出根据本公开中的示例性实施例的LDPC解码器的操作的流程图;
图3是用于更详细地描述根据本公开中的第一示例性实施例的LDPC解码器的框图;
图4是示出由Tanner图表示的LDPC解码的概念图;
图5是示出不规则的LDPC码的Tanner图的示图;
图6A和图6B是示出图5的Tanner图中的具有不同程度的可变节点的示图;
图7是示出对应于图5的Tanner图的奇偶校验矩阵的示图;
图8是示出LDPC解码器的操作的流程图;
图9A和图9B是示出更新根据本公开中的第一示例性实施例的LDPC解码器的可变节点的方法的流程图;
图10是根据本公开中的第一示例性实施例的LDPC解码操作的时序图;
图11A和图11B是示出依照根据本公开中的第一示例性实施例的LDPC解码器的操作模式的计算资源使用率的示图;
图12是示出根据本公开中的第二示例性实施例的奇偶校验矩阵的示图;
图13是用于更详细地描述根据本公开中的第二示例性实施例的LDPC解码器的框图;
图14是示出根据本公开中的示例性实施例的储存装置的框图;
图15是是用于更详细地描述图14的非易失性存储器的示图;
图16是用于描述可应用于根据本公开中的示例性实施例的储存装置的3D V-NAND结构的示图;
图17A和图17B是示出存储器单元的阈值电压分布的示图;
图18是用于描述根据本公开中的示例性实施例的储存装置的错误校正方法的示图;以及
图19是更详细地示出根据本公开中的示例性实施例的储存装置的框图。
具体实施方式
下文中,将参照附图描述本公开中的示例性实施例。
图1是示出根据本公开中的示例性实施例的低密度奇偶校验(LDPC)解码器100的框图。
参照图1,LDPC解码器100可包括主解码器110和存储器120。
存储器120可存储主解码器110执行错误校正解码所必需的数据。例如,存储器120可存储用于LDPC解码的奇偶校验矩阵121。存储器120可根据主解码器110的请求将解码的数据提供至主解码器110。
主解码器110可从外部接收码字CW。另外,主解码器110可从存储器120接收解码的数据。主解码器110可参考来自存储器120的数据对码字CW执行错误校正解码。
例如,主解码器110可通过参考奇偶校验矩阵121重复地执行校验节点更新处理和可变节点更新处理来对码字CW执行错误校正解码。构成LDPC的每个奇偶校验可看作单奇偶校验(SPC)码。每个SPC码的解码可被称作“校验节点更新”处理,并且变量的交叉校验通常被称作“可变节点更新”处理。当主解码器110对码字CW成功地执行错误校正解码时,主解码器110可将经错误校正的数据作为消息MSG输出至外部。
同时,奇偶校验矩阵121可指示可变节点与校验节点之间的连接关系。主解码器110可通过参考奇偶校验矩阵121执行连接至校验节点的可变节点之间的操作来更新校验节点,并且通过执行连接至可变节点的校验节点之间的操作来更新可变节点。
奇偶校验矩阵121可根据连接至可变节点中的每一个的校验节点的数量分为规则的奇偶校验矩阵和不规则的奇偶校验矩阵。规则的奇偶校验矩阵可指连接至可变节点中的每一个的校验节点数量相同的矩阵。另外,不规则的奇偶校验矩阵可指连接至可变节点中的每一个的校验节点的数量不同的矩阵。下文中,连接至可变节点的校验节点的数量可被称作可变节点的程度。
为了更新可变节点,由于需要对连接至可变节点的校验节点执行操作,随着可变节点的程度更高,更新可变节点所需的计算量可增大。主解码器110可具有足够的计算资源来在一个周期中更新具有最大程度的可变节点。例如,一个周期可指一个时钟周期。如果主解码器110在一个周期中更新一个可变节点,则主解码器110的计算资源在更新具有相对低的程度的可变节点的周期中可能无法被充分利用。
根据本公开中的示例性实施例,主解码器110可包括多个单位逻辑电路111和112以及模式控制器113。所述多个单位逻辑电路111和112可提供用于更新可变节点的计算资源。所述多个单位逻辑电路111和112可支持至少两种操作模式。例如,所述多个单位逻辑电路111和112可支持所有所述多个单位逻辑电路更新一个可变节点的单模式,以及所述多个单位逻辑电路中的每一个通过更新不同的可变节点而并行地更新多个可变节点的多模式。
模式控制器113可控制所述多个单位逻辑电路111和112的操作模式。根据本公开中的示例性实施例,模式控制器113可控制所述多个单位逻辑电路111和112,以在单模式下更新可变节点中的其程度大于阈值程度的高程度可变节点,并且在多模式下更新其程度小于或等于阈值程度的低程度可变节点。
图2是示出根据本公开中的示例性实施例的LDPC解码器的操作的流程图。
在步骤S101中,LDPC解码器可利用从外部接收的码字的值将可变节点初始化。在步骤S102至步骤S105中,LDPC解码器可按次序更新所述多个可变节点。下文中,按次序更新的可变节点中的当前要更新的可变节点可被称作目标可变节点。
在步骤S102中,LDPC解码器可确定目标可变节点的程度是否大于阈值程度d。例如,LDPC解码器可参考存储在其中的奇偶校验矩阵确定目标可变节点的程度,并且将确定的程度与阈值程度d进行比较。
当目标可变节点是其程度大于阈值程度d的高程度可变节点(HDV)时(步骤S102中的是),LDPC解码器在步骤中S103可在单模式下更新目标可变节点。
当目标可变节点是其程度小于或等于阈值程度d的低程度可变节点(LDV)时(步骤S 102中的否),在步骤S104中,LDPC解码器可在多模式下更新包括目标可变节点的两个或更多个低程度可变节点。也就是说,可在一个周期中并行地更新两个或更多个低程度可变节点。
在步骤S105中,LDPC解码器可确定是否所有可变节点已被更新。当并非所有可变节点被更新时(步骤S105中的否),LDPC解码器可返回步骤S102,以更新未被更新的可变节点。
当所有可变节点被更新时(步骤S105中的是),LDPC解码器可完成可变节点更新。在步骤S106中,LDPC解码器可向外部输出更新的可变节点的值,作为解码的消息。
根据本公开中的示例性实施例,LDPC解码器可通过使用对于更新高程度可变节点来说足够的计算资源来并行地更新多个低程度可变节点。LDPC解码器即使在低程度可变节点被更新的周期中也可完全利用内部计算资源。因此,LDPC解码器的吞吐量可提高,并且可快速校正码字中的错误。
下文中,将参考图3至图13详细描述根据本公开中的示例性实施例的LDPC解码器。
图3是用于更详细地描述根据本公开中的第一示例性实施例的LDPC解码器的框图。
图3示出了可被包括在LDPC解码器中的主解码器1100。主解码器1100可对应于参考图1描述的主解码器110。
主解码器1100可包括数据缓冲器1110、可变节点更新器1120、校验节点更新器1130、校验节点传递单元1140和综合征检查仪1150。
数据缓冲器1110可缓冲从外部接收的码字CW。码字CW可为通过LDPC解码器编码的数据,并且可为其中将奇偶校验位添加至消息的数据。数据缓冲器1110还可从外部接收和缓冲对应于码字CW的每个比特的对数似然比(LLR)。
可变节点更新器1120可基于码字CW和对数似然比将可变节点初始化。可变节点可对应于码字CW的比特。
校验节点更新器1130可通过利用存储在数据缓冲器1110中的可变节点的值更新校验节点的值。例如,校验节点更新器1130可通过执行连接至校验节点的可变节点之间的最小值(min)运算来更新校验节点。
校验节点传递单元1140可将通过校验节点更新器1130更新的校验节点的值传递至可变节点更新器1120。
可变节点更新器1120可基于来自校验节点传递单元1140的消息更新可变节点。根据本公开中的示例性实施例,可变节点更新器1120可包括多个单位逻辑电路1121和1122、模式控制器1123和多个校验节点缓冲器1124和1125。
所述多个单位逻辑电路1121和1122和模式控制器1123可对应于参考图1描述的所述多个单位逻辑电路111和112和模式控制器113。也就是说,所述多个单位逻辑电路1121和1122可在所有单位逻辑电路1121和1122更新一个可变节点的单模式下操作,或在单位逻辑电路1121和1122中的每一个通过更新一个可变节点而更新多个可变节点的多模式下操作。模式控制器113可基于待更新的目标可变节点的程度控制所述多个单位逻辑电路1121和1122在单模式或多模式下操作。
当目标可变节点是高程度可变节点时,所述多个单位逻辑电路1121和1122可在单模式下操作。尽管将参考图4至图8详细描述,为了更新可变节点,可对连接至可变节点的校验节点执行求和运算。连接至目标可变节点的校验节点可分为第一校验节点和第二校验节点。在单模式中,第一单位逻辑电路1121可对第一校验节点执行求和运算,第二单位逻辑电路1122可对第二校验节点执行求和运算,从而更新目标可变节点。
当目标可变节点是低程度可变节点时,所述多个单位逻辑电路1121和1122可在多模式下操作。例如,作为低程度可变节点的第一目标可变节点和第二目标可变节点可在所述多个单位逻辑电路1121和1122中并行地更新。具体地说,在多模式中,第一单位逻辑电路1121可对连接至第一目标可变节点的校验节点执行求和运算,第二单位逻辑电路1122可对连接至第二目标可变节点的校验节点执行求和运算。
所述多个单位逻辑电路1121和1122中的每一个可包括具有两个或更多个输入的加法器,以对校验节点执行求和运算。
所述多个校验节点缓冲器1124和1125可缓冲从校验节点传递单元1140传递的校验节点的值。具体地说,第一校验节点缓冲器1124可电连接至第一单位逻辑电路1121,并且可缓冲在第一单位逻辑电路1121中待计算的校验节点的值。此外,第二校验节点缓冲器1125可电连接至第二单位逻辑电路1122,并且可缓冲在第二单位逻辑电路1122中待计算的校验节点的值。
同时,虽然在图3中省略,但是可变节点更新器1120还可包括用于在单模式下对所述多个单位逻辑电路1121和1122对第一校验节点和第二校验节点的操作结果进行综合的加法器。另外,可变节点更新器1120还可包括用于根据更新的可变节点的值的大小将更新的可变节点中的每一个量化为0或1的量化器。量化的数据可输出至外部,作为解码的数据。
综合征检查仪1150可从可变节点更新器1120获得解码的数据,并且对获得的数据执行奇偶校验操作。综合征检查仪1150可通过对存储在LDPC解码器中的奇偶校验矩阵和获得的数据的每个比特执行矩阵操作来获得综合征向量。例如,当综合征向量的所有分量的值为“0”时,可确定解码的数据具有正确的值,并且当综合征向量的任一个分量不具有值“0”时,可确定解码的数据有错误。
当确定解码的数据中无错误时,综合征检查仪1150可向外部输出解码的数据作为错误校正的消息(MSG)。另一方面,当确定解码的数据中有错误时,综合征检查仪1150可将信号提供至校验节点更新器1130,以重复地执行校验节点更新处理和可变节点更新处理。
下文中,将参考图4至图8详细描述LDPC解码器的操作。
图4是示出由Tanner图表示的LDPC解码的概念图。
LDPC码可指在限定LDPC码的奇偶校验矩阵的各行各列中具有非常少数量的“1”的码。参照图4,LDPC码包括校验节点610和可变节点620,LDPC码的结构可通过由连接校验节点610和可变节点620的边615组成的Tanner图限定。
在校验节点更新处理之后从校验节点610传递至可变节点620的值是校验节点消息615A,并且在可变节点的更新之后从可变节点620传递至校验节点610的值是可变节点消息615B。
图5是示出LDPC码的Tanner图的示图。
参照图5,LDPC码的Tanner图包括表示预定LDPC码的奇偶校验方程的15个校验节点C1至C15、表示码字的各个符号的九个可变节点V1至V9、和表示校验节点C1至C15与可变节点V1至V9之间的连接关系的边。根据奇偶校验矩阵,边可连接校验节点C1至C15和可变节点V1至V9。可变节点V1至V9的初始值可为硬决策数据或软决策数据。同时,图5所示的可变节点和校验节点的数量仅为示例,并且LDPC码可包括成千上万的可变节点和几千校验节点。
图5示出了不规则的LDPC码,在其中连接至校验节点C1至C15中的每一个的可变节点的数量不同并且连接至可变节点V1至V9中的每一个的可变节点的数量不同。也就是说,在图5的Tanner图表示的LDPC码中,可变节点可具有不同的程度。
图6A和图6B是示出图5的Tanner图中具有不同程度的可变节点的示图。
图6A以粗线示出了表示图5的Tanner图中第一可变节点V1与校验节点之间的连接关系的边。参照图6A,第一可变节点V1可连接至九个校验节点C1、C2、C4、C5、C6、C8、C10、C11和C15,并且第一可变节点V1的程度可为“9”。
图6B以粗线示出了表示图5的Tanner图中第三可变节点V3与校验节点之间的连接关系的边。参照图6B,第三可变节点V3可连接至四个校验节点C2、C7、C8和C12,并且第三可变节点V3的程度可为“4”。
图7是示出对应于图5的Tanner图的奇偶校验矩阵的示图。
奇偶校验矩阵可包括多列和多行。所述多列可对应于可变节点V1至V9,所述多行可对应于校验节点C1至C15。在图7的奇偶校验矩阵中,互连的可变节点和校验节点交叉的点处的分量可具有值“1”,断开的可变节点和校验节点交叉的点处的分量可具有值“0”。在图7中,在有“1”的点处示出图案,而在有“0”的点处没有图案示出。
与图5所示的Tanner图类似,图7所示的奇偶校验矩阵的每列中可存在不同数量的“1”。也就是说,可变节点的程度可彼此不同。例如,第一可变节点V1的一列中的九个“1”可表示连接至第一可变节点V1的九个校验节点。作为另一示例,第三可变节点V3的一列中的四个“1”可表示连接至第三可变节点V3的四个校验节点。
可基于连接至可变节点的校验节点的数量(即,可变节点的程度)确定更新一个可变节点所需的计算量。例如,为了更新第一可变节点V1,可对来自九个校验节点的消息执行操作,并且为了更新第三可变节点V3,可对来自四个校验节点的消息执行操作。因此,随着可变节点的程度变高,更新可变节点所需的计算量可增大。
根据本公开中的示例性实施例,LDPC解码器可控制多个单位逻辑电路更新其中在一个周期中所需的计算量大于阈值量的一个高程度可变节点,或者更新其中在一个周期中所需的计算量小于或等于阈值计算量的两个或更多个低程度可变节点。即使低程度可变节点被更新,所述多个单位逻辑电路提供的计算资源也可充分利用,从而LDPC解码器的吞吐量可增大。
同时,可关于其它可变节点相对地确定一个可变节点是高程度可变节点还是低程度可变节点。例如,在图7的示例中,可变节点V1-V9的程度为2、3、4、8和9之一。所述多个单位逻辑电路可提供充分计算资源来在一个周期中更新具有最高程度“9”的可变节点。
当LDPC解码器包括具有等同计算资源的两个单位逻辑电路时,一个单位逻辑电路可具有充分计算资源以更新程度为2至4的可变节点。例如,两个单位逻辑电路可各自包括具有五个输入的加法器。由于两个单位逻辑电路可处理总共10个输入,因此在单模式下可更新程度为9的可变节点,并且在多模式下可更新程度为2至4的可变节点。
在上面的示例中,LDPC解码器可使用全部所述多个单位逻辑电路来更新作为高程度可变节点的程度为8或9的可变节点。另一方面,LDPC解码器可使用所述多个单位逻辑电路中的每一个来并行地更新作为低程度可变节点的程度为2至4的可变节点。
也就是说,可基于可变节点的程度中的最大程度和所述多个单位逻辑电路的数量确定用于将高程度可变节点与低程度可变节点进行划分的阈值程度。特别地,当单位逻辑电路包括加法器时,阈值程度可不超过加法器的输入的数量。换句话说,阈值计算量可不超过单位逻辑电路中的每一个的最大计算量。
图8是示出LDPC解码器的操作的流程图。
LDPC解码器可通过重复其中可变节点和校验节点交换针对各节点生成和更新的消息的处理来执行LDPC解码。可通过各种方法执行可变节点更新处理和校验节点更新处理。下文中,将以通过最小值求和(min-sum)方法更新可变节点和校验节点的情况作为示例描述LDPC解码器的操作。
在步骤S201中,LDPC解码器可将可变节点初始化为从外部接收到的码字的值。各个可变节点可对应于码字的各比特。
在步骤S202中,LDPC解码器可利用最小值(min)运算更新校验节点。例如,当将消息从校验节点传递至目标可变节点时,LDPC解码器可将在连接至校验节点的可变节点中除目标可变节点之外的其余可变节点中的最小值作为消息传递。为了传递这样的消息,LDPC解码器可存储连接至校验节点的可变节点的值中的最小值、准最小值、和该最小值的码。
在步骤S203中,LDPC解码器可利用求和运算更新可变节点。例如,当将消息从可变节点传递至目标校验节点时,LDPC解码器可将连接至可变节点的校验节点中的除目标校验节点之外的其余可变节点之和作为消息传递。为了传递这样的消息,LDPC解码器可执行连接至可变节点的校验节点的值的求和运算。
稍后将参考图9A和图9B描述根据本公开中的示例性实施例的利用多个单位逻辑电路更新可变节点的方法的示例。
在步骤S204中,LDPC解码器可基于更新的可变节点的值通过执行综合征检查确定LDPC解码是否成功。例如,LDPC解码器可通过量化可变节点的值并对奇偶校验矩阵和量化的值执行积运算来生成综合征向量。LDPC解码器可在综合征向量为零向量时确定LDPC解码成功,否则,可确定LDPC解码失败。
当LDPC解码成功时(步骤S204中的“是”),LDPC解码器可向外输出量化的值,作为解码的数据。
另一方面,当LDPC解码失败时(步骤S204中的否),LDPC解码器可返回至步骤S202,以重复地更新校验节点、可变节点和综合征检查。
图9A和图9B是示出根据本公开中的第一示例性实施例的更新LDPC解码器的可变节点的方法的流程图。
在图9A的示例中,LDPC解码器可按照奇偶校验矩阵的列次序更新可变节点。
在步骤S301中,LDPC解码器的模式控制器可从第一可变节点开始执行用于更新的初始化操作。
在步骤S302中,模式控制器可确定第i(i是自然数)可变节点(即,待更新的目标可变节点)的程度是否大于阈值程度d。
当目标可变节点是程度大于阈值程度d的高程度可变节点时(步骤S302中的是),在步骤S303中,模式控制器可在单模式下控制所述多个单位逻辑电路更新目标可变节点。
另一方面,当目标可变节点是程度小于或等于阈值程度d的低程度可变节点时(步骤S302中的否),在步骤S304中,模式控制器可确定是否跳过低程度可变节点的更新。
例如,当已有跳过的低程度可变节点时(步骤S304中的“是”),在步骤S305中,模式控制器可在多模式下(即,并行地)控制所述多个单位逻辑电路更新跳过的可变节点和目标可变节点。
另一方面,如果没有跳过的低程度可变节点(步骤S304中的否),模式控制器可跳过目标可变节点的更新,直至识别出可与目标可变节点并行地更新的低程度可变节点。当没有跳过的低程度可变节点时(步骤S304中的否),在步骤S306中接着执行跳过可变节点更新,从而表示现在有跳过的低程度可变节点。
在步骤S307中,模式控制器可确定是否所有可变节点已被更新。当不是所有可变节点都被更新时(步骤S307中的否),模式控制器可通过执行步骤S308更新下一可变节点。另一方面,当更新所有可变节点时(步骤S307中的“是”),模式控制器可完成可变节点更新。
在图9B的示例中,LDPC解码器可按程度的降序更新可变节点。
LDPC解码器的模式控制器可在步骤S401中按程度的降序对齐可变节点,并且在步骤S402中从具有最高程度的可变节点开始执行用于更新的初始化操作。
在步骤S403中,模式控制器可确定第i可变节点(即,待更新的目标可变节点)的程度是否大于阈值程度d。
当目标可变节点是程度大于阈值程度d的高程度可变节点时(步骤S403中的“是”),在步骤S404中,模式控制器可在单模式下控制所述多个单位逻辑电路更新目标可变节点。
在步骤S405中,模式控制器可确定是否所有可变节点已被更新。当所有可变节点被更新时(步骤S405中的“是”),模式控制器可完成可变节点更新。另一方面,当不是所有可变节点都被更新时(步骤S405中的否),模式控制器可通过执行步骤S406更新下一可变节点。
当目标可变节点是程度小于或等于阈值程度d的低程度可变节点时(步骤S403中的“否”),目标可变节点的下一可变节点也可为低程度可变节点。在步骤S407中,模式控制器可在多模式下控制所述多个单位逻辑电路更新目标可变节点和下一可变节点。
在步骤S408中,模式控制器可确定是否所有可变节点都被更新。当不是所有可变节点都被更新时(步骤S408中的否),模式控制器可通过执行步骤S409更新下一可变节点。另一方面,当所有可变节点都被更新时(步骤S408中的“是”),模式控制器可完成可变节点更新。
根据本公开中的示例性实施例,LDPC解码器可在按照预定次序更新可变节点的处理中根据目标可变节点的程度切换运行中的所述多个单位电路的操作模式。LDPC解码器可利用可在一个周期中更新高程度可变节点的计算资源在一个周期中更新多个低程度可变节点。因此,更新可变节点所需的时间可减少,并且可有效地利用LDPC解码器的计算资源。
图10是根据本公开中的第一示例性实施例的LDPC解码操作的时序图。
图10示出了通过七个时间点t0至t6划分的六个时间段。每个时间段可对应于用于更新可变节点的一个周期。图10示出了可变节点V1至V9在六个时间段中的哪个时间段更新。可变节点V1至V9可对应于图5至图7所示的可变节点V1至V9。也就是说,可变节点V1、V2和V4可为高程度可变节点,并且可变节点V3和V5至V9可为低程度可变节点。
参照图10,高程度可变节点可在时间段t0至t 1、时间段t 1至t2和时间段t2至t3中一个一个地更新。另一方面,低程度可变节点可在时间段t3至t4、时间段t4至t5和时间段t5至t6中两个两个地并行地更新。在图10的示例中,可通过并行地更新低程度可变节点来在六个周期期间更新九个可变节点V1至V9。根据本公开中的示例性实施例,与在一个周期期间更新一个可变节点的情况相比,可变节点更新处理时间可缩短约33%。因此,LDPC解码器的解码性能可提高。
图11A和图11B是示出根据本公开中的第一示例性实施例的根据LDPC解码器的操作模式的计算资源使用率的示图。
图11A示出了当LDPC解码器的可变节点更新器在单模式下更新作为高程度可变节点的第一可变节点V1时的计算资源使用率。例如,当可变节点更新单元包括两个单位逻辑电路并且每个单位逻辑电路包括具有5个输入的加法器时,可变节点更新单元可在一个周期中对10个输入执行求和运算。
图11A的单位逻辑电路中示出的阴影示意性地示出了单位逻辑电路中的每一个的计算资源使用率。由于可执行对九个校验节点的求和运算以更新程度为9的第一可变节点V1,因此,为了更新第一可变节点V1,可使用单位逻辑电路提供的计算资源的总共约90%。
图11B示意性地示出当LDPC解码器的可变节点更新器在多模式下更新作为低程度可变节点的第六可变节点V6和第七可变节点V7时的计算资源使用率。可变节点更新器可包括两个单位逻辑电路,并且每个单位逻辑电路可包括具有5个输入的加法器。第一单位逻辑电路可对四个校验节点执行求和运算,以更新程度为4的第六可变节点V6,第二单位逻辑电路可对三个校验节点执行求和运算,以更新程度为3的第七可变节点V7。LDPC解码器可在同时更新第六可变节点V6和第七可变节点V7的同时使用单位逻辑电路提供的计算资源的总共约70%。
根据本公开中的示例性实施例,即使在更新低程度可变节点的情况下,LDPC解码器也可有效地利用单位逻辑电路提供的计算资源。因此,可提高LDPC解码器的吞吐量。
同时,已经参考图3至图11B,以LDPC解码器在一个周期中更新一个或两个可变节点的情况作为示例描述了本公开,但是本公开不限于此。例如,LDPC解码器可包括三个或更多个单位逻辑电路,LDPC解码器可在多模式下更新三个或更多个可变节点。
另外,当利用具有改进的并行性的准循环(QC)LDPC码等执行LDPC解码时,LDPC解码器可在单模式下并行地更新Q(其中Q是自然数)个可变节点,并且在多模式下并行地更新Q×K(其中K是自然数)个可变节点。下文中,将参考图12和图13描述根据本公开中的第二示例性实施例的LDPC解码器。
图12是示出根据本公开中的第二示例性实施例的奇偶校验矩阵的示图。
图12的奇偶校验矩阵可包括M×N(M和N是自然数)个子矩阵802。子矩阵802中的每一个可为零矩阵O或者Q×Q维循环移位单位矩阵I。限定二进制LDPC码的奇偶校验矩阵的每个分量可确定为0或1。
如参考图5所述,LDPC码的结构可通过由校验节点、可变节点和在校验节点与可变节点之间连接的边构成的Tanner图限定。
构成Tanner图的校验节点和可变节点可各自分别对应于奇偶校验矩阵的列和行。因此,奇偶校验矩阵的列数(M×Q)和行数(N×Q)可分别对应于构成Tanner图的校验节点的数量和可变节点的数量。当奇偶校验矩阵的分量为1时,各自对应于该分量所在的行和列的校验节点和可变节点可通过Tanner图上的边连接。
在图12的奇偶校验矩阵中,在对应于循环移位单位矩阵I的位置处示出了图案,而在对应于零矩阵O的位置处没有图案示出。每列中的“1”的数量可对应于与每列关联的循环移位单位矩阵I的数量。连接至各列的循环移位单位矩阵I的数量可不同,并且奇偶校验矩阵的各列可具有不同数量的“1”。也就是说,奇偶校验矩阵的各个可变节点的程度可不同。
同时,在奇偶校验矩阵中,对应于同一子矩阵中包括的Q列的Q个可变节点可并行地更新。根据本公开中的示例性实施例,LDPC解码器可具有充足的计算资源来在一个周期中并行地更新Q个高程度可变节点。另外,LDPC解码器可利用计算资源在一个周期中并行地更新Q×K(其中K是自然数)个低程度可变节点。
图13是用于更详细地描述根据本公开中的第二示例性实施例的LDPC解码器的框图。
图13示出了LDPC解码器中可包括的主解码器2100。主解码器2100可对应于参考图1描述的主解码器110。
主解码器2100可包括数据缓冲器2110、可变节点更新器2120、校验节点更新器2130、校验节点传递单元2140和综合征检查仪2150。数据缓冲器2110、校验节点更新器2130、校验节点传递单元2140和综合征检查仪2150可与参考图3描述的数据缓冲器1110、校验节点更新器1130、校验节点传递单元1140和综合征检查仪1150具有相似结构。下文中,将集中于可变节点更新器2120描述根据本公开中的第二示例性实施例的LDPC解码器。
可变节点更新器2120可包括多个单位逻辑电路组、模式控制器2123和多个消息缓冲器2124和2125。当基于图12的奇偶校验矩阵执行LDPC解码时,可变节点更新器2120可包括Q个单位逻辑电路组。
单位逻辑电路组中的每一个可包括多个单位逻辑电路ULC1和ULC2。单位逻辑电路组中的每一个响应于模式控制器2123的控制在单模式下操作以在一个周期中更新一个高程度可变节点,或者在多模式下操作以在一个周期中更新多个低程度可变节点。
单位逻辑电路组可并行地操作。可变节点更新器2120可利用单位逻辑电路组在单模式下更新Q个高程度可变节点或者在多模式下更新Q×K个低程度可变节点。这里,K可表示在单位逻辑电路组中包括的逻辑电路组的数量。
第一校验节点缓冲器2124可缓冲单位逻辑电路组中包括的第一单位逻辑电路ULC1的操作所必需的校验节点,第二校验节点缓冲器2125可缓冲单位逻辑电路组中包括的第二单位逻辑电路UCL2的操作所必需的校验节点。
根据本公开中的第二示例性实施例,即使在基于QC-LDPC码执行LDPC解码的LDPC解码器中,也可以通过有效利用计算资源进一步提高LDPC解码的并行性。因此,可提高LDPC解码器的性能。
根据本公开中的示例性实施例的LDPC解码器可应用于各种装置和系统。例如,LDPC解码器可应用于储存装置,以支持储存装置准确和快速地输出存储在其中的数据。下文中,将参考图14至图19详细描述根据本公开中的示例性实施例的储存装置。
图14是示出根据本公开中的示例性实施例的储存装置的框图。
储存装置200可包括储存控制器210和非易失性存储器220。
非易失性存储器220可在储存控制器210的控制下执行擦除操作、写操作和读操作。非易失性存储器220可通过输入/输出线从储存控制器210接收命令CMD、地址ADDR和数据DATA。另外,非易失性存储器220可通过电力线从储存控制器210接收电力PWR,并且通过控制线从储存控制器210接收控制信号CTRL。控制信号CTRL可包括命令锁存使能CLE、地址锁存使能ALE、芯片使能nCE、写使能nWE、读使能nRE等。
储存控制器210可整体控制非易失性存储器220的操作。储存控制器210可包括校正错误比特的LDPC单元217。LDPC单元217可包括LDPC编码器和LDPC解码器。
LDPC编码器可对在非易失性存储器220中待编程的数据执行错误校正编码,以生成增加了奇偶校验位的数据。奇偶校验位可被存储在非易失性存储器220中。
LDPC解码器可对从非易失性存储器220中读取的数据执行错误校正解码。LDPC解码器可确定错误校正解码是否成功,并且根据确定结果输出识别信号。LDPC解码器可使用在LDPC编码处理中生成的奇偶校验位,以校正数据的错误比特。
同时,当错误比特的数量大于可校正错误比特极限时,LDPC单元217可能无法校正错误比特。在这种情况下,会生成错误校正失败信号。
LDPC单元217可利用低密度奇偶校验(LDPC)码执行错误校正。LDPC单元217可包括用于错误校正的任何电路、系统或装置。这里,LDPC码包括二进制LDPC码和非二进制LDPC码。根据实施方式,LDPC单元217可利用硬决策数据和软决策数据执行错误比特校正。
储存控制器210和非易失性存储器220可集成至一个半导体装置中。例如,储存控制器210和非易失性存储器220可集成至一个半导体装置中,以配置固态驱动器(SSD)。固态驱动器可包括被配置为在半导体存储器中存储数据的储存装置。
储存控制器210和非易失性存储器220可集成至一个半导体装置中,以配置存储器卡。例如,储存控制器210和非易失性存储器220可集成至一个半导体装置中,以配置诸如个人计算机存储卡国际协会(PCMCIA)、小型闪存卡(CF)、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC和MMCmicro)、SD卡(SD、迷你SD、微SD和SDHC)和通用闪存(UFS)的存储器卡。
图15是是用于更详细地描述图14的非易失性存储器的示图。
图15是示出存储器装置的示例性框图。参照图15,存储器装置300可包括控制逻辑电路320、存储器单元阵列330、页缓冲器340、电压生成器350和行解码器360。虽然图15中未完全示出,但是存储器装置300还可包括存储器接口电路310,并且还包括列逻辑、预解码器、温度传感器、命令解码器、地址解码器等。
控制逻辑电路320可整体控制存储器装置300中的各种操作。控制逻辑电路320可响应于来自存储器接口电路310的命令CMD和/或地址ADDR输出各种控制信号。例如,控制逻辑电路320可输出电压控制信号CTRL_vol、行地址X-ADDR和列地址Y-ADDR。
存储器单元阵列330可包括多个存储器块BLK1至BLKz(z是正整数),并且所述多个存储器块BLK1至BLKz中的每一个可包括多个存储器单元。存储器单元阵列330可通过位线BL连接至页缓冲器340,并且通过字线WL、串选择线SSL和接地选择线GSL连接至行解码器360。
在示例性实施例中,存储器单元阵列330可包括3维(3D)存储器单元阵列,并且3D存储器单元阵列可包括多个NAND串。各个NAND串可包括分别连接至竖直地堆叠在衬底上的字线的存储器单元。美国专利特开公开No.7,679,133、美国专利特开公开No.8,553,466、美国专利特开公开No.8,654,587、美国专利特开公开No.8,559,235和美国专利申请公开No.2011/0233648以引用方式全文并入本文中。在示例性实施例中,存储器单元阵列330可包括2维(2D)存储器单元阵列,并且2D存储器单元阵列可包括沿行方向和列方向排列的多个NAND串。
页缓冲器340可包括多个页缓冲器PB1至PBn(n是大于或等于3的整数),并且所述多个页缓冲器PB1至PBn通过多条位线BL分别连接至存储器单元。页缓冲器340可响应于列地址Y-ADDR选择位线BL中的至少一条。页缓冲器340可根据操作模式作为写驱动器或者读出放大器操作。例如,在编程操作期间,页缓冲器340可将对应于待编程的数据的位线电压施加至选择的位线。在读操作期间,页缓冲器340可通过感测选择的位线的电流或电压来感测存储在存储器单元中的数据。
电压生成器350可基于电压控制信号CTRL_vol生成用于执行编程操作、读操作和擦除操作的各种电压。例如,电压生成器350可生成编程电压、读电压、编程验证电压、擦除电压等,作为字线电压VWL。
行解码器360可响应于行地址X-ADDR选择所述多条字线WL之一,并且选择所述多条串选择线SSL之一。例如,在编程操作期间,行解码器360可将编程电压和编程验证电压施加至选择的字线,并且在读操作期间,将读电压施加至选择的字线。
图16是用于描述根据本公开中的示例性实施例的可应用于储存装置的3D V-NAND结构的示图。当储存装置的非易失性存储器实施为3D V-NAND类型的闪速存储器时,构成非易失性存储器的多个存储器块中的每一个可由图16所示的等效电路表示。
图16所示的存储器块BLKi表示按照三维结构形成在衬底上的三维存储器块。例如,存储器块BLKi中包括的多个存储器NAND串可在垂直于衬底的方向上形成。
参照图16,存储器块BLKi可包括连接在位线BL1、BL2和BL3与公共源极线CSL之间的多个存储器NAND串NS11至NS33。所述多个存储器NAND串NS11至NS33中的每一个可包括串选择晶体管SST、多个存储器单元MC1、MC2、……、MC8、和接地选择晶体管GST。图16示出了所述多个存储器NAND串NS11至NS33中的每一个包括八个存储器单元MC1、MC2、……、MC8,但不一定限于此。
串选择晶体管SST可连接至对应的串选择线SSL1、SSL2和SSL3。所述多个存储器单元MC1、MC2、……、MC8可分别连接至对应的栅极线GTL1、GTL2、……、GTL8。栅极线GTL1、GTL2、……、GTL8可对应于字线,栅极线GTL1、GTL2、……、GTL8中的一些可对应于伪字线。接地选择晶体管GST可连接至对应的接地选择线GSL1、GSL2和GSL3。串选择晶体管SST可连接至对应的位线BL1、BL2和BL3,接地选择晶体管GST可连接至公共源极线CSL。
具有相同高度的字线(例如,WL1)共同连接,并且接地选择线GSL1、GSL2和GSL3和串选择线SSL1、SSL2和SSL3可各自彼此分离。图16示出了存储器块BLK连接至八条栅极线GTL1、GTL2、……、GTL8和三条位线BL1、BL2、BL3,但不一定限于此。
当存储器块BLK中包括的存储器单元被编程时,存储器单元的阈值电压可形成特定概率分布。阈值电压分布可映射至不同的逻辑状态。
图17A和图17B是用于描述存储器单元的阈值电压分布的示图。
在图17A和图17B所示的曲线图中,水平轴表示阈值电压的大小Vth,竖直轴表示存储器单元的数量(#of Cel ls)。图17A和图17B示出了以存储器单元是存储3比特数据的三电平单元(TLC)的情况为例由各个阈值电压分布表示的逻辑状态。
当TLC存储器装置的存储器单元中对三比特编程时,在存储器单元中形成八个阈值电压分布中的任一个。
由于多个存储单元之间电特性的微小差异,使用相同数据编程的每个存储器单元的每个阈值电压在预定范围内形成阈值电压分布。在TLC的情况下,如图所示,形成了七个编程状态的阈值电压分布P1至P7和一个擦除状态的阈值电流分布E。图17A是理想的分布图,说明没有状态分布重叠,并且为每个阈值电压分布提供了一定范围的读取电压裕度。
如图17B所示,对于闪速存储器,随着时间的推移,可能会发生其中捕获在浮置栅极或隧道氧化物中的电子被发射的电荷损失。此外,在重复编程和擦除时,隧道氧化物劣化,从而进一步增加电荷损失。电荷损失可降低阈值电压。例如,阈值电压的分布可向左移动。
另外,编程干扰、擦除干扰和/或反向模式依赖现象可增加阈值电压的分布。因此,由于上述原因导致存储器单元的特性劣化,各相邻状态E和P1到P7的阈值电压分布可彼此重叠,如图17B所示。
当阈值电压分布重叠时,读取的数据可包括许多错误。例如,如果在施加第三读电压Vread3时存储器单元处于接通状态,则确定存储器单元具有第二编程状态P2,并且如果存储器单元处于关断状态,则确定存储器单元具有第三编程状态P3。然而,当在第二编程状态P2和第三编程状态P3重叠的区段中施加第三读电压Vread3时,即使存储器单元处于关断状态,存储器单元也可被读为处于接通状态。因此,随着阈值电压分布重叠,读取的数据可包括许多错误比特。
因此,需要一种能够准确读取存储在半导体存储器装置的存储器单元中的数据的技术。
图18是用于描述根据本公开中的示例性实施例的储存装置的错误校正方法的示图。
图18示出了参考图14描述的非易失性存储器220和LDPC单元217。
LDPC单元217可基于不规则的LDPC码执行LDPC编码和LDPC解码。非易失性存储器220可存储通过不规则的LDPC码编码的数据。
LDPC单元217可通过对从非易失性存储器220中读取的数据执行LDPC解码来向外部输出解码的数据。根据本公开中的示例性实施例,LDPC单元217可包括具有多个单位逻辑电路(ULC)的单位逻辑电路组(ULC组)和用于控制单位逻辑电路组的模式控制器。
LDPC单元217可执行用从非易失性存储器220读取的数据的值初始化可变节点、更新连接至可变节点的校验节点、更新连接至校验节点的可变节点、以及根据更新的可变节点的综合征检查结果向外输出可变节点的值作为解码的数据的操作。
根据实施方式,LDPC单元217可包括M×N个子矩阵,它们中的每一个可基于作为零矩阵或Q×Q(其中Q是自然数)维循环移位单位矩阵的奇偶校验矩阵更新校验节点和可变节点。
根据本公开中的示例性实施例,LDPC单元217可根据可变节点的程度是否超过阈值程度,通过在一个周期中执行Q个可变节点来更新可变节点,或者通过在一个周期中同时更新Q×K个可变节点来更新Q×K个可变节点。这里,K可对应于一个单位逻辑电路组中包括的单位逻辑电路的数量。
根据本公开中的示例性实施例,可在能够并行地更新可变节点的LDPC解码器中进一步提高LDPC解码的并行性。因此,LDPC解码器的吞吐量可提高,并且可快速校正从非易失性存储器220输出的数据中的错误。因此,可提高储存装置200的性能和可靠性。
图19是示出根据本公开中的示例性实施例的主机储存系统的框图。
主机储存系统10可包括主机100和储存装置200。另外,储存装置200可包括储存控制器210和非易失性存储器(NVM)220。
主机100可包括电子装置,例如,便携式电子装置(诸如移动电话、MP3播放器和笔记本计算机)或者电子装置(诸如台式计算机、游戏机、TV和投影仪)。主机100可包括至少一个操作系统(OS)。操作系统可全面管理和控制主机100的功能和操作。
储存装置200可包括用于根据来自主机100的请求存储数据的储存媒介。作为示例,储存装置200可包括固态驱动器(SSD)、嵌入式存储器和可拆除外部存储器中的至少一个。当储存装置200是SSD时,储存装置200可为符合快速非易失性存储器(NVMe)标准的装置。当储存装置200是嵌入式存储器或外部存储器时,储存装置200可为符合通用闪速存储(UFS)或者内置多媒体卡(eMMC)标准的装置。主机100和储存装置200可各自根据采用的标准协议生成数据包并传输生成的数据包。
即使不供应电力,非易失性存储器220也可保留存储的数据。非易失性存储器220可通过编程操作存储从主机100提供的数据,并且可通过读操作输出存储在非易失性存储器220中的数据。
当非易失性存储器220包括闪速存储器时,闪速存储器可包括2D NAND存储器阵列或者3D(或竖直)NAND(VNAND)存储器阵列。作为另一示例,储存装置200可包括其它各种类型的非易失性存储器。例如,储存装置200可包括磁性RAM(MRAM)、自旋转移转矩MRAM(MRAM)、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻存储器以及各种其它类型的存储器。
储存控制器210可响应于来自主机100的请求控制非易失性存储器220。例如,储存控制器210可将从非易失性存储器220读取的数据提供至主机100,并且将从主机100提供的数据存储在非易失性存储器220中。针对该操作,储存控制器210可支持诸如非易失性存储器220的读、编程和擦除之类的操作。
储存控制器210可包括主机接口211、存储器接口212和中央处理单元(CPU)213。另外,储存控制器210还可包括闪存转换层(FTL)214、数据包管理器215、缓冲存储器216、LDPC单元217和高级加密标准(AES)引擎218。储存控制器210还可包括其中加载有闪存转换层(FTL)214的工作存储器(未示出),并且可通过允许CPU 213执行闪存转换层(FTL)214控制将数据写入非易失性存储器220和从中读数据的操作。
主机接口211可将数据包发送至主机100和从主机100接收数据包。从主机100发送至主机接口211的数据包可包括命令、将被写入非易失性存储器220中的数据等,并且从主机接口211发送至主机100的数据包可包括对命令的响应、从非易失性存储器220读取的数据等。
存储器接口212可将待写入非易失性存储器220中的数据发送至非易失性存储器220,或者接收从非易失性存储器220读取的数据。存储器接口212可实施为符合诸如切换(toggle)或开放式NAND闪存接口(ONFI)的标准协议。
闪存转换层214可执行诸如地址映射、磨损平衡和垃圾收集的各种功能。地址映射操作是将从主机100接收的逻辑地址改变为用于在非易失性存储器220中实际存储数据的物理地址的操作。磨损平衡是一种通过允许均匀使用非易失性存储器220中的块来防止特定块过度劣化的技术,并且可以通过例如用于平衡物理块擦除计数的固件技术来实现。垃圾收集是一种通过将块的有效数据复制到新块,然后擦除现有块来确保非易失性存储器220中可用容量的技术。
数据包管理器215可以根据与主机100协商的接口协议生成数据包,或者解析从主机100接收的数据包中的各种类型的信息。此外,缓冲存储器216可以临时存储要写入非易失性存储器220的数据或要从非易失性存储器220读取的数据。缓冲存储器216可以设置在储存控制器210中,但可以设置在储存控制器210之外。
LDPC单元217可对从非易失性存储器220读取的读数据执行错误检测和校正功能。更具体地说,LDPC单元217可生成用于将写入非易失性存储器220中的写数据的奇偶校验位,并且生成的奇偶校验位可与写数据一起存储在非易失性存储器220中。当从非易失性存储器220读数据时,LDPC单元217可使用从非易失性存储器220读取的奇偶校验位以及读数据来校正读数据中的错误,并且输出经错误校正的读数据。
AES引擎218可用对称密钥算法对输入至储存控制器210的数据执行加密操作和解密操作中的至少一个。
同时,响应于对高容量储存装置的需求,可以存储在非易失性存储器220的一个存储器单元中的比特数趋于增加。例如,非易失性存储器220不仅可以包括能够为每存储器单元存储3比特数据的TLC和能够每存储器单元存储4比特数据的四电平单元(QLC),还可以包括能够在每个存储器单元中存储5比特数据的五电平单元。
随着可存储在非易失性存储器220的一页中的数据量的增加,LDPC编码数据的大小也可增加。为了对大数据执行LDPC编码,奇偶校验矩阵的大小也可增大。奇偶校验矩阵中包括的可变节点的数量可增加,可变节点的程度可有所不同。
根据本公开中的示例性实施例,LDPC单元217可支持三个或更多个不同的并行操作模式。例如,LDPC单元217可支持一个单位逻辑电路组处理一个高程度可变节点的模式、一个单位逻辑电路组处理两个中程度可变节点的模式、一个单位逻辑电路处理四个低程度可变节点的模式等。根据本公开中的示例性实施例,LDPC单元217的计算资源在大容量储存装置200中可更有效地利用。来自非易失性存储器220的数据中的错误可快速校正,从而可提高储存装置200的数据处理性能。
根据本公开中的示例性实施例,可通过允许低密度奇偶校验(LDPC)解码器在一个周期中更新一个高程度可变节点或者同时更新多个低程度可变节点来有效地利用处理资源。
根据本公开中的示例性实施例,由于LDPC解码器可同时更新多个低程度可变节点,因此可提高LDPC解码器的吞吐量和解码延迟。
根据本公开中的示例性实施例,可利用具有改进的解码延迟的LDPC解码器快速和准确地读取存储在存储器单元中的数据。
本公开的问题不限于上述问题。也就是说,根据所附说明书,本领域技术人员可以明显理解未提及的其他问题。
本公开不受上述示例性实施例和附图的限制,而是受所附权利要求的限制。因此,本领域普通技术人员在不脱离权利要求中描述的本发明构思的情况下,可以进行各种类型的替换、修改和更改,并且这些替换、修改和更改属于本发明构思的范围。

Claims (20)

1.一种低密度奇偶校验解码器,其用码字的值将可变节点初始化并且输出参考不规则的奇偶校验矩阵更新的所述可变节点作为解码的消息,该低密度奇偶校验解码器包括:
多个单位逻辑电路,其在单模式或多模式下操作,在所述单模式中,所有所述单位逻辑电路更新包括至少一个可变节点的一个可变节点组,在所述多模式下,所述多个单位逻辑电路中的每一个通过更新不同的可变节点来并行地更新多个可变节点组;以及
模式控制器,其控制所述多个单位逻辑电路,以在所述单模式下更新所述可变节点组中的具有大于阈值程度的程度的高程度可变节点组,并且在所述多模式下更新所述可变节点组中的具有小于或等于所述阈值程度的程度的低程度可变节点组。
2.根据权利要求1所述的低密度奇偶校验解码器,其中,基于所述可变节点组的程度中的最大程度和所述多个单位逻辑电路的数量确定所述阈值程度。
3.根据权利要求1所述的低密度奇偶校验解码器,其中,所述多个单位逻辑电路中的每一个包括具有两个或更多个输入的加法器。
4.根据权利要求3所述的低密度奇偶校验解码器,其中,基于所述加法器的输入的数量进一步确定所述阈值程度。
5.根据权利要求1所述的低密度奇偶校验解码器,其中,所述多个单位逻辑电路包括第一单位逻辑电路和第二单位逻辑电路,并且
在所述单模式下,所述第一单位逻辑电路对连接至所述一个可变节点组的校验节点中的第一校验节点执行求和运算,并且所述第二单位逻辑电路对所述连接至所述一个可变节点组的校验节点中的第二校验节点执行求和运算,使得所述多个单位逻辑电路更新所述一个可变节点组的值。
6.根据权利要求5所述的低密度奇偶校验解码器,还包括:多个校验节点缓冲器,其用于缓冲将由所述多个单位逻辑电路中的每一个处理的校验节点的值。
7.根据权利要求1所述的低密度奇偶校验解码器,其中,所述模式控制器按照预定次序更新所述可变节点组,并且根据待更新的目标可变节点组的程度切换运行中的所述多个单位逻辑电路的操作模式。
8.根据权利要求1所述的低密度奇偶校验解码器,其中,所述模式控制器按照预定次序更新所述可变节点组,并且在所述单模式下控制所述多个单位逻辑电路以当待更新的第一目标可变节点组是高程度可变节点组时更新所述第一目标可变节点组,当所述第一目标可变节点组是低程度可变节点组时跳过所述第一目标可变节点组的更新,并且在所述多模式下控制所述多个单位逻辑电路轮流更新所述第一目标可变节点组和第二目标可变节点组,以更新作为低程度可变节点组的所述第二目标可变节点组。
9.根据权利要求1所述的低密度奇偶校验解码器,其中,所述模式控制器按程度的降序排列所述可变节点组,在第一时间段中,在所述单模式下控制所述多个单位逻辑电路以更新所述可变节点组中的高程度可变节点组,并且在所述第一时间段之后的第二时间段中,在所述多模式下控制所述多个单位逻辑电路更新所述可变节点组中的低程度可变节点组。
10.根据权利要求1所述的低密度奇偶校验解码器,其中,所述程度是由所述奇偶校验矩阵表示的低密度奇偶校验码中的连接至所述可变节点组之一的校验节点的数量。
11.一种低密度奇偶校验解码器,包括:
数据缓冲器,其缓冲以不规则的低密度奇偶校验码编码的数据并且将所述数据的值提供至可变节点;
校验节点更新器,其更新连接至所述可变节点的校验节点;
可变节点更新器,其更新连接至所述更新的校验节点的可变节点;以及
综合征检查仪,其根据所述更新的可变节点的综合征检查结果输出所述可变节点的值作为解码的数据,
其中,所述可变节点更新器包括一个或多个单位逻辑电路组,并且根据所述可变节点中的每一个所需的计算量,控制所述单位逻辑电路组中的每一个在一个周期中更新一个可变节点,或者控制所述单位逻辑电路组中的每一个中包括的单位逻辑电路中的每一个在一个周期中并行地更新不同的可变节点。
12.根据权利要求11所述的低密度奇偶校验解码器,其中,基于连接至所述可变节点的校验节点的数量来确定所述所需的计算量。
13.根据权利要求11所述的低密度奇偶校验解码器,其中,所述单位逻辑电路组中的每一个在一个周期中更新其中所述所需的计算量大于阈值计算量的一个可变节点,或者在一个周期中更新其中所述所需的计算量小于或等于所述阈值计算量的多个可变节点,并且
基于所述多个单位逻辑电路中的每一个的最大操作量来确定所述阈值计算量。
14.根据权利要求11所述的低密度奇偶校验解码器,其中,当作为所述更新的可变节点的综合征检查的结果,综合征向量的分量中的至少一个不具有“0”值时,所述低密度奇偶校验解码器重复执行更新所述校验节点的操作和更新所述可变节点的操作。
15.根据权利要求11所述的低密度奇偶校验解码器,其中,所述校验节点更新器通过执行连接至所述校验节点中的每一个的所述可变节点的最小值运算来更新所述校验节点中的每一个,并且
所述可变节点更新器通过执行连接至所述可变节点中的每一个的校验节点的求和运算来更新所述可变节点中的每一个。
16.根据权利要求15所述的低密度奇偶校验解码器,其中,一个单位逻辑电路组包括用于执行所述校验节点的求和运算的加法器。
17.根据权利要求11所述的低密度奇偶校验解码器,其中,所述低密度奇偶校验解码器包括M×N个子矩阵,M和N是自然数,所述子矩阵中的每一个存储奇偶校验矩阵,所述奇偶校验矩阵是零矩阵或者Q×Q维循环移位单位矩阵,其中Q是自然数,并且
所述可变节点更新器包括各自包括K个单位逻辑电路的Q个单位逻辑电路组,其中K是自然数,所述Q个单位逻辑电路组包括对应于一列的Q个可变节点,并且所述可变节点更新器并行地更新对应于K列的Q×K个可变节点。
18.一种储存装置,包括:
存储器装置,其存储通过不规则的低密度奇偶校验码编码的数据;以及
低密度奇偶校验单元,其用从所述存储器装置输出的数据的值将可变节点初始化,更新连接至所述可变节点的校验节点,通过根据所述可变节点中的每一个的程度是否超过阈值程度而重复地执行在一个周期中更新Q个可变节点的操作或者在一个周期中同时更新Q×K个可变节点来更新所述可变节点,其中Q是自然数,其中K是自然数,并且根据所述可变节点的综合征检查结果输出所述可变节点的值。
19.根据权利要求18所述的储存装置,其中,所述低密度奇偶校验单元基于包括M×N个子矩阵的奇偶校验矩阵更新所述校验节点和所述可变节点,所述子矩阵中的每一个是零矩阵或Q×Q维循环移位单位矩阵。
20.根据权利要求19所述的储存装置,其中,基于所述可变节点的最大程度和所述低密度奇偶校验单元中包括的单位逻辑电路的数量Q×K来确定所述阈值程度。
CN202211467166.5A 2021-11-24 2022-11-22 低密度奇偶校验解码器和储存装置 Pending CN116170029A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210162955 2021-11-24
KR10-2021-0162955 2021-11-24
KR1020220008006A KR102511827B1 (ko) 2021-11-24 2022-01-19 Ldpc 디코더 및 스토리지 장치
KR10-2022-0008006 2022-01-19

Publications (1)

Publication Number Publication Date
CN116170029A true CN116170029A (zh) 2023-05-26

Family

ID=84361251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211467166.5A Pending CN116170029A (zh) 2021-11-24 2022-11-22 低密度奇偶校验解码器和储存装置

Country Status (5)

Country Link
US (1) US11929762B2 (zh)
EP (1) EP4187795A1 (zh)
KR (1) KR20230076805A (zh)
CN (1) CN116170029A (zh)
TW (1) TW202322576A (zh)

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941680B1 (ko) 2005-07-01 2010-02-12 삼성전자주식회사 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR100946884B1 (ko) * 2005-07-15 2010-03-09 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널인터리빙/디인터리빙 장치 및 그 제어 방법
US20070089019A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US8006161B2 (en) * 2005-10-26 2011-08-23 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system using a low density parity check code
US7661055B2 (en) * 2005-12-05 2010-02-09 Broadcom Corporation Partial-parallel implementation of LDPC (Low Density Parity Check) decoders
KR100899738B1 (ko) 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
KR20080068218A (ko) * 2007-01-18 2008-07-23 삼성전자주식회사 통신 시스템에서 데이터 수신 방법 및 장치
US7958429B2 (en) * 2007-07-02 2011-06-07 Broadcom Corporation Distributed processing LDPC (low density parity check) decoder
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR20090126829A (ko) 2008-06-05 2009-12-09 삼성전자주식회사 반복 복호 방법과 반복 복호 장치
KR100953936B1 (ko) 2009-04-28 2010-04-22 엘아이지넥스원 주식회사 Ldpc 복호화를 위한 복호화 방법 및 장치
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
JP2012124888A (ja) 2010-11-15 2012-06-28 Fujitsu Ltd 復号装置及び復号方法
US20130139023A1 (en) 2011-11-28 2013-05-30 Lsi Corporation Variable Sector Size Interleaver
US8826109B2 (en) * 2012-09-04 2014-09-02 Lsi Corporation LDPC decoder irregular decoding of regular codes
HUE047153T2 (hu) 2013-02-08 2020-04-28 Saturn Licensing Llc Kódolás és dekódolás 18/30 (3/5) aránnyal 64800 hosszú LDPC kódhoz
GB2510932B (en) * 2013-08-27 2015-01-21 Imagination Tech Ltd An improved decoder for low-density parity-check codes
KR101599336B1 (ko) * 2014-04-22 2016-03-04 아주대학교 산학협력단 저밀도 패리티 검사 코드의 복호화 방법 및 그 장치
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
US10879927B2 (en) 2017-05-17 2020-12-29 Futurewei Technologies, Inc. Compact low density parity check (LDPC) base graph
US10530392B2 (en) 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
US20200220558A1 (en) 2017-12-20 2020-07-09 Goke Us Research Laboratory Method and apparatus for efficient data decoding
KR102643457B1 (ko) 2018-11-19 2024-03-06 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US11356123B2 (en) 2019-07-12 2022-06-07 SK Hynix Inc. Memory system with low-complexity decoding and method of operating such memory system
KR20210061504A (ko) 2019-11-19 2021-05-28 삼성전자주식회사 에러 정정 회로, 및 그것을 동작하는 방법
US11575389B2 (en) * 2020-12-08 2023-02-07 Nxp Usa, Inc. Multi-standard low-density parity check decoder
US11316532B1 (en) 2020-12-17 2022-04-26 SK Hynix Inc. Decoding of low-density parity-check codes with high-degree variable nodes

Also Published As

Publication number Publication date
EP4187795A1 (en) 2023-05-31
US20230163785A1 (en) 2023-05-25
TW202322576A (zh) 2023-06-01
KR20230076805A (ko) 2023-05-31
US11929762B2 (en) 2024-03-12

Similar Documents

Publication Publication Date Title
US9977713B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
US10103749B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
US11450400B2 (en) Controller and operating method thereof
KR102643457B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN108073467B (zh) 具有硬信道信息的位翻转ldpc解码算法
US10879935B2 (en) LDPC decoder, semiconductor memory system, and operating method thereof
KR102529666B1 (ko) LDPC 코드(Low Density Parity Check Code) 부호를 위한 복호 방법 및 장치
KR102556479B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US11139832B1 (en) LDPC decoder and operating method thereof
US10439647B2 (en) Controller, semiconductor memory system and operating method thereof
CN112039532A (zh) 错误校正解码器及具有错误校正解码器的存储器系统
CN110415753B (zh) 错误校正电路及操作该错误校正电路的方法
CN111367709A (zh) 错误校正设备及其操作方法和使用该设备的存储器系统
KR20200021253A (ko) 디코더, 그것의 동작 방법 및 메모리 시스템
US11095316B2 (en) Controller and operating method for performing read operation to read data in memory device
US11966589B2 (en) Controller and operating method thereof
EP4187795A1 (en) Low density parity check decoder and storage device
KR102511827B1 (ko) Ldpc 디코더 및 스토리지 장치
CN112216328A (zh) 具有低复杂度解码的存储器系统及其操作方法
US11387845B2 (en) LDPC decoder, operating method of LDPC decoder, and semiconductor memory system
EP4351006A1 (en) Generalized ldpc encoder, generalized ldpc encoding method and storage device
KR102530269B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication