Improving MLC flash performance and endurance with Extended P/E Cycles

Similar documents
The$Devil$is$in$the$Details:$ Implemen1ng$Flash$Page$Reuse$ with$wom$codes$

Technion - Computer Science Department - Tehnical Report CS

Write Once, Get 50% Free: Saving SSD Erase Costs Using WOM Codes

Health-Binning Maximizing the Performance and the Endurance of Consumer-Level NAND Flash

White Paper: Understanding the Relationship Between SSD Endurance and Over-Provisioning. Solid State Drive

OSSD: A Case for Object-based Solid State Drives

NAND Flash Memory. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Tutorial FTL. Jinyong Computer Systems Laboratory Sungkyunkwan University

SFS: Random Write Considered Harmful in Solid State Drives

Flash Trends: Challenges and Future

Middleware and Flash Translation Layer Co-Design for the Performance Boost of Solid-State Drives

Purity: building fast, highly-available enterprise flash storage from commodity components

Reducing Solid-State Storage Device Write Stress Through Opportunistic In-Place Delta Compression

FlexECC: Partially Relaxing ECC of MLC SSD for Better Cache Performance

Storage Systems : Disks and SSDs. Manu Awasthi CASS 2018

SSD Firmware Implementation Project Lab. #5

Storage Systems : Disks and SSDs. Manu Awasthi July 6 th 2018 Computer Architecture Summer School 2018

CBM: A Cooperative Buffer Management for SSD

Solid State Drives (SSDs) Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

QLC Challenges. QLC SSD s Require Deep FTL Tuning Karl Schuh Micron. Flash Memory Summit 2018 Santa Clara, CA 1

Improving LDPC Performance Via Asymmetric Sensing Level Placement on Flash Memory

I/O Devices & SSD. Dongkun Shin, SKKU

NAND/MTD support under Linux

Optimizing Translation Information Management in NAND Flash Memory Storage Systems

Understanding the Relation between the Performance and Reliability of NAND Flash/SCM Hybrid Solid- State Drive

Making Error Correcting Codes Work for Flash Memory

Toward SLO Complying SSDs Through OPS Isolation

A File-System-Aware FTL Design for Flash Memory Storage Systems

NAND Flash-based Storage. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Could We Make SSDs Self-Healing?

Partitioned Real-Time NAND Flash Storage. Katherine Missimer and Rich West

Tutorial FTL. Sejun Kwon Computer Systems Laboratory Sungkyunkwan University

Understanding SSD overprovisioning

Sub-block Wear-leveling for NAND Flash

Storage Architecture and Software Support for SLC/MLC Combined Flash Memory

It Takes Guts to be Great

Holistic Flash Management for Next Generation All-Flash Arrays

NAND Flash-based Storage. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

PEVA: A Page Endurance Variance Aware Strategy for the Lifetime Extension of NAND Flash

SSD Firmware Implementation Project Lab. #6

From Silicon to Solutions: Getting the Right Memory Mix for the Application

16:30 18:00, June 20 (Monday), 2011 # (even student IDs) # (odd student IDs) Scope

CS311 Lecture 21: SRAM/DRAM/FLASH

Power Analysis for Flash Memory SSD. Dongkun Shin Sungkyunkwan University

Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques

NAND Flash-based Storage. Computer Systems Laboratory Sungkyunkwan University

ParaFS: A Log-Structured File System to Exploit the Internal Parallelism of Flash Devices

NAND Flash-based Storage. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

SD 3.0 series (MLC) Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

VSSIM: Virtual Machine based SSD Simulator

Data Organization and Processing

1MG3-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

Presented by: Nafiseh Mahmoudi Spring 2017

1110 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 33, NO. 7, JULY 2014

How Good Is Your Memory? An Architect s Look Inside SSDs

From server-side to host-side:

SHRD: Improving Spatial Locality in Flash Storage Accesses by Sequentializing in Host and Randomizing in Device

A Caching-Oriented FTL Design for Multi-Chipped Solid-State Disks. Yuan-Hao Chang, Wei-Lun Lu, Po-Chun Huang, Lue-Jane Lee, and Tei-Wei Kuo

Recent Advances in Analytical Modeling of SSD Garbage Collection

Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date: Innodisk Approver. Customer Approver

SD series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

High Performance SSD & Benefit for Server Application

[537] Flash. Tyler Harter

High Performance and Highly Reliable SSD

Controller Concepts for 1y/1z nm and 3D NAND Flash

3MG2-P Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

3ME4 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

3ME4 Series. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date: Innodisk Approver. Customer Approver

Performance Modeling and Analysis of Flash based Storage Devices

Rechnerarchitektur (RA)

3D NAND - Data Recovery and Erasure Verification

It s Not Where Your Data Is, It s How It Got There

3ME3 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

3ME4 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

