NAND Flash-based Storage. Computer Systems Laboratory Sungkyunkwan University

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

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

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

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

Computer Systems Laboratory Sungkyunkwan University

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

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

NAND Flash Memory. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

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

Presented by: Nafiseh Mahmoudi Spring 2017

COS 318: Operating Systems. Storage Devices. Jaswinder Pal Singh Computer Science Department Princeton University

u Covered: l Management of CPU & concurrency l Management of main memory & virtual memory u Currently --- Management of I/O devices

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

COS 318: Operating Systems. Storage Devices. Kai Li Computer Science Department Princeton University

I/O Devices & SSD. Dongkun Shin, SKKU

OSSD: A Case for Object-based Solid State Drives

Tutorial FTL. Sejun Kwon Computer Systems Laboratory Sungkyunkwan University

SFS: Random Write Considered Harmful in Solid State Drives

Design of Flash-Based DBMS: An In-Page Logging Approach

smxnand RTOS Innovators Flash Driver General Features

Tutorial FTL. Jinyong Computer Systems Laboratory Sungkyunkwan University

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

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

[537] Flash. Tyler Harter

A Buffer Replacement Algorithm Exploiting Multi-Chip Parallelism in Solid State Disks

SSD (Solid State Disk)

S-FTL: An Efficient Address Translation for Flash Memory by Exploiting Spatial Locality

Optimizing Translation Information Management in NAND Flash Memory Storage Systems

A Mixed Flash Translation Layer Structure for SLC-MLC Combined Flash Memory System

VSSIM: Virtual Machine based SSD Simulator

Solid State Storage Technologies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Pseudo SLC. Comparison of SLC, MLC and p-slc structures. pslc

Storage Systems : Disks and SSDs. Manu Awasthi CASS 2018

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568

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

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

CSCI-GA Database Systems Lecture 8: Physical Schema: Storage

Flash Trends: Challenges and Future

NAND/MTD support under Linux

Chapter 6. Storage and Other I/O Topics

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

Solid State Storage Technologies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568

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

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

CS311 Lecture 21: SRAM/DRAM/FLASH

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

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

3MG-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:

Data Organization and Processing

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

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

Memory technology and optimizations ( 2.3) Main Memory

Differential RAID: Rethinking RAID for SSD Reliability

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

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

File System Management

The Drive Interface Progress Cycle

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

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568

Delayed Partial Parity Scheme for Reliable and High-Performance Flash Memory SSD

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

I/O Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

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

Sentient Storage: Do SSDs have a mind of their own? Tom Kopchak

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

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

A Survey on NAND Flash Memory Controller Using FPGA

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

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

A Semi Preemptive Garbage Collector for Solid State Drives. Junghee Lee, Youngjae Kim, Galen M. Shipman, Sarp Oral, Feiyi Wang, and Jongman Kim

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

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

Page Mapping Scheme to Support Secure File Deletion for NANDbased Block Devices

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

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

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

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

