GiYeong

캐시(Cache) 본문

CS/운영체제

캐시(Cache)

gy2710 2022. 8. 4. 18:49

캐시 메모리

속도가 빠른 장치와 느린 장치 간의 속도 차이로 인한 병목 현상을 줄이기 위한 범용 메모리로서, 주기억장치에서 자주 사용하는 프로그램이나 데이터를 저장하여 처리속도를 빠르게 해준다.

캐시 메모리와 주기억장치 사이에서 정보를 옮기는 것을 매핑(Mapping)이라고 하며 직접 매핑(Direct Mapping), 연관 매핑(Associate Mapping), 집합 연관 매핑(Set Associate Mapping)이 있다.

  • 직접 매핑(Direct Mapping) : 주기억장치의 블록들이 지정된 한 개의 캐시 라인으로만 매핑되는 방법으로, 간단하고 구현하는 비용이 적지만 캐시 적중률이 낮아질 수 있다.
  • 연관 매핑(Associate Mapping) : 직접 매핑 방식의 단점을 보완한 방식으로, 모든 태그들을 병렬로 검사하기 때문에 복잡하고 비용이 높다. 때문에 거의 사용하지 않는다.
  • 집합 연관 매핑(Set Associate Mapping) : 직접 매핑과 연관 매핑의 장점만 취한 방식으로, 정해진 블록의 집합 내에서 어디서든 매핑이 가능하다.

캐시 메모리는 병목 현상을 줄이기 위해 CPU가 어떤 데이터를 원하는지 최대한 예측할 수 있어야 하며, 이에 따라 캐시의 성능이 좌우된다.

 

캐시의 지역성(Cache Locality)

작은 용량의 캐시 메모리에 CPU가 이후에 필요로하는 데이터가 얼만큼 들어있냐에 따라 캐시의 성능이 좌우된다.

따라서 캐시 메모리가 역할을 제대로 수행하기 위해서는 CPU가 어떤 데이터를 원하는지 최대한 예측할 수 있어야한다.

이 때, 캐시 적중률(Cache Hit Rate, CPU가 원하는 데이터가 캐시에 있을 확률)를 극대화시키기 위해 데이터의 지역성(Locality)를 이용한다.

지역성이란, 데이터 접근이 시간적 또는 공간적으로 가깝게 일어나는 것을 의미한다. 즉, 기억장치 내의 정보를 균일하게 접근하는것이 아닌, 어느 한 순간에 특정 한 부분을 집중적으로 접근하는 특성이다.

  • 시간적 지역성(Temporal Locality) : 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성
  • 공간적 지역성(Spatial Locality) : 기억장치 내에 서로 인접하여 저장되어있는 데이터들이 연속적으로 참조될 가능성이 높아지는 특정

'CS > 운영체제' 카테고리의 다른 글

가상 메모리(Virtual Memory)  (0) 2022.07.31
기아상태(Starvation)  (0) 2022.07.27
교착상태(Deadlock)  (0) 2022.07.27
Thread Safe  (0) 2022.07.27
동기 / 비동기  (0) 2022.07.24
Comments