Download presentation
Presentation is loading. Please wait.
Published byLenard Garrison Modified over 9 years ago
1
Yue Li joint work with Anxiao (Andrew) Jiang and Jehoshua Bruck
2
Flash memories have excellent performance. Cells are programmed by injecting electrons. ◦ Programming is fast. ◦ Erasure is expensive. The growth of storage density brings reliability issues. ◦ Cells are more closely aligned ◦ More levels are programmed into each cell. We propose a new coding scheme for correcting asymmetric errors in multi-level cells (MLCs).
3
Number of Pulses Voltage 7 6 5 4 3 2 1 0 Reprogram Correct with ECC
4
Correct Overprogramming Errors Number of Pulses Voltage Reduce reprogramming Faster programming
5
0 1 2 0 1 2 3 4 5 00 1 2 3 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 8 25035 0
6
Asymmetric errors appear… 0 1 2 3 4 5 0 1 2 3 4 5 0 1 0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 9 10 8 2503511 0 10 5 18 How to correct asymmetric errors ? ? How to minimize redundancy in ECC ?
7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 Binary Codes 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 0000 Gray Codes Our Codes The number of bit errors equals the Hamming weight of the binary representation of a cell error. Cell error # of bit errors 1 1 2 1 3 2 4 1 The number of bit errors depends only on the size of the cell error. The number of bit errors depends only on the size of the cell error. The number of bit errors depends on the size of the error and the cell level The number of bit errors depends on the size of the error and the cell level 5 2 6 2 7 3 8 1
8
This work generalizes the code constructions in: [1] R. Ahlswede, H. Aydinian and L. Khachatrian, "Unidirectional error control codes and related combinational problems," in Proc. Eighth Int. Workshop Algebr. Combin. Coding Theory, pp. 6-9, 2002. [2] Y. Cassuto, M. Schwartz, V. Bohossian and J. Bruck, "Codes for asymmetric limited-magnitude errors with application to multilevel flash memories," in IEEE Trans. Information Theory, vol. 56, no. 4, pp. 1582-95, 2010. [3] E. Yaakobi, P. H. Siegel, A. Vardy, and J. K. Wolf, “On Codes that Correct Asymmetric Errors with Graded Magnitude Distribution,” in Proc. IEEE International Symposium on Information Theory, pp. 1021-1025, 2011.
9
Example of Bit-fixing Coding 0 1 2 0 1 2 3 4 5 00 1 2 3 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 7 25035 0
10
Bit-wise ECC 7 2503511
11
Assume asymmetric errors appear… 0 1 2 3 4 0 1 2 3 4 5 00 1 2 3 4 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 7 8 7+1 2+2503+15+311 0
12
Binary Codes: there are 12 bit errors. Bit-fixing code: there are only 5 bit errors! It alternatively corrects bits and cell levels. Gray Codes: there are 7 bit errors. 7+1 2+2503+15+3 11
13
Decoding round 1: Correct bits 7+1 2+2503+15+311 corrected 3 bit errors A B C D
14
Decoding round 1: Correct cell levels 7 2+25035+211 (7+1) – 2^0 = 7 (3+1) – 2^0 = 3 (5+3) – 2^0 = 7 A B C D Updating rule: new level = current level – e * 2^i Value of error Bit index An error in the LSB = a magnitude-1 error on level 1 st bit = a magnitude-2 error 2 nd bit = a magnitude-4 error MSB = a magnitude-8 error An error in the LSB = a magnitude-1 error on level 1 st bit = a magnitude-2 error 2 nd bit = a magnitude-4 error MSB = a magnitude-8 error corrected 3 bit errors
15
Decoding round 1: Correct cell levels 7 2+25035+211 corrected 3 bit errors (7+1) – 2^0 = 7 (3+1) – 2^0 = 3 (5+3) – 2^0 = 7 A B C D Updating rule: new level = current level – e * 2^i Value of error Bit index
16
7 Initial Data Receive Errors Correct Bits Correct Cells 7 7+1 (7+1) – 2^0 = 7 Corrected Data
17
Decoding round 2: Correct bits 7 2+25035+211 corrected 3 + 2 bit errors A B C D
18
Decoding round 2: Correct cell levels 7 2503511 corrected 3 + 2 bit errors Updating rule: new level = current level – e * 2^i (2+2) – 2^1 = 2 (5+2) – 2^1 = 5 A BC D
19
Let the total number of cell levels be. Assume the magnitudes of n errors are, where for ◦ The total number of errors need to be corrected is ◦ Let, the total number of iterations is Computes Hamming weight Computes binary representation
20
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A downward error with magnitude e (less than 0) An upward error with magnitude (e mod q)
21
Let the total number of cell levels be. Assume the magnitudes of errors are, where for. ◦ The total number of errors need to be corrected is ◦ Let, the total # of iterations is Updating rule: new level = (current level – e * 2^i) mod q
22
Suppose errors are bidirectional 0 1 2 00 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 0 1 2 3 4 5 7+1 25-2035+311-1 0
23
Decoding round 1: Correct bits corrected 3 bit errors 7+1 25-2035+3 11-1 A B CD
24
Decoding round 1: Correct cell levels 7 25-2035+2 11-2 corrected 3 bit errors (7+1) – 2^0 = 7 (5+3) – 2^0 = 7 (11-1) – 2^0 = 9 Updating rule: new level = (current level – e * 2^i) mod q A B CD Total number of cell levels
25
Decoding round 2: Correct bits corrected 3 + 3 bit errors 7 25-2035+2 11-2 A B CD
26
Decoding round 2: Correct cell levels 7 2035 corrected 3 + 3 bit errors 5-2-2 11-2-2 (5-2) – 2^1 = 1 (11-2) – 2^1 = 7 A B CD (5+2) – 2^0 = 5 Updating rule: new level = (current level – e * 2^i) mod q
27
Decoding round 3: Correct bits corrected 3 + 3 +2 bit errors 7 2035 5-2-2 11-2-2 A B CD
28
corrected 3 + 3 +2 bit errors 7 2035 Decoding round 3: Correct cell levels 5-2-2-4 11-2-2-4 ((5-2-2) – 2^2) mod 16 = 13 (11-2-2) – 2^2 = 3 B CD A Updating rule: new level = (current level – e * 2^i) mod q
29
Decoding round 4: Correct bits 7 25-2-2-4035 11-2-2-4 corrected 3 + 3 + 2 + 2 bit errors B CD A
30
7 25-2-2-4-8035 11-2-2-4-8 Decoding round 4: Correct cell levels ((5-2-2-4) – 2^3) mod 16 = 5 ((11-2-2-4) – 2^3) mod 16 = 11 B CD A Updating rule: new level = (current level – e * 2^i) mod q
31
... … … … … Redundancy Allocation Separate Encoding Compute Cell Levels Program Cells
32
Compare the rates with those of ◦ Binary codes ◦ Gray codes ◦ ALM-ECC with hard decoding An error of any magnitude is seen as a Hamming error in the inner code. ◦ ALM-ECC with soft decoding The error distribution is used for optimal decoding. (But the inner ECC is not binary if the maximum magnitude of errors is more than 1). Y. Cassuto, M. Schwartz, V. Bohossian and J. Bruck, "Codes for asymmetric limited-magnitude errors with application to multilevel flash memories," in IEEE Trans. Information Theory, vol. 56, no. 4, pp. 1582-95, 2010.
33
Cell levels: 16 Maximum magnitude of asymmetric errors: 3 Error distribution mimics a Gaussian distribution. ◦ For, the probability of an error of size equals.
35
Effective ◦ Good for correcting asymmetric errors. ◦ Efficient decoding and encoding methods. Flexible ◦ Works with existing ECCs. ◦ Naturally handles bidirectional errors. General ◦ Supports arbitrary error distribution. ◦ Supports arbitrary numeral systems. A. Jiang, Y. Li and J. Bruck, ”Bit-fixing codes for multi-level cells," in Proc. IEEE Information Theory Workshop (ITW), 2012.
36
Bit-fixing code: there are 10 bit errors. Gray Codes: there are 7 bit errors. Binary Codes: there are 12 bit errors. 7+1 25-2035+3 11-1
37
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 Physical states 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 0 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 Binary Codes Gray Codes 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 0000 0001 0011 0010 0110 0111 0101 0100 0001 1001 0101 1101 0011 1011 0111 1111 0000 Relabeled BFC 1.7 bits/bidirectional cell error 0.93 bit/BCE 1.37 bits/BCE 2.50 bits/BCE Original BFC
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.