CPU Cache Hit & Miss

mingu Lee·2026년 1월 15일

CS

목록 보기
18/21
post-thumbnail

CPU Cache란?


  • CPU와 메인 메모리(RAM) 사이의 속도 차이를 줄이기 위해 CPU 내부에 위치하는 작고 빠른 임시 저장소
  • 자주 사용되는 데이터나 명령어 복사본을 저장하여 CPU가 데이터에 빠르게 접근하도록 돕고 성능을 향상시킴

Cache Hit와 Cache Miss


Cache Hit

  • CPU가 필요한 데이터가 캐시에 이미 존재하는 경우
  • 캐시에서 즉시 가져오므로 메인 메모리에 접근할 필요가 없음
  • 데이터 접근 시간이 매우 짧아서 성능이 좋음

Cache Miss

  • CPU가 필요한 데이터가 캐시에 없는 경우
  • L1 -> L2 -> L3 -> RAM 순서로 조회하며 다음 순서로 갈수록 지연이 커짐
  • 가져온 데이터는 보통 캐시에 적재되어 다음 접근에서 히트가 나도록 함
  • 캐시가 꽉 차있으면 기존 라인을 교체

Cache Miss의 대표 종류


  • Compulsory Miss
    • 처음 접근이라 캐시에 없을 수밖에 없는 미스
  • Capacity Miss
    • 캐시 용량이 작아서 필요한 데이터를 다 못 담아 생기는 미스
  • Conflict Miss
    • 캐시 매핑(직접 매핑/세트 연관 등) 때문에 특정 라인에 충돌이 나서 생기는 미스

Cache 지역성


캐시 지역성은 최근에 접근한 데이터(또는 그 주변 데이터)를 가까운 미래에 또 접근할 가능성이 높다는 성질을 이용한 것.

지역성의 2가지 종류

  1. 시간 지역성(Temporal Locality)
  • 방금 쓴 데이터를 곧 다시 사용함
  • 예: 반복문 변수, 자주 호출되는 함수의 코드, 자주 참조되는 전역/멤버 변수 등
  • 최근에 쓴 것을 캐시에 두면 다음 접근이 Hit가 나기 쉬움
  1. 공간 지역성(Spatial Locality)
  • 어떤 주소를 썼다면, 그 '근처 주소'도 곧 사용함
  • 예: 배열을 0, 1, 2, 3 순서로 훑는 코드, 문자열 처리, 연속 메모리 스캔 등
  • 캐시는 데이터를 1바이트씩이 아니라 캐시 라인(64B) 단위로 통째로 가져오는데, 주변 데이터까지 가져오면 다음 접근이 Hit가 나기 쉬움

연속적인 메모리 구조를 가진 vector와 메모리가 흩어져 있는 list의 순회를 비교할 때, vector가 더 빠른 것이 지역성의 원리 때문.

profile
Github: https://github.com/dlalsrn

0개의 댓글