메모리 계층 구조(Memory Hierarchy)는 속도와 용량이 다른 여러 종류의 메모리를 계층적으로 조직해 빠른 속도와 큰 용량을 경제적으로 달성하는 컴퓨터 설계 원칙이다. 상위 계층일수록 빠르고 작으며 비싸다.
계층 구조
빠름/비쌈/작음
CPU 레지스터 ~1 사이클 수십 개, 수백 바이트
↓
L1 캐시 3~5 사이클 32~64 KB/코어
↓
L2 캐시 10~20 사이클 256KB~1MB/코어
↓
L3 캐시 40~60 사이클 8~64MB (공유)
↓
DRAM (RAM) 100~200 사이클 8~64 GB
↓
NVMe SSD 수만 사이클 수백 GB~수 TB
↓
HDD 수천만 사이클 수 TB
느림/싸다/크다
지역성 원리 (Locality)
캐시가 효과적인 이유:
- •시간적 지역성: 최근 참조된 데이터는 곧 다시 참조된다
- •공간적 지역성: 참조된 데이터 근처의 데이터도 곧 참조된다
c
// 공간적 지역성 활용 (행 우선 순회)
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
sum += A[i][j]; // 연속 메모리 접근 → 캐시 히트
// 캐시 미스 (열 우선 순회)
for (int j = 0; j < N; j++)
for (int i = 0; i < N; i++)
sum += A[i][j]; // 비연속 접근 → 캐시 미스
멀티 소켓 시스템에서 CPU마다 로컬 메모리가 있고, 원격 메모리는 더 느리다.
관련 개념