31
SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) Solid State Drives (SSDs) Jinkyu Jeong ([email protected] ) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected])

Solid State Drives (SSDs)

Jinkyu Jeong ([email protected])Computer Systems Laboratory

Sungkyunkwan Universityhttp://csl.skku.edu

Page 2: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 2

Memory Types

• High-density• Reliable• Low-cost• Suitable for high productionwith stable code

ROM

• Non-volatile• High-density• Ultraviolet light for erasure

EPROM

• Non-volatile• Lower reliability• Higher cost• Lowest density• Electrically byte-erasable

EEPROM

• High-density• Low-cost• High-speed• High-power

DRAM

• High-density• Low-cost • High-speed• Low-power• High reliability

FLASH

Source: Intel Corporation.

Page 3: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 3

Flash Memory Characteristics

• Erase-before-write– Read– Write or Program: 1 à 0– Erase: 0 à 1

• Bulk erase– Program unit:• NOR: byte or word• NAND: page

– Erase unit: block

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: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 4

Logical View of NAND Flash

• A collection of blocks

• Each block has a number of pages

• The size of a block or a page depends on the technology (but, it’s getting larger)

Page 0

Block 1Page 1

Page m-1

Block n-1Block 0

Data area Spare area

Page 5: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 5

NAND Flash Types• SLC NAND– Single Level Cell– 1 bit/cell• MLC NAND– Multi-level Cell (misnomer)– 2 bits/cell• TLC NAND– Triple-level Cell– 3 bits/cell• QLC NAND– Quad-level Cell– 4 bits/cell

Source: Micron Technology, Inc.

Page 6: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 6

NAND Applications

• Universal Flash Drives (UFDs)• Flash cards– CompactFlash, MMC, SD, Memory stick, …

• Smartphones– eMMC (Embedded MMC)– UFS (Universal Flash Storage)

• SSDs (Solid State Drives)• Other embedded devices– MP3 players, Digital TVs, Set-top boxes,

Car navigators, …

Page 7: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 7

Commercial SSDs

http://www.enuri.com (As of May 14, 2016)

Page 8: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 8

Anatomy of an SSD

• Samsung 850 Evo

SSD ControllerNAND Flash

DRAM

http://www.anandtech.com/show/9451/the-2tb-samsung-850-pro-evo-ssd-review

Page 9: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 9

SSD Internals

Page 10: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 10

HDDs vs. SSDs

1 http://www.tomshardware.com/reviews/samsung-850-evo-850-pro-2tb-ssd,4205.html1 http://www.storagereview.com/samsung_spinpoint_m9t_hard_drive_review 3 http://www.enuri.com (As of Sep. 27, 2015)

Feature SSD (Samsung) HDD (Seagate)

Model MZ-75E2T0B (850 Evo) ST2000LM003 (SpinPoint M9T)

Capacity2TB (128Gb 32-Layer 3D V-NAND TLCx 16 die/channel x 8 channels)

2TB(3 Discs, 6 Heads, 5400 RPM)

Form factor 2.5”, 66g 2.5”, 130g

DRAM 2 GB 32 MB

Host interface SATA-3 (6.0 Gbps) SATA-3 (6.0 Gbps)

Power consumption(Active / Idle / Sleep) 3.7, 4.7 W / 0.5 W / 0.05 W 2.3 W / 0.7 W / 0.18 W

Performance850 Evo1:Sequential: 128KB/QD2Random: 4KB/QD32M9T2:Sequential: 2MBRandom: 4KB

Sequential read: 544 MB/s Sequential write: 520 MB/s Random read: 97,687 IOPS Random write: 89,049 IOPS

Random read: 11,335 IOPS (QD1)Random write: 38,433 IOPS (QD1)

Sequential read: 124 MB/s Sequential write: 124 MB/s Random read: 56 IOPS Random write: 98 IOPS

Power-on to ready: 3.5 secAverage seek: 12/14 msAverage latency: 5.6 ms

Price3 1,009,380 won (505won/GB) 117,060 won (59won/GB)

Page 11: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 11

State of the Art

• World’s first 2.5” SAS 32TB SSD @ Flash Memory Summit 2016

Source: THESSDREVIEW, Samsung Newsroom

Page 12: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 12

State of the Art

• Z-SSD @ Flash Memory Summit 2016– 4 times faster than NVMe Flash SSDs

Source: Samsung Newsroom

Page 13: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 13

NAND Constraints

• No in-place update– Require sector remapping (or address translation)

• Bit errors– Require the use of error correction codes (ECCs)

• Bad blocks– Factory-marked and run-time bad blocks– Require bad block remapping

• Limited program/erase cycles– < 100K for SLCs, < 3K for MLCs, < 1K for TLCs– Require wear-leveling

Page 14: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 14

