콘텐츠로 바로가기

Memory Systems & Storage Physics

레지스터부터 캐시, 주메모리, 그리고 영구 저장소에 이르는 데이터 저장 계층과 그 물리적 동작 원리를 다루는 학습 노드입니다.

Article
M

Me

hyunyoun's Blog

computer-architecture-embedded-systemscomputer-architectureembedded-systemsmemory-systemsstorage-physicsarchitecture-hardwarelearningcache10 min read

1. Overview

메모리 시스템 및 저장 물리(Memory Systems & Storage Physics, SSP)는 데이터가 하드웨어 소자에서 어떻게 전기적/물리적으로 기억되고, CPU 연산 코어와 외부 세계 사이를 계층적으로 이동하는지 규명하는 데이터 인프라 물리 아키텍처입니다.

현대 컴퓨터 시스템의 성능 병목(Bottleneck)은 연산 속도(CPU Clock)가 아닌 **'데이터 이동 속도(Memory Wall)'**에서 발생합니다. 아무리 코어가 강력해도 데이터를 가져오지 못하면 CPU는 대기(Stall)할 수밖에 없습니다. 학습자는 SRAM, DRAM, NAND Flash 등 저장 매체별 물리적 한계를 이해하고, 이를 극복하기 위해 진화해 온 계층적 메모리 구조(Memory Hierarchy)를 집중 분석합니다. 캐시 지역성(Locality) 최적화부터 가상 메모리 하드웨어 변환 장치(TLB/MMU), 그리고 SSD 컨트롤러 펌웨어 메커니즘을 꿰뚫어 보며, 소프트웨어가 하드웨어의 I/O 병목을 우회하여 성능을 극한으로 끌어올릴 수 있는 구조적 최적화 능력을 확보합니다.

2. Scope & Boundaries

In-Scope

  • 메모리 소자 물리 (Memory Device Physics): SRAM의 고속 동작 원리(Flip-flop 기반), DRAM의 커패시터 누설 전류와 리프레시(Refresh) 오버헤드, 플래시 메모리(NAND) 셀(Cell) 구조 및 양자 터널링 기반 읽기/쓰기 물리.
  • 계층적 캐시 아키텍처 (Cache Hierarchy): 레지스터, L1/L2/L3 캐시, 메인 메모리(RAM), 보조 기억 장치(Disk) 간의 속도/비용/용량 트레이드오프와 매핑 방식(Direct, Set-associative).
  • 가상 메모리와 캐시 일관성 (Virtual Memory & Coherency): 하드웨어 메모리 관리 장치(MMU), 주소 변환 캐시(TLB), 멀티코어 환경의 캐시 일관성 유지 규약(MESI 프로토콜), False Sharing.
  • 비휘발성 스토리지 펌웨어 (Storage Firmware): SSD 내장 컨트롤러 펌웨어(FTL, Flash Translation Layer), 논리-물리 주소 매핑, 가비지 컬렉션(GC), Wear Leveling과 쓰기 증폭(Write Amplification).

Out-of-Scope

  • 운영체제 커널의 페이지 교체 소프트웨어 알고리즘: OS 수준에서 관리하는 Demand Paging 기법, SW 기반 LRU/Clock 알고리즘, 물리 메모리 프레임 할당 메커니즘 → 03-02. Memory Management (OS) 영역으로 위임.
  • 논리적 파일 시스템 체계: VFS(Virtual File System), EXT4, NTFS 디렉토리 트리 구조 및 논리 블록 스케줄링(Elevator 알고리즘) → 03-04. Storage & I/O (OS) 영역으로 위임.
  • 데이터베이스 논리적 인덱스 탐색 구조: B-Tree, LSM Tree 등 데이터를 빠르게 찾기 위한 응용 계층의 자료구조 최적화 → 06. Data Management (DB) 영역으로 위임.

Boundaries

  • SSP vs OS Memory (03-02. Memory Management): SSP는 'DRAM 셀의 리프레시 딜레이', 'TLB 하드웨어 캐시 미스', 'SSD 플래시 소자 마모' 등 칩셋(Chipset)과 컨트롤러 하드웨어 관점을 다룹니다. 반면 OS는 이 물리적 하드웨어 위에 '페이지 부재(Page Fault) 처리 로직', '프로세스별 페이지 테이블 맵핑' 등 커널 소프트웨어 로직을 얹어 가상 주소 공간을 관장합니다.

