A Fast Iterative Decoding Method of LDPC Codes Based on the Statistical Characteristics of 3D Flash Memory Channels

By adopting the LDPC code fast iterative decoding method based on channel statistical characteristics in the 3D flash memory system, using step size optimization of auxiliary and adaptive decoding frames, the problems of low noise fault tolerance and high decoding delay in 3D flash memory are solved, and faster iterative convergence and higher decoding performance are achieved.

CN114710168BActive Publication Date: 2025-05-30GUANGDONG UNIV OF TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210319564.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-29
Publication Date
2025-05-30
Estimated Expiration
2042-03-29

AI Technical Summary

Technical Problem

In 3D flash memory systems, due to complex structures and high-density storage, the noise fault tolerance ability is reduced, resulting in reduced reliability. The error correction ability of traditional BCH codes is limited, and the iterative process of LDPC codes takes a long time, resulting in high decoding delay and poor performance.

Method used

The LDPC code fast iterative decoding method based on the statistical characteristics of 3D flash memory channel is adopted. The first frame in the logical page is used for auxiliary decoding, and the subsequent frame is an adaptive decoding frame. The LLR information transmitted by the channel is used for iterative update, the message processing of the verification node and variable node is optimized, and the step size λ is calculated to improve the iterative convergence speed.

Benefits of technology

It significantly improves the iteration convergence speed of page decoding under flash channels, reduces the number of iterations, reduces the decoding delay, and improves the decoding performance, especially in high-noise environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114710168B_ABST
    Figure CN114710168B_ABST
Patent Text Reader

Abstract

The present invention discloses a fast iterative decoding method for LDPC codes based on the statistical characteristics of 3D flash memory channels, including: initializing the initial messages of variable nodes, and for the auxiliary decoding frame and the adaptive decoding frame, calculating the mean value of all positive values in the initial messages; decoding the auxiliary decoding frame and the adaptive decoding frame, wherein the adaptive decoding frame uses step assistance for parity-check node message processing; performing message processing on the variable nodes, and then performing decoding decision to obtain the error-corrected codeword; and calculating the step size after the iteration ends, which is used for the message processing process of the parity-check nodes in the subsequent decoding process of the adaptive decoding frame. Compared with the existing LDPC BP decoding algorithm, the present invention can perform decoding operations on different pages while improving the decoding convergence speed, and only needs to store the step size obtained from the frame used for auxiliary decoding, without the need to additionally store the initial LLR information and decoding results corresponding to the two page data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of 3D flash memory systems, and particularly to a fast iterative decoding method for LDPC codes based on the statistical characteristics of 3D flash memory channels. Background Art

[0002] With the rapid development of information technology, a vast amount of data has been generated. According to the latest white paper "DataAge 2025" released by IDC, the total global data volume in 2025 is predicted to increase from 163 ZB to 175 ZB, which poses a severe challenge to storage devices. Flash memory media are widely used in smartphones, computer storage systems, etc. due to their advantages such as large capacity, high density, low power consumption, and non-volatility. In particular, 3D flash memory has replaced 2D flash memory chips as the mainstream storage medium in storage systems.

[0003] 3D NAND flash memory introduces 3D stacking technology and consists of many layers vertically. As Figure 1 shown, the part marked by the red box is a layer. A layer contains many wordlines (such as WL0 - WL11), and a wordline is composed of many cells. For TLC (Triple-Level Cell) type NAND flash memory, each cell can write 3 bits, which are respectively defined as the least significant bit (LSB), the central significant bit (CSB), and the most significant bit (MSB).

[0004] Due to the complex structure and high-density storage of 3D flash memory, the noise tolerance ability is reduced, and the reliability also decreases accordingly. The error correction ability of traditional BCH codes is limited, and currently, LDPC (Low Density Parity Check Code) codes have been widely used to improve the reliability of flash memory systems.

