캐시기억장치가 무엇일까?

박승우·2024년 6월 23일

자 쉰 두 번째 키워드인 '캐시기억장치'를 알아 보았다.

이전에 키워드였던 '가상기억장치' 처럼 이론을 중심으로 알아보았다.

캐시기억장치가 뭐에요?

캐시 메모리는 일반적으로 CPU 내부 또는 CPU와 주기억장치 사이에 위치한 작은 고속 메모리이다. 캐시는 자주 사용되는 데이터를 저장하여 CPU가 데이터를 더 빠르게 접근할 수 있게 한다. 캐시 메모리는 다양한 크기와 계층으로 구성된다.

캐시의 계층 구조

L1 캐시 (1차 캐시)

  • 위치: CPU 코어 내부에 위치.
  • 크기: 일반적으로 16KB ~ 64KB 정도.
  • 속도: 가장 빠름.
  • 역할: 가장 빈번하게 접근되는 데이터와 명령어를 저장. CPU 코어마다 별도로 존재.

L2 캐시 (2차 캐시)

  • 위치: CPU 코어 내부 또는 코어 간 공유 영역.
  • 크기: 일반적으로 수백 KB ~ 수 MB.
  • 속도: L1 캐시보다 느리지만 여전히 매우 빠름.
  • 역할: L1 캐시에 비해 더 많은 데이터 저장. 여러 코어가 공유할 수도 있음.

L3 캐시 (3차 캐시)

  • 위치: CPU 내부의 여러 코어가 공유.
  • 크기: 일반적으로 수 MB ~ 수십 MB.
  • 속도: L2 캐시보다 느림.
  • 역할: L1 및 L2 캐시에 비해 더 많은 데이터 저장. 모든 코어가 접근 가능.

캐시 작동 원리

데이터 로컬리티의 원리 (Principle of Locality)

  • 시간적 지역성 (Temporal Locality): 최근에 접근한 데이터는 다시 접근될 가능성이 높다.
  • 공간적 지역성 (Spatial Locality): 특정 위치의 데이터가 접근될 때 그 근처의 데이터도 접근될 가능성이 높다.

캐시 히트와 캐시 미스

  • 캐시 히트 (Cache Hit): CPU가 필요한 데이터를 캐시에서 찾으면 캐시 히트가 발생. 데이터 접근이 매우 빠르다.
  • 캐시 미스 (Cache Miss): CPU가 필요한 데이터를 캐시에서 찾지 못하면 캐시 미스가 발생. 데이터를 주기억장치에서 가져와야 하므로 더 많은 시간이 소요 된다.

캐시 미스의 종류

  • Cold (or Compulsory) Miss: 처음 접근하는 데이터로 인한 미스.
  • Capacity Miss: 캐시 크기가 작아서 발생하는 미스. 캐시에 충분한 공간이 없어 새로운 데이터를 저장해야 하는 경우.
  • Conflict Miss: 캐시 내 특정 위치에 여러 데이터가 매핑되어 발생하는 미스. 캐시가 직접 맵핑이나 집합 연관 방식일 때 발생.

캐시 교체 정책

캐시는 한정된 크기로 인해 데이터가 가득 차면 새로운 데이터를 저장하기 위해 기존 데이터를 교체해야 한다. 이를 위해 다양한 캐시 교체 알고리즘이 사용된다.

  • LRU (Least Recently Used): 가장 오랫동안 사용되지 않은 데이터를 교체.
  • FIFO (First In, First Out): 가장 먼저 캐시에 들어온 데이터를 교체.
  • LFU (Least Frequently Used): 가장 적게 사용된 데이터를 교체.

캐시 메모리의 맵핑 방식

캐시 메모리와 주기억장치 간의 데이터를 매핑하는 방식도 여러 가지가 있다.

  • 직접 매핑 (Direct Mapping): 주기억장치의 특정 블록이 캐시의 특정 라인에 매핑됨. 구현이 간단하지만, 충돌이 빈번하게 발생할 수 있음.
  • 완전 연관 매핑 (Fully Associative Mapping): 주기억장치의 모든 블록이 캐시의 어느 라인에나 저장될 수 있음. 충돌이 줄어들지만, 검색 시간이 길어질 수 있음.
  • 집합 연관 매핑 (Set Associative Mapping): 직접 매핑과 완전 연관 매핑의 절충안. 캐시를 여러 집합으로 나누고, 각 집합 내에서 연관 매핑을 사용.

결론 - 느낀 점

하드웨어 라고 느껴지지만 물론 알아야하는 지식이라는 점이 매우 놀랍다.
정보처리 기사를 공부하며 배웠던 내용이라 접근이 쉬웠는데 상새하게 공부를 하다 보니 이런것이 있구나 하고 느꼈다.

더욱 공부하면서 발전을 하고 있다는 느낌이 들지만 점점 어려워 지고 있는 것은 사실이기 때문에 더욱 노력을 해야할 것 같다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글