constrained flash memory programming - semantic scholar · pdf file2 (#cells) 11 01 00 10 v t...

55
Amit Berman and Yitzhak Birk {bermanam@tx, birk@ee}.technion.ac.il Technion Israel Institute of Technology International Symposium on Information Theory, August, 2011 Constrained Flash Memory Programming

Upload: trandien

Post on 04-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Amit Berman and Yitzhak Birk

{bermanam@tx, birk@ee}.technion.ac.il

Technion – Israel Institute of Technology

International Symposium on Information Theory, August, 2011

Constrained Flash Memory Programming

Page 2: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Contributions

• Characterization and formulation of Inter-Cell Interference in Flash Memory

• Proposing constrained coding for ICI mitigation

• Examples: Capacity and codes for “Breadth-First” and “Even-Odd” ICI channels

2

Page 3: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Flash Memory

• Non-Volatile Solid-State Memory Device

• Widely used in consumer and industrial electronics

3

Page 4: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Floating-Gate (FG) Cell

• Conductive FG layer surrounded by dielectrics

• Write: Inject charge from substrate to FG layer

• Erase: Release charge from FG layer to substrate

-

- -

- - -

VPGM

Float

-

- -

- - -

VERS

Float

Write Erase

VERS

4

Page 5: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Vt Distributions

• Stored data = amount of charge in FG

• The amount of charge determines Vt , the minimum gate voltage that causes the transistor to conduct

• Observed Vt is inaccurate

• Cell programming with limited resolution + ….

• Interference from other cells (~40 % and growing!)

• Result: must allocate a Vt range to each stored value

Vt

Log2(#cells)

11 01 00 10

Vt Range

Safety

margin

5

Page 6: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Inter-Cell Coupling

• FG-FG inter-cell coupling causes the charge in one cell to affect a neighboring cell’s threshold voltage.

FG

FG

FG

FG

FG

FG

FG FG FG

CFGX

CFGXY CFGY

1iBL iBL1iBL

jWL

1jWL

1jWL

xN

dN

dN

C

yN

yN

xN

dN

dN

6

Page 7: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Vt Distribution Widening

• When considering each cell in isolation, the observed phenomenon is a “widening” of the threshold voltage distributions.

Vt

11 01 00 10

Vt

11 01 00 10

Log2(#cells)

Log2(#cells)

Width multiplied

by up to 4x

7

Page 8: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

ICI experiment (program pulse) [Lee et-al.]

• Neglecting CFGXY and assuming QFG=0, the floating gate voltage due to ICC is:

1 2 3 4 5 6

2 2 2

ONO CG FGX FGY FGCG

FG

TUN ONO FGX FGY FGCG

C V C V V C V V V V VV

C C C C C

FG

FG

FG

FG

FG

FG

FG FG FG

CFGX

CFGXY CFGY

V3

V2 V1

V4 CTUN, CONO are the FG dialectics cap., V5, V6 are gate voltages in neighbor vertical cells

(do not appear in the Figure)

8

Page 9: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Insights

9

Page 10: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

ICI with Program & Verify

• Program & Verify:

– Charge is added to a cell in small increments

– Vt is checked after each addition

– Programming ceases upon reaching the desired Vt

• Therefore, Vt of any given cell is affected only by charge added to its neighbors after its own charging has been completed.

The effect of inter-cell interference depends on the coupling, data and the programming scheme

10

Page 11: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Existing Interference-Mitigation Schemes

• Proportional programming [Trinh et-al., USP 6,996,004] Concurrent, “proportional” programming of same-row cells near-simultaneous completion.

Pros: insensitive to coupling parameters, simple read.

Cons: complicated, possibly slow programming, can’t account for next line.

• Intelligent read decoding [Li et-al., USP 7,301,839]

Based on programming order, decode w. successive interference cancellation.

Pros: simple programming.

Cons: Must know coupling parameters, no variation allowed, requires fine-resolution read complex and slow

11

Page 12: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Our Approach: Constrained Coding

• Forbid certain adjacent-cell level combinations:

– Criterion depends on programming order

– Threshold is a design trade-off

• Programming: use only permissible combinations (legal code words)

• Decoding: use inverse mapping

12

Page 13: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Constrained Coding – Main Features

• Pros:

– Limits the effect of inter-cell coupling → narrow distributions → many levels or higher reliability

– Fairly simply encoding and decoding

– Only need to know an upper bound on coupling coefficients

• Cons:

– Code rate <1 → some loss of capacity relative to ideal with narrow distributions.

13

Page 14: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Constrained Coding - Remarks

• Can be combined with ECC

• Complementary to the previous schemes and can be combined with them:

– Semi-accurate programming + minimal restrictions

– Some restrictions with simpler intelligent read decoding

14

Page 15: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Flash Constrained Coding Scheme Synopsis

1) Assign ICI severity function D(c) to data sequence,

depends on programming order

• D: {data sequence c} → severity value

• More interference → larger value

2) Choose T require D(c)<T determine code rate

3) Construct Encoder and Decoder

15

Page 16: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

1) Severity Function

