콘텐츠로 바로가기

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

  1. Mechanical Storage: 물리적 회전과 자성을 이용한 기록 방식의 고전적 한계를 이해합니다.
  2. Solid State Physics: 전자를 절연체에 가두어 정보를 영속화하는 플래시 메모리 원리를 배웁니다.
  3. FTL Logic: 덮어쓰기가 안 되는 플래시를 일반 디스크처럼 보이게 만드는 가상화 계층을 구축합니다.
  4. 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) 이동과 플래터 회전 시뮬레이션을 통해 총 지연 시간을 예측하는 오퍼레이션 모델

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의 역할: 논리 주소(LBALBA)를 물리 블록/페이지(PBAPBA)로 실시간 사상
    • 매핑 테이블의 위치와 크기: 페이지 단위 매핑 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

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
NAND Flash 전하를 절연체에 가두어 비휘발성 데이터를 저장하는 반도체 물리 소자입니다. 기본 저장 매체 Non-volatile Transistor '램'과 동작 원리 혼동 P1:CS2023/MemoryHierarchy core
FTL 파일 시스템의 요청 주소를 플래시의 실제 물리 위치로 연결해주는 가상화 제어 논리입니다. 추천 주소 사상 Mapping Controller '파일 시스템'과 혼동 P1:CS2023/MemoryHierarchy core
Write Amplification 플래시의 지우기 단위로 인해 실제 요청보다 더 많은 물리적 쓰기가 발생하는 부효과입니다. 실무 수명 저해 GC Erase '대역폭 향상'과 무관 Industry Perf core
Wear Leveling 모든 데이터 블록의 쓰기 횟수가 균일해지도록 위치를 계속 바꾸는 하드웨어 관리 물리입니다. 심화 내구성 확보 Lifespan Endurance '데이터 정렬'과 혼동 주의 Industry Mgmt core

8. References

Primary

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) 현상을 분석하고 완화책을 제시할 수 있는 가?