Constrained Flash Memory Programming - Semantic Scholar

Report 6 Downloads 213 Views
Constrained Flash Memory Programming Amit Berman and Yitzhak Birk {bermanam@tx, birk@ee}.technion.ac.il

Technion – Israel Institute of Technology

International Symposium on Information Theory, August, 2011

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

Flash Memory • Non-Volatile Solid-State Memory Device • Widely used in consumer and industrial electronics

3

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 VERS

VPGM

Float

Float

-

-

-

-

-

-

-

VERS

Write 4

Erase

-

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 Log2(#cells) 11

Vt Range 00

01

10

Safety margin

5

Vt

Inter-Cell Coupling • FG-FG inter-cell coupling causes the charge in one cell to affect a neighboring cell’s threshold voltage. BLi 1

BLi

BLi 1

FG

6

WL j 1

Nd

Ny

Nd

WL j

Nx

C

Nx

WL j 1

Nd

Ny

Nd

FG

CFGXY

FG

CFGY

CFGX FG

FG

FG

FG

FG

FG

Vt Distribution Widening • When considering each cell in isolation, the observed phenomenon is a “widening” of the threshold voltage distributions. Log2(#cells) 01

11

00

10

Width multiplied by up to 4x Vt Log2(#cells) 11

7

01

00

10

Vt

ICI experiment (program pulse) [Lee et-al.] • Neglecting CFGXY and assuming QFG=0, the floating gate voltage due to ICC is: VFG

CONOVCG  CFGX V1  V2   CFGY V3  V4   VFGCG V5  V6   CTUN  CONO  2CFGX  2CFGY  2CFGCG V3 FG

FG

CFGXY V1

CTUN, CONO are the FG dialectics cap., V5, V6 are gate voltages in neighbor vertical cells (do not appear in the Figure) 8

FG

CFGY V2

CFGX

FG

FG

FG

FG

FG

FG

V4

Insights

9

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

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

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

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 cells programmed to level 2 • … • Sequence eligibility criterion:

NL, C, NR: respective target levels

WL j

D  C   max N L  C,0  max N R  C,0  T • T represents a trade-off: • Large T: efficient coding, but wider distributions and fewer levels • Small T: opposite pros and cons 17

BLi 1

BLi

BLi 1

NL

C

NR

Breadth 1st programming order - demonstration • {0,…,3} levels per cell

18

Breadth 1st” programming order - demonstration

19

Breadth 1st” programming order - demonstration Target values:

20

3

2

1

3

3

3

2

2

2

1

1

1

Breadth 1st” programming order - demonstration Target values:

21

3

2

1

Program pulse

3

3

3

• • •

2

2

2

1

1

1

Applied to all - Charge injection - Inter-Cell Interference

Breadth 1st” programming order - demonstration Target values:

22

3

2

1

Verify

3

3

3



2

2

2

1

1

1

Non reached desired value

Breadth 1st” programming order - demonstration Target values:

23

3

2

1

Program pulse

3

3

3

• • • •

2

2

2

1

1

1

Applied to all - Charge injection - Inter-Cell Interference - Accounted-for ICI

Breadth 1st” programming order - demonstration Target values:

24

3

2

1

Verify

3

3

3

• Right cell reached target (no more program pulses for it)

2

2

2

1

1

1

Breadth 1st” programming order - demonstration Target values:

25

3

2

1

Program pulse

3

3

3

• • • • •

2

2

2

1

1

1

Applied left and center - Charge injection - Inter-Cell Interference - Accounted-for ICI - Post-programming ICI

Breadth 1st” programming order - demonstration Target values:

26

3

2

1

Verify

3

3

3



2

2

2

1

1

1

Centered cell reached target

Breadth 1st” programming order - demonstration Target values:

27

3

2

1

Program pulse

3

3

3

• • • • •

2

2

2

1

1

1

Applied left and center - Charge injection - Inter-Cell Interference - Accounted-for ICI - ICI after verified

Breadth 1st” programming order - demonstration Target values:

28

3

2

1

Verify

3

3

3



2

2

2

1

1

1

Non verified

Breadth 1st” programming order - demonstration Target values:

29

3

2

1

Program pulse

3

3

3

• • • • •

2

2

2

1

1

1

Applied to left cell - Charge injection - Inter-Cell Interference - Accounted-for ICI - ICI after verified

Breadth 1st” programming order - demonstration Target values:

2

1

Verify

3

3

3



2

2

2

1

1

1

Left cell verified

Program Ends

30

3

Breadth 1st” programming order - demonstration Target values: Centered cell is erroneous

3

2

1

3

3

3

2

2

2

1

1

1

D  C   max N L  C,0  max N R  C,0  T 31

2) Set T and determine code rate

32

Example: T=2, L={0,1} two levels per cell • D(c)