CN110752850B - Method for quickly iterating LDPC code of MLC flash memory chip - Google Patents

Method for quickly iterating LDPC code of MLC flash memory chip Download PDF

Info

Publication number
CN110752850B
CN110752850B CN201910798178.8A CN201910798178A CN110752850B CN 110752850 B CN110752850 B CN 110752850B CN 201910798178 A CN201910798178 A CN 201910798178A CN 110752850 B CN110752850 B CN 110752850B
Authority
CN
China
Prior art keywords
page
flash memory
iteration
iterations
decoding
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.)
Active
Application number
CN201910798178.8A
Other languages
Chinese (zh)
Other versions
CN110752850A (en
Inventor
韩国军
郑敏华
何瑞泉
蔡国发
方毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Changchun Technology Co ltd
Original Assignee
Guangdong University of Technology
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 Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201910798178.8A priority Critical patent/CN110752850B/en
Publication of CN110752850A publication Critical patent/CN110752850A/en
Application granted granted Critical
Publication of CN110752850B publication Critical patent/CN110752850B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

In order to solve the problem that an ECC scheme in the prior art is not enough to ensure the reliability of data on a chip, the invention provides a method for quickly iterating an LDPC code of an MLC flash memory chip, which comprises the following steps: obtaining LLR error probability: obtaining an iteration factor according to the LLR error probability: and obtaining an iteration number substituting algorithm. Except for the aliasing areas E2 of the high page and the aliasing areas E1 and E3 of the low page, the number of iterations is reduced in other parts, the adjustment is carried out along with the change of the channel, the error probabilities corresponding to the zone bits are different and can change along with the change of the channel, the number of iterations is adjusted by utilizing the error probabilities to variable nodes under different error probabilities and different channel noises, and the required number of iterations is obtained by adding an exponential function. The invention can effectively and greatly reduce the complexity in decoding, has only a small amount of calculation complexity and no other real value comparison complexity, and simultaneously does not influence the decoding performance.

Description

Method for quickly iterating LDPC code of MLC flash memory chip
Technical Field
The invention relates to the field of MLC flash memory chip error correction, in particular to a method for quickly iterating LDPC codes of an MLC flash memory chip.
Background
Most advanced NAND flash memory chips suffer from significant channel noise damage, thus raising some data reliability problems that Low Density Parity Check (LDPC) codes are becoming the dominant error correction code in flash memory controllers in order to overcome. Thus, long Belief Propagation (BP) decoding delays begin to degrade system performance. Aslam proposes a low-complexity quantization perception belief propagation (QA-BP) decoding scheme, and only unreliable variable nodes corresponding to high error probability LLR values are updated in a non-uniform quantization channel through different error rates of log-likelihood ratios. On the basis, the invention calculates the corresponding iteration times according to different error probabilities of the log-likelihood ratio. Neither additional run operations nor real value comparisons are required. The decoding complexity can be greatly reduced, and the performance is not reduced.
With the increasing use of NAND flash in digital electronic products and high-performance enterprise data applications, it has become the most important data storage medium because it has the outstanding features of low cost, large storage capacity, low power consumption, high speed, etc. Read response time. However, due to continuous node scaling and multi-level cell (MLC) technology for meeting the ever-increasing memory size demands, several channel noise and interference effects have emerged over the past few years thereby reducing the reliability of flash data. As a direct consequence, the lifetime of modern flash memory chips is severely limited in terms of wear-out (number of Program and Erase (PE) operations) and retention time (duration of data storage). The limited number of PE cycles that a flash memory can handle is also referred to as memory endurance. These reliability problems pose a significant barrier to the further spread of flash memory usage in practical applications. Modern flash memory controllers widely employ Error Correction Codes (ECC) to improve data reliability. However, as storage capacity requirements tend to increase, conventional ECC schemes (e.g., bose-Chaudhuri Hocquenghem (BCH) codes with hard-decision decoding) prove to be insufficient to ensure on-chip data reliability. In particular, low Density Parity Check (LDPC) codes are attracting attention because of their excellent error correction capabilities over time.
Message passing may also perform parallel updates of all variable/check nodes using the flooding plan simultaneously, or sequential (serial) passes through the update nodes once. However, serial BP scheduling has shown to converge (produce decoded results) faster than parallel scheduling. For SBP codes, it is described that the required number of message transmissions in forced-convergence (forced-convergence) can reduce convergence by selectively updating partial sets. At FC decoding, at each iteration, each is reliable comparing variable nodes to a predetermined threshold and selecting only less reliable variable nodes for further updating. Alternatively, an algorithm based on (lazy-schedule) forced decoding is also considered, but LS decoding requires an additional operation of calculating the convergence probability at runtime. Furthermore, FC and LS schemes followed by real-valued comparisons inherently add more complex computational load to each decoding iteration.
Disclosure of Invention
In order to solve the problem that an ECC scheme in the prior art is not enough to ensure the reliability of on-chip data, the invention provides a method for quickly iterating LDPC codes of an MLC flash memory chip.
The technical scheme adopted by the invention to solve the technical problems is as follows: a method for quickly iterating LDPC codes of an MLC flash memory chip is characterized by comprising the following steps:
s1, obtaining LLR error probability: setting a total of N flash memory cells in a page of flash memory for four states, by 6 quantization voltages { R } 1 ,R 2 ,R 3 ,R 4 ,R 5 ,R 6 Divide the threshold voltage distribution of the four states into seven voltage intervals, excluding the epsilon of the upper page 2 And epsilon of lower page 1 ,ε 3 And the three bit aliasing areas calculate the voltage distribution error probability of other voltage intervals. (the following should be the voltage distribution error probability of the non-aliasing region upper and lower pages, and the aliasing region does not perform calculation):
P e (L msb ∈D 1 )=(N 00 (D 1 )+N 01 (D 1 ))/N(D 1 ) P e (L Lsb ∈ D 1 )=(N 00 (D 1 )+N 10 (D 1 ))/N(D 1 )
P e (L msb ∈E 1 )=(N 00 (E 1 )+N 01 (E 1 ))/N(E 1 ) P e (L Lsb ∈ D 2 )=(N 11 (D 2 )+N 01 (D 2 ))/N(D 2 )
P e (L msb ∈D 2 )=(N 00 (D 2 )+N 01 (D 2 ))/N(D 2 ) P e (L Lsb ∈E 2 )=(N 11 (E 2 )+N 01 (E 2 ))/N(E 2 )
P e (L msb ∈D 3 )=(N 11 (D 3 )+N 10 (D 3 ))/N(D 3 ) P e (L Lsb ∈ D 3 )=(N 11 (D 3 )+N 01 (D 3 ))/N(D 3 )
P e (L msb ∈E 3 )=(N 11 (E 3 )+N 10 (E 3 ))/(N(E 3 ) P e (L Lsb ∈ D 4 )=(N 00 (D 4 )+N 10 (D 4 ))/N(D 4 )
P e (L msb ∈D 4 )=(N 11 (D 4 )+N 10 (D 4 ))/N(D 4 );
wherein, the bits of the upper page are 1,0 in sequence, and the bits of the lower page are 1,0, 1 in sequence;
Figure RE-GDA0002296042720000031
is a function of the voltage distribution of four combined states, R n-1 ≤v≤R n for n=1,2,3,4,5,6,7,R 0 =-∞,R 7 =+∞,
Figure RE-GDA0002296042720000032
dv is the variable of the integral, { expression integrated }; n is a radical of 00 Representing the total number of errors under 00 combinations, and so on;
d1 is an interval corresponding to the state 11, and so on; e1 represents an interval of the first aliasing region;
s2, obtaining an iteration number factor according to the LLR error probability: under the influence of the interference factor T, the error probability Pe takes its absolute value again through a logarithmic function, which is specifically as follows: | log10 (P) e ) L, |; let the iteration factor beta be the maximum iteration I MAX Such that the number of decoding iterations I required for a variable node in a certain non-aliasing interval (the aliased threshold voltage interval) X Comprises the following steps: i is X =I MAX * β, where 0 ≦ β ≦ 1, and should be in positive correlation with Pe, β = f (| log10 (P) e ) | log10 (P) |) e ) I is a decreasing function, so f (log 10 (P) e ) ) should be a decreasing function. When the base of the logarithmic function is larger than 0 and smaller than 1, the above requirements can be met, and the decreasing trend is relatively gentle, so that the beta difference is not too large to influence the decoding performance. Therefore, the following steps are obtained:
Figure RE-GDA0002296042720000041
I X =I MAX *β.
s3, obtaining an iteration number substituting algorithm;
setting a vector U = { U = i =0|i=1,...N},u i A flag bit of a certain variable node; according to the formula
Figure RE-GDA0002296042720000042
Obtaining the number of iterations, wherein X For the number of iterations, I max To set the maximum number of iterations.
In the step S1, there are 4 combinations in the MLC flash memory: 11 10, 00, 01; 8 threshold voltages R0, R1, R2, R3, R4, R5, R6 and R7 are set, and 7 voltage intervals C1, C2, C3, C4, C5, C6 and C7 are divided; the first bit of all the cells of the MLC flash memory is extracted and called the upper page, the second bit is the lower page, and the upper page and the lower page have N bits respectively.
Wherein, the execution process of the step S3 is as follows: setting the maximum number of iterations I MAX =50,k for the current decoding iteration's turn. Each round finds u i Decoding the variable node of =0, quitting decoding if the stop criterion is met, otherwise, judging whether K is more than u i Value I of variable node not equal to 0 without iteration MAX -I x If yes, the corresponding variable node u i =0, late participate in decoding until a stop criterion is met or k exceeds 50 times.
The invention has the beneficial effects that: except for the aliasing areas E2 of the high page and the aliasing areas E1 and E3 of the low page, the number of iterations is reduced in other parts, the adjustment is carried out along with the change of the channel, the error probabilities corresponding to the zone bits are different and can change along with the change of the channel, the number of iterations is adjusted by utilizing the error probabilities to variable nodes under different error probabilities and different channel noises, and the required number of iterations is obtained by adding an exponential function. The invention can effectively and greatly reduce the complexity in decoding, has only a small amount of calculation complexity and no other real value comparison complexity, and simultaneously does not influence the decoding performance.
Drawings
Fig. 1 is a flash memory channel model.
FIG. 2 is a graph of threshold voltage distribution under the channel endurance noise of MLC-type flash memory.
FIG. 3 is a schematic diagram of 4 voltage distribution functions of MLC flash memory after 6 quantization.
FIG. 4 is an error rate for different regions over persistence time.
FIG. 5 is a comparison of the number of iterations of the QABP and QABP _ HL algorithms versus the BP algorithm with changes in PE.
FIG. 6 shows the QABP algorithm setting flag bits for variable nodes.
FIG. 7a is the flag bits for the high page variable node of the present invention.
FIG. 7b is the flag bit for the lower page variable node according to the present invention.
Fig. 8 is a graph of the magnitude change of the number of iterations with the probability of error.
Detailed Description
The present application is further described below with reference to the accompanying drawings.
As can be seen in FIG. 1, this channel has programming noise, random telegraph noise RTN and interference of persistent noise, the interference of programming noise being denoted as n s The interference of the random telegraphic noise is denoted n w The interference of persistent noise is denoted as n r Initial voltage of flash memory cell is marked as x s The read voltage is denoted as v, and the expression is as follows:
v=x s +n s +n w +n r (1)
programming noise:
Figure RE-GDA0002296042720000061
RTN noise:
Figure RE-GDA0002296042720000062
setting sigma w =0.00025(PE) 0.62
Retention (persistence) noise:
persistent noise is caused by electron leakage after cell programming, which is caused by electron trapping and is the main disturbance of flash memory. As the program/erase operation is repeated, the amount of trapped electrons increases with electrical stress, and the insulating properties of the oxide layer decrease. In addition, trap Assist (TAT) tunneling is caused by trapped electrons forming an electron tunnel, and the TAT effect causes stored electrons in the floating gate to leak out faster. Thus, the threshold voltage of the memory cell shifts over time toward a lower state. Persistent noise induced threshold voltage shift approximately follows a Gaussian distribution
Figure RE-GDA0002296042720000063
Both random telegraph noise and persistent noise are affected by the number of program/erase cycles, a large number of P/E operations cause increased cell wear, and the constant loss of electrons for program and erase operations cause a reduction in the threshold voltage peak, i.e., data cannot be programmed to the highest state. The chip process size is reduced and the capacitance and the number of electrons of the flash memory cell are reduced. The most advanced MLC type flash memory cells store only about 100 electrons, so increasing or losing several electrons can significantly weaken the threshold voltage of the cell, affecting the memory state, resulting in limited data retention endurance.
Figure RE-GDA0002296042720000064
Wherein
Figure RE-GDA0002296042720000065
σ r =0.3|μ r | (6)
The three noise disturbances experienced by the read voltage can be expressed as:
Figure RE-GDA0002296042720000071
as shown in fig. 2, since the output voltages are all subjected to gaussian distribution, the output voltages are also gaussian models, as follows:
Figure RE-GDA0002296042720000072
Figure RE-GDA0002296042720000073
Figure RE-GDA0002296042720000074
Figure RE-GDA0002296042720000075
wherein
Figure RE-GDA0002296042720000076
x s11 =1.4,x s10 =2.6,x s00 =3.23,x s01 =4.1,
σ e =0.35,σ p =0.1,α i =0.62,α 0 =0.30,
A t =0.000035,B t =0.000235,
The method for quickly iterating the LDPC code of the MLC flash memory chip is characterized by comprising the following steps of:
the first step is as follows: calculating LLR error probability:
as shown in fig. 3, setting the code length to N, which is also the number of memory cells of the flash memory, the flash memory of MLC can store two bits per cell, so there are 4 combinations (states) in total: 11, 10, 00, 01. (11 is an erasing state, the rest are programming states, and the voltages of the memory cells are sorted from small to large) each memory cell has a corresponding voltage, 8 threshold voltages (R0, R1, R2, R3, R4, R5, R6 and R7) are set, 7 voltage intervals (C1, C2, C3, C4, C5, C6 and C7) are divided, and according to the voltage, the voltage is taken as a variable, and the number of the memory cells corresponding to the voltage is taken as a dependent variable, so that a voltage threshold distribution graph is obtained. The voltage distribution of 4 states 11, 10, 00, 01 of the flash memory is divided into 7 intervals, and after channel interference, other states appear in the voltage intervals which do not belong to the state. The flash memory cell can store 2 bits, so the first bit of all the cells of the MLC flash memory is extracted and called as the upper page (msb), the second bit is the lower page (lsb), and the upper page and the lower page have N bits respectively. As shown in FIG. 1,. Epsilon.1,. Epsilon.2,. Epsilon.3, are the aliasing regions (decision-prone intervals) for these 4 states. Wherein, the order of the high page bit is 10, and the interval of aliasing between 1 and 0 is epsilon 2; the order of the lower page bits is 1001, and its aliasing regions are ε 1, ε 3.
The MLC flash channel is divided into 7 sections by using the mutual information to obtain six quantized voltages, and as shown in fig. 3, the bits of the upper page (MSB) are 1100 in order and the bits of the lower page (LSB) are 1001 in order.
Figure RE-GDA0002296042720000081
Is a function of the voltage distribution of the four states, R n-1 ≤v≤R n for n=1,2,3,4,5,6,7R 0 =-∞,R 7 The LLR is calculated as follows:
Figure RE-GDA0002296042720000082
as shown in fig. 4, the quantization voltage of the present invention varies with the channel variation, and as long as the channel parameter varies, the varied quantization voltage is found by mutual information, and the LLR (confidence) also varies with the channel variation. And calculating the error rate of each area of the high and low pages, wherein the error probability formula of the high and low pages is as follows:
Pe(Lmsb∈D1)=(N00(D1)+N01(D1))/N(D1) Pe(LLsb∈1)=(N00(D1)+N10(D1))/N(D1)
Pe(Lmsb∈E1)=(N00(E1)+N01(E1))/N(E1) Pe(LLsb∈2)=(N11(D2)+N01(D2))/N(D2)
Pe(Lmsb∈D2)=(N00(D2)+N01(D2))/N(D2) Pe(LLsb∈2)=(N11(E2)+N01(E2))/N(E2)
Pe(Lmsb∈D3)=(N11(D3)+N10(D3))/N(D3) Pe(LLsb∈3)=(N11(D3)+N01(D3))/N(D3)
Pe(Lmsb∈E3)=(N11(E3)+N10(E3))/(N(E3) Pe(LLsb∈4)=(N00(D4)+N10(D4))/N(D4)
Pe(Lmsb∈D4)=(N11(D4)+N10(D4))/N(D4) (10)
examples are: error probability calculation for high page C1:
the number N (C1) of flash memory cells in the C1 interval is calculated, and the state of the upper page in the C1 interval is 11, and the bit correspondence is 1, so that the 10 state will not occur in the C1 interval. And the state 00, 01 corresponding to the 0 bit appearing in the C1 interval is regarded as an error. Thus, the sum of the numbers of 00, 01 states in the C1 interval is calculated: n00 (C1) + N01 (C1).
The LLR error probability of the variable node of the upper page of the C1 region should be:
(N00 (C1) + N01 (C1))/N (C1). Wherein (C1) + N (C2) + N (C3) + N (C4) + N (C5) + N (C6) + N (C7) = N.
QABP: fig. 4 shows that the error probability of the variable nodes in the D1 and D4 regions of the upper page is much lower than that of the other regions, including D2 and D3 of the upper page and D1, D2, D3 and D4 of the lower page. Therefore, the iteration times of the variable nodes in the D1 and D4 areas of the high page are only reduced, and the other variable nodes are not processed, as shown in FIG. 6, the QABP algorithm marks the nodes. And the number of iterations of this reduction is set to 5 and does not vary with the channel variation. As can be seen from fig. 5, the complexity of the QA-BP algorithm approaches the complexity of the BP algorithm as the channel noise increases.
The second step is that: calculating an iteration number factor (convergence factor) according to the LLR error probability:
except for the aliasing region E2 of the high page, the aliasing regions E1 and E3 of the low page, the number of iterations is reduced and the adjustment is performed along with the change of the channel, as shown in FIG. 7a and FIG. 7b, the left side is the flag bit set by the algorithm for the variable node of the high page, and the right side is the flag bit set by the algorithm for the variable node of the low page. The log-likelihood ratio LLR is an initial value (the number of LLRs and V is N) when decoding is performed on the variable node V, and plays a key role in decoding performance. The log-likelihood ratio is calculated from the voltage distributions of the above four states, and is also divided into upper and lower pages. The higher the error probability, the higher the probability that the LLR corresponding to the section having the higher error probability will be in error. The variable nodes with higher error probabilities need more iterations to converge, and the variable nodes with lower error probabilities converge faster and therefore do not need as many iterations as other variable nodes with higher error probabilities. The method is provided for calculating the number of iterations required by the variable node by using the error probability of the LLR of the variable node.
Table I shows the error probability of the upper page and the lower page in some threshold voltage interval when the interference factors T = 1X 10^5, T = 1X 10^6, T = 1X 10^ 7. The error probability of the high page and the low page is greatly different under the same interference factor, but the iteration times are not different by several orders of magnitude, so that some calculation operations are needed to make f (Pe) within one order of magnitude. They can be made to be both of one order by taking their absolute values again through a logarithmic function, but this is a decreasing function. And the iteration time factor beta (beta is more than or equal to 0 and less than or equal to 1) needs an exponential function which is decreased progressively and can ensure that the beta is more than or equal to 0 and less than or equal to 1.
Table one step of processing LLR error probability of low page variable nodes when T =1 x 10^ 6:
Figure RE-GDA0002296042720000101
table two lists the error probability of different flag bits of the upper page when T =1 x 10^6, and the calculated value by base 10 logarithm. Table 2 lists the error probability of the high page D3 region under different channel noise and its iteration factor.
Figure RE-GDA0002296042720000102
T =1 x 10^6, error probability of different flag bits of high page and quantization value thereof
Figure RE-GDA0002296042720000111
/>
Error probability and quantization value of D3 area of table three high page under different channel noises
The third step: obtaining an iteration number substituting algorithm:
when the error probability is calculated by the logarithm with the base number of 10, the error probability of each flag bit is not different so much, and is different from a few single digits, which is equivalent to a quantization level. The error probability is calculated as a quantization level of the error probability by the base 10 logarithm. However, the difference between the quantization levels is still somewhat large, and in order to reduce the difference and make the error probability more sensitive, an exponential function is added. Setting a vector U = { U = i =0|i=1,...N},u i Is a flag bit of a certain variable node. The variable nodes do not do any treatment on the flag bits of epsilon 1 of the upper page and epsilon 2 and epsilon 3 of the lower page. The flag bits of the variable nodes of the upper page are marked as {1,2,3,5,6,7} in sequence to obtain {1,2,3,0,5,6,7} and the variable nodes of the lower page are marked as {1,0,3,4,5,0,7}. And (3) assigning the iteration times of the zone bits of which the upper page and the lower page are not 0:
high page { I msb_1 ,I msb_2 ,I msb_3 ,I msb_5 ,I msb_6 ,I msb_7 },
Lower page { I low_1 ,I low_3 ,I low_4 ,I low_5 ,I low_7 }。
The algorithm process is as follows: setting the maximum number of iterations I MAX K is the number of rounds of the current decoding iteration = 50. Each round finds u i Variable nodes with =0, e.g. decodingIf the stop criterion is satisfied, the decoding is exited, otherwise, whether K is larger than u is judged i Variable node iteration-free value I not equal to 0 MAX -I x If yes, the corresponding variable node u i =0, and participates in decoding until a stop criterion is met or k exceeds 50 times.
Examples are: as shown in FIG. 8 msb_3 =40, that corresponding variable node 10 times first (I) MAX -40) has not been decoded, u i And =3. When K phi 10, u i =3 to u i =0, and the corresponding variable node participates in the decoding.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents and improvements made within the spirit and principle of the present invention are intended to be included within the scope of the present invention.

