학습자료(~2017)

Cache 정리

단세포소년 2013. 3. 8. 16:52
반응형


 cache 란?

 캐시란 데이터를 임시로 저장해두는 장소를 말한다. 일반적으로 캐시는 기존 저장공간보다 빠른 공간이 사용되며 데이터의 지역성이나 접근 비율이 많은 경우 빠른 접근 공간인 캐시에 해당 데이터를 임시저장하여 해당 데이터를 필요로 하는 시점에서 빠르게 제공하는 것을 목적으로 한다. 컴퓨터에서는 RAM보다 빠른 L1,L2 레지스터를 캐시로 사용하고 웹 브라우저에서는 느린 네트워크 웹 서버보다 빠른 하드의 임시저장 공간이 캐시로 사용된다.

 cache 는 공간 지역성과 시간 지역성을 기초로 한다. 공간 지역성은 임의의 데이터를 참조했을 경우 다음 참조는 그 데이터의 가까운 곳에서 일어난다는 것이고 시간 지역성은 한번 읽은 데이터는 가까운 시일내에 다시 참조된다는 이론이다.


 용어

 cache hit : 참조하려는 데이터가 캐시에 존재할 때 캐시 히트라 한다.

 cache miss : 참조하려는 데이터가 캐시에 존재 하지 않을 때 캐시 미쓰라 한다.

 cache hit ratio : 적중률 = (캐시히트횟수)/(전체참조횟수) = (캐시히트횟수)/(캐시히트횟수+캐시미쓰횟수)


 기본 동작 

  1. 데이터를 요청한다. 

  2. 캐시에 있는지 확인한다.

  3. 캐시에 있다면 캐시에서 데이터를 가지고 오고 캐시에 없다면 실 저장공간에서 데이터를 가지고 온다.

  4. 실 저장공간에서 데이터를 가지고 왔다면 해당 데이터를 캐시에 저장한다.


캐시 교체 알고리즘 

  LRU(least recently used) : 일반적이고 가장 효율이 좋은 알고리즘이다. 캐시 내에서 사용되지 않은 채로 가장 오래 있었던 데이터 교체

  FIFO(first-in-first-out) : 가장 간단 하다. 캐시 내에서 가장 오래된 데이터를 교체. 특정 상황에서 너무 자주 교체되는 단점이 있다.

  LFU(least frequently used) : 가장 적게 사용된 데이터를 교체. 카운터값을 유지해야하는 단점

  RANDOM : 임의로 선택된 데이터를 교체. 


 캐시 읽기 정책

  데이터를 참조 하기 전에 참조되어야 하는 값이 캐시에 존재하는지 파악한다. 캐시에 존재한다면 캐시에서 데이터를 가져온다. 만약 캐시에 존재하지 않는다면 실 저장공간에서 데이터를 가져오고 이를 캐시에 저장한다.


 캐시 쓰기 정책

 - Write Through : 데이터의 쓰기시 캐시와 실제 저장공간의 데이터 둘다 최신화 시키는 작업이다. 이는 캐시와 실제 저장공간 내용을 둘 다 바꾸어야 된다는 단점과 최신화 시키는 작업 시간이 실제 저장공간의 최신화 작업 시간과 같다는 점이다.

 - Write Back : 데이터의 쓰기시 캐시의 데이터만 최신화 하고 그 변경 사실을 확인할 수 있도록 표시를 하여 놓은 후에 캐시로부터 해당 데이터가 제거되는 시점에서 실제 저장공간으로 최신화 된 내용을 쓰는 정책이다. 쓰기 작업이 캐시에서만 일어나므로 빠르지만 실제 저장공간의 내용과 캐시의 내용이 다르다는 단점이 있다.


 캐시 중요 요소

 - 캐시의 크기
 - 교체 알고리즘
 - 적중률
 - 쓰기 정책
 - 읽기 정책
 - 동시성
 - 캐시 데이터 만료시기
 - 캐시 되어야 하는 데이터의 선택


반응형