flash slides: tyler r. caraza-harter - iit-computer...

117
Flash

Upload: others

Post on 15-Aug-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Flash

Kyle Hale
Slides: Tyler R. Caraza-Harter
Page 2: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Cost: HDD vs. SSD

Page 3: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 4: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

FlashHold charge in cells. No moving parts! !

Inherently parallel. !

No seeks!

Page 5: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

SLC: Single-Level Cell

char

ge

NAND Cell

Page 6: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

SLC: Single-Level Cell

char

ge

NAND Cell

1

Page 7: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

SLC: Single-Level Cell

char

ge

NAND Cell

0

Page 8: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MLC: Multi-Level Cell

char

ge

NAND Cell

00

Page 9: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MLC: Multi-Level Cell

char

ge

NAND Cell

01

Page 10: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MLC: Multi-Level Cell

char

ge

NAND Cell

10

Page 11: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MLC: Multi-Level Cell

char

ge

NAND Cell

11

Page 12: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

SLCch

arge

char

ge

MLC

Single- vs. Multi- Level Cell

Page 13: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Single- vs. Multi- Level Cell

SLCch

arge

char

ge

MLC

expensive robust

cheap sensitive

Page 14: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

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

Usage strategy:

Page 15: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 16: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 17: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

readread

Page 18: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 19: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

datadata

Page 20: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 21: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

!

Writing 1’s: - slow, course-grained

Page 22: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

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

Page 23: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

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

Page 24: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Bank 0 Bank 2 Bank 3Bank 1

Page 25: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Bank 0 Bank 2 Bank 3

each bank contains many “blocks”

Page 26: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 27: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

one block

Page 28: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

one page

Page 29: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 30: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1111

1111 1111

1111 1111

1111 1111

1111 1111

program

Page 31: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 32: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1111 1111

1111 1111

program

Page 33: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1111 1111

1111 1111

Page 34: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

program

Page 35: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

Page 36: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

erase

Page 37: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

erase

Page 38: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 39: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

APIsdisk flash

read

write

Page 40: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

APIsdisk flash

read read sector read page

write

Page 41: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

APIsdisk flash

read read sector read page

write sector

write

program page (0’s)

erase block (1’s)

Page 42: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 43: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Page 44: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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

Page 45: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Traditional File Systems

File System

Storage DeviceTraditional API: - read sector - write sector

Page 46: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Traditional File Systems

File System

Storage DeviceTraditional API: - read sector - write sector

not same as flash

Page 47: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 48: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 49: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 50: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 51: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 52: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 53: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 54: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 55: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 56: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 57: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 58: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 59: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 60: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Write AmplificationRandom writes are extremely expensive! !

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

Page 61: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 62: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 63: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 64: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 65: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 66: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 67: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 68: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 69: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 70: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 71: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

States

free valid

invalid

Page 72: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

States

free valid

invalid

program

erase

Page 73: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

States

free valid

invalid

program

erase relocate or TRIM

Page 74: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

SSD Architecture

FTL SRAM: mapping tbl

SSD: looks like disk

Page 75: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 76: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 77: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 78: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Larger MappingsAdvantage: larger mappings decrease table size. !

Disadvantage?

Page 79: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 81: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 82: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 83: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 84: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Larger MappingsAdvantage: larger mappings decrease table size. !

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

Page 85: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 86: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

Log BlocksWrite changed pages to designated log blocks. !

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

Eventually garbage collect old pages.

Page 87: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MergingMerging technique depends on I/O pattern. !

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

Page 88: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MergingMerging technique depends on I/O pattern. !

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

Page 89: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 90: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 91: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 92: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 93: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 94: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 96: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 97: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 99: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MergingMerging technique depends on I/O pattern. !

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

Page 100: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 101: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 102: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 103: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 104: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 105: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 106: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 107: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 108: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MergingMerging technique depends on I/O pattern. !

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

Page 109: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 110: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 111: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 112: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 113: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 114: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 115: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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 116: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

MergingMerging technique depends on I/O pattern. !

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

Page 117: Flash Slides: Tyler R. Caraza-Harter - IIT-Computer Sciencecs.iit.edu/~khale/class/intro-os/s19/handout/lec21.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11. block

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.