Claims (3)

1. A method for quickly iterating LDPC codes of an MLC flash memory chip is characterized by comprising the following steps:
s1, obtaining an LLR error probability: setting a total of N flash memory cells in a page of the flash memory for four states, passing 6 quantization voltages { R } 1 ,R 2 ,R 3 ,R 4 ,R 5 ,R 6 Divide the threshold voltage distribution of four states into seven voltage intervals, excluding the epsilon of the upper page 2 And epsilon of lower page 1 ,ε 3 The three bit aliasing regions calculate the voltage distribution error probability of other voltage intervals:
P e (L msb ∈D 1 )=(N 00 (D 1 )+N 01 (D 1 ))/N(D 1 )
P e (L Lsb ∈D 1 )=(N 00 (D 1 )+N 10 (D 1 ))/N(D 1 )
P e (L msb ∈E 1 )=(N 00 (E 1 )+N 01 (E 1 ))/N(E 1 )
P e (L Lsb ∈D 2 )=(N 11 (D 2 )+N 01 (D 2 ))/N(D 2 )
P e (L msb ∈D 2 )=(N 00 (D 2 )+N 01 (D 2 ))/N(D 2 )
P e (L Lsb ∈E 2 )=(N 11 (E 2 )+N 01 (E 2 ))/N(E 2 )
P e (L msb ∈D 3 )=(N 11 (D 3 )+N 10 (D 3 ))/N(D 3 )
P e (L Lsb ∈D 3 )=(N 11 (D 3 )+N 01 (D 3 ))/N(D 3 )
P e (L msb ∈E 3 )=(N 11 (E 3 )+N 10 (E 3 ))/(N(E 3 )
P e (L Lsb ∈D 4 )=(N 00 (D 4 )+N 10 (D 4 ))/N(D 4 )
P e (L msb ∈D 4 )=(N 11 (D 4 )+N 10 (D 4 ))/N(D 4 );
wherein, the bits of the upper page are 1,0 in sequence, and the bits of the lower page are 1,0, 1 in sequence;
Figure FDA0004014266860000011
is a function of the voltage distribution of four combined states, R n-1 ≤v≤R n for n=1,2,3,4,5,6,7,R 0 =-∞,R 7 =+∞,
Figure FDA0004014266860000021
dv is the integrated variable; n is a radical of 00 Representing the total number of errors in the 00 state, and so on; d1 is an interval corresponding to the state 11, and so on; e1 represents an interval of the first aliasing region;
s2, according toThe LLR error probability yields an iteration number factor: under the influence of the interference factor T, the error probability Pe takes its absolute value again through a logarithmic function, which is specifically as follows: | log10 (P) e ) L, |; let the iteration factor beta be the maximum iteration I MAX The scaling factor of (2) is such that the number of decoding iterations Ix required for a variable node in a certain non-aliasing interval is: i is X =I MAX * β, where 0 ≦ β ≦ 1, and should be in positive correlation with Pe, β = f (| log10 (P) e ) |), and | log10 (P) e ) I is a decreasing function, so f (log 10 (P) e ) ) should be a decreasing function; the above is satisfied when the base of the logarithmic function is greater than 0 and less than 1, and the decreasing trend is relatively gentle, so that the decoding performance is not affected by too large a difference of β:
Figure FDA0004014266860000023
I X =I MAX *β;
s3, obtaining an iteration number substituting algorithm;
setting a vector U = { U = i =0|i=1,...N},u i A flag bit of a certain variable node; according to the formula
Figure FDA0004014266860000022
Obtaining the number of iterations, wherein X For the number of iterations, I max To set the maximum number of iterations.
2. The method for LDPC code fast iteration on an MLC flash memory chip of claim 1, wherein in step S1, the flash memory cell has 4 states: 11 10, 00, 01; 8 threshold voltages R0, R1, R2, R3, R4, R5, R6 and R7 are set, and 7 voltage intervals C1, C2, C3, C4, C5, C6 and C7 are divided; the first bit of all flash memory units is extracted and called as high page, the second bit is low page, and the high page and the low page have N bits respectively.
3. The LDPC code fast iteration method of claim 1, wherein the step S3 isThe execution process is as follows: setting the maximum number of iterations I MAX K for the current decoding iteration, each round finds u i The variable node of which the number is =0 is decoded, if the stop criterion is met, the decoding is exited, otherwise, whether K is larger than u is judged i Variable node iteration-free value I not equal to 0 MAX -I X If yes, the corresponding variable node u i =0, and participates in decoding until a stop criterion is met or k exceeds 50 times.
CN201910798178.8A 2019-08-27 2019-08-27 Method for quickly iterating LDPC code of MLC flash memory chip Active CN110752850B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910798178.8A CN110752850B (en) 2019-08-27 2019-08-27 Method for quickly iterating LDPC code of MLC flash memory chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910798178.8A CN110752850B (en) 2019-08-27 2019-08-27 Method for quickly iterating LDPC code of MLC flash memory chip

Publications (2)

Publication Number Publication Date
CN110752850A CN110752850A (en) 2020-02-04
CN110752850B true CN110752850B (en) 2023-04-07

Family

ID=69275913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910798178.8A Active CN110752850B (en) 2019-08-27 2019-08-27 Method for quickly iterating LDPC code of MLC flash memory chip

Country Status (1)

Country Link
CN (1) CN110752850B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611101B (en) * 2020-04-22 2023-09-29 珠海妙存科技有限公司 Method and device for adjusting flash memory read data throughput rate

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139160A1 (en) * 2014-03-20 2015-09-24 山东华芯半导体有限公司 Hard decision decoding method for ldpc code of dynamic threshold bit-flipping
CN106371943A (en) * 2016-09-06 2017-02-01 华中科技大学 LDPC (low density parity check) decoding optimization method based on flash programming interference error perception
CN107294542A (en) * 2017-05-23 2017-10-24 南京邮电大学 Volume, interpretation method based on double-deck LDPC code in MLC flash
CN107395214A (en) * 2017-07-12 2017-11-24 华中科技大学 A kind of method that LDPC decoding latencies are reduced based on Hash memory pages error property
CN108683423A (en) * 2018-05-16 2018-10-19 广东工业大学 LDPC code dynamic serial scheduling decoding algorithm and device under a kind of multi-level flash channel
CN109660263A (en) * 2018-11-22 2019-04-19 华中科技大学 A kind of LDPC code interpretation method suitable for MLC NAN flash memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8418023B2 (en) * 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139160A1 (en) * 2014-03-20 2015-09-24 山东华芯半导体有限公司 Hard decision decoding method for ldpc code of dynamic threshold bit-flipping
CN106371943A (en) * 2016-09-06 2017-02-01 华中科技大学 LDPC (low density parity check) decoding optimization method based on flash programming interference error perception
CN107294542A (en) * 2017-05-23 2017-10-24 南京邮电大学 Volume, interpretation method based on double-deck LDPC code in MLC flash
CN107395214A (en) * 2017-07-12 2017-11-24 华中科技大学 A kind of method that LDPC decoding latencies are reduced based on Hash memory pages error property
CN108683423A (en) * 2018-05-16 2018-10-19 广东工业大学 LDPC code dynamic serial scheduling decoding algorithm and device under a kind of multi-level flash channel
CN109660263A (en) * 2018-11-22 2019-04-19 华中科技大学 A kind of LDPC code interpretation method suitable for MLC NAN flash memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LDPC码的信道自适应迭代译码算法;韩国军等;《电路与***学报》;20100215(第01期);第102-107页 *

