on codes correcting bidirectional limited-magnitude errors for flash memories

5
On Codes Correcting Bidirectional Limited-Magnitude Errors for Flash Memories Myeongwoon Jeon and Jungwoo Lee School of Electrical Engineering and Computer Sciences Seoul National University, Seoul 151-744, Korea Email: ifi[email protected] and [email protected] Abstractβ€”NAND multi-level cell (MLC) flash memories are widely used due to low cost and high capacity. However, the increased number of levels in MLC results in larger interference and errors. The errors in MLC flash memories tend to be directional and limited-magnitude. Many related works focus on asymmetric errors, but bidirectional errors also occur because of the bidirectional interference and the adjustment of the hard- decision reference voltages. To take advantage of the charac- teristics, we propose bidirectional (, ) limited-magnitude error correction codes, which can reduce errors more effectively. The proposed code is systematic, and can correct bidirectional errors with upward and downward magnitude of and , respectively. The proposed method is advantageous in that the parity size is reduced, and the error rate performance is better than conventional error correction codes when the code rate is equal. I. I NTRODUCTION NAND flash memory has been used widely because of its non-volatility and portability. Recently, multi level cell (MLC) flash memories have been studied for improving memory capacity. Multi level cell flash memories use more than 2 levels, and store two or more bits in a single cell. However, error increases rapidly with the number of levels in a cell because of the interference caused by cell-to-cell coupling, temperature, disturbance, and so on. MLC flash memory errors tend to be directional and have limited-magnitude. Various factors of interference lead to the threshold voltage ( β„Ž ) shift of the cells, and especially dominant factors such as cell to cell interference and over-programming increase β„Ž [1]. Most noise and interference have limited amplitude, and most errors occur between adjacent levels. The conventional error correction codes can be inefficient for MLC flash memory because these codes are constructed for all possible error types where error magnitude and direction are random. Therefore, we can use the error characteristics of MLC flash memories to construct efficient error correction codes. For flash memories, the error correction codes for asymmetric channels with limited-magnitude error were introduced in [2]. Although the inter-cell interference leads to upward β„Ž shift mostly, there are also bidirectional or downward interference effects [3]. The hard-decision reference voltages ( ) for reading cell data is determined based on the β„Ž distribution considering 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 limited error correction codes which can correct only one single error, so it is not practical for flash memories. In this paper, we introduce bidirectional limited-magnitude error correction codes (BLM-ECC) which has low redundancy for flash memory applications. The proposed code extends the technique of the asymmetric error correction codes [2] to the bidirectional error correction codes. The code treats both upward and downward errors when the error magnitude of each direction can be different. The maximum magnitudes of 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 cell model, the proposed code is simulated to check the error rate performance. The simulation result shows that the bit error rate performance of the proposed algorithm is better than the conventional block codes and the asymmetric error correction codes 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 efficient error correcting codes for MLC flash memories in Section III. Simulation results of the new algorithm are presented in Section IV. Finally, we conclude the paper in Section V. II. MLC FLASH MEMORY I NTERFERENCE AND BIDIRECTIONAL LIMITED- MAGNITUDE ERRORS A cell of the NAND flash memory is a floating gate transistor, and its threshold voltage can be programmed by injecting certain amount of charges into the floating gate [5]. The threshold voltage ( β„Ž ) is used to distinguish data levels in MLC memory. Several factors may change the distribution of the floating-gate threshold-voltage. These factors include cell to cell interference, cell leakage, temperature, program voltage ( ) disturbance, the pass voltage ( ) applied to unselected word-lines, etc [1]. One of the dominant factors is the cell to cell interference, which is caused by the β„Ž change of the neighbor cells in the programming (writing) operation. If the data of neighbor cells change, the cell to cell coupling interference occurs. In this case, the β„Ž shift is known to be upward (unidirectional). The cell to cell interference is approximately proportional to the voltage change of neighbor cells in the programming operation, but it is also affected by the structure of flash memories, the program order, and the number of levels (MLC) in a cell. The quantitative interference ISITA2012, Honolulu, Hawaii, USA, October 28-31, 2012 Copyright 2012 IEICE 96

Upload: thuy-dung-nguyen

Post on 17-Jan-2016

215 views

Category:

Documents


0 download

DESCRIPTION

dgdfgd

TRANSCRIPT

Page 1: On Codes Correcting Bidirectional Limited-magnitude Errors for Flash Memories

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

Page 2: On Codes Correcting Bidirectional Limited-magnitude Errors for Flash Memories

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

Page 3: On Codes Correcting Bidirectional Limited-magnitude Errors for Flash Memories

𝑙 β‰₯ 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

Page 4: On Codes Correcting Bidirectional Limited-magnitude Errors for Flash Memories

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

Page 5: On Codes Correcting Bidirectional Limited-magnitude Errors for Flash Memories

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