/
Correcting Errors in Correcting Errors in

Correcting Errors in - PowerPoint Presentation

kittie-lecroy
kittie-lecroy . @kittie-lecroy
Follow
406 views
Uploaded On 2016-03-10

Correcting Errors in - PPT Presentation

MLCs with Bitfixing Coding Yue Li joint work with Anxiao Andrew Jiang and Jehoshua Bruck Flash memories have excellent performance Cells are programmed by injecting electrons Programming is fast ID: 249695

bit errors cell error errors bit error cell level correct corrected ecc codes decoding levels magnitude number asymmetric bits mod updating rule

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Correcting Errors in" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Correcting Errors in MLCs with Bit-fixing Coding

Yue Lijoint work withAnxiao (Andrew) Jiang and Jehoshua BruckSlide2

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).

IntroductionSlide3

Number of Pulses

Voltage

7

6

5

4

3

2

1

0

Reprogram

Correct with ECC

Motivation: Cell

OverprogrammingSlide4

Correct

Overprogramming Errors

Number of Pulses

Voltage

Reduce reprogramming

Faster programmingSlide5

0

1

2

0

1

2

3

4

5

0

0

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

2

5

0

3

5

11

0Slide6

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

2

5

0

3

5

11

0

10

5

1

8

How to correct asymmetric errors

?

How to minimize redundancy in ECC

?Slide7

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

1

100

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 on the

size of the error

and the

cell level

5

2

6

2

7

3

8

1Slide8

This work generalizes the code constructions in:

Codes Correcting Asymmetric Errors[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. Slide9

Example of Bit-fixing Coding

0

1

2

0

1

2

3

4

5

0

0

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

2

5

0

3

5

11

0Slide10

B

it-wise ECC72

5

0

3

5

11

ECC

ECC

ECC

ECCSlide11

Assume

asymmetric errors

appear…

0

1

2

3

4

0

1

2

3

4

5

0

0

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

+2

5

0

3

+1

5

+3

11

0Slide12

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

+2

5

0

3

+1

5

+3

11Slide13

Decoding round 1: Correct bits

7+12+25

0

3

+1

5

+3

11

corrected

3

bit errors

A

B

C

DSlide14

Decoding round 1: Correct cell levels

7

2

+2

5

0

3

5

+2

11

(

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

corrected

3

bit errorsSlide15

Decoding round 1: Correct cell levels

7

2

+2

5

0

3

5

+2

11

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 Slide16

7

Initial

Data

Receive Errors

Correct Bits

Correct Cells

7

7

+1

7

+1

(

7

+1

)

– 2^0 = 7

Corrected DataSlide17

Decoding round 2: Correct bits

72+25

0

3

5

+2

11

corrected

3 + 2

bit errors

A

B

C

DSlide18

Decoding round 2: Correct cell levels

72

5

0

3

5

11

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

B

C

DSlide19

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 isLet , the total number of iterations isCorrecting asymmetric errors

Computes Hamming weight

Computes binary representationSlide20

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

)Slide21

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 isCorrecting bidirectional errors

Updating rule: new level = (current level –

e

* 2^i) mod

qSlide22

Suppose errors

are bidirectional 0

1

2

0

0

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

2

5

-2

0

3

5

+3

11

-1

0Slide23

Decoding round 1: Correct bits

corrected 3 bit errors7

+1

2

5

-2

0

3

5

+3

11

-1

A

B

C

DSlide24

Decoding round 1: Correct cell levels

7

2

5

-2

0

3

5

+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

C

D

Total number of cell levelsSlide25

Decoding round 2: Correct bits

corrected 3 + 3 bit errors7

2

5

-2

0

3

5

+2

11

-2

A

B

C

DSlide26

Decoding round 2: Correct cell levels

72

0

3

5

corrected

3 + 3

bit errors

5

-2-2

11

-2-2

(

5

-2

)

– 2^1 = 1

(

11

-2

)

– 2^1 = 7

A

B

C

D

(

5

+2

)

– 2^0 = 5

Updating rule: new level = (current level –

e

* 2^i) mod

qSlide27

Decoding round 3: Correct bits

corrected 3 + 3 +2 bit errors7

2

0

3

5

5

-2-2

11

-2-2

A

B

C

DSlide28

corrected 3 + 3 +2 bit errors

72

0

3

5

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

C

D

A

Updating rule: new level = (current level –

e

* 2^i) mod

qSlide29

Decoding round 4: Correct bits

72

5

-2-2-4

0

3

5

11

-2-2-4

corrected

3 + 3 + 2 + 2

bit errors

B

C

D

ASlide30

corrected 3 + 3 + 2 + 2 bit errors

72

5

-2-2-4-8

0

3

5

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

C

D

A

Updating rule: new level = (current level –

e

* 2^i) mod

qSlide31

...

Encoding

Redundancy

Allocation

Separate

Encoding

Compute Cell Levels

Program

Cells

ECC

ECC

ECC

ECC

ECCSlide32

Compare the rates with those ofBinary codesGray codes

ALM-ECC with hard decodingAn error of any magnitude is seen as a Hamming error in the inner code.ALM-ECC with soft decodingThe error distribution is used for optimal decoding. (But the inner ECC is not binary if the maximum magnitude of errors is more than 1).Evaluation

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.Slide33

Cell levels: 16Maximum magnitude of asymmetric errors: 3

Error distribution mimics a Gaussian distribution.For , the probability of an error of size equals .Error ModelSlide34
Slide35

EffectiveGood for correcting asymmetric errors.Efficient decoding and encoding methods.

FlexibleWorks with existing ECCs.Naturally handles bidirectional errors.GeneralSupports arbitrary error distribution.Supports arbitrary numeral systems.Conclusions

A. Jiang, Y. Li and J.

Bruck,

”Bit-fixing codes for multi-level cells," in Proc. IEEE Information Theory Workshop (ITW), 2012.Slide36

B

it-fixing code: there are 10 bit errors.

Gray Codes: there are

7

bit errors.

Binary Codes: there are

12

bit errors.

7

+1

2

5

-2

0

3

5

+3

11

-1Slide37

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

1

100

1101

1111

1110

1010

1011

1001

1000

0000

0001

0011

0010

0110

0111

0101

0100

0

001

1001

0101

1101

0

011

1011

0

111

1111

0000

Relabeled BFC

1.7 bits/bidirectional cell error

0.93 bit/BCE

1.37 bits/BCE

2.50 bits/BCE

Original BFC