flash [slight modifications to slides from tyler caraza ...jannen/teaching/s19/cs333/... · flash:...

119
Flash

Upload: others

Post on 15-Aug-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash

[Slight modifications to slides from Tyler Caraza-Harter www: https://tyler.caraza-harter.com]
Page 2: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Source: http://www.tomshardware.com/news/ssd-hdd-solid-state-drive-hard-disk-drive-prices,14336.html

Cost: HDD vs. SSD

Page 3: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Source: http://www.tomshardware.com/news/ssd-hdd-solid-state-drive-hard-disk-drive-prices,14336.html

Cost: HDD vs. SSD

Note: These are trends, notthe most up-to-date data.There are different classesof HDDs and SSDs whichcomplicate this graph, butthe thing to note is thatthere is a gap, but it isnarrowing and all costsare trending downward.
Page 4: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Disk OverviewI/O requires: seek, rotate, transfer !Inherently: - not parallel (only one head) - slow (mechanical) - poor random I/O (locality around disk head) !Random requests take 10ms+

Page 5: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

FlashHold charge in cells. No moving parts! !

Inherently parallel. !

No seeks!

Page 6: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

SLC: Single-Level Cell

char

ge

NAND Cell

Page 7: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

SLC: Single-Level Cell

char

ge

NAND Cell

1

Page 8: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

SLC: Single-Level Cell

char

ge

NAND Cell

0

Page 9: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MLC: Multi-Level Cell

char

ge

NAND Cell

00

Page 10: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MLC: Multi-Level Cell

char

ge

NAND Cell

01

Page 11: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MLC: Multi-Level Cell

char

ge

NAND Cell

10

Page 12: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MLC: Multi-Level Cell

char

ge

NAND Cell

11

Page 13: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

SLCch

arge

char

ge

MLC

Single- vs. Multi- Level Cell

Page 14: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Single- vs. Multi- Level Cell

SLCch

arge

char

ge

MLC

expensive robust

cheap sensitive

Page 15: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

WearoutProblem: flash cells wear out after being overwritten too many times. !

MLC: ~10K times SLC: ~100K times !

Usage strategy:

Page 16: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

WearoutProblem: flash cells wear out after being overwritten too many times. !

MLC: ~10K times SLC: ~100K times !

Usage strategy: wear leveling. - prevents some cells from wearing out while others still fresh.

Page 17: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

BanksFlash devices are divided into banks (aka, planes). !

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 18: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

BanksFlash devices are divided into banks (aka, planes). !

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

readread

Page 19: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

BanksFlash devices are divided into banks (aka, planes). !

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 20: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

BanksFlash devices are divided into banks (aka, planes). !

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

datadata

Page 21: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

BanksFlash devices are divided into banks (aka, planes). !

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 22: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash WritesWriting 0’s: - fast, fine-grained !

!

Writing 1’s: - slow, course-grained

Page 23: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash WritesWriting 0’s: - fast, fine-grained - called “program” !

Writing 1’s: - slow, course-grained - called “erase”

Page 24: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash WritesWriting 0’s: - fast, fine-grained [pages] - called “program” !

Writing 1’s: - slow, course-grained [blocks] - called “erase”

Page 25: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Bank 0 Bank 2 Bank 3Bank 1

Page 26: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Bank 0 Bank 2 Bank 3

each bank contains many “blocks”

Page 27: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 28: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

one block

Page 29: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

one page

Page 30: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:
One NAND flash Chip
Is made of up several Banks
Is made up of several blocks
Is made up of several pages
Page 31: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 32: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1111

1111 1111

1111 1111

1111 1111

1111 1111

program

Page 33: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 34: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1111 1111

1111 1111

program

Page 35: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1111 1111

1111 1111

Page 36: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

program

Page 37: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

Page 38: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

erase

Page 39: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

erase

Page 40: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 41: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

APIsdisk flash

read

writ

e

Page 42: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

APIsdisk flash

read read sector read page

writ

e

Page 43: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

APIsdisk flash

read read sector read page

write sector

writ

e

program page (0’s)

erase block (1’s)

Page 44: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash HierarchyPlane: 1024 to 4096 blocks - planes accessed in parallel !

Block: 64 to 256 pages - unit of erase !

Page: 2 to 8 KB - unit of read and program

Page 45: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Disk vs. Flash PerformanceThroughput: - disk: ~130 MB/s (sequential) - flash: ~200 MB/s

- 550 MB/s
Page 46: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Disk vs. Flash PerformanceThroughput: - disk: ~130 MB/s (sequential) - flash: ~200 MB/s !Latency! - disk: ~10 ms (one op) - flash - read: 10-50 us - program: 200-500 us - erase: 2 ms

- 550 MB/s
Page 47: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Traditional File Systems

File System

Storage DeviceTraditional API: - read sector - write sector

Page 48: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Traditional File Systems

File System

Storage DeviceTraditional API: - read sector - write sector

not same as flash

Page 49: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Options1. Build/use new file systems for flash - JFFS, YAFFS - lot of work! !

2. Build traditional API over flash API. - use FFS, LFS, whatever we want

Page 50: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Traditional API with Flashread(addr): return flash_read(addr) !

write(addr, data): block_copy = flash_read(block of addr) modify block_copy with data flash_erase(block of addr) flash_program(block of addr, block_copy)

Page 51: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Page 52: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

FS wants to write 0001

Memory:

Page 53: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:

Page 54: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 00

00 11

11 00

11 11

read all other pages in block

Page 55: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 00

00 11

11 00

11 11

Page 56: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 01

00 11

11 00

11 11

modify target page in memory

Page 57: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:00 00

00 11

11 00

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 01

00 11

11 00

11 11

Page 58: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:1111

1111

1111

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 01

00 11

11 00

11 11

erase block

Page 59: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:1111

1111

1111

11 11

1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 01

00 11

11 00

11 11

Page 60: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:00 01

00 11

11 00

11 11

program all pages in block

00 01

00 11

11 00

11 11

Page 61: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash:1111

1111

1111

1111

00 01

1111

1111

11 11

block 0 block 1 block 2

Memory:

00 01

00 11

11 00

11 11

Page 62: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Write AmplificationRandom writes are extremely expensive! !

Writing one 2KB page may cause: - read, erase, and program of 256KB block. !

Page 63: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Write AmplificationRandom writes are extremely expensive! !

Writing one 2KB page may cause: - read, erase, and program of 256KB block. !

Would FFS or LFS be better with flash?

Page 64: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

File Systems over FlashCopy-On-Write FS may prevent some expensive random writes. !

What about wear leveling? LFS won’t do this. !

What if we want to use some other FS?

Page 65: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Better SolutionAdd copy-on-write layer between FS and flash. Avoids RMW (read-modify-write) cycle. !

Translate logical device addrs to physical addrs. !

FTL: Flash Translation Layer. !

Should translation use math or data structure?

Page 66: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash Translation Layer

0001

block 0

0010

00 11

0000

10 01

block 1

11 11

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

Page 67: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash Translation Layer

0001

block 0

0010

00 11

0000

10 01

block 1

11 11

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

write 1101

Page 68: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash Translation Layer

0001

block 0

0010

00 11

0000

10 01

block 1

1101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

write 1101

Page 69: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash Translation Layer

0001

block 0

0010

00 11

0000

10 01

block 1

1101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

write 1101

Page 70: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash Translation Layer

0001

block 0

0010

00 11

0000

10 01

block 1

1101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

Page 71: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Flash Translation Layer

0001

block 0

0010

00 11

0000

10 01

block 1

1101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:must eventually

be garbage collected

Page 72: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

FTLCould be implemented as device driver or in firmware (usually the latter). !

Where to store mapping? SRAM. !

Physical pages can be in three states: - valid, invalid, free

Page 73: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

States

free valid

invalid

Page 74: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

States

free valid

invalid

program

erase

Page 75: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

States

free valid

invalid

program

erase relocate or TRIM

Page 76: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

SSD Architecture

FTL SRAM: mapping tbl

SSD: looks like disk

Page 77: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Problem: Big Mapping TableAssume 200GB device, 2KB pages, 4-byte entries. !

SRAM needed: (200GB / 2KB) * 4 bytes = 400 MB. !

Too big, SRAM is expensive!

Page 78: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

Page 79: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

2-Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

Page 80: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Larger MappingsAdvantage: larger mappings decrease table size. !

Disadvantage?

Page 81: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

2-Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

Page 82: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

2-Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

11 11

11 11

0 1 2 3 4 5 6 7

physical:

logical:

write 1011

Page 83: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

2-Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

10 11

0101

0 1 2 3 4 5 6 7

physical:

logical:

write 1011

copy

Page 84: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

2-Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

10 11

0101

0 1 2 3 4 5 6 7

physical:

logical:

write 1011

Page 85: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

2-Page Translations

0001

block 0

0010

00 11

0000

10 01

block 1

0101

10 11

0101

0 1 2 3 4 5 6 7

physical:

logical:

write 1011

Page 86: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Larger MappingsAdvantage: larger mappings decrease table size. !

Disadvantages? - more read-modify-write updates - more garbage - less flexibility for placement

Page 87: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Hybrid FTLUse course-grained mapping for most (e.g., 95%) of data. Map at block level. !

Use fine-grained mapping for recent data. Map at page level.

Page 88: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

Log BlocksWrite changed pages to designated log blocks. !

After blocks become full, merge changes with old data. !

Eventually garbage collect old pages.

Page 89: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MergingMerging technique depends on I/O pattern. !

Three merge types: - full merge - partial merge - switch merge

Page 90: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MergingMerging technique depends on I/O pattern. !

Three merge types: - full merge - partial merge - switch merge

Page 91: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 92: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 93: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 94: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 95: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

eventually, we need to get rid of red arrows, as these represent expensive mappings

Page 96: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 97: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

A

block 2

B C D2

Page 98: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

A

block 2

B C D2

Page 99: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

A

block 2

B C D2

Page 100: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D D2

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

A

block 2

B C D2

garbage

Page 101: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MergingMerging technique depends on I/O pattern. !

Three merge types: - full merge - partial merge - switch merge

Page 102: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 103: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 104: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 105: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 106: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A

block 1 (log)

B C D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 107: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A

block 1 (log)

B C D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 108: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A

block 1

B C D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 109: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A

block 1

B C D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

garbage

Page 110: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MergingMerging technique depends on I/O pattern. !

Three merge types: - full merge - partial merge - switch merge

Page 111: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 112: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D 1111

block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write A2

Page 113: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A2

block 1 (log)

1111

11 11

1111

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write A2

Page 114: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A2

block 1 (log)

B2 11 11

1111

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write B2

Page 115: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A2

block 1 (log)

B2 C2 1111

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write C2

Page 116: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A2

block 1 (log)

B2 C2 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 117: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

A

block 0

B C D A2

block 1 (log)

B2 C2 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

garbage

Page 118: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

MergingMerging technique depends on I/O pattern. !

Three merge types: - full merge - partial merge - switch merge

Page 119: Flash [Slight modifications to slides from Tyler Caraza ...jannen/teaching/s19/cs333/... · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block 0 block 1 block 2 Memory:

SummaryFlash is much faster than disk, but… !

It is more expensive. !

It’s not a drop-in replacement beneath an FS without a complex layer for emulating hard disk API.