Anda di halaman 1dari 5

ISITA2012, Honolulu, Hawaii, USA, October 28-31, 2012

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: ifindme@wspl.snu.ac.kr and junglee@snu.ac.kr

Abstract—NAND multi-level cell (MLC) flash memories are signing channel codes. [4] introduced the symmetric limited
widely used due to low cost and high capacity. However, the error correction codes which can correct only one single error,
increased number of levels in MLC results in larger interference so it is not practical for flash memories.
and errors. The errors in MLC flash memories tend to be
directional and limited-magnitude. Many related works focus on In this paper, we introduce bidirectional limited-magnitude
asymmetric errors, but bidirectional errors also occur because error correction codes (BLM-ECC) which has low redundancy
of the bidirectional interference and the adjustment of the hard- for flash memory applications. The proposed code extends
decision reference voltages. To take advantage of the charac- the technique of the asymmetric error correction codes [2] to
teristics, we propose 𝑡 bidirectional (𝑙𝑢 , 𝑙𝑑 ) limited-magnitude the bidirectional error correction codes. The code treats both
error correction codes, which can reduce errors more effectively.
The proposed code is systematic, and can correct 𝑡 bidirectional upward and downward errors when the error magnitude of
errors with upward and downward magnitude of 𝑙𝑢 and 𝑙𝑑 , each direction can be different. The maximum magnitudes
respectively. The proposed method is advantageous in that the of the upward error and downward error are 𝑙𝑢 and 𝑙𝑑 ,
parity size is reduced, and the error rate performance is better respectively. Bidirectional errors can be corrected using non-
than conventional error correction codes when the code rate is binary conventional error correction codes. With an 8-level cell
equal.
model, the proposed code is simulated to check the error rate
performance. The simulation result shows that the bit error
I. I NTRODUCTION
rate performance of the proposed algorithm is better than the
NAND flash memory has been used widely because of its conventional block codes and the asymmetric error correction
non-volatility and portability. Recently, multi level cell (MLC) codes when the code rates are equal. In the following section,
flash memories have been studied for improving memory the shift of the threshold voltage and the bidirectional limited-
capacity. Multi level cell flash memories use more than 2 magnitude errors are discussed. We then propose new efficient
levels, and store two or more bits in a single cell. However, error correcting codes for MLC flash memories in Section
error increases rapidly with the number of levels in a cell III. Simulation results of the new algorithm are presented in
because of the interference caused by cell-to-cell coupling, Section IV. Finally, we conclude the paper in Section V.
temperature, disturbance, and so on. MLC flash memory errors
tend to be directional and have limited-magnitude. Various II. MLC F LASH M EMORY I NTERFERENCE AND
factors of interference lead to the threshold voltage (𝑉𝑡ℎ ) shift B IDIRECTIONAL L IMITED - MAGNITUDE E RRORS
of the cells, and especially dominant factors such as cell to A cell of the NAND flash memory is a floating gate
cell interference and over-programming increase 𝑉𝑡ℎ [1]. transistor, and its threshold voltage can be programmed by
Most noise and interference have limited amplitude, and injecting certain amount of charges into the floating gate [5].
most errors occur between adjacent levels. The conventional The threshold voltage (𝑉𝑡ℎ ) is used to distinguish data levels
error correction codes can be inefficient for MLC flash in MLC memory. Several factors may change the distribution
memory because these codes are constructed for all possible of the floating-gate threshold-voltage. These factors include
error types where error magnitude and direction are random. cell to cell interference, cell leakage, temperature, program
Therefore, we can use the error characteristics of MLC flash voltage (𝑉𝑝𝑔𝑚 ) disturbance, the pass voltage (𝑉𝑝𝑎𝑠𝑠 ) applied to
memories to construct efficient error correction codes. For unselected word-lines, etc [1]. One of the dominant factors is
flash memories, the error correction codes for asymmetric the cell to cell interference, which is caused by the 𝑉𝑡ℎ change
channels with limited-magnitude error were introduced in [2]. of the neighbor cells in the programming (writing) operation.
Although the inter-cell interference leads to upward 𝑉𝑡ℎ shift If the data of neighbor cells change, the cell to cell coupling
mostly, there are also bidirectional or downward interference interference occurs. In this case, the 𝑉𝑡ℎ shift is known to
effects [3]. The hard-decision reference voltages (𝑉𝑟𝑒𝑎𝑑 ) for be upward (unidirectional). The cell to cell interference is
reading cell data is determined based on the 𝑉𝑡ℎ distribution approximately proportional to the voltage change of neighbor
considering the interference effect, so it is already near op- cells in the programming operation, but it is also affected by
timal, which results in a symmetric (bidirectional channel). the structure of flash memories, the program order, and the
Therefore, bidirectional errors need to be considered in de- number of levels (MLC) in a cell. The quantitative interference

