캐시 메모리는 무엇일까?

성현서·2023년 11월 30일
1
post-thumbnail
설명하기에 앞서 이 글은 책 '혼자 공부하는 컴퓨터구조 +운영체제' 를 참고하여 작성된 글임을 밝힙니다.

캐시 메모리(Cache Memory): 컴퓨터 시스템의 성능을 향상 시키기 위한 메모리 유형.

즉, CPU가 메모리에 진입하는 속도가 느리다는 단점을 보완해 주기 위해 탄생한 것이 바로 캐시 메모리이다.

CPU는 메모리에 접근하는 시간이 일반적으로 오래 걸린다. 한시라도 빠르게 다양한 데이터들을 처리해야하는 입장에서 보았을 때 CPU의 처리 속도가 느린 것은 매우 치명적인 단점이다.

그래서 이러한 문제점을 해결해 주는 것이 바로 캐시 메모리이다.

캐시메모리는 아래와 같은 목적으로 쓰인다.

| 빠른 메모리 접근 |

앞서 말했듯이 캐시메모리는 CPU의 빠른 처리과정을 위해 나타났다.

CPU가 사용할 일부 데이터를 미리 캐시 메모리에 가져와서 빠르고 신속하게 데이터를 처리할 수 있게 하는 것이 바로 캐시 메모리의 장점이다.


(위 사진과 같이 CPU가 직접 메모리에 접근하는 것보다, CPU가 캐시 메모리에서 가져온 데이터에 접근하는 것이 더욱 효율적이다.)

참고로 CPU와의 거리가 가까운 장치 일수록 처리 속도가 빠르지만 용량이 작으며, 가격이 비싸다.

-> 이와 같은 구조를 "저장장치 계층 구조" 라고 한다.

캐시 메모리도 마찬가지로 CPU로 부터 두번 째로 가까운 저장 메모리 -> 용량이 작다는 단점을 필요한 메모리만 가져와 빠르게 처리하는 식으로 역이용하고 있다.

저장장치 계층 구조(캐시메모리)

  • 컴퓨터 내부에는 여러개의 캐시메모리들이 있다.
  • CPU(코어)와 가까운 캐시메모리 일수록 순서대로 L1(Level 1), L2, L3 캐시라고 부른다.

"캐시 히트(cache hit)"와 "캐시 미스(cache miss)"

'용량이 작은' 캐시 메모리는 CPU가 사용할 법한 대상을 "예측"하여 저장하는데,

  • 이때 CPU가 활용해야 하는 데이터를 캐시메모리가 잘 저장하고 있다면 "캐시 히트"
  • 반대로 CPU가 원하는 데이터가 아닌 다른 엉뚱한 데이터를 저장하여 CPU가 직접 메모리를 통해 데이터를 가져가야 하는 상황일 때를 "캐시 미스"라고 한다.

| 캐시 적중률 |

캐시가 미스되지 않고 히트 된 횟수를 비율로 나타낸 것을 캐시 적중률 이라고 한다.

캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

캐시 적중률이 높을 수록 CPU의 메모리 접근 횟수를 줄일 수 있다 = CPU의 처리속도가 향상된다.

이처럼 캐시 메모리의 (hit)적중률을 높이기 위해서는 참조 지역성의 원리를 바탕으로 캐시 메모리가 CPU의 접근 위치를 잘 파악할 수 있어야 한다.

참조 지역성의 두가지 원리

    1. CPU는 최근에 접근한 메모리 공간에 다시 접근하는 경향이 있다.
      ->프로그램이 한번 최근에 접근했던 메모리 공간을 언제든지 여러 번 접근 할 수 있는 가능성이 높다.
    1. CPU는 접근한 메모리 공간 근처에 다시 접근하려는 경향이 있다.
      ->하나의 프로그램 내에서 관련있는 데이터들이 모여서 저장되는게 보통이다.
      ->따라서 필요한 기능들과 그와 연관 된 기능들이 몰려있는 곳을 CPU가 집중적으로 접근 할 확률이 높다.(공간 지역성)

| 정리 하며 |

  • 캐시 메모리는 CPU의 처리 속도(성능)을 향상 시키기 위한 메모리 유형이다.
  • 캐시 메모리는 '저장장치 계층 구조'의 특성에 의해 처리 속도는 빠른 반면, 용량이 작고 비싸다.
  • 캐시 메모리가 성공적인 데이터 접근시 -> 캐시 히트
    아닐 시 -> 캐시 미스
  • 캐시 적중률을 높이기 위해서는 참조 지역성의 원리를 기억하자.
profile
언제나 꾸준함을 보이자

0개의 댓글