일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 파이썬
- 예제
- 아나콘다
- 우분투
- 엑셀
- 데이터베이스
- 깃허브
- 머신러닝
- MySQL
- 라이브러리
- 프로그래머스
- 운영체제
- 단축키
- 에러
- SQL
- 원격저장소
- 기초
- matplotlib
- 가상환경
- 판다스
- OpenCV
- vscode
- 리눅스
- 디버깅
- visual studio code
- 디렉토리
- 데이터분석
- 코랩
- 역할
- 플라스크
Archives
- Today
- Total
취미와 밥줄사이
[ Hardware ] Cache(캐시)란? 본문
캐시
- 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소
- 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.
- Cache를 사용하면 좋은 상황
- 접근 시간에 비해 원래 데이터를 접근하는 시간이 올래 걸리는 경우
- 반복적으로 동일한 결과를 돌려주는 경우( 이미지 or 썸네일 )
- 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근시간 없이 더 빠른 속도로 데이터에 접근할 수 있음
- 반복적으로 데이터를 불러오는 경우, 지속적으로 DBMS나 혹은 서버에 요청하는 것이 아니라 메모리에 데이터를 저장하였다가 불러다 쓰는 것을 의미
- 지역성(locality)을 이용하여 데이터 접근 속도를 빠르게 하기 위한 메모리 계층
- cpu와 주기억장치 간의 속도차로 발생하는 cpu idle time을 최소화하기 위해 캐시를 쓴다.
- 명령어는 보통 공간 지역성이 높고 데이터는 보통 시간 지역성이 높습니다.
캐시의 필요성
- Long Tail의 법칙은 20%의 요구가 시스템 리소스의 대부분을 사용한다든 법칙
- 모든 데이터를 캐시에 담기에는 캐시라는 저장 공간은 작다. 그렇기 때문에 파레토의 법칙에 해당하는 소수의 선택받은 데이터를 선별해야 한다. 이때 사용되는 것이 지역성이다.
시간적 지역성
- 특정 데이터에 한 번 접근해서 가져온 경우, 그 데이터가 가까운 미래에 또 한번 접근할 가능성이 높은 것을 시간적 지역성이라고 함
- 한 번 가져온 데이터를 다시 사용할 일이 있다는 의미
- 이러한 상황에서 캐시에 복사하여 저장해 놓고 여러 번 사용하게 된다면 메모리에 접근하는 횟수가 줄어듬
- 캐시는 반복적으로 사용되는 데이터가 많을수록 높은 효율을 낼 수 있음
- 최근에 사용된 데이터는 또 쓰일 확률이 높다는 것
공간적 지역성
- 특정 데이터와 가까운 주소가 순서대로 접근 되었을 경우 공간적 지역성이라함
- 앞으로 사용할 데이터들이 가져올 블록안에 많이 모여있는 것을 의미
- 사용된 데이터의 주변 데이터는 또 쓰일 확률이 높다는 것을 의미
- A[0], A[1]로 구성되는 배열과 같이 참조된 데이터 근처의 데이터가 잠시 후에 사용될 가능성이 높다는 것을 의미한다.
- 해당 배열이 위치한 메모리 공간의 내용은 for-in 순회가 끝나기 전까지 계속 쓰일 확률이 높다.
순차적 지역성
- 비순차적 실행이 아닌 이상 명령어들이 메모리에 저장된 순서대로 실행되는 특성을 고려하여 다음 순서의 데이터가 곧 사용될 가능성이 높다는 것을 의미함
캐시의 동작방식
- 데이터를 달라는 요청이 오면 먼저 캐시에서 데이터를 찾는다.
- 캐시가 없거나(cache msiss) 너무 오래되면(expiration) 원본 데이터가 저장된 곳에서 데이터를 조회한다.
- 이때 캐시에도 데이터를 복사하거나 갱신
- 캐시에 데이터가 있으면(cache hit) 캐시의 저장된 데이터를 제공
- 캐시는 용량이 작은 공간으로 사용하지 않거나 오래된 데이터는 삭제(eviction)
REFERENCE
https://mangkyu.tistory.com/69
https://wh00300.tistory.com/79
https://luv-n-interest.tistory.com/1003
https://zangzangs.tistory.com/110
'Infrastructure > Hardware' 카테고리의 다른 글
[ Hardware ] 메인보드란 (0) | 2022.03.05 |
---|---|
[ Hardware ] CPU - 클럭, 코어, 쓰레드, 캐시 메모리 (0) | 2022.03.05 |
[ H/W ] 하드디스크 HDD 섹터와 클러스터 (0) | 2022.02.08 |