캐시메모리는 컴퓨터의 성능 향상 위한 존재다. CPU가 자주 사용하는 데이터들을 캐시메모리에 저장하여 CPU와 RAM의 속도차이를 완화하는 역할을 한다.
CPU는 메모리에 접근하기 전에 L1, L2, L3의 캐시메모리에서 먼저 데이터를 찾는데 캐시메모리에서 데이터를 찾는다면 캐시적중(Hit) RAM까지 가야한다면 캐시 비적중(Miss)이라 한다.
캐시메모리에는 데이터에 접근하는 패턴을 설명하는 개념으로 지역성이란게 있다. 시간 지역성과 공간 지역성 두 가지로 나뉜다.
for (i = 0; i < 10; i += 1) {
arr[i] = i;
}
시간 지역성 : 최근에 접근한 데이터를 다시 접근하는 것을 말한다. for문의 i은 인덱스 역할을 하며 짧은 시간에 여러번 접근이 이루어 진다.
공간 지역성 : 최근 접근한 데이터의 주변공간에 접근하는 것을 말한다. 배열의 경우 요소를 참조하면서 가까운 메모리 공간에 연속적으로 접근이 이루어 진다.

L1(level 1) : cpu 코어 안에 자리 잡고 있으며 cpu와 가장 가까운 캐시. 속도를 위해 Instruction Cache와 Data Cache로 나뉜다.Instruction Cache : 메모리의 TEXT 영역 데이터를 다루는 캐시.Data Cache : TEXT 영역을 제외한 모든 데이터를 다루는 캐시.L2(level2) : cpu 코어 안에 자리 잡고 있으며 L1 보다 용량이 큰 캐시.L3(level3) : 가장 큰 용량을 가지고 있는 캐시. 코어 밖에 있고 멀티 코어 시스템에서 여러 코어가 공유하는 캐시.속도는 L1 > L2 > L3 순서로 빠르며, CPU가 접근하는 순서도 L1 > L2 > L3 순서로 똑같다.
캐시의 성능을 측정할 때는 히트 레이턴시(Hit latency)와 미스 레이턴시(Miss latency)가 중요하다.
히트 레이턴시 : 캐시에서 데이터를 찾아(Hit) 데이터를 가져올 때까지 소요된 시간을 말함.
미스 레이턴시 : 데이터가 캐시에 존재하지 않아 미스가 발생해 다른 레벨의 캐시에서 데이터를 가오거나 메모리에서 데이터를 가져올 때 소요되는 시간을 말함.
작업관리자를 키고 성능 탭을 가보면 내 캐시의 용량확인이 가능하다.
한 줄평 : CPU가 사용해야할 데이터를 느린 하드디스크에서 RAM으로 그 중에 자주 사용하는 것은 RAM에서 캐시로...
참고 -
https://parksb.github.io/article/29.html
https://cpuninja.com/cpu-cache/