3. Counterexample

  • 단순 변수 할당과 하드웨어 추상화 맹신: 자료구조인 배열(Array)과 연결 리스트(Linked List)를 배울 때, 빅오(Big-O) 논리적 시간 복잡도(O(N)O(N))만 외우고 넘어가는 것은 SSP 학습이 아닙니다. 왜 연결 리스트의 순회 속도가 배열보다 압도적으로 느린지 '캐시 라인(Cache Line) 적재 블록 단위'와 '공간 지역성(Spatial Locality)' 측면에서 하드웨어적으로 해석하고, C/C++의 구조체 패딩(Padding) 및 메모리 정렬(Alignment)이 캐시 친화적(Cache-friendly)으로 어떻게 설계되어야 하는지 물리적 근거를 설명해야 합니다.
  • 디스크 암묵적 무한 수명 가정: 엔터프라이즈 환경에서 무거운 트랜잭션 로그를 동기적으로 디스크에 남기는 코드를 짤 때, SSD를 단순히 빠른 HDD로 취급하는 행위는 위험합니다. SSD는 덮어쓰기가 불가능하여 지우기(Erase) 작업이 필요하고 이로 인한 쓰기 증폭(Write Amplification)과 플래시 셀 수명(P/E Cycle) 단축이 발생함을 깨닫고, 이를 회피하기 위한 Append-only 로그 패턴이나 배치(Batch) I/O 모델을 설계할 줄 알아야 합니다.

4. Prerequisites

  • 디지털 논리 및 프로세서 물리 (Basic): 래치(Latch)와 플립플롭(Flip-Flop) 회로의 동작 방식을 파악해야, SRAM 셀이 어떻게 전원이 끊기기 전까지 데이터를 기억하는지 이해할 수 있습니다. (02-01. DLP)
  • 자료구조 알고리즘 (Recommended): 캐시 블록 교체 정책이나 FTL의 매핑 테이블을 시뮬레이션할 때, 해시 테이블이나 큐(Queue)와 같은 기초 논리 자료구조 지식이 필요합니다. (04-01. DSA)

5. Learning Map

Sequence Core Cluster Objective & Description Evidence (BoK)
1 Memory Physical Foundations 비트 저장을 위한 고속 SRAM(캐시)과 고밀도 DRAM(주기억)의 물리적 구현 차이 및 휘발성 메모리의 한계를 파악합니다. P1/Memory
2 Cache Hierarchy & Locality 계층 구조가 성능(Latency)에 미치는 영향을 수치로 계산하고, 캐시 적중률(Hit Rate)을 높이는 시간/공간 지역성 코딩 패턴을 훈련합니다. P1/Memory
3 Hardware TLB & Coherency MMU에 의한 가상 주소 물리 변환(TLB) 가속 메커니즘과, 멀티코어 환경에서 캐시 일관성(Coherency)을 유지하는 하드웨어 규약을 다룹니다. P2
4 NVM Storage & FTL NAND 플래시의 쓰기/지우기 비대칭 물리 한계를 극복하는 FTL 펌웨어 로직을 해부하여 대용량 SSD의 튜닝 전략을 설계합니다. Industry

6. Learning Topics

Basic

Core Topic 01: 메모리 물리 기술과 계층 구조 (Memory Physics & Hierarchy)

  • Why to Learn: CPU 레지스터의 접근 속도(0.1나노초)와 메인 메모리(100나노초) 사이의 절대적인 물리적 속도 및 용량 트레이드오프를 인식하여, 시스템 구조 설계의 당위성을 깨닫기 위함입니다.
  • What to Learn:
    • Concepts: SRAM(Flip-flop 고속/저밀도), DRAM(Capacitor 고밀도/리프레시 오버헤드), Memory Wall 문제.
    • Skills: 레지스터, L1/L2/L3 캐시, 메인 메모리까지 계층별 Latency(대기 시간) 및 대역폭(Bandwidth) 정량적 수치 감각 확보.
    • Tools: 아키텍처 다이어그램 (CPU ↔ Memory Bus ↔ RAM).
    • Trade-offs: 단일 칩 내 SRAM(L3 캐시) 용량 증가로 인한 적중률 향상 vs 실리콘 칩 면적(Cost) 기하급수적 증가 및 발열/전력 소모 간의 트레이드오프.
  • How to Learn:
    • 1단계: CPU L1 캐시(1ns), 주메모리(100ns), SSD(100,000ns)의 물리적 접근 시간 차이를 인간의 체감 시간(1초 vs 100초 vs 1일)으로 환산하여 시각화표를 작성해 봅니다.
    • 2단계: DRAM 뱅크에서 연속된 데이터를 읽을 때, 셀의 방전 특성 때문에 주기적으로 충전해 주는 리프레시(Refresh)로 인해 딜레이가 발생하는 타이밍 다이어그램을 분석합니다.
  • Implement: SRAM과 DRAM 계층의 가상 Latency(예: 1ns, 100ns)를 상수로 부여하여, 특정 캐시 적중률(예: 95%)일 때의 평균 메모리 접근 시간(AMAT)을 계산해 내는 기초 수식 시뮬레이터.

