본문 바로가기
Computer Science

캐시(cache) 란 무엇인가?

by 융식 2022. 5. 31.

캐시 메모리란 램과 cpu가 빠르게 소통할 수 있게 하는 중간 다리 역할

 

캐시의 크기는 주기억장치보다 크기가 작다.

 

CPU의 성능이 좋아도 기억장치에서 데이터를 가져오는 시간이 오래걸리면 CPU를 효율적으로 사용할 수 없습니다.

 

반대로 캐시의 기능이 좋아도 CPU의 성능에 큰 영향을 주지 않습니다.

 

캐시가 효율적으로 동작하려면, 캐시의 적중률을 극대화 시켜야 합니다.

 

그러므로 캐시가 무조건 크다고 좋은게 아니며, 캐시가 커질 수록 캐시 히트율의 한계가 있습니다.

 

쿠키도 캐시와 비슷하게 사용자 정보, 인터넷 그림파일 같은 것을 저장해 두었다가 해당 사이트에 들어가면 컴퓨터에서 불러옵니다.

그렇게 되면 인터넷 접속 시간이 훨씬 빨리지게 됩니다.

 

캐시는 SRAM으로 구성되는데 CPU내부에 있으면 L1, 외부에 있으면 L2캐시라 하는데 요즘에는 L2캐시도 CPU내부에 집적합니다.

 

  SRAM DRAM
구성 소자 플립플롭 커패시터
집적도 낮음 높음
전력 소모 많음 적음
동작 소모 빠름 느림
가격 고가 저가
재충전 여부 필요없음 필요함
용도 캐시 주기억 장치

 

사상 방식 : 주기억 장치 블록이 어느 캐시 라인에 들어갈 것인지 결정하는 방법

  • 직접 매핑(direct Mapping) : 태그 번호
    1. 주기억장치의 블록들이 지정된 한 개의 캐시 라인으로만 사상될 수 있는 매핑 방법입니다.
    2. 간단하고 구현하는 비용이 적게드는 장점이 있지만 적중률이 낮아질 수 있다는 단점이 있습니다.
  • 세트-어소시에이티브 매핑(Set-Associative Mapping) 태그 - 세트 번호
    1. 주기억 장치로부터 새로운 블록이 캐시로 적재될 때, 만약 세트 내 모든 라인들이 다른 블록들로 채워져 있다면, 그들 중의 하나를 선택하여 새로운 블록으로 교체 -> 교체 알고리즘을 통함
    2. LRU(Least Recently Used) : 사용되지 않은 채로 가장 오래 있었던 블록을 교체
    3. FIFO(First-In-First-On) : 캐시에 적재된지 가장 오래된 블록을 교채
    4. LFU(Least Frequently Used) : 참조되었던 횟수가 가장 적은 블록을 교체
    5. Random : 사용 횟수를 고려하지 않고 후보 캐시 라인 중 임의로 선택하여 교체

 

 

시간적 지역성

  • 특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것
  • 메모리 상의 같은 주소에 여러 차례 읽기 쓰기를 수행할 경우,
    • 상대적으로 작은 크기의 캐시를 사용해도 효율성을 꾀할 수 있다.

 

 

공간적 지역성

  • 특정 데이터와 가까운 주소가 순서대로 접근되었을 경우. 
  • CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다. 
  • 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 
    • 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.

 

쓰기 정책

캐시에 저장되어 있는 데이터에 수정이 발생했을 때 그 수정된 내용을 주기억장치에 갱신하기 위해 시기와 방법을 결정하는 것을 말합니다.

  • Wite-Through : 캐시에 쓰기 동작이 이루어질 때마다 캐시 메모리와 주기억장치의 내용을 동시에 갱신하므로 쓰기 동작에 걸리는 시간이 가장 깁니다.
  • Wite-Back : 캐시에 쓰기 동작이 이루어지는 동안은 캐시의 내용만이 갱신. 캐시와 주기억 장치의 내용이 다릅니다.
  • Write-Once : 캐시에 쓰기 동작이 이루어질 때 한번만 기록하고 이후의 기록은 모두 무시합니다.

 

 

출처 :  https://www.quora.com/What-is-Memory-hierarchy

 

https://zion830.tistory.com/46

 

캐시 메모리(cache memory)의 개요 정리

CPU는 빠르고, 메모리는 느리다. 두 장치의 속도차로 인한 비효율을 보완하기 위해 사용하는 것이 바로 캐시 메모리! 자주 쓰는 데이터를 캐시 메모리에 저장해 메모리에 접근하는 횟수를 줄인다

zion830.tistory.com