SOS : Software-based Out-of-Order Scheduling for High-Performance NAND Flash-Based SSDs

NAND Flash Architectures Reducing Write Amplification Through Multi-Write Codes

Maximizing Data Center and Enterprise Storage Efficiency

Using MLC Flash to Reduce System Cost in Industrial Applications

Don t Let RAID Raid the Lifetime of Your SSD Array

Transitioning from e-mmc to UFS: Controller Design. Kevin Liu ASolid Technology Co., Ltd.

Disks and RAID. CS 4410 Operating Systems. [R. Agarwal, L. Alvisi, A. Bracy, E. Sirer, R. Van Renesse]

Designing Enterprise Controllers with QLC 3D NAND

Getting Real: Lessons in Transitioning Research Simulations into Hardware Systems

SSDPlayer Visualization Platform

Content courtesy of Wikipedia.org. David Harrison, CEO/Design Engineer for Model Sounds Inc.

Overprovisioning and the SanDisk X400 SSD

Flash Memory Based Storage System

3MS4 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

islc A Cost-Effective Superior-MLC Solution With Similar Performance, Endurance and Reliability to SLC White Paper June 2017

SD series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

SSD Firmware Implementation Project Lab. #4

3ME3 Series. Customer Approver. InnoDisk Approver. Customer: Customer Part Number: InnoDisk Part Number: InnoDisk Model Name: Date:

Introduction to Open-Channel Solid State Drives

3MG-P Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

SSD (Solid State Disk)

Datasheet. Embedded Storage Solutions. Industrial. SATA III 2.5 Solid State Drive. SED2FIV Series CSXXXXXRC-XX09XXXX. 04 Jul 2016 V1.

COS 318: Operating Systems. Storage Devices. Vivek Pai Computer Science Department Princeton University

Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date: Innodisk Approver. Customer Approver

3SE4 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

Mass-Storage Structure

Transcription:

Improving MLC flash performance and endurance with Extended P/E Cycles Fabio Margaglia, André Brinkmann Johannes Gutenberg University, Mainz, Germany

Motivation Flash wear out is dependent on the number of erase operations Many efforts to reduce the erase operations Reuse pages through special encodings (WOM codes) and data structures that exploit the flash properties Proven for SLC or in simulation [Yagmohan et. al, MSST 2010, Odeh et al., MSST 2014, Yadgar et al.,fast 2015] Non of these techniques have ever been implemented within MLC flash environment Is this possible? What would be the constraints? 4.6.2015 Fabio Margaglia 1

Normal P/E Cycles Page: read/program granularity Block: erase granularity Must erase before program (arbitrary data) P/E Cycle: 1. Program all pages in order, one time 2. Erase entire block Problems: 1. Erase is slow 2. Need to copy valid pages 3. Wear the flash block page 0 page 1 page 2 page 3 page 4 page 5... page 126 page 127 4.6.2015 Fabio Margaglia 2

Extended P/E Cycles Extend the P/E cycles: Reprogram pages multiple times per cycle (+) Reduce the number of erase operations (+) Reduce internal copying: improve performance (+) Reduce flash wear out: improve endurance (~) Reprogram pages is not trivial in SLC (--) Even more difficult in MLC Our contribution: Enable Extended P/E Cycles on MLC block page 0 page 1 page 2 page 3 page 4 page 5... page 126 page 127 4.6.2015 Fabio Margaglia 3

SLC Single Level Cell Every SLC is characterized by V th program operations increase V th erase operations reset V th single read point R 1 Distinguish between 2 states => 1 bit of information Low V th : 1 High V th : 0 Condition for page reprograms: never 0 to 1 Write Once Memory Constraint 4.6.2015 Fabio Margaglia 4

Write Once Memory Codes Plain bits 1 st gen 2 nd gen 00 111 000 01 110 001 10 101 010 11 011 100 [Rivest and Shamir, 1982] (originally expressed with 0 to 1 constraint) WOM Codes: encode n bits with m wits, where m > n encoding organized into WOM compatible generations Example: 01 10 Reprogram 110 010 4.6.2015 Fabio Margaglia 5

WOM compatible data structures B-Tree: Initialize nodes with all 1s Append new keys, values, pointers [Kaiser et. al, SYSTOR 2013] Reprogram key1, key2 1111111111111 key1, key2, key3 1111111 Bloom Filters: Based on bitmap WOM compatible by construction [Bloom, 1970] 4.6.2015 Fabio Margaglia 6

What about MLC? 4.6.2015 Fabio Margaglia 7

MLC Multi Level Cell Every MLC is characterized by V th program operations increase V th erase operations reset V th 3 read points R 1, R 2, R 3 Distinguish between 4 states => 2 bits of information Called Low Bit and High Bit Condition for page reprograms: WOM constraint is not enough Program disturbance between Low Bit and High Bit [Grupp et. al, MICRO 2009] 4.6.2015 Fabio Margaglia 8

