CN111092619A - Ldpc解码器、半导体存储器系统及其操作方法 - Google Patents
Ldpc解码器、半导体存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN111092619A CN111092619A CN201910647598.6A CN201910647598A CN111092619A CN 111092619 A CN111092619 A CN 111092619A CN 201910647598 A CN201910647598 A CN 201910647598A CN 111092619 A CN111092619 A CN 111092619A
- Authority
- CN
- China
- Prior art keywords
- node
- check
- variable node
- variable
- message
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 87
- 238000011017 operating method Methods 0.000 title description 2
- 239000011159 matrix material Substances 0.000 claims abstract description 79
- 230000008878 coupling Effects 0.000 claims abstract 2
- 238000010168 coupling process Methods 0.000 claims abstract 2
- 238000005859 coupling reaction Methods 0.000 claims abstract 2
- 239000013598 vector Substances 0.000 claims description 200
- 238000000034 method Methods 0.000 claims description 31
- 208000011580 syndromic disease Diseases 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 24
- 238000010606 normalization Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 116
- 238000010586 diagram Methods 0.000 description 23
- 238000009826 distribution Methods 0.000 description 22
- 239000010410 layer Substances 0.000 description 21
- 238000012937 correction Methods 0.000 description 12
- 125000004122 cyclic group Chemical group 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000013590 bulk material Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/1171—Parity-check or generator matrices with non-binary elements, e.g. for non-binary 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
-
- 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
-
- 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
- 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
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/08—Address circuits; Decoders; Word-line control 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/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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/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/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1125—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/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/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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
-
- 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
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
- 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/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Error Detection And Correction (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种半导体存储器系统。该半导体存储器系统包括:半导体存储器装置,用于存储码字;解码器,用于基于由子矩阵形成的奇偶校验矩阵来对存储的码字进行解码以生成经解码数据;以及信道,用于将半导体存储器装置联接到解码器,并且向解码器提供存储的码字,其中解码器包括:变量节点选择装置,用于顺序地选择共享奇偶校验矩阵的相同层的子矩阵,并且顺序地选择分别对应于形成所选择的子矩阵的列的变量节点;变量节点更新装置,用于基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;以及校验节点更新装置,用于基于提供到与所选择的变量节点联接的校验节点的变量节点消息来更新校验节点。
Description
相关申请的交叉引用
本申请要求于2018年10月24日提交的申请号为10-2018-0127721的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本发明的各个实施例涉及一种低密度奇偶校验(LDPC)解码器、半导体存储器系统以及操作该半导体存储器系统的方法。
背景技术
通常,将半导体存储器装置分类为易失性存储器装置和非易失性存储器装置,其中易失性存储器装置诸如动态随机存取存储器(DRAM)和静态RAM(SRAM),非易失性存储器装置诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、铁磁RAM(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器。
易失性存储器装置在供电中断时会丢失存储在其中的数据,而非易失性存储器装置即使在供电中断时也保持存储在其中的数据。非易失性存储器装置因为其高编程速度、低功耗以及大的数据存储容量而被广泛用作计算机系统中的存储介质。
在非易失性存储器装置中,尤其是在闪存类型的非易失性存储器装置中,每个存储器单元的数据状态取决于存储器单元可编程的位的数量。每单元存储1位数据的存储器单元被称为单位单元或单层单元(SLC)。每单元存储多位数据(即,2位或更多位数据)的存储器单元被称为多位单元、多层单元(MLC)或多状态单元。MLC对于高集成度是有利的。然而,当在每一个存储器单元中编程的位的数量增加时,则可靠性降低并且读取失败率增加。
例如,当在存储器单元中k个位待被编程时,在存储器单元中形成2k个阈值电压中的一个。由于存储器单元的电特性之间的微小差异,针对相同数据编程的存储器单元的阈值电压形成阈值电压分布。阈值电压分布分别对应于表示k位信息的2k个数据值。
然而,可用于阈值电压分布的电压窗口是有限的。因此,当值k增加时,阈值电压分布之间的距离减小并且相邻的阈值电压分布彼此重叠。当相邻阈值电压分布彼此重叠时,读取数据可能包括更多的错误,即几个错误位到几十个错误位。
图1是示出3位多层单元(3位MLC)非易失性存储器装置的编程状态和擦除状态的阈值电压分布。
图2是示出由于3位MLC非易失性存储器装置的特性劣化而导致的编程状态和擦除状态的阈值电压分布。
在MLC非易失性存储器装置,例如在能够在单个存储器单元中存储k位数据的MLC闪速存储器装置中,存储器单元可具有2k个阈值电压分布中的一个。例如,3位MLC具有8个阈值电压分布中的一个。
由于存储器单元之间的特性差异,针对相同数据编程的存储器单元的阈值电压形成阈值电压分布。在3位MLC非易失性存储器装置中,如图1所示,形成了与包括7个编程状态“P1”至“P7”和擦除状态“E”的数据状态相对应的阈值电压分布。
图1示出其中阈值电压分布不重叠并且在其之间具有读取电压裕度的理想情况。参照图2的闪速存储器示例,当在浮栅或隧穿氧化膜处俘获的电子随时间而被放电时,存储器单元可能经历电荷损失。当隧穿氧化膜由于迭代编程和擦除操作而劣化时,可能会加速这种电荷损失。电荷损失导致存储器单元的阈值电压降低。例如,如图2所示,由于电荷损失,阈值电压分布可能左移。
进一步地,编程干扰、擦除干扰和/或恢复模式相关性(back patterndependency)也导致阈值电压增大。如图2所示,当存储器单元的特性劣化时,相邻的阈值电压分布可能重叠。
一旦相邻的阈值电压分布重叠,则当特定的读取电压被施加到所选择的字线时,读取数据可能包括大量的错误。例如,当根据施加到所选择的字线的读取电压Vread3,存储器单元的感测状态为导通时,存储器单元被确定为具有第二编程状态“P2”。当根据施加到所选择的字线的读取电压Vread3,存储器单元的感测状态为关断时,存储器单元被确定为具有第三编程状态“P3”。然而,当相邻的阈值电压分布重叠时,实际具有第三编程状态“P3”的存储器单元可能被错误地确定为具有第二编程状态“P2”。简而言之,当如图2所示相邻的阈值电压分布重叠时,读取数据可能包括大量的错误。
因此,需要一种精确读取半导体存储器装置的存储器单元中存储的数据的方案。
发明内容
本发明的实施例涉及一种能够快速且准确地对存储器单元中存储的数据进行解码的存储器控制器、包括这种存储器控制器的半导体存储器系统以及操作该半导体存储器系统的方法。
根据本发明的实施例,一种半导体存储器系统包括:半导体存储器装置,适于存储作为被编码数据的码字;解码器,适于基于由子矩阵形成的奇偶校验矩阵对存储的码字进行解码以生成经解码数据;以及信道,适于将半导体存储器装置联接到解码器并且向解码器提供存储的码字,其中解码器包括:变量节点选择装置,适于执行变量节点选择操作,该变量节点选择操作顺序地选择共享奇偶校验矩阵的相同层的子矩阵,并且顺序地选择分别对应于形成所选择的子矩阵的列的变量节点;变量节点更新装置,适于执行变量节点更新操作,该变量节点更新操作基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;以及校验节点更新装置,适于执行校验节点更新操作,该校验节点更新操作基于提供到与所选择的变量节点联接的校验节点的变量节点消息来更新校验节点。
根据本发明的另一实施例,一种操作半导体存储器系统的方法包括:顺序地选择共享奇偶校验矩阵的相同层的子矩阵,并且顺序地选择分别对应于形成所选择的子矩阵的列的变量节点;基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;并且基于提供到与所选择的变量节点联接的校验节点的变量节点消息来更新校验节点,其中将顺序地选择共享奇偶校验矩阵的相同层的子矩阵并顺序地选择分别对应于形成所选择的子矩阵的列的变量节点、基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点、以及基于提供到与所选择的变量节点联接的校验节点的变量节点消息来更新校验节点确定为一个迭代单位,并且重复执行该迭代单位,直到码字被成功解码达到最大次数。
根据本发明的实施例,一种解码装置包括:变量节点选择装置,适于顺序地选择分别对应于形成子矩阵的列的变量节点,该子矩阵共享包括多个子矩阵的奇偶校验矩阵的相同层;变量节点更新装置,适于基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;以及校验节点更新装置,适于基于提供到与所选择的变量节点联接的校验节点的变量节点消息来更新校验节点,其中将顺序地选择变量节点、更新所选择的变量节点以及更新校验节点作为迭代单位来执行,直到码字被成功解码达到最大次数。
附图说明
图1是示出3位多层单元(3位MLC)非易失性存储器装置的编程状态和擦除状态的阈值电压分布。
图2是示出由于3位MLC非易失性存储器装置的特性劣化而导致的编程状态和擦除状态的阈值电压分布。
图3是示出根据本发明的实施例的半导体存储器系统的框图。
图4A是示出诸如图3所示的半导体存储器系统的框图。
图4B是示出诸如图4A所示的存储块的电路图。
图5是示出诸如图4A所示的存储器控制器的操作的流程图。
图6A是示出由Tanner图表示的低密度奇偶校验(LDPC)解码的示意图。
图6B是示出LDPC码的示意图。
图6C是示出根据LDPC解码的校正子校验过程的示意图。
图7A和图7B是示出诸如图5所示的软判决读取操作的示意图。
图8示出根据本发明的实施例的奇偶校验矩阵。
图9是示出诸如图3和图4A所示的低密度奇偶校验(LDPC)解码器的框图。
图10是示出变量节点消息生成装置的结构的框图。
图11是示出校验节点更新装置的结构的框图。
图12A和图12B是示出根据本发明的实施例的在半导体系统中执行的非二进制LDPC解码的流程图。
图13示出更新变量节点的符号的操作。
图14示出生成变量节点符号和变量节点LLR的操作。
图15是示出生成变量节点消息的操作的示图。
图16是示出根据本发明的实施例的非二进制LDPC解码器的操作模拟结果的曲线图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,本发明可以不同形式实现,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使本公开是彻底的且完整的,并且将本发明的范围全面地传达给本领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中始终表示相同的部件。而且,在整个说明书中,对“一个实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语限制。这些术语用于区分一个元件与另一个元件。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在另一元件上、连接到或联接到另一元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之中的唯一元件,或者也可存在一个或多个中间元件。除非另有说明或上下文另有指示,否则两个元件之间的通信,无论直接或间接连接/联接,可以是有线的或无线的。
如本文所使用的,除非上下文另有明确说明,否则单数形式也可包括复数形式,反之亦然。
将进一步理解的是,当在本说明书中使用术语“包含”、“包含有”、“包括”和“包括有”时,其指明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
图3是示出根据本发明的实施例的半导体存储器系统10的框图。
图4A是示出图3所示的半导体存储器系统10的框图。
图4B是示出图4A所示的存储块211的电路图。
图5是示出包括在半导体存储器系统10中的存储器控制器100的操作的流程图。
参照图3至图5,半导体存储器系统10可包括存储器控制器100和半导体存储器装置200。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入和输出线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线而被提供以电力PWR,并且通过控制线来接收控制信号CTRL。控制信号可包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号和读取使能(RE)信号。
存储器控制器100可控制半导体存储器装置200的全部操作。存储器控制器100可包括用于校正错误位的低密度奇偶校验(LDPC)单元130。LDPC单元130可包括LDPC编码器131和LDPC解码器133。
LDPC编码器131可对待被编程到半导体存储器装置200中的数据执行错误校正编码以输出添加了奇偶校验位的数据。奇偶校验位可被存储在半导体存储器装置200中。
LDPC解码器133可对从半导体存储器装置200中读取的数据执行错误校正解码。LDPC解码器133可确定错误校正解码是否成功,并且可基于确定结果来输出指令信号。LDPC解码器133可使用由LDPC编码操作所生成的奇偶校验位来校正数据的错误位。
当错误位的数量超过LDPC单元130的错误校正能力时,LDPC单元130可不校正错误位。在这种情况下,LDPC单元130可生成错误校正失败信号。
LDPC单元130可通过LDPC码来校正错误。LDPC单元130可包括用于错误校正的所有电路、系统或装置。LDPC码可以是二进制LDPC码或非二进制LDPC码。
根据本发明的实施例,LDPC单元130可使用硬判决读取数据和软判决读取数据来执行错误位校正操作。
存储器控制器100和半导体存储器装置200可被集成在单个半导体装置中以形成固态驱动器(SSD)。固态驱动器可包括用于将数据存储在半导体存储器中的存储装置。当半导体存储器系统10被用在SSD中时,联接到半导体存储器系统10的主机(未示出)的操作速度可显著提高。
在另一实施例中,存储器控制器100和半导体存储器装置200可被集成在单个半导体装置中以配置诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字(SDHC)卡和/或通用闪存(UFS)。
对于另一示例,半导体存储器系统10可被设置为包括诸如以下的电子装置的各种元件中的一种:计算机、超移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、家庭网络的电子装置之一、计算机网络的电子装置之一、远程信息处理网络的电子装置之一、射频识别(RFID)装置或计算系统的元件装置。
参照图4A,存储器控制器100可包括存储装置110、中央处理单元(CPU)120、LDPC单元130、主机接口(I/F)140、存储器接口150和系统总线160。存储装置110可操作为CPU 120的工作存储器。
主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
LDPC单元130可检测并且校正包括在从半导体存储器装置200读取的数据中的错误。存储器接口150可与半导体存储器装置200接口连接。即使图3示例性地示出LDPC单元130包括LDPC编码器131和LDPC解码器133两者,但可将LDPC编码器131和LDPC解码器133实施为不同且独立的组件。CPU 120可执行各种控制操作。
根据本发明的实施例,在编程操作期间,LDPC单元130可对待被编程到半导体存储器装置200的原始数据执行LDPC编码。在这种情况下,在读取操作期间,LDPC单元130可对存储在半导体存储器装置200中的被LDPC编码的数据或码字执行LDPC解码。
LDPC单元130可通过对半导体存储器装置200中存储的被LDPC编码的数据或码字执行LDPC解码操作来恢复原始数据,该原始数据是在编程操作期间执行LDPC编码操作之前的数据状态。
如参照图5所讨论的,对存储在半导体存储器装置200中的数据的读取操作可包括步骤S511的硬判决读取操作和步骤S531的软判决读取操作。在硬判决读取操作期间,可根据硬判决读取电压VHD来从半导体存储器装置200读取数据。在软判决读取操作期间,可根据软判决读取电压VSD来从半导体存储器装置200读取数据,软判决读取电压VSD是不同于硬判决读取电压VHD的电压。例如,可根据软判决读取电压VSD对首先根据硬判决读取电压VHD读取的存储器单元执行另外的读取操作。
存储在半导体存储器装置200中并通过硬判决读取操作读取的被LDPC编码的数据或码字可通过LDPC单元130被解码回原始数据。
软判决读取操作根据软判决读取电压VSD生成对数似然比(LLR),该对数似然比提供通过硬判决读取操作读取的硬判决读取数据的可靠性的指示。
LDPC单元130可对LLR执行LDPC解码操作。LDPC单元130可通过LLR来检测并校正从半导体存储器装置200读取的被LDPC编码的数据或码字的错误。
半导体存储器装置200可包括存储器单元阵列210、控制电路220、电压供应装置230、电压传输器240、读取和写入(读取/写入)电路250以及列选择器260。
存储器单元阵列210可包括多个存储块211。用户数据可存储在存储块211中。
参照图4B,存储块211可包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串221中的每一个可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可串联联接在选择晶体管DST和SST之间。存储器单元MC0至MCn-1的每一个可由每个单元中存储多位数据(或信息)的多层单元(MLC)形成。单元串221可分别电联接到相应的位线BL0至BLm-1。
图4B示例性地示出包括NAND型闪速存储器单元的存储块211。然而,半导体存储器装置200的存储块211不限于NAND闪速存储器,而是可包括NOR型闪速存储器、其中组合有两种或更多种类型的存储器单元的混合闪速存储器以及其中控制器嵌入到存储器芯片内的1-NAND闪速存储器。半导体装置的操作特性可被应用于其中电荷存储层由绝缘层形成的电荷撷取闪存(CTF),以及其中电荷存储层由导电浮栅形成的闪速存储器装置。
重新参照图4A,控制电路220可控制与半导体存储器装置200的编程操作、擦除操作和读取操作有关的全部操作。
电压供应装置230可根据操作模式向各个字线提供字线电压,例如编程电压、读取电压和通过电压。进一步地,电压供应装置230可提供待供应到体材料(bulk),例如其中形成有存储器单元的阱区的电压。可在控制电路220的控制下执行电压供应装置230的电压生成操作。
电压供应装置230可生成用于生成多个读取数据的多个可变读取电压。
电压传输器240可在控制电路220的控制下选择存储器单元阵列210的存储块211或扇区中的一个,并且可选择所选择的存储块的字线中的一个。电压传输器240可在控制电路220的控制下将由电压供应装置230生成的字线电压提供到所选择的字线或未选择的字线。
读取/写入电路250可由控制电路220控制,并且可根据操作模式操作为读出放大器或写入驱动器。例如,在验证/正常读取操作期间,读取/写入电路250可操作为用于从存储器单元阵列210读取数据的读出放大器。在正常读取操作期间,列选择器260可基于列地址信息将从读取/写入电路250读取的数据输出到外部,例如输出到存储器控制器100。另一方面,在验证读取操作期间,所读取数据可被提供到包括在半导体存储器装置200中的通过/失败验证电路(未示出),并且被用于确定存储器单元的编程操作是否成功。
在编程操作期间,读取/写入电路250可操作为用于根据待存储在存储器单元阵列210中的数据来驱动位线的写入驱动器。在编程操作期间,读取/写入电路250可从缓冲器(未示出)接收待写入存储器单元阵列210中的数据,并且可根据输入数据来驱动位线。为此,读取/写入电路250可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PB)251。页面缓冲器251中的每一个可包括多个锁存器。
参照图4A和图5,存储器控制器100的操作可包括硬判决解码步骤S510,并且可另外包括软判决解码步骤S530。根据本发明的实施例,可基于读取操作的数量和软判决读取数据的精度信息重复执行软判决解码步骤S530。应用硬判决解码步骤S510和软判决解码步骤S530的目标数据可以是由LDPC单元130进行LDPC编码的被LDPC编码数据或码字。
硬判决解码步骤S510可包括:将硬判决LDPC解码应用于根据硬判决读取电压VHD从存储块211的存储器单元读取的设定或预定长度的数据。硬判决解码步骤S510可包括步骤S511至S515。
软判决解码步骤S530可包括:当硬判决LDPC解码最终失败时,应用LDPC解码以根据硬判决读取电压VHD周围的软判决读取电压VSD形成软判决读取数据。软判决解码步骤S530可包括步骤S531至S535。
如上所述,在硬判决读取步骤的步骤S511中,可根据硬判决读取电压VHD从半导体存储器装置200读取数据。存储器控制器100可将读取命令和地址提供到半导体存储器装置200。半导体存储器装置200可响应于读取命令和地址,根据硬判决读取电压VHD从其读取数据。所读取的数据可被提供到存储器控制器100。
在步骤S513中,可执行硬判决解码,例如硬判决LDPC解码。LDPC单元130可通过使用错误校正码对根据硬判决读取电压VHD从半导体存储器装置200读取的数据执行硬判决LDPC解码。
在步骤S515中,可确定硬判决LDPC解码(或第一ECC解码)是成功还是失败。也就是说,在步骤S515中,可确定在步骤S513中被执行硬判决LDPC解码的读取数据的错误是否被校正。例如,存储器控制器100可通过使用硬判决读取数据和奇偶校验矩阵来确定读取数据的错误是否被校正。例如,当奇偶校验矩阵和硬判决读取数据的乘积结果为零向量(“0”)时,可确定硬判决读取数据被校正。另一方面,当奇偶校验矩阵和硬判决读取数据的乘积结果不为零向量(“0”)时,可确定硬判决读取数据未被校正。
当作为步骤S515的确定结果,确定硬判决读取数据被校正时,这可指示在步骤S511中根据硬判决读取电压VHD的读取操作成功(步骤S520),并且存储器控制器100的操作可结束。作为在步骤S513中执行硬判决LDPC解码的结果,硬判决读取数据现在可以是经错误校正的数据,并且可向外部提供或者在存储器控制器100中使用该硬判决读取数据。
当作为步骤S515的确定结果确定硬判决读取数据未被校正时(S515,否),可执行软判决解码步骤S530。
如上所述,在软判决读取步骤S531中,可根据软判决读取电压VSD从半导体存储器装置200读取数据。例如,可对根据硬判决读取电压VHD被执行硬判决解码步骤S510的存储器单元执行根据软判决读取电压VSD的附加读取操作。软判决读取电压VSD可不同于硬判决读取电压VHD。
在步骤S533中,可执行软判决解码,例如软判决LDPC解码。可基于硬判决LDPC解码的结果和根据软判决读取电压VSD从存储器单元读取的数据来执行软判决LDPC解码。硬判决读取电压VHD和软判决读取电压VSD可以不同。
例如,半导体存储器装置200的存储器单元MC0至MCn-1中的每一个可属于包括7个编程状态P1至P7以及1个擦除状态E的阈值电压分布中的一个。
硬判决读取电压VHD可处于多个状态(E和P1至P7)中的两个相邻状态之间。软判决读取电压VSD中的每一个可处于多个状态(E和P1至P7)中的两个相邻状态之间,其不同于硬判决读取电压VHD。
根据硬判决读取电压VHD和根据软判决读取电压VSD从存储器单元MC0至MCn-1中读取的读取数据可具有不同的值。例如,在存储器单元MC0至MCn-1之中,可能存在阈值电压高于或低于正常逻辑状态的阈值电压分布的尾部(tailed)存储器单元。根据硬判决读取电压VHD和根据软判决读取电压VSD从尾部存储器单元读取的数据可具有不同的值。当除了根据硬判决读取电压VHD的读取操作之外执行根据软判决读取电压VSD的附加读取操作时,可获得关于存储器单元MC0至MCn-1的阈值电压的附加信息(即,关于尾部存储器单元的附加信息)或者获得对数似然比(LLR),该对数似然比提供通过硬判决读取操作读取的硬判决读取数据的可靠性。
当获得附加信息时,存储器单元MC0至MCn-1的数据是否属于第一状态(即,“1”)或者第二状态(即,“0”)的可能性可能增加。也就是说,LDPC解码的可靠性可能增加。存储器控制器100可基于根据硬判决读取电压VHD和软判决读取电压VSD读取的软判决读取数据来执行软判决LDPC解码。将参照图7A和图7B公开硬判决读取电压VHD和软判决读取电压VSD之间的关系。
在步骤S535中,可确定软判决LDPC解码(或第二ECC解码)是成功还是失败。也就是说,在步骤S535中,作为在步骤S533中执行的软判决LDPC解码的结果,可确定软判决读取数据的错误是否被校正。例如,存储器控制器100可通过使用软判决读取数据和奇偶校验矩阵来确定软判决读取数据的错误是否被校正。例如,当奇偶校验矩阵和软判决读取数据的乘积结果为零向量(“0”)时,可确定软判决读取数据被校正。另一方面,当奇偶校验矩阵和软判决读取数据的乘积结果不为零向量(“0”)时,可确定软判决读取数据未被校正。
在硬判决解码步骤S510期间的奇偶校验矩阵和硬判决读取数据的乘积过程可与在软判决解码步骤S530期间的奇偶校验矩阵和软判决读取数据的乘积过程相同。
当作为步骤S535的确定结果,确定软判决读取数据被校正时(S535,是),可在步骤S520中确定在步骤S531中根据软判决读取电压VSD的读取操作成功,并且存储器控制器100的操作可结束。作为在步骤S533中执行软判决LDPC解码的结果,软判决读取数据现在可以是经错误校正的数据,并且可向外部提供或者在存储器控制器100中使用该软判决读取数据。
当作为步骤S535的确定结果,确定软判决读取数据未被校正时(S535,否),可在步骤S540中确定存储器控制器100对存储器单元MC0至MCn-1的读取操作最终失败,并且存储器控制器100的操作可结束。
图6A是示出由Tanner图表示的低密度奇偶校验(LDPC)解码的示意图。
图6B是示出LDPC码的示意图。
图6C是示出根据LDPC解码的校正子校验过程的示意图。
错误校正码(ECC)通常用于存储系统中。存储装置中发生的各种物理现象导致损坏存储信息的噪声效应。错误校正编码方案可用于保护存储信息免受所导致的错误。这是通过对信息进行编码然后将该信息存储在存储器装置中来完成的。编码过程通过向信息添加冗余来将信息转换为码字。然后,该冗余可被用于通过解码过程从可能被损坏的码字中恢复信息。
在迭代编码方案中,将代码构造为几个简单组成代码的串联,并且通过在接收简单组成代码的解码器之间交换信息,基于迭代解码算法来对该代码进行解码。通常,可使用描述组成代码之间的互连的二分图或Tanner图来定义代码。在这种情况下,可将解码视为越过图边沿的迭代消息。
迭代代码可包括低密度奇偶校验(LDPC)码。LDPC码是由稀疏奇偶校验矩阵H定义的线性二进制块码。
参照图6A,LDPC码具有奇偶校验矩阵,其中每一行和每一列中除“0”之外的非二进制元素的数量非常少。LDPC码的结构可由包括校验节点610、变量节点620和将校验节点610连接到变量节点620的边沿615的Tanner图定义。在校验节点处理之后从校验节点610中的一个传送到变量节点620中的一个的值成为校验节点消息615A。在变量节点处理之后从变量节点620中的一个传送到校验节点610中的一个的值成为变量节点消息615B。
通过基于“和积”算法的迭代解码来执行LDPC码的解码过程。可基于诸如作为简化版本的和积算法的“最小和”算法的次优消息传递算法来设置解码方法。
参照图6B,LDPC码的Tanner图包括表示LDPC码的奇偶校验方程的5个校验节点(C1至C5)610、表示代码符号的10个变量节点(V1至V10)620以及表示校验节点610与变量节点620之间关系的边沿615。边沿615将校验节点610中的每一个连接到变量节点620中的每一个,变量节点620与由校验节点610表示的奇偶校验方程中包括的代码符号相对应。图6B示例性地示出常规LDPC码,其中联接到校验节点610中的每一个的变量节点620的数量固定为4个,并且联接到变量节点620中的每一个的校验节点的数量固定为2个。变量节点620中的每一个的初始值可以是硬判决读取数据和软判决读取数据中的一个。
图6C示出对应于Tanner图的奇偶校验矩阵H。奇偶校验矩阵H类似于奇偶校验方程的图形表述。奇偶校验矩阵H在每一列和每一行中具有相同数量的1s。也就是说,奇偶校验矩阵H的每一列具有与变量节点620和校验节点610中的每一个之间的连接相对应的两个1s,并且每一行具有与校验节点610和变量节点620中的每一个之间的连接相对应的四个1s。
通过在Tanner图中的变量节点620与校验节点610之间交换在每个节点中生成和更新的消息的迭代过程来执行对LDPC码进行解码的过程。在这种情况下,每个节点基于和积算法或类似的次优算法来更新消息。
例如,LDPC解码可包括多次迭代,每次迭代包括校验节点更新、变量节点更新以及在变量节点的初始更新之后的校正子校验。在单次迭代之后,当校正子校验的结果满足特定条件时,LDPC解码可结束。当校正子校验的结果不满足特定条件时,可执行附加的单次迭代。附加的迭代可包括校验节点更新、变量节点更新和校正子校验。迭代次数可限于最大迭代计数。当直到迭代次数达到最大迭代计数,校正子校验的结果不满足特定条件时,可确定在LDPC解码中,对码字的LDPC解码已失败。
参照图6C,校正子校验是识别奇偶校验矩阵H和通过变量节点更新获得的向量“v”的乘积结果“Hvt”是否满足特定条件的过程。当乘积结果“Hvt”变为零向量时,可认为乘积结果“Hvt”满足特定条件。
图6C示出校正子校验过程。图6C示例性地示出非零向量“01000”作为乘积结果“Hvt”,因此图6C示出校正子校验不满足特定条件,并且应当执行另一单次迭代。
考虑非零向量“01000”作为乘积结果“Hvt”,非零向量元素或不满足零向量条件的元素的数量为1。在说明书中,将在给定迭代中不满足乘积结果“Hvt”的校正子校验的零向量条件的每个元素定义为不满意校正子校验(USC)。图6C示出USC的数量为1的校正子校验的结果。
图7A和图7B是分别示出图5所示的软判决读取操作,特别是2位和3位软判决读取操作的示意图。
参照图7A,在参照图5描述的步骤S510的硬判决解码操作期间,当硬判决读取电压VHD被施加到图4A的半导体存储器装置200时,根据存储器单元的导通/关断状态,硬判决读取数据2-1可具有值“1”和“0”中的一个。
在步骤S530的软判决解码操作期间,可通过软判决读取操作来生成对数似然比(LLR),在软判决读取操作中,具有与硬判决读取电压VHD不同的电压的软判决读取电压VSD1和VSD2被施加到存储器单元。
在2位软判决读取操作期间,当第一软判决读取电压VSD1被施加到存储器单元时,根据存储器单元的导通/关断状态,第一软判决读取值2-2可以是“1000”。以类似的方式,当第二软判决读取电压VSD2被施加到存储器单元时,根据存储器单元的导通/关断状态,第二软判决读取值2-3可以是“1110”。
例如,LDPC单元130可通过对第一软判决读取值2-2和第二软判决读取值2-3的逻辑操作(例如,XNOR操作)来生成软判决读取数据2-4(或LLR)。LLR可示出硬判决读取数据2-1的可靠性。
例如,具有值“1”的软判决读取数据2-4可示出硬判决读取数据2-1具有第一状态或第二状态(逻辑值“1”或“0”)的可能性“强”。另一方面,具有值“0”的软判决读取数据2-4可示出硬判决读取数据2-1具有第一状态或第二状态的可能性“弱”。
参照图7B,在参照图5描述的步骤S510的硬判决解码操作期间,当硬判决读取电压VHD被施加到图4A的半导体存储器装置200时,根据存储器单元的导通/关断状态,硬判决读取数据3-1可具有值“1”或“0”。
在步骤S530的软判决解码操作期间,可通过软判决读取操作来生成LLR,在软判决读取操作中,不同于硬判决读取电压VHD的软判决读取电压VSD1至VSD6被施加到存储器单元。
在3位软判决读取操作期间,当第一软判决读取电压VSD1和第二软判决读取电压VSD2被施加到存储器单元时,可根据存储器单元的导通/关断状态来生成第一软判决读取值和第二软判决读取值,这类似于参照图7A描述的2位软判决读取操作。LDPC单元130可通过对第一软判决读取值和第二软判决读取值的逻辑操作(例如,XNOR操作)来生成第一软判决读取数据3-2(例如,“1001”)(或LLR)。
以类似的方式,在3位软判决读取操作期间,当与第一软判决读取电压VSD1和第二软判决读取电压VSD2不同的第三软判决读取电压VSD3至第六软判决读取电压VSD6被施加到存储器单元时,可根据存储器单元的导通/关断状态来生成第三软判决读取值至第六软判决读取值,这类似于参照图7A描述的2位软判决读取操作。LDPC单元130可通过对第三软判决读取值至第六软判决读取值的XNOR操作来生成第二软判决读取数据3-3(“10101”)或用于生成LLR的数据。第二软判决读取数据3-3(“10101”)可将加权值提供到第一软判决读取数据3-2。
例如,在第一软判决数据3-2的值为“1”(“强”可能性)的情况下,第二软判决读取数据3-3的对应位的值“1”可使该可能性加权为“非常强”。另一方面,第二软判决读取数据3-3的对应位的值“0”可指示没有加权,即可能性保持为“强”。
以类似的方式,在第一判决数据3-2的值为“0”(“弱”可能性)的情况下,第二软判决读取数据3-3的对应位的值“1”可使该可能性加权为“非常弱”。另一方面,第二软判决读取数据3-3的对应位的值“0”可指示没有加权,即可能性保持为“弱”。因此,第二软判决读取数据3-3可为硬判决读取数据3-1提供更好的可靠性,这类似于参照图7A描述的2位软判决读取操作。
图8示出根据本发明的实施例的奇偶校验矩阵800。
参照图8,奇偶校验矩阵800可包括多个子矩阵(例如,M*N个子矩阵)。子矩阵802可以是零矩阵或Z*Z维循环移位单位矩阵。
可将定义非二进制LDPC码的奇偶校验矩阵800的每个分量确定为非二进制有限域GF(q)上的非二进制元素之中的一个。可将非二进制LDPC码定义为非二进制有限域GF(q)的q具有大于2的值,并且q可以是形成非二进制有限域GF(q)的非二进制元素的数量的情况。
如上参照图6A所述,非二进制LDPC码的结构可由包括校验节点610、变量节点620和联接校验节点610和变量节点620的边沿615的Tanner图定义。
形成Tanner图的校验节点610和变量节点620可分别对应于奇偶校验矩阵800的行和列。因此,奇偶校验矩阵800的行的数量和奇偶校验矩阵800的列的数量可分别与Tanner图中的校验节点610的数量和变量节点620的数量一致。当奇偶校验矩阵800的分量具有不为零的值时,与该分量所在的行和列相对应的校验节点610中的一个和变量节点620中的一个可联接到边沿615中的一个。
通常可通过使用q进制和积算法(QSPA)或作为简化版本的q进制和积算法(QSPA)的扩展最小和算法(EMSA)来执行非二进制LDPC码的解码。
如上参照图6A所述,非二进制LDPC解码可包括校验节点更新操作、变量节点更新操作以及在变量节点620的初始更新操作之后的校正子校验操作作为一次迭代(迭代单位)。在一个迭代单位期间,Tanner图上的变量节点620中的一个和校验节点610中的一个可交换针对每个节点所生成和更新的消息。
每当执行一个迭代单位时,常规的非二进制LDPC解码算法可通过顺序地选择与奇偶校验矩阵800的每一行相对应的校验节点610中的一个来执行校验节点更新操作、变量节点更新操作和校正子校验操作,这将被执行多次。
在执行一个迭代单位的操作的同时,所选择的校验节点610可同时向联接到所选择的校验节点610的所有变量节点620提供校验节点消息615A。接收校验节点消息615A的变量节点620可同时向所选择的校验节点610提供变量节点消息615B。
所选择的校验节点610可通过对被同时提供到所选择的校验节点610的变量节点消息615B中包括的LLR进行分类来检测LLR之中的最小值作为第一最小LLR min1。进一步地,所选择的校验节点610可检测除了第一最小LLR min1之外的剩余LLR之中的最小值作为第二最小LLR min2。所选择的校验节点610可基于检测到的第一最小LLR min1和第二最小LLR min2来生成校验节点消息615A。因此,所选择的校验节点610可能需要分类器,该分类器用于对被同时提供到所选择的校验节点610以生成校验节点消息615A的变量节点消息615B中包括的LLR进行分类。
因为闪速存储器中使用的非二进制LDPC码被设计成具有少量奇偶校验的高速率码,所以奇偶校验矩阵800可被设计成具有列的数量(例如,N*Z)大于行的数量(例如,M*Z)的维度。因此,在以非二进制LDPC解码算法执行一个迭代单位的操作的同时,存在联接到校验节点610中的每一个的许多变量节点620,而且存在被同时提供到所选择的校验节点610的许多变量节点消息615B。当存在被同时提供到所选择的校验节点610的许多变量节点消息615B时,需要分类器在一个迭代单位期间对更多的LLR进行分类。因此,可能增加分类器的复杂性,同时可能降低解码收敛速度。
根据本发明的实施例,非二进制LDPC解码算法可在每次执行一个迭代单位时选择与奇偶校验矩阵800的每一列相对应的变量节点620,这将被执行多次。然后,变量节点620同时将变量节点消息615B提供到联接到所选择的变量节点620的所有校验节点610。根据本发明的实施例,联接到所选择的变量节点620的校验节点610中的每一个可在一个迭代单位期间通过仅利用从联接到校验节点610中的每一个的所有变量节点620之中的所选择的变量节点620提供的LLR来检测第一最小LLR min1和第二最小LLR min2来生成校验节点消息615B。因此,不需要具有高复杂性的分类器,并且可增加解码收敛速度。
图9是示出图3和图4A所示的低密度奇偶校验(LDPC)解码器133的框图。
如上参照图3所述,LDPC编码器131可对待编程到半导体存储器装置200中的数据进行编码以形成码字。码字可存储在半导体存储器装置200中。LDPC解码器133可对从半导体存储器装置200读取的码字执行错误校正解码。半导体存储器装置200和LDPC解码器133可通过信道彼此联接,并且半导体存储器装置200可通过信道向LDPC解码器133提供码字。
参照图9,LDPC解码器133可包括信道消息生成装置900、变量节点(VN)选择装置902、变量节点(VN)消息生成装置904、校验节点(CN)更新装置908、变量节点(VN)更新装置910和校正子校验装置912。
信道消息生成装置900可由半导体存储器装置200提供的码字生成信道消息MessageCH。信道消息MessageCH可包括信道符号SymbolCH和信道LLR向量LLRCH。信道消息MessageCH可由(q*1)维向量表示。位于信道消息MessageCH的第一行中的分量可以是信道符号SymbolCH。位于信道消息MessageCH的第二行至第q行的分量可以是信道LLR向量LLRCH。
信道消息生成装置900可从通过前面参照图5描述的硬判决读取操作所读取的码字中检测分别与奇偶校验矩阵800的列相对应的变量节点620的符号候选之中可靠性最高的符号作为信道符号SymbolCH。
信道消息生成装置900可对信道消息MessageCH中包括的所有分量进行归一化,使得检测到的信道符号SymbolCH的LLR具有值“0”。信道消息生成装置900可生成非二进制LDPC有限域GF(q)上的非二进制元素之中除了检测到的信道符号SymbolCH之外的剩余(q-1)个非二进制元素的LLR作为信道LLR向量LLRCH。信道消息生成装置900可将生成的信道消息MessageCH提供到变量节点消息生成装置904和变量节点更新装置910。
如上参照图5所述,软判决读取操作可指生成LLR的操作,LLR是能够增加硬判决读取操作的数据的可靠性的信息。然而,信道消息生成装置900可仅利用通过硬判决读取操作读取的码字来生成信道LLR向量LLRCH。因此,根据本发明的实施例的非二进制LDPC解码算法可应用于上面参照图5描述的硬判决LDPC解码(步骤S513)和软判决LDPC解码(步骤S530)两者。
在每次执行一个迭代单位时,变量节点选择装置902可通过选择与奇偶校验矩阵800的每一列相对应的变量节点620来生成变量节点选择信息Selectinfo。如上参照图8所述,奇偶校验矩阵800可包括(M*N)个子矩阵802,并且在每次执行一个迭代单位时,变量节点选择装置902可选择奇偶校验矩阵800的N个层804之中的一个层804。根据本发明的另一实施例,当在形成奇偶校验矩阵800中的所选择的多个层804中的每一个的行中包括的分量之中值不为“0”的分量的数量为一个或更少时,变量节点选择装置902可同时选择多个层804。
当变量节点选择装置902选择奇偶校验矩阵800的层804时,变量节点选择装置902可选择所选择的层804中包括的M个子矩阵802。如上参照图8所述,子矩阵802可以是零矩阵或(Z*Z)维循环移位单位矩阵。因此,所选择的M个子矩阵802可形成(M*Z)*(Z)维矩阵,并且变量节点选择装置902可通过选择奇偶校验矩阵800的层804来选择Z个变量节点620。
在共享Z*Z维循环移位单位矩阵802的每一行的Z个分量之中,仅一个分量可具有不为“0”的值。因此,在从奇偶校验矩阵800中选择的M个子矩阵中的每一个中共享相同行的Z个分量之中值不为“0”的分量的数量可以不为两个或更多个。如上参照图8所述,当奇偶校验矩阵800的分量具有不为“0”的值时,分别与该分量所在的行和列相对应的校验节点610和变量节点620可联接到边沿615。因此,在所选择的Z个变量节点之中联接到相同校验节点610的变量节点的数量可以不为两个或更多个。
然而,在从奇偶校验矩阵800中选择的M个子矩阵802中共享相同列的M*Z个分量之中,可能存在两个或更多个值不为“0”的分量。因此,所选择的Z个变量节点中的每一个可联接到两个或更多个校验节点610。换言之,尽管所选择的Z个变量节点620可联接到多个校验节点610,但所选择的Z个变量节点620可不联接到相同的校验节点610。当从所选择的变量节点620向联接到所选择的变量节点620中的每一个的校验节点610提供变量节点消息615B时,最多可从一个变量节点向校验节点610提供变量节点消息615B。
变量节点选择装置902可基于触发信号Signaltrig针对所选择的变量节点620生成变量节点选择信息Selectinfo。进一步地,变量节点选择装置902可向校验节点更新装置908和变量节点消息生成装置904提供所生成的变量节点选择信息Selectinfo。
校验节点更新装置908可基于所提供的变量节点选择信息Selectinfo来生成从分别联接到所选择的变量节点620的校验节点610提供到所选择的变量节点620的校验节点消息Messagecheck,这将在后面进行描述。进一步地,校验节点更新装置908可向变量节点消息生成装置904和变量节点更新装置910提供所生成的校验节点消息Messagecheck。
变量节点更新装置910可通过使用所提供的信道消息MessageCH和校验节点消息Messagecheck来更新所选择的变量节点620中的每一个的符号。变量节点更新装置910可利用信道符号SymbolCH来执行初始变量节点更新操作,以初始化所选择的变量节点620的符号。变量节点更新装置910可针对每个非二进制元素,计算从联接到所选择的变量节点620的校验节点610提供的校验节点消息Messagecheck的校验节点LLR向量LLRcheck中包括的LLR与从信道消息生成装置900提供的信道消息MessageCH的信道LLR向量LLRCH中包括的LLR的自然数和。变量节点更新装置910可生成针对每个非二进制元素计算的LLR的自然数和作为APP(后验概率)。稍后将参照图13描述生成APP的具体方法。
变量节点更新装置910可针对APP中包括的非二进制元素中的每一个,更新与LLR的自然数和之中的最小值相对应的非二进制元素作为所选择的变量节点中的每一个的符号Symbolvar。变量节点更新装置910可通过更新所选择的变量节点620中的每一个的符号来更新包括Tanner图上的变量节点620中的每一个的符号的向量v。变量节点更新装置910可向校正子校验装置912提供所更新的向量v。
如上参照图6C所述,校正子校验装置912可确定从变量节点更新装置910提供的向量v和奇偶校验矩阵800之间的乘积Hvt运算的结果是否满足特定条件。如果作为乘积运算的结果获得零向量(0),则可确定满足特定条件。当确定满足特定条件时,校正子校验装置912可终止非二进制LDPC解码。当校正子校验装置912确定不满足特定条件时,校正子校验装置912可向变量节点消息生成装置904提供失败信号Signalfail。
变量节点消息生成装置904可基于所提供的变量节点选择信息Selectinfo和失败信号Signalfail,使用从信道消息生成装置900提供的信道消息MessageCH和从校验节点消息生成装置908提供的校验节点消息Messagecheck来生成外部信息Extrinsicinfo。变量节点消息生成装置904可由所生成的外部信息Extrinsicinfo生成变量节点消息Messagevar。
图10是示出图9的变量节点消息生成装置904的结构的框图。
参照图10,变量节点消息生成装置904可包括外部信息生成装置1000、变量节点(VN)符号检测装置1002、变量节点对数似然比(LLR)生成装置1004和边沿增益装置1006。
外部信息生成装置1000可基于从图9的信道消息生成装置900提供的信道消息MessageCH和从图9的校验节点更新装置908提供的校验节点消息Messagecheck来生成外部信息Extrinsicinfo。外部信息生成装置1000可从联接到所选择的变量节点620的校验节点610之中顺序地选择待从所选择的变量节点620向其提供变量节点消息Messagevar的校验节点。根据本发明的实施例,外部信息生成装置1000可通过计算第一LLR和第二LLR的自然数和来生成外部信息Extrinsicinfo。第一LLR被包括在从联接到所选择的变量节点620的校验节点610之中除了顺序选择的校验节点之外的剩余校验节点610提供的校验节点消息Messagecheck的校验节点LLR向量LLRcheck中。对于每个非二进制元素,第二LLR被包括在从信道消息生成装置900提供的信道消息MessageCH的信道LLR向量LLRCH中。稍后将参照图14描述计算LLR的自然和的具体方法。
根据本发明的另一实施例,外部信息生成装置1000可基于由图9的变量节点更新装置910生成的APP(后验概率)和从待从所选择的变量节点620向其提供变量节点消息Messagevar的校验节点提供的校验节点消息Messagecheck来生成外部信息Extrinsicinfo。外部信息生成装置1000可通过针对每个非二进制元素,从基于APP计算的非二进制元素的每一个的LLR的自然数和中减去从待向其提供变量节点消息Messagevar的校验节点提供的校验节点消息Messagecheck的校验节点LLR向量LLRcheck中包括的LLR来生成外部信息Extrinsicinfo。外部信息生成装置1000可向变量节点符号检测装置1002和变量节点LLR生成装置1004提供所生成的外部信息Extrinsicinfo。
变量节点符号检测装置1002可从所提供的外部信息Extrinsicinfo中检测变量节点符号Symbolvar。变量节点符号检测装置1002可对针对非二进制元素中的每一个计算的LLR的自然数和进行分类,以检测与LLR的自然数和之中的最小值相对应的非二进制元素作为变量节点符号Symbolvar。变量节点符号检测装置1002可向变量节点LLR生成装置1004和边沿增益装置1006提供检测到的变量节点符号Symbolvar。
变量节点LLR生成装置1004可根据所提供的变量节点符号Symbolvar和外部信息Extrinsicinfo生成变量节点LLR向量LLRvar。变量节点LLR生成装置1004可对外部信息Extrinsicinfo进行归一化,使得检测到的变量节点符号Symbolvar的LLR具有值“0”。变量节点LLR生成装置1004可通过从外部信息Extrinsicinfo中包括的非二进制元素中的每一个的LLR的自然数和中减去检测到的变量节点符号Symbolvar的LLR的自然数和来对外部信息Extrinsicinfo进行归一化。
变量节点LLR生成装置1004可从归一化的外部信息Extrinsicinfo生成由除了变量节点符号Symbolvar之外的剩余(q-1)个非二进制元素的LLR形成的变量节点LLR向量LLRvar。变量节点LLR生成装置1004可向边沿增益装置1006提供所生成的变量节点LLR向量LLRvar。
边沿增益装置1006可通过将检测到的变量节点符号Symbolvar和所生成的变量节点LLR向量LLRvar中的每一个乘以边沿增益来生成更新变量节点消息Messagevar。边沿增益装置1006可通过将变量节点符号Symbolvar和变量节点LLR向量LLRvar中的每一个乘以边沿增益来生成边沿增益符号Symboledge和边沿增益LLR向量LLRedge。稍后将参照图15详细描述生成边沿增益LLR向量LLRedge的过程。
边沿增益装置1006可生成包括所生成的边沿增益符号Symboledge和边沿增益LLR向量LLRedge的更新变量节点消息Messagevar。更新变量节点消息Messagevar可由(q*1)维向量表示。位于更新变量节点消息Messagevar的第一行中的分量可以是边沿增益符号Symboledge,并且位于第二行至第q行的分量可以是边沿增益LLR向量LLRedge。边沿增益装置1006可向校验节点更新装置908提供更新变量节点消息Messagevar。
重新参照图9,校验节点更新装置908可基于所提供的变量节点消息Messagevar生成校验节点消息Messagecheck。然后,校验节点更新装置908可对联接到所选择的变量节点620中的每一个的校验节点610进行更新。
图11是示出图9的校验节点(CN)更新装置908的结构的框图。
参照图11,校验节点更新装置908可包括校验节点消息生成装置1106和边沿增益补偿装置1104。校验节点消息生成装置1106可包括校验节点(CN)符号检测装置1100和校验节点(CN)LLR生成装置1102。
如上所述,非二进制LDPC解码可包括多个迭代单位,每个迭代单位包括在变量节点620的初始更新操作之后的校验节点更新操作、变量节点更新操作和校正子校验操作。每次执行一个迭代单位时,变量节点选择装置902可从图8中的奇偶校验矩阵800的N个层804中选择一个层。非二进制LDPC解码可包括多个周期,每个周期包括执行N次一个迭代,使得变量节点选择装置902选择奇偶校验矩阵800中的所有N个层804一次。
校验节点消息生成装置1106可包括校验节点符号检测装置1100和校验节点LLR生成装置1102。在一个周期期间,校验节点符号检测装置1100可基于从分别联接到校验节点610的所有变量节点之中的所选择的变量节点620提供的变量节点消息Messagevar来检测校验节点符号Symbolcheck,其中该校验节点610联接到所选择的变量节点620。在一个周期期间,校验节点符号检测装置1100可将从联接到校验节点610的所有变量节点之中的所选择的变量节点620提供的先前变量节点消息Messagepre.var中包括的先前变量节点符号Symbolpre.var单独存储到第一存储空间(未示出)中,其中该校验节点610联接到所选择的变量节点620。
在后续的一个周期中,校验节点符号检测装置1100可检测通过对从联接到校验节点610的所有变量节点提供的变量节点符号Symbolvar执行XOR运算而计算的值,作为XOR符号SymbolXOR,其中该校验节点610联接到所选择的变量节点620。然后,校验节点符号检测装置1100可将检测到的XOR符号SymbolXOR单独存储到第二存储空间(未示出)中。校验节点符号检测装置1100可检测通过对单独存储在第一存储空间中的先前变量节点符号Symbolpre.var和单独存储在第二存储空间中的XOR符号SymbolXOR执行XOR运算而计算的值,作为校验节点符号Symbolcheck。
然而,当执行初始的一个周期时,先前变量节点符号Symbolpre.var可能不存在。因此,当变量节点消息Messagevar最初被提供到校验节点时,校验节点符号检测装置1100可将针对校验节点中的每一个的先前变量节点符号Symbolpre.var初始化,作为所提供的变量节点消息Messagevar的变量节点符号Symbolvar。
校验节点符号检测装置1100可初始化校验节点的先前变量节点符号Symbolpre.var。然后,当后续变量节点消息Messagevar被提供到校验节点时,校验节点符号检测装置1100可检测通过对先前变量节点符号Symbolpre.var和XOR符号SymbolXOR执行XOR运算而计算的值作为校验节点符号Symbolcheck。
校验节点LLR生成装置1102可由所提供的变量节点消息Messagevar生成校验节点LLR向量LLRcheck。每当从联接到校验节点610的所有变量节点之中的所选择的变量节点620提供变量节点消息Messagevar时,校验节点LLR生成装置1102可获得在所提供的变量节点消息Messagevar中包括的变量节点LLR向量LLRvar的相同行上的分量之中的包括第一最小值LLR min1和第二最小值LLR min2的第一最小值向量和第二最小值向量作为位于每一行中的分量。然后,校验节点LLR生成装置1102可将第一最小值向量和第二最小值向量单独存储到第三存储空间(未示出)中。
当执行初始的一个周期时,可能不存在第一最小值向量和第二最小值向量。因此,在最初提供到校验节点中的每一个的变量节点消息Messagevar的情况下,校验节点LLR生成装置1102可将校验节点中的每一个的第一最小值向量初始化为所提供的变量节点消息Messagevar的变量节点LLR向量LLRvar。校验节点LLR生成装置1102可初始化校验节点的第一最小值向量。然后,当后续变量节点消息Messagevar被提供到校验节点时,校验节点LLR生成装置1102可将后续变量节点消息Messagevar的变量节点LLR向量LLRvar中包括的LLR与每一行的第一最小值向量进行比较。然后,校验节点LLR生成装置1102可将被比较的LLR之中的较小值确定为第一最小LLR min1,并且将较大的值确定为第二最小LLR min2。校验节点LLR生成装置1102可获得以上被确定为位于每一行中的分量的、具有第一最小LLR min1和第二最小LLR min2的第一最小值向量和第二最小值向量。
根据本发明的实施例,变量节点选择装置902可通过选择共享奇偶校验矩阵800的相同层804的子矩阵802来选择分别与形成子矩阵802的列相对应的变量节点620。如上所述,因为子矩阵802中的每一个是零矩阵或循环移位单位矩阵,所以所选择的变量节点之中联接到相同校验节点610的变量节点的数量可以不为两个或更多个。因此,在一个迭代单位期间,可最多从一个变量节点向校验节点中的每一个提供变量节点消息Messagevar。进一步地,因为只有变量节点消息Messagevar的变量节点LLR向量LLRvar中包括的LLR被提供到校验节点中的每一个,所以校验节点LLR生成装置1102可不需要高复杂性的分类器。此外,校验节点中的每一个的第一最小值向量和第二最小值向量中包括的LLR需要针对每一行彼此进行比较。
每当第一最小值向量和第二最小值向量被更新时,校验节点LLR生成装置1102可通过记录提供包括位于第一最小值向量和第二最小值向量的每一行中的分量的LLR的变量节点的位置来生成第一最小值位置向量和第二最小值位置向量。由于上面参照图8描述了校验节点LLR生成装置1102记录了奇偶校验矩阵800的列,校验节点LLR生成装置1102可记录提供包括位于第一最小值向量和第二最小值向量的每一行中的分量的LLR的变量节点的位置。
校验节点LLR生成装置1102可通过使用第一最小值向量与第二最小值向量之间的至少一个,通过诸如最小和算法或极小极大算法的非二进制LDPC解码算法来生成校验节点LLR向量LLRcheck。因此,校验节点消息生成装置908可生成包括如上生成的校验节点符号Symbolcheck和校验节点LLR向量LLRcheck的校验节点消息Messagecheck。
校验节点符号检测装置1100和校验节点LLR生成装置1102可在生成校验节点消息Messagecheck之后执行校验节点更新操作。校验节点符号检测装置1100可将所提供的变量节点消息Messagevar的变量节点符号Symbolvar单独存储到第一存储空间中,作为先前变量节点符号Symbolpre.var。校验节点LLR生成装置1102可通过针对每一行,对位于所提供的变量节点消息Messagevar、第一最小值向量和第二最小值向量的相同行上的分量的大小进行比较来更新第一最小值向量和第二最小值向量。然后,校验节点LLR生成装置1102可将更新的向量存储到第三存储空间中。
边沿增益补偿装置1104可将所生成的校验节点消息Messagecheck的校验节点符号Symbolcheck与校验节点LLR向量LLRcheck乘以边沿增益的倒数。边沿增益补偿装置1104可将校验节点符号Symbolcheck和校验节点LLR向量LLRcheck乘以边沿增益的倒数,以生成补偿边沿增益符号Symboledge和补偿边沿增益LLR向量LLRedge。
边沿增益补偿装置1104可与稍后参照图15描述的边沿增益装置1006相对地进行操作,以生成补偿边沿增益符号Symboledge和补偿边沿增益LLR向量LLRedge。边沿增益补偿装置1104可将与位于校验节点LLR向量LLRcheck的每一行中的LLR相对应的非二进制元素中的每一个乘以边沿增益的倒数。边沿增益补偿装置1104可在乘以边沿增益的倒数之前将非二进制元素的LLR确定为通过乘法运算获得的非二进制元素的LLR。
在校验节点更新装置908执行校验节点更新操作之后,校验节点更新装置908可生成触发信号Signaltrig并向变量节点选择装置902提供该触发信号。变量节点选择装置902可根据所提供的触发信号选择奇偶校验矩阵800的层804,并且重复执行上述操作,直到成功地执行非二进制LDPC解码。
图12A和图12B是示出根据本发明的实施例的由图4A的半导体系统10执行的非二进制LDPC解码的操作的流程图。
参照图12A,在步骤S1200中,信道消息生成装置900可由从半导体存储器装置200提供的码字生成信道消息MessageCH。信道消息MessageCH可包括信道符号SymbolCH和信道LLR向量LLRCH。
在步骤S1201中,变量节点更新装置910可执行初始变量节点更新操作,用于初始化所选择的变量节点620的每个符号作为信道符号SymbolCH。
在步骤S1203中,校正子校验装置912可检查作为分量的包括在步骤S1201中更新的所有变量节点620的符号值的向量v与奇偶校验矩阵800的乘积运算Hvt的结果是否满足特定条件。如果满足特定条件,则校正子校验装置912可终止非二进制LDPC解码。
在步骤S1205中,如果变量节点选择装置902在步骤S1203中不满足特定条件,则变量节点选择装置902可选择与奇偶校验矩阵800的各个列相对应的变量节点620,并且生成第i变量节点选择信息Selectinfo_i。变量节点选择装置902可通过选择上面参照图8描述的奇偶校验矩阵800的第i层804来选择Z个变量节点620。
在步骤S1207中,变量节点消息生成装置904可检测变量节点符号Symbolvar,并且生成变量节点LLR向量LLRvar。检测到的变量节点符号Symbolvar可以是在步骤S1200中生成的信道符号SymbolCH。生成的变量节点LLR向量LLRvar可以是在步骤S1200中生成的信道LLR向量LLRCH。
在步骤S1209中,边沿增益装置1006可通过将变量节点符号Symbolvar和在步骤S1207中生成的变量节点LLR向量LLRvar分别乘以边沿增益来生成边沿增益符号和边沿增益LLR向量。边沿增益装置1006可生成包括边沿增益符号和边沿增益LLR向量的变量节点消息Messagevar。
在步骤S1211中,校验节点更新装置908可根据在步骤S1209中生成的变量节点消息Messagevar执行校验节点更新操作。校验节点符号检测装置1100可存储提供到校验节点中的每一个的变量节点消息Messagevar的边沿增益符号作为校验节点中的每一个的先前变量节点符号Symbolpre.var。
校验节点符号检测装置1100可检测通过对变量节点符号执行XOR运算而计算的值,并且将检测到的XOR符号SymbolXOR存储到第二存储空间中。可从联接到校验节点的所有变量节点620提供变量节点符号作为XOR符号,该校验节点联接到所选择的变量节点620。
每当从联接到校验节点610的所有变量节点之中的所选择的变量节点620向校验节点610提供变量节点消息Messagevar时,校验节点LLR生成装置1102可生成在位于所提供的变量节点消息Messagevar中包括的变量节点LLR向量LLRvar的相同行中的分量之中的、包括第一最小值LLR min1和第二最小值LLR min2的第一最小值向量和第二最小值向量作为位于每一行中的分量,其中校验节点610联接到所选择的变量节点620。然后,校验节点LLR生成装置1102可将第一最小值向量和第二最小值向量单独存储到第三存储空间(未示出)中。
在步骤S1213中,校验节点更新装置908可通过重复执行上述步骤S1205至S1211来执行校验节点更新操作,直到变量(i)变为N。在步骤S1215中,校验节点更新装置908可不生成校验节点消息Messagecheck。如稍后所述,校验节点更新装置908可执行校验节点初始化操作,以生成在步骤S1204中提供到变量节点的校验节点消息Messagecheck。
在步骤S1215中执行校验节点初始化操作之后,校验节点更新装置908可根据初始化的校验节点生成校验节点消息Messagecheck,并且向所选择的变量节点提供所生成的校验节点消息Messagecheck,这稍后将在步骤S1224中进行描述。边沿增益补偿装置1104可将所生成的校验节点消息Messagecheck的校验节点符号Symbolcheck与校验节点LLR向量LLRcheck分别乘以边沿增益的倒数。边沿增益补偿装置1104可将与位于校验节点LLR向量LLRcheck的每一行中的LLR相对应的非二进制元素中的每一个乘以边沿增益的倒数。边沿增益补偿装置1104可将乘以边沿增益的倒数之前的非二进制元素中的每一个的LLR确定为通过乘法运算而获得的非二进制元素中的每一个的LLR。
参照图12B,在步骤S1222中,校验节点更新装置908可在步骤S1215中执行校验节点初始化操作之后生成初始校验节点消息Messagecheck_initial。
在步骤S1202中,每当执行一个迭代单位的操作以生成变量节点选择信息Selectinfo时,变量节点选择装置902可选择与奇偶校验矩阵800的各个列相对应的变量节点620。变量节点选择装置902可通过选择上面参照图8描述的奇偶校验矩阵800的层804来选择Z个变量节点620。
在步骤S1204中,如下所述,校验节点更新装置908可将在步骤S1222和步骤S1218中生成的校验节点消息Messagecheck提供到联接到校验节点610的变量节点。
在步骤S1206中,变量节点更新装置910可基于在步骤S1200中生成的信道消息MessageCH和在步骤S1222和S1218中从联接到所选择的变量节点620的校验节点提供的校验节点消息Messagecheck来在步骤S1202中更新所选择的变量节点620的符号。
图13示出更新变量节点620的符号的操作。
作为示例,图13至图15示出非二进制LDPC有限域(GF(q))的q为4并且形成奇偶校验矩阵800的子矩阵的Z为1的情况。
如上所述,变量节点更新装置910可基于从联接的校验节点1300、1302和1304提供的第一、第二和第三校验节点消息1310、1312和1314的校验节点LLR向量LLRcheck1、LLRcheck2和LLRcheck3以及从信道消息生成装置900提供的信道消息1308来计算APP(后验概率)。
信道消息1308的信道符号可具有值00。信道消息1308的信道LLR向量LLRCH(001,010,011)可分别表示非二进制元素01、10和11的LLR值。
第一校验节点消息1310的第一校验节点符号Symbolcheck1可具有值01。第一校验节点消息1310的第一校验节点LLR向量LLRcheck1(001,011,010)可分别表示非二进制元素00、11和10的LLR值。
第二校验节点消息1312的第二校验节点符号Symbolcheck2可具有值00。第二校验节点消息1312的第二校验节点LLR向量LLRcheck2(001,010,011)可分别表示非二进制元素01、10和11的LLR值。
第三校验节点消息1314的第三校验节点符号Symbolcheck3可具有值11。第三校验节点消息1314的第三校验节点LLR向量LLRcheck3(010,001,100)可分别表示非二进制元素10、01和00的LLR值。
变量节点更新装置910可根据非二进制LDPC有限域(GF(4))上的非二进制元素对第一至第三校验节点消息1310、1312和1314以及提供到所选择的变量节点1316的信道消息1308中包括的LLR值进行分类。
除了由非二进制元素分类的LLR值之外,变量节点更新装置910还可生成非二进制元素中的每一个的LLR值作为APP 1306。变量节点更新装置910可通过将由二进制数表示的LLR值转换为自然数并执行加法来生成非二进制元素中的每一个的LLR值作为APP 1306。
例如,变量节点更新装置910可通过将“001”和“100”分别转换为自然数1和4并对获得的自然数求和来确定具有值00的非二进制元素的LLR为“5”。此处,“001”是位于第一校验节点消息1310的第二行中的分量,“100”是位于第三校验节点消息1314的第四行中的分量。
变量节点更新装置910可通过将“001”、“001”和“001”分别转换为自然数1、1和1并对获得的自然数求和来确定具有值01的非二进制元素的LLR为“3”。此处,“001”值是分别位于信道消息1308的第二行中、第二校验节点消息1312的第二行中和第三校验节点消息1314的第三行中的分量。
变量节点更新装置910可通过将“010”、“010”、“010”和“010”分别转换为自然数2、2、2和2并对获得的自然数求和来确定具有值10的非二进制元素的LLR为“8”。此处,“010”值是位于信道消息1308的第三行中、第一校验节点消息1310的第四行中、第二校验节点消息1312的第三行中以及第三校验节点消息1314的第二行中的分量。
变量节点更新装置910可通过将“011”、“011”和“011”分别转换为自然数3、3和3并对获得的自然数求和来确定具有值11的非二进制元素的LLR为“9”。此处,“011”值是位于信道消息1308的第四行中、第一校验节点消息1310的第三行中和第二校验节点消息1312的第四行中的分量。
变量节点更新装置910可更新非二进制元素01作为变量节点的更新符号Symbolvar。非二进制元素01具有作为LLR的自然数和的、非二进制元素的LLR的自然数和5、3、8和9之中的最小值“3”。
重新参照图12B,在步骤S1208中,校正子校验装置912可确定包括在步骤S1206更新的变量节点620的符号的向量v与奇偶校验矩阵800的乘积Hvt运算结果是否满足特定条件。当满足特定条件时(S1208,是),校正子校验装置912可终止非二进制LDPC解码。当不满足特定条件时(S1208,否),过程可进行到步骤S1210以执行非二进制LDPC解码,直到满足特定条件。
在步骤S1210中,变量节点消息生成装置904可基于在步骤S1200中生成的信道消息MessageCH和从校验节点更新装置908提供的校验节点消息Messagecheck来生成外部信息Extrinsicinfo。
图14示出根据本发明的实施例的生成变量节点符号和变量节点LLR的操作。
参照图14,图10的外部信息生成装置1000可在联接的校验节点1300、1302和1304之中选择第一校验节点1300作为用于提供变量节点消息1410的校验节点。
外部信息生成装置1000可通过计算第二校验节点消息1412和第三校验节点消息1414的第二校验节点LLR向量LLRcheck2和第三校验节点LLR向量LLRcheck3以及信道消息1308的信道LLR向量LLRCH的自然数和来生成外部信息1418。可从联接的校验节点1300、1302和1304之中除了所选择的第一校验节点1300之外的剩余的第二校验节点1302和第三校验节点1304提供第二校验节点消息1412和第三校验节点消息1414的第二校验节点LLR向量LLRcheck2和第三校验节点LLR向量LLRcheck3。可从信道消息生成装置900提供信道消息1308的信道LLR向量LLRCH。
信道消息1308的信道符号SymbolCH可具有值00。位于信道消息1308的信道LLR向量LLRCH的各个行中的分量001、010和011是通过将作为信道符号SymbolCH的值的“00”分别与01、10和11执行XOR运算而获得的。
第二校验节点消息1412的第二校验节点符号Symbolcheck2可具有值00。位于第二校验节点消息1412的第二校验节点LLR向量LLRcheck2的各个行中的分量001、010和011可表示非二进制元素01、10和11的LLR值,这是通过分别执行具有值00的第二校验节点符号Symbolcheck2与01、10和11的XOR运算而获得的。
第三校验节点消息1414的第三校验节点符号Symbolcheck3可具有值11。位于第三校验节点消息1414的第三校验节点LLR向量LLRcheck3的各个行中的分量010、001和100可表示非二进制元素10、01和00的LLR值,这是通过分别执行具有值11的第三校验节点符号Symbolcheck3与01、10和11的XOR运算而获得的。
外部信息生成装置1000可根据非二进制元素,将位于提供到所选择的变量节点1316的第二校验节点消息1412、第三校验节点消息1414和信道消息1308的第二行至第四行中的LLR值进行分类。外部信息生成装置1000可通过对由每个非二进制元素分类的LLR值求和来生成外部信息1418。
例如,外部信息生成装置1000可确定具有值00的非二进制元素的LLR为“4”,这是通过将位于第三校验节点消息1414的第四行中的分量100转换为自然数而获得的。而且,外部信息生成装置1000可确定具有值01的非二进制元素的LLR为“3”,这是通过将位于信道消息1308的第二行中的分量001转换为自然数“1”、将位于第二校验节点消息1412的第二行中的分量001转换为自然数“1”、将位于第三校验节点消息1414的第三行中的分量001转换为自然数“1”并对这些自然数进行求和而获得的。外部信息生成装置1000可确定具有值10的非二进制元素的LLR为“6”,这是通过将位于信道消息1308的第三行中的分量010转换为自然数“2”、将位于第二校验节点消息1412的第三行中的分量010转换为自然数“2”、将位于第三校验节点消息1414的第二行中的分量010转换为自然数“2”并对这些自然数进行求和而获得的。外部信息生成装置1000可确定具有值11的非二进制元素的LLR为“6”,这是通过将位于信道消息1308的第四行中的分量011转换为自然数“3”、将位于第二校验节点消息1412的第四行中的分量011转换为自然数“3”并对这些自然数进行求和而获得的。当确定的非二进制元素00、01、10和11的LLR值由十进制数表示时,它们可以分别是4、3、6和6。
根据本发明的另一实施例,外部信息生成装置1000可基于APP 1306和第一校验节点消息1410生成外部信息1418,这在上面参照图13进行了描述。外部信息生成装置1000可通过从基于APP 1306计算的非二进制元素中的每一个的LLR中减去基于第一校验节点消息1410的非二进制元素中的每一个的LLR来生成外部信息1418。例如,根据图13中计算的APP1306,非二进制元素00、01、10和11的LLR可以分别是5、3、8和9,并且元素00、01、10和11的LLR可以分别是1、0、2和3。外部信息生成装置1000可通过从值5、3、8和9中减去值1、0、2和3来生成具有4、3、6和6的外部信息1418作为非二进制元素的00、01、10和11的LLR值。值1、0、2和3是基于第一校验节点消息1410的非二进制元素的LLR值。值5、3、8和9是基于APP 1306的非二进制元素的LLR值。
重新参照图12B,在步骤S1212中,图10的变量节点符号检测装置1002可从在步骤S1210中生成的外部信息Extrinsicinfo中检测变量节点符号Symbolvar。
在步骤S1214中,变量节点LLR生成装置1004可从在步骤S1212中检测到的变量节点符号Symbolvar中生成变量节点LLR向量LLRvar。
在步骤S1216中,变量节点消息生成装置904可从在步骤S1212中检测到的变量节点符号Symbolvar和在步骤S1214中生成的变量节点LLR向量LLRvar中生成变量节点消息Messagevar。
重新参照图14,图10的变量节点符号检测装置1002可检测具有LLR值3的非二进制元素01作为变量节点符号Symbolvar。具有LLR值3的非二进制元素01是外部信息1418中存储的LLR值之中的最小值。
变量节点LLR生成装置1004可通过从非二进制元素中的每一个的LLR值中减去3来对外部信息1418进行归一化,使得检测到的变量节点符号Symbolvar的LLR可具有值“0”。变量节点LLR生成装置1004可分别确定归一化的非二进制元素00、01、10和11的LLR值为1、0、3和3。当确定的非二进制元素之中除了检测到的变量节点符号Symbolvar之外的非二进制元素00、10和11的LLR值由二进制数表示时,它们可以分别是001、011和011。
如上所述,边沿增益装置1006可通过将检测到的变量节点符号Symbolvar和所生成的变量节点LLR向量LLRvar乘以边沿增益来生成变量节点消息Messagevar。边沿增益装置1006可确定具有值01的变量节点符号Symbolvar为位于变量节点消息1410的第一行中的分量。进一步地,边沿增益装置1006可确定作为非二进制元素00、11和10的LLR值的001、011和011分别为位于第二行至第四行中的分量。
图15是示出生成变量节点消息Messagevar的操作的示图。
参照图15,如上述图14的示例所示,变量节点消息Messagevar可包括值01、001、011和011。值01是位于所生成的变量节点消息1410的第一行中的分量。值001、011和011分别位于所生成的变量节点消息1410的第二行至第四行中。值01可以是变量节点符号Symbolvar。值001、011和011可以分别是变量节点LLR向量LLRvar中的非二进制元素00、11和10的LLR值。
边沿增益装置1006可检测“10”作为边沿增益符号,其中该“10”是通过将具有值01的变量节点符号Symbolvar乘以具有值10的边沿增益而获得的值。
边沿增益装置1006可确定非二进制元素11、00和01的LLR值作为待分别位于变量节点消息1410的第二行至第四行中的分量,其中非二进制元素11、00和01的LLR值是通过将具有值10的变量节点符号Symbolvar与01、10和11执行XOR运算而计算的。
边沿增益装置1006可将具有位于更新变量节点消息1400的第二行至第四行中的分量作为LLR值的非二进制元素00、11和10中的每一个乘以具有值10的边沿增益。边沿增益装置1006可确定001、011和011为通过乘法获得的非二进制元素00、01和11具有的LLR值,其中001、011和011是非二进制元素00、11和10在乘以边沿增益之前的LLR值。边沿增益装置1006可确定将位于更新变量节点消息1400的第二行至第四行中的分量作为非二进制元素11、00和01的LLR值011、001和011。
重新参照图12B,在步骤S1218中,图11的校验节点符号检测装置1100可由在一个周期期间提供的变量节点消息Messagevar生成校验节点消息Messagecheck。
如上所述,校验节点符号检测装置1100可在该周期之前,将从与当前选择的变量节点620相同的变量节点620提供的先前变量节点消息Messagepre.var中包括的先前变量节点符号Symbolpre.var单独存储到第一存储空间(未示出)中。
而且,如上所述,在执行后续的一个周期的同时,校验节点符号检测装置1100可检测通过对从分别联接到校验节点610的所有变量节点提供的变量节点符号Symbolvar执行XOR运算而获得的值,作为XOR符号SymbolXOR,其中该校验节点610联接到所选择的变量节点620。然后,校验节点符号检测装置1100可将检测到的XOR符号SymbolXOR单独存储到第二存储空间(未示出)中。校验节点符号检测装置1100可检测通过对单独存储在第一存储空间中的先前变量节点符号Symbolpre和单独存储在第二存储空间中的XOR符号SymbolXOR执行XOR运算而计算的值,作为校验节点符号Symbolcheck。
例如,当单独存储在第一存储空间中的先前变量节点符号Symbolpre.var具有值11并且单独存储在第二存储空间中的XOR符号SymbolXOR具有值10时,校验节点符号Symbolcheck可具有通过对11和10执行XOR运算而获得的值01。
校验节点LLR生成装置1102可由在步骤S1216中生成的变量节点消息Messagevar生成校验节点LLR向量LLRcheck。校验节点LLR生成装置1102可由所提供的变量节点消息Messagevar生成校验节点LLR向量LLRcheck。每当从联接到校验节点610的所有变量节点之中的所选择的变量节点620中的每一个向校验节点610提供变量节点消息Messagevar时,校验节点LLR生成装置1102可获得在位于所提供的变量节点消息Messagevar中包括的变量节点LLR向量LLRvar的相同行中的分量之中的、包括第一最小值LLR min1和第二最小值LLR min2的第一最小值向量和第二最小值向量作为位于每一行中的分量,其中校验节点610联接到所选择的变量节点620。然后,校验节点LLR生成装置1102可将第一最小值向量和第二最小值向量单独存储到第三存储空间(未示出)中。
校验节点LLR生成装置1102可通过使用更新的第一最小值向量与第二最小值向量之中的至少一个,基于非二进制LDPC解码算法来生成校验节点LLR向量LLRcheck。因此,校验节点更新装置908可生成包括所生成的校验节点符号Symbolcheck和校验节点LLR向量LLRcheck的校验节点消息Messagecheck。
在步骤S1220中,校验节点更新装置908可执行校验节点更新操作。校验节点更新装置908可更新在步骤S1216中生成的变量节点消息Messagevar的变量节点符号Symbolvar作为单独存储在第一存储空间中的先前变量节点符号Symbolpre.var。校验节点更新装置908可对在步骤S1216中提供的变量节点消息Messagevar的变量节点LLR向量LLRvar的分量、第一最小值向量和第二最小值向量之中位于相同行中的分量的大小进行彼此逐行比较。然后,校验节点更新装置908可更新第一最小值向量和第二最小值向量。
图16是示出根据本发明的实施例的非二进制LDPC解码器133的操作模拟结果的曲线图。
该曲线图可示出根据现有技术的非二进制LDPC解码器Decoderpre50和根据本发明的实施例的非二进制LDPC解码器Decodercolumn20的原始位错误率(RBER)的数据块错误率(CER)。非二进制LDPC解码器Decoderpre50的迭代单位的最大数量为50,非二进制LDPC解码器Decodercolumn20的迭代单位的最大数量为20。根据本发明的实施例的非二进制LDPC解码器可具有基于类似于非二进制LDPC解码器Decoderpre50的相同RBER的CER值。因此,在迭代单位的最大量数相同的条件下,根据本发明的实施例的非二进制LDPC解码器可具有比根据现有技术的非二进制LDPC解码器更快的收敛速度。
根据本发明的实施例,提供了一种系统、装置和方法,以快速且准确地对半导体存储器装置的存储器单元中存储的数据进行解码。
虽然已经关于具体实施例说明和描述了本发明,但是对于本领域技术人员显而易见的是,根据本公开,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (32)
1.一种半导体存储器系统,包括:
半导体存储器装置,存储作为被编码数据的码字;
解码器,基于由子矩阵形成的奇偶校验矩阵对所存储的码字进行解码,以生成经解码数据;以及
信道,将所述半导体存储器装置联接到所述解码器并向所述解码器提供所存储的码字,
其中所述解码器包括:
变量节点选择装置,执行变量节点选择操作,所述变量节点选择操作用于顺序地选择共享所述奇偶校验矩阵的相同层的子矩阵,并且顺序地选择分别对应于形成所选择的子矩阵的列的变量节点;
变量节点更新装置,执行变量节点更新操作,所述变量节点更新操作用于基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;以及
校验节点更新装置,执行校验节点更新操作,所述校验节点更新操作用于基于提供到与所选择的变量节点联接的校验节点的变量节点消息来更新所述校验节点。
2.根据权利要求1所述的半导体存储器系统,其中所述解码器将所述变量节点选择操作、所述变量节点更新操作和所述校验节点更新操作确定为一个迭代单位,并且重复执行所述迭代单位,直到所述码字被成功解码达到最大次数。
3.根据权利要求1所述的半导体存储器系统,其中所述解码器进一步包括:
信道消息生成装置,基于从所述信道提供的所述码字生成包括信道符号和信道LLR向量的所述信道消息;
校正子校验装置,通过将与形成所述奇偶校验矩阵的所有列相对应的变量节点的符号乘以所述奇偶校验矩阵获得零向量来终止所述解码并输出所述经解码数据;以及
变量节点消息生成装置,生成包括边沿符号和边沿LLR向量的变量节点消息。
4.根据权利要求1所述的半导体存储器系统,其中所述变量节点更新装置将所选择的变量节点中的每一个的符号初始化为信道符号。
5.根据权利要求1所述的半导体存储器系统,其中当所述变量节点消息最初从所选择的变量节点提供到分别联接到所选择的变量节点的所述校验节点时,所述校验节点更新装置分别将所述校验节点的先前变量节点符号初始化为所述变量节点消息的变量节点符号并且将所述校验节点的第一最小值向量初始化为所述变量节点消息的变量节点LLR向量。
6.根据权利要求1所述的半导体存储器系统,其中所述变量节点更新装置计算提供到所选择的变量节点的所述校验节点消息的校验节点LLR向量中包括的对数似然比LLR和每个非二进制元素的所述信道消息的信道LLR向量中包括的LLR的总和,并且利用所选择的变量节点中的每一个的符号更新与最小值相对应的非二进制元素。
7.根据权利要求3所述的半导体存储器系统,其中所述变量节点消息生成装置包括:
外部信息生成装置,基于所述信道消息和所述校验节点消息来生成外部信息;
变量节点符号检测装置,基于所述外部信息来检测变量节点符号;
变量节点对数似然比LLR生成装置,基于所检测到的变量节点符号和所生成的外部信息来生成变量节点LLR向量;以及
边沿增益装置,通过将所检测到的变量节点符号和所生成的变量节点LLR向量乘以边沿增益来生成所述边沿符号和所述边沿LLR向量。
8.根据权利要求7所述的半导体存储器系统,其中所述外部信息生成装置通过计算所述信道LLR向量中包括的LLR和剩余校验节点消息的校验节点LLR向量中包括的LLR的总和来生成所述外部信息,其中所述剩余校验节点消息是在针对每个非二进制元素提供到所选择的变量节点的所述校验节点消息之中除了从将被从所选择的变量节点中的每一个提供所述变量节点消息的校验节点提供的校验节点消息之外的校验节点消息。
9.根据权利要求7所述的半导体存储器系统,其中所述变量节点符号检测装置基于具有从所选择的变量节点提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息的变量节点符号的所述外部信息,重新设置与针对每个非二进制元素计算的LLR的总和的最小值相对应的非二进制元素。
10.根据权利要求7所述的半导体存储器系统,其中所述变量节点LLR生成装置通过执行外部信息归一化操作以获得针对所述外部信息中包括的所述非二进制元素中的每一个计算的LLR的总和中的每一个和与所计算的LLR的总和的最小值相对应的所述非二进制元素的所述LLR的总和之间的差来生成所述变量节点LLR向量。
11.根据权利要求7所述的半导体存储器系统,其中所述边沿增益装置获得与位于所述变量节点LLR向量的各个行中的LLR相对应的第一非二进制元素,和通过将所述第一非二进制元素乘以所述边沿增益获得的第二非二进制元素,并且
通过将分别对应于所述第一非二进制元素的LLR分别确定为具有与所述第一非二进制元素相同的值的所述第二非二进制元素的LLR,生成所述边沿LLR向量。
12.根据权利要求1所述的半导体存储器系统,其中所述校验节点更新装置包括:
校验节点消息生成装置,基于变量节点消息、第一最小值向量和第二最小值向量来生成包括校验节点符号和校验节点对数似然比LLR向量的校验节点消息;以及
边沿增益补偿装置,通过将所生成的校验节点消息乘以边沿增益的倒数来生成补偿边沿增益符号和补偿边沿增益LLR向量,
其中所述校验节点更新装置在生成所述校验节点消息之后,设置提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息的变量节点符号作为先前变量节点符号,并且通过将位于第一最小值向量、第二最小值向量和变量节点LLR向量的相同行中的分量的大小进行彼此比较,来更新所述第一最小值向量和所述第二最小值向量。
13.根据权利要求12所述的半导体存储器系统,其中所述校验节点消息生成装置包括:
校验节点符号检测装置,通过对XOR符号执行XOR运算来生成校验节点符号,所述XOR符号是通过对所述先前变量节点符号和从联接到所述校验节点的所有变量节点提供的变量节点符号执行XOR运算而获得的,所述检验节点与所选择的变量节点联接;以及
校验节点LLR,基于所述第一最小值向量和所述第二最小值向量之间的一个来生成所述校验节点LLR向量。
14.一种操作半导体存储器系统的方法,包括:
顺序地选择共享奇偶校验矩阵的相同层的子矩阵,并且顺序地选择分别对应于形成所选择的子矩阵的列的变量节点;
基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;并且
基于提供到与所选择的变量节点联接的所述校验节点的变量节点消息来更新所述校验节点,
其中将顺序地选择共享所述奇偶校验矩阵的所述相同层的所述子矩阵并顺序地选择分别对应于形成所选择的子矩阵的列的所述变量节点、基于提供到所选择的变量节点的所述信道消息和所述校验节点消息来更新所选择的变量节点、以及基于提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息来更新所述校验节点确定为一个迭代单位,并且重复执行所述迭代单位,直到码字被成功解码达到最大次数。
15.根据权利要求14所述的方法,进一步包括:
基于从信道提供的码字来生成包括信道符号和信道对数似然比LLR向量的所述信道消息;
当通过将与形成所述奇偶校验矩阵的所有列相对应的变量节点的符号乘以所述奇偶校验矩阵而获得零向量时,终止解码并输出经解码数据;并且
生成包括边沿符号和边沿LLR向量的变量节点消息。
16.根据权利要求14所述的方法,其中基于提供到所选择的变量节点的所述信道消息和所述校验节点消息来更新所选择的变量节点包括:
将所选择的变量节点中的每一个的符号初始化为信道符号。
17.根据权利要求14所述的方法,其中基于提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息来更新所述校验节点包括:
当基于提供到所选择的变量节点的所述信道消息和所述校验节点消息,最初对与形成所述奇偶校验矩阵的所有列相对应的变量节点执行所选择的变量节点的更新时,执行初始校验节点更新操作,所述初始校验节点更新操作用于更新联接到初始化的变量节点的校验节点。
18.根据权利要求14所述的方法,其中基于提供到所选择的变量节点的所述信道消息和所述校验节点消息来更新所选择的变量节点包括:
计算提供到所选择的变量节点的所述校验节点消息的校验节点LLR向量中包括的对数似然比LLR和每个非二进制元素的所述信道消息的信道LLR向量中包括的LLR的总和,并且利用所选择的变量节点中的每一个的符号更新与最小值相对应的非二进制元素。
19.根据权利要求15所述的方法,其中生成包括所述边沿符号和所述边沿LLR向量的所述变量节点消息包括:
基于所述信道消息和所述校验节点消息来生成外部信息;
基于所述外部信息来检测变量节点符号;
基于所检测到的变量节点符号和所生成的外部信息来生成变量节点LLR向量;并且
通过将所检测到的变量节点符号和所生成的变量节点LLR向量乘以边沿增益来生成所述边沿符号和所述边沿LLR向量。
20.根据权利要求19所述的方法,其中基于所述信道消息和所述校验节点消息来生成所述外部信息包括:
通过计算所述信道LLR向量中包括的LLR和剩余校验节点消息的校验节点LLR向量中包括的LLR的总和来生成所述外部信息,其中所述剩余校验节点消息是在针对每个非二进制元素提供到所选择的变量节点的所述校验节点消息之中除了从将被从所选择的变量节点中的每一个提供所述变量节点消息的校验节点提供的校验节点消息之外的校验节点消息。
21.根据权利要求19所述的方法,其中基于所述外部信息来检测所述变量节点符号包括:
基于具有从所选择的变量节点提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息的变量节点符号的所述外部信息,重新设置与针对每个非二进制元素计算的LLR的总和的最小值相对应的非二进制元素。
22.根据权利要求19所述的方法,其中基于所检测到的变量节点符号和所生成的外部信息来生成所述变量节点LLR向量包括:
通过执行外部信息归一化操作以获得针对所述外部信息中包括的所述非二进制元素中的每一个计算的LLR的总和中的每一个和与所计算的LLR的总和的最小值相对应的所述非二进制元素的所述LLR的总和之间的差来生成所述变量节点LLR向量。
23.根据权利要求19所述的方法,其中通过将所检测到的变量节点符号和所生成的变量节点LLR向量乘以所述边沿增益来生成所述边沿符号和所述边沿LLR向量包括:
获得与位于所述变量节点LLR向量的各个行中的LLR相对应的第一非二进制元素,和通过将所述第一非二进制元素乘以所述边沿增益获得的第二非二进制元素,并且
通过将分别对应于所述第一非二进制元素的LLR分别确定为具有与所述第一非二进制元素相同的值的所述第二非二进制元素的LLR,生成所述边沿LLR向量。
24.根据权利要求14所述的方法,其中基于提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息来更新所述校验节点包括:
基于变量节点消息、第一最小值向量和第二最小值向量来生成包括校验节点符号和校验节点LLR向量的校验节点消息;并且
通过将所生成的校验节点消息乘以边沿增益的倒数来生成补偿边沿增益符号和补偿边沿增益LLR向量,
其中基于提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息来更新所述校验节点包括:
在生成所述校验节点消息之后,设置提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息的变量节点符号作为先前变量节点符号,并且通过将位于第一最小值向量、第二最小值向量和变量节点LLR向量的相同行中的分量的大小进行彼此比较,来更新所述第一最小值向量和所述第二最小值向量。
25.根据权利要求24所述的方法,其中基于所述变量节点消息、所述第一最小值向量和所述第二最小值向量来生成包括所述校验节点符号和所述校验节点LLR向量的所述校验节点消息包括:
通过对XOR符号执行XOR运算来生成校验节点符号,所述XOR符号是通过对所述先前变量节点符号和从联接到所述校验节点的所有变量节点提供的变量节点符号执行XOR运算而获得的,所述检验节点与所选择的变量节点联接;并且
基于所述第一最小值向量和所述第二最小值向量之间的一个来生成所述校验节点LLR向量。
26.一种解码装置,包括:
变量节点选择装置,顺序地选择分别对应于形成子矩阵的列的变量节点,所述子矩阵共享包括多个子矩阵的奇偶校验矩阵的相同层;
变量节点更新装置,基于提供到所选择的变量节点的信道消息和校验节点消息来更新所选择的变量节点;以及
校验节点更新装置,基于提供到与所选择的变量节点联接的所述校验节点的变量节点消息来更新所述校验节点,
其中将顺序地选择所述变量节点、更新所选择的变量节点以及更新所述校验节点作为迭代单位来执行,直到码字被成功解码达到最大次数。
27.根据权利要求26所述的解码装置,其中所述解码装置进一步包括:
信道消息生成装置,基于从所述信道提供的所述码字生成包括信道符号和信道LLR向量的所述信道消息;
校正子校验装置,通过将与形成所述奇偶校验矩阵的所有列相对应的变量节点的符号乘以所述奇偶校验矩阵获得零向量来终止所述解码并输出经解码数据;以及
变量节点消息生成装置,生成包括边沿符号和边沿LLR向量的变量节点消息。
28.根据权利要求26所述的解码装置,其中所述变量节点更新装置将所选择的变量节点中的每一个的符号初始化为信道符号。
29.根据权利要求26所述的解码装置,其中当所述变量节点消息最初从所选择的变量节点提供到分别联接到所选择的变量节点的所述校验节点时,所述校验节点更新装置分别将所述校验节点的先前变量节点符号初始化为所述变量节点消息的变量节点符号并且将所述校验节点的第一最小值向量初始化为所述变量节点消息的变量节点LLR向量。
30.根据权利要求26所述的解码装置,其中所述变量节点更新装置计算提供到所选择的变量节点的所述校验节点消息的校验节点LLR向量中包括的对数似然比LLR和每个非二进制元素的所述信道消息的信道LLR向量中包括的LLR的总和,并且利用所选择的变量节点中的每一个的符号更新与最小值相对应的非二进制元素。
31.根据权利要求27所述的解码装置,其中所述变量节点消息生成装置包括:
外部信息生成装置,基于所述信道消息和所述校验节点消息来生成外部信息;
变量节点符号检测装置,基于所述外部信息来检测变量节点符号;
变量节点对数似然比LLR生成装置,基于所检测到的变量节点符号和所生成的外部信息来生成变量节点LLR向量;以及
边沿增益装置,通过将所检测到的变量节点符号和所生成的变量节点LLR向量乘以边沿增益来生成所述边沿符号和所述边沿LLR向量。
32.根据权利要求26所述的解码装置,其中所述校验节点更新装置包括:
校验节点消息生成装置,基于变量节点消息、第一最小值向量和第二最小值向量来生成包括校验节点符号和校验节点对数似然比LLR向量的校验节点消息;以及
边沿增益补偿装置,通过将所生成的校验节点消息乘以边沿增益的倒数来生成补偿边沿增益符号和补偿边沿增益LLR向量,
其中所述校验节点更新装置在生成所述校验节点消息之后,设置提供到与所选择的变量节点联接的所述校验节点的所述变量节点消息的变量节点符号作为先前变量节点符号,并且通过将位于第一最小值向量、第二最小值向量和变量节点LLR向量的相同行中的分量的大小进行彼此比较,来更新所述第一最小值向量和所述第二最小值向量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180127721A KR102631407B1 (ko) | 2018-10-24 | 2018-10-24 | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR10-2018-0127721 | 2018-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111092619A true CN111092619A (zh) | 2020-05-01 |
CN111092619B CN111092619B (zh) | 2023-08-08 |
Family
ID=70328069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910647598.6A Active CN111092619B (zh) | 2018-10-24 | 2019-07-17 | Ldpc解码器、半导体存储器系统及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10879935B2 (zh) |
KR (1) | KR102631407B1 (zh) |
CN (1) | CN111092619B (zh) |
DE (1) | DE102019127089A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268337A (zh) * | 2017-01-03 | 2018-07-10 | 慧荣科技股份有限公司 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
CN111464191A (zh) * | 2020-05-25 | 2020-07-28 | 重庆邮电大学 | 一种基于矩阵扩展和斐波那契数列的rc-ldpc码构造方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11231993B2 (en) * | 2018-11-29 | 2022-01-25 | Western Digital Technologies, Inc. | Symbol-based variable node updates for binary LDPC codes |
US11309915B1 (en) * | 2019-07-11 | 2022-04-19 | Arrowhead Center, Inc. | Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders |
CN112583420B (zh) * | 2019-09-30 | 2024-01-09 | 上海华为技术有限公司 | 一种数据处理方法和译码器 |
US11880588B2 (en) * | 2022-05-13 | 2024-01-23 | Gylicon LTD. | SSD device featuring improved decoding |
US20230409201A1 (en) * | 2022-06-17 | 2023-12-21 | Anchronix Semiconductor Corporation | Conflict-free parallel radix sorting device, system and method |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262231A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种块状低密度校验码的译码方法及可重构多模式译码器 |
US20080294960A1 (en) * | 2007-05-21 | 2008-11-27 | Ramot At Tel Aviv University Ltd. | Memory-efficient ldpc decoding |
US20090158121A1 (en) * | 2007-12-14 | 2009-06-18 | Electronics And Telecommunications Research Institute | Apparatus and method for decoding ldpc code based on prototype parity check matrixes |
US20110029756A1 (en) * | 2009-07-28 | 2011-02-03 | Eric Biscondi | Method and System for Decoding Low Density Parity Check Codes |
CN103220002A (zh) * | 2012-01-18 | 2013-07-24 | 北京大学 | 一种消除译码器访问冲突的准循环ldpc码构造方法 |
US20140229792A1 (en) * | 2013-02-14 | 2014-08-14 | Marvell World Trade Ltd. | Systems and methods for bit flipping decoding with reliability inputs |
US20150082126A1 (en) * | 2013-09-19 | 2015-03-19 | Fusion-Io, Inc. | Scoring variable nodes for low density parity check code decoding |
CN105515588A (zh) * | 2015-07-15 | 2016-04-20 | 北京理工大学 | 一种ldpc-cc高速译码器 |
US20160274971A1 (en) * | 2015-03-20 | 2016-09-22 | SK Hynix Inc. | Ldpc decoder, semiconductor memory system and operating method thereof |
CN106953646A (zh) * | 2017-04-12 | 2017-07-14 | 荣成市鼎通电子信息科技有限公司 | 基于共享机制的准循环ldpc编码器 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594818B1 (ko) * | 2004-04-13 | 2006-07-03 | 한국전자통신연구원 | 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법 |
ITMI20060423A1 (it) | 2006-03-09 | 2007-09-10 | Lumson Spa | Pompa per permettere la erogazione manuale di una sostanza fluida racchiusa a tenuta in un contenitore |
KR101276845B1 (ko) * | 2007-03-15 | 2013-06-18 | 엘지전자 주식회사 | 복수의 레이어들을 이용하여 ldpc 복호화를 수행하는방법 |
KR101405962B1 (ko) * | 2008-02-28 | 2014-06-12 | 엘지전자 주식회사 | Ldpc 코드를 이용한 복호화 방법 |
US8694868B1 (en) * | 2010-10-21 | 2014-04-08 | Marvell International Ltd. | Systems and methods for performing multi-state bit flipping in an LDPC decoder |
US9250994B1 (en) | 2014-02-05 | 2016-02-02 | Western Digital Technologies, Inc. | Non-binary low-density parity check (LDPC) decoding using trellis maximization |
US9503125B2 (en) | 2014-05-08 | 2016-11-22 | Sandisk Technologies Llc | Modified trellis-based min-max decoder for non-binary low-density parity-check error-correcting codes |
KR102486134B1 (ko) | 2017-05-22 | 2023-01-10 | 주식회사 엘지에너지솔루션 | 고효율성 밀봉을 위한 개스킷 와셔를 포함하는 원통형 전지 |
-
2018
- 2018-10-24 KR KR1020180127721A patent/KR102631407B1/ko active IP Right Grant
-
2019
- 2019-05-29 US US16/424,954 patent/US10879935B2/en active Active
- 2019-07-17 CN CN201910647598.6A patent/CN111092619B/zh active Active
- 2019-10-09 DE DE102019127089.8A patent/DE102019127089A1/de active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080294960A1 (en) * | 2007-05-21 | 2008-11-27 | Ramot At Tel Aviv University Ltd. | Memory-efficient ldpc decoding |
US20090158121A1 (en) * | 2007-12-14 | 2009-06-18 | Electronics And Telecommunications Research Institute | Apparatus and method for decoding ldpc code based on prototype parity check matrixes |
CN101262231A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种块状低密度校验码的译码方法及可重构多模式译码器 |
US20110029756A1 (en) * | 2009-07-28 | 2011-02-03 | Eric Biscondi | Method and System for Decoding Low Density Parity Check Codes |
CN103220002A (zh) * | 2012-01-18 | 2013-07-24 | 北京大学 | 一种消除译码器访问冲突的准循环ldpc码构造方法 |
US20140229792A1 (en) * | 2013-02-14 | 2014-08-14 | Marvell World Trade Ltd. | Systems and methods for bit flipping decoding with reliability inputs |
US20150082126A1 (en) * | 2013-09-19 | 2015-03-19 | Fusion-Io, Inc. | Scoring variable nodes for low density parity check code decoding |
US20160274971A1 (en) * | 2015-03-20 | 2016-09-22 | SK Hynix Inc. | Ldpc decoder, semiconductor memory system and operating method thereof |
CN105515588A (zh) * | 2015-07-15 | 2016-04-20 | 北京理工大学 | 一种ldpc-cc高速译码器 |
CN106953646A (zh) * | 2017-04-12 | 2017-07-14 | 荣成市鼎通电子信息科技有限公司 | 基于共享机制的准循环ldpc编码器 |
Non-Patent Citations (2)
Title |
---|
KANG, SOONYOUNG等: "Breaking the Trapping Sets in LDPC Codes: Check Node Removal and Collaborative Decoding", 《IEEE TRANSACTIONS ON COMMUNICATIONS》 * |
张博等: "突发错误信道下的多元LDPC码设计与性能分析", 《通信学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268337A (zh) * | 2017-01-03 | 2018-07-10 | 慧荣科技股份有限公司 | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 |
CN111464191A (zh) * | 2020-05-25 | 2020-07-28 | 重庆邮电大学 | 一种基于矩阵扩展和斐波那契数列的rc-ldpc码构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111092619B (zh) | 2023-08-08 |
KR20200046496A (ko) | 2020-05-07 |
DE102019127089A1 (de) | 2020-04-30 |
US10879935B2 (en) | 2020-12-29 |
KR102631407B1 (ko) | 2024-01-31 |
US20200136653A1 (en) | 2020-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111200440B (zh) | Ldpc解码器、半导体存储器系统及其操作方法 | |
CN111092619B (zh) | Ldpc解码器、半导体存储器系统及其操作方法 | |
US9977713B2 (en) | LDPC decoder, semiconductor memory system and operating method thereof | |
US10103749B2 (en) | LDPC decoder, semiconductor memory system and operating method thereof | |
US10445175B2 (en) | Controller and operating method thereof | |
KR102556479B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US10200063B2 (en) | Memory controller, semiconductor memory system and operating method thereof | |
US10997021B2 (en) | LDPC decoder, semiconductor memory system and operating method thereof | |
CN110853690B (zh) | 解码器、解码器的操作方法和包括该解码器的存储器系统 | |
US11139832B1 (en) | LDPC decoder and operating method thereof | |
US11387845B2 (en) | LDPC decoder, operating method of LDPC decoder, and semiconductor memory system | |
CN110277999B (zh) | Ldpc解码装置、包括其的存储器系统及其方法 | |
CN115701588A (zh) | 控制器及其操作方法 | |
US10528496B2 (en) | Controller and operating method thereof | |
KR102530269B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US12132498B2 (en) | Min-sum decoder for row-irregular low density parity check codes | |
US20240313803A1 (en) | Min-sum decoder for row-irregular low density parity check codes |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240613 Address after: American Texas Patentee after: Mimi IP Co.,Ltd. Country or region after: U.S.A. Address before: Gyeonggi Do, South Korea Patentee before: Sk Hynix Inc. Country or region before: Republic of Korea |
|
TR01 | Transfer of patent right |