Disk, SSD & Flash Internals
기계적 회전의 HDD부터 전자의 터널링 현상을 활용하는 SSD/플래시 메모리까지, 비휘발성 저장 장치의 물리적 하부 구조와 성능 제약을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
디스크, SSD 및 플래시 내부 구조(Disk, SSD & Flash Internals, DSF)는 전원이 꺼져도 정보를 붙잡아 두는 비휘발성 저장 매체의 물리학적 원리와 그 한계를 공학적으로 관리하는 계층입니다.
학습자는 자기 디스크의 물리적 회전을 이용하는 HDD의 지연 시간(Seek/Latency)과, 반도체 셀에 전하를 가두는 NAND 플래시의 혁명적 속도 차이를 배웁니다. 특히 SSD의 수명을 결정짓는 **웨어 레벨링(Wear-leveling)**과, 쓰기 성능 향상을 위한 **가비지 컬렉션(Garbage Collection)**의 물리적 동작 방식을 익힙니다. 이를 통해 단순히 "용량이 큰 스토리지"를 선택하는 단계를 넘어, 파일 시스템과 데이터베이스가 이 장치들을 어떻게 대우해야 하는지 결정짓는 하드웨어 시각을 갖춥니다.
2. Scope & Boundaries
In-Scope
- HDD Mechanics: 플래터(Platter), 헤드(Head), 실린더 및 탐색 지연 물리
- NAND Flash Physics: 플로팅 게이트(Floating Gate) 전하 트랩 및 SLC/MLC/TLC 차이
- SSD Controller Architecture: FTL(Flash Translation Layer)의 주소 사상 논리
- Internal Housekeeping: 가비지 컬렉션, 웨어 레벨링, 불량 블록(Bad block) 관리
Out-of-Scope
- 파일 시스템 메타데이터 및 디렉토리 구조 상세 (03-02 File Systems 영역으로 위임)
- RAID 컨트롤러의 스트라이핑/미러링 소프트웨어 로직 (06-03 Storage 영역으로 위임)
Boundaries
- DSF vs. RAM: RAM이 '무한한 쓰기 회수와 즉각적 접근'을 보장한다면, DSF는 '유한한 쓰기 수명과 덮어쓰기 불가'라는 물리적 제약 하에서 동작합니다.
3. Counterexample
- 단순히 "SSD가 HDD보다 빠르다"는 설명은 DSF 학습이 아닙니다. 왜 NAND 플래시에서 특정 페이지를 수정하려면 전체 블록을 지워야(Erase-before-write) 하는 물리적 비대칭성이 발생하는지 증명할 수 있어야 하고, SSD의 쓰기 증폭(Write Amplification) 현상이 왜 기동 성능을 물리적으로 잠식하는지 수치적 근거를 가지고 비판할 수 있어야 합니다.
4. Prerequisites
- 디지털 논리 및 불리언 대수 (Basic): 트랜지스터의 스위칭 기초가 필수입니다. (02-01-01 DLB)
- Integer & Float Representations (Recommended): 데이터 주소 관리 비트 지식이 권장됩니다. (02-01-02 IFR)
5. Learning Map
- Mechanical Storage: 물리적 회전과 자성을 이용한 기록 방식의 고전적 한계를 이해합니다.
- Solid State Physics: 전자를 절연체에 가두어 정보를 영속화하는 플래시 메모리 원리를 배웁니다.
- FTL Logic: 덮어쓰기가 안 되는 플래시를 일반 디스크처럼 보이게 만드는 가상화 계층을 구축합니다.
- Reliability Physics: 한정된 수명을 골고루 분산시키고 오류를 정정하는 하드웨어 보정 기술을 완성합니다.
6. Learning Topics
Basic
Core: HDD와 SSD의 물리적 작동 비교 (Storage Mechanics)
- Why to Learn: 저장 장치의 물리적 형태(기계 vs 전자)가 왜 성능의 근본적 체급을 결정하는지 파악하기 위함입니다.
- What to Learn:
- HDD의 거시적 물리: 탐색 시간(Seek Time), 회전 지연, 전송 지연
- SSD의 미시적 물리: 전자 이동을 통한 비트 제어, 읽기/쓰기/지우기 단위의 불일치
- 랜덤 I/O에서의 성능 역전 현상 분석
- How to Learn:
- 7200 RPM HDD의 한 바퀴 회전 시간을 계산하고, 그 시간 동안 무색무취하게 흐르는 CPU 클록 수 비교
- SSD 내부에서 헤드가 이동할 필요가 없는 '제로 탐색'의 수리적 이점 분석
- Implement: HDD의 암(Arm) 이동과 플래터 회전 시뮬레이션을 통해 총 지연 시간을 예측하는 오퍼레이션 모델
Recommended
Core: NAND 플래시 기술과 SLC/MLC/TLC (Flash Internals)
- Why to Learn: 한 셀에 몇 비트를 담느냐에 따른 속도, 수명, 용량의 물리적 트레이드오프를 이해하기 위해서입니다.
- What to Learn:
- 셀 아키텍처: 플로팅 게이트(FG)와 차지 트랩(CTF) 물리
- 비트 밀도: SLC(1비트)에서 QLC(4비트)로 갈수록 좁아지는 전압 임계치 오차
- 3D NAND(V-NAND): 정보를 아파트처럼 쌓아 올리는 물리적 확장 기술
- How to Learn:
- 전압 레벨이 2단계(SLC)에서 8단계(TLC)로 늘어날 때, 왜 읽기 오류 발생 확률이 수치적으로 높아지는지 분석
- 적층 수가 늘어날 때 발생하는 전력 간섭(Cell-to-cell interference) 문제를 이해
- Implement: 특정 전압 분포 모델에서 각 비트를 판별(Sense)할 때 발생할 수 있는 비트 에러율(BER) 계산기
Practical
Core: FTL과 주소 매핑 (Flash Translation Layer)
- Why to Learn: "수정하려면 지워야 한다"는 물리적 악조건을 소프트웨어와 운영 체제에 어떻게 감쪽같이 속이는지 배우기 위해서입니다.
- What to Learn:
- FTL의 역할: 논리 주소()를 물리 블록/페이지()로 실시간 사상
- 매핑 테이블의 위치와 크기: 페이지 단위 매핑 vs 블록 단위 매핑 물리
- 논리적 덮어쓰기: 이전 데이터를 유효하지 않음(Invalid)으로 표시하고 새 위치에 쓰는 아웃-오브-플레이스(Out-of-place) 쓰기
- How to Learn:
- 특정 데이터를 루프 돌며 업데이트할 때, FTL 매핑 테이블이 실제 물리 페이지를 어떻게 순회하는지 추적 실습
- DRAM 캐시가 없는 'DRAM-less SSD'의 FTL 성능 저하 물리 분석
- Implement: 가상의 논리 주소를 물리 주소로 변환하고 프리 블록 리스트를 관리하는 미니 FTL 엔진
Advanced
Core: 가비지 컬렉션과 웨어 레벨링 (Consistency Maintenance)
- Why to Learn: 장치의 수명을 늘리고 일관된 성능을 유지하기 위한 하드웨어 하우스키핑 전술을 익히기 위해서입니다.
- What to Learn:
- 쓰기 증폭(Write Amplification): 유저가 1을 썼는데 장치가 물리적으로 10을 쓰게 되는 비효율 분석
- 웨어 레벨링(Wear-leveling): 특정 블록만 망가지지 않게 '빨리 낡는' 블록을 쉬게 하는 물리
- TRIM 명령어: 운영체제가 SSD에게 "이제 이 페이지는 안 쓴다"고 알려주는 물리적 필요성
- How to Learn:
- 웨어 레벨링 알고리즘(Static vs Dynamic)을 적용했을 때 전체 장치의 생존 기대 수명 계산 연습
- SSD의 여유 공간(Over-provisioning) 비중과 가비지 컬렉션 효율성 사이의 수리적 상관관계 분석
- Implement: 데이터의 'Hotness'를 감지하여 접근 빈도에 따라 물리 블록을 재배치하는 웨어 레벨링 시뮬레이터
7. Terminology
8. References
Primary
- [P1] CS2023 - AR/Storage Systems — Basic I/O behavior.
- [P2] SWEBOK v4.0 - Computing Foundations / External Storage — Industry standards.
Secondary
- [Design and Implementation of NAND Flash Memory Control Systems] — Deep dive into FTL.
- [Database Internals] Alex Petrov — Storage-specific engine design.
Industry
- [The SSD Anthology] AnandTech — Classic industry performance analysis.
- [JEDEC JESD218/219 Standard] — SSD endurance and retention standards.
9. Final Checklist
Primary
- HDD에서 헤드 이동 거리와 데이터 접근 지연 시간 사이의 선형적 물리 관계를 도출할 수 있는 가? (P1)
- NAND 플래시의 '지우기(Erase)' 단위가 '쓰기(Write)' 단위보다 왜 항상 물리적으로 훨씬 커야 하는지 구조적 이유를 설명할 수 있는 가? (P1)
Secondary
- MLC(2bit)를 TLC(3bit)로 대체했을 때, 동일 면적당 용량 이득과 신뢰성 하락 사이의 수리적 트레이드오프를 소통 가능한가?
- 'TRIM' 명령어가 삭제된 파일을 가리키는 물리 페이지를 어떻게 비유효(Invalid) 상태로 만들어 나중의 쓰기 증폭을 줄이는지 입증 가능한가?
Industry
- 쓰기 집약적인(Write-heavy) DB 환경에서 SSD를 선택할 때, DWPD(Drive Writes Per Day) 수치가 시스템 운영 비용에 미치는 영향을 제안할 수 있는 가? (SFIA)
- 실시간 스트리밍 시스템에서 SSD의 가비지 컬렉션 주기가 유발하는 일시적 성능 튐(Latency spike) 현상을 분석하고 완화책을 제시할 수 있는 가?