캐시
정의
- 빠른 장치와 느린 장치 사이의 속도 차이를 줄이기 위해 사용되는 임시 저장소
- 캐시 히트: 캐시에서 원하는 데이터를 찾음
- 캐시 미스: 캐시에서 찾지 못해 메모리에서 데이터를 가져와야 함
특징
- 데이터 접근 시간을 단축하고, 데이터를 재게산하는 시간 절약 가능
- 캐시 설정 시 자주 사용되는 데이터를 기준으로 하는데, 이때 지역성의 원리를 따름
- 시간 지역성: 최근 사용한 데이터에 다시 접근하는 경향
- 공간 지역성: 최근 접근한 데이터 주변 공간에 접근하는 경향
예시
- CPU의 레지스터, 데이터베이스의 Redis DB, 웹 서버의 Nginx 서버
캐시 매핑의 종류
매핑이라는 용어 대신 '사상'이라는 용어를 사용하기도 한다
직접 매핑(Direct Mapping)
- 메모리의 특정 블록이 특정 캐시 라인에만 매핑. 탐색이 빠르지만, 스와핑이 자주 발생 가능
연관 매핑(Associative Mapping)
- 메모리의 어떤 내용도, 캐시의 어떤 위치에도 매핑 가능
- 스와핑이 적지만, 캐시의 모든 블록을 탐색해야 하므로 속도가 느림
집합 연관 매핑 (Set Associative Mapping)
- 세트 연관 사상이라고도 한다
- 직접 매핑의 탐색 효율성과 연관 매핑의 스와핑 감소 장점을 결합
- 집합을 형성하고, 해당 집합 내에는 어떠한 블록도 들어올 수 있음(메모리 블록 그룹이 하나의 집합을 공유)
REF