Channel Coding Methods for Emerging Data Storage and...

152
Channel Coding Methods for Emerging Data Storage and Memory Systems Opportunities to Innovate Beyond the Hamming Metric L. Dolecek 1 A. Jiang 2 1 Department of Electrical Engineering, UCLA 2 Department of Computer Science, Texas A&M ISIT, 2014 1 / 76

Transcript of Channel Coding Methods for Emerging Data Storage and...

Page 1: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Channel Coding Methods for Emerging Data Storageand Memory Systems

Opportunities to Innovate Beyond the Hamming Metric

L. Dolecek1 A. Jiang2

1Department of Electrical Engineering, UCLA

2Department of Computer Science, Texas A&M

ISIT, 2014

1 / 76

Page 2: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Welcome to the zettabyte age

!"#"$"%"&"'()*$

+$

,+$

-+$

.+$

,++/$,+0+$,+0/$,+,+$

12$-/$123$

2 / 76

Page 3: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Exciting times for data storage

Data storage

Innovations in data storage are the key enabler of the information revolution

Data avalanche

Rising NVM industry

Data center farms

0  

20  

40  

60  

2005  2010  2015  2020  

ZB

3 / 76

Page 4: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Exciting times for data storage

New technologies

Data storage

Innovations in data storage are the key enabler of the information revolution

Data avalanche

Personalized healthcare

Rising NVM industry

Smart cities

Augmented reality

Data center farms

Security

Scientific discoveries

0  

20  

40  

60  

2005  2010  2015  2020  

ZB

3 / 76

Page 5: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

What is this tutorial about ?

Today we will learn about

Physical characteristics of emerging non-volatile memories,

Channel models associated with these technologies,

Various recent developments in coding for memories, and

Open problems and future directions in communication techniques formemories.

4 / 76

Page 6: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

What is this tutorial about ?

Today we will learn about

Physical characteristics of emerging non-volatile memories,

Channel models associated with these technologies,

Various recent developments in coding for memories, and

Open problems and future directions in communication techniques formemories.

4 / 76

Page 7: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

What is this tutorial about ?

Today we will learn about

Physical characteristics of emerging non-volatile memories,

Channel models associated with these technologies,

Various recent developments in coding for memories, and

Open problems and future directions in communication techniques formemories.

4 / 76

Page 8: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

What is this tutorial about ?

Today we will learn about

Physical characteristics of emerging non-volatile memories,

Channel models associated with these technologies,

Various recent developments in coding for memories, and

Open problems and future directions in communication techniques formemories.

4 / 76

Page 9: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Outline

5 / 76

Page 10: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

6 / 76

Page 11: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Basics of NVM operations

7 / 76

Page 12: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

A cell is a floating-gate transistor.

Row of cells is a page.

Group of pages is a block.

A flash memory block is an array of 220 ∼ million cells.

!"#$%"&'()$*'+,-.*'/)0*%'1&")$-#2'()$*'+,-.*'/)0*%'

'''

3456$%)$*'

78'

9'

78'

('

8 / 76

Page 13: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

A cell is a floating-gate transistor.

Row of cells is a page.

Group of pages is a block.

A flash memory block is an array of 220 ∼ million cells.

!"#$%"&'()$*'+,-.*'/)0*%'1&")$-#2'()$*'+,-.*'/)0*%'

'''

3456$%)$*'

78'

9'

78'

('

8 / 76

Page 14: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

A cell is a floating-gate transistor.

Row of cells is a page.

Group of pages is a block.

A flash memory block is an array of 220 ∼ million cells.

!"#$%"&'()$*'+,-.*'/)0*%'1&")$-#2'()$*'+,-.*'/)0*%'

'''

3456$%)$*'

78'

9'

78'

('

8 / 76

Page 15: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

A cell is a floating-gate transistor.

Row of cells is a page.

Group of pages is a block.

A flash memory block is an array of 220 ∼ million cells.

!"#$%"&'()$*'+,-.*'/)0*%'1&")$-#2'()$*'+,-.*'/)0*%'

'''

3456$%)$*'

78'

9'

78'

