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 PDF

Info

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
Application number
KR1020150034564A
Other languages
Korean (ko)
Other versions
KR20160110788A (en
Inventor
이현빈
강태근
Original Assignee
한밭대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한밭대학교 산학협력단 filed Critical 한밭대학교 산학협력단
Priority to KR1020150034564A priority Critical patent/KR101775969B1/en
Publication of KR20160110788A publication Critical patent/KR20160110788A/en
Application granted granted Critical
Publication of KR101775969B1 publication Critical patent/KR101775969B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/72Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/16Flash 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

METHOD AND CIRCUIT FOR QC-LDPC CODES IN NAND FLASH MEMORY FIELD OF THE INVENTION [0001]

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.

Korean Registered Patent No. 10-1307733 (Notification date 2013.09.11.) Korean Patent Publication No. 10-2013-0135746 (published on December 11, 2013).

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

Figure 112015024383459-pat00001
Number of rows in step =
Figure 112015024383459-pat00002
--- Equation 1

expansion

Figure 112015024383459-pat00003
Number of columns in step =
Figure 112015024383459-pat00004
--- Equation 2

(

Figure 112015024383459-pat00005
The length of the message,
Figure 112015024383459-pat00006
: Length of the redundancy of the first step,
Figure 112015024383459-pat00007
: 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

Figure 112015024383459-pat00008
. 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.

CHK Parity-check result (1: failure, 0: success) ITR Current iteration count ITR_MAX Maximum number of iterations LEV Current number of decodes LEV_MAX Maximum number of decodes

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)

A method for generating a QC-LDPC code by extending the redundancy of a NAND flash memory,
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.
In the QC-LDPC code generation circuit of 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).
delete delete delete delete delete
KR1020150034564A 2015-03-12 2015-03-12 Method and circuit for qc-ldpc codes in nand flash memory KR101775969B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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