Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fig. 1.
I. I NTRODUCTION
NAND flash memory has been used widely because of
the various digital information storage demand and portable
features. Recently multi level cell (MLC) flash memory has
been studied for improving memory capacity. Multi level
cell flash memory makes cell voltages be various levels and
puts two or more bits into 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 [1]. The conventional error correcting
codes (ECC) have been used for solving these problems, but
the ECC redundancy becomes larger rapidly as increasing the
number of levels in a cell.
MLC flash memory errors have asymmetry and limitedmagnitude. Various factors of interference lead to the threshold
voltage ( ) shift of the cell, and especially dominant factors
such as cell to cell interference increase . In flash memories, noise and interference mostly have limited amplitude,
and most errors occur between adjacent levels. With the
assumption of limited error magnitude of 1, one erroneous cell
causes only one bit error if gray code is employed in MLC
flash memories. The conventional error correction codes can
be inefficient for MLC flash memory because these codes are
constructed for all possible error types that error magnitude
and direction are random. Therefore we can use these MLC
flash memory error features for constructing efficient error correction codes. Error correction codes for asymmetric channels
with limited-magnitude error [2] [3], and coding schemes for
flash memory devices have been developed recently.
In this paper, we propose two new error correcting codes
which are effective for the interference. We assume that there
is at most one error in each code block, and the codes are
designed to correct one single error in a code block. Because
29
Fig. 3.
Fig. 2. Interference model based on parasitic capacitances in a NAND Flash
array.
by = (1 , 2 , , ) and = (1 , 2 , , ). The
codewords can be modified by a modulus operation, i.e.,
= = ( ) mod
= ( mod mod ) mod
= (
) mod .
(2)
(3)
(4)
2.
2)
Generate the parity codes for each row and col} where =
umn.
= { } and = {
( =1 , ) mod 2 and = ( =1 , ) mod 2.
3)
Store the message data and parity check codes.
Parity codes are converted to q-ary data,
, where and are -ary
version of and .
, , and are stored separately.
30
.
+
+
(5)
Fig. 4.
2)
3)
4)
, mod 2.
Generate the parity codes of the received data for
each row and column.
} and = {
} where =
= {
1)
2)
3)
3.
Generate the parity codes for each row and column.
= { } and = {
} where =
31
2)
3)
4)
, mod 3.
Generate the parity codes of the received message
data for each row and each column.
} and = {
} where =
= {
No ECC
Limited Error Parity Check (Asymmetric)
Limited Error Parity Check (Symmetric)
10
BER
1)
10
10
0.84
0.86
0.88
0.9
0.92
0.94
0.96
0.98
Code Rate
(6)
.
+ log2 3
+ log2 3
V. C ONCLUSION
To reduce errors of the MLC flash memories, we propose
two new error correcting codes by taking advantage of limited
magnitude of errors. One deals with asymmetric errors, and the
other with symmetric errors. These new error correcting codes
use a two dimensional parity check structure with modulo
operations. One of the key advantages of the proposed method
is that it has low encoding/decoding complexity compared to
conventional correcting codes such as the BCH codes. Another
notable advantage is the flexibility in choosing the code rate
and the block size.
ACKNOWLEDGMENT
This research was supported in part by Hynix Semiconductor Inc., Basic Science Research Program (2010-0013397) and
Mid-career Researcher Program (2010-0027155) through the
NRF funded by the MEST, and INMAC, BK21.
R EFERENCES
[1] P. Cappelletti and A. Modelli, Flash memory reliability, Flash Memories, P. Cappelletti, C. Golla, P. Olivo, and E. Zanoni, Eds. Amsterdam,
The Netherlands: Kluwer, 1999, pp. 399-441.
[2] R. Ahlswede, H. Aydinian, L. Khachatrian, and L. Tolhuizen, On qary codes correcting all unidirectional errors of a limited magnitude,
Proceedings of Ninth International Workshop on Algebraic and Combinatorial Coding Theory, Kranevo, Bulgaria, pp. 20-26, Jun. 2004.
[3] Y. Cassuto, M. Schwartz, V. Bohossian, and J. Bruck, Codes for
asymmetric limited-magnitude errors with application to multi-level
flash memories, IEEE Trans. Inform. Theory, vol. 56, no. 4, pp. 15821595, Apr. 2010.
[4] K.-T. Park, et al., A zeroing cell-to-cell interference page architecture
with temporary LSB storing and parallel MSB program scheme for MLC
NAND flash memories, IEEE J. Solid-State Circuits, vol. 40, pp. 919928, Apr. 2008.
[5] G. Dong, S. Li, and T. Zhang, Using Data Post-compensation and Predistortion to Tolerate Cell-to-Cell Interference in MLC NAND Flash
Memory, IEEE Transactions on Circuits and Systems, vol. 57, issue
10, pp. 2718-2728, 2010.
[6] W. H. Kim and C. V. Freiman, Multi-error correcting codes for a binary
asymmetric channels, IRE Trans. Circuits Theory,, 6, 1959. 25 Feb.
1966.
[7] B.G. Bajoga and W.J.Walbesser, Decoder complexity for BCH codes
Proc. IEE, vol. 120, no. 4, pp. 429-431, Apr. 1973.
32