캐시메모리와 지역성

캐시 메모리

  • 캐시 메모리는 주기억장치와 CPU사이에 위치하여 자주 사용하는 프로그램과 데이터를 기억한다.
  • 메인 메모리도 빠른 속도를 지녔는데 캐시 메모리는 메모리 종류중에 제일 빠른 속도를 가지고 있다.
  • 메인 메모리에서 참조해야 할 데이터가 캐시 메모리에 존재하면 캐시 메모리를 대신 참조하여 참조 횟수가 줄어들어 처리속도가 대폭 향상된다.
  • 캐시의 크기는 보통 수십 ~ 수백 KByte이다.

캐시가 제일 빠르면 주 메모리 대신 캐시 용량을 늘리면 되는거 아닌가?
=> 늘어나는 용량에 비해 드는 비용이 훨씬 증가하기 때문에 힘들다.

캐시의 지역성

  • 이러한 적은용량의 캐시 메모리를 효율적으로 사용하기 위해선 CPU에서 자주 사용되는 데이터가 캐시 메모리에 주로 저장될 수 있어야한다(가상 메모리의 데이터들 중에서 자주 사용되는 데이터가 메인 메모리에 적재되듯이)
  • 이 때 적중율(Hit rate)을 극대화 시키기 위해서 사용되는 원리가 데이터 지역성이며 지역성은 시간 지역성, 공간 지역성으로 나뉜다.
    • 시간 지역성 : 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성 (ex: loop문의 데이터가 자주 사용되는 것)
    • 공간 지역성 : 대부분의 실제 프로그램이 참조된 주소의 내용이 다시 참조되는 특성 (ex: 배열은 연속적인 특성 때문에 다음 번지가 사용되는 것)

이러한 지역성을 잘 활용하면 이제는 캐시메모리에 위치한 데이터를 어떻게 빨리 찾는지도 고려해야 한다. 이 내용을 다음 게시물에 알아보자. https://gusrb3164.github.io/computer-science/2021/04/28/caching-line/


참고사이트 https://github.com/JaeYeopHan/Interview_Question_for_Beginner