Eitan Yaakobi, Laura Grupp Steven Swanson, Paul H. Siegel, and Jack K. Wolf Flash Memory Summit, August 2011 University of California San Diego Error-Correcting.

Slides:



Advertisements
Similar presentations
Noise-Predictive Turbo Equalization for Partial Response Channels Sharon Aviran, Paul H. Siegel and Jack K. Wolf Department of Electrical and Computer.
Advertisements

Introduction to Flash Memories And Flash Translation Layer
Flash storage memory and Design Trade offs for SSD performance
Thank you for your introduction.
Cyclic Code.
LEVERAGING ACCESS LOCALITY FOR THE EFFICIENT USE OF MULTIBIT ERROR-CORRECTING CODES IN L2 CACHE By Hongbin Sun, Nanning Zheng, and Tong Zhang Joseph Schneider.
0 秘 Type of NAND FLASH Discuss the Differences between Flash NAND Technologies: SLC :Single Level Chip MLC: Multi Level Chip TLC: Tri Level Chip Discuss:
The Performance of Polar Codes for Multi-level Flash Memories
Some Results on Codes for Flash Memory Michael Mitzenmacher Includes work with Hilary Finucane, Zhenming Liu, Flavio Chierichetti.
Near Shannon Limit Performance of Low Density Parity Check Codes
1 Eitan Yaakobi, Laura Grupp Steven Swanson, Paul H. Siegel, and Jack K. Wolf Flash Memory Summit, August 2010 University of California San Diego Efficient.
Avishai Wool lecture Introduction to Systems Programming Lecture 8.3 Non-volatile Memory Flash.
Santa Clara, CA USA August An Information Theory Approach for Flash Memory Eitan Yaakobi, Paul H. Siegel, Jack K. Wolf University of California,
1 Error Correction Coding for Flash Memories Eitan Yaakobi, Jing Ma, Adrian Caulfield, Laura Grupp Steven Swanson, Paul H. Siegel, Jack K. Wolf Flash Memory.
Coding for Flash Memories
Yinglei Wang, Wing-kei Yu, Sarah Q. Xu, Edwin Kan, and G. Edward Suh Cornell University Tuan Tran.
Generalized Communication System: Error Control Coding Occurs In Right Column. 6.
1 Verification Codes Michael Luby, Digital Fountain, Inc. Michael Mitzenmacher Harvard University and Digital Fountain, Inc.
Information-Theoretic Limits of Two-Dimensional Optical Recording Channels Paul H. Siegel Center for Magnetic Recording Research University of California,
Faculty of Computer Science © 2006 CMPUT 229 Special-Purpose Codes Binary, BCD, Hamming, Gray, EDC, ECC.
SIMS-201 Representing Information in Binary. 2  Overview Chapter 3: The search for an appropriate code Bits as building blocks of information Binary.
3/20/2013 Threshold Voltage Distribution in MLC NAND Flash: Characterization, Analysis, and Modeling Yu Cai 1, Erich F. Haratsch 2, Onur Mutlu 1, and Ken.
Yu Cai1, Erich F. Haratsch2 , Onur Mutlu1 and Ken Mai1
Coding and Algorithms for Memories Lecture 2 1.
File system support on Multi Level Cell (MLC) flash in open source April 17, 2008 Kyungmin Park Software Laboratories Samsung Electronics.
Program Interference in MLC NAND Flash Memory: Characterization, Modeling, and Mitigation Yu Cai 1 Onur Mutlu 1 Erich F. Haratsch 2 Ken Mai 1 1 Carnegie.
Memory and Programmable Logic
Daphne Koller Message Passing Loopy BP and Message Decoding Probabilistic Graphical Models Inference.
Application of Finite Geometry LDPC code on the Internet Data Transport Wu Yuchun Oct 2006 Huawei Hisi Company Ltd.
2010 IEEE ICECS - Athens, Greece, December1 Using Flash memories as SIMO channels for extending the lifetime of Solid-State Drives Maria Varsamou.
Extracting Robust Keys from NAND Flash Physical Unclonable Functions Shijie Jia, Luning Xia, Zhan Wang, Jingqiang Lin, Guozhu Zhang and Yafei Ji Institute.
CPEN Digital System Design
Distributed computing using Projective Geometry: Decoding of Error correcting codes Nachiket Gajare, Hrishikesh Sharma and Prof. Sachin Patkar IIT Bombay.
Embedded System Lab. Daeyeon Son Neighbor-Cell Assisted Error Correction for MLC NAND Flash Memories Yu Cai 1, Gulay Yalcin 2, Onur Mutlu 1, Erich F. Haratsch.
Error Correction and Partial Information Rewriting for Flash Memories Yue Li joint work with Anxiao (Andrew) Jiang and Jehoshua Bruck.
Introduction of Low Density Parity Check Codes Mong-kai Ku.
Memory Cell Operation.
DIGITAL COMMUNICATIONS Linear Block Codes
Towards minimizing read time for NAND Flash Towards minimizing read time for NAND Flash Globecom December 5 th, 2012 Borja Peleato, Rajiv Agarwal, John.
Welcome to Coding and Algorithms for Memories
Part 1: Overview of Low Density Parity Check(LDPC) codes.
Carnegie Mellon University, *Seagate Technology
FEC Linear Block Coding
Unique! coding for three different motivation flash codes network coding Slepian-Wolf coding test, take-home test.
Katie Hintze.  A non-volatile storage device that stores digitally encoded data  Introduced in 1956  Long-term persistent storage.
Coding and Algorithms for Memories Lecture 2 + 4
Digital Circuits Introduction Memory information storage a collection of cells store binary information RAM – Random-Access Memory read operation.
Code Construction and FPGA Implementation of a Low-Error-Floor Multi-Rate Low-Density Parity-Check Code Decoder Lei Yang, Hui Liu, C.-J Richard Shi Transactions.
Yue Li joint work with Anxiao (Andrew) Jiang and Jehoshua Bruck.
Coding and Algorithms for Memories Lecture 7 1.
Coding and Algorithms for Memories Lecture 6 1.
Simulation of Finite Geometry LDPC code on the Packet Erasure channel Wu Yuchun July 2007 Huawei Hisi Company Ltd.
Carnegie Mellon University, *Seagate Technology
Doc.: IEEE /701r3 TG3c Proposal July 2007 Chiu Ngo et al. - SamsungSlide 1 Project: IEEE P Working Group for Wireless Personal Area Networks.
Gunjeet Kaur Dronacharya Group of Institutions. Outline I Random-Access Memory Memory Decoding Error Detection and Correction Read-Only Memory Programmable.
II. Linear Block Codes. © Tallal Elshabrawy 2 Digital Communication Systems Source of Information User of Information Source Encoder Channel Encoder Modulator.
Coding and Algorithms for Memories Lecture 2
COS 518: Advanced Computer Systems Lecture 8 Michael Freedman
Neighbor-Cell Assisted Error Correction for MLC NAND Flash Memories
On-Chip ECC for Low-Power SRAM Design
DuraCache: A Durable SSD cache Using MLC NAND Flash Ren-Shuo Liu, Chia-Lin Yang, Cheng-Hsuan Li, Geng-You Chen IEEE Design Automation Conference.
Aya Fukami, Saugata Ghose, Yixin Luo, Yu Cai, Onur Mutlu
Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques Yu Cai, Saugata Ghose, Yixin Luo, Ken.
COS 518: Advanced Computer Systems Lecture 8 Michael Freedman
Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques HPCA Session 3A – Monday, 3:15 pm,
Information-Theoretic Study of Optical Multiple Access
CT-474: Satellite Communications
Use ECP, not ECC, for hard failures in resistive memories
COS 518: Advanced Computer Systems Lecture 9 Michael Freedman
Yu Cai, Yixin Luo, Erich F. Haratsch, Ken Mai, Onur Mutlu
Presentation transcript:

Eitan Yaakobi, Laura Grupp Steven Swanson, Paul H. Siegel, and Jack K. Wolf Flash Memory Summit, August 2011 University of California San Diego Error-Correcting Codes for TLC Flash

Outline  Flash Memory Structure  Partial Cell Usage in TLC Flash  ECC Comparison for TLC Flash  New ECC Scheme for TLC Flash 2

SLC, MLC and TLC Flash 3 High Voltage Low Voltage 1 Bit Per Cell 2 States SLC Flash High Voltage Low Voltage 2 Bits Per Cell 4 States MLC Flash High Voltage Low Voltage 3 Bits Per Cell 8 States TLC Flash

Flash Memory Structure  A group of cells constitute a page  A group of pages constitute a block In SLC flash, a typical block layout is as follows 4 page 0 page 1 page 2 page 3 page 4 page page 62 page 63

Flash Memory Structure  In MLC flash the two bits within a cell DO NOT belong to the same page – MSB page and LSB page  Given a group of cells, all the MSB’s constitute one page and all the LSB’s constitute another page 5 Row index MSB of first 2 14 cells LSB of first 2 14 cells MSB of last 2 14 cells LSB of last 2 14 cells 0 page 0 page 4 page 1 page 5 1 page 2 page 8 page 3 page 9 2 page 6 page 12 page 7 page 13 3 page 10 page 16 page 11 page 17 ⋮⋮⋮⋮⋮ 30 page 118 page 124 page 119 page page 122 page 126 page 123 page MSB/LSB

