Slide 1

Slide 1 text

Solid State Drive 김문섭

Slide 2

Slide 2 text

SSD Overview

Slide 3

Slide 3 text

NAND Flash Cell

Slide 4

Slide 4 text

Program/Erase - Program / Read: Page - Erase: Block - Dead cell

Slide 5

Slide 5 text

Multi Level Cell - Need more precise threshold voltage for TLC & QLC

Slide 6

Slide 6 text

Incremental Step Program Pulse

Slide 7

Slide 7 text

Block Characteristics of NAND Flash - Non-volatile - Erase-before-write - Limited lifetime(Program/Erase cycle) - Asymmetric operation - Program: ~300us - Read: ~25us - Erase: ~2ms - Asymmetric unit - Program & Read: Page - Erase: Block Page Page Page Page

Slide 8

Slide 8 text

Flash Translation Layer 1. Mapping Table 2. Garbage Collection 3. Wear Leveling

Slide 9

Slide 9 text

Address Mapping Techniques a. Block Level Mapping b. Page Level Mapping c. Hybrid Mapping Memory usage: block level < hybrid < page level # of GC: block level > hybrid >page level

Slide 10

Slide 10 text

Invalid Page Block Level Mapping Block #2 Block #1 22 2 Logical Page Number Page Index Physical Block Number LBN PBN 1 2 2 -1 ... ... 22 3 ... ... Page #1 Page #2 Page #3 Page #4 Block #0 Page #1 Page #2 Page #3 Page #4 Page #1 Page #2 Page #3 Page #4 Block #3 Page #1 Page #2 Page #3 Page #4 Valid Page Free Page no mapping block

Slide 11

Slide 11 text

Page Level Mapping 00000022 Logical Page Number Physical Page Number LPN PPN 1 3 ... ... 22 0xC02 Invalid Page Block #2 Block #1 Page #1 Page #2 Page #3 Page #4 Block #0 Page #1 Page #2 Page #3 Page #4 Page #1 Page #2 Page #3 Page #4 Block #3 Page #1 Page #2 Page #3 Page #4 Valid Page Free Page (PBN) << 10 + Index

Slide 12

Slide 12 text

Hybrid Mapping - Sequential Write: block mapping - Random Write: page mapping

Slide 13

Slide 13 text

Garbage Collection 1. Select victim blocks 2. Copy all valid pages to the free block (Merge) 3. Erase victim blocks → free block GC incurs 1. Increase response time of user request 2. Increase # of P/E cycle(lifetime)

Slide 14

Slide 14 text

Victim Block Merge Operation Victim Block Page #1 Page #2 Page #3 Page #4 Block Page #1 Page #2 Page #3 Page #4 Page #1 Page #2 Page #3 Page #4 Victim Block Page #1 Page #2 Page #3 Page #4 Block Page #1 Page #2 Page #3 Page #4 Victim Block Page #1 Page #2 Page #3 Page #4 1. Full merge 2. Partial Merge 3. Switch Merge Invalid Page Valid Page Free Page

Slide 15

Slide 15 text

Technical issues of GC 1. How to organize valid data blocks containing hot and cold data cause partial & full merge → hot(or cold) data blocks will be switch-merged 2. When to begin On-demand: prevents user request because of merge operation Background: high managing cost(GC scheduling) 3. Victim block selection: Which block to reclaim blocks that minimize merging cost and have low P/E cycle

Slide 16

Slide 16 text

Wear Leveling evenly distributed P/E cycle - Swap cold data block and hot data block - increase unnecessary P/E cycle to avoid “dead block”

Slide 17

Slide 17 text

Special SSDs for enterprises Transactional SSD: Support transaction in SSD Multi-Stream SSD: write data to different block each stream Open-Channel SSD: Manage FTL in host side Optane DIMM(non-volatile memory): Use low-latency ssd as a memory Key-Value SSD: Offload storage engines of KV store (e.g, wired tiger) into SSD

Slide 18

Slide 18 text

Q&A 1. Mapping table은 어디에 보관하는가 - 똑같이 Nand에 저장함 2. 종료될 땐 어떻게 되는가 - SSD내부에 비상전력이 있어서 mapping table을 모두 저장하고 셧다운됨 3. invalidation과정 - page를 write할때 기존 mapping table에 ppn이 있으면 해당 ppn page를 지웠다고 마크 (FTL에서 관리하는 메타데이터) 4. SSD용량을 많이쓰면 안좋다던데 - 용량을 많이쓰면 Free block이 줄어들어 빈번한 GC가 생김 5.