본문 바로가기

Study/운영체제

Chapter#20 Flash-based SSDs

반응형

Chapter#20 Flash-based SSDs

- Flash-based SSD

- Direct Mapped FTL

- Log-structured FTL

- Wear-leveling


Flahs-based SSD

Solid-state Storage Drives (SSDs)

- much shorter I/O latency (e.g. 10ms vs 50us)

- much higher I/O throughput (e.g. 100MB/s vs 5GB/s)

- DRAM과 다르게 power가 꺼져도 data 유지

- key technology : NAND flash memory

 

NAND Flash

- HDD는 transistor based이지만

- SSD는 NAND Flahs memory based이다 > non-volatile. one bits are stored in floating gate transistor

program operation으로 0으로 값 지정 : Data '0' > program > shift cell Vth to high > off state > no current flow

erasure operation으로 1로 값 지정 : Data '1' > erasure > shift cell Vth to low > on state > current flow

read operation으로 값 읽어옴

 

page : group of NAND cells. 4K-16K cells

block : group of pages. 128-256 pages

- In-place update 불가능 : page를 바꾸기 위해 block부터 지워야함

flash die : group of blocks

NAND Flash Chip : 2 or 4 flash dies

 

 

Page Read to SRAM 50us
Page Program (Write) from SRAM 500us
Block Erasure 4ms
Serial Access to SRAM 100us (per 4KB)
Page Size 16KB
Block Size 4MB
Die Size 8Gb
Dies per Package 1, 2, or 4

Read is 10x faster than write : 50us vs 500us

Erasure is slowest : 4ms

Throughput is not so high : 36.4Mb/s for reads

-> NAND chips을 늘림 : 36.4MB/s x 64-128 NAND dies = 2.3-4.7 GB/s

 

Capacity 증가 방법

Store more than on bit per cell : Multi-level celll(MLC)

3D Stacking : 96-128 layered 3D NAND flash

 

Summary :

Three operations : read, write, erase

Geometry : pages(4-16KB), blocks(4MB), chips

Limited lifetime : 10K-100K erasure 후에는 block 못쓰게 됨

Virtualizing logical block이 어렵다! (Flahs Translation Layer (FTL) 사용)

 

SSD Architecture


Direct Mapped FTL

HDD처럼 SSD에도 Directly map logical block N to physical page N : page size는 4KB라 가정

Read logical block N : read physical page N

Write logical block N : complicated

1. read entire flash block

2. erase the flash block

3. write the pages with new content to flash block

- Write amplification factor(WAF) = Write traffic by the client (bytes) / Total write traffic by FTL (bytes)

-> 특정 page가 자주 update되면 해당 page가 속한 block은 금방 고장난다

-> write amplification으로 performance 저하


Log-structured FTL

Logging : write할 때 무조건 currently-being-written-to flash block 다음 free page에 씀

Mapping table : read를 위해서 page 위치를 나타내는 mapping table을 DRAM에 올림

 

logical block값에 다른 값이 덮어씌워져서 기존 page에 content를 Invalid시켜야하면?

-> garbage collection 필요

 

Garbage Collection

1. Invalid page가 있는 block의 valid page들 Read

2. 새 block의 free pages에 Write

3. 기존 block erase

4. mapping table 갱신

 

장점 :

Lower write amplification : WAF 작아짐

Better wear-leveling : 새 block에 append하므로 골고루 block사용하여 더 드물게 wear out됨

단점 :

non-trivial I/O overheads : invalid page를 지우는데 time 소모가 크다

mapping table require lots of DRAM : SSD가 커질수록 요구되는 DRAM이 크다

 

Demand-based FTLs

swapping idea를 사용 : enitre mapping table은 한 block에 저장해두고 자주 사용되는 page목록만 DRAM에 캐싱함

장점 :

log-structured FTLs보다 적은 DRAM 사용

단점 : 

locality 없는 random workloads에서 poor performance

High miss penalty


Wear Leveling

cold page(자주 update안되는 page)들이 몰려있는 block에 비해 hot page(자주 update되는 page)가 있는 block이 더 자주 wear-out 될 수 있음. 이를 잘 조절하려는 것

 

Dynamic wear leveling : write할 때 가장 덜 사용된 block에 씀

+ 구현이 쉽고 overhead가 작다

- long-lived data를 handling하지 못함

Static wear leveling : 주기적으로 많이 쓰인 block data를 덜 쓰인 block으로 옮김

+ Solve long-lived data problem

- data 이동에 대한 extra I/O발생 => wear-out을 더 일으킬수도 있음


학교 강의를 토대로 개인 공부 목적으로 작성되어 오타가 및 오류가 있을 수 있으며, 문제가 될 시 삭제될 수 있습니다.

반응형

'Study > 운영체제' 카테고리의 다른 글

Chapter#22 File System Implementation  (0) 2021.12.11
Chapter#21 IO : File and Directory  (0) 2021.12.10
Chapter#19 I/O : HDD and RAID  (0) 2021.12.10
Chapter#18 I/O Device  (0) 2021.12.10
Chapter#17 Swapping  (0) 2021.12.10