On this page
Cache Memory 동작원리
for
나 while
같은 반복문에 사용하는 조건 변수 처럼 한번 참조된 데이터는 잠시후 또 참조될 가능성이 높다.
arr[0]
, arr[1]
, ... 과 같은 연속 접근 시, 참조된 데이터 근처 에 있는 데이터가 잠시후 또 사용될 가능성이 높다.
CPU가 요청한 데이터가 캐시 에 있으면 "Cache Hit ", 없어서 DRAM에서 가져오면 "Cache Miss "
Cold Miss
해당 메모리 주소를 처음 접근해서 발생하는 미스이다.
Conflict Miss
캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서, 캐시 블록 간의 충돌에 의해 발생하는 미스이다. (특히 direct mapped cache 구성에서 많이 발생한다.)
Capacity Miss
캐시 메모리의 공간이 부족해서 발생하는 미스이다.
Direct Mapped Cache
DRAM의 여러 주소가 캐시 메모리의 한 주소에 대응되는 다대일 방식이다.
같은 캐시 메모리에 접근하려 할 때, Conflict Miss가 발생할 수 있다.
Fully Associative Cache
데이터를 저장하는 블록의 인덱스를 결정하는 방식이 없이 모든 블록을 자유롭게 저장할 수 있는 방식을 말한다.
Set Associative Cache
Direct Mapped Cache + Fully Associative Cache를 합한 방식이다.
Conflict Miss를 줄이기 위해서는 캐시 메모리의 구성을 조정하거나, 적절한 알고리즘을 사용하여 충돌을 최소화해야 한다.
예를 들어, direct-mapped 캐시 메모리에서는 충돌이 발생하지 않지만, n-way set-associative 캐시 메모리에서는 충돌이 발생할 가능성이 높다. 따라서, 캐시 메모리의 구성을 direct-mapped에서 fully associative 로 변경하거나, 충돌을 최소화하기 위한 알고리즘을 사용하여 Conflict Miss를 줄인다.
일단 기본적으로 목적과 구조가 다르다.
하드웨어 캐시
CPU(중앙처리장치)에서 메인 메모리로부터 자주 접근하는 데이터를 저장해서, 빠르게 접근할 수 있게 해준다.
캐시의 지역성(Locality)을 기반으로 데이터를 저장하고 전달한다.
브라우저의 캐시
인터넷 브라우저에서 웹 사이트의 리소스(ex. image, stylesheet, javascript 등)를 저장해 빠른 로딩을 가능하게 한다.
이전에 방문했던 웹 사이트를 다시 방문할 때, 새로운 데이터를 다시 다운로드하지 않고 이전에 저장된 데이터를 사용해 더 빠르게 페이지를 로드할 수 있다.
웹 페이지를 요청할 때 웹 서버에서 데이터를 가져오기 전에 캐시에서 데이터를 검색한다.
캐시 메모리(Local Storage)에 저장되며, 이는 하드웨어의 보조기억장치에 저장된다.