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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000006870 function Effects 0.000 claims description 16
- 238000009826 distribution Methods 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 12
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 4
- RVRCFVVLDHTFFA-UHFFFAOYSA-N heptasodium;tungsten;nonatriacontahydrate Chemical compound O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[W].[W].[W].[W].[W].[W].[W].[W].[W].[W].[W] RVRCFVVLDHTFFA-UHFFFAOYSA-N 0.000 claims description 2
- 230000008859 change Effects 0.000 abstract description 8
- 238000004364 calculation method Methods 0.000 abstract description 5
- 230000002085 persistent effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000010893 electron trap Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
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;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 =+∞,
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: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 formulaObtaining 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:
RTN noise:
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 distributionBoth 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.
σ r =0.3|μ r | (6)
The three noise disturbances experienced by the read voltage can be expressed as:
as shown in fig. 2, since the output voltages are all subjected to gaussian distribution, the output voltages are also gaussian models, as follows:
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.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:
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:
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.
T =1 x 10^6, error probability of different flag bits of high page and quantization value thereof
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;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 =+∞,
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 β:I X =I MAX *β;
s3, obtaining an iteration number substituting algorithm;
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.
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)
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)
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)
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 |
-
2019
- 2019-08-27 CN CN201910798178.8A patent/CN110752850B/en active Active
Patent Citations (6)
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)
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 |