CN110752850A - 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
- CN110752850A CN110752850A CN201910798178.8A CN201910798178A CN110752850A CN 110752850 A CN110752850 A CN 110752850A CN 201910798178 A CN201910798178 A CN 201910798178A CN 110752850 A CN110752850 A CN 110752850A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- decoding
- page
- iteration
- msb
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000009826 distribution Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 11
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 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
- 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
- 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
- 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
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 230000000007 visual effect 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, the aliasing areas E1 and E3 of the low page, the iteration times of other parts of the invention are reduced, and 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 adjustment of the iteration times is carried out on variable nodes with different error probabilities and different channel noises by utilizing the error probabilities, and the required iteration times are 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 simultaneously using the flooding plan, or sequential (serial) through one update node. 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 data on a chip, the invention provides a method for quickly iterating an LDPC code 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 the flash memory for four states, passing 6 quantization voltages { R }1,R2,R3,R4,R5,R6Divide the threshold voltage distribution of the four states into seven voltage intervals, excluding the epsilon of the upper page2And epsilon of lower page1,ε3And the three bit aliasing areas calculate the voltage distribution error probability of other voltage intervals. (the following should be the probability of voltage distribution error for the upper and lower pages of the unaliased region, the aliased region does not perform the calculation):
Pe(Lmsb∈D1)=(N00(D1)+N01(D1))/N(D1) Pe(LLsb∈ D1)=(N00(D1)+N10(D1))/N(D1)
Pe(Lmsb∈E1)=(N00(E1)+N01(E1))/N(E1) Pe(LLsb∈ D2)=(N11(D2)+N01(D2))/N(D2)
Pe(Lmsb∈D2)=(N00(D2)+N01(D2))/N(D2) Pe(LLsb∈E2)=(N11(E2)+N01(E2))/N(E2)
Pe(Lmsb∈D3)=(N11(D3)+N10(D3))/N(D3) Pe(LLsb∈ D3)=(N11(D3)+N01(D3))/N(D3)
Pe(Lmsb∈E3)=(N11(E3)+N10(E3))/(N(E3) Pe(LLsb∈ D4)=(N00(D4)+N10(D4))/N(D4)
Pe(Lmsb∈D4)=(N11(D4)+N10(D4))/N(D4);
wherein, the bits of the upper page are 1, 1, 0, 0 in sequence, and the bits of the lower page are 1, 0, 0, 1 in sequence;is a function of the voltage distribution of four combined states, Rn-1≤v≤Rnfor n=1,2,3,4,5,6,7,R0=-∞,R7=+∞,
dv is the variable of the integral, { expression integrated };N00representing the total number of errors under 00 combinations, and so on;
d1 is the interval corresponding to the state 11, and so on; e1 represents the interval of the first aliasing zone;
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) The maximum iteration number I is set as the iteration number factor βMAXSuch that the number of decoding iterations I required for a variable node in a certain non-aliasing interval (aliasing threshold voltage interval)XComprises the following steps: i isX=IMAXβ, wherein 0 ≦ β ≦ 1, and should have a positive correlation with Pe, β ═ f (| log10 (P)e) | log10 (P)e) I is a decreasing function, so f (log10 (P)e) 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 flat, so that β will not be too far apart to affect the decoding performance.IX=IMAX*β.
S3, obtaining an iteration number substituting algorithm;
setting a vector U ═ Ui=0|i=1,...N},uiA flag bit of a certain variable node; according to the formulaObtaining the number of iterations, whereinXFor the number of iterations, ImaxTo set the maximum number of iterations.
In step S1, the MLC flash memory has 4 combinations: 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 step S3 is executed by: setting the maximum number of iterations IMAXK is the number of rounds of the current decoding iteration, 50. Each round finds uiDecoding the variable node of 0, if the variable node meets the stop criterion, quitting decoding, otherwise, judging whether K is more than uiVariable node iteration-free value I not equal to 0MAX-IxIf yes, the corresponding variable node uiAfter 0, it participates in decoding until the 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, the aliasing areas E1 and E3 of the low page, the iteration times of other parts of the invention are reduced, and 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 adjustment of the iteration times is carried out on variable nodes with different error probabilities and different channel noises by utilizing the error probabilities, and the required iteration times are 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 visual diagram of 4 voltage distribution functions of the 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 shows the flag bits for the low 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, the channel has programming noise, random telegraph noise RTN and interference of persistent noise, the interference of programming noise being denoted as nsInterference of random telegraph noise is denoted nwThe interference of persistent noise is denoted as nrInitial voltage of flash memory cell is marked as xsThe read voltage is denoted as v, and the expression is as follows:
v=xs+ns+nw+nr(1)
programming noise:
RTN noise:
setting sigmaw=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 to a lower state over time. 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. Chip technologyThe 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:
xs11=1.4,xs10=2.6,xs00=3.23,xs01=4.1,
σe=0.35,σp=0.1,αi=0.62,α0=0.30,
At=0.000035,Bt=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 thereof 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 arranged, 7 voltage intervals (C1, C2, C3, C4, C5, C6 and C7) are divided, and according to the voltage, the number of the memory cells corresponding to the voltage is taken as a variable, and 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 1100, 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,Rn-1≤v≤Rnfor n=1,2,3,4,5,6,7R0=-∞,R7The LLR is calculated as + ∞:
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 of flash memory cells in the C1 interval (C1) is calculated, and the state of the upper page in the C1 interval is 11, and the bit correspondence is 1, so that no error occurs in the C1 interval in the 10 state. The state 00, 01 corresponding to the 0 bit is considered as an error when it occurs in the C1 interval. Thus, the sum of the numbers of 00, 01 states in the interval C1 is calculated: n00(C1) + N01 (C1).
The LLR error probability of the variable node of the upper page of this 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: from fig. 4, it is shown that the error probability of the variable nodes in the D4 region is much lower than that of the variable nodes in the D1 of the upper page, including D2 and D3 of the upper page, D1, D2, D3 and D4 of the lower page. Therefore, the iteration times of variable nodes in the D1 and D4 regions of the high page are only reduced, and the other 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 variations. As can be seen from fig. 5, the complexity of the QA-BP algorithm is closer to that of the BP algorithm as the channel noise is larger.
The second step is that: calculating an iteration number factor (convergence factor) according to the LLR error probability:
except for the aliasing zone E2 of the upper page, the aliasing zone E1 of the lower page and E3 of the lower page, the number of iterations is reduced and is adjusted 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 upper page, and the right side is the flag bit set by the algorithm for the variable node of the lower page. The log-likelihood ratio LLR is an initial value when the variable node V is decoded (the numbers of LLRs and V are both N), 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 erroneous. 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.
As shown in Table I, the error probability of the high page and the low page in some threshold voltage interval is very different in the same disturbance factor, but the iteration number is not different by several orders of magnitude, so some calculation operation is needed to make f (Pe) in one order of magnitude, and the absolute value of the logarithm function can be in another order of magnitude, but the iteration number factor β (0 ≦ β ≦ 1) so that an exponential function is needed to be decreased to ensure that 0 ≦ β ≦ 1.
Table one step of processing the LLR error probability of the low page variable node when T ═ 1 × 10^ 6:
table two lists the error probability of different flag bits for a higher page when T1 x 10 x 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.
TABLE II, T1 x 10^6, error probability of different flag bits of high page and quantization value thereof
Error probability and quantized value of table three high page D3 area 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 by a few 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 ═ Ui=0|i=1,...N},uiIs 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. And marking the flag bits of the variable nodes of the upper page as {1, 2, 3, 5, 6, 7} to obtain {1, 2, 3, 0, 5, 6, 7} and marking the flag bits of the variable nodes of the lower page 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 { Imsb_1,Imsb_2,Imsb_3,Imsb_5,Imsb_6,Imsb_7},
Low page { Ilow_1,Ilow_3,Ilow_4,Ilow_5,Ilow_7}。
The algorithm process is as follows: setting the maximum number of iterations IMAXK is the number of rounds of the current decoding iteration, 50. Each round finds uiDecoding the variable node of 0, if the variable node meets the stop criterion, quitting decoding, otherwise, judging whether K is more than uiVariable node iteration-free value I not equal to 0MAX-IxIf yes, the corresponding variable node uiAfter 0, it participates in decoding until the stop criterion is met or k exceeds 50 times.
Examples are: as shown in FIG. 8, Imsb_3That corresponds to the variable node 10 times before (I)MAX-40) has not been decoded, u i3. When K phi 10, u i3 to u i0 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 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,R2,R3,R4,R5,R6Divide the threshold voltage distribution of the four states into seven voltage intervals, excluding the epsilon of the upper page2And epsilon of lower page1,ε3The three bit aliasing regions calculate the voltage distribution error probability of other voltage intervals:
Pe(Lmsb∈D1)=(N00(D1)+N01(D1))/N(D1) Pe(LLsb∈D1)=(N00(D1)+N10(D1))/N(D1)
Pe(Lmsb∈E1)=(N00(E1)+N01(E1))/N(E1) Pe(LLsb∈D2)=(N11(D2)+N01(D2))/N(D2)
Pe(Lmsb∈D2)=(N00(D2)+N01(D2))/N(D2) Pe(LLsb∈E2)=(N11(E2)+N01(E2))/N(E2)
Pe(Lmsb∈D3)=(N11(D3)+N10(D3))/N(D3) Pe(LLsb∈D3)=(N11(D3)+N01(D3))/N(D3)
Pe(Lmsb∈E3)=(N11(E3)+N10(E3))/(N(E3) Pe(LLsb∈D4)=(N00(D4)+N10(D4))/N(D4)
Pe(Lmsb∈D4)=(N11(D4)+N10(D4))/N(D4);
wherein, the bits of the upper page are 1, 1, 0, 0 in sequence, and the bits of the lower page are 1, 0, 0, 1 in sequence;is a function of the voltage distribution of four combined states, Rn-1≤v≤Rnfor n=1,2,3,4,5,6,7,R0=-∞,R7=+∞,
dv is the integrated variable; n is a radical of00Representing the total number of errors in the 00 state, and so on; d1 is the interval corresponding to the state 11, and so on; e1 represents the interval of the first aliasing zone;
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 (decreasing function) again through a logarithmic function, specifically as follows: | log10 (P)e) The maximum iteration number I is set as the iteration number factor βMAXThe 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 isX=IMAXβ, wherein 0 ≦ β ≦ 1, and should have a positive correlation with Pe, β ═ f (| log10 (P)e) | log10 (P)e) I is a decreasing function, so f (log10 (P)e) 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 β is not too different to affect the decoding performance:0<α<1,IX=IMAX*β.
s3, obtaining an iteration number substituting algorithm;
2. The method of claim 1, wherein in step S1, the MLC flash memory has 4 states in total: 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.
3. The method of claim 1, wherein the step S3 is performed by: setting the maximum number of iterations IMAXK is the number of rounds of the current decoding iteration, 50. Each round finds uiDecoding the variable node of 0, if the variable node meets the stop criterion, quitting decoding, otherwise, judging whether K is more than uiVariable node iteration-free value I not equal to 0MAX-IxIf yes, the corresponding variable node uiAfter 0, it participates in decoding until the 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 true CN110752850A (en) | 2020-02-04 |
CN110752850B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611101A (en) * | 2020-04-22 | 2020-09-01 | 珠海妙存科技有限公司 | Method and device for adjusting throughput rate of flash memory read data |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276156A1 (en) * | 2007-05-01 | 2008-11-06 | Texas A&M University System | Low density parity check decoder for regular ldpc codes |
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 |
-
2019
- 2019-08-27 CN CN201910798178.8A patent/CN110752850B/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276156A1 (en) * | 2007-05-01 | 2008-11-06 | Texas A&M University System | Low density parity check decoder for regular ldpc codes |
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码的信道自适应迭代译码算法", 《电路与系统学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611101A (en) * | 2020-04-22 | 2020-09-01 | 珠海妙存科技有限公司 | Method and device for adjusting throughput rate of flash memory read data |
CN111611101B (en) * | 2020-04-22 | 2023-09-29 | 珠海妙存科技有限公司 | Method and device for adjusting flash memory read data throughput rate |
Also Published As
Publication number | Publication date |
---|---|
CN110752850B (en) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783685B (en) | Bit flip decoder for fast converging low density parity check codes | |
JP5535219B2 (en) | Method and apparatus for soft data generation in a memory device using a reference cell | |
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 | |
US8984376B1 (en) | System and method for avoiding error mechanisms in layered iterative decoding | |
US8149623B2 (en) | Controller and non-volatile semiconductor memory device | |
US8990661B1 (en) | Layer specific attenuation factor LDPC decoder | |
CN111200440B (en) | LDPC decoder, semiconductor memory system and operating method thereof | |
US10216572B2 (en) | Flash channel calibration with multiple lookup tables | |
WO2022160847A1 (en) | Method for optimizing polar-rnna quantizer of mlc-type nand flash memory on basis of deep learning | |
US8935598B1 (en) | System and method for adaptive check node approximation in LDPC decoding | |
CN108038023B (en) | Signal processing method, device, equipment and storage medium of multi-level flash memory | |
Wu et al. | Using error modes aware LDPC to improve decoding performance of 3-D TLC NAND flash | |
US9564921B1 (en) | Method and system for forward error correction decoding based on a revised error channel estimate | |
US10847241B2 (en) | Joint soft boundaries and LLRS update for flash memory | |
CN111294061B (en) | Decoding soft decision delay reduction method for original bit error rate perception | |
CN110752850B (en) | Method for quickly iterating LDPC code of MLC flash memory chip | |
CN112860474A (en) | Soft bit flipping decoder for fast converging low density parity check codes | |
US9009576B1 (en) | Adaptive LLR based on syndrome weight | |
US20220121387A1 (en) | Method for estimating read reference voltages for flash storage using neural network and apparatus therefor | |
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 | |
Yang et al. | An improved variable-node-based BP decoding algorithm for NAND flash memory | |
Lin et al. | Low-complexity detection and decoding scheme for LDPC-coded MLC NAND flash memory |
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 |
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 |
|
TR01 | Transfer of patent right |