소소한 것들에 대한 기록

Cache Memory 본문

컴퓨터공학

Cache Memory

소소한 김로그__ 2023. 1. 15. 14:19





캐시(Cashe Memory)

속도가 빠른 장치와 속도가 느린 장치 사이의 속도차에 의한 병목 현상을 줄이기 위한 메모리이며 전원이 연결되어 있는 동안 정보를 유지한다.

속도의 향상을 위해 자주 사용되는 메인 메모리의 데이터를 넣어놓고 CPU가 메인 메모리까지 접근하지 않고도 프로그램과 데이터를 사용할 수 있도록 하는데 이를 캐시의 지역성(Locality)라고 한다.

 

참조의 국한성 Locality of Reference

프로그램이 수행되는 동안 메모리 참조는 국한된 영역에서 이루어지는 경향이 있다. CPU가 어떤 데이터를 원하는지 어느 정도 예측해서 공간/시간으로 구분하며 이 때문에 모든 코드나 데이터에 균등하게 접근하지 않는다는 특성이 있다.

  1. 공간 지역성(Spatial Locality): 해당 데이터와 인접한 데이터가 참조될 가능성이 높다.
  2. 시간 지역성(Temporal Locality): 최근에 사용했던 데이터가 재참조될 가능성이 높다.

이와 같이 참조의 국한성(locality of reference)을 이용하여 빠르고, 적은 메모리를 이용하여 프로그램을 수행시킬 경우 평균 메모리 접근 시간의 단축과 그에 따른 전체 프로그램 수행시간의 절약이 보장된다.

 

Cache Hit / Cache Miss

CPU가 메모리를 참조할 때 Cache Memory에서 이를 찾으면 hit, 찾지 못하면 miss라 한다.

CPU가 데이터를 읽는 과정은 다음과 같다.

  1. Cache 참조: hit → read , miss → main memory 접근
  2. Cache Miss: main memory에서 데이터 read, cache에 write

이 때, 메모리의 총 량 대비 Cache 내에서 데이터를 찾는 확률을 cache hit ratio라고 한다.

  • Chache hit ratio = hit 수 / 메모리의 총 량

그리고 평균적인 데이터 접근 시간은 hit ratio, 캐시접근시간 그리고 메인 메모리 접근시간을 통해 계산된다(단, 캐시 접근시간 < 메인 메모리 접근 시간)

  • 평균 데이터 접근 시간: cache hit ratio * 캐시 접근시간 + (1-cache hit ratio) * 메인 메모리 접근시간

 






'컴퓨터공학' 카테고리의 다른 글

입출력장치(Input/Output Device)  (0) 2023.01.15
메모리(Memory)  (0) 2023.01.14