KR101775969B1 - Method and circuit for qc-ldpc codes in nand flash memory - Google Patents
Method and circuit for qc-ldpc codes in nand flash memory Download PDFInfo
- Publication number
- KR101775969B1 KR101775969B1 KR1020150034564A KR20150034564A KR101775969B1 KR 101775969 B1 KR101775969 B1 KR 101775969B1 KR 1020150034564 A KR1020150034564 A KR 1020150034564A KR 20150034564 A KR20150034564 A KR 20150034564A KR 101775969 B1 KR101775969 B1 KR 101775969B1
- Authority
- KR
- South Korea
- Prior art keywords
- redundancy
- parity
- flash memory
- nand flash
- check
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/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/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/24—Accessing extra cells, e.g. dummy cells or redundant cells
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/72—Masking faults in memories by using spares or by reconfiguring with optimized replacement 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/16—Flash programming of all the cells in an array, sector or block simultaneously
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
The present invention relates to a method and a circuit for generating a QC-LDPC code of a NAND flash memory, the method comprising: initializing internal information and external information corresponding to a range of a parity-check matrix according to a redundancy expansion step; Determining each bit of the code word, and determining whether to extend the decoding step according to the parity-check result of the code word. According to the present invention, the error correction rate can be increased by extending the redundancy size, and the life of the NAND flash memory can be extended by increasing the error correction rate.
Description
The present invention relates to a QC-LDPC (Quasi-Cyclic-Low Density Parity Check) code generation method, and more particularly, to a QC-LDPC code generation method and circuit for a NAND flash memory that increases a redundancy size and increases an error correction rate .
Various digital devices are equipped with a storage device for storing data. The storage device is based on a NAND flash memory.
However, NAND flash memory has a limited number of write / erase operations. According to a method of storing data in a cell, a cell is classified into a single level cell (SLC), a multi level cell (MLC), and a triple level cell (TLC) . Due to the technique of storing a plurality of bit information in one cell, the number of write / erase operations is gradually decreasing.
However, as the number of write / erase operations increases, the bit error rate that can occur in the NAND flash memory gradually increases. In particular, when a plurality of bit information (2 bits, 3 bits) is stored in one cell, . An error correction code (ECC) is applied to a storage device based on a NAND flash memory. It is necessary to increase the error correction rate of the error correction code in order to cope with an increasing error rate depending on the use period.
SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a redundancy extended QC-LDPC code decoder for a NAND flash memory that expands the size of redundancy used for decoding in decoding failure, And to provide a QC-LDPC code generation method and circuit of a NAND flash memory capable of increasing a correction rate.
According to another aspect of the present invention, there is provided a QC-LDPC code generation method for a NAND flash memory, the method comprising: (a) initializing internal information and external information corresponding to a range of a parity- (b) updating the external information; (c) determining each bit of the codeword; And (d) determining whether to extend the decoding step according to a parity-check result of the codeword.
The step (b) performs a check node update and a compliant node update corresponding to the parity-check matrix. At this time, the check node update is updated through a min-sum algorithm.
Wherein if the decoding fails in the step (d) and the number of decoding iterations has not reached the maximum, the process proceeds to the step (b), the decoding is failed in the step (d) If the maximum expansion step has not been reached, the redundancy used for the decoding is extended, and then the process proceeds to step (a).
Therefore, the parity check matrix can be configured to have a portion corresponding to the redundancy in a diagonal form, thereby maintaining the existing parity-check row when redundancy is expanded.
Meanwhile, in the QC-LDPC code generation circuit of the NAND flash memory of the present invention, XOR is successively connected so that the corresponding output becomes the XOR input of the next stage, and m 1 , m 2 , m 3 ,. , M i - and (message bits or the parity is code for generating a respective redundancy bit decoded code word bits for checking), and a bit corresponding to the redundancy is respectively input, the XOR that the m 1 inputs m 0 The output of the XOR to which the bit corresponding to the redundancy is input is input to the multiplexer and the output of the XOR to which the m i is input is input to the multiplexer.
A method of generating a QC-LDPC code by extending the redundancy of an AND flash memory,
Meanwhile, in the QC-LDPC code generation method by extending the redundancy of the NAND flash memory of the present invention,
In order to prevent the configuration pattern of the parity-check matrix and the dependent code matrix from being changed together when each parity check of the parity-check matrix is changed, the parity-check matrix is subjected to redundancy by gauss- The QCD-LDPC code generation method of the NAND flash memory configured to prevent the change of the existing redundancy pattern by preventing the change of the existing parity-check row upon redundancy extension.
As described above, according to the QC-LDPC code generation method and circuit of the NAND flash memory according to the present invention, the error correction rate can be increased by extending the redundancy, and the error correction rate can be increased, Lt; / RTI >
1 is a diagram illustrating a configuration of a redundancy extended QC-LDPC code parity-check matrix according to an embodiment of the present invention.
2 is a conceptual diagram illustrating a process of obtaining a code matrix from a parity-check matrix according to an embodiment of the present invention.
3 is a flowchart illustrating a redundancy extended QC-LDPC code decoding algorithm according to an embodiment of the present invention.
4 is a QC-LDPC code generation circuit shared by an encoder and a decoder according to an embodiment of the present invention.
Hereinafter, a QC-LDPC code generation method and a circuit of a NAND flash memory according to the present invention will be described in detail with reference to the accompanying drawings.
FIG. 1 is a diagram illustrating a configuration of a redundancy extended QC-LDPC code parity-check matrix according to an embodiment of the present invention. FIG. 2 illustrates a process of obtaining a code matrix from a parity-check matrix according to an embodiment of the present invention. Fig.
Referring to FIGS. 1 and 2, the present invention provides a QC-LDPC code generation method and circuit that can be expanded step by step according to an increase in errors of a NAND flash memory. of NAND Flash Memory and Circuit). Redundancy Enhancement In QC-LDPC code, the size of the message indicating the actual data is fixed, and the error correction rate is increased by increasing the redundancy used for decoding in the case of decoding failure due to an increase in error rate. With the expansion of redundancy, the memory and data computation used for decoding increases by an increased extent of the parity-check matrix applied to decoding. Since the error rate is not high at the beginning of the life time of the NAND flash memory, the error is corrected by maintaining the maximum performance through the short redundancy, and the redundancy length is gradually increased as the error rate increases. The size of the parity-check matrix applied to the decoding by the extended redundancy size is as follows.
expansion
Number of rows in step = ---expansion
Number of columns in step = ---(
The length of the message, : Length of the redundancy of the first step, : The size of one block)The part corresponding to the redundancy in the parity-check matrix of FIG. 1 is configured as a diagonal type. In this form, in the process of obtaining the code matrix from the parity-check matrix (decoding matrix) of FIG. 2
. The code matrix can be obtained by making the portion corresponding to the redundancy to be a unit matrix form by gauss-elimination of the parity-check matrix, and by inverting the rest of the unit except for the unit matrix portion. This means that the configuration of the entire code matrix can be changed when each parity check of the parity-check matrix is changed. That is, the sign matrix is dependent on the parity-check matrix.Therefore, when the existing parity-check row changes in the redundancy extension, the existing redundancy pattern is also changed. Therefore, a code circuit for generating redundancy of different patterns as many as the number of decoding steps is required. (Codeword) must be stored in memory. In order to solve this problem, in the QC-LDPC code structure of the present invention, by configuring a portion corresponding to redundancy in the parity-check matrix as a diagonal type, it is possible to prevent a change in the existing parity- Prevent change.
3 is a flowchart illustrating a redundancy extended QC-LDPC code decoding algorithm according to an embodiment of the present invention.
The decoding order of the redundancy extended QC-LDPC code decoder is as follows.
First, the terms used in FIG. 3 are summarized as follows.
S1: Initialization
- initialize internal information and external information for decoding by the extent of the parity-check matrix according to the redundancy extension step.
The internal information and the external information in the decoding process of the general LDPC code will be described as follows. In the case of the present invention as well, it is only known technology information, which is required in the decoding process of a general LDPC code, as it is, and the definition of the internal information and the external information is as much as It is only a known searchable term, and a brief description thereof will be given below.
In the LDPC code decoding process, the error is recovered with two types of information: internal information and external information. The internal information is data that changes the binary codeword data received from the sender into a random number, which is not changed during the decoding process.
In the case of external information, after initialization with data such as internal information before the start of decoding, thereafter, information that is continuously updated according to the configuration of the parity-check matrix of the LDPC code until a valid codeword is generated it means.
S2: Check-Node Updating (CN Updating)
- update the external information through the min-sum algorithm by the extent of the parity-check matrix according to the redundancy extension step.
S3: Variable-Node Updaing (VN Updating)
- Updating the extrinsic information for next decoding by the extent of the parity-check matrix according to the redundancy extension step and determining each bit of the code word.
S4: Parity Check
- Parity of the decoded codeword - It is divided into the following four cases according to the check result.
a. If decryption is successful: Decode completion after declaring read success
b. If decoding fails and the number of decoding iterations has not reached the maximum: Repeat from 2
c. If the decoding fails and the number of decoding iterations reaches the maximum but the expansion step does not reach the maximum:
d. If the decoding fails and the number of decoding iterations and the expansion step reaches the maximum:
4 is a QC-LDPC code generation circuit shared by an encoder and a decoder according to an embodiment of the present invention.
Referring to FIG. 4, a parity-check matrix may be constructed as shown in FIG. 1 to share a circuit for generating redundancy bits in an encoder and a circuit for performing an overall parity-check (syndrome calculation) in a decoder . As shown in FIG. 4, the hardware configuration is such that the output is connected to an XOR input so as to be the next stage XOR input, and each XOR has m 1 , m 2 , m 3 , ... , m i and redundancy are input, m 0 is inputted to XOR where m 1 is input, the output of XOR where redundancy corresponding bits are input is input to the multiplexer, and X i Is input to the multiplexer.
In Fig. 4, m 0 , m 1 , m 2 , m 3 , ... , the input corresponding to m i will be the message bits to be coded to produce each redundancy bit or the decoded codeword bits for parity-check. The input corresponding to r becomes the bit corresponding to redundancy in the decoded codeword. When the s signal is '1', the parity check result is output including the r signal. When the signal is '0', the redundancy bits generated in the coding process are not output because the r signal is not included.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the invention.
Claims (7)
In order to prevent the configuration pattern of the parity-check matrix and the dependent code matrix from being changed when the parity-check of the parity-check matrix is changed,
Since the portion corresponding to the redundancy is constituted by the unit matrix by gauss-eliminating the parity-check matrix, and the portion corresponding to the redundancy in the redundancy expansion used for decoding is constituted by the unit matrix, Wherein the redundancy pattern is maintained while the redundancy pattern is retained in the NAND flash memory.
The corresponding output is connected to XOR so as to be the XOR input of the next stage,
Each XOR has m 1 , m 2 , m 3 , ... , m i and redundancy bits, respectively,
M 0 is input to the XOR where m 1 is input,
Wherein a hardware structure of a NAND flash memory is shared by an output of an XOR to which a bit corresponding to the redundancy is input and an output of an XOR to which the m i is input to a multiplexer. LDPC code generation circuit.
(Where m is the message bits to be coded to generate each redundancy bit or the decoded codeword bits for parity-check).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150034564A KR101775969B1 (en) | 2015-03-12 | 2015-03-12 | Method and circuit for qc-ldpc codes in nand flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150034564A KR101775969B1 (en) | 2015-03-12 | 2015-03-12 | Method and circuit for qc-ldpc codes in nand flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160110788A KR20160110788A (en) | 2016-09-22 |
KR101775969B1 true KR101775969B1 (en) | 2017-09-08 |
Family
ID=57102496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150034564A KR101775969B1 (en) | 2015-03-12 | 2015-03-12 | Method and circuit for qc-ldpc codes in nand flash memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101775969B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11777531B2 (en) | 2019-05-10 | 2023-10-03 | Industry-University Cooperation Foundation Hanyang University | Method and apparatus for high-speed decoding of linear code on basis of soft decision |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809330B (en) * | 2018-05-07 | 2020-09-22 | 中山大学 | LDPC code decoding method for NAND-Flash storage medium |
US10979072B2 (en) * | 2019-03-19 | 2021-04-13 | Western Digital Technologies, Inc. | Punctured bit estimation and bit error rate estimation |
KR102269322B1 (en) * | 2019-07-05 | 2021-06-24 | 한양대학교 산학협력단 | A method and apparatus for fast decoding a linear code based on bit matching |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089642A1 (en) | 2004-09-13 | 2009-04-02 | Idaho Research Foundation, Inc. | Low-density parity-check (ldpc) encoder |
US20100192044A1 (en) | 2007-07-18 | 2010-07-29 | Dong Bai | Qc-ldpc code decoder and corresponding decoding method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101307733B1 (en) | 2012-03-02 | 2013-09-11 | 인하대학교 산학협력단 | Apparatus and method for decoding block layered based non-binary qc-ldpc |
KR101685010B1 (en) | 2012-06-01 | 2016-12-13 | 한국전자통신연구원 | Low density parity check code for terrestrial cloud trasmission |
-
2015
- 2015-03-12 KR KR1020150034564A patent/KR101775969B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089642A1 (en) | 2004-09-13 | 2009-04-02 | Idaho Research Foundation, Inc. | Low-density parity-check (ldpc) encoder |
US20100192044A1 (en) | 2007-07-18 | 2010-07-29 | Dong Bai | Qc-ldpc code decoder and corresponding decoding method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11777531B2 (en) | 2019-05-10 | 2023-10-03 | Industry-University Cooperation Foundation Hanyang University | Method and apparatus for high-speed decoding of linear code on basis of soft decision |
Also Published As
Publication number | Publication date |
---|---|
KR20160110788A (en) | 2016-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8448050B2 (en) | Memory system and control method for the same | |
US11740960B2 (en) | Detection and correction of data bit errors using error correction codes | |
KR101535225B1 (en) | Decoding method and memory system device for using the method | |
US9294132B1 (en) | Dual-stage data decoding for non-volatile memories | |
US8645810B2 (en) | Fast detection of convergence or divergence in iterative decoding | |
US8560930B2 (en) | Systems and methods for multi-level quasi-cyclic low density parity check codes | |
US10707902B2 (en) | Permutation network designing method, and permutation circuit of QC-LDPC decoder | |
US9391641B2 (en) | Syndrome tables for decoding turbo-product codes | |
US9654147B2 (en) | Concatenated error correction device | |
KR101775969B1 (en) | Method and circuit for qc-ldpc codes in nand flash memory | |
US9853661B2 (en) | On-the-fly evaluation of the number of errors corrected in iterative ECC decoding | |
US10090860B2 (en) | Memory system using integrated parallel interleaved concatenation | |
US10848182B2 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
CN111833956A (en) | Error correction circuit and memory controller having the same | |
US10128869B2 (en) | Efficient convergence in iterative decoding | |
US10700708B2 (en) | Permutation network designing method, and permutation circuit of QC-LDPC decoder | |
US20180122494A1 (en) | Raid decoding architecture with reduced bandwidth | |
CN110113058B (en) | Coding and decoding method, device, equipment and computer readable storage medium | |
KR20160002946A (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
US9350388B2 (en) | Data format with ECC information for on-the-fly decoding during data transfer and method for forming the data format | |
CN111782438B (en) | Improved anti-radiation reinforced matrix code decoding circuit | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
TWI706416B (en) | Error correcting system shared by multiple memory devices | |
JP2021048525A (en) | Memory system | |
TW201543824A (en) | Low density parity-check code decoder and decoding method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |