1. 캐시(Cache)란?
컴퓨터 과학에서 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킴.
1) 캐시의 등장 배경
- 무어의 법칙(Moore's law)에 의해 CPU의 처리속도가 급격히 증가했지만, 메모리 접근 속도는 늘어나지 못함.
- 메모리보다는 빠르고 CPU보다는 느린 cache를 메모리와 CPU사이에 위치, CPU의 데이터 접근 시간을 줄임.
- 결과가 나올 때마다 메모리에 저장하는 것보다, cache에 저장, 한 번에 메모리를 최신화하는 것이 효율적.
2. 캐시(Cache)의 장단점
1) 캐시(Cache)의 장점
- 캐시에 데이터를 미리 복사해 놓으면, 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근 할 수 있음.
- 접근 시간에 비해 원래 데이터에 접근하는 시간이 오래 걸리는 경우, 혹은 값을 다시 계산하는 시간을 절약하고자 하는 경우에 사용.
2) 캐시(Cache)의 단점
- 캐시(Cache)는 캐시(Cash)다. 즉, 비싸다...
메모리 저장공간은 속도가 빠를수록 용량이 작고, 가격이 높다.
cf) HDD의 GB당 가격 = 52~56원 / RAM의 GB당 가격 = 6900~7000원
3. 캐시(Cache)의 지역성과 동작 방식
1) 파레토 법칙과, 캐시(Cash)에 저장되는 정보(지역성)
- 캐시의 고단가 때문에, 캐시에 저장되야하는 정보는 선별된 정보여야 함
- 파레토의 법칙처럼 자주, 그리고 반복해서 사용되는 데이터를 선별하는 데에 사용되는 것이 '지역성'
(1) 시간적 지역성
- 특정 데이터가, 가까운 미래에 또 한 번 데이터에 접근할 가능성이 높은 경우
- 메모리 상의 같은 주소에 여러 차례 쓰기를 수행하는 경우
(2) 공간적 지역성
- 특정 데이터와 가까운 주소가 순서대로 접근된 경우
- CPU 캐시, 디스크 캐시의 경우 한 메모리 주소에 접근 시, 그 주소뿐 아니라 해당 블록을 전부 캐시로 가져옴.
- 이때, 메모리 주소를 오름차순이나 내림차순으로 접근하면, 캐시에 이미 저장된 같은 블록의 데이터에 접근하게 됨(캐시의 효율성 향상)
(3) 순차 지역성
- 데이터가 순차적으로 액세스 되는 경향을 보임. 프로그램 내 명령어가 순차적으로 구성.
2) 캐시의 동작 방식
[1] 데이터 요청이 들어오면, 먼저 캐시에서 데이터 탐색.
[2] 캐시가 없거(chche miss)나, 오래된(expiration) 경우 원본 데이터가 저장된 곳에서 데이터 조회 후
캐시에도 데이터를 복사/갱신
[3] 캐시에 데이터가 있으면(cache hit) 캐시의 저장된 데이터를 제공
[4] 오래된 데이터는 삭제(eviction)
'CS > CS' 카테고리의 다른 글
[CS] 팩토리 패턴(factory pattern) (1) | 2022.09.20 |
---|---|
[CS] 디자인 패턴이란? (0) | 2022.09.20 |
[CS] 컴파일러(Compiler)란? (0) | 2021.12.12 |
[CS] 코딩 할 때 단어 표기법(camelCase, snake_case, UpperCase .,) (0) | 2021.12.07 |
[CS] 자료구조란? 알고리즘이란? (0) | 2021.11.18 |
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!