Copyright 2012 IEICE 96


Fig. 2. Various limited magnitude error types and (𝑙𝑢 , 𝑙𝑑 ) bidirectional error
channel.

in (b). However, little is known of the bidirectional limited


magnitude error in (c). Fig. 2 (d) show the 𝑙𝑢 = 2, 𝑙𝑑 = 1 bidi-
rectional error channel in a 6-ary cell. The threshold voltage
Fig. 1. 𝑉𝑡ℎ shift and bidirectional errors with adjusted 𝑉𝑟𝑒𝑎𝑑 .
(𝑉𝑡ℎ ) of the cell is not integer, but it is assumed that the cell
data and the error values are integer. Since we do not know the
exact threshold voltage or the interference voltage by memory
can be estimated by measurements and simulations [6]. For
reading operation, only the integer decision after hard-decision
these asymmetric interference factors, the error correction
is possible. 𝑡 − (𝑙𝑢 , 𝑙𝑑 ) BLM-ECC can correct the codeword
codes for the asymmetric channel can be useful [2]. Although
with 𝑡 errors of (𝑙𝑢 , 𝑙𝑑 ) magnitude. The code construction is
the cell-to-cell interference which leads to upward errors are
as follows. Let Ω be a 𝑞 ′ -ary code and 𝑞 ′ = 𝑙𝑢 + 𝑙𝑑 + 1. The
the dominant factor in MLC flash memories, there are also
𝑞-ary code 𝒞 (𝑞 > 𝑞 ′ ) is defined as
bidirectional (random-telegraph noise) or downward (retention
noise) interference [3]. The hard-decision reference voltages 𝒞 = {c = (𝑐1 , ..., 𝑐𝑛 ) ∣ c mod (𝑙𝑢 + 𝑙𝑑 + 1) ∈ Ω} (1)
for reading flash memory cells is determined based on the
𝑉𝑡ℎ distribution after the cell-to-cell interference, not before 𝒞 correct 𝑡 bidirectional (𝑙𝑢 , 𝑙𝑑 ) limited-magnitude errors if
the cell-to-cell interference, which means the hard-decision Ω corrects 𝑡 symmetric errors. The process of encoding and
reference voltages for reading is already near optimal. Fig. 1 decoding of the proposed codes are described as follows.
illustrates the threshold voltage shift, and the adjusted 𝑉𝑟𝑒𝑎𝑑 .
After adjusting 𝑉𝑟𝑒𝑎𝑑 to be near optimal, the number of B. Encoding
errors decreases, but the number of downward errors increases. Let x = {𝑥1 , . . . , 𝑥𝑘 } be a 𝑞-ary message codeword, and
Therefore, bidirectional errors should be considered in order 𝑞-ary multi-level cell memory is assumed to be used. We get
to improve the BER performance. Even if the errors are the 𝑞 ′ -ary remainder of the 𝑞-ary message x by modular 𝑞 ′
bidirectional, the magnitude of the errors is still limited. operation (𝑞 ′ = 𝑙𝑢 + 𝑙𝑑 + 1, 𝑞 ′ < 𝑞). The 𝑞 ′ -ary remainder
The magnitudes of downward error and upward error can be codes are called base codes. In order to encode by the base
different. The upward error magnitude can be larger than the codes, conventional 𝑝-ary 𝑡 symmetric error correction codes
downward magnitude in general since the dominant interfer- are used, which is called base error correction codes. With
ence effect is still upward even if the optimal 𝑉𝑟𝑒𝑎𝑑 is used x mod 𝑞 ′ codeword, the 𝑝-ary parity codes can be obtained
as in Fig. 1. We will discuss the bidirectional and the limited- using base error correction codes. A 𝑝-ary parity codeword
magnitude error correction codes in the next section. needs to be converted to a 𝑞-ary codeword p = {𝑝1 , . . . , 𝑝𝑟 }
in order to be stored in a 𝑞-ary memory cell. The systematic
III. B IDIRECTIONAL L IMITED M AGNITUDE E RROR
encoded codeword is then c = [x p] = {𝑐1 , 𝑐2 , . . . , 𝑐𝑛 } and
C ORRECTION C ODES
𝑛 = 𝑘 + 𝑟. ’Systematic’ means that the original message part
A. Bidirectional Limited Magnitude Error Correction Codes and the parity part are separated in the encoded codeword.
As described in the previous section, bidirectional errors Since 𝑞 > 𝑞 ′ , the base code size can be reduced than
should be considered in the flash memories. We propose the the original message, and the parity code size can be also
’bidirectional limited magnitude error correction code (BLM- reduced. Therefore, the code rate of the codes is larger than
ECC)’ which deals with both upward and downward errors. In conventional error correction, and this is the key advantage of
(𝑙𝑢 , 𝑙𝑑 ) BLM-ECC, 𝑙𝑢 and 𝑙𝑑 represent the maximum magni- the proposed code.
tudes of the upward error and the downward error, respectively. However, the above encoding method can cause the error
Fig. 2 (a), (b), (c) illustrate the difference of various error count mismatch problem. The problem means one erratic cell
types. [2] discuss the asymmetric limited magnitude error in usually causes two or more errors. There are two kinds of the
(a), and [4] consider the symmetric limited magnitude errors problem, 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 problem
first. 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. Fig. 3. Adjustment of estimated error to be in the bound (𝑙𝑢 = 𝑙𝑑 is
assumed).
Note that 𝑎𝑏 means 𝑏-ary 𝑎 value for convenience. A message
code 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 codes codeword, and a (𝑙𝑢 , 𝑙𝑑 ) error codeword, respectively.
are used. Two bits are different between 012 and 102 , and one
cell error in the message cannot be corrected by 𝑡 = 1 binary y mod 𝑞 ′ = (x + 𝝐) mod 𝑞 ′
base error correction codes in this example. = (x mod 𝑞 ′ + 𝝐 mod 𝑞 ′ ) mod 𝑞 ′
(2)
Next, let us describe the parity code writing problem when = (𝜼 + 𝝃) mod 𝑞 ′
𝑝 < 𝑞, 𝑙 ≥ 2. The proposed codes are systematic codes,
(𝜼 = x mod 𝑞 ′ , 𝝋 = y mod 𝑞 ′ , 𝝃 = 𝝐 mod 𝑞 ′ )
and a 𝑞-ary message is written in a 𝑞-ary cell. However, 𝑝-
ary base error correction codes are used, and a 𝑝-ary parity Since the modular operation with a negative integer may be
codeword needs to be written in a 𝑞-ary cell. For example, confusing, we deal with the downward error and the upward
𝑞 = 16 and 𝑝 = 4, a parity code 134 is written in the cell error separately.
as 1 × 41 + 3 × 40 = 716 . If 𝑙 = 2 error is added to the Case I. downward error. if 𝜖𝑖 = 𝜖↓ (−𝑙𝑑 ≤ 𝜖↓ ≤ −1)
cell, the cell value becomes ’916 ’ which is ’214 ’. Therefore,
𝜑𝑖 = (𝜂𝑖 + 𝜉𝑖 ) mod 𝑞 ′ = (𝜂𝑖 + 𝜖↓ + 𝑞 ′ ) mod 𝑞 ′
one 𝑞-ary cell parity code error with 𝑙 = 2 causes two 𝑝-ary {
parity code errors. This problem can be avoided when 𝑝 ≥ 𝑞. 𝜂𝑖 + 𝜖↓ + 𝑞 ′ (0 < 𝜂𝑖 + 𝜖↓ + 𝑞 ′ < 𝑞 ′ ) (3)
=
Consequently, 𝑝 should be larger than 𝑞 and 𝑞 ′ (𝑝 ≥ 𝑞 ≥ 𝑞 ′ ) 𝜂𝑖 + 𝜖↓ (𝑞 ′ ≤ 𝜂𝑖 + 𝜖↓ + 𝑞 ′ < 2𝑞 ′ )
to avoid the error count mismatch problem. Thus, non-binary Case II. upward error. if 𝜖𝑖 = 𝜖↑ (0 ≤ 𝜖↑ ≤ 𝑙𝑢 )
𝑝-ary error correction codes such as Reed-Solomon(RS) codes
can be used. In order to achieve the maximum code rate, 𝑝, 𝑞, 𝜑𝑖 = (𝜂𝑖 + 𝜉𝑖 ) mod 𝑞 ′ = (𝜂𝑖 + 𝜖↑ ) mod 𝑞 ′
{
and 𝑞 ′ are two’s power of 𝑘 (𝑘 is integer), and log2 𝑝 is a 𝜂 𝑖 + 𝜖↑ (0 < 𝜂𝑖 + 𝜖↑ < 𝑞 ′ ) (4)
multiple of LCM(log2 𝑞,log2 𝑞 ′ ). =
𝜂𝑖 + 𝜖↑ − 𝑞 (𝑞 ′ ≤ 𝜂𝑖 + 𝜖↑ < 2𝑞 ′ )

It was assumed that 𝜼 ∈ Ω and Ω corrects 𝑡 symmetric


errors. Therefore, 𝑡 symmetric errors of 𝝋 can be corrected.
C. Decoding 𝝋′ is the corrected codeword of 𝝋, so 𝝋′ = 𝜼. The estimated
error 𝜖′𝑖 is 𝜑𝑖 − 𝜑′𝑖 . As for case I with downward error, we
Decoding of the proposed code is also based on the modular have 𝜖′𝑖 = 𝜖↓ + 𝑞 ′ or 𝜖↓ . As for case II with upward error, we
𝑞 ′ operation, and 𝑝-ary base error correcting codes. c′ = have 𝜖′𝑖 = 𝜖↑ or 𝜖↑ − 𝑞. Therefore, four types of error show
(𝑐′1 , . . . , 𝑐′𝑛 ) is the received codeword, and 𝝐 = (𝜖1 , . . . , 𝜖𝑛 ) up in the estimated error codeword, and −𝑞 ′ ≤ 𝜖′𝑖 < 𝑞 ′ − 1.
is the error vector where each component is an integer. It The original error is in the range of −𝑙𝑑 ≤ 𝜖 ≤ 𝑙𝑢 , but the
is assumed that its magnitude is limited to −𝑙𝑑 ≤ 𝜖 ≤ 𝑙𝑢 estimated error may exceed the bound (range). However, the
where 𝑙𝑑 and 𝑙𝑢 are positive integers. The received codeword four types of error have their own distinct ranges as −𝑞 ′ ≤
is c′ = c + 𝝐 = [x p] + 𝝐 = [y p′ ]. y = (𝑦1 , . . . , 𝑦𝑘 ) is 𝜖↑ − 𝑞 ′ ≤ −𝑙𝑑 − 1, −𝑙𝑑 ≤ 𝜖↓ ≤ −1, 0 ≤ 𝜖↑ ≤ 𝑞 ′ − 𝑙𝑑 − 1,
the received message part in the received codeword. At first, and 𝑞 ′ − 𝑙𝑑 ≤ 𝜖↓ + 𝑞 ′ ≤ 𝑞 ′ − 1 where we used only 𝑞 ′ and
modular 𝑞 ′ is performed on the received message y, which is 𝑙𝑑 (𝑙𝑢 = 𝑞 ′ − 𝑙𝑑 − 1). Thus, we can distinguish them with the
similar to the encoding process. We then have 𝝋 = y mod 𝑞 ′ . range, and recover the estimated error by adding or subtracting
The received 𝑞-ary parity part p′ and 𝝋 need to be converted 𝑞 ′ . The adjustment of estimated error is illustrated in Fig. 3.
a 𝑝-ary codeword to be decoded by the base error correction The encoding and the decoding algorithms of bidirectional
codes. We can correct 𝑡 symmetric errors for the codeword limited magnitude error correction codes (BLM-ECC) are
with 𝝋 and the parity code, and the corrected 𝑞 ′ -ary message described as follows.
can be obtained if the 𝑡 errors are within the (𝑙𝑢 , 𝑙𝑑 ) bound.
We can then estimate the error codeword 𝝐′ by the difference Bidirectional Limited Magnitude Error Correction
between the corrected message code and the received message Codes Algorithm
code. However, the estimated error may exceed the error bound 𝑬𝒏𝒄𝒐𝒅𝒊𝒏𝒈
due to the modular operation, although the error codeword is (Initialization) 𝑞-ary message codeword x
within the (𝑙𝑢 , 𝑙𝑑 ) bound, Fortunately, the estimated error can 𝑞 ′ = 𝑙𝑢 + 𝑙𝑑 + 1, where 𝑙𝑢 and 𝑙𝑑 are upward and
be recovered by a simple shift. The procedure is described as downward error magnitude bounds, respectively.
follows. 1) Get the remainder of message x by mod 𝑞 ′ .
We define x, y, and 𝝐 by a transmitted codeword, a received 𝜼 = x mod 𝑞 ′ .

98
𝑞 ′ ), 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
𝑞𝑛
∣𝒞∣ ≤ ∑𝑡 (𝑛 ) . (6)
𝑘
𝑘=0 𝑘 (𝑙𝑑 + 𝑙𝑢 )