Flash Translation Layer (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 15: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 15

Address Mapping

• Required since flash pages cannot be overwritten

… …

LBA address space (As seen by the host)

write

Mapping table

old data

NAND flash

new data

Page 16: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 16

Example: Page Mapping

• Flash configuration– Page size: 4KB– # of pages / block = 4

• Current state– Written to page 0, 1, 2, 8, 4, 5

• Reading page 5

Logical page #5 0000000101

0 01 12 23

0 01 12 28 3

4 45 5

67

89

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 567

8 39

1011

Page 17: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 17

Example: Page Mapping

• Flash configuration– Page size: 4KB– # of pages / block = 4

• Current state– Written to page 0, 1, 2, 8, 4, 5

• New requests (in order)– Write to page 9– Write to page 3– Write to page 5

0 01 12 23

0 01 12 28 3

4 45 5

67

89

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 567

8 39

1011

Page 18: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 18

Example: Page Mapping

• Flash configuration– Page size: 4KB– # of pages / block = 4

• Current state– Written to page 0, 1, 2, 8, 4, 5

• New requests (in order)– Write to page 9– Write to page 3– Write to page 5

0 01 12 23

0 01 12 28 3

4 45 59 6

7

89

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 567

8 39 6

1011

Page 19: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 19

Example: Page Mapping

• Flash configuration– Page size: 4KB– # of pages / block = 4

• Current state– Written to page 0, 1, 2, 8, 4, 5

• New requests (in order)– Write to page 9– Write to page 3– Write to page 5

0 01 12 23 7

0 01 12 28 3

4 45 59 63 7

89

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 567

8 39 6

1011

Page 20: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 20

Example: Page Mapping

• Flash configuration– Page size: 4KB– # of pages / block = 4

• Current state– Written to page 0, 1, 2, 8, 4, 5

• New requests (in order)– Write to page 9– Write to page 3– Write to page 5

0 01 12 23 7

0 01 12 28 3

4 45 59 63 7

5 89

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 5 867

8 39 6

1011

Invalidate old page

Updated page write

Page 21: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 21

Garbage Collection

• Garbage collection (GC)– Eventually, FTL will run out of blocks to write to– GC must be performed to reclaim free space– Actual GC procedure depends on the mapping scheme

• GC in page-mapping FTL– Select victim block(s)– Copy all valid pages of victim block(s) to free block– Erase victim block(s)– Note: At least one free block should be reserved for GC

Page 22: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 22

Example: GC in Page Mapping

• Current state– Written to page 0, 1, 2, 8, 4, 5– Written to page 9, 3, 5

• New requests (in order)– Write to page 8– Write to page 9– Write to page 3– Write to page 1– Write to page 4

0 01 12 23 7

0 01 12 28 3

4 45 59 63 7

5 89

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 867

8 39 6

1011

Spare block

Page 23: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 23

Example: GC in Page Mapping

• Current state– Written to page 0, 1, 2, 8, 4, 5– Written to page 9, 3, 5

• New requests (in order)– Write to page 8– Write to page 9– Write to page 3– Write to page 1– Write to page 4

0 01 12 23 7

0 01 12 28 3

4 45 59 63 7

5 88 9

1011

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 867

8 99 6

1011

Spare block

Page 24: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 24

Example: GC in Page Mapping

• Current state– Written to page 0, 1, 2, 8, 4, 5– Written to page 9, 3, 5

• New requests (in order)– Write to page 8– Write to page 9– Write to page 3– Write to page 1– Write to page 4

0 01 12 23 7

0 01 12 28 3

4 45 59 63 7

5 88 99 10

11

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 867

8 99 10

1011

Spare block

Page 25: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 25

Example: GC in Page Mapping

• Current state– Written to page 0, 1, 2, 8, 4, 5– Written to page 9, 3, 5

• New requests (in order)– Write to page 8– Write to page 9– Write to page 3– Write to page 1– Write to page 4

0 01 12 23 11

0 01 12 28 3

4 45 59 63 7

5 88 99 103 11

12131415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 45 867

8 99 10

1011

Spare block

Page 26: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 26

Example: GC in Page Mapping

• Current state– Written to page 0, 1, 2, 8, 4, 5– Written to page 9, 3, 5

• New requests (in order)– Write to page 8– Write to page 9– Write to page 3– Write to page 1– Write to page 4

0 01 132 23 11

0 01 12 28 3

4 45 59 63 7

5 88 99 103 11

4 121 13

1415

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 125 867

8 99 10

1011

victim

Valid page copy

Updated page write

Page 27: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 27

Example: GC in Page Mapping

• Current state– Written to page 0, 1, 2, 8, 4, 5– Written to page 9, 3, 5

• New requests (in order)– Write to page 8– Write to page 9– Write to page 3– Write to page 1– Write to page 4

0 01 132 23 11

0 01 12 28 3

4567

5 88 99 103 11

4 121 134 14

15

PBN: 0

PBN: 1

PBN: 2

PBN: 3

Page Map Table Data Block PPN

4 145 867

8 99 10

1011

Spare block

Page 28: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 28

OS Implications

• NAND flash has different characteristics compared to disks– No seek time– Asymmetric read/write access times– No in-place-update– Good sequential read/write and random read

performance, but bad random write performance– Wear-leveling– …– Traditional operating systems have been optimized for

disks. What should be changed?

Page 29: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 29

SSD Support in OS

• Turn off “defragmentation” for SSDs

• New “TRIM” command– Remove-on-delete

• Simpler I/O scheduler

• Align file system partition with SSD layout

• Flash-aware file systems (e.g. F2FS in Linux)

• Larger block size (4KB)

Page 30: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 30

Beauty and the Beast

• NAND Flash memory is a 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 – Bit errors, bad blocks, …

• Software support is essential forperformance and reliability!

Page 31: Solid State Drives (SSDs) - AndroBenchcsl.skku.edu/uploads/SSE3044S19/15-ssd.pdf · 2019. 5. 28. · •Universal Flash Drives (UFDs) •Flash cards –CompactFlash, MMC, SD, Memory

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong ([email protected]) 31

Beyond Flash

• Resistance-based memory technologies

Source: IEEE Computer, August 2013.