Also Published As

Publication number Publication date
CN110752850A (en) 2020-02-04

Similar Documents

Publication Publication Date Title
CN112783685B (en) Bit flip decoder for fast converging low density parity check codes
JP5590620B2 (en) Method and apparatus for soft data generation in a memory device
US8990661B1 (en) Layer specific attenuation factor LDPC decoder
US8149623B2 (en) Controller and non-volatile semiconductor memory device
CN111200440B (en) LDPC decoder, semiconductor memory system and operating method thereof
US7814401B2 (en) Soft decoding of hard and soft bits read from a flash memory
JP6367562B2 (en) Detection and decoding in flash memory using selective binary and non-binary decoding
US8984365B1 (en) System and method for reduced memory storage in LDPC decoding
US10216572B2 (en) Flash channel calibration with multiple lookup tables
US8935598B1 (en) System and method for adaptive check node approximation in LDPC decoding
US9564921B1 (en) Method and system for forward error correction decoding based on a revised error channel estimate
WO2022160847A1 (en) Method for optimizing polar-rnna quantizer of mlc-type nand flash memory on basis of deep learning
Wu et al. Using error modes aware LDPC to improve decoding performance of 3-D TLC NAND flash
CN108038023B (en) Signal processing method, device, equipment and storage medium of multi-level flash memory
CN112860474B (en) Soft bit flip decoder for fast converging low density parity check codes
US11411582B1 (en) Machine-learning based LLR generation without assist-read for early-stage soft decoding
CN110752850B (en) Method for quickly iterating LDPC code of MLC flash memory chip
CN111294061A (en) Decoding soft decision delay reduction method for original bit error rate perception
US10790854B2 (en) Coset probability based majority-logic decoding for non-binary LDPC codes
US9009576B1 (en) Adaptive LLR based on syndrome weight
CN108809330B (en) LDPC code decoding method for NAND-Flash storage medium
Chen et al. Reliability analysis and improvement for multi-level non-volatile memories with soft information
Liu et al. Variable-node-based belief-propagation decoding with message pre-processing for NAND flash memory
Aslam et al. Low-complexity quantization-aware belief-propagation (QA-BP) decoding for MLC NAND flash memory
Duangthong et al. Read voltage optimization in MLC NAND flash memory via the density evolution

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
TR01 Transfer of patent right

Effective date of registration: 20240221

Address after: 2nd Floor, Building 19, No. 268 Kangsheng Road, Qiandaohu Town, Chun'an County, Hangzhou City, Zhejiang Province, 311700

Patentee after: Zhejiang Changchun Technology Co.,Ltd.

Country or region after: China

Address before: No. 100, Waihuan West Road, University Town, Guangzhou, Guangdong 510062

Patentee before: GUANGDONG University OF TECHNOLOGY

Country or region before: China