channel coding methods for emerging data storage and...
TRANSCRIPT
![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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/50.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/51.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/52.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/53.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/54.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/55.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/56.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/57.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/58.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/59.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/60.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/61.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/62.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/63.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/64.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/65.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/66.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/67.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/68.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/69.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/70.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/71.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/72.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/73.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/74.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/75.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/76.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/77.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/78.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/79.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/80.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/81.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/82.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/83.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/84.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/85.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/86.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/87.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/88.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/89.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/90.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/91.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/92.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/93.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/94.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/95.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/96.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/97.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/98.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/99.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/100.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/101.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/102.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/103.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/104.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/105.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/106.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/107.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/108.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/109.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/110.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/111.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/112.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/113.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/114.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/115.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/116.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/117.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/118.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/119.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/120.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/121.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/122.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/123.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/124.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/125.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/126.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/127.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/128.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/129.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/130.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/131.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/132.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/133.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/134.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/135.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/136.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/137.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/138.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/139.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/140.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/141.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/142.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/143.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/144.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/145.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/146.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/147.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/148.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/149.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/150.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/151.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022040115/5e70fc87812f2222f674c6a3/html5/thumbnails/152.jpg)
TIME FOR A BREAK!
76 / 76