[0005] During the LDPC decoding process, first, the Log Likelihood Ratios (LLRs) information of each bit is obtained (G. Dong, N. Xie, and T. Zhang. On the use of soft-decision error correction codes in NAND flash memory[J]. IEEE Transactions on Circuits & Systems I Regular Papers, 2011, 58(2): 429 - 439.), and then it is iteratively updated to correct bit errors. The larger the absolute value of the hard decision information of the variable node during the iterative process, the higher the reliability. The decoding iteration process of LDPC codes consumes a large amount of time. If LDPC codes are directly used, it will lead to high decoding delay and poor decoding performance. Summary of the Invention

[0006] The object of the present invention is to provide a fast iterative decoding method for LDPC codes based on the statistical characteristics of the 3D flash memory channel, so as to improve the iterative convergence speed of page decoding under the flash memory channel.

[0007] To achieve the above task, the present invention adopts the following technical solutions:

[0008] A fast iterative decoding method for LDPC codes based on the statistical characteristics of the 3D flash memory channel. The first frame written in the logical page is used to calculate the parameters required for auxiliary decoding, then the first frame is denoted as the frame for auxiliary decoding, and the subsequent frames are called adaptive decoding frames; the method includes the following steps:

[0009] Step 1, initialize the initial message of the variable node

[0010] 1.1 Assign the message passed by the channel to the variable node to VI (0) ij , as the initial message passed by variable node i to adjacent check node j:

[0011] VI (0) ij = L i (1.1)

[0012] where L i represents the initial probability likelihood ratio message passed by the channel to variable node i;

[0013] 1.2 For the auxiliary decoding frame and the adaptive decoding frame, calculate the mean value of all positive values in L i :

[0014] meanLLRInit = E{L i |Li > 0} (1.2)

[0015] In the above formula, meanLLRInit represents the mean of all positive values in L i , and E{·} represents the expectation function;

[0016] Step 2, iterative processing, update the likelihood information of variable nodes

[0017] 2.1 Check node message processing

[0018] (1) Decoding of the auxiliary decoding frame

[0019] For all check nodes j and the variable nodes i ∈ R adjacent to them j , at the l-th iteration, calculate the message CI passed from the variable node to the check node j (l) ji :

[0020]

[0021] where R j represents the set of all variable nodes adjacent to the check node j, and i′ ∈ R j \i represents the set of other variable nodes adjacent to the check node j excluding the variable node i; VI (l-1) i'j represents the message passed from the adjacent check node j received by the variable node i′ at the (l - 1)-th iteration;

[0022] (2) Decoding of the adaptive decoding frame

[0023] The adaptive decoding frame uses the step size λ to assist in the check node message processing:

[0024] When the iteration number l = 1, the message CI passed from the variable node to the check node j (l) ji :

[0025]

[0026] When l > 1, the message CI passed from the variable node to the check node j (l) ji :

[0027]

[0028] where meanLLR is the mean of all positive values in LLR;

[0029] 2.2 Variable node message processing

[0030] For all node variables i and the check nodes j ∈ C adjacent to themi At the l-th iteration, calculate the message VI passed from the check node j received by the variable node i (l) ij :

[0031]

[0032] where: C i represents the set of all check nodes adjacent to the variable node i, and j′ ∈ C i \j represents the set of other check nodes adjacent to the variable node i excluding the check node j, and CI (l) j'i represents the information passed from the adjacent variable node i received by the check node j′ at the l-th iteration;

[0033] 2.3 Decoding decision

[0034] (1) Calculate the hard decision information for all variable nodes i:

[0035]

[0036] where, L (l) i represents all the likelihood information received by the variable node i at the l-th iteration; CI (l) ji represents the information passed from the adjacent variable node i received by the check node j at the l-th iteration;

[0037] (2) Calculate the mean meanLLR of all positive values in the LLR at the current iteration:

[0038] meanLLR = E{L (l) i |L (l) i > 0} (2.5)

[0039] where, E{·} represents the expectation function;

[0040] If L (l) i > 0, then let the i-th bit in the codeword obtained by decoding decision Otherwise Thus, the error-corrected codeword