The code rate of the BLM-ECC depends on the 𝑝-ary base


error correction codes. If (2𝑚 − 1, 2𝑚 − 1 − 2𝑡) Reed-Solomon
(RS) codes are used as the 𝑝-ary base ECC, a code rate is given
by
(2𝑚 − 1 − 2𝑡)log2 𝑞
𝑅𝐵𝐿𝑀 ≤ 𝑚 . (7)
(2 − 1 − 2𝑡)log2 𝑞 + 2𝑡log2 𝑞 ′
The RS codes encodes the 𝑝-ary message with 𝑝 = 2𝑚 .
The equality can be achieved when log2 𝑝, log2 𝑞, log2 𝑞 ′ are
positive integers with 𝑝 ≥ 𝑞 ≥ 𝑞 ′ , and log2 𝑝 is a multiple of
Fig. 4. BLM-ECC encoding, decoding process example. LCM(log2 𝑞,log2 𝑞 ′ ). The code rate of (2𝑚𝑚 − 1, 2𝑚 − 1 − 2𝑡)
Reed-Solomon (RS) codes is 𝑅𝑅𝑆 ≤ (2(2𝑚 −1−2𝑡)
−1) . If 𝑞 > 𝑞 ,

the parity size of BLM-ECC is reduced than the RS codes,


2) Generate the 𝑝-ary parity codes for 𝜼 using 𝑝-ary we have 𝑅𝐵𝐿𝑀 ≥ 𝑅𝑅𝑆 . If most errors are in the (𝑙𝑢 , 𝑙𝑑 )
base error correction codes and convert the codes to bound, the BLM-ECC (based on RS) can have better error
𝑞-ary codes, p (𝑝 ≥ 𝑞 ≥ 𝑞 ′ ). rate performance than the conventional RS codes with equal
3) A systematic encoded codeword is c = [x p]. Write code rate when 𝑞 > 𝑞 ′ , which is verified in simulations.
the codeword to the 𝑞-ary memory cell.
𝑫𝒆𝒄𝒐𝒅𝒊𝒏𝒈 IV. S IMULATION R ESULTS
(Initialization) Received codeword c′ = [x p] + 𝝐 A. MLC Flash Memory Interference and Simulation Model
= [y p′ ], where 𝝐 = (𝜖1 , . . . , 𝜖𝑛 ) is the error vector
We simulated the bit error rate performance of the proposed
with each integer component within (𝑙𝑢 , 𝑙𝑑 ), y is the
bidirectional limited magnitude error correction codes (BLM-
received message code, and p′ is the received parity
ECC). In simulations, the multi-level cell model of flash mem-
code.
ories with interference is used. The cell to cell interference
1) Get the remainder of received message mod 𝑞 ′ .
model depends on the program order, the page architecture,
𝝋 = y mod 𝑞 ′ .
and the conventional LSB/MSB techniques, and these factors
2) Convert 𝝋 and p′ to 𝑝-ary codes for base ECC
are considered in simulations. To simulate flash memories
decoding. Corrected 𝑞 ′ -ary message is 𝝋′ .
with interference, we need not only an interference model,
3) Estimate the error by 𝝐′ = 𝝋 − 𝝋′ , 𝝐′ =
but also a threshold voltage distribution model. To write data
(𝜖′1 , . . . , 𝜖′𝑘 ) is estimated error of the message.
onto flash memories inherently involves errors due to the noise
4) If the estimated error exceeds the bound (𝜖′𝑖 > 𝑙𝑢 or
in the physical process. We can approximate the cell threshold
𝜖′𝑖 < −𝑙𝑑 ), let 𝜖′𝑖 = 𝜖′𝑖 + 𝑞 ′ or 𝜖′𝑖 = 𝜖′𝑖 − 𝑞 ′ to be in
voltage distribution as Gaussian. It should be noted that
the range of −𝑙𝑑 ≤ 𝜖′𝑖 ≤ 𝑙𝑢 .
the empirical distribution obtained from measurements is not
5) The corrected message x′ is obtained by x′ = y−𝝐′ .
exactly a Gaussian distribution, but rather a kind of truncated
The example of BLM-ECC encoding and decoding process Gaussian distribution. An 8-level flash memory model (3 bits
is illustrated in Fig. 4. in a cell) is used with an equal noise distribution model.
D. Discussion of the Codes The equal noise distribution model assumes that each level
The number of codewords of 𝒞 in (1) is bounded by the has equal threshold voltage distribution which is Gaussian.
following inequalities. The hard-decision reference voltages for reading is already
⌊ 𝑞 ⌋𝑛 ⌈ 𝑞 ⌉𝑛 near-optimal in practical systems. We use both original hard-
⋅ ∣Ω∣ ≤ ∣𝒞∣ ≤ ⋅ ∣Ω∣ (5) decision reference voltages and the adjusted near-optimal
𝑙𝑢 + 𝑙 𝑑 + 1 𝑙𝑢 + 𝑙 𝑑 + 1 reference voltages in the Fig. 5 and 6 simulations in order to
𝜼 = (𝜂1 , . . . , 𝜂𝑛 ) is considered to be a codeword of Ω in verify the performance of asymmetric error correction codes.
(1). The codewords of 𝒞 can be obtained by replacing each (2𝑢 , 1𝑑 ) BLM-ECC and 1𝐴1𝑀 asymmetric error correction
𝜂 by the element of the set Λ = {𝜆∣𝜆 mod 𝑞 ′ = 𝜂𝑖 , 𝜆 ∈ code simulations are performed. 1𝐴1𝑀 means systematic
{0, 1, . . . , 𝑞 − 1}}. The size of Λ is ⌈𝑞/𝑞 ′ ⌉𝑛 if 𝜂𝑖 < (𝑞 mod asymmetric error correction codes with 𝑡 = 1 and 𝑙 = 1 as

99
−2
10
−3
10
No ECC
(63,63−2t) RS No ECC
Asymmetric ECC (1A1M) (63,63−2t) RS
(2u,1d) BLM−ECC (Proposed) −4 Asymmetric ECC (1A1M)
−3
10 (2u,1d) BLM−ECC(Proposed)
10

BER
BER

−5
10

−4
10

−6
10

−5
10 0.88 0.9 0.92 0.94 0.96 0.98
0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94 Code Rate
Code Rate

Fig. 6. BER plots with adjusted near optimal 𝑉𝑟𝑒𝑎𝑑 (bidirectional channel).
Fig. 5. BER plots with original 𝑉𝑟𝑒𝑎𝑑 (asymmetric channel).

V. C ONCLUSIONS
defined in [2]. The code has equal correction capability com- To reduce errors in MLC flash memories, we propose
pared to the (1𝑢 , 0𝑑 ) BLM-ECC if the base error correction new error correction codes by taking advantage of limited
codes are the same. We use the Reed-Solomon codes as the magnitude of errors. Key advantages of the proposed method
𝑝-ary base error correction codes in the 1𝐴1𝑀 asymmetric are that it can reduce the parity size, and that it has better error
codes and the (2𝑢 , 1𝑑 ) BLM-ECC. In the (2𝑢 , 1𝑑 ) BLM-ECC, correction performance than the conventional error correction
we use 𝑞 ′ = 22 , 𝑞 = 23 and 𝑝 = 26 − 1. codes when the code rate is equal. Practical issues of encoding
and decoding for the proposed method are discussed, and
efficient methods are proposed. We discussed the potential
B. BER Performance problems of existing limited-magnitude error correction codes,
Fig. 5 shows the BER performance of the BLM-ECC and show that proposed code is more suitable to practical flash
and the asymmetric error correction codes with the original memory devices in simulations.
hard-decision reference voltage(𝑉𝑟𝑒𝑎𝑑 ). The code rate of the ACKNOWLEDGMENT
horizontal axis is determined as 𝑡 changes. The ’No ECC’ plot This research was supported in part by Basic Science
shows the bit error rate without any error correction codes, Research Program (2010-0013397) and Mid-career Researcher
and the plot is flat. In other ECC plots, as the code rate Program (2010-0027155) through the NRF funded by the
decreases, 𝑡 gets larger and the bit error rate gets lower. At MEST, the KETEP grant funded by the Ministry of Knowledge
the high code rate range, 1𝐴1𝑀 asymmetric error correction Economy (No. 2011T100100151), the INMAC, and BK21.
codes show the best performance. Because most errors (over
99%) are upward when original 𝑉𝑟𝑒𝑎𝑑 is used as the hard- R EFERENCES
decision reference voltage. However at the low code rate range, [1] Jae-Duk Lee, Sung-Hoi Hur, and Jung-Dal Choi, “Effects of floating-
1𝐴1𝑀 asymmetric ECC cannot correct the out of bound gate interference on NAND flash memory cell operation,” IEEE Electron
Device Letters, vol. 23, no. 5, pp. 264-266, May 2002.
errors, especially downward errors. Therefore, the plot is flat [2] Y. Cassuto, M. Schwartz, V. Bohossian, and J. Bruck, “Codes for
at lower code rate than 0.88, and the performance of BLM- asymmetric limited-magnitude errors with application to multi-level flash
ECC has better than asymmetric error correction codes at memories, IEEE Trans. Inform. Theory, vol. 56, no. 4, pp. 1582-1595,
Apr. 2010.
the range. The (2𝑢 , 1𝑑 ) BLM-ECC has better performance [3] K.-T. Park, et al., “A zeroing cell-to-cell interference page architecture
than the original RS codes at all range because the BLM- with temporary LSB storing and parallel MSB program scheme for MLC
ECC parity size is reduced. In the Fig. 6, the hard-decision NAND flash memories,” IEEE J. Solid-State Circuits, vol. 40, pp. 919-
928, Apr. 2008.
reference voltage (𝑉𝑟𝑒𝑎𝑑 ) is already adjusted based on the [4] T. Klove, B. Bose, and N. Elarief, “Systematic, single limited magnitude
the average interference quantity with writing random data. error correcting codes for flash memories,” IEEE Trans.Inform. Theory,
The adjusted hard-decision reference voltage compensates the vol. 57, no. 7, pp.4477-4487, July 2011.
[5] G. Dong, S. Li, and T. Zhang, “Using data post-compensation and
upward 𝑉𝑡ℎ shift by the cell to cell interference, which makes pre-distortion to tolerate cell-to-cell interference in MLC NAND flash
the errors more symmetric rather than asymmetric. Therefore, memory,” IEEE Transactions on Circuits and Systems, vol. 57, issue 10,
the performance of asymmetric error correction codes gets pp. 2718-2728, 2010.
[6] Myeongwoon Jeon, Kyungchul Kim, Sungkyu Chung, Seungjae Chung,
worse. The (2𝑢 , 1𝑑 ) BLM-ECC algorithm shows the best BER Beomju Shin, Jungwoo Lee, “Adaptive interference mitigation for mul-
performance at all code rate, and it is shown that the proposed tilevel flash memory devices”, IEICE Trans. Fund. Electron. Comm.
algorithm is efficient for the MLC flash memory model. Comput. Sci., vol. E94-A, no. 11, pp.2453-2457, Nov. 2011.

100

Anda mungkin juga menyukai