MLC mapping bits to pages The bits of a single MLC are mapped to 2 independent pages Block page 0 page 1 page 2 page 3 page 4 Low Page High Page Program disturbance across pages V th diagram is not the best tool to understand program disturbance page 125 page 126 page 127 4.6.2015 Fabio Margaglia 9

State Diagram Extracted from Samsung 35nm MLC chip (3) (4) State 1 (1) State 3 High Bit: 0 (0) Erased State Low Bit: 1 (5) (7) (9) (2) (10) (11) State 4 State 2 Low Bit: 1 High Bit: 0 Bubbles = flash states with bit values Transitions = program operations on single bit e.g. = program 1 on the Low Bit (8) (6) / / 4.6.2015 Fabio Margaglia 10

State Diagram 5 States, 2 with the same bit values (3) (4) State 1 (1) State 3 High Bit: 0 (0) Erased State Low Bit: 1 (5) (7) (9) (2) (10) (11) State 4 State 2 Low Bit: 1 High Bit: 0 Bubbles = flash states with bit values Transitions = program operations on single bit e.g. = program 1 on the Low Bit (8) (6) / / 4.6.2015 Fabio Margaglia 11

State Diagram: Program the Low Page (3) (4) State 1 (1) State 3 High Bit: 0 (0) Erased State Low Bit: 1 (2) (5) (7) (9) (10) (11) State 4 State 2 Low Bit: 1 High Bit: 0 (8) (6) / / 4.6.2015 Fabio Margaglia 12

State Diagram: Program the High Page (0) (1) Erased State Low Bit: 1 (2) (3) (4) State 1 (5) (7) State 2 Low Bit: 1 High Bit: 0 (8) (6) State 3 High Bit: 0 (9) (10) (11) State 4 / / 4.6.2015 Fabio Margaglia 13

State Diagram: Faulty Transitions (0) (1) Erased State Low Bit: 1 (2) (3) (4) State 1 (5) (7) State 2 Low Bit: 1 High Bit: 0 (8) (6) State 3 High Bit: 0 (9) (10) (11) State 4 / / 4.6.2015 Fabio Margaglia 14

State Diagram: Faulty Transitions (0) (1) Erased State Low Bit: 1 (2) (3) (4) State 1 (5) (7) State 2 Low Bit: 1 High Bit: 0 (8) (6) State 3 High Bit: 0 (9) (10) (11) State 4 / / 4.6.2015 Fabio Margaglia 15

State Diagram: Faulty Transitions WOM constraint alone does not avoid all these transitions (0) (1) Erased State Low Bit: 1 (2) (3) (4) State 1 (5) (7) State 2 Low Bit: 1 High Bit: 0 (8) (6) State 3 High Bit: 0 (9) (10) (11) State 4 / / 4.6.2015 Fabio Margaglia 16

Our solution Bimodal usage that allows: Page reprograms (only the low pages) Uses both high and low page Compatible with WOM constraint 4.6.2015 Fabio Margaglia 17

Bimodal Usage 1 st mode: reprogram all low pages with WOM constraint (3) (4) State 1 (1) State 3 High Bit: 0 (0) Erased State Low Bit: 1 (2) (5) (7) (9) (10) (11) State 4 State 2 Low Bit: 1 High Bit: 0 (8) (6) / / 4.6.2015 Fabio Margaglia 18

Bimodal Usage 2 nd mode: - stop reprogramming the low pages (still readable) - program the high pages once (any value) (0) (1) Erased State Low Bit: 1 (2) (3) (4) State 1 (5) (7) State 2 Low Bit: 1 High Bit: 0 (8) (6) State 3 High Bit: 0 (9) (10) (11) State 4 / / 4.6.2015 Fabio Margaglia 19

Prototype Jasmine OpenSSD board www.openssd-project.org ARM7TDMI single core SATA interface 64MB DRAM Samsung 35nm MLC Application Host Interconnect SSD Host Interface Logic Controller FTL Flash Chip Flash Chip Flash Chip Flash Chip Flash Chip Flash Chip Mapping Tables 4.6.2015 Fabio Margaglia 20

Interface Application Host Interconnect SSD Host Interface Logic Controller FTL Flash Chip Flash Chip Flash Chip Flash Chip Flash Chip Flash Chip Mapping Tables Interface augmented: read write overwrite The application generates WOM compatible data Other approaches do not modify the interface and use WOM codes internally (too heavy for the Jasmine controller) [Yadgar et al., FAST 2015] 4.6.2015 Fabio Margaglia 21