I/O & Storage. Jin-Soo Kim ( Computer Systems Laboratory Sungkyunkwan University

A High Performance Reconfigurable Architecture for Flash File Systems

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

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

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

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

Solving the I/O bottleneck with Flash

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

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

MS800 Series. msata Solid State Drive Datasheet. Product Feature Capacity: 32GB,64GB,128GB,256GB,512GB Flash Type: MLC NAND FLASH

1ME Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

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

ECE Enterprise Storage Architecture. Fall 2016

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

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

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

High Performance SSD & Benefit for Server Application

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

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

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

Using Transparent Compression to Improve SSD-based I/O Caches

Transcription:

NAND Flash-based Storage Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

Today s Topics NAND flash memory Flash Translation Layer (FTL) OS implications 2

Flash Memory Characteristics Flash memory Non-volatile, Updateable, High-density Low cost, Low power consumption, High reliability Erase-before-write 1 1 1 1 1 1 1 1 Read Write or Program: 1 0 Erase: 0 1 1 1 0 1 1 0 1 0 Read faster than write/erase Bulk erase Erase unit: block write (program) erase 1 1 1 1 1 1 1 1 Program unit: byte or word (NOR), page (NAND) 3

NOR Flash NOR flash Random, direct access interface Fast random reads Slow erase and write Mainly for code storage Intel, Spansion, STMicro,... 4

NAND Flash NAND flash I/O mapped access Smaller cell size Lower cost Smaller size erase blocks Better performance for erase and write Mainly for data storage Samsung, Toshiba, Hynix,... 5

NAND Flash Architecture 2Gb NAND flash device organization Source: Micron Technology, Inc. 6

NAND Flash Types (1) SLC NAND Flash Small block ( 1Gb) Large block ( 1Gb) MLC NAND Flash TLC NAND Flash Source: Micron Technology, Inc. 7

NAND Flash Types (2) SLC NAND 1 SLC NAND 2 (small block) (large block) MLC NAND 3 Page size (Bytes) 512+16 2,048+64 4,096+128 Pages / Block 32 64 128 Block size 16KB 128KB 512KB t R (read) 15 μs (max) 20 μs (max) 50 μs (max) t PROG (program) t BERS (erase) 200 μs (typ) 500 μs (max) 2 ms (typ) 3 ms (max) 200 μs (typ) 700 μs (max) 1.5 ms (typ) 2 ms (max) 600 μs (typ) 1,200 μs (max) 3 ms (typ) NOP 1 (main), 2 (spare) 4 1 Endurance Cycles 100K 100K 10K ECC 1 bit ECC 1 bit ECC 4 bits ECC (per 512Bytes) 2 bits EDC 2 bits EDC 5 bits EDC 1 Samsung K9F1208X0C (512Mb) 2 Samsung K9K8G08U0A (8Gb) 3 Micron Technology Inc. 8

NAND Applications Universal Flash Drives (UFDs) Flash cards CompactFlash, MMC, SD, Memory stick, Embedded devices Cell phones, MP3 players, PMPs, PDAs, Digital TVs, Set-top boxes, Car navigators, Hybrid HDDs Intel Turbo Memory SSDs (Solid-State Disks) 9

SSDs (1) HDDs vs. SSDs 1.8 HDD Flash SSD (78.5x54x4.15mm) 4 2.5 HDD Flash SSD (101x70x9.3mm) Top Bottom 10

SSDs (2) Feature SSD (Samsung) HDD (Seagate) Model MMDOE56G5MXP (PM800) ST9500420AS (Momentus 7200.4) Capacity Form factor Host interface Power consumption Performance Measured performance 1 (On MacBook Pro, 256KB for sequential, 4KB for random) 256GB (16Gb MLC x 128, 8 channels) 2.5 Weight: 84g Serial ATA 2 (3.0 Gbps) Host transfer rate: 300MB Active: 0.26W Idle/Standby/Sleep: 0.15W 500GB (2 Discs, 4 Heads, 7200RPM) 2.5 Weight: 110g Serial ATA 2 (3.0 Gbps) Host transfer rate: 300MB Active: 2.1W (Read), 2.2W (Write) Idle: 0.69W, Standby/Sleep: 0.2W Sequential read: Upto 220 MB/s Power onto on ready: 4.5sec Sequential write: Up to 185 MB/s Average latency: 4.17 msec Sequential read: 176.73 MB/s Sequential write: 159.98 MB/s Random read: 10.56 MB/s Random write: 2.93 MB/s Price 2 583,770 won 88,800 won Sequential read: 86.07 MB/s Sequential write: 84.64 MB/s Random read: 0.61 MB/s Random write: 1.28 MB/s 1 Source: http://forums.macrumors.com/showthread.php?t=658571 2 Source: http://www.danawa.com (As of Nov. 21, 2010) 11

NAND Constraints (1) No in-place update Require sector remapping (or address translation) Bit errors Require the use of error correction codes (ECC) Bad blocks Factory-marked & run-time bad blocks Require bad block remapping Limited program/erase cycles < 100K for SLCs < 10K for MLCs Require wear-leveling 12

NAND Constraints (2) Limited NOP (Number of Programming) g) 1 / sector for most SLCs (4 for 2KB page) 1 /page for most MLCs Sequential page programming For large block SLCs and MLCs Pair-page programming in MLCs Two pages inside a block are linked together Performance difference Interference 13

FTL (1) What is FTL? A software layer to make NAND flash fully emulate traditional block devices (e.g., disks). File System File System Read Sectors Write Sectors Read Sectors Write Sectors Mismatch! Read Sectors Write Sectors Read Write Erase Device Driver + FTL + Device Driver + Flash Memory Flash Memory Source: Zeen Info. Tech. 14

FTL (2) Flash cards internals 15

FTL (3) SSDs internals Source: Mtron Technology 16

FTL (4) Flash Cards, SSDs Embedded Flash Storage Applications Operating System Applications Operating System File Systems Block Device Driver File Systems Block Device Driver Flash Translation Layer Flash Translation Layer NAND Controller NAND Flash Memory NAND Controller NAND Flash Memory 17

FTL (5) For performance Address translation Garbage collection Hot/cold data identification/separation Interleaving ea over multiple channels & flash chips Request scheduling Buffer management 18

FTL (6) For reliability Bad block management Wear-leveling Power-off recovery Error correction o code (ECC) Other features Encryption Compression Deduplication 19

