임베디드 스터디 - 메모리 계층구조
임베디드 스터디 - 메모리 계층구조
메모리 계층구조
- 컴퓨터의 속도, 용량, 가격 효율성을 고려하여 메모리 시스템을 계층적으로 구성한 형태
- 상위 계층일 수록 빠르고, 작고, 비싸다.
- 하위 계층일 수록 느리고, 크고, 저렴하다.
1
2
3
4
레지스터 → L1 캐시 → L2 캐시 → RAM → 보조기억장치
빠름 ◀────────────────────────────▶ 느림
작음 ◀────────────────────────────▶ 큼
비쌈 ◀────────────────────────────▶ 쌈
캐시 메모리의 구분
- 캐시 메모리는 L1, L2, L3까지 구분되어 계층을 이룬다.
1 2 3 4 5 6 7
CPU 코어 │ ├── L1 캐시 ← 코어 안에 내장, 가장 빠름, 수십 KB │ ├── L2 캐시 ← 코어 바깥 or 코어 간 공유, L1보다 느리고 큼, 수백 KB ~ 수 MB │ └── L3 캐시 ← 고성능 CPU에서 추가, 여러 코어가 공유
캐시 프리패치 (Cache Prefetch)
- 캐시 메모리는 지역성 정책을 바탕으로 캐시 메모리에 데이터를 저장한다.
- 공간 지역성
- 시간 지역성
- 하드웨어 프리패처(Hardware Prefetcher) : stride 패턴(등간격 접근)을 감지해서 미리 캐시에 올려두는 기능
공간 지역성 : 캐시 라인 (Cache Line)
- 캐시 미스가 발생하면 CPU가 해당 캐시의 주변 데이터를 묶어서 전부 읽는다. 이렇게 생성된 묶음을 캐시 라인이라고 한다.
1
2
arr[0] 요청 → 캐시 미스 → arr[0]~arr[15] 한 번에 캐시에 적재
→ arr[1] 요청 → 이미 캐시에 있음 (캐시 히트)
시간 지역성 : 교체 정책 (Eviction Policy)
- 캐시 메모리가 가득 차있을 때, 가장 먼저 교체할 데이터를 고르는 정책
- LRU(Least Recently Used) : 가장 오래 호출되지 않은 메모리를 교체하는 방식
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.