캐시
는 메인 메모리와 CPU 사이에 존재한다.
프로세서
와 메인 메모리
간의 처리 속도 차이를 보완하기 위한 고속 버퍼와 같이 생각하면 된다.
언제 사용하면 좋지??
- 접근 시간에 비히 원래 데이터를 접근하는 시간이 오래 걸리는 경우
- 반복적으로 동일한 결과를 돌려주는 경우
Long Tail
캐시에는 지역성
이라는 것이 존재한다.
지역성
이란 기억장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조 하는 특성이다.
캐시 가 효율적으로 동작하려면, 캐시의 적중률(Hit -rate)
을 극대화 시켜야 한다.
지역성이란, 데이터 접근 이 시간적
, 공간적
으로 가깝게 일어나는 것을 의미한다.
CPU 가 요청한 데이터가 캐시에 존재한다면
Cache HIT
,
존재하지 않아 메인 메모리에서 가져오는 경우Cache MISS
한번 참조된 데이터는 다시 참조될 확률이 높다.
특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것.
(메모리 상의 같은 주소에 여러 차례 읽기, 쓰기를 수행할 경우)
참조된 데이터 주변에 있는 데이터가 다음에 참조될 확률이 높다.
특정 데이터와 가까운 주소가 순서대로 접근되는 것
CPU 캐시나 디스크 캐시의 경우, 한 메모리 주소에 접근할 때 그 주소뿐만 아니라 해당 블록을 전부 캐시에 가져오게 된다.
(메모리 주소를 오름차순이나 내림차순으로 접근할 경우)