Core Topic 02: 캐시 메커니즘과 물리적 지역성 최적화 (Cache Mechanics & Locality)

  • Why to Learn: CPU 파이프라인이 데이터를 기다리며 노는 시간(Stall)을 하드웨어적으로 줄이고, 데이터 공급 대역폭을 극대화하는 소프트웨어 레벨의 '캐시 친화적(Cache-Friendly) 튜닝'의 핵심이기 때문입니다.
  • What to Learn:
    • Concepts: 시간 지역성(Temporal Locality)과 공간 지역성(Spatial Locality), 캐시 라인(Cache Block/Line), 평균 메모리 접근 시간(AMAT).
    • Skills: Direct-mapped, Set-associative 매핑 전략의 물리 주소 비트 분할(Tag, Index, Offset) 원리 파악 및 3C 미스(Cold, Capacity, Conflict) 원인 분석.
    • Tools: 캐시 성능 시뮬레이터 (Dinero IV, Valgrind Cachegrind).
    • Trade-offs: 캐시 적중률(Hit Rate)을 높이기 위한 단일 캐시 블록(Block) 크기 확장 vs 미스 시 메인 메모리에서 가져와야 하는 데이터 전송 시간(Miss Penalty) 증가 오버헤드.
  • How to Learn:
    • 1단계: C나 C++로 1000x1000 2차원 배열을 array[i][j] (행 우선) 순서와 array[j][i] (열 우선) 순서로 각각 순회하는 코드를 작성하여 속도를 벤치마크하고, 공간 지역성과 캐시 라인 적재 관점에서 차이를 증명합니다.
    • 2단계: 특정한 물리 주소 시퀀스가 순차적으로 입력될 때, 4-Way Set Associative 캐시 안에서 데이터 블록이 어떻게 교체(LRU 방식 등)되는지 표를 그려 추적합니다.
  • Implement: Direct-mapped 방식의 간단한 캐시 하드웨어 동작 로직을 파이썬 클래스로 구현하여, 메모리 주소 배열이 입력되었을 때 적중(Hit)과 미스(Miss) 여부를 판정하고 최종 Hit Rate를 출력하는 모의 프로그램 작성.

Practical

Core Topic 03: 하드웨어 가상화 지원 및 멀티코어 캐시 일관성 (TLB & Coherency)

  • Why to Learn: 현대 운영체제가 격리된 가상 주소를 제공하는 바탕에 깔린 하드웨어 가속기(TLB)를 이해하고, 멀티 스레드 프로그래밍 시 발생하는 보이지 않는 병목(False Sharing)을 방어하기 위함입니다.
  • What to Learn:
    • Concepts: TLB(Translation Lookaside Buffer), 캐시 핑퐁 및 거짓 공유(False Sharing), 멀티코어 캐시 일관성 유지 규약(MESI 프로토콜, Snooping).
    • Skills: 가상 주소가 물리 주소로 변환되는 하드웨어 단계(Page Table Walk) 추적, CPU 코어 간의 버스 트래픽 억제 최적화.
    • Tools: Intel VTune Profiler (마이크로아키텍처 캐시 미스/스누핑 프로파일링).
    • Trade-offs: 강력한 캐시 일관성 프로토콜(MESI)로 인한 완벽한 메모리 상태 관리 보장 vs 상태 검증을 위한 코어 간 버스 트래픽 급증(Snooping Overhead)에 따른 멀티코어 스케일링 성능 저하.
  • How to Learn:
    • 1단계: 멀티코어 스레드 코드에서 64바이트 캐시 라인 안에 함께 들어있는 별개의 배열 요소(예: arr[0]arr[1])를 각 코어가 동시에 무한 반복 수정할 때 발생하는 False Sharing 병목을 코드로 증명하고, 패딩(Padding)을 넣어 성능을 개선합니다.
    • 2단계: CPU가 가상 주소 읽기를 요청한 순간부터, TLB 미스가 발생해 메인 메모리의 페이지 테이블을 하드웨어가 직접 뒤져(Page Table Walk) 물리 주소를 찾고 캐시에 올리는 전체 타이밍 다이어그램을 도식화합니다.
  • Implement: 특정 가상 주소를 쪼개어 TLB 캐시를 룩업하고, 실패(Miss) 시 모의 메모리에 저장된 Page Table 배열을 참조하여 물리 주소 체계로 매핑해 주는 기초 하드웨어 MMU(Memory Management Unit) 소프트웨어 모델 개발.

Advanced

