nand flash-based storage - skku

30
NAND Flash-based Storage Jin-Soo Kim ([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

Upload: others

Post on 14-Feb-2022

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NAND Flash-based Storage - SKKU

NAND Flash-based

Storage

Jin-Soo Kim ([email protected])

Computer Systems Laboratory

Sungkyunkwan University

http://csl.skku.edu

Page 2: NAND Flash-based Storage - SKKU

2 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Today’s Topics

NAND flash memory

Flash Translation Layer (FTL)

OS implications

Page 3: NAND Flash-based Storage - SKKU

3 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Flash Memory Characteristics

Flash memory

• Non-volatile, Updateable, High-density

• Low cost, Low power consumption, High reliability

Erase-before-write

• Read

• Write or Program: 1 0

• Erase: 0 1

Read faster than write/erase

Bulk erase

• Erase unit: block

• Program unit: byte or word (NOR), page (NAND)

1 1 1 1 1 1 1 1

1 1 0 1 1 0 1 0

1 1 1 1 1 1 1 1

write (program)

erase

Page 4: NAND Flash-based Storage - SKKU

4 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

NOR Flash

NOR flash

• Random, direct access interface

• Fast random reads

• Slow erase and write

• Mainly for code storage

• Intel, Spansion, STMicro, ...

Page 5: NAND Flash-based Storage - SKKU

5 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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, ...

Page 6: NAND Flash-based Storage - SKKU

6 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

NAND Flash Architecture

2Gb NAND flash device organization

Source: Micron Technology, Inc.

Page 7: NAND Flash-based Storage - SKKU

7 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

NAND Flash Types (1)

SLC NAND Flash

• Small block (≤ 1Gb)

• Large block (≥ 1Gb)

MLC NAND Flash

TLC NAND Flash

Source: Micron Technology, Inc.

Page 8: NAND Flash-based Storage - SKKU

8 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

NAND Flash Types (2)

SLC NAND1

(small block) SLC NAND2

(large block) MLC NAND3

Page size (Bytes) 512+16 2,048+64 4,096+128

Pages / Block 32 64 128

Block size 16KB 128KB 512KB

tR (read) 15 μs (max) 20 μs (max) 50 μs (max)

tPROG (program)

200 μs (typ) 500 μs (max)

200 μs (typ) 700 μs (max)

600 μs (typ) 1,200 μs (max)

tBERS (erase)

2 ms (typ) 3 ms (max)

1.5 ms (typ) 2 ms (max)

3 ms (typ)

NOP 1 (main), 2 (spare) 4 1

Endurance Cycles 100K 100K 10K

ECC (per 512Bytes)

1 bit ECC 2 bits EDC

1 bit ECC 2 bits EDC

4 bits ECC 5 bits EDC

1 Samsung K9F1208X0C (512Mb) 2 Samsung K9K8G08U0A (8Gb) 3 Micron Technology Inc.

Page 9: NAND Flash-based Storage - SKKU

9 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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)

Page 10: NAND Flash-based Storage - SKKU

10 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

SSDs (1)

HDDs vs. SSDs

2.5” HDD Flash SSD

(101x70x9.3mm)

1.8” HDD Flash SSD

(78.5x54x4.15mm)

Top Bottom

Page 11: NAND Flash-based Storage - SKKU

11 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

SSDs (2)

Feature SSD (Samsung) HDD (Seagate)

Model MMDOE56G5MXP (PM800) ST9500420AS (Momentus 7200.4)

Capacity 256GB (16Gb MLC x 128, 8 channels)

500GB (2 Discs, 4 Heads, 7200RPM)

Form factor 2.5” Weight: 84g

2.5” Weight: 110g

Host interface Serial ATA-2 (3.0 Gbps) Host transfer rate: 300MB

Serial ATA-2 (3.0 Gbps) Host transfer rate: 300MB

Power consumption Active: 0.26W Idle/Standby/Sleep: 0.15W

Active: 2.1W (Read), 2.2W (Write) Idle: 0.69W, Standby/Sleep: 0.2W

Performance Sequential read: Up to 220 MB/s Sequential write: Up to 185 MB/s

Power-on to ready: 4.5 sec Average latency: 4.17 msec

Measured performance1 (On MacBook Pro, 256KB for sequential, 4KB for random)

Sequential read: 176.73 MB/s Sequential write: 159.98 MB/s Random read: 10.56 MB/s Random write: 2.93 MB/s

Sequential read: 86.07 MB/s Sequential write: 84.64 MB/s Random read: 0.61 MB/s Random write: 1.28 MB/s

Price2 583,770 won 88,800 won

1 Source: http://forums.macrumors.com/showthread.php?t=658571 2 Source: http://www.danawa.com (As of Nov. 21, 2010)

Page 12: NAND Flash-based Storage - SKKU

12 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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

• < 5K for MLCs

• Require wear-leveling

Page 13: NAND Flash-based Storage - SKKU

13 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

NAND Constraints (2)

Limited NOP (Number of Programming)

• 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

Page 14: NAND Flash-based Storage - SKKU

14 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

FTL (1)

What is FTL?

• A software layer to make NAND flash fully emulate traditional block devices (e.g., disks).

+ Device Driver

Read Write Erase

File System

Read Sectors Write Sectors

Flash Memory

Mismatch!

+ Device Driver

Flash Memory

FTL

+

Read Sectors Write Sectors

File System

Read Sectors Write Sectors

Source: Zeen Info. Tech.

Page 16: NAND Flash-based Storage - SKKU

16 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

FTL (3)

SSD internals

Source: Indilinx

Page 17: NAND Flash-based Storage - SKKU

17 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

FTL (4)

Applications

Operating System

File Systems

Block Device Driver

Flash Translation Layer

NAND Controller

NAND Flash Memory

Applications

Operating System

File Systems

Block Device Driver

Flash Translation Layer

NAND Controller

NAND Flash Memory

Flash Cards, SSDs Embedded Flash Storage

Page 18: NAND Flash-based Storage - SKKU

18 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

FTL (5)

For performance

• Address translation

• Garbage collection

• Hot/cold data identification/separation

• Interleaving over multiple channels & flash chips

• Request scheduling

• Buffer management

• …

Page 19: NAND Flash-based Storage - SKKU

19 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

FTL (6)

For reliability

• Bad block management

• Wear-leveling

• Power-off recovery

• Error correction code (ECC)

• …

Other features

• Encryption

• Compression

• Deduplication

• …

Page 20: NAND Flash-based Storage - SKKU

20 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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

0 1 4

14

10 5 6 7

2 8

11 13

15 9 3

12

1’ 2’ 8’ 1’’

Data blocks

Log blocks

2’’ 12’ 13’ 9’

W = <1, 2, 8, 1, 2, 12, 13, 9>

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

Page 21: NAND Flash-based Storage - SKKU

21 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Sector Mapping (2)

Naïve block mapping

• Each table entry maps one block

• Small RAM usage

• Inefficient handling of small writes 0 1 2 3

4 5 6 7

8 9

10 11

12 13 14 15

0 1’ 2 3

LBN 0 LBN 1 LBN 2 LBN 3

Data blocks

Log blocks

W = <4, 5, 6, 7, 1>

4’ 5’ 6’ 7’

Page 22: NAND Flash-based Storage - SKKU

22 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Sector Mapping (3)

Log block scheme [IEEE TOCE 2002]

• A small number of log blocks

• 1+ log block(s) per data block

• Page mapping for log blocks

• Full/partial/switch merge

• Switch merge for sequential updates

• Low log block utilization

0 1 2 3

4 5 6 7

8 9

10 11

12 13 14 15

1’ 2’ 1’’ 2’’

LBN 0 LBN 1 LBN 2 LBN 3

Data blocks

Log blocks

8’

W = <1, 2, 8, 1, 2, 12, 13, 9>

Page 23: NAND Flash-based Storage - SKKU

23 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Sector Mapping (4)

FAST [ACM TECS 2007]

• Log blocks shared by all data blocks

• Sequential/random log blocks

• Improved log block utilization

• Increased merge time

0 1 2 3

4 5 6 7

8 9

10 11

12 13 14 15

1’ 2’ 8’ 1’’

LBN 0 LBN 1 LBN 2 LBN 3

Data blocks

Log blocks

2’’ 12’ 13’ 9’

W = <1, 2, 8, 1, 2, 12, 13, 9>

Page 24: NAND Flash-based Storage - SKKU

24 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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

• Hot/cold pages separation

• The amount of mapping information increased

0 1 2 3

4 5 6 7

8 9

10 11

12 13 14 15

1’ 2’ 1’’ 2’’ LSBN 0

LSBN 1

Data blocks

Log blocks

8’ 12’ 13’ 9’

W = <1, 2, 8, 1, 2, 12, 13, 9>

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

Page 25: NAND Flash-based Storage - SKKU

25 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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 cached in memory

0 1 2 3

4 5 6 7

8 9

12 13

10 11 14 15

1’ 2’ 8’ 1’’

Data blocks

Log blocks

2’’ 12’ 13’ 9’

W = <1, 2, 8, 1, 2, 12, 13, 9>

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

Page 26: NAND Flash-based Storage - SKKU

26 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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

Page 27: NAND Flash-based Storage - SKKU

27 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Performance (2)

Extra erase and write operations

• 256 extra blocks

0

50,000

100,000

150,000

200,000

250,000

300,000

350,000

Erase

0

2,000,000

4,000,000

6,000,000

8,000,000

10,000,000

12,000,000

14,000,000

16,000,000

18,000,000

Write(GC)

Sain

Replacement

Logblock

Superblock

Naive

Page 28: NAND Flash-based Storage - SKKU

28 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

OS Implications (1)

NAND flash has different characteristics compared to disks

• No seek time

• Asymmetric read/write access times

• No in-place-update

• 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?

Page 29: NAND Flash-based Storage - SKKU

29 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

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)

Page 30: NAND Flash-based Storage - SKKU

30 SWE3004: Operating Systems | Spring 2013| Jin-Soo Kim ([email protected])

Beauty and the Beast

NAND Flash memory is beauty.

• Small, light-weight, robust, low-cost, low-power non-volatile device

NAND Flash memory is a beast.

• Much slower program/erase operations

• 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.