('

8 / 76

Page 16: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

Cell value corresponds to the voltage induced by the number ofelectrons stored on the gate.

Single level cell (SLC)

stores 1 bit per cell; one separating level

Multiple level cell (MLC)

stores 2 or more bits per cell; multiple separating levels

_

_

_

___

__

__

___

__

_

_ _

_

_

_

_

___

__

__

___

__

9 / 76

Page 17: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

Cell value corresponds to the voltage induced by the number ofelectrons stored on the gate.

Single level cell (SLC)

stores 1 bit per cell; one separating level

Multiple level cell (MLC)

stores 2 or more bits per cell; multiple separating levels

_

_

_

___

__

__

___

__

_

_

_

_

_

_

_

___

__

__

___

__

9 / 76

Page 18: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

Cell value corresponds to the voltage induced by the number ofelectrons stored on the gate.

Single level cell (SLC)

stores 1 bit per cell; one separating level

Multiple level cell (MLC)

stores 2 or more bits per cell; multiple separating levels

_

_

_

___

__

__

___

__

_

_ _

_

_

_

_

___

__

__

___

__

9 / 76

Page 19: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash technology

Cell value corresponds to the voltage induced by the number ofelectrons stored on the gate.

Single level cell (SLC)

stores 1 bit per cell; one separating level

Multiple level cell (MLC)

stores 2 or more bits per cell; multiple separating levels

_

_

_

___

__

__

___

__

_

_ _

_

_

_

_

___

__

__

___

__

9 / 76

Page 20: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 1

Flash block Initial state

1 1 1 11 1 1 11 1 1 11 1 1 1

10 / 76

Page 21: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 1

Flash block Final state

1 1 2 11 1 1 12 2 1 13 3 2 1

11 / 76

Page 22: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 2

Flash block Initial state

1 1 2 11 1 1 12 2 1 13 3 2 1

12 / 76

Page 23: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 2

Flash block Final state

1 1 3 22 1 1 12 2 1 13 3 3 2

13 / 76

Page 24: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 3

Flash block Initial state

1 1 2 11 1 1 12 2 1 13 3 2 1

14 / 76

Page 25: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 3

Flash block Intermediate state

1 1 1 11 1 1 11 1 1 11 1 1 1

15 / 76

Page 26: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash programming – example 3

Flash block Final state

1 1 2 11 1 1 12 2 1 13 1 2 1

16 / 76

Page 27: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash endurance

Flash block Programmed state

1 3 4 34 2 3 41 1 3 24 3 2 4

17 / 76

Page 28: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash endurance

Flash block Retrieved state

1 3 4 33 2 3 31 1 2 23 3 2 3

Charge leakage over time results in level drop!

18 / 76

Page 29: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash endurance

Frequent block erases cause so-called “wearout” due to charge loss onthe gates.

Flash memory lifetime is commonly expressed in terms of the numberof program and erase (P/E) cycles allowed before memory is deemedunusable.

Lifetime:

SLC: ≈ 106 P/E cyclesMLC: ≈ 103 − 105 P/E cycles

With frequent writes 2GB TLC lasts less than 3 months!

19 / 76

Page 30: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Intercell coupling

Flash block Original state

1 3 4 34 2 3 41 1 3 21 1 1 3

20 / 76

Page 31: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Intercell coupling

Flash block Programmed state

1 3 4 34 2 3 41 1 3 23 1 3 3

21 / 76

Page 32: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Intercell coupling

Flash block Retrieved state

1 3 4 34 2 3 41 1 3 23 3 3 3

Change in charge in one cell affects voltage threshold of a neighboringcell.

During write/read, stressed (victim) cell appears weakly programmed.

22 / 76

Page 33: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

To summarize...

Key flash features

Write on the page level, erase on the block level

Wearout limits usable lifetime

Inter-symbol interference

!"#$%"&'()$*'+,-.*'/)0*%'1&")$-#2'()$*'+,-.*'/)0*%'

'''

3456$%)$*'

78'

9'

78'

('

23 / 76

Page 34: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

24 / 76

Page 35: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Phase change memories (PCM)

Pros

Erases on the cell level

Faster access

More P/E cycles, longerlifetime

Cons

Not as dense

Thermal accumulation

Thermal cross talk

Higher processing cost

Each cell is in two fundamental states(with in-between states)

Amorphous – high resistance↓ (intermediate)↓ (intermediate)

Polycrystalline – low resistance

25 / 76

Page 36: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Phase change memories (PCM)

Pros

Erases on the cell level

Faster access

More P/E cycles, longerlifetime

Cons

Not as dense

Thermal accumulation

Thermal cross talk

Higher processing cost

Each cell is in two fundamental states(with in-between states)

Amorphous – high resistance↓ (intermediate)↓ (intermediate)

Polycrystalline – low resistance

25 / 76

Page 37: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Phase change memories (PCM)

Pros

Erases on the cell level

Faster access

More P/E cycles, longerlifetime

Cons

Not as dense

Thermal accumulation

Thermal cross talk

Higher processing cost

Each cell is in two fundamental states(with in-between states)

Amorphous – high resistance↓ (intermediate)↓ (intermediate)

Polycrystalline – low resistance

25 / 76

Page 38: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

References

J. Cooke, “The inconvenient truths about NAND flash memories”,FS, 2007.

L. M. Grupp et al., “Beyond the datasheet: using test beds to probenon-volatile memories’ dark secrets”, GC, 2010.

L. M. Grupp et al., “Characterizing flash memory: anomalies,observations, and applications”, Micro, 2009.

J. Burr et al., “Phase change memory technology”, JVST, 2010.

X. Huang et al., “Optimization of achievable information rates andnumber of levels in multilevel flash memories”, ICN, 2013.

26 / 76

Page 39: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

27 / 76

Page 40: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Part II: Error Correction Coding

28 / 76

Page 41: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Part II: Error Correction Coding

28 / 76

Page 42: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

ECC is a must for new NVMs

Early designs:Hamming code, Reed-Solomon code

Widespread industry standard:BCH code

!""#

!""#

!""#

!""#

Micronix, “NAND Flash Technical Note”, 2014.

Spansion, “What Types of ECC Should Be Used on Flash Memory?”,2011.

Micron, “The Inconvenient Truth About NAND Flash”, 2007.

29 / 76

Page 43: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

ECC is a must for new NVMs

Early designs:Hamming code, Reed-Solomon code

Widespread industry standard:BCH code

!""#

!""#

!""#

!""#

Micronix, “NAND Flash Technical Note”, 2014.

Spansion, “What Types of ECC Should Be Used on Flash Memory?”,2011.

Micron, “The Inconvenient Truth About NAND Flash”, 2007.

29 / 76

Page 44: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

ECC is a must for new NVMs

Early designs:Hamming code, Reed-Solomon code

Widespread industry standard:BCH code

!""#

!""#

!""#

!""#

Micronix, “NAND Flash Technical Note”, 2014.

Spansion, “What Types of ECC Should Be Used on Flash Memory?”,2011.

Micron, “The Inconvenient Truth About NAND Flash”, 2007.

29 / 76

Page 45: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Flash chip data collection: a closer look

0 500 1000 1500 2000 2500 3000 3500 4000 4500 500010−5

10−4

10−3

10−2

P/E Cycles

Erro

r Rat

e

Error Rates for TLC Flash

LSBCSBMSBSymbol Error Rate

Student Version of MATLAB

LSB: least significant bitCSB: center significant bitMSB: most significant bit

!!!"

!!#"

!##"

!#!"

##!"

###"

#!#"

#!!"

Data collected in Swanson Lab, UCSD.

30 / 76

Page 46: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Error patterns in TLC and the need for new codes

Number of wrong bits per wrong symbol Percentage of errors

1 0.96172 0.03143 0.0069

Why not use standard codes ?

!""#

!""#

!""#

!""#

31 / 76

Page 47: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Error patterns in TLC and the need for new codes

Number of wrong bits per wrong symbol Percentage of errors

1 0.96172 0.03143 0.0069

Why not use standard codes ?

!""#

!""#

!""#

!""#

31 / 76

Page 48: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Symmetric vs. non-symmetric error spheres

!"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#(

32 / 76

Page 49: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Symmetric vs. non-symmetric error spheres

!"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#(

32 / 76

Page 50: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Symmetric vs. non-symmetric error spheres

!"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#(

32 / 76

Page 51: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Symmetric vs. non-symmetric error spheres

!"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#( !"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#(

Conventional codes are optimized for the Hamming metric.

1 Do not differentiate among different types of symbol errors

2 Result in unnecessary overhead (rate loss)

33 / 76

Page 52: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Symmetric vs. non-symmetric error spheres

!"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#( !"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#(

Conventional codes are optimized for the Hamming metric.

1 Do not differentiate among different types of symbol errors

2 Result in unnecessary overhead (rate loss)

33 / 76

Page 53: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Symmetric vs. non-symmetric error spheres

!"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#( !"#$%"&#'( $&&"&'()"(*$(!"&&$!)$#(

Conventional codes are optimized for the Hamming metric.

1 Do not differentiate among different types of symbol errors

2 Result in unnecessary overhead (rate loss)

33 / 76

Page 54: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

34 / 76

Page 55: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

Key idea

Control for both the number of cells to be corrected as well as the numberof bits per erroneous cell to be corrected.

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

35 / 76

Page 56: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:

1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 57: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 58: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 59: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 60: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 61: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 62: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Variability-aware coding

An example:

Suppose (000 110 010 101 000 111) is stored

Suppose (101 110 000 101 000 011) is retrieved

Error pattern characterization:1 There are 3 symbols in error

→ Code that corrects t symbols

2 There are 3 symbols in error, with at most 2 erroneous bits each

→ [t, `] code that corrects t symbols, each with at most ` bits in error

3 There are 3 symbols in error, with at most 2 erroneous bits each, andthere is 1 symbol with more than 1 bit in error

→ [t1, t2; `1, `2] code that corrects t1 + t2 symbols, each with at most `1bits in error, and at most t2 symbols with more than `2 bits in error

36 / 76

Page 63: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

New code constructions

Theorem (Construction 2)

Let H1 be the parity check matrix of a [m, k1, `]2 code C1 (standard[n, k, e] notation).

Let H2 be the parity check matrix of a [n, k2, t]2m−k1 code C2 definedover the alphabet of size GF (2)m−k1 .

Then, HA = H2 ⊗ H1 is the parity check matrix of a [t; `]2m code oflength n.

k1 denotes the number of message bits, m denotes the number ofcoded bits and ` is the number of bit errors code C1 can correct.

J. K. Wolf, “On codes derivable from the tensor product of checkmatrices”, T-IT, 1965.

37 / 76

Page 64: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

New code constructions

Theorem (Construction 2)

Let H1 be the parity check matrix of a [m, k1, `]2 code C1 (standard[n, k, e] notation).

Let H2 be the parity check matrix of a [n, k2, t]2m−k1 code C2 definedover the alphabet of size GF (2)m−k1 .

Then, HA = H2 ⊗ H1 is the parity check matrix of a [t; `]2m code oflength n.

k2 denotes the number of message symbols, n denotes the number ofcoded symbols and t is the number of errors code C2 can correct.

J. K. Wolf, “On codes derivable from the tensor product of checkmatrices”, T-IT, 1965.

37 / 76

Page 65: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

New code constructions

Theorem (Construction 2)

Let H1 be the parity check matrix of a [m, k1, `]2 code C1 (standard[n, k, e] notation).

Let H2 be the parity check matrix of a [n, k2, t]2m−k1 code C2 definedover the alphabet of size GF (2)m−k1 .

Then, HA = H2 ⊗ H1 is the parity check matrix of a [t; `]2m code oflength n.

J. K. Wolf, “On codes derivable from the tensor product of checkmatrices”, T-IT, 1965.

37 / 76

Page 66: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

New code constructions

Choose H =

[H1

H3

]as a parity check matrix of a [m, k1, `2]2 code

and H1 as a parity check matrix of a [m,m − r , `1]2 code

H1 is an r ×m matrix, H3 is an s ×m matrix.

Suppose H2 is a parity check matrix of a [n, k2, t1 + t2]2r code.

Suppose H4 is a parity check matrix of a [n, k3, t2]2s code.

Theorem (Construction 3)

Then, HB is the parity check matrix of a [t1, t2; `1, `2]2m code, where

HB =

(H2 ⊗ H1

H4 ⊗ H3

).

38 / 76

Page 67: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Performance evaluation for codes of length 4000 bits andrate 0.86

2800 3000 3200 3400 3600 3800 4000 4200 440010−7

10−6

10−5

10−4

P/E Cycles

Bit E

rror R

ate

Error Rates of Codes Applied to TLC Flash

Non−Binary BCH Code Over GF(8)Binary BCH CodeDifferent Binary BCH Code Applied to LSB, CSB, MSBGraded−Bit Error−Correcting Code

39 / 76

Page 68: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Performance evaluation for codes of length 4000 bits andrate 0.86

2800 3000 3200 3400 3600 3800 4000 4200 440010−7

10−6

10−5

10−4

P/E Cycles

Bit E

rror R

ate

Error Rates of Codes Applied to TLC Flash

Non−Binary BCH Code Over GF(8)Binary BCH CodeDifferent Binary BCH Code Applied to LSB, CSB, MSBGraded−Bit Error−Correcting Code

40%  Improvement  

39 / 76

Page 69: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Performance evaluation for codes of length 4000 bits andrate 0.86

2800 3000 3200 3400 3600 3800 4000 4200 440010−7

10−6

10−5

10−4

P/E Cycles

Bit E

rror R

ate

Error Rates of Codes Applied to TLC Flash

Non−Binary BCH Code Over GF(8)Binary BCH CodeDifferent Binary BCH Code Applied to LSB, CSB, MSBGraded−Bit Error−Correcting Code

20%  Improvement  

39 / 76

Page 70: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

40 / 76

Page 71: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Exploiting level distributions

_

_

_

___

__

__

___

__

_

_ _

_

_

_

_

___

__

__

___

__

What high-performance codes are amenable for soft decoding ?

41 / 76

Page 72: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Exploiting level distributions

_

_

_

___

__

__

___

__

_

_ _

_

_

_

_

___

__

__

___

__

What high-performance codes are amenable for soft decoding ?

41 / 76

Page 73: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

LDPC for Flash: Extracting soft information

Idea: multiple word line reads

2 reads compare against two thresholds

0 1

p2 p1p3

T-T

0 0

1 1

e

p1

p1

p2p3

p2

p3

00

10

p1

p1

p2p3

p2

p3

01

11

p4

p4

0

1

(a) Two reads (b) Three reads

Fig. 3. Equivalent discrete memoryless channel models for SLC with (a) two reads and (b) three reads with distinct word-line

voltages.

A. PAM-Gaussian Model

This subsection describes how to select word-line voltages to achieve MMI in the context of

a simple model of the flash cell read channel as PAM transmission with Gaussian noise. MMI

word-line voltage selection is presented using three examples: SLC with two reads, SLC with

three reads, and 4-level MLC with six reads.

For SLC flash memory, each cell can store one bit of information. Fig. 2 shows the model of

the threshold voltage distribution as a mixture of two identically distributed Gaussian random

variables. When either a “0” or “1” is written to the cell, the threshold voltage is modeled as a

Gaussian random variable with variance N0/2 and either mean −√Es (for “1” ) or mean +

√Es

(for “0” ).

For SLC with two reads using two different word line voltages, which should be symmetric

(shown as q and −q in Fig. 2), the threshold voltage is quantized according to three regions

shown in Fig. 2: the white region, the black region, and the union of the light and dark gray

regions (which essentially corresponds to an erasure). This quantization produces the effective

discrete memoryless channel (DMC) model as shown in Fig. 3 (a) with input X ∈ {0, 1} and

output Y ∈ {0, e, 1}.

Assuming X is equally likely to be 0 or 1, the MI I(X; Y ) between the input X and output

Maximize mutual information of the induced channel to determine thebest thresholds (here T and −T )

42 / 76

Page 74: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

LDPC for Flash: Extracting soft information

Idea: multiple word line reads

2 reads compare against two thresholds

0 1

p2 p1p3

T-T

0 0

1 1

e

p1

p1

p2p3

p2

p3

00

10

p1

p1

p2p3

p2

p3

01

11

p4

p4

0

1

(a) Two reads (b) Three reads

Fig. 3. Equivalent discrete memoryless channel models for SLC with (a) two reads and (b) three reads with distinct word-line

voltages.

A. PAM-Gaussian Model

This subsection describes how to select word-line voltages to achieve MMI in the context of

a simple model of the flash cell read channel as PAM transmission with Gaussian noise. MMI

word-line voltage selection is presented using three examples: SLC with two reads, SLC with

three reads, and 4-level MLC with six reads.

For SLC flash memory, each cell can store one bit of information. Fig. 2 shows the model of

the threshold voltage distribution as a mixture of two identically distributed Gaussian random

variables. When either a “0” or “1” is written to the cell, the threshold voltage is modeled as a

Gaussian random variable with variance N0/2 and either mean −√Es (for “1” ) or mean +

√Es

(for “0” ).

For SLC with two reads using two different word line voltages, which should be symmetric

(shown as q and −q in Fig. 2), the threshold voltage is quantized according to three regions

shown in Fig. 2: the white region, the black region, and the union of the light and dark gray

regions (which essentially corresponds to an erasure). This quantization produces the effective

discrete memoryless channel (DMC) model as shown in Fig. 3 (a) with input X ∈ {0, 1} and

output Y ∈ {0, e, 1}.

Assuming X is equally likely to be 0 or 1, the MI I(X; Y ) between the input X and output

Maximize mutual information of the induced channel to determine thebest thresholds (here T and −T )

42 / 76

Page 75: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

LDPC for Flash: Extracting soft information

Idea: multiple word line reads

2 reads compare against two thresholds

0 1

p2 p1p3

T-T

0 0

1 1

e

p1

p1

p2p3

p2

p3

00

10

p1

p1

p2p3

p2

p3

01

11

p4

p4

0

1

(a) Two reads (b) Three reads

Fig. 3. Equivalent discrete memoryless channel models for SLC with (a) two reads and (b) three reads with distinct word-line

voltages.

A. PAM-Gaussian Model

This subsection describes how to select word-line voltages to achieve MMI in the context of

a simple model of the flash cell read channel as PAM transmission with Gaussian noise. MMI

word-line voltage selection is presented using three examples: SLC with two reads, SLC with

three reads, and 4-level MLC with six reads.

For SLC flash memory, each cell can store one bit of information. Fig. 2 shows the model of

the threshold voltage distribution as a mixture of two identically distributed Gaussian random

variables. When either a “0” or “1” is written to the cell, the threshold voltage is modeled as a

Gaussian random variable with variance N0/2 and either mean −√Es (for “1” ) or mean +

√Es

(for “0” ).

For SLC with two reads using two different word line voltages, which should be symmetric

(shown as q and −q in Fig. 2), the threshold voltage is quantized according to three regions

shown in Fig. 2: the white region, the black region, and the union of the light and dark gray

regions (which essentially corresponds to an erasure). This quantization produces the effective

discrete memoryless channel (DMC) model as shown in Fig. 3 (a) with input X ∈ {0, 1} and

output Y ∈ {0, e, 1}.

Assuming X is equally likely to be 0 or 1, the MI I(X; Y ) between the input X and output

Maximize mutual information of the induced channel to determine thebest thresholds (here T and −T )

42 / 76

Page 76: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

LDPC for Flash: Extracting soft information

Idea: multiple word line reads

2 reads compare against two thresholds

0 1

p2 p1p3

T-T

0 0

1 1

e

p1

p1

p2p3

p2

p3

00

10

p1

p1

p2p3

p2

p3

01

11

p4

p4

0

1

(a) Two reads (b) Three reads

Fig. 3. Equivalent discrete memoryless channel models for SLC with (a) two reads and (b) three reads with distinct word-line

voltages.

A. PAM-Gaussian Model

This subsection describes how to select word-line voltages to achieve MMI in the context of

a simple model of the flash cell read channel as PAM transmission with Gaussian noise. MMI

word-line voltage selection is presented using three examples: SLC with two reads, SLC with

three reads, and 4-level MLC with six reads.

For SLC flash memory, each cell can store one bit of information. Fig. 2 shows the model of

the threshold voltage distribution as a mixture of two identically distributed Gaussian random

variables. When either a “0” or “1” is written to the cell, the threshold voltage is modeled as a

Gaussian random variable with variance N0/2 and either mean −√Es (for “1” ) or mean +

√Es

(for “0” ).

For SLC with two reads using two different word line voltages, which should be symmetric

(shown as q and −q in Fig. 2), the threshold voltage is quantized according to three regions

shown in Fig. 2: the white region, the black region, and the union of the light and dark gray

regions (which essentially corresponds to an erasure). This quantization produces the effective

discrete memoryless channel (DMC) model as shown in Fig. 3 (a) with input X ∈ {0, 1} and

output Y ∈ {0, e, 1}.

Assuming X is equally likely to be 0 or 1, the MI I(X; Y ) between the input X and output

Maximize mutual information of the induced channel to determine thebest thresholds (here T and −T )

42 / 76

Page 77: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

LDPC for Flash: Extracting soft information

Idea: multiple word line reads

3 reads compare against three thresholds

0 1

p4 p1p2

T1-T1

p3

0 0

1 1

e

p1

p1

p2p3

p2

p3

00

10

p1

p1

p2p3

p2

p3

01

11

p4

p4

0

1

(a) Two reads (b) Three reads

Fig. 3. Equivalent discrete memoryless channel models for SLC with (a) two reads and (b) three reads with distinct word-line

voltages.

A. PAM-Gaussian Model

This subsection describes how to select word-line voltages to achieve MMI in the context of

a simple model of the flash cell read channel as PAM transmission with Gaussian noise. MMI

word-line voltage selection is presented using three examples: SLC with two reads, SLC with

three reads, and 4-level MLC with six reads.

For SLC flash memory, each cell can store one bit of information. Fig. 2 shows the model of

the threshold voltage distribution as a mixture of two identically distributed Gaussian random

variables. When either a “0” or “1” is written to the cell, the threshold voltage is modeled as a

Gaussian random variable with variance N0/2 and either mean −√Es (for “1” ) or mean +

√Es

(for “0” ).

For SLC with two reads using two different word line voltages, which should be symmetric

(shown as q and −q in Fig. 2), the threshold voltage is quantized according to three regions

shown in Fig. 2: the white region, the black region, and the union of the light and dark gray

regions (which essentially corresponds to an erasure). This quantization produces the effective

discrete memoryless channel (DMC) model as shown in Fig. 3 (a) with input X ∈ {0, 1} and

output Y ∈ {0, e, 1}.

Assuming X is equally likely to be 0 or 1, the MI I(X; Y ) between the input X and output

Maximize mutual information of the induced channel to determine thebest thresholds (here T1, −T1 and 0)

43 / 76

Page 78: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

LDPC for Flash: Extracting soft information

Idea: multiple word line reads

3 reads compare against three thresholds

0 1

p4 p1p2

T1-T1

p3

0 0

1 1

e

p1

p1

p2p3

p2

p3

00

10

p1

p1

p2p3

p2

p3

01

11

p4

p4

0

1

(a) Two reads (b) Three reads

Fig. 3. Equivalent discrete memoryless channel models for SLC with (a) two reads and (b) three reads with distinct word-line

voltages.

A. PAM-Gaussian Model

This subsection describes how to select word-line voltages to achieve MMI in the context of

a simple model of the flash cell read channel as PAM transmission with Gaussian noise. MMI

word-line voltage selection is presented using three examples: SLC with two reads, SLC with

three reads, and 4-level MLC with six reads.

For SLC flash memory, each cell can store one bit of information. Fig. 2 shows the model of

the threshold voltage distribution as a mixture of two identically distributed Gaussian random

variables. When either a “0” or “1” is written to the cell, the threshold voltage is modeled as a

Gaussian random variable with variance N0/2 and either mean −√Es (for “1” ) or mean +

√Es

(for “0” ).

For SLC with two reads using two different word line voltages, which should be symmetric

(shown as q and −q in Fig. 2), the threshold voltage is quantized according to three regions

shown in Fig. 2: the white region, the black region, and the union of the light and dark gray

regions (which essentially corresponds to an erasure). This quantization produces the effective

discrete memoryless channel (DMC) model as shown in Fig. 3 (a) with input X ∈ {0, 1} and

output Y ∈ {0, e, 1}.

Assuming X is equally likely to be 0 or 1, the MI I(X; Y ) between the input X and output

Maximize mutual information of the induced channel to determine thebest thresholds (here T1, −T1 and 0)

43 / 76

Page 79: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Performance with multi read

Figure: Performance comparison for 0.9-rate LDPC and BCH codes of lengthn = 9100.

0 0.2 0.4 0.6 0.8 1

1.3

1.4

1.5

1.6

1.7

1.8

1.9

2

Threshold q

Mut

ual I

nfor

mat

ion

SNR 10 dBSNR 12 dBSNR 14 dBSNR 16 dBSNR 18 dB

Fig. 9. MI vs. q for various SNRs for the Gaussian model of MLC(four-level) Flash with the erasure regions in Fig. 8 of size 2q and cen-tered on the natural hard-decoding thresholds for Gaussians with means{µ1, µ2, µ3, µ4} = {!3, !1, 1, 3}.

0 5 10 15 200.8

1

1.2

1.4

1.6

1.8

2

SNR (dB)

Mut

ual I

nfor

mat

ion

constrained to a single qunconstrained

Fig. 10. MI vs. SNR for thresholds for MLC with six reads where optimiza-tion is either constrained by a single parameter q or fully unconstrained.

studied in Fig. 9 cause a significant reduction in MMI ascompared to unconstrained thresholds. Fig. 10 compares theperformance of the constrained optimization, which has asingle parameter q, and the full unconstrained optimization.As shown in the figure, the benefit of fully unconstrainedoptimization is insignificant.Fig. 11 shows performance of unconstrained MMI quan-

tization on the Gaussian channel model of Fig. 8 for threeand six reads for Codes 1 and 2. With four levels, three readsare required for hard decoding. For MLC (four-level) Flash,using six reads recovers more than half of the gap betweenhard decoding (three reads) and full soft-precision decoding.This is similar to the performance improvement seen for SLC(two-level) Flash when increasing from one read to two reads.Note that in Fig. 11, the trade-off between performance

with soft decoding and performance with hard decoding iseven more pronounced. Code 1 is clearly superior with softdecoding but demonstrates a noticeable error floor whendecoded with three or six reads.LDPC error floors due to absorbing sets can be sensitive

0.010.003 0.060.006 0.020.008 0.030.004 0.015

10−4

10−3

10−2

10−1

100

Channel Bit Error Probability

Fram

e Er

ror R

ate

Frame Error Rate vs. Raw Bit Error Rate (MLC Gaussian Model)

Hard BCHHard (3 reads)Code 1Hard (3 reads)Code 26 reads MMICode 16 reads MMICode 2Soft Code 2Soft Code 1Hard (3 reads)Shannon Limit6 readsShannon Limit MMISoft Shannon Limit

Fig. 11. FER vs. channel bit error probability simulation results using theGaussian channel model for 4-level MLC comparing LDPC Codes 1 and 2with varying levels of soft information and a BCH code with hard decoding.All codes have rate 0.9021.

Fig. 12. A (4,2) absorbing set. Variable nodes are shown as black circles.Satisfied check nodes are shown as white squares. Unsatisfied check nodesare shown as black squares. Note that each of the four variable nodes hasdegree three. This absorbing set is avoided by precluding degree-3 nodes.

to the quantization precision, occurring at low precision butnot at high precision [27], [28]. Code 1 has small absorbingsets including the (4, 2), (5, 1), and (5, 2) absorbing sets. Asshown in Fig. 12 for the (4,2) absorbing set, these absorbingsets can all be avoided by precluding degree-three variablenodes. Code 2 avoids these absorbing sets because it has nodegree-3 variable nodes. As shown in Fig. 11, Code 2 avoidsthe error floor problems of Code 1.

B. A More Realistic Model

We can extend the MMI analysis of Section III-B to anymodel for the Flash memory read channel. Consider againthe 4-level 6-read MLC as a 4-input 7-output DMC. Insteadof assuming Gaussian noise distributions as shown in Fig. 8,Fig. 13 shows the four conditional threshold-voltage proba-bility density functions generated according to the six-monthretention model of [16] and the six word-line voltages thatmaximize MI for this noise model. While the conditional noisefor each transmitted (or written) threshold voltage is similar tothat of a Gaussian, the variance of the conditional distributionsvaries greatly across the four possible threshold voltages. Notethat the lowest threshold voltage has by far the largest variance.

Caution:

Optimal code design in the error floor region depends on the chosenquantization.AWGN-optimized LDPC codes may not be the best for the quantized(and asymmetric) Flash channel !

44 / 76

Page 80: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Performance with multi read

Figure: Performance comparison for 0.9-rate LDPC and BCH codes of lengthn = 9100.

0 0.2 0.4 0.6 0.8 1

1.3

1.4

1.5

1.6

1.7

1.8

1.9

2

Threshold q

Mut

ual I

nfor

mat

ion

SNR 10 dBSNR 12 dBSNR 14 dBSNR 16 dBSNR 18 dB

Fig. 9. MI vs. q for various SNRs for the Gaussian model of MLC(four-level) Flash with the erasure regions in Fig. 8 of size 2q and cen-tered on the natural hard-decoding thresholds for Gaussians with means{µ1, µ2, µ3, µ4} = {!3, !1, 1, 3}.

0 5 10 15 200.8

1

1.2

1.4

1.6

1.8

2

SNR (dB)

Mut

ual I

nfor

mat

ion

constrained to a single qunconstrained

Fig. 10. MI vs. SNR for thresholds for MLC with six reads where optimiza-tion is either constrained by a single parameter q or fully unconstrained.

studied in Fig. 9 cause a significant reduction in MMI ascompared to unconstrained thresholds. Fig. 10 compares theperformance of the constrained optimization, which has asingle parameter q, and the full unconstrained optimization.As shown in the figure, the benefit of fully unconstrainedoptimization is insignificant.Fig. 11 shows performance of unconstrained MMI quan-

tization on the Gaussian channel model of Fig. 8 for threeand six reads for Codes 1 and 2. With four levels, three readsare required for hard decoding. For MLC (four-level) Flash,using six reads recovers more than half of the gap betweenhard decoding (three reads) and full soft-precision decoding.This is similar to the performance improvement seen for SLC(two-level) Flash when increasing from one read to two reads.Note that in Fig. 11, the trade-off between performance

with soft decoding and performance with hard decoding iseven more pronounced. Code 1 is clearly superior with softdecoding but demonstrates a noticeable error floor whendecoded with three or six reads.LDPC error floors due to absorbing sets can be sensitive

0.010.003 0.060.006 0.020.008 0.030.004 0.015

10−4

10−3

10−2

10−1

100

Channel Bit Error Probability

Fram

e Er

ror R

ate

Frame Error Rate vs. Raw Bit Error Rate (MLC Gaussian Model)

Hard BCHHard (3 reads)Code 1Hard (3 reads)Code 26 reads MMICode 16 reads MMICode 2Soft Code 2Soft Code 1Hard (3 reads)Shannon Limit6 readsShannon Limit MMISoft Shannon Limit

Fig. 11. FER vs. channel bit error probability simulation results using theGaussian channel model for 4-level MLC comparing LDPC Codes 1 and 2with varying levels of soft information and a BCH code with hard decoding.All codes have rate 0.9021.

Fig. 12. A (4,2) absorbing set. Variable nodes are shown as black circles.Satisfied check nodes are shown as white squares. Unsatisfied check nodesare shown as black squares. Note that each of the four variable nodes hasdegree three. This absorbing set is avoided by precluding degree-3 nodes.

to the quantization precision, occurring at low precision butnot at high precision [27], [28]. Code 1 has small absorbingsets including the (4, 2), (5, 1), and (5, 2) absorbing sets. Asshown in Fig. 12 for the (4,2) absorbing set, these absorbingsets can all be avoided by precluding degree-three variablenodes. Code 2 avoids these absorbing sets because it has nodegree-3 variable nodes. As shown in Fig. 11, Code 2 avoidsthe error floor problems of Code 1.

B. A More Realistic Model

We can extend the MMI analysis of Section III-B to anymodel for the Flash memory read channel. Consider againthe 4-level 6-read MLC as a 4-input 7-output DMC. Insteadof assuming Gaussian noise distributions as shown in Fig. 8,Fig. 13 shows the four conditional threshold-voltage proba-bility density functions generated according to the six-monthretention model of [16] and the six word-line voltages thatmaximize MI for this noise model. While the conditional noisefor each transmitted (or written) threshold voltage is similar tothat of a Gaussian, the variance of the conditional distributionsvaries greatly across the four possible threshold voltages. Notethat the lowest threshold voltage has by far the largest variance.

Caution:

Optimal code design in the error floor region depends on the chosenquantization.AWGN-optimized LDPC codes may not be the best for the quantized(and asymmetric) Flash channel !

44 / 76

Page 81: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

45 / 76

Page 82: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Write latency

Recall Flash programming

In practice incremental steppulse programming is used,a.k.a. guess and verify.

Latency increases with numberof levels.

If one allows for “dirty writes”, it suffices to correct errors in only onedirection.

46 / 76

Page 83: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Write latency

Recall Flash programming

In practice incremental steppulse programming is used,a.k.a. guess and verify.

Latency increases with numberof levels.

If one allows for “dirty writes”, it suffices to correct errors in only onedirection.

46 / 76

Page 84: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Write latency

Recall Flash programming

In practice incremental steppulse programming is used,a.k.a. guess and verify.

Latency increases with numberof levels.

If one allows for “dirty writes”, it suffices to correct errors in only onedirection.

46 / 76

Page 85: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Coding for asymmetric, limited-magnitude errors

If one allows for “dirty writes”, it suffices to correct errors in only onedirection and that are of limited magnitude.

Definition (ALM Code)

Let C1 be a code over the alphabet Q1. The code C over the alphabet Q(with |Q| > |Q1| = q1 = `+ 1) is defined asC = {x = (x1, x2, . . . , xn) ∈ Qn | x mod q1 ∈ C1}.

Theorem

Code C corrects t asymmetric errors of limited magnitude ` if code C1corrects t symmetric errors.

New construction inherits encoding/decoding complexity of theunderlying (symmetric) ECC.

Connections with additive number theory and asymmetric ECC(Varshamov 1970s).

47 / 76

Page 86: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Coding for asymmetric, limited-magnitude errors

If one allows for “dirty writes”, it suffices to correct errors in only onedirection and that are of limited magnitude.

Definition (ALM Code)

Let C1 be a code over the alphabet Q1. The code C over the alphabet Q(with |Q| > |Q1| = q1 = `+ 1) is defined asC = {x = (x1, x2, . . . , xn) ∈ Qn | x mod q1 ∈ C1}.

Theorem

Code C corrects t asymmetric errors of limited magnitude ` if code C1corrects t symmetric errors.

New construction inherits encoding/decoding complexity of theunderlying (symmetric) ECC.

Connections with additive number theory and asymmetric ECC(Varshamov 1970s).

47 / 76

Page 87: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further Reading (1/2)

Y. Cassuto, M. Schwartz, V. Bohossian, and J. Bruck, “Codes forasymmetric limited magnitude errors with application to multilevelflash memories”, T-IT, 2010.

S. Yari, T. Kløve, and B. Bose, “Some codes correcting unbalancederrors of limited magnitude for flash memories”, T-IT, 2013.

S. Bizaglo and T. Etzion, “Tilings with n-dimensional chairs and theirapplications to asymmetric codes”, T-IT,2013.

H. Zhou, A. Jiang, and J. Bruck, “Nonuniform codes for correctingasymmetric errors in data storage”, T-IT, 2013.

M. Blaum, “Codes for detecting and correcting unidirectional errors”,1993.

48 / 76

Page 88: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further Reading (2/2)

R. Gabrys, E. Yaakobi, and L. Dolecek, “Graded bit error correctingcodes with applications to flash memory”, T-IT, 2013.

P. Vontobel and R. Roth, “Coding for combined block-symbol errorcorrection”, T-IT, 2014.

J. Wang et al., “Enhanced precision through multiple reads for LDPCdecoding in flash memories”, JSAC, 2014.

J. Wang, L. Dolecek, and R. D. Wesel, “The cycle consistency matrixapproach to LDPC absorbing sets in separable circulant-based codes”,T-IT, 2013.

K. Haymaker and C. Kelley, “Structured bit-interleaved LDPC codesfor MLC flash memory”, JSAC, 2014.

A. Jiang, H. Li, and J. Bruck, “On the capacity and programming offlash memories”, T-IT, 2012.

49 / 76

Page 89: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 90: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 91: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 92: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 93: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 94: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 95: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on coding for spatio-temporal variabilityin NVMs

1 Investigation of algebraic codes for both transient andpermanent errors

2 Investigation of graph-based binary and non-binary codesand their decoders for flash (LDPC, spatially coupledcodes etc.)

3 Constructions with tighter bounds, i.e., beyondasymptotic optimality

4 Noise-adaptive coding

5 Coding for the target average performance

6 Deeper connections with number theoretic andcombinatorial methods

7 Performance – complexity tradeoff and evaluations formore realistic channels

50 / 76

Page 96: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

51 / 76

Page 97: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Coding can defer costly erases

Recall write and block-erase operations

What if we can maximize the amount of data written before the blockerase is necessary?

52 / 76

Page 98: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

WOM Coding

53 / 76

Page 99: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

WOM Coding

53 / 76

Page 100: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Write-once memory (WOM)

Cells are irreversibly programmed from “0” to “1”

Original applications of WOM were punch cards and optical disks

WOM coding allows for increased storage utilization

54 / 76

Page 101: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

The mother of all WOM codes

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

55 / 76

Page 102: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 1

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 10 → Encode: 101.

56 / 76

Page 103: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 1

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 10 → Encode: 101.

56 / 76

Page 104: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 1

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 10 → Encode: 101.

56 / 76

Page 105: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 1

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 10 → Encode: 101.

57 / 76

Page 106: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 2

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 01 → Encode: 001. No change.

58 / 76

Page 107: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 2

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 01 → Encode: 001. No change.

58 / 76

Page 108: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Encoding example 2

Rivest-Shamir WOM code:

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Write-1: 01 → Encode: 001.

Write-2: 01 → Encode: 001. No change.

58 / 76

Page 109: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

WOM model

!"#$%&'#"%(& )(*+,-&'#"%(& ./"#-&'#"%(&

Definition (WOM constraint)

The memory state is modeled as a vector yj of length n where j is thecurrent write (or generation). Each element y j

i , 1 ≤ i ≤ n, takes values inthe set {0, 1, . . . q − 1}. On write j , the encoder writes one of Mj

messages to the memory by updating yj−1 to yj while satisfying theWOM-constraint yj ≥ yj−1.

59 / 76

Page 110: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

WOM model

Definition (Sum rate)

If Mj codewords can be represented at generationj , then generation j has rate 1

n log(Mj). The sumrate is the sum of rates across generations.

Rivest-Shamir code has rate log(M1 + M2)/n = log(4 + 4)/3 = 1.33.

Capacity is the maximum achievable sum rate.

60 / 76

Page 111: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

WOM model

Definition (Sum rate)

If Mj codewords can be represented at generationj , then generation j has rate 1

n log(Mj). The sumrate is the sum of rates across generations.

Rivest-Shamir code has rate log(M1 + M2)/n = log(4 + 4)/3 = 1.33.

Capacity is the maximum achievable sum rate.

60 / 76

Page 112: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

WOM model

Definition (Sum rate)

If Mj codewords can be represented at generationj , then generation j has rate 1

n log(Mj). The sumrate is the sum of rates across generations.

Rivest-Shamir code has rate log(M1 + M2)/n = log(4 + 4)/3 = 1.33.

Capacity is the maximum achievable sum rate.

60 / 76

Page 113: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Capacity as a function of field order size

0

1

2

3

4

5

6

7

8

0 5 10 15 20

Capaci

ty(n

orm

alize

d)

Number of generations t

Unrestricted sum-rate for q = 2, 4, 8, 10

q = 2Uncoded

61 / 76

Page 114: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Capacity as a function of field order size

0

1

2

3

4

5

6

7

8

0 5 10 15 20

Capaci

ty(n

orm

alize

d)

Number of generations t

Unrestricted sum-rate for q = 2, 4, 8, 10

q = 10q = 8q = 4q = 2

Uncoded

61 / 76

Page 115: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Equal rate vs. unequal rate per write

0

1

2

3

4

5

0 5 10 15 20

Capaci

ty(b

its)

Number of generations t

Capacity of binary WOM codes

Unrestricted-rateFixed-rate

62 / 76

Page 116: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Equal rate vs. unequal rate per write

0

1

2

3

4

5

0 5 10 15 20

Capaci

ty(b

its)

Number of generations t

Capacity of binary WOM codes

3.46

3.35

Unrestricted-rateFixed-rate

62 / 76

Page 117: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of binary WOM codes

We want to construct a binary three-write WOM over 2n cells.

Let C3 be a ternary two-write WOM of length n.

First write

Pick a first-generation codeword u in C3.Map length-n u into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.

Second write

Pick a second-generation codeword v in C3.Map length-n v into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.Program each pair only once.

Third write

Write length-n binary string in the unused cells (one per pair).

63 / 76

Page 118: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of binary WOM codes

We want to construct a binary three-write WOM over 2n cells.

Let C3 be a ternary two-write WOM of length n.

First write

Pick a first-generation codeword u in C3.Map length-n u into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.

Second write

Pick a second-generation codeword v in C3.Map length-n v into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.Program each pair only once.

Third write

Write length-n binary string in the unused cells (one per pair).

63 / 76

Page 119: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of binary WOM codes

We want to construct a binary three-write WOM over 2n cells.

Let C3 be a ternary two-write WOM of length n.

First write

Pick a first-generation codeword u in C3.Map length-n u into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.

Second write

Pick a second-generation codeword v in C3.Map length-n v into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.Program each pair only once.

Third write

Write length-n binary string in the unused cells (one per pair).

63 / 76

Page 120: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of binary WOM codes

We want to construct a binary three-write WOM over 2n cells.

Let C3 be a ternary two-write WOM of length n.

First write

Pick a first-generation codeword u in C3.Map length-n u into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.

Second write

Pick a second-generation codeword v in C3.Map length-n v into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.Program each pair only once.

Third write

Write length-n binary string in the unused cells (one per pair).

63 / 76

Page 121: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of binary WOM codes

We want to construct a binary three-write WOM over 2n cells.

Let C3 be a ternary two-write WOM of length n.

First write

Pick a first-generation codeword u in C3.Map length-n u into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.

Second write

Pick a second-generation codeword v in C3.Map length-n v into length-2n binary string using Φ(0) = 00,Φ(1) = 10, Φ(2) = 01.Program each pair only once.

Third write

Write length-n binary string in the unused cells (one per pair).

63 / 76

Page 122: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of non-binary WOM codes

We want to construct a non-binary two-write WOM with q levels,with 3|(q + 1).

Partition levels in groups of L = (q + 1)/3

first partition is {0, 1, . . . , L− 1}second partition is {L− 1, L, . . . , 2L− 1}third partition is {2L− 1, 2L, . . . , 3L− 1}

Let C2 be a binary two-write WOM code of length n.

First write:

first and second partition only

Pick a message m in Z n3 .

Pick a first-generation codeword u in C2.For each i , 1 ≤ i ≤ n: If ui = 0 write mi . If ui = 1 write mi + L.

Second write:

second and third partition only

Pick a message s in Z n3 .

Pick a second-generation codeword v in C2.For each i , 1 ≤ i ≤ n: If vi = 0 write si + (L− 1). If vi = 1 writesi + (2L− 1).

64 / 76

Page 123: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of non-binary WOM codes

We want to construct a non-binary two-write WOM with q levels,with 3|(q + 1).

Partition levels in groups of L = (q + 1)/3

first partition is {0, 1, . . . , L− 1}second partition is {L− 1, L, . . . , 2L− 1}third partition is {2L− 1, 2L, . . . , 3L− 1}

Let C2 be a binary two-write WOM code of length n.

First write:

first and second partition only

Pick a message m in Z n3 .

Pick a first-generation codeword u in C2.For each i , 1 ≤ i ≤ n: If ui = 0 write mi . If ui = 1 write mi + L.

Second write:

second and third partition only

Pick a message s in Z n3 .

Pick a second-generation codeword v in C2.For each i , 1 ≤ i ≤ n: If vi = 0 write si + (L− 1). If vi = 1 writesi + (2L− 1).

64 / 76

Page 124: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of non-binary WOM codes

We want to construct a non-binary two-write WOM with q levels,with 3|(q + 1).

Partition levels in groups of L = (q + 1)/3

first partition is {0, 1, . . . , L− 1}second partition is {L− 1, L, . . . , 2L− 1}third partition is {2L− 1, 2L, . . . , 3L− 1}

Let C2 be a binary two-write WOM code of length n.

First write:

first and second partition only

Pick a message m in Z n3 .

Pick a first-generation codeword u in C2.For each i , 1 ≤ i ≤ n: If ui = 0 write mi . If ui = 1 write mi + L.

Second write:

second and third partition only

Pick a message s in Z n3 .

Pick a second-generation codeword v in C2.For each i , 1 ≤ i ≤ n: If vi = 0 write si + (L− 1). If vi = 1 writesi + (2L− 1).

64 / 76

Page 125: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of non-binary WOM codes

We want to construct a non-binary two-write WOM with q levels,with 3|(q + 1).

Partition levels in groups of L = (q + 1)/3

first partition is {0, 1, . . . , L− 1}second partition is {L− 1, L, . . . , 2L− 1}third partition is {2L− 1, 2L, . . . , 3L− 1}

Let C2 be a binary two-write WOM code of length n.

First write:

first and second partition only

Pick a message m in Z n3 .

Pick a first-generation codeword u in C2.For each i , 1 ≤ i ≤ n: If ui = 0 write mi . If ui = 1 write mi + L.

Second write:

second and third partition only

Pick a message s in Z n3 .

Pick a second-generation codeword v in C2.For each i , 1 ≤ i ≤ n: If vi = 0 write si + (L− 1). If vi = 1 writesi + (2L− 1).

64 / 76

Page 126: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of non-binary WOM codes

We want to construct a non-binary two-write WOM with q levels,with 3|(q + 1).

Partition levels in groups of L = (q + 1)/3

first partition is {0, 1, . . . , L− 1}second partition is {L− 1, L, . . . , 2L− 1}third partition is {2L− 1, 2L, . . . , 3L− 1}

Let C2 be a binary two-write WOM code of length n.

First write: first and second partition onlyPick a message m in Z n

3 .Pick a first-generation codeword u in C2.For each i , 1 ≤ i ≤ n: If ui = 0 write mi . If ui = 1 write mi + L.

Second write:

second and third partition only

Pick a message s in Z n3 .

Pick a second-generation codeword v in C2.For each i , 1 ≤ i ≤ n: If vi = 0 write si + (L− 1). If vi = 1 writesi + (2L− 1).

64 / 76

Page 127: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

A construction of non-binary WOM codes

We want to construct a non-binary two-write WOM with q levels,with 3|(q + 1).

Partition levels in groups of L = (q + 1)/3

first partition is {0, 1, . . . , L− 1}second partition is {L− 1, L, . . . , 2L− 1}third partition is {2L− 1, 2L, . . . , 3L− 1}

Let C2 be a binary two-write WOM code of length n.

First write: first and second partition onlyPick a message m in Z n

3 .Pick a first-generation codeword u in C2.For each i , 1 ≤ i ≤ n: If ui = 0 write mi . If ui = 1 write mi + L.

Second write: second and third partition onlyPick a message s in Z n

3 .Pick a second-generation codeword v in C2.For each i , 1 ≤ i ≤ n: If vi = 0 write si + (L− 1). If vi = 1 writesi + (2L− 1).

64 / 76

Page 128: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

An example using Rivest and Shamir write-twice code forq = 2 and n = 8

Rivest-Shamir WOM code

Information First Generation Second Generation

00 000 11101 001 11010 010 10111 100 011

Non-binary WOM code

Write no. Information RS code + info Encoded values

1 (0,1),(0,1,2) (001),(012) (0,1,5)

2 (0,0),(2,1,2) (111),(212) (7,6,7)

65 / 76

Page 129: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Sum rate of short WOM codes

1

1.5

2

2.5

3

3.5

2 3 4 5

Capaci

ty(n

orm

alize

d)

Number of generations t

Unrestricted sum-rate for q = 2, 4, 8, 10

q = 10q = 8q = 4q = 2

Uncoded

66 / 76

Page 130: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Sum rate of short WOM codes

66 / 76

Page 131: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Sum rate of short WOM codes

66 / 76

Page 132: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Sum rate of short WOM codes

66 / 76

Page 133: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Sum rate of short WOM codes

66 / 76

Page 134: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Sum rate of short WOM codes

66 / 76

Page 135: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Facets of WOM coding

Capacity approaching constructionsA. Shpilka, “Capacity achieving multiwrite WOM codes”, T-IT, 2014.

D. Burshtein and A. Strugatski, “Polar write once memory codes”,T-IT 2013.

WOM with error correction/detection capabilities

Q. Huang, S. Lin, and K. A. S. Abdel Ghaffar, “Error correcting codesfor flash coding”, T-IT, 2011.

E. Yaakobi, P. H. Siegel, A. Vardy, and J. K. Wolf, “Multiple errorcorrecting WOM codes”, T-IT, 2012.

A. Jiang, Y. Li, E. En Gad, M. Langberg and J. Bruck, “Joint rewritingand error correction in write-once memories”, ISIT, 2013.

ExtensionsN. Bitouze, A. Graell i Amat, and E. Rosnes, “Using short synchronousWOM codes to make WOM codes decodable”, TCOM, 2014.L. Wang, M. Qin, E. Yaakobi, Y. H. Kim, and P. H. Siegel, “WOMwith retained messages”, ISIT, 2012.

Y. Cassuto and E. Yaakobi, “Short q-ary WOM codes with hot/coldwrite differentiation”, ISIT, 2012.

67 / 76

Page 136: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

68 / 76

Page 137: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Noisy writes in PCM

The write process in PCM is inherently inexact

The data can be written iteratively, by checking the content betweensuccessive writes

Correctly written cells need not be further updated (cells in PCM canbe accessed individually)

The write process terminates when all cells are sufficiently wellprogrammed

!"#$%&'(#)*&+,-..*/&

!"#$*/*$$&(*-0&+,-..*/&

&&

1(#)*&+".)("//*(&2.34)&5*$$-6*&

7)"(*0&5*$$-6*&

69 / 76

Page 138: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Noisy writes in PCM

The write process in PCM is inherently inexact

The data can be written iteratively, by checking the content betweensuccessive writes

Correctly written cells need not be further updated (cells in PCM canbe accessed individually)

The write process terminates when all cells are sufficiently wellprogrammed

!"#$%&'(#)*&+,-..*/&

!"#$*/*$$&(*-0&+,-..*/&

&&

1(#)*&+".)("//*(&2.34)&5*$$-6*&

7)"(*0&5*$$-6*&

69 / 76

Page 139: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Noisy writes in PCM

The write process in PCM is inherently inexact

The data can be written iteratively, by checking the content betweensuccessive writes

Correctly written cells need not be further updated (cells in PCM canbe accessed individually)

The write process terminates when all cells are sufficiently wellprogrammed

!"#$%&'(#)*&+,-..*/&

!"#$*/*$$&(*-0&+,-..*/&

&&

1(#)*&+".)("//*(&2.34)&5*$$-6*&

7)"(*0&5*$$-6*&

69 / 76

Page 140: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Noisy writes in PCM

The write process in PCM is inherently inexact

The data can be written iteratively, by checking the content betweensuccessive writes

Correctly written cells need not be further updated (cells in PCM canbe accessed individually)

The write process terminates when all cells are sufficiently wellprogrammed

!"#$%&'(#)*&+,-..*/&

!"#$*/*$$&(*-0&+,-..*/&

&&

1(#)*&+".)("//*(&2.34)&5*$$-6*&

7)"(*0&5*$$-6*&

69 / 76

Page 141: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Motivation: Noisy writes in PCM

The write process in PCM is inherently inexact

The data can be written iteratively, by checking the content betweensuccessive writes

Correctly written cells need not be further updated (cells in PCM canbe accessed individually)

The write process terminates when all cells are sufficiently wellprogrammed

!"#$%&'(#)*&+,-..*/&

!"#$*/*$$&(*-0&+,-..*/&

&&

1(#)*&+".)("//*(&2.34)&5*$$-6*&

7)"(*0&5*$$-6*&

69 / 76

Page 142: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Rewritable channel for PCM

!"#$%&'(#)*&+,-..*/&

!"#$*/*$$&(*-0&+,-..*/&

&&

1(#)*&+".)("//*(&2.34)&5*$$-6*&

7)"(*0&5*$$-6*&

Average rewriting cost is κ

Theorem

Capacity is upper-bounded by log(Γκ)

Parameter Γ depends on noise characteristics.

Exact expressions known in certain cases

Several extensions available

70 / 76

Page 143: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further Reading – Early Results

R. L. Rivest and A. Shamir, “How to reuse a “write-once” memory”,I&C, 1982.

J. K. Wolf, A. D. Wyner, J. Ziv, and J. Korner, “Coding forwrite-once memory”, AT&T, 1984.

C. Heegard, “On the capacity of permanent memory”, T-IT, 1985.

G. D. Cohen, P. Godlewski, and F. Merkx, “Linear binary code forwrite-once memories”, T-IT, 1986.

F. Fu and A. J. Han Vinck, “On the capacity of generalizedwrite-once memory with state transitions described by an arbitrarydirected acyclic graph”, T-IT, 1999.

71 / 76

Page 144: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further Reading – Recent Results

E. Yaakobi, S. Kayser, P. Siegel, A. Vardy, and J. K. Wolf, “Codes forwrite-once memories”, T-IT, 2012.

A. Bhatia, M. Qin, A. Iyengar, B. Kurkoski, and P. Siegel,“Lattice-based WOM codes for multilevel flash memories”, JSAC,2014.

R. Gabrys and L. Dolecek, “Constructions of nonbinary WOM codesfor multilevel flash memories”, preprint, 2014.

R. Gabrys, E. Yaakobi, L. Dolecek, P. Siegel, A. Vardy, and J. K. Wolf,“Non-binary WOM codes for multilevel flash memories”, ITW, 2011.

L. A. Lastras-Montano, M. Franceschini, T. Mittelholzer, and M.Sharma, “Rewritable storage channels”, ISITA, 2008.

R. Venkataramanan, S. Tatikonda, L. Lastras-Montano, M.Franceschini, “Rewritable storage channels with hidden state”, JSAC,2014.

72 / 76

Page 145: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Research problems on WOM and rewriting

1 Coding for rewritable channels with read feedback

2 Extensions to other related models (WAM, floating codesetc).

3 Connections with interference channels (e.g., dirty papercoding)

4 Establishment of the complete capacity region/beyondzero-error capacity.

5 Development of new tools for high-rate codes spanningmore than a couple of cells (e.g., lattices, posets)

73 / 76

Page 146: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

74 / 76

Page 147: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further topics – beyond coding

Statistical and signal processing methods for voltage thresholdmodeling and characterization

Parameter estimation and hypothesis testingStudy of time-varying stochastic processes

Communication methods for Flash channels

Design of optimal detectors under ICIUse of equalization and signal shaping

Capacity calculations

Analysis of quantized channelsNon asymptotic performance analysis

Probabilistic methods and complexity

Implementation complexity evaluation and prototypingAverage vs. worst case performance analysis and design

Applications of interference alignment and interference channels

75 / 76

Page 148: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further topics – beyond coding

Statistical and signal processing methods for voltage thresholdmodeling and characterization

Parameter estimation and hypothesis testingStudy of time-varying stochastic processes

Communication methods for Flash channels

Design of optimal detectors under ICIUse of equalization and signal shaping

Capacity calculations

Analysis of quantized channelsNon asymptotic performance analysis

Probabilistic methods and complexity

Implementation complexity evaluation and prototypingAverage vs. worst case performance analysis and design

Applications of interference alignment and interference channels

75 / 76

Page 149: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further topics – beyond coding

Statistical and signal processing methods for voltage thresholdmodeling and characterization

Parameter estimation and hypothesis testingStudy of time-varying stochastic processes

Communication methods for Flash channels

Design of optimal detectors under ICIUse of equalization and signal shaping

Capacity calculations

Analysis of quantized channelsNon asymptotic performance analysis

Probabilistic methods and complexity

Implementation complexity evaluation and prototypingAverage vs. worst case performance analysis and design

Applications of interference alignment and interference channels

75 / 76

Page 150: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further topics – beyond coding

Statistical and signal processing methods for voltage thresholdmodeling and characterization

Parameter estimation and hypothesis testingStudy of time-varying stochastic processes

Communication methods for Flash channels

Design of optimal detectors under ICIUse of equalization and signal shaping

Capacity calculations

Analysis of quantized channelsNon asymptotic performance analysis

Probabilistic methods and complexity

Implementation complexity evaluation and prototypingAverage vs. worst case performance analysis and design

Applications of interference alignment and interference channels

75 / 76

Page 151: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

Further topics – beyond coding

Statistical and signal processing methods for voltage thresholdmodeling and characterization

Parameter estimation and hypothesis testingStudy of time-varying stochastic processes

Communication methods for Flash channels

Design of optimal detectors under ICIUse of equalization and signal shaping

Capacity calculations

Analysis of quantized channelsNon asymptotic performance analysis

Probabilistic methods and complexity

Implementation complexity evaluation and prototypingAverage vs. worst case performance analysis and design

Applications of interference alignment and interference channels

75 / 76

Page 152: Channel Coding Methods for Emerging Data Storage and ...faculty.cs.tamu.edu/ajiang/Publications/tutorials/ISIT2014_Tutorial_Part_One.pdfChannel Coding Methods for Emerging Data Storage

TIME FOR A BREAK!

76 / 76