[0041] Furthermore, the calculation process of L i is as follows:

[0042]

[0043] In the above formula, Pi (1) represents the initial probability that the channel transmits 1 to the i-th variable node; P i (0) represents the initial probability that the channel transmits 0 to the i-th variable node.

[0044] Furthermore, the method further includes:

[0045] Step 3, if or the maximum number of iterations is reached, then end the operation, otherwise continue the iteration from Step 1; where H represents the parity-check matrix, and the superscript T represents the transpose operation.

[0046] Furthermore, after the iteration ends:

[0047] For the auxiliary decoding frame, use formula (2.5) to obtain meanLLR and use formula (3.1) to calculate the step size λ, which is used for the message processing process of the check nodes in the decoding process of the first adaptive decoding frame after the auxiliary decoding frame within the logical page:

[0048]

[0049] Furthermore, for each adaptive decoding frame, calculate meanLLR after the decoding ends through formula (2.5), and use formula (3.1) to calculate the step size λ, which is used for the message processing process of the check nodes in the decoding process of the next adaptive decoding frame.

[0050] Compared with the prior art, the present invention has the following technical features:

[0051] Compared with the existing LDPC BP decoding algorithm, the present invention can perform decoding operations on different pages while improving the decoding convergence speed, and only needs to store the step size obtained from the frames used for auxiliary decoding, without the need to additionally store the initial LLR information and decoding results corresponding to the two page data. Description of the Drawings

[0052] Figure 1 It is a structural distribution diagram of a 3D flash memory block;

[0053] Figures 2 to 4 It is a comparison graph of the performance curves of the fast iterative decoding method (FFIA) proposed by the present invention and the traditional LDPC BP decoding algorithm; where Figure 2 is the LDPC code for the frame error characteristics and LLR statistical characteristics of the low page based on the flash memory channel under different noises; Figure 3 is the LDPC code for the frame error characteristics and LLR statistical characteristics of the middle page based on the flash memory channel under different noises; Figure 4 is the LDPC code for the frame error characteristics and LLR statistical characteristics of the high page based on the flash memory channel under different noises. Detailed Embodiments

[0054] The data sequence is LDPC - encoded to generate a coded bit sequence, and the coded sequence is octally modulated and written into the logical page of the flash memory. Due to the interference of noise in the channel, the stored charge amount in the cell changes, resulting in errors in the read - out data. At this time, an error - correction algorithm is needed to correct the errors.

[0055] According to the length of the codeword, the number of frames that a logical page can store is different (as Figure 1 shown, encoding is performed using the (n - m, n) code type and divided into multiple frames stored in a logical page. Taking Block1 as an example, the first m bits are the data sequence, and the subsequent n - m bits are the redundant part). Due to the interference of noise in the channel, the stored charge amount in the cell changes, resulting in errors in the read - out data. If error - correction decoding is directly performed at this time, it will cause a high iterative delay. Through a large number of experimental analyses, the inventor found that although the inter - layer differences are obvious, the RBER of the frames within a logical page is similar, and the standard deviation of the RBER of the frames within the same page is about 0.003. Because the capacities of the flash memory block and page are limited, in order to minimize the additional space load and improve the iterative convergence speed, the present invention proposes an LDPC decoding method based on the frame error characteristics and LLR statistical characteristics of the flash memory channel.

[0056] The decoding of LDPC codes is an iterative probabilistic decoding algorithm. LDPC codes are represented by a parity - check matrix H. Each column can be regarded as a variable node, and each row can be regarded as a parity - check node. The matrix represents the connection relationship between the parity - check nodes and the variable nodes. When H ij = 1, it means that the i - th variable node is connected to the j - th parity - check node, otherwise it is not connected. The LDPC BP algorithm is an iterative decoding algorithm. The variable node passes its likelihood information to the connected parity - check node through an edge, and the parity - check node then passes the estimate of other variable nodes on the variable node under the satisfaction of the parity - check equation back to the variable node. Repeat the above steps to form an iteration and continuously update the likelihood information of the variable points. After each iteration, a decision is made on the variable node, and it is verified through the parity - check matrix whether it is a codeword. If so, the iteration ends; otherwise, continue the iteration until the maximum number of iterations is reached.

