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.

Slides:



Advertisements
Similar presentations
Introduction to Flash Memories And Flash Translation Layer
Advertisements

What is RAID Redundant Array of Independent Disks.
RAID Oh yes Whats RAID? Redundant Array (of) Independent Disks. A scheme involving multiple disks which replicates data across multiple drives. Methods.
Dan Ernst Improving Reliability We used parity to determine when a memory bit failed. We can protect buses from transmission failures using parity/ECC.
Flash storage memory and Design Trade offs for SSD performance
Thank you for your introduction.
Cyclic Code.
CSCI 4717/5717 Computer Architecture
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.
Some Results on Codes for Flash Memory Michael Mitzenmacher Includes work with Hilary Finucane, Zhenming Liu, Flavio Chierichetti.
Reliability of Disk Systems. Reliability So far, we looked at ways to improve the performance of disk systems. Next, we will look at ways to improve the.
1 The Basic Memory Element - The Flip-Flop Up until know we have looked upon memory elements as black boxes. The basic memory element is called the flip-flop.
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,
Error detection and correction
Coding for Flash Memories
Yinglei Wang, Wing-kei Yu, Sarah Q. Xu, Edwin Kan, and G. Edward Suh Cornell University Tuan Tran.
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.
/38 Lifetime Management of Flash-Based SSDs Using Recovery-Aware Dynamic Throttling Sungjin Lee, Taejin Kim, Kyungho Kim, and Jihong Kim Seoul.
National Institute of Science & Technology Technical Seminar Presentation-2004 Presented By: Arjun Sabat [EE ] Flash Memory By Arjun Sabat Roll.
Information Representation. Digital Hardware Systems Digital Systems Digital vs. Analog Waveforms Analog: values vary over a broad range continuously.
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.
Data and Computer Communications Chapter 6 – Digital Data Communications Techniques.
Practical Session 10 Error Detecting and Correcting Codes.
Coding and Algorithms for Memories Lecture 5 1.
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.
1 Amit Berman Reliable Architecture for Flash Memory Joint work with Uri C. Weiser, Acknowledgement: thanks to Idit Keidar Department of Electrical Engineering,
Memory Cell Operation.
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /3/2013 Lecture 9: Memory Unit Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE CENTRAL.
Neighbor-Cell Assisted Error Correction for MLC NAND Flash Memories Yu Cai 1 Gulay Yalcin 2 Onur Mutlu 1 Erich F. Haratsch 3 Adrian Cristal 2 Osman S.
Carnegie Mellon University, *Seagate Technology
Stable Biometric Features Description (not definition): Biometric features whose value change very infrequently among multiple prints of a finger Deformation.
Unique! coding for three different motivation flash codes network coding Slepian-Wolf coding test, take-home test.
Data Retention in MLC NAND FLASH Memory: Characterization, Optimization, and Recovery. 서동화
ECE/CS 552: Main Memory and ECC © Prof. Mikko Lipasti Lecture notes based in part on slides created by Mark Hill, David Wood, Guri Sohi, John Shen and.
Yue Li joint work with Anxiao (Andrew) Jiang and Jehoshua Bruck.
Digital Design Lecture 13
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.
Carnegie Mellon University, *Seagate Technology
Diana B. Llacza Sosaya Digital Communications Chosun University
FPGA System For Flash Memory Midterm Presentation Project B, Winter 2013, HSDSL Lab, Technion Supervisor: Amit Berman Students: Baruh Nurilov Eyal Amir.
Reliability of Disk Systems. Reliability So far, we looked at ways to improve the performance of disk systems. Next, we will look at ways to improve the.
Chapter 5 - Internal Memory 5.1 Semiconductor Main Memory 5.2 Error Correction 5.3 Advanced DRAM Organization.
Coding and Algorithms for Memories Lecture 2
Rakan Maddah1, Sangyeun2,1 Cho and Rami Melhem1
What you should know about Flash Storage
Coding and Algorithms for Memories Lecture 5
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
OptiSystem applications: BER analysis of BPSK with RS encoding
Coding and Algorithms for Memories Lecture 5
Hashing Alexandra Stefan.
Computer Architecture & Operations I
Flash EEPROM Emulation Concepts
Neighbor-cell Assisted Error Correction for MLC NAND Flash Memories
Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques Yu Cai, Saugata Ghose, Yixin Luo, Ken.
Dr. Clincy Professor of CS
RAID Redundant Array of Inexpensive (Independent) Disks
UNIT IV RAID.
Use ECP, not ECC, for hard failures in resistive memories
CS 325: CS Hardware and Software Organization and Architecture
Error Correction Coding
Presentation transcript:

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 Summit, August 2009 University of California San Diego

