포스트

임베디드 스터디 - 캐시 메모리

임베디드 스터디 - 캐시 메모리

캐시 메모리의 동작

캐시 엔트리

  • 데이터는 고정 크기 블록(캐시 라인, 혹은 캐시 블록이라 함)으로 캐시와 메모리 사이에 전송된다.
  • 캐시 엔트리는 데이터와 메모리 위치(태그)가 포함된다.
  • CPU가 캐시 메모리에서 데이터를 찾으면 캐시 적중(Cache Hit), 못 찾으면 캐시 미스(Cache Miss)

캐시 매핑

  • Direct Mapping : RAM 주소를 캐시 슬롯 수로 나눈 나머지(mod)로 자리를 고정
    • 캐시 스래싱(Cache Thrashing) : 동일한 캐시 메모리 구간에서 여러 개의 데이터가 서로 경쟁하는 케이스가 발생. Cache Hit 감소
  • Set-Associative : 캐시 메모리를 몇 개의 구역(Set)으로 나누고, RAM 블록은 mod 연산으로 구역이 결정되며 구역 안에서는 자유롭게 배치
    • 2-way Set-Associative : Set 안에 슬롯 2개
    • 4-way Set-Associative : Set 안에 슬롯 4개
    • 8-way Set-Associative : Set 안에 슬롯 8개
    • Way 수가 적으면 Thrashing, Way 수가 많으면 탐색 비용이 증가하기에, 보통 8-way를 균형점으로 본다.
  • Full-Associative : 캐시 메모리에 랜덤으로 데이터를 배치

캐시 구역과 매핑

계층매핑 방식이유
L1Direct Mapping속도 최우선, 탐색 즉시
L2Set-Associative속도와 히트율 균형
L3Full-Associative히트율 최우선, 크기가 크니 탐색 비용 감당 가능

캐시 메모리의 교체 정책

정책기준특징
LRU가장 오래 사용 안 된 것시간 지역성 잘 반영, 구현 복잡
FIFO가장 먼저 들어온 것구현 단순, 자주 쓰는 데이터도 오래되면 교체될 수 있음
랜덤무작위구현 가장 단순, 예측 불가

캐시 메모리의 쓰기 정책

정책방식장점단점
Write-through캐시 + RAM 동시 쓰기일관성 보장, 구현 단순쓰기마다 느린 RAM 접근
Write-back캐시만 쓰고, 교체 시 RAM 반영쓰기 속도 빠름구현 복잡, 전원 차단 시 유실 위험
1
2
3
4
5
6
7
8
Write-back 흐름:

CPU 쓰기 → 캐시만 업데이트 + Dirty Bit = 1
                    ↓
         (나중에 캐시 라인 교체 시)
                    ↓
         Dirty Bit == 1 → RAM에 반영 후 교체
         Dirty Bit == 0 → 그냥 교체
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.