캐시는 컴퓨터의 성능을 향상시키기 위해 사용되는 메모리이다.

주 기억장치와 CPU 사이에 위치하고, 자주 사용하는 데이터들을 기억한다.

캐싱은 이 캐시 영역의 데이터를 가져와서 접근하는 방식이다.

예를 들면 속도가 느린 디스크의 데이터를 속도가 빠른 메모리로 가져와서 메모리에서 읽고 쓰는 작업을 수행하는데, 이것이 캐싱이다.

다른 의미로는 메모리 상에 있는 데이터를 연산하는데, 이 연산을 더 빠른 CPU 메모리 영역으로 가져와서 처리를 수행하는 것도 캐싱한다고 표현한다.

캐시는 지역성이라는 특성을 이용하여 성능 개선을 한다.

지역성은 시간, 공간, 순차적 지역성으로 나눌 수 있다.

시간 지역성은 for, while 등의 반복문에서 사용되는 조건 변수처럼 한번 참조된 데이터는 또 참조될 가능성이 높다는 것을 말한다.

공간 지역성은 배열A[0], A[1]과 같은 배열에 연속적으로 접근할 때, 참조된 데이터는 근처에 있는 데이터가 또 사용될 가능성이 높다는 것이다.

순차적 지역성은 분기가 발생하는 비순차적 실행이 아닌 이상, 명령어들이 메모리에 저장된 순서대로 실행된다는 특성을 이용하여 순차적일수록 데이터가 사용될 가능성이 높다는 것이다.