16

Page 17: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: 1-D, “Breadth 1st” Coding

• 1-D: a single row of cells is considered

• Programming (charge & verify)

• All >0 cells programmed to level 1

• All >1 cells programmed to level 2

• …

• Sequence eligibility criterion:

• T represents a trade-off:

• Large T: efficient coding, but wider distributions and fewer levels

• Small T: opposite pros and cons 17

max ,0 max ,0L RD C N C N C T

1iBL iBL1iBL

jWL

NL, C, NR: respective target levels

RNCLN

Page 18: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Breadth 1st programming order - demonstration

18

• {0,…,3} levels per cell

Page 19: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Breadth 1st” programming order - demonstration

19

Page 20: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

20

1

2

3

2

3

2

3

1 1

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 21: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Breadth 1st” programming order - demonstration

21

1

2

3

2

3

2

3

1 1

Program pulse • Applied to all

• - Charge injection

• - Inter-Cell Interference

Target values: 3 2 1

Page 22: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

22

1

2

3

2

3

2

3

1 1

Verify • Non reached desired value

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 23: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

23

1

2

3

2

3

2

3

1 1

Program pulse • Applied to all

• - Charge injection

• - Inter-Cell Interference

• - Accounted-for ICI

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 24: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

24

1

2

3

2

3

2

3

1 1

Verify • Right cell reached target

(no more program pulses for it)

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 25: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

25

1

2

3

2

3

2

3

1 1

Program pulse • Applied left and center

• - Charge injection

• - Inter-Cell Interference

• - Accounted-for ICI

• - Post-programming ICI

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 26: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

26

2

3

1 1

Verify • Centered cell reached target

1

2

3

2

3

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 27: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

27

1

2

3

2

3

2

3

1 1

Program pulse • Applied left and center

• - Charge injection

• - Inter-Cell Interference

• - Accounted-for ICI

• - ICI after verified

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 28: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

28

1

2

3

2

3

2

3

1 1

Verify • Non verified

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 29: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

29

1

2

3

2

3

2

3

1 1

Program pulse • Applied to left cell

• - Charge injection

• - Inter-Cell Interference

• - Accounted-for ICI

• - ICI after verified

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 30: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

30

1

2

3

2

3

2

3

1 1

Verify • Left cell verified

Program Ends

Target values: 3 2 1

Breadth 1st” programming order - demonstration

Page 31: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

31

1

2

3

2

3

2

3

1 1

Centered cell is erroneous

Target values: 3 2 1

max ,0 max ,0L RD C N C N C T

Breadth 1st” programming order - demonstration

Page 32: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

2) Set T and determine code rate

32

Page 33: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: T=2, L={0,1} two levels per cell

• D(c)<2: forbid the combination of 101

• Corresponding language graph and adjunct matrix:

• Capacity:

• Determine code rate to be 4/5 = 0.8 • Encoder: uncoded 4 bits input, encoded 5 bits output

• Decoder: vice versa.

0

1 0

0

1

1 1 0

0 1 1

1 0 0

GA

2

2

log ;lim log 0.8115Gl

N l SCap S A

l

Page 34: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

3) Encoder and Decoder Construction

34

Page 35: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: T=2, one program level per cell

• For simplicity, the numbers mark groups of 5-bit sequences

5

7 9 5

5 7 4

4 5 3

GA

11

12 23

31

22

13

33

32 21

11 00100 01000 01100 00000 10000 11000 11100

12 00001 00011 00111 01111 11111 11001 10001 10011 01001

13 00010 00110 01110 10010 11110

21 00000 10000 11000 11100 00100

22 00111 00001 11111 10011 10001 11001 00011

23 11110 00010 00110 10010

31 01000 00000 01100 00100

32 00001 00011 00111 01111 01001

33 00010 00110 01110

Page 36: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: T=2, one program level per cell

• State-splitting algorithm

132 01110 10010 11110

131 00010 00110

11

12

23

31

22

33

32

21

131

31

11

132

21

Page 37: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: T=2, one program level per cell

• State-splitting algorithm

212

10000 11000 11100 00100

211 00000

11

12

31

22

33

32 21

131

31

11

132

211

22

12

212 23

32

Page 38: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: T=2, one program level per cell

• State-splitting algorithm

11

121

31

22

33

32

21

131

31

11

132

211

22

12

212

23

32

31

11

122

211

212

131

132

23

33

Page 39: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Example: T=2, one program level per cell

• State-splitting algorithm

11

121

31

22

33

32

21

131

31

11

132

211

22

12

212

23

32

31

11

122

211

212

131

132

23

33

11

21

31

Page 40: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

31

31

31

31

33

33

32

32

32

212

212

23

23

132

132

12

121

121

122

122

11 11

131

11

11

131

22

22

21

21

211

211

22

• Final

Page 41: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

a

b

c

e

f

g

h

i

d

• Nodes are marked with letters

Page 42: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

