캐시(Cache)
✒️ 2025-05-30 10:34 내용 수정
참고 자료 : 위키백과 캐시, wikipedia Cache(computing)
데이터나 값을 미리 복사해 놓는 임시 장소
- 미가공 데이터 또는 1차 데이터에 접근하는 시간이 오래 걸리거나 다시 계산하는 시간을 절약할 때 사용한다.
- 메모리나 웹 브라우저 등에서 미리 데이터를 복사해 저장하여 재 계산이나 접근 시간 없이 빠른 속도로 데이터에 접근할 수 있다.
- 캐시는 비용 측면에서의 이익을 위해 상대적으로 크기가 작아야 한다.
- 캐시는 엔트리의 풀(pool of entries)로 생성되며, 각각의 엔트리는 백업 저장소에 있는 동일한 데이터의 복사본과 연관되어 있다.
- 엔트리는 태그를 가지고 있어 이를 통해 백업 저장소에서 엔트리가 특정 데이터의 복사본임을 식별할 수 있다.
종류
- 하드웨어 cache : CPU cache, GPU cache, DSPs 등
- 소프트웨어 cache : Disk cache, Web cache, Memoization, CDN, Cloud storage gateway 등
동작
- 캐시 클라이언트(CPU, 웹 브라우저, 운영 체제 등)이 백업 저장소에 있을 것으로 예상되는 데이터에 접근 해야할 때 캐시를 먼저 확인한다.
- Cache hit : 만약 찾으려는 데이터와 일치하는 태그를 가진 엔트리가 존재하면, 엔트리 내의 데이터를 대신 사용한다.
- hit rate / hit ratio : 접근 중 cache hit가 발생한 비율
- Cache miss : 캐시를 확인한 결과 찾으려는 태그를 가진 엔트리가 존재하지 않을 경우 발생한다.
- 이 경우 백업 저장소에서 더 비용이 많이 드는 데이터를 접근해야 한다.
- 찾으려는 데이터를 회수한 후엔 해당 데이터를 cache에 복사하여 다음 접근 때 사용할 수 있도록 만든다.
- cache miss 발생 시 새로 검색한 데이터를 저장하기 위해 이전에 존재한 cache entry를 제거할 수도 있다.
- 교체 정책 중 가장 널리 사용되는 방법은 가장 오래전에 사용된 엔트리를 교체하는 LRU(Least Recently Used) 이다.