127
[537] Flash Tyler Harter

[537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

  • Upload
    others

  • View
    45

  • Download
    0

Embed Size (px)

Citation preview

Page 1: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

[537] FlashTyler Harter

Page 2: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Flash vs. Disk

Page 3: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Flash OverviewHold charge in cells. No moving parts!

Inherently parallel.

No seeks!

Page 5: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Latency - disk: ~10 ms (one op) - flash - read: 10-50 us - program: 200-500 us - erase: 2 ms

types of write, more later…

Page 6: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Source: http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44830.pdf

Disks vs. Flash: CapacityAn obvious question is why are we talking about spinning disks at all, rather than SSDs, which have higher IOPS and are the “future” of storage. The root reason is that the cost per GB remains too high, and more importantly that the growth rates in capacity/$ between disks and SSDs are relatively close (at least for SSDs that have sufficient numbers of program-erase cycles to use in data centers), so that cost will not change enough in the coming decade. We do make extensive use of SSDs, but primarily for high performance workloads and caching, and this helps disks by shifting seeks to SSDs.

~ Eric Brewer et al.

Page 7: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Flash Architecture

Page 8: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

SLC: Single-Level Cell

char

ge

NAND Cell

Page 9: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

SLC: Single-Level Cell

char

ge

NAND Cell

1

Page 10: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

SLC: Single-Level Cell

char

ge

NAND Cell

0

Page 11: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MLC: Multi-Level Cell

char

ge

NAND Cell

00

Page 12: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MLC: Multi-Level Cell

char

ge

NAND Cell

01

Page 13: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MLC: Multi-Level Cell

char

ge

NAND Cell

10

Page 14: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MLC: Multi-Level Cell

char

ge

NAND Cell

11

Page 15: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

SLCch

arge

char

ge

MLC

Single- vs. Multi- Level Cell

Page 16: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Single- vs. Multi- Level Cell

SLCch

arge

char

ge

MLC

expensive robust

cheap sensitive

Page 17: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

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

Usage strategy: ???

Page 18: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 19: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 20: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

readread

Page 21: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 22: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

datadata

Page 23: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Banks can be accessed in parallel.

Bank 0 Bank 1 Bank 2 Bank 3

Page 24: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Writing 1’s: - slow, course-grained

Page 25: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

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

Page 26: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

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

Page 27: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Bank 0 Bank 2 Bank 3Bank 1

Page 28: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Bank 0 Bank 2 Bank 3

each bank contains many “blocks”

Page 29: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 30: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

one block

Page 31: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

one page

Page 32: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 33: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1111

1111 1111

1111 1111

1111 1111

1111 1111

program

Page 34: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 35: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1111 1111

1111 1111

program

Page 36: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1111 1111

1111 1111

Page 37: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

program

Page 38: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

Page 39: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1001 1100

1111 1111

1111 1111

1110 0001

1111 1111

erase

Page 40: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

erase

Page 41: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Block

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

1111 1111

Page 42: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

APIsdisk flash

read

writ

e

Page 43: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

APIsdisk flash

read read sector read page

writ

e

Page 44: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

APIsdisk flash

read read sector read page

write sector

writ

e

program page (0’s)

erase block (1’s)

Page 45: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Flash HierarchyBank/plane: 1024 to 4096 blocks - banks accessed in parallel

Block: 64 to 256 pages - unit of erase

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

Page 46: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

Latency - disk: ~10 ms (one op) - flash - read: 10-50 us - program: 200-500 us - erase: 2 ms

Page 47: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Working with File Systems

Page 48: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Traditional File Systems

File System

Storage DeviceTraditional API: - read sector - write sector

Page 49: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Traditional File Systems

File System

Storage DeviceTraditional API: - read sector - write sector

not same as flash

Page 50: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 51: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

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

Page 52: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 53: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 54: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 55: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 56: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 57: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 58: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 59: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 60: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 61: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 62: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 63: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Write AmplificationRandom writes are extremely expensive!

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

Page 64: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 65: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 66: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Flash Translation Layer

Page 67: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 68: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 69: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 70: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 71: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 72: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 73: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 74: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 75: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

States

free valid

invalid

Page 76: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

States

free valid

invalid

program

erase

Page 77: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

States

free valid

invalid

program

erase relocate

Page 78: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

States

free valid

invalid

program

erase relocate

why is file delete problematic?

Page 79: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

States

free valid

invalid

program

erase relocate or TRIM

SSD-aware file systems can tell device that page is garbage

Page 80: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

SSD Architecture

FTL SRAM: mapping tbl

SSD: looks like disk

Page 81: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 82: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 83: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 84: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Larger MappingsAdvantage: larger mappings decrease table size.

Disadvantage?

Page 85: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 86: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 87: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 88: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 89: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 90: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Larger MappingsAdvantage: larger mappings decrease table size.

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

Page 91: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 92: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Hybrid FTL

physical:

logical: A B C D W X Y Z

A B C Z W X Y D

block maplogical

0 1

physical 1 0

page maplogical

3 7

physical 7 3

Page 93: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Strategy: Log BlocksWrite changed pages to designated log blocks.

After blocks become full, merge changes with old data.

Eventually garbage collect old pages.

Page 94: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

Merging

Page 95: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MergingMerging technique depends on I/O pattern.

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

Page 96: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MergingMerging technique depends on I/O pattern.

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

Page 97: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 98: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 99: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 100: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 101: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 102: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 103: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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

COPY

Page 104: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 105: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 106: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 107: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MergingMerging technique depends on I/O pattern.

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

Page 108: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 109: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 110: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write D2

Page 111: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 112: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11 D2

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

why was this a better pick?

Page 113: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 114: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 115: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 116: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 117: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MergingMerging technique depends on I/O pattern.

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

Page 118: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

Page 119: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

A

block 0

B C D 1111block 1 (log)

1111

11 11

11 11

0 1 2 3

physical:

logical: …

1111

block 2

1111

11 11

11 11

write A2

Page 120: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 121: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 122: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 123: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 124: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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 125: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MergingMerging technique depends on I/O pattern.

Three merge types: - full merge [copy unmodified and modified] - partial merge [copy unmodified] - switch merge [no copy]

Page 126: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

MergingMerging technique depends on I/O pattern.

Three merge types: - full merge [copy unmodified and modified] - partial merge [copy unmodified] - switch merge [no copy]

why not always do partial or switch merge?

Page 127: [537] Flashpages.cs.wisc.edu/~harter/537/lec-24.pdf · Flash: 11 11 11 11 11 11 11 11 00 01 11 11 11 11 11 11 block 0 block 1 block 2 Memory: 00 01 00 11 11 00 11 11. Write Amplification

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.