NAND Flash 기초
[!tldr] 업무 관점 takeaway NAND의 단 하나 특성 — "덮어쓰기 불가, 블록 단위로만 erase" — 이 LMCache의 모든 [[WAF]] 문제의 뿌리. KV Cache 워크로드처럼 수명이 다른 데이터가 같은 블록에 섞이면 [[Garbage-Collection|GC]]가 폭주한다. [[NVMe-FDP|FDP]]는 이 섞임을 host hint로 막아 NAND를 잘 쓰게 해주는 기술. 즉 FDP를 제대로 이해하려면 NAND erase 단위부터 시작.
물리 계층 구조
SSD
├── Channel 0
│ ├── Die 0
│ │ ├── Plane 0
│ │ │ ├── Block 0 [Page 0, Page 1, Page 2, ...]
│ │ │ ├── Block 1
│ │ │ └── ...
│ │ └── Plane 1
│ └── Die 1
├── Channel 1
└── ...
핵심 단위
| 단위 | 설명 | 일반 크기 |
|---|---|---|
| Page | 쓰기 / 읽기 최소 단위 | 4 KB ~ 16 KB |
| Block | Erase 최소 단위 (여러 Page) | 수 MB |
| Plane / Die / Channel | 병렬성 확보 단위 | — |
Superblock — 병렬 쓰기 단위
여러 Channel × Die × Plane에 걸친 Block들의 묶음. "여러 채널/다이에 동시에 병렬로 쓰기" 위함 → 속도가 나온다.
Superblock (예: 4채널 × 4다이 = 16개 블록 묶음)
Ch0-Die0-Block5 Ch0-Die1-Block3 ...
Ch1-Die0-Block2 Ch1-Die1-Block9 ...
...
핵심 제약 — "덮어쓰기 불가"
| 매체 | 덮어쓰기 |
|---|---|
| HDD | ✅ 가능 |
| NAND SSD | ❌ 불가능 |
새 데이터를 쓰려면 빈 페이지에만 쓸 수 있다.
→ "현재 어디까지 썼는지" 추적하는 Append Point (쓰기 포인터) 필요.
기존 SSD: Append Point 하나
Superblock 0 (현재 쓰는 중)
[A][B][C][D][_][_][_]
↑
다음 쓸 위치
모든 host write가 이 하나의 append point로 향한다. 결과: 서로 다른 수명의 데이터가 같은 블록에 섞임.
→ 이게 [[WAF]] 증가의 직접 원인이다.
Garbage Collection (GC)
블록 안에 살아있는 페이지가 군데군데 남아있을 때:
- 살아있는 페이지를 다른 블록으로 복사
- 빈 블록을 erase
- 이제 그 블록을 새 쓰기에 사용 가능
복사 단계가 곧 [[WAF]] 증가.
자세히는 [[Garbage-Collection]].
TLC vs QLC ([[HC-SSD]] 관련)
| 셀당 비트 | 명칭 | 용량 | 내구성 | Write Latency | WAF 민감도 |
|---|---|---|---|---|---|
| 1 | SLC | 작음 | 매우 김 | 매우 빠름 | 낮음 |
| 2 | MLC | — | — | — | — |
| 3 | TLC | 중간 | 중간 | 보통 | 보통 |
| 4 | QLC | 큼 | 짧음 | 느림 | 높음 |
[[HC-SSD]]는 보통 QLC. 같은 WAF라도 성능/수명 피해가 TLC보다 큼 → FDP 효과 더 큼.
의외의 연결
[!note] Erase block 크기 ↔ LMCache chunk 크기 NAND erase 단위는 수 MB. [[LMCache-Local-Disk-Backend|LMCache chunk]] (256 토큰)는 모델에 따라 수십~수백 MB. chunk 1개가 erase block 수십 개에 흩어진다. FDP RU를 chunk 경계와 정렬하면 erase 효율 ↑. ([[기여-포인트-맵|기여 포인트 [3][9]]])
관련 페이지
- [[WAF]] — NAND 특성에서 직접 파생
- [[Garbage-Collection]] — Erase before write 때문에 필수
- [[NVMe-FDP]] — Append Point를 여러 개로 만들어 섞임을 막는 기술
- [[HC-SSD]] — QLC NAND 기반 대용량
- [[데이터-배치-기술-역사]] — NAND 제약을 푸는 시도들의 역사