1 분 소요

캐시(cache)

캐시는 컴퓨터 시스템에서 자주 사용되는 데이터를 미리 복사해놓는 임시 저장소이다. CPU나 메모리와 같은 빠른 속도로 접근 가능한 장치와 비교하여 속도가 느린 하드디스크나 외부 저장소와 같은 곳에 접근하는 속도를 개선하기 위해 사용된다.

  • 데이터를 미리 복사해 따로 저장해놓는 공간으로써, 캐시를 이용해 빠르게 데이터를 가져올 수 있다.

캐시 동작 방식

캐시는 일반적으로 두 가지 방식으로 동작한다.

  1. 코어 캐시(core cache)
    • CPU 내부에 위치한 L1, L2, L3 캐시와 동일한 개념이며, L1 캐시와 같은 역할을 한다.
      • L1, L2, L3는 컴퓨터 아키텍처에서 사용되는 캐시 계층 구조를 나타내는 용어이다.
      • L1캐시는 CPU 코어 내부에 위치하며, 가장 빠른 속도로 데이터나 명령어에 접근할 수 있는 캐시이다.
    • CPU와 함께 동작하며 매우 빠른 속도로 데이터에 접근할 수 있다.
  2. 디스크 캐시
    • 메모리나 디스크와 같은 외부 저장소에 위치한 캐시
    • 일반적인 웹 브라우저의 캐시와 같은 용어로 부르기도 한다.

캐시의 지역성(locality)

캐시의 지역성은 컴퓨터 시스템에서 데이터나 명령어에 접근하는 패턴이 특정 구역(지역)에 집중되어 발생하는 특성을 말한다.

  • 캐시가 자주 사용되는 데이터를 빠르게 접근할 수 있도록 해주는 중요한 개념

캐시의 지역성 종류

캐시의 지역성은 크게 시간 지역성(temporal locality)과 공간 지역성(spatial locality)으로 나눠진다.

  • 시간 지역성
    • 최근에 접근한 데이터나 명령어가 다시 접근될 확률이 높다는 것을 의미
    • Ex.) 반복문에서 같은 변수에 반복적으로 접근하는 경우
  • 공간 지역성
    • 특정 데이터나 명령어와 인접한 데이터나 명령어가 다시 접근될 확률이 높다는 것을 의미
    • Ex.) 배열에서 인접한 원소에 접근하는 경우

캐싱 라인(Caching line)

캐싱 라인은 캐시 메모리의 가장 작은 단위로, 캐시 메모리에서 데이터를 읽거나 쓸 때 한번에 처리할 수 있는 데이터의 크기이다.

  • 필요 데이터가 가까운 캐시에 있더라도 저장 위치를 모른다면, 모든 데이터를 순회해야 하기 때문에 시간이 오래걸린다.
  • 즉, 캐시에 목적 데이터가 저장되어 있다면 바로 접근하여 출력할 수 있어야 캐시가 의미가 있는 것이며, 이를 도와주는 것이 캐싱 라인이다.
  • 캐싱 라인은 캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶음으로 저장하는 것을 일컷는다.
    • 프로세스는 다양한 주소에 있는 데이터를 사용하므로 데이터의 주소 또한 흩어져 있기 때문에 주소 등을 기록한 태그를 달아놓을 필요가 있다.
  • 종류로는 대표적으로 세 가지 방식이 존재한다.
    1. Full Associative
    2. Set Associative
    3. Direct Map

업데이트: