Uncategorized

1 2 2 캐시 메모리 (Cache Memory) 개념, 기법

Written by

🚀 **이 문서는 보다 쉽게 이해할 수 있도록 정리되었습니다.**

Cache Memory는 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU내 또는 외에 존재하는 메모리이다. 전체 시스템의 성능의 개선을 시킬 수 있는 메모리이다.

캐시는 종종 듣게 된다. 캐시 된 거 아니야? 라는 말을 하기도 하고, 캐시 되어 있어서 빠른거야 라는 말을 하기도 한다. 캐시는 잠시 저장해둔다는 의미이고 기능이다.

캐시 메모리라고 하면 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두는 좀더 빠른 메모리이다. 네트워크에서 캐시는 로컬에 파일을 미리 받아놓고, 그 내용을 보거나 웹서버에서도 매번 로딩을 해야 하는 파일들을 미리 로딩해두고, 응답을 주기도 한다. 데이터 베이스를 매번 확인해야 하는것도 캐시서버를 이용한다면 빠른 응답을 해줄 수 있다.

캐시의 원리를 이용한 캐시 서버를 활용하여 CDN같은 서비스도 할 수 있다. CDN은 컨텐츠를 딜리버리 해주는 서버이다. 아주 먼곳에 있는 파일을 매번 가져와야 한다면 네트워크 구간이 멀어서 실패율도 있고, 전송 속도가 느리고, 오래 걸릴 수 있다. 이를 자주 쓰는 파일들을 가까운 지역의 서버에 올려 놓는다. 그렇게 되면 빠른 접근이 가능해진다. 캐시라는 개념은 동일하며, 그것을 컴퓨터 내부에서 쓰느냐 웹서버와 클라이언트 사이에서 쓰느냐, 네트워크에서 파일을 전송시도 다양하게 사용이 가능하다. 데이터를 고속으로 엑세스 할 수 있다는 장점이 있다. 치명적인 단점도 있다. 특성을 알고 사용하기 때문에 단점이라고 말할 수 없지만, 캐시 서버 또는 캐시 메모리 등 캐시가 붙은 기능에 저장된 데이터는 지워질 수 있다는 것을 전제로 한다. 영구적 메모리 공간이 아니다. 언제든 지워질 수 있고, 그것을 당연시 생각하고 프로그램 또는 서버를 개발해야 한다. 그리고 캐시는 되도록 빈도수가 높은 것들 위주로 데이터량이 많지 않은 것이 좋다. 캐시메모리 서버 등 캐시가 붙은 장치는 비싸다. 물론 상대적으로 말이다. 그래서 이곳에 모든 데이터를 넣고, 서비스를 할 생각은 말아야 한다.

데이터의 임시 보관소 Cache Memory
‘Cache’라는 의미는 보관이나 저장의 의미이다. Cache Memory라 하면 이러한 역할을 하는 물리적 장치 즉 메모리를 말한다. CPU와 메인 메모리 사이에 존재한다고 말할 수 있는데, CPU내에 존재할 수도 있고 역할이나 성능에 따라서는 CPU밖에 존재할 수도 있다. 빠른 CPU의 처리속도와 상대적으로 느린 메인 메모리에서의 속도의 차이를 극복하는 중간 버퍼 역할을 한다. 쉽게 표현하면 CPU는 빠르게 일을 진행하고 있는데, 메모리에서 데이터를 가져오고 가져가는데 느려서 중간에 미리 CPU에 전달될 데이터를 들고 서 있는 형태라고 말할 수 있다.

Cache Memory의 성능
Cache 크기
Cache Memory의 Size의 크기가 크면 Hit율과 반비례 관계
인출 방식
(Fetch Algorithm)
요구 인출(Demand Fetch) : 필요 시 요구하여 인출하는 방식
선 인출(Pre-Fetch) : 예상되는 데이터를 미리 인출하는 방식
쓰기 정책
(Write Policy)
Write-Through : 주기억 장치와 캐시에 동시에 쓰는 방식
Write-Back : 데이터 변경만 캐시에 기록
교체(Replace)
알고리즘
Cache Miss 발생시 기존 메모리와 교체하는 방식
FIFO, LRU, LFU, Random, Optimal Belady’s MIN(향후 가장 참조 되지 않을 블록을 교체)

사상(Mapping)
기법
주기억장치의 블록을 적재할 캐시 내의 위치를 지정하는 방법
직접 사상, 완전 연관 사상, 집합 연관 사상
Cache Memory는 메인 메모리의 일정 블록 사이즈의 데이터를 담아 두었다가 CPU에게 워드 사이즈 만큼의 데이터를 전송하게 된다. 이때 이 사이즈들이 캐시의 성능에 영향을 미치게 된다. 블록사이즈나 워드 사이즈가 상대적으로 크다면 그만큼 Cache의 Hit률이 높아지기 때문이다.

CPU에서 필요로 하는 데이터가 캐시 메모리에 있어

Leave a Comment