본문 바로가기
공부/OS 공부

[OS 공부] 캐시의 지역성

by 로디네로 2021. 3. 9.
반응형

우선 간단히

캐시메모리란 :

https://www.xtremegaminerd.com/types-of-cache-memory

CPU (속도빠름) 와 MM (속도느림) 간 속도차이에 따른 병목형상을 줄이기 위한 범용메모리이다.

 

입출력 데이터를 버퍼링해서 MM에의 접근 없이 빠른 입출력을 제공한다.

 


 

캐시의 지역성이란 : 

캐시가 효율적으로 동작하려면, 캐시에 저장할 데이터가 지역성을 가져야 한다. 지역성이란 데이터 접근이 시간적 혹은 공간적으로 가깝게 일어나는 것을 말한다.

 


 

지역성의 원리 : 

캐시메모리는 병목현상을 줄이기 위한 범용메모리이고 이런 역할을 수행하기 위해서는 CPU가 원하는 데이터를 어느정도 예측할 수 있어야 한다. 

 

왜냐하면 캐시의 성능을 좌우하는 것은 작은 용량의 캐시 메모리에 CPU가 사용할 의미있는 정보가 얼마나 들어있는가 이기 때문이다.

 

이때 Hit rate를 극대화 시키기 위해 지역성의 원리를 사용한다.

 

지역성의 특성은 기억장치 내의 정보를 균일하게 참조하는 것이 아닌 어느 한 순간에 특정 부분을 집중 참조하는 것이다.

 

캐시의 지역성은 시간 지역성과 공간 지역성으로 나뉜다.

 

- 시간 지역성 : 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성

- 공간 지역성 : 대부분의 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성

 


 

시간 지역성 : 

특정 데이터에 한번 접근해서 가져온 경우, 그 데이터가 가까운 미래에 또 한번 접근할 가능성이 높은 것.

 

즉 한 번 가져왔던 데이터를 또 쓸일이 있다는 의미이다.

 

따라서 캐시는 반복으로 사용되는 데이터가 많을수록 높은 효율을 보일 수 있다.

 


 

공간 지역성 : 

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우 공간적 지역성이라고 한다.

 

즉 앞으로 사용할 데이터들이 가져올 블록 안에 많이 모여있는 것을 뜻한다.

 

필요한 데이터들이 모여있다면 한번만 메모리에 접근해도 필요한 데이터들을 많이 가져올 수 있을 것이고

 

흩어져 있다면 catch miss 가 날 확률이 높아질 것이므로 효율성이 떨어지게 될 것이다.

반응형

댓글