[0057] The codewords written in the flash memory are affected by channel noise and errors occur, so error - correction processing is required. The main optimization point of the present invention is to optimize the error - correction algorithm by combining the characteristic that the RBER of the frames within the logical page is similar.

[0058] A fast iterative decoding method for LDPC codes based on the statistical characteristics of 3D flash memory channels, comprising:

[0059] If the first frame written within the logical page is used to calculate the parameters required for assisted decoding, the first frame is called the frame for assisted decoding, and the subsequent frames are called adaptive decoding frames; during the entire iterative process;

[0060] For the assisted decoding frame and the adaptive decoding frame, in the initialization stage, an operation of calculating the mean of all positive initial values of the LLR is set (as shown in Equation 1.2). After the iteration stops, the mean meanLLR of all positive values of the LLR at this time is calculated using Equation (2.5), and the step size λ is calculated using Equation (3.1) for optimizing the check node information processing in the decoding process of subsequent adaptive decoding frames within the page.

[0061] The specific steps of the present invention are as follows:

[0062] Step 1, initialize the initial message of the variable node

[0063] 1.1 Assign the message passed by the channel to the variable node to VI (0) ij , as the initial message passed by variable node i to adjacent check node j (i.e., when the iteration number l is 0):

[0064] VI (0) ij = L i (1.1)

[0065] where L i represents the initial probability likelihood ratio message passed by the channel to variable node i, and assign it to VI (0) ij ; where:

[0066]

[0067] In the above formula, P i (1) represents the initial probability that the channel passes to the i-th variable node as 1; P i (0) represents the initial probability that the channel passes to the i-th variable node as 0.

[0068] 1.2 For the assisted decoding frame and the adaptive decoding frame, calculate the mean of all positive values in L i :

[0069] meanLLRInit = E{L i |L i > 0} (1.2)

[0070] In the above formula, meanLLRInit represents the mean of all positive values in L i , and E{·} represents the expectation function.

[0071] Step 2, iterative processing, update the likelihood information of variable nodes for the decision processing in Step 3.

[0072] 2.1 Check node message processing

[0073] (1) When assisting in decoding the decoding frame, formula (2.1) is used

[0074] For all check nodes j and the variable nodes i ∈ R adjacent to it j , in the l-th iteration, calculate the message CI from the variable node to the check node j (l) ji :

[0075]

[0076] where R j represents the set of all variable nodes adjacent to the check node j, and i′ ∈ R j \i represents the set of other variable nodes adjacent to the check node j excluding the variable node i; VI (l-1) i'j represents the message passed from the adjacent check node j received by the variable node i′ in the (l - 1)-th iteration.

[0077] (2) For the decoding of the adaptive decoding frame, formulas (2.2.1 and 2.2.2) are used

[0078] The adaptive decoding frame uses the step size λ to assist in the check node message processing:

[0079] When the iteration number l = 1, the message CI from the variable node to the check node j (l) ji :

[0080]

[0081] When l > 1, the message CI from the variable node to the check node j (l) ji :

[0082]

[0083] where meanLLR is the mean value of all positive values in LLR.

[0084] 2.2 Variable node message processing

[0085] For all node variables i and the check nodes j ∈ C adjacent to it i , in the l-th iteration, calculate the message VI received by the variable node i from the check node j passing by (l) ij :

[0086]

[0087] Where: C i represents the set of all check nodes adjacent to variable node i, and j′ ∈ C i \j represents the set of other check nodes adjacent to variable node i excluding check node j, CI (l) j'i represents the information received by check node j′ from adjacent variable node i at the l-th iteration.

[0088] 2.3 Decoding Decision

