위키득계정 ↗
기술

CPU 캐시

CPU 캐시기술
대상
프로세서의 명령어와 데이터 접근
대표 계층
L1, L2, L3
L1의 일반적 특징
작은 용량과 낮은 접근 지연
L3의 일반적 특징
더 큰 용량, 여러 코어가 공유하는 경우가 많음
CPU가 명령어와 데이터에 빠르게 접근하도록 두는 저장 계층. L1, L2, L3는 접근 지연과 용량이 다른 계층이며, 어느 하나가 다른 것을 단순히 대체하지는 않는다.

개념

CPU 캐시는 프로세서가 명령어와 데이터를 가져오는 대기 시간을 줄이기 위한 캐시다. 주기억 장치보다 가까운 저장 계층에서 필요한 내용을 찾으면 더 먼 메모리에 접근하는 비용을 줄일 수 있다. 프로세서는 작은 고속 캐시와 더 큰 캐시를 함께 사용해 속도와 용량을 절충한다.

L1, L2, L3

L은 계층을 뜻하는 레벨(level)의 약자다. 일반적인 다단계 구성에서 L1은 실행 코어에 가장 가깝고 접근 지연이 작지만 용량도 작다. L2는 그보다 큰 내용을 담으며, L3는 여러 코어가 공유하는 더 큰 저장 공간으로 구성되는 경우가 많다. 실제 용량과 공유 범위는 프로세서 설계에 따라 달라진다.

숫자가 큰 쪽이 더 좋은가

L3라는 이름이 L1의 상위 제품이나 개선판을 뜻하지는 않는다. 접근 지연만 비교하면 보통 L1이 유리하고, 보관할 수 있는 데이터 양은 L3가 더 크다. 작은 L1에 없는 내용을 더 큰 캐시에서 찾을 수 있으므로 두 계층은 함께 쓰인다. L1과 L3 중 하나만 고르면 성능을 설명할 수 없다.

적중과 미스

필요한 내용을 캐시에서 찾는 것을 적중, 찾지 못하는 것을 미스라고 한다. 미스가 나면 다른 캐시 계층이나 주기억 장치에서 내용을 가져와야 할 수 있다. 비슷한 데이터를 다시 쓰거나 가까운 주소를 연속으로 읽는 작업은 캐시를 활용하기 쉽다. 하드웨어는 앞으로 필요한 데이터를 예측해 미리 가져오기도 한다.

용량과 성능의 관계

큰 캐시는 더 많은 작업 데이터를 보관할 수 있지만, 용량만으로 프로그램의 실행 시간을 예측할 수는 없다. 프로그램이 접근하는 데이터의 크기와 순서, 적중률, 접근 지연, 코어 간 공유 방식이 함께 작용한다. 서로 다른 CPU를 비교할 때는 L3 용량 한 항목으로 우열을 정하기보다 실제 작업의 측정 결과를 함께 확인해야 한다.