Flash Memory Structure - TLC 6 Row index MSB of first 2 16 cells CSB of first 2 16 cells LSB of first 2 16 cells MSB of last 2 16 cells CSB of last 2 16 cells LSB of last 2 16 cells 0 page 0 page 1 1 page 2 page 6 page 12 page 3 page 7 page 13 2 page 4 page 10 page 18 page 5 page 11 page 19 3 page 8 page 16 page 24 page 9 page 17 page 25 4 page 14 page 22 page 30 page 15 page 23 page 31 ⋮⋮⋮⋮⋮ 62 page 362 page 370 page 378 page 363 page 371 page page 368 page 376 page 369 page page 374 page 382 page 375 page page 380 page 381 MSB Page CSB Page LSB Page

7 Experiment Description  We checked several flash memory TLC blocks  For each block the following steps are repeated The block is erased A pseudo-random data is written to the block The data is read and compared to find errors  Remarks: We measured many more iterations than the manufacturer’s guaranteed number of erasures The experiment was done in laboratory conditions and related factors such as temperature change, intervals between erasures, or multiple readings before erasures were not considered

Raw BER Results 8

High Voltage Low Voltage

Partial Cell State Usage  Store either one or two bits in every cell For one bit, only the MSB pages For two bits, only the MSB and CSB pages  Two cases: The partial storage is introduced at the beginning The partial storage is introduced after 2000 normal program/erase cycles High Voltage Low Voltage

Partial Cell State Usage - BER 11

ECC Comparison  We evaluated different ECC schemes  BCH Codes  LDPC Codes Gallager Codes Protograph-based low-density convolutional codes AR4JA protograph-based LDPC codes LDPC codes taken from MacKay’s database of sparse graph codes 12

ECC Comparison R ≈

ECC Comparison R ≈

ECC Comparison R ≈

New ECC Scheme for TLC Flash  Errors are corrected in each page independently  In particular, in a group of MSB, CSB, and LSB pages sharing the same group of cells, errors are still corrected independently  Goal: to correct errors in a group of pages together  If a cell is in error, then with high probability one of the bits in the cell is in error

New ECC – Encoder 17 s 2 ∊ GF(2) r 2 C 2 Encoder p MSB = (p 1,…,p n ) p CSB = (c 1,…,c n ) p LSB = (l 1,…,l n ) ϕ u = (u 1,…,u n ) ∊ GF(4) n C 1 Encoder s 1 ∊ GF(4) r 1  From every group of three pages we generate one page over GF(4)  Use two codes A code over GF(4) – encodes the new page over GF(4) A binary code – encodes the MSB pages

New ECC – Encoder 18 s 2 ∊ GF(2) r 2 C 2 Encoder p MSB = (p 1,…,p n ) p CSB = (c 1,…,c n ) p LSB = (l 1,…,l n ) ϕ u = (u 1,…,u n ) ∊ GF(4) n C 1 Encoder s 1 ∊ GF(4) r 1  From every group of three pages we generate one page over GF(4)  Use two codes A code over GF(4) – encodes the new page over GF(4) A binary code – encodes the MSB pages

New ECC - Insights  If there is a cell error, then with high probability at most one of the bits in the cell is in error  The code over GF(4) find these one-bit cell-errors  However, it is still possible to see 2 -bit and 3 -bit cell errors  After the first stage, if a cell has 2 - or 3 -bit cel-errors, then all the bits are in error  The second code, working on the MSB bits, finds these errors 19

p’ MSB = (p’ 1,…,p’ n ) p’ CSB = (c’ 1,…,c’ n ) p’ LSB = (l’ 1,…,l’ n ) ϕ u’ = (u’ 1,…,u’ n ) ∊ GF(4) n C 1 Decoder s 1 ∊ GF(4) r 1 e’ = (e’ 1,…,e’ n ) ∊ GF(4) n ψ p’’ MSB = (p’’ 1,…,p’’ n ) p’’ CSB = (c’’ 1,…,c’’ n ) p’’ LSB = (l’’ 1,…,l’’ n ) C 2 Decoder s 2 ∊ GF(2) r 2 e’’ = (e’’ 1,…,e’’ n ) ∊ GF(2) n + MSB Page CSB Page LSB Page ++ New ECC – Decoder

21

22

23 Summary  Partial Cell Usage in TLC Flash  ECC Comparison for TLC Flash  New ECC Scheme for TLC Flash  More analysis of codes and error behavior - COME TO BOOTH #115!

Acknowledgements  Aman Bhatia, Brian K. Butler, Aravind Iyengar, and Minghai Qin for their help in processing the error measurement results and, in particular, for the LDPC code performance simulations  Jeff Ohshima and Hironori Uchikawa for their collaboration and support from Toshiba 24