[0089] (1) Calculate the hard decision information for all variable nodes i:

[0090]

[0091] Where, L (l) i represents all the likelihood information received by variable node i at the l-th iteration; CI (l) ji represents the information received by check node j from adjacent variable node i at the l-th iteration.

[0092] (2) Calculate the mean meanLLR of all positive values in the LLR at the current iteration:

[0093] meanLLR = E{L (l) i |L (l) i > 0} (2.5)

[0094] Where, E{·} represents the expectation function;

[0095] If L (l) i > 0, then let the i-th bit in the codeword obtained by decoding decision Otherwise Thus, the corrected codeword

[0096] Step 3, Stop

[0097] If or the maximum number of iterations is reached, then end the operation, otherwise continue the iteration from Step 1; where, H represents the parity-check matrix, and the superscript T represents the transpose operation.

[0098] Step 4, After the iteration ends:

[0099] 4.1 For the auxiliary decoding frame, the mean LLR is obtained using Equation (2.5) and the step size λ is calculated using Equation (3.1) for the message processing of the check nodes in the decoding process of the first frame adaptive decoding frame after the auxiliary decoding frame within the logical page (i.e., Equations 2.2.1 and 2.2.2).

[0100] 4.2 For each frame adaptive decoding frame, the mean LLR is calculated using Equation (2.5) and the step size λ is calculated using Equation (3.1) for the message processing of the check nodes in the decoding process of the next frame adaptive decoding frame (i.e., Equations 2.2.1 and 2.2.2).

[0101]

[0102] Analysis of simulation results:

[0103] The test chip is a Micron floating gate 3D NAND flash memory chip of model MT29F081TEEHAF, and the test noise environment parameters are set as follows:

[0104] Environment 1: The number of erase cycles PE = 5000, and the data retention time is T = 4 months;

[0105] Environment 2: The number of erase cycles PE = 10000, and the data retention time is T = 4 months;

[0106] Environment 3: The number of erase cycles PE = 10000, and the data retention time is T = 12 months;

[0107] The performance curves of the fast iterative decoding method of LDPC codes and the LDPC BP decoding algorithm based on the frame error characteristics and LLR statistical characteristics of low pages, middle pages, and high pages under different noises on the flash memory channel are respectively as Figure 2 、 Figure 3 、 Figure 4 shown. It can be seen from the figure that the fast iterative decoding method of LDPC codes based on the frame error characteristics and LLR statistical characteristics of the flash memory channel is superior to the LDPC BP decoding algorithm. For example, assuming that under 4 months and 5000 P / E cycles, the required performance of BER is 10 -5 . For the LSB page, the number of iterations of the traditional LDPC decoding algorithm is 2.4 times, while the number of iterations of the proposed FFIA-DA decoding algorithm is 3.24 times, a reduction of 25.9%. For the CSB page, the number of iterations of the traditional LDPC decoding algorithm is 4.4 times, while the number of iterations of the FFIA-DA decoding algorithm is 6 times, a reduction of 26.7%. For the MSB page, the number of iterations of the traditional LDPC decoding algorithm is 3.8 times, while the number of iterations of the FFIA-DA decoding algorithm is 8.4 times, a reduction of 54.8%.

[0108] In summary, the bit error rate performance simulation experiment shows that: in the flash memory channel, the fast iterative decoding method of LDPC codes based on the frame error characteristics and LLR statistical characteristics under the flash memory channel proposed by the present invention has better bit error performance than the LDPC BP decoding algorithm, and the convergence speed has been greatly improved, especially under high noise.

