My Boundary As Much As I Experienced

캐시메모리(Cache Memory) 본문

Computer Basics

캐시메모리(Cache Memory)

Bumang 2023. 7. 24. 17:28

컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 캐시 전용 메모리. 프로그램에서 직접적으로 읽거나 쓸 수 없고 하드웨어의 메모리 관리 시스템이 내부적으로 제어한다. RAM과 CPU를 잇는 중간자적인 메모리 역할을 한다.

 

캐시메모리의 구성

CPU 하나 당 캐시메모리가 2~3개 정도 사용된다. 듀얼코어의 경우 각 코어 당 하나의 L1 캐시 메모리를 가지고 있으며, 두 코어가 공유하는 L2 캐시메모리를 사용한다.

  • L1 : CPU 내부에 존재
  • L2 : CPU와 RAM 사이에 존재. 용량이 크고, 크기를 위해 L1 캐시처럼 나누지 않는다.
  • L3 : 보통 메인보드에 존재한다고 함. 여러 코어가 공유하는 캐시.

 

 

작동 원리: 데이터 지역성

  • 시간 지역성은 최근 접근한 데이터에 다시 접근하는 경향을 말한다. 가령 for, while 루프에서 인덱스 역할을 하는 변수 i에는 짧은 시간안에 여러 번 접근이 이뤄진다.
  • 공간 지역성은 최근 접근한 데이터의 주변 공간에 다시 접근하는 경향을 말한다. 위 루프의 경우 배열 arr의 각 요소를 참조하면서 가까운 메모리 공간에 연속적으로 접근하고 있다. 배열의 요소들이 메모리 공간에 연속적으로 할당되기 때문이다.

 

 

CPU가 요청한 데이터가 캐시에 있으면 'Cache Hit', 없어서 DRAM에서 가져오면 'Cache Miss'

 

캐시 미스의 경우 3가지

  • Cold miss: 해당 메모리 주소를 처음 불렀기 때문에 나는 미스. 예를 들어 프로그램을 새로 켜거나 하는 경우 발생한다. 간혹 사용할 데이터를 미리 프리페치하는 경우가 아닌 이상 사실상 예방이 불가능한 캐시 미스지만, 전체 컴퓨터 이용 시간에 비하면 굉장히 드물게 나는 미스 유형이라 전체적인 성능에 영향을 미치는 정도는 작다.
  • Conflict miss: 캐시 메모리에 A 데이터와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어서 나는 캐시 미스다.
  • Capacity miss: 캐시 메모리의 공간이 부족해서 나는 미스 (Conflict는 주소 할당 문제, Capacity는 공간 문제