[CS] 캐시 메모리

정은아·2024년 1월 8일
post-thumbnail

저장 장치 계층 구조를 통해 저장 장치의 큰 그림을 그리고, CPU와 메모리 사이에 위치한 케시 메모리에 대해 알아보자!

저장 장치 계층 구조

  • CPU와 가까울수록 저장 장치의 속도는 빠르다. 반대로 멀수록 저장 장치는 느리다.
  • 속도가 빠른 저장 장치일수록 용량이 작고 가격이 비싸다.
  • 저장 장치의 장단점이 명확하기 때문에 컴퓨터는 다양한 저장 장치를 사용한다.
  • 저장 장치는 RAM과 보조 저장 장치 외에도 캐시 메모리가 사용된다.

캐시 메모리

캐시 메모리(cash memory)

  • CPU와 메모리 사이에 위치한 저장 장치로 SRAM 기반이다.
  • 레지스터 보다 용량이 크며 메모리보다 빠르다.
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이려고 사용된다.
  • CPU에서 사용될 데이터를 미리 캐시 메모리로 가져와 활용한다.

캐시 메모리의 종류

  • CPU(코어)와 가까운 순대로 여러 개의 캐시 메모리가 계층을 구성한다.

    L1 (level 1) 캐시: 코어와 가장 가까운 캐시 메모리
    L2 (level 2) 캐시
    L3 (level 3) 캐시
    일반적으로 L1과 L2는 코어 내부에, L3는 코어 외부에 존재한다.

캐시 메모리별 특징

  • L1과 L2 캐시는 코어마다 고유한 캐시 메모리로 할당된다.
  • L3 캐시는 여러 코어가 하나의 L3를 공유하는 형태로 사용된다.
항목비교
용량L1 < L2 < L3
속도L1 > L2 > L3
가격L1 > L2 > L3

분리형 캐시(split cache)

  • 분리형 캐시란? L1 캐시의 접근 속도를 조금이라도 더 빨리 하기 위해 L1 캐시를 아래와 같이 분리하는 것을 의미한다.
  • L1I 캐시(Level 1 Instruction)란? 명령어만을 저장하는 캐시를 뜻한다.
  • L1D 캐시(Level 1 Data)란? 데이터만 저장하는 캐시를 뜻한다.

저장 장치 계층 구조(memory hierarchy)

  • 컴퓨터가 사용하는 저장 장치들이 "CPU에서 얼마나 가까운가"를 기준으로 계층적으로 나타낸 것
  • 단, memory는 RAM이 아닌 일반적인 저장 장치를 의미한다.
  • 상위 계층으로 갈수록 CPU와 저장 장치간 거리가 가깝고, 하위 계층으로 갈수록 멀어진다.
  • 상위 계층과 하위 계층을 이루는 저장 장치의 특징들을 각각 이해하고 차이를 구분할 수 있어야 한다.

참조 지역성 원리

  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측해서 저장한다.
  • 자주 사용될 것으로 예측해서 캐시 메모리에 저장한 데이터가 CPU에서 사용된 경우를 캐시 히트(cache hit)라 한다.
  • 캐시 메모리에 저장했지만 예측이 틀려 CPU가 메모리에서 필요한 데이터를 가져오는 경우를 캐시 미스(cache miss)라 한다.
  • 캐시 미스가 자주 발생하면 CPU가 필요한 데이터를 메모리에서 가져오는 경우가 많아지기 때문에 성능이 떨어진다.

캐시 적중률(cache hit ratio)

  • 캐시가 히트되는 비율을 뜻한다.
  • 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
  • 일반적으로 컴퓨터의 캐시 적중률은 대략 85~ 95% 이상이다.
  • 캐시 메모리의 이점을 제대로 활용하기 위해서는 캐시 적중률을 높이는 것이 중요하다.
  • 캐시메모리는 참조 지역성의 원리에 입각해 CPU가 사용할 데이터를 예측한다.

참조 지역성의 원리(locality of reference, principle of locality)

  • CPU가 주로 메모리에 접근하는 경향을 바탕으로 만들어진 원리를 말한다.
  • CPU는 최근에 접근한 메모리 공간에 다시 접근하는 경향이 있다.
  • CPU는 접근한 메모리 공간 근처를 접근하는 경향이 있다.
  1. 최근에 접근했던 메모리 공간에 다시 접근하는 경향
  • 최근에 접근했던 메모리 공간에 다시 접근하려는 경향을 시간 지역성(temporal locality)이라고 한다.
  • 프로그래밍에서 변수를 저장하고, 변수를 자주 참조하듯이, CPU 역시 최근에 접근한 메모리 공간을 여러 번 참조하는 경향이 있다.
  1. 접근한 메모리 공간 근처를 접근하는 경향
  • 접근한 메모리 공간 근처를 접근하는 경향을 공간 지역성(spatial locality)이라고 한다.
  • 프로그램을 실행하는데 필요한 데이터는 보통 메모리 근처에 모여있는 경향이 있다.
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글