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
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𝑞 ′ )
′
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 𝑘 (𝑙𝑑 + 𝑙𝑢 )
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