on codes correcting bidirectional limited-magnitude errors for flash memories
DESCRIPTION
dgdfgdTRANSCRIPT
On Codes Correcting BidirectionalLimited-Magnitude Errors for Flash Memories
Myeongwoon Jeon and Jungwoo LeeSchool of Electrical Engineering and Computer Sciences
Seoul National University, Seoul 151-744, KoreaEmail: [email protected] and [email protected]
AbstractβNAND multi-level cell (MLC) flash memories arewidely used due to low cost and high capacity. However, theincreased number of levels in MLC results in larger interferenceand errors. The errors in MLC flash memories tend to bedirectional and limited-magnitude. Many related works focus onasymmetric errors, but bidirectional errors also occur becauseof the bidirectional interference and the adjustment of the hard-decision reference voltages. To take advantage of the charac-teristics, we propose π‘ bidirectional (ππ’, ππ) limited-magnitudeerror correction codes, which can reduce errors more effectively.The proposed code is systematic, and can correct π‘ bidirectionalerrors with upward and downward magnitude of ππ’ and ππ,respectively. The proposed method is advantageous in that theparity size is reduced, and the error rate performance is betterthan conventional error correction codes when the code rate isequal.
I. INTRODUCTION
NAND flash memory has been used widely because of itsnon-volatility and portability. Recently, multi level cell (MLC)flash memories have been studied for improving memorycapacity. Multi level cell flash memories use more than 2levels, and store two or more bits in a single cell. However,error increases rapidly with the number of levels in a cellbecause of the interference caused by cell-to-cell coupling,temperature, disturbance, and so on. MLC flash memory errorstend to be directional and have limited-magnitude. Variousfactors of interference lead to the threshold voltage (ππ‘β) shiftof the cells, and especially dominant factors such as cell tocell interference and over-programming increase ππ‘β [1].
Most noise and interference have limited amplitude, andmost errors occur between adjacent levels. The conventionalerror correction codes can be inefficient for MLC flashmemory because these codes are constructed for all possibleerror types where error magnitude and direction are random.Therefore, we can use the error characteristics of MLC flashmemories to construct efficient error correction codes. Forflash memories, the error correction codes for asymmetricchannels with limited-magnitude error were introduced in [2].Although the inter-cell interference leads to upward ππ‘β shiftmostly, there are also bidirectional or downward interferenceeffects [3]. The hard-decision reference voltages (πππππ) forreading cell data is determined based on the ππ‘β distributionconsidering the interference effect, so it is already near op-timal, which results in a symmetric (bidirectional channel).Therefore, bidirectional errors need to be considered in de-
signing channel codes. [4] introduced the symmetric limitederror correction codes which can correct only one single error,so it is not practical for flash memories.
In this paper, we introduce bidirectional limited-magnitudeerror correction codes (BLM-ECC) which has low redundancyfor flash memory applications. The proposed code extendsthe technique of the asymmetric error correction codes [2] tothe bidirectional error correction codes. The code treats bothupward and downward errors when the error magnitude ofeach direction can be different. The maximum magnitudesof the upward error and downward error are ππ’ and ππ,respectively. Bidirectional errors can be corrected using non-binary conventional error correction codes. With an 8-level cellmodel, the proposed code is simulated to check the error rateperformance. The simulation result shows that the bit errorrate performance of the proposed algorithm is better than theconventional block codes and the asymmetric error correctioncodes when the code rates are equal. In the following section,the shift of the threshold voltage and the bidirectional limited-magnitude errors are discussed. We then propose new efficienterror correcting codes for MLC flash memories in SectionIII. Simulation results of the new algorithm are presented inSection IV. Finally, we conclude the paper in Section V.
II. MLC FLASH MEMORY INTERFERENCE AND
BIDIRECTIONAL LIMITED-MAGNITUDE ERRORS
A cell of the NAND flash memory is a floating gatetransistor, and its threshold voltage can be programmed byinjecting certain amount of charges into the floating gate [5].The threshold voltage (ππ‘β) is used to distinguish data levelsin MLC memory. Several factors may change the distributionof the floating-gate threshold-voltage. These factors includecell to cell interference, cell leakage, temperature, programvoltage (ππππ) disturbance, the pass voltage (ππππ π ) applied tounselected word-lines, etc [1]. One of the dominant factors isthe cell to cell interference, which is caused by the ππ‘β changeof the neighbor cells in the programming (writing) operation.If the data of neighbor cells change, the cell to cell couplinginterference occurs. In this case, the ππ‘β shift is known tobe upward (unidirectional). The cell to cell interference isapproximately proportional to the voltage change of neighborcells in the programming operation, but it is also affected bythe structure of flash memories, the program order, and thenumber of levels (MLC) in a cell. The quantitative interference
ISITA2012, Honolulu, Hawaii, USA, October 28-31, 2012
Copyright 2012 IEICE 96
Fig. 1. ππ‘β shift and bidirectional errors with adjusted πππππ.
can be estimated by measurements and simulations [6]. Forthese asymmetric interference factors, the error correctioncodes for the asymmetric channel can be useful [2]. Althoughthe cell-to-cell interference which leads to upward errors arethe dominant factor in MLC flash memories, there are alsobidirectional (random-telegraph noise) or downward (retentionnoise) interference [3]. The hard-decision reference voltagesfor reading flash memory cells is determined based on theππ‘β distribution after the cell-to-cell interference, not beforethe cell-to-cell interference, which means the hard-decisionreference voltages for reading is already near optimal. Fig. 1illustrates the threshold voltage shift, and the adjusted πππππ.After adjusting πππππ to be near optimal, the number oferrors decreases, but the number of downward errors increases.Therefore, bidirectional errors should be considered in orderto improve the BER performance. Even if the errors arebidirectional, the magnitude of the errors is still limited.The magnitudes of downward error and upward error can bedifferent. The upward error magnitude can be larger than thedownward magnitude in general since the dominant interfer-ence effect is still upward even if the optimal πππππ is usedas in Fig. 1. We will discuss the bidirectional and the limited-magnitude error correction codes in the next section.
III. BIDIRECTIONAL LIMITED MAGNITUDE ERROR
CORRECTION CODES
A. Bidirectional Limited Magnitude Error Correction Codes
As described in the previous section, bidirectional errorsshould be considered in the flash memories. We propose theβbidirectional limited magnitude error correction code (BLM-ECC)β which deals with both upward and downward errors. In(ππ’, ππ) BLM-ECC, ππ’ and ππ represent the maximum magni-tudes of the upward error and the downward error, respectively.Fig. 2 (a), (b), (c) illustrate the difference of various errortypes. [2] discuss the asymmetric limited magnitude error in(a), and [4] consider the symmetric limited magnitude errors
Fig. 2. Various limited magnitude error types and (ππ’, ππ) bidirectional errorchannel.
in (b). However, little is known of the bidirectional limitedmagnitude error in (c). Fig. 2 (d) show the ππ’ = 2, ππ = 1 bidi-rectional error channel in a 6-ary cell. The threshold voltage(ππ‘β) of the cell is not integer, but it is assumed that the celldata and the error values are integer. Since we do not know theexact threshold voltage or the interference voltage by memoryreading operation, only the integer decision after hard-decisionis possible. π‘ β (ππ’, ππ) BLM-ECC can correct the codewordwith π‘ errors of (ππ’, ππ) magnitude. The code construction isas follows. Let Ξ© be a πβ²-ary code and πβ² = ππ’ + ππ + 1. Theπ-ary code π (π > πβ²) is defined as
π = {c = (π1, ..., ππ) β£ c mod (ππ’ + ππ + 1) β Ξ©} (1)
π correct π‘ bidirectional (ππ’, ππ) limited-magnitude errors ifΞ© corrects π‘ symmetric errors. The process of encoding anddecoding of the proposed codes are described as follows.
B. Encoding
Let x = {π₯1, . . . , π₯π} be a π-ary message codeword, andπ-ary multi-level cell memory is assumed to be used. We getthe πβ²-ary remainder of the π-ary message x by modular πβ²
operation (πβ² = ππ’ + ππ + 1, πβ² < π). The πβ²-ary remaindercodes are called base codes. In order to encode by the basecodes, conventional π-ary π‘ symmetric error correction codesare used, which is called base error correction codes. Withx mod πβ² codeword, the π-ary parity codes can be obtainedusing base error correction codes. A π-ary parity codewordneeds to be converted to a π-ary codeword p = {π1, . . . , ππ}in order to be stored in a π-ary memory cell. The systematicencoded codeword is then c = [x p] = {π1, π2, . . . , ππ} andπ = π + π. βSystematicβ means that the original message partand the parity part are separated in the encoded codeword.Since π > πβ², the base code size can be reduced thanthe original message, and the parity code size can be alsoreduced. Therefore, the code rate of the codes is larger thanconventional error correction, and this is the key advantage ofthe proposed code.
However, the above encoding method can cause the errorcount mismatch problem. The problem means one erratic cellusually causes two or more errors. There are two kinds of theproblem, one is a message correction problem when π < πβ²,
97
π β₯ 2, and the other is a parity code writing problem whenπ < π, π β₯ 2. Let us discuss the message correction problemfirst. One error in a π-ary cell can cause two or more errors in aπ-ary message codeword if π < πβ². For example, in a (2π’, 1π)memory channel, let us assume that π = 8, πβ² = 4, and π = 2(binary) are the parameters for the base error correction codes.Note that ππ means π-ary π value for convenience. A messagecode 18 is 14 and 012. If π = 2 error occurs in the π-ary cell,18 is changed to 38 which is 34 and 102 when the gray codesare used. Two bits are different between 012 and 102, and onecell error in the message cannot be corrected by π‘ = 1 binarybase error correction codes in this example.
Next, let us describe the parity code writing problem whenπ < π, π β₯ 2. The proposed codes are systematic codes,and a π-ary message is written in a π-ary cell. However, π-ary base error correction codes are used, and a π-ary paritycodeword needs to be written in a π-ary cell. For example,π = 16 and π = 4, a parity code 134 is written in the cellas 1 Γ 41 + 3 Γ 40 = 716. If π = 2 error is added to thecell, the cell value becomes β916β which is β214β. Therefore,one π-ary cell parity code error with π = 2 causes two π-aryparity code errors. This problem can be avoided when π β₯ π.Consequently, π should be larger than π and πβ² (π β₯ π β₯ πβ²)to avoid the error count mismatch problem. Thus, non-binaryπ-ary error correction codes such as Reed-Solomon(RS) codescan be used. In order to achieve the maximum code rate, π, π,and πβ² are twoβs power of π (π is integer), and log2π is amultiple of LCM(log2π,log2πβ²).
C. Decoding
Decoding of the proposed code is also based on the modularπβ² operation, and π-ary base error correcting codes. cβ² =(πβ²1, . . . , π
β²π) is the received codeword, and π = (π1, . . . , ππ)
is the error vector where each component is an integer. Itis assumed that its magnitude is limited to βππ β€ π β€ ππ’where ππ and ππ’ are positive integers. The received codewordis cβ² = c+ π = [x p] + π = [y pβ²]. y = (π¦1, . . . , π¦π) isthe received message part in the received codeword. At first,modular πβ² is performed on the received message y, which issimilar to the encoding process. We then have π = y mod πβ².The received π-ary parity part pβ² and π need to be converteda π-ary codeword to be decoded by the base error correctioncodes. We can correct π‘ symmetric errors for the codewordwith π and the parity code, and the corrected πβ²-ary messagecan be obtained if the π‘ errors are within the (ππ’, ππ) bound.We can then estimate the error codeword πβ² by the differencebetween the corrected message code and the received messagecode. However, the estimated error may exceed the error bounddue to the modular operation, although the error codeword iswithin the (ππ’, ππ) bound, Fortunately, the estimated error canbe recovered by a simple shift. The procedure is described asfollows.
We define x,y, and π by a transmitted codeword, a received
Fig. 3. Adjustment of estimated error to be in the bound (ππ’ = ππ isassumed).
codeword, and a (ππ’, ππ) error codeword, respectively.
y mod πβ² = (x+ π) mod πβ²
= (x mod πβ² + π mod πβ²) mod πβ²
= (πΌ + π) mod πβ²
(πΌ = x mod πβ²,π = y mod πβ², π = π mod πβ²)
(2)
Since the modular operation with a negative integer may beconfusing, we deal with the downward error and the upwarderror separately.Case I. downward error. if ππ = πβ (βππ β€ πβ β€ β1)
ππ = (ππ + ππ) mod πβ² = (ππ + πβ + πβ²) mod πβ²
=
{ππ + πβ + πβ² (0 < ππ + πβ + πβ² < πβ²)ππ + πβ (πβ² β€ ππ + πβ + πβ² < 2πβ²)
(3)
Case II. upward error. if ππ = πβ (0 β€ πβ β€ ππ’)
ππ = (ππ + ππ) mod πβ² = (ππ + πβ) mod πβ²
=
{ππ + πβ (0 < ππ + πβ < πβ²)ππ + πβ β πβ² (πβ² β€ ππ + πβ < 2πβ²)
(4)
It was assumed that πΌ β Ξ© and Ξ© corrects π‘ symmetricerrors. Therefore, π‘ symmetric errors of π can be corrected.πβ² is the corrected codeword of π, so πβ² = πΌ. The estimatederror πβ²π is ππ β πβ²π. As for case I with downward error, wehave πβ²π = πβ + πβ² or πβ. As for case II with upward error, wehave πβ²π = πβ or πβ β π. Therefore, four types of error showup in the estimated error codeword, and βπβ² β€ πβ²π < πβ² β 1.The original error is in the range of βππ β€ π β€ ππ’, but theestimated error may exceed the bound (range). However, thefour types of error have their own distinct ranges as βπβ² β€πβ β πβ² β€ βππ β 1, βππ β€ πβ β€ β1, 0 β€ πβ β€ πβ² β ππ β 1,and πβ² β ππ β€ πβ + πβ² β€ πβ² β 1 where we used only πβ² andππ (ππ’ = πβ² β ππ β 1). Thus, we can distinguish them with therange, and recover the estimated error by adding or subtractingπβ². The adjustment of estimated error is illustrated in Fig. 3.
The encoding and the decoding algorithms of bidirectionallimited magnitude error correction codes (BLM-ECC) aredescribed as follows.
Bidirectional Limited Magnitude Error CorrectionCodes Algorithmπ¬ππππ πππ
(Initialization) π-ary message codeword xπβ² = ππ’ + ππ + 1, where ππ’ and ππ are upward anddownward error magnitude bounds, respectively.
1) Get the remainder of message x by mod πβ².πΌ = x mod πβ².
98
Fig. 4. BLM-ECC encoding, decoding process example.
2) Generate the π-ary parity codes for πΌ using π-arybase error correction codes and convert the codes toπ-ary codes, p (π β₯ π β₯ πβ²).
3) A systematic encoded codeword is c = [x p]. Writethe codeword to the π-ary memory cell.
π«ππππ πππ
(Initialization) Received codeword cβ² = [x p] + π= [y pβ²], where π = (π1, . . . , ππ) is the error vectorwith each integer component within (ππ’, ππ), y is thereceived message code, and pβ² is the received paritycode.
1) Get the remainder of received message mod πβ².π = y mod πβ².
2) Convert π and pβ² to π-ary codes for base ECCdecoding. Corrected πβ²-ary message is πβ².
3) Estimate the error by πβ² = π β πβ², πβ² =(πβ²1, . . . , π
β²π) is estimated error of the message.
4) If the estimated error exceeds the bound (πβ²π > ππ’ orπβ²π < βππ), let πβ²π = πβ²π + πβ² or πβ²π = πβ²π β πβ² to be inthe range of βππ β€ πβ²π β€ ππ’.
5) The corrected message xβ² is obtained by xβ² = yβπβ².The example of BLM-ECC encoding and decoding process
is illustrated in Fig. 4.
D. Discussion of the Codes
The number of codewords of π in (1) is bounded by thefollowing inequalities.β π
ππ’ + ππ + 1
βπβ β£Ξ©β£ β€ β£πβ£ β€
β π
ππ’ + ππ + 1
βπβ β£Ξ©β£ (5)
πΌ = (π1, . . . , ππ) is considered to be a codeword of Ξ© in(1). The codewords of π can be obtained by replacing eachπ by the element of the set Ξ = {πβ£π mod πβ² = ππ, π β{0, 1, . . . , π β 1}}. The size of Ξ is βπ/πβ²βπ if ππ < (π mod
πβ²), and βπ/πβ²βπ otherwise. In (5), the upper bound is β£πβ£ β€βπ
ππ’+ππ+1
βπβ β£Ξ©β£. Ξ© is πβ²-ary, and can correct π‘ symmetric
errors, and we have β£Ξ©β£β βπ‘π=0
(ππ
)(πβ²β1)π β€ πβ²π. Substituting
the latter into the former, the following is obtained. If π is a(ππ, ππ’) limited-magnitude π‘-error correcting codes of length πover an alphabet of size π, we have
β£πβ£ β€ ππβπ‘π=0
(ππ
)(ππ + ππ’)π
. (6)
The code rate of the BLM-ECC depends on the π-ary baseerror correction codes. If (2πβ1, 2πβ1β2π‘) Reed-Solomon(RS) codes are used as the π-ary base ECC, a code rate is givenby
π π΅πΏπ β€ (2π β 1β 2π‘)log2π
(2π β 1β 2π‘)log2π + 2π‘log2πβ² . (7)
The RS codes encodes the π-ary message with π = 2π.The equality can be achieved when log2π, log2π, log2πβ² arepositive integers with π β₯ π β₯ πβ², and log2π is a multiple ofLCM(log2π,log2πβ²). The code rate of (2π β 1, 2π β 1 β 2π‘)
Reed-Solomon (RS) codes is π π π β€ (2πβ1β2π‘)(2πβ1) . If π > πβ²,
the parity size of BLM-ECC is reduced than the RS codes,we have π π΅πΏπ β₯ π π π . If most errors are in the (ππ’, ππ)bound, the BLM-ECC (based on RS) can have better errorrate performance than the conventional RS codes with equalcode rate when π > πβ², which is verified in simulations.
IV. SIMULATION RESULTS
A. MLC Flash Memory Interference and Simulation Model
We simulated the bit error rate performance of the proposedbidirectional limited magnitude error correction codes (BLM-ECC). In simulations, the multi-level cell model of flash mem-ories with interference is used. The cell to cell interferencemodel depends on the program order, the page architecture,and the conventional LSB/MSB techniques, and these factorsare considered in simulations. To simulate flash memorieswith interference, we need not only an interference model,but also a threshold voltage distribution model. To write dataonto flash memories inherently involves errors due to the noisein the physical process. We can approximate the cell thresholdvoltage distribution as Gaussian. It should be noted thatthe empirical distribution obtained from measurements is notexactly a Gaussian distribution, but rather a kind of truncatedGaussian distribution. An 8-level flash memory model (3 bitsin a cell) is used with an equal noise distribution model.The equal noise distribution model assumes that each levelhas equal threshold voltage distribution which is Gaussian.The hard-decision reference voltages for reading is alreadynear-optimal in practical systems. We use both original hard-decision reference voltages and the adjusted near-optimalreference voltages in the Fig. 5 and 6 simulations in order toverify the performance of asymmetric error correction codes.(2π’, 1π) BLM-ECC and 1π΄1π asymmetric error correctioncode simulations are performed. 1π΄1π means systematicasymmetric error correction codes with π‘ = 1 and π = 1 as
99
0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.9410
β5
10β4
10β3
10β2
Code Rate
BE
R
No ECC (63,63β2t) RSAsymmetric ECC (1A1M)(2u,1d) BLMβECC (Proposed)
Fig. 5. BER plots with original πππππ (asymmetric channel).
defined in [2]. The code has equal correction capability com-pared to the (1π’, 0π) BLM-ECC if the base error correctioncodes are the same. We use the Reed-Solomon codes as theπ-ary base error correction codes in the 1π΄1π asymmetriccodes and the (2π’, 1π) BLM-ECC. In the (2π’, 1π) BLM-ECC,we use πβ² = 22, π = 23 and π = 26 β 1.
B. BER Performance
Fig. 5 shows the BER performance of the BLM-ECCand the asymmetric error correction codes with the originalhard-decision reference voltage(πππππ). The code rate of thehorizontal axis is determined as π‘ changes. The βNo ECCβ plotshows the bit error rate without any error correction codes,and the plot is flat. In other ECC plots, as the code ratedecreases, π‘ gets larger and the bit error rate gets lower. Atthe high code rate range, 1π΄1π asymmetric error correctioncodes show the best performance. Because most errors (over99%) are upward when original πππππ is used as the hard-decision reference voltage. However at the low code rate range,1π΄1π asymmetric ECC cannot correct the out of bounderrors, especially downward errors. Therefore, the plot is flatat lower code rate than 0.88, and the performance of BLM-ECC has better than asymmetric error correction codes atthe range. The (2π’, 1π) BLM-ECC has better performancethan the original RS codes at all range because the BLM-ECC parity size is reduced. In the Fig. 6, the hard-decisionreference voltage (πππππ) is already adjusted based on thethe average interference quantity with writing random data.The adjusted hard-decision reference voltage compensates theupward ππ‘β shift by the cell to cell interference, which makesthe errors more symmetric rather than asymmetric. Therefore,the performance of asymmetric error correction codes getsworse. The (2π’, 1π) BLM-ECC algorithm shows the best BERperformance at all code rate, and it is shown that the proposedalgorithm is efficient for the MLC flash memory model.
0.88 0.9 0.92 0.94 0.96 0.98
10β6
10β5
10β4
10β3
Code Rate
BE
R
No ECC (63,63β2t) RSAsymmetric ECC (1A1M)(2u,1d) BLMβECC(Proposed)
Fig. 6. BER plots with adjusted near optimal πππππ (bidirectional channel).
V. CONCLUSIONS
To reduce errors in MLC flash memories, we proposenew error correction codes by taking advantage of limitedmagnitude of errors. Key advantages of the proposed methodare that it can reduce the parity size, and that it has better errorcorrection performance than the conventional error correctioncodes when the code rate is equal. Practical issues of encodingand decoding for the proposed method are discussed, andefficient methods are proposed. We discussed the potentialproblems of existing limited-magnitude error correction codes,and show that proposed code is more suitable to practical flashmemory devices in simulations.
ACKNOWLEDGMENT
This research was supported in part by Basic ScienceResearch Program (2010-0013397) and Mid-career ResearcherProgram (2010-0027155) through the NRF funded by theMEST, the KETEP grant funded by the Ministry of KnowledgeEconomy (No. 2011T100100151), the INMAC, and BK21.
REFERENCES
[1] Jae-Duk Lee, Sung-Hoi Hur, and Jung-Dal Choi, βEffects of floating-gate interference on NAND flash memory cell operation,β IEEE ElectronDevice Letters, vol. 23, no. 5, pp. 264-266, May 2002.
[2] Y. Cassuto, M. Schwartz, V. Bohossian, and J. Bruck, βCodes forasymmetric limited-magnitude errors with application to multi-level flashmemories, IEEE Trans. Inform. Theory, vol. 56, no. 4, pp. 1582-1595,Apr. 2010.
[3] K.-T. Park, et al., βA zeroing cell-to-cell interference page architecturewith temporary LSB storing and parallel MSB program scheme for MLCNAND flash memories,β IEEE J. Solid-State Circuits, vol. 40, pp. 919-928, Apr. 2008.
[4] T. Klove, B. Bose, and N. Elarief, βSystematic, single limited magnitudeerror correcting codes for flash memories,β IEEE Trans.Inform. Theory,vol. 57, no. 7, pp.4477-4487, July 2011.
[5] G. Dong, S. Li, and T. Zhang, βUsing data post-compensation andpre-distortion to tolerate cell-to-cell interference in MLC NAND flashmemory,β IEEE Transactions on Circuits and Systems, vol. 57, issue 10,pp. 2718-2728, 2010.
[6] Myeongwoon Jeon, Kyungchul Kim, Sungkyu Chung, Seungjae Chung,Beomju Shin, Jungwoo Lee, βAdaptive interference mitigation for mul-tilevel flash memory devicesβ, IEICE Trans. Fund. Electron. Comm.Comput. Sci., vol. E94-A, no. 11, pp.2453-2457, Nov. 2011.
100