Sector Mapping (1) General page mapping Most flexible Efficient handling of small writes Large memory footprint One mapping entry per page: 32MB for 32GB MLC (4KB page) Bitmap for page validity Per-block invalid page counter Sensitive to the amount of reserved blocks Performance affected as the system ages LPN 0 LPN 1 LPN 2 LPN 3 LPN 4 LPN 5 LPN 6 LPN 7 LPN 8 LPN 9 LPN 10 LPN 11 LPN 12 LPN 13 LPN 14 LPN 15 Data blocks 0 1 4 14 10 5 6 7 Log blocks 1 2 8 1 2 8 11 13 2 12 13 15 9 9 3 12 W = <1, 2, 8, 1, 2, 12, 13, 9> 20

Sector Mapping (2) Naïve block mapping Each table entry maps one block Small RAM usage Data blocks Inefficient handling of small writes 0 12 3 Log blocks 0 1 2 3 LBN 0 LBN 1 LBN 2 LBN 3 4 5 6 7 8 9 10 11 12 13 14 15 W = <4, 5, 6, 7, 1> 4 5 6 7 21

Sector Mapping (3) Log block scheme [IEEE TOCE 2002] A small number of log blocks 1+ log block(s) per data block Data blocks Page mapping for log blocks 0 12 Full/partial/switch merge 4 5 LBN 0 6 Switch merge for sequential LBN 1 7 LBN 2 LBN 3 updates 8 910 3 10 11 Log blocks 1 2 1 2 8 Low log block utilization 12 13 14 15 W = <1, 2, 8, 1, 2, 12, 13, 9> 22

Sector Mapping (4) FAST [ACM TECS 2007] Log blocks shared by all data blocks Sequential/random log blocks Improved po log ogboc block utilization ato Data blocks 0 1 2 3 Log blocks Increased merge time 4 56 LBN 0 LBN 1 LBN 2 LBN 3 7 8 9 10 11 1 2 8 1 2 12 13 9 12 13 14 15 W = <1, 2, 8, 1, 2, 12, 13, 9> 23

Sector Mapping (5) Superblock FTL [ACM EMSOFT 2006] Superblock = logically adjacent N blocks A superblock shares log blocks Up to M log blocks per superblock Page mapping within a superblock LSBN 0 LSBN 1 LPN 0 LPN 1 LPN 2 LPN 3 LPN 4 LPN 5 LPN 6 LPN 7 Data blocks Log blocks 0 1 2 3 1 2 4 5 6 7 1 2 Hot/cold pages separation 8 LPN 8 9 The amount of mapping information increased LPN 9 LPN 10 LPN 11 LPN 12 LPN 13 LPN 14 LPN 15 10 11 8 12 13 14 15 12 13 9 W = <1, 2, 8, 1, 2, 12, 13, 9> 24

Sector Mapping (6) μ-ftl [ACM EMSOFT 2008] Page mapping Multiple mapping granularities Based on extents Reduce the amount of mapping information Requires more sophisticated index structure μ-tree is used to store the mapping information Tunable memory footprint Frequently accessed mapping information i cached in memory LPN 0, 1 LPN 1, 1 LPN 2, 1 LPN 3, 1 LPN 4, 4 LPN 8, 1 LPN 9, 1 LPN 10, 2 LPN 12, 2 LPN 14, 2 Data blocks 0 1 2 3 4 5 6 7 Log blocks 1 2 8 1 8 9 12 13 2 12 13 10 9 11 14 15 W = <1, 2, 8, 1, 2, 12, 13, 9> 25

Performance (1) Simulation environment 4GB flash memory Large block SLC NAND (2KB page, 128KB block) FTL schemes Naïve block mapping Replacement block Log block Superblock Workload Trace from PC using NTFS 26

Performance (2) Extra erase and write operations 256 extra blocks 350000 300000 250000 200000 150000 100000 50000 18000000 16000000 14000000 12000000 10000000 8000000 6000000 4000000 2000000 Naive Sain Replacement Logblock Superblock 0 Erase 0 Write(GC) 27

OS Implications (1) NAND flash has different characteristics compared to disks No seek time Asymmetric read/write access times No in-place-update p Good sequential read/sequential write/random read performance, but bad random write performance Wear-leveling Traditional operating systems have been optimized for disks. What should be changed? 28

OS Implications (2) SSD support in Microsoft Windows 7 Turn off defragmentation for SSDs New TRIM command Remove-on-delete Align file system partition with SSD layout Larger block size proposal (4KB) 29

Beauty and the Beast NAND Flash memory is beauty. Small, light-weight, robust, low-cost, low-power nonvolatile device NAND Flash memory is a beast. Much slower program/erase ase operations o No in-place-update Erase unit > write unit Limited lifetime (10K~100K program/erase cycles) Bad blocks, Software support for NAND flash memory is very important for performance & reliability. 30