Baseline Flash Translation Layer SSD Application Host Interconnect Host Interface Logic Controller FTL Flash Chip Flash Chip Flash Chip Flash Chip Flash Chip Flash Chip Mapping Tables Log structured Page Mapped Full Write Blocks... GC Clean Blocks... Garbage Collection with greedy strategy Blk full Active Write Block Get new blk Overwrite commands are considered as writes Next write page : Programmed page : Empty page 4.6.2015 Fabio Margaglia 22

Implementing the Bimodal Usage Distinguish between 2 types of blocks: Write Block Next write page Overwrite Block Next overwrite page 1 st Mode : Reprogrammable page : Not reprogrammable page : Empty page Overwrite bit in the mapping table: 4.6.2015 Fabio Margaglia 23

Seal Operation Full OW Blocks... Seal Active Write Block Next write page 2 nd Mode : Reprogrammable page : Not reprogrammable page : Empty page 1. Read the inverse mapping table from the last low page 2. Flip the overwrite bits in the main mapping table 3. Set the next write page pointer to use the high pages Inverse mapping table 4.6.2015 Fabio Margaglia 24

Putting it all together.. Seal FTL Full Write Blocks... GC (1) Clean Blocks... Blk full Active Write Block Next write page Seal GC (2) Full OW Blocks... : Reprogrammable page : Not reprogrammable page : Empty page Active OW Block Next overwrite page Blk full 4.6.2015 Fabio Margaglia 25

GC strategies Need new write block: Seal GC (1) Full Write Blocks... Seal FTL GC (1) Clean Blocks... Victim selection: greedy Blk full GC (2) Need new overwrite block: GC (1) GC (2) Victim selection: greedy Active Write Block Next write page Seal : Reprogrammable page : Not reprogrammable page : Empty page Full OW Blocks... Active OW Block Next overwrite page Blk full 4.6.2015 Fabio Margaglia 26

ECC Flash pages have a spare region. Traditionally ECC is stored there. Jasmine limitation: fixed ECC location in the spare region Spare region is FLASH as well. DATA0 DATA1 ECC0 ECC1 Solution: WOM codes with correction capabilities [Gad et al., Polar codes for noisy channels, ISIT 2014] Append ECCs in the spare region Manage ECC in software In the evaluation 8 page reprograms are used not much gain beyond that [Kaiser et al., SYSTOR2013] 1.7.2013 Fabio Margaglia 27

Evaluation What is the reliability of the extended P/E cycles? How many erase operations can we save? How much data is copied internally by GC? How is performance affected? 4.6.2015 Fabio Margaglia 28

Reliability BER test loop: Reprogram 8 times all Low Pages in random order Program 1 time all High Pages in page order Erase entire block WOM compatible data artificially generated (50% bit flipped) Comparison with previous works: MLC 35nm BER > 10-4 @ 10k P/E cycles [Grupp et. al, Bleak future of NAND flash memory, FAST 2012] 4.6.2015 Fabio Margaglia 29

Evaluation (1): Benchmark Micro Benchmark: SSD user addressable space (8GB) Overprovisioning (1GB) Dataset size (6GB) Overwrite region Write region Parameters: Overwrite region percentage (5% to 50%) Overwrite skewness (40% to 80%) Uniform distribution inside W/OW region 32KB write operations WOM compatible data generated artificially Benchmark run: 1. Warmup: write all write region and all overwrite region 2. Run: write/overwrite twice the dataset (12GB) according to parameters 4.6.2015 Fabio Margaglia 30

Evaluation (2): # Erase Operations Corresponds to the number of GC operations 85% 4.6.2015 Fabio Margaglia 31

Evaluation (3): Data copied per GC Op. 4.6.2015 Fabio Margaglia 32

Evaluation (4): Total data copied 80% 4.6.2015 Fabio Margaglia 33

Evaluation (5): Latency 67% 4.6.2015 Fabio Margaglia 34

Evaluation (6): Reuse Distance Distances of overwrites on the same LBA (in GB) for 80% overwrite skewness * histogram plotted with 1024 bins of size 8 MB each 4.6.2015 Fabio Margaglia 35

Evaluation (7): Percentage of reprogram ops. 4.6.2015 Fabio Margaglia 36

Conclusion The extended P/E cycles can be implemented in MLC In contrast to SLC, MLCs pose more challenges This technique is very effective for hot data limited in size 4.6.2015 Fabio Margaglia 37

Thanks for Your Attention Questions? All code can be found at https://github.com/zdvresearch We are hiring! https://research.zdv.uni-mainz.de Contact: margagl@uni-mainz.de brinkmann@uni-mainz.de

Related Work Previous flash studies confirm our findings [Grupp. et al, MICRO 2009] WOM codes are actively developed Polar WOM [Burshtein and Strugatski, IT 2013] WOM compatible data structures are under study B-Tree [Kaiser et al, SYSTOR 2013] FTL designs that do not change the SSD interface [Yadgar et al, FAST 2015] 4.6.2015 Fabio Margaglia 40