[0109] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A fast iterative decoding method for LDPC codes based on the statistical characteristics of 3D flash channels, characterized in that the first frame written within a logical page is used to calculate the parameters required for assisted decoding, and the first frame is denoted as the frame for assisted decoding, and subsequent frames are called adaptive decoding frames; the method includes the following steps: Step 1, initialize the initial messages of variable nodes 1.1 Assign the message passed through the channel to the variable node to VI (0) ij , as the initial message passed from variable node i to adjacent check node j: Among them, L i represents the initial probability likelihood ratio message passed by the channel to variable node i; 1.2 For the auxiliary decoding frame and the adaptive decoding frame, calculate the mean of all positive values in L i : meanLLRInit = E{L i |L i > 0}(1.2) In the above formula, meanLLRInit represents the mean value of all positive values in L i , and E{·} represents the expectation function; Step 2: Iterative processing to update the likelihood information of variable nodes 2.1 Check node message processing (1) Decoding of the auxiliary decoding frame For all check nodes j and adjacent variable nodes i ∈ R j , at the l-th iteration, calculate the message CI passed from the variable node to the check node j (l) ji : Among them, R j denotes the set of all variable nodes adjacent to the check node j, where i' ∈ R j \i denotes the set of other variable nodes adjacent to the check node j excluding the variable node i; VI (l-1) i'j denotes the message passed from the adjacent check node j received by the variable node i' at the (l - 1)-th iteration; (2) Decoding of the adaptive decoding frame The adaptive decoding frame uses the step size λ to assist in the check node message processing: When the iteration number l = 1, the message CI sent from the variable node to the check node j (l) ji : When l > 1, the message CI passed from the variable node to the check node j (l) ji : Among them, meanLLR is the mean value of all positive values in the LLR; 2.2 Variable node message processing For all node variables i and their adjacent check nodes j ∈ C i , at the l-th iteration, calculate the message VI passed from the check node j received by the variable node i (l) ij : Where: C i represents the set of all check nodes adjacent to variable node i, and j' ∈ C i \j represents the set of other check nodes adjacent to variable node i excluding check node j, CI (l) j'i represents the message received by check node j' from adjacent variable node i during the l-th iteration; 2.3 Decoding decision (1) Calculate the hard decision information for all variable nodes i: Among them, L (l) i represents all the likelihood information received by variable node i at the l-th iteration; CI (l) ji represents the information passed from adjacent variable node i received by check node j at the l-th iteration; (2) Calculate the mean value meanLLR of all positive values in the LLR at the current iteration: meanLLR = E{L (l) i |L (l) i > 0}(2.5) Among them, E{·} represents the expectation function; If L (l) i > 0, then let the i-th bit in the codeword obtained by decoding and decision Otherwise Thus, the codeword after error correction is obtained 2. The fast iterative decoding method of LDPC code based on 3D flash channel statistical characteristics according to claim 1, wherein the calculation process of L i is as follows: In the above formula, P i (1) represents the initial probability that the channel transmits 1 to the i-th variable node; P i (0) represents the initial probability that the channel transmits 0 to the i-th variable node.

3. According to the fast iterative decoding method of LDPC codes based on the 3D flash channel statistical characteristics described in claim 1, It is characterized in that The method further includes: Step 3, if or the maximum number of iterations is reached, the operation ends; otherwise, continue the iteration from Step 1; where H represents the parity-check matrix and the superscript T represents the transpose operation.

4. According to the fast iterative decoding method of LDPC codes based on the 3D flash channel statistical characteristics described in claim 1, It is characterized in that After the iteration ends: For the auxiliary decoding frame, use formula (2.5) to obtain meanLLR and use formula (3.1) to calculate the step size λ, which is used for the message processing process of the check node in the decoding process of the first frame of adaptive decoding frame after the auxiliary decoding frame within the logical page:

5. According to the fast iterative decoding method of LDPC codes based on the 3D flash channel statistical characteristics described in claim 4, It is characterized in that For each frame of adaptive decoding frame, calculate meanLLR after decoding ends through formula (2.5), and use formula (3.1) to calculate the step size λ, which is used for the message processing process of the check node in the decoding process of the next frame of adaptive decoding frame.

Citation Information

Patent Citations

  • BP iterative decoding method and system based on dynamic scheduling

    CN108092673A

  • LDPC (Low Density Parity Check) code decoding method for NAND-Flash memory medium

    CN108809330A