취미와 밥줄사이

[ Hardware ] Cache(캐시)란? 본문

Infrastructure/Hardware

[ Hardware ] Cache(캐시)란?

취미와 밥줄사이 2022. 3. 5. 00:55

캐시

  • 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소
  • 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.

출처: https://mangkyu.tistory.com/69

  • Cache를 사용하면 좋은 상황
    • 접근 시간에 비해 원래 데이터를 접근하는 시간이 올래 걸리는 경우
    • 반복적으로 동일한 결과를 돌려주는 경우( 이미지 or 썸네일 )
  • 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근시간 없이 더 빠른 속도로 데이터에 접근할 수 있음
  • 반복적으로 데이터를 불러오는 경우, 지속적으로 DBMS나 혹은 서버에 요청하는 것이 아니라 메모리에 데이터를 저장하였다가 불러다 쓰는 것을 의미
  • 지역성(locality)을 이용하여 데이터 접근 속도를 빠르게 하기 위한 메모리 계층
  • cpu와 주기억장치 간의 속도차로 발생하는 cpu idle time을 최소화하기 위해 캐시를 쓴다.
  • 명령어는 보통 공간 지역성이 높고 데이터는 보통 시간 지역성이 높습니다.

캐시의 필요성

출처: https://mangkyu.tistory.com/69

  • Long Tail의 법칙은 20%의 요구가 시스템 리소스의 대부분을 사용한다든 법칙
  • 모든 데이터를 캐시에 담기에는 캐시라는 저장 공간은 작다. 그렇기 때문에 파레토의 법칙에 해당하는 소수의 선택받은 데이터를 선별해야 한다. 이때 사용되는 것이 지역성이다.

출처: https://zangzangs.tistory.com/110

시간적 지역성

  • 특정 데이터에 한 번 접근해서 가져온 경우, 그 데이터가 가까운 미래에 또 한번 접근할 가능성이 높은 것을 시간적 지역성이라고 함
    • 한 번 가져온 데이터를 다시 사용할 일이 있다는 의미
    • 이러한 상황에서 캐시에 복사하여 저장해 놓고 여러 번 사용하게 된다면 메모리에 접근하는 횟수가 줄어듬
    • 캐시는 반복적으로 사용되는 데이터가 많을수록 높은 효율을 낼 수 있음
  • 최근에 사용된 데이터는 또 쓰일 확률이 높다는 것

공간적 지역성

  • 특정 데이터와 가까운 주소가 순서대로 접근 되었을 경우 공간적 지역성이라함
  • 앞으로 사용할 데이터들이 가져올 블록안에 많이 모여있는 것을 의미
  • 사용된 데이터의 주변 데이터는 또 쓰일 확률이 높다는 것을 의미
  • A[0], A[1]로 구성되는 배열과 같이 참조된 데이터 근처의 데이터가 잠시 후에 사용될 가능성이 높다는 것을 의미한다.
    • 해당 배열이 위치한 메모리 공간의 내용은 for-in 순회가 끝나기 전까지 계속 쓰일 확률이 높다.

순차적 지역성

  • 비순차적 실행이 아닌 이상 명령어들이 메모리에 저장된 순서대로 실행되는 특성을 고려하여 다음 순서의 데이터가 곧 사용될 가능성이 높다는 것을 의미함

캐시의 동작방식

  1. 데이터를 달라는 요청이 오면 먼저 캐시에서 데이터를 찾는다.
  2. 캐시가 없거나(cache msiss) 너무 오래되면(expiration) 원본 데이터가 저장된 곳에서 데이터를 조회한다.
    • 이때 캐시에도 데이터를 복사하거나 갱신
  3. 캐시에 데이터가 있으면(cache hit) 캐시의 저장된 데이터를 제공
  4. 캐시는 용량이 작은 공간으로 사용하지 않거나 오래된 데이터는 삭제(eviction)

REFERENCE

https://mangkyu.tistory.com/69

 

[Server] Cache(캐시)란?

1. 캐시(Cache)란? [ Cache ] Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이

mangkyu.tistory.com

https://wh00300.tistory.com/79

 

cash? cache? 캐시란 무엇인가

cache? 캐시? 캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를

wh00300.tistory.com

https://luv-n-interest.tistory.com/1003

 

Cache, 캐시란?

물론 캐시에 대해서 할 말은 많지만 우아한 테크톡의 설명을 보면서 https://www.youtube.com/watch?v=c33ojJ7kE7M&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=123 을 보면서 같이 내 언어로 바꿔보는 시간..

luv-n-interest.tistory.com

https://zangzangs.tistory.com/110

 

[IT] 캐시란? Cache is Cash

캐시(cache) 캐시(cache) 데이터나 값을 미리 복사해 놓는 임시 장소 사전적 정의 웹 브라우저에 캐시, CPU의 캐시, 데이터베이스의 캐시 등 많은 곳에서 캐시라는 개념이 사용되고 있습니다. 정확하

zangzangs.tistory.com