Memory Systems & Storage Physics
레지스터부터 캐시, 주메모리, 그리고 영구 저장소에 이르는 데이터 저장 계층과 그 물리적 동작 원리를 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
메모리 시스템 및 저장 물리(Memory Systems & Storage Physics, SSP)는 데이터가 하드웨어 상에서 어떻게 유지되고 전달되는지를 다룹니다.
현대 컴퓨터 시스템의 성능 병목은 연산(CPU)이 아닌 데이터 이동(Memory)에서 발생합니다. 학습자는 SRAM, DRAM, Flash 등 매체별 물리적 특성을 이해하고, 이를 보완하기 위한 계층적 메모리 구조(Storage Hierarchy)를 학습합니다. 캐시 지역성(Locality)과 가상 메모리 하드웨어 지원(TLB/MMU)을 통해 소프트웨어가 하드웨어 성능을 최대로 활용할 수 있는 구조적 통찰을 확보합니다.
2. Scope & Boundaries
In-Scope
- 메모리 계층 구조: 레지스터, L1/L2/L3 캐시, 메인 메모리, 보조 기억 장치의 설계 원리
- 캐시 동작 원리: 매핑 전략(Direct, Associative), 교체 알고리즘, 일관성 유지(Coherency)
- 물리적 저장 매체: DRAM 리프레시, NAND Flash 읽기/쓰기/지우기 메커니즘, SSD 컨트롤러 기능
- 데이터 신뢰성: ECC(Error Correction Code), Wear Leveling, 비휘발성 메모리 관리
Out-of-Scope
- 파일 시스템 로직 및 디렉토리 구조 (03. Operating Systems 영역으로 위임)
- 분산 스토리지 네트워크 (07. System Architecture 영역으로 위임)
- 데이터베이스 인덱싱 알고리즘 (06. Data Management 영역으로 위임)
Boundaries
- SSP vs. OS: SSP는 '메모리 소자의 물리적 타이밍과 계층 하드웨어'를 다루며, OS는 이를 활용한 '페이지 관리 및 스왑 로직'을 다룹니다.
3. Counterexample
- 단순히 변수를 많이 선언하는 것은 SSP 학습이 아닙니다. 왜 데이터 구조의 배치를 **캐시 라인(Cache Line)**의 크기에 맞춰 정렬(Alignment)해야 성능이 향상되는지 하드웨어 캐시 메커니즘 관점에서 설명할 수 있어야 학습이 완료된 것입니다.
4. Prerequisites
- 디지털 논리 및 프로세서 물리 (Basic): 레지스터와 플립플롭의 동작 방식을 알아야 메모리 구성을 이해할 수 있습니다. (01. Digital Logic)
5. Learning Map
- Memory Foundations: 비트 저장의 물리적 구현(SRAM vs DRAM)을 익힙니다.
- Hierarchy & Locality: 계층 구조가 성능에 미치는 영향과 지역성의 원리를 파악합니다.
- Hardware Management: MMU와 캐시 컨트롤러의 물리적 동작 방식을 다룹니다.
- Storage Integration: 비휘발성 메모리와 SSD 내부 구조를 통한 대용량 데이터 관리를 학습합니다.
6. Learning Topics
Basic
Core: 메모리 기술과 계층 구조 (Memory Technologies & Hierarchy)
- Why to Learn: 접근 속도와 용량 간의 물리적 트레이드오프를 인식하여 효율적인 데이터 배치를 하기 위함입니다.
- What to Learn:
- SRAM(고속/저밀도)과 DRAM(고밀도/리프레시)의 물리적 구조 차이
- 레지스터부터 영구 저장소까지의 계층별 Latency 비교
- 휘발성 vs 비휘발성 저장 원리 기초
- How to Learn:
- 아키텍처 다이어그램을 통해 CPU와 각 메모리 계층 간의 물리적 거리를 시각화
- 접근 속도 차이를 실제 시간(밀리초, 나노초) 관점에서 체감하는 비교 실습
- Implement: SRAM과 DRAM의 동작 특성을 비교하는 기초 하드웨어 에뮬레이터
Recommended
Core: 캐시 메커니즘과 지역성 (Cache Mechanics & Locality)
- Why to Learn: CPU 연산 유닛이 노는 시간(Stall)을 줄이고 데이터 공급 속도를 극대화하기 위해서입니다.
- What to Learn:
- 시간 지역성(Temporal) 및 공간 지역성(Spatial)의 물리적 근거
- Direct-mapped, Set-associative 캐시 설계와 태그 분석
- Average Memory Access Time (AMAT) 산출 및 최적화
- How to Learn:
- 캐시 시뮬레이터를 이용해 다양한 Mapping 정책에 따른 Hit Rate 측정
- 데이터 접근 패턴에 따른 캐시 미스(Conflict, Capacity) 분석
- Implement: LRU(Least Recently Used) 캐시 교체 알고리즘 동작 시연 프로그램
Practical
Core: 메모리 일관성과 하드웨어 지원 (Coherency & Hardware Support)
- Why to Learn: 다중 코어 환경에서 데이터 부정합을 방지하고 가상 주소 변환을 가속하기 위해서입니다.
- What to Learn:
- MESI 프로토콜 등 캐시 일관성 유지 하드웨어 로직
- MMU와 TLB(Translation Lookaside Buffer)의 물리적 동작 방식
- DMA(Direct Memory Access)를 이용한 고속 데이터 전송 물리
- How to Learn:
- 멀티스레드 환경에서 캐시 핑퐁(False Sharing) 현상 프로파일링
- 가상 주소가 물리 주소로 변환되는 하드웨어 단계를 수기 추적 실습
- Implement: TLB 캐시 미스 시의 Page Table Walk 과정을 모사하는 로직
Advanced
Core: 영구 저장 물리와 신기술 (Storage Physics & NVM)
- Why to Learn: SSD와 같은 영구 저장 매체의 수리적 수명을 관리하고 차세대 메모리 기술을 적용하기 위함입니다.
- What to Learn:
- NAND Flash의 읽기/쓰기/지우기 단위 불일치와 쓰기 증폭(Write Amplification)
- FTL(Flash Translation Layer) 및 Wear-leveling 전략
- NVM(Non-Volatile Memory) 신기술 동향(PRAM, ReRAM 등)
- How to Learn:
- SSD 내부 컨트롤러의 가비지 컬렉션(GC) 물리 분석
- 메모리 보안 이슈(Rowhammer)의 물리적 발생 경로와 방어 기법 학습
- Implement: SSD의 수명 연장(Wear-leveling) 시뮬레이션 알고리즘
7. Terminology
8. References
Primary References
- [P1] CS2023 - AR/Memory System Organization — Hierarchy and cache principles.
- [P2] SWEBOK - Computing Foundations — Hardware basics for SE.
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의 수명 관리와 쓰기 증폭 문제를 인지하고 시스템 설계에 반영 가능한가?