Core Topic 04: 영구 저장 매체 물리 및 FTL 펌웨어 설계 (Storage Physics & FTL)

  • Why to Learn: 데이터베이스나 클라우드 스토리지 시스템을 설계할 때, 하부에 깔린 비휘발성 저장 매체(SSD)의 수리적 수명을 관리하고 펌웨어 계층 특성을 이해하여 I/O 성능 저하를 방어하기 위함입니다.
  • What to Learn:
    • Concepts: NAND Flash 물리 구조, 덮어쓰기 제약에 따른 지우기-쓰기 비대칭성, 쓰기 증폭(Write Amplification), 가비지 컬렉션(GC), 마모도 평준화(Wear Leveling).
    • Skills: FTL(Flash Translation Layer)의 논리-물리 주소 매핑(Page/Block Mapping) 알고리즘 병목 분석, PRAM/ReRAM 등 차세대 비휘발성 메모리(NVM) 특성 파악.
    • Tools: SSD 펌웨어 에뮬레이터 (예: FEMU).
    • Trade-offs: 플래시 메모리 셀당 비트 수를 늘리는 기술(TLC, QLC) 도입으로 인한 획기적인 기가바이트당 가격 절감 vs 셀 열화 가속으로 인한 수명(P/E Cycle) 급감 및 에러 정정(ECC) 지연 트레이드오프.
  • How to Learn:
    • 1단계: NAND Flash가 하드디스크(HDD)와 달리 같은 블록에 데이터를 덮어쓸 수 없어(Overwrite 불가) 반드시 해당 블록을 싹 비우는 Erase 작업이 필요함을 인지하고, 이로 인해 유효한 데이터를 백업/이동시키는 가비지 컬렉션(GC) 시나리오를 그려봅니다.
    • 2단계: 운영체제가 내려보내는 순차 쓰기(Sequential Write) 패턴과 무작위 쓰기(Random Write) 패턴이 FTL 매핑 테이블 업데이트 및 플래시 조각화에 미치는 물리적 영향을 비교 분석합니다.
  • Implement: 한정된 횟수의 P/E Cycle(예: 블록당 1,000회 쓰기)을 가진 가상 플래시 메모리 블록 배열을 시뮬레이션하여, 단순 덮어쓰기 로직과 Wear-leveling(마모 평준화) 매핑 펌웨어 로직 간의 최종 디바이스 수명(장치 고장 시점)을 정량적으로 비교 측정하는 스크립트.

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core/misused/legacy)
Locality (지역성) 데이터 접근이 시간적 또는 공간적으로 특정 위치에 집중되는 현상입니다. 기본 핵심 원리 Cache Spatial / Temporal 캐시 내부 로직으로만 오해 P1:CS2023/Memory core
TLB (주소 변환 캐시) 가상 주소를 물리 주소로 변환할 때 Page Table 접근을 생략하는 전용 하드웨어입니다. 실무 성능 가속 MMU Paging 일반 캐시와 동일하게 취급 SWEBOK core
MESI Protocol 멀티코어 환경에서 개별 캐시 데이터의 상태를 4가지로 관리하여 일관성을 지키는 규격입니다. 실무 일관성 유지 Coherency Write-back 소프트웨어 락과 혼동함 Industry SW Manual core
Wear Leveling NAND Flash의 특정 블록에 쓰기가 집중되지 않도록 데이터를 고르게 분산 저장하는 물리 기술입니다. 심화 수명 관리 FTL SSD 성능 최적화로만 오해함 Industry Spec core

8. References

Primary References

Secondary References

  • [What Every Programmer Should Know About Memory] Ulrich Drepper — Deep dive into memory effects on SW.
  • [Modern Processor Design] John Paul Shen, Mikko Lipasti — Advanced memory system architectures.

Industry References

  • [Intel Optimization Reference Manual] — Cache and memory usage optimization for industry.
  • [Samsung Semiconductor] DRAM & SSD Whitepapers — Cutting-edge storage physics.

9. Final Checklist

Primary Checklist

  • 메모리 계층 구조를 도식화하고 상하위 계층 간의 Latency/Capacity 트레이드오프를 아는가? (P1)
  • 캐시 미스의 3C(Cold, Capacity, Conflict) 원인을 하드웨어 구조 관점에서 식별 가능한가? (P1)

Secondary Checklist

  • DRAM 리프레시와 뱅크 구조가 시스템 지연(Jitter)에 미치는 물리적 영향을 설명할 수 있는가?
  • 가상 메모리 지원을 위한 하드웨어(MMU/TLB)의 동작 흐름을 정확히 기술할 수 있는가?

Industry Checklist

  • False Sharing 등 멀티코어 성능 저해 요소를 프로파일링 도구로 감지하고 해결할 수 있는가? (SFIA)
  • SSD의 수명 관리와 쓰기 증폭 문제를 인지하고 시스템 설계에 반영 가능한가?

Architecture Hardware

3 / 9