포스트

임베디드 스터디 - 메모리 계층구조

임베디드 스터디 - 메모리 계층구조

메모리 계층구조

  • 컴퓨터의 속도, 용량, 가격 효율성을 고려하여 메모리 시스템을 계층적으로 구성한 형태
  • 상위 계층일 수록 빠르고, 작고, 비싸다.
  • 하위 계층일 수록 느리고, 크고, 저렴하다.
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 라이센스를 따릅니다.