SSD 내부 구조 해부: 페이지/블록 오퍼레이션과 FTL의 논리적 맵핑 원리
핵심 내용
NAND 플래시의 덮어쓰기 불가 특성으로 인한 Write Amplification과 FTL의 Garbage Collection 메커니즘을 상세히 설명한다.
자세히 보기
NAND 플래시 메모리는 특정 셀 단독 접근이 불가능하며, 읽기와 쓰기는 페이지(Page) 단위, 삭제(Erase)는 블록(Block) 단위로만 실행된다. 페이지는 덮어쓰기가 불가능하여 데이터 변경 시 기존 데이터를 읽고 수정 후 새로운 페이지에 기록하는 Read-Modify-Write 과정이 필수적이다. 이 과정에서 발생하는 불필요한 추가 쓰기를 Write Amplification이라 하며, 이는 SSD의 수명과 성능에 직접적인 영향을 미친다.
FTL의 역할과 논리적 블록 맵핑
SSD 컨트롤러 내부의 **FTL(Flash Translation Layer)**은 호스트의 논리적 주소(LBA)를 NAND의 물리적 주소(PBA)로 변환하는 핵심 컴포넌트이다. FTL의 주요 목적은 논리적 블록 맵핑과 Garbage Collection이다. 맵핑 방식에는 페이지 단위, 블록 단위, 그리고 그 절충안인 Hybrid Log Block Mapping이 있다. Hybrid 방식은 랜덤 쓰기를 시퀀셜 쓰기로 변환하여 Write Amplification을 줄이고, 로그 블록이 가득 차면 데이터 블록과 병합(Merge)하거나 스위치(Switch)하는 방식으로 효율성을 높인다.
Wear Leveling과 Garbage Collection
NAND 셀은 제한된 **P/E Cycles(Program/Erase Cycles)**를 가지므로, 특정 블록만 과도하게 사용되면 수명이 단축된다. FTL은 모든 블록의 마모를 균일하게 분산시키는 Wear Leveling을 수행한다. 또한, 삭제된 페이지를 재사용하기 위해 블록 단위로 삭제(Erase)하는 Garbage Collection을 수행한다. 백그라운드 Garbage Collection은 쓰기 성능에 영향을 줄 수 있으므로, 핫(Hot) 데이터와 콜드(Cold) 데이터를 분리하여 관리하고 빈번한 변경 데이터를 캐싱하는 것이 성능 최적화의 핵심이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.