2 Experiment Description  We checked several flash memory blocks - SLC and MLC  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  Two runs are chosen as representatives for SLC and MLC SLC - Collected Iterations: 3,615,224 MLC - Collected Iterations: 1,054,031  Remarks: We measured many more iterations than the manufacturer’s guaranteed number of erasures The experiment was done in a lab conditions and related factors such as temperature change, intervals between erasures or multiple readings before erasures were not considered

3 Raw BER for SLC block The BER for each iteration is measured We average for every 200 consecutive iterations  10 6  Guaranteed lifetime by the manufacturer

4 Raw BER for MLC block The BER for each iteration is measured We average for every 50 consecutive iterations  10 5  Guaranteed lifetime by the manufacturer

5 Basic Error Characteristic  Directional Errors - Number of Plus errors Vs. Minus errors Plus error: Cell in state ‘0’ changes to state ‘1’ Minus error: Cell in state ‘1’ changes to state ‘0’ We check the distribution of the errors between plus and minus errors and the numbers are the same even for individual bits Conclusion: There is no preference to correct more plus than minus errors (or vice versa)  Burst behavior Check how close the errors are to each other Explore the potential (dis)advantage of using a RS code VS a BCH code Conclusion: The errors are random and do not have burst pattern behavior

6 SLC - BER Page Dependency  We checked the BER for each page independently  SLC block cells layout: 32x2 15 cells; each page has 2 14 cells page 1 page 2 page 3 page 4 page 5 page page 63 page 64

7 SLC - BER Page Dependency The odd pages have higher BER  10 6  Red plots – odd pages Blue plots – even pages

8 MLC - BER Page Dependency  The Most Significant Bit (MSB) and Least Significant Bit (LSB) represented by one cell belong to two different pages  Pages storing the LSB are less protected from errors 1 0 High Voltage Low Voltage 1,1 0,1 High Voltage Low Voltage 1,0 0,0 1 Bit Per Cell 2 States 2 Bits Per Cell 4 States Trapped Charge Trapped Charge Multi Level Cell (MLC) Single Level Cell (SLC)

9 MLC - BER Page Dependency A possible MLC block cell layout: Row index LSB of first 2 14 cells MSB of first 2 14 cells LSB of last 2 14 cells MSB of last 2 14 cells 1 page 1 page 5 page 2 page 6 2 page 3 page 9 page 4 page 10 3 page 7 page 13 page 8 page 14 4 page 11 page 17 page 12 page 18 5 page 15 page 21 page 16 page 22  31 page 119 page 125 page 120 page page 123 page 127 page 124 page 128

10 MLC - BER Page Dependency  10 5  Pages marked in the same color behave similarly

11 SLC - Bit Error Map  We checked how the errors behave for each bit  For a small window of iterations,  10 6 iterations - the BER is roughly fixed, we checked for each bit the number of times it was in error

12 SLC - Bit Error Map for Odd Pages Calculate the number of times each bit is in error Errors are clustered in columns rather than rows  10 4

13 SLC - Bit Error Map for Even Pages There are less errors since the BER of the right part is less than the BER of the left part  10 4

14 ECC Comparison  We compare between BCH, RS and burst-correcting codes  We compute the BER and PER assuming we used for each of these codes the same number of redundancy bits  Best results are achieved with BCH codes  We have another scheme for correcting errors within the entire block in two levels: First level: correct and detect errors in each page Second level: if there are errors that were detected and not corrected in the pages, use the last redundancy page(s) to correct them  We could improve the lifetime by ~14% Lifetime - first errors occurrence

15 Write Once Memory (WOM) Codes for SLC  A scheme for storing two bits twice using only three cells before erasing the cells  The cells only increase their level  How to implement? (in SLC block) Each page stores 2KB/1.5 = 4/3KB per write A page can be written twice before erasing Pages are encoded using the WOM code When the block has to be rewritten, mark its pages as invalid Again write pages using the WOM code without erasing Read before write at the second write data 1 st write 2 nd write Cells state 1 st write 2 nd write data cells 1 st write 2 nd write data 0111 cells st write 2 nd write data 01 cells 100  … 10 WOM ENCODER … … … … … … 010 I N V A L I D … … … … … … … 110 Advantages: The number of bits written per cell is 4/3 Possible to write twice before a physical erasure

16 BER for the First and Second Writes There are less errors since the BER of the right part is less than the BER of the left part  10 4

17 Summary  Error characterization in flash memories  Comparison between potential codes  ECC for the entire block  Write Once Memory (WOM) codes  More analysis of codes and error behavior - COME TO BOOTH #109!