aa 0000/00100 0001/01000 0010/01100 0011/00000 0100/10000 0101/11000 0110/11100

ab 0111/00100 1000/01000 1001/01100 1010/00000 1011/10000 1100/11000 1101/11100

ah 1110/00010 1111/00100

bd 0000/00100 0001/01000 0010/01100 0011/00000 0100/10000 0101/11000 0110/11100

bc 0111/00100 1000/01000 1001/01100 1010/00000 1011/10000 1100/11000 1101/11100

bi 1110/00010 1111/00100

ce 0000/00011 0001/001110010/01111 0011/111110100/11001 0101/10001 0110/10011 0111/01001

cf 1000/00011 1001/001111010/01111 1011/11111 1100/11001 1101/10001 1110/10011 1111/01001

dg 0000/00001 0001/00011 0010/00111 0011/01111 0100/11111 0101/11001 0110/10001 0111/10011 1000/01001

dh 1001/01110 1010/10010 1011/11110

di 1100/01110 1101/10010 1110/11110

df 1111/00001

ee 0000/00111 0001/00001 0010/11111 0011/10011 0100/10001 0101/110010110/00011

ef 0111/001111000/00001 1001/11111 1010/10011 1011/10001 1100/110011101/00011

ec 1110/00000

ed 1111/00000

fa 0000/00000 0001/10000 0010/11000 0011/11100 0100/00100

fb 0101/00000 0110/10000 0111/11000 1000/11100 1001/00100

fg 1010/00111 1011/00001 1100/11111 1101/10011 1110/10001 1111/11001

• xy - edges going from state x to state y

• input/output - allocation of inputs and outputs

Page 43: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

gc 0000/10000 0001/11000 0010/11100 0011/00100

gd 0100/10000 0101/11000 0110/11100 0111/00100

gh 1000/11110 1001/00010 1010/00110 1011/10010

ha 0000/01000 0001/00000 0010/01100 0011/00100

hb 0100/01000 0101/00000 0110/01100 0111/00100

hc 1000/01000 1001/00000 1010/01100 1011/00100

ie 0000/00001 0001/000110010/00111 0011/011110100/01001

if 0101/00001 0110/000110111/00111 1000/011111001/01001

gi 1100/11110 1101/00010 1110/00110 1111/10010

hd 1100/01000 1101/00000 1110/01100 1111/00100

ig 1010/00001 1011/000111100/00111 1101/011111110/01001

ii 1111/00010

Page 44: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Implementation with look-up table

• Rate penalty, e.g. R=5/8=0.625

• Error propagation-free

8

37 49 28

28 37 21

21 28 16

GA

Data 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111

Enc 00000000 10000000 11000000 11100000 11110000 11111000 11111100 01000000 01100000 01110000 01111000 01111100 00100000 00110000 00111000 00111100

# 0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

Data 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

Enc 00010000 00011000 00011100 00001000 00001100 00000100 10010000 10011000 10011100 10001000 10001100 10000100 01001000 01001100 00100000 00100100

# 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Page 45: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

General Language Graphs

45

Page 46: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

46

Breadth 1st program order

• Given: constraint T, {0,…,L} levels per cell

• Language graph is:

Page 47: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

47

• Additional edges if labels are unique to nodes

Breadth 1st program order

Page 48: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

48

( )

0,

1 1 ,D c

c odd

Level c Level c c even

Even-Odd program order • 1-D: a single row of cells is considered

• Even cells are programmed first, Odd cell are second

• Sequence eligibility criterion:

Page 49: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

49

Even-Odd program order

• Given: constraint T, {0,…,L} levels per cell

• Language graph is:

Page 50: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

50

Note

• Graphs are Shannon covers.

• Proof – second graph in the paper, first in future paper.

Page 51: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Capacity Results

51

Page 52: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

52

2

2

2 2

log ;lim log

log ( 1) log ( 1)

l G

Norm

N l S

AlCap SL L

Language Capacity

• Normalized, calculated as:

Breadth-First Even-Odd

Page 53: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Capacity Implication Example

• T=5, breadth-1st programming, L=4, code rate=0.95.

• Assumption: constrained coding permitted an increase in the number of levels from 4 to 5:

• Baseline:

• Constrained coding:

• A 10% increase in capacity

53

21.0 log 4 2

20.95 log 5 2.2 2

Page 54: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Conclusions

• Constrained coding can be used to chop off the tail of Vt distributions with only a minor reduction in rate

• Can be used beneficially to increase capacity or to increase reliability

• Can replace proportional programming and intelligent decoding or complement them

54

Page 55: Constrained Flash Memory Programming - Semantic Scholar · PDF file2 (#cells) 11 01 00 10 V t Range Safety ... 11001 10001 10011 01001 13 00010 00110 01110 10010 11110 21 00000 10000

Contributions

• Characterization and formulation of Inter-Cell Interference in Flash Memory

• Proposing constrained coding for ICI mitigation

• Examples: Capacity and codes for “Breadth-First” and “Even-Odd” ICI channels

55