본문 바로가기
리뷰

L1 캐시 메모리가 CPU 성능 좌우하는 이유

L1, L2, L3 등으로 불리는 CPU 캐시 메모리는 CPU와 메인 메모리(RAM) 사이에서 데이터를 중개하는 역할을 합니다. 캐시 메모리를 중간에 두는 이유는 CPU가 메인 메모리에 비해 데이터 처리 속도가 훨씬 더 빨라서 병목 현상이 발생하기 때문입니다.

SRAM과 DRAM

메모리는 SRAM(Static random access memory)과 DRAM(Dynamic random access memory)으로 나눠 지는데요. SRAM은 속도가 빠르고 전력 소비가 적지만 가격이 매우 비싸고, DRAM은 속도가 느리고 전력 소비가 크지만 가격이 쌉니다. SRAM이 DRAM에 비해 데이터 처리 속도가 수십 배 빠릅니다.

그래서 크기가 중요한 메인 메모리는 DRAM으로, 속도가 중요한 캐시 메모리는 SRAM으로 만듭니다. 요즘 대부분의 컴퓨터에 16GB의 메인 메모리가 장착 되는데요. 인텔 4코어 CPU를 기준으로 L1 캐시 메모리 크기는 256KB로 16GB의 1/64밖에 되지 않습니다.

데이터 지역성 원리

CPU는 필요한 데이터를 캐시 메모리에서 먼저 찾아보고 없으면 메인 메모리에서 찾아 캐시 메모리로 불러와서 사용하는데요. CPU 성능을 높이기 위해서는 캐시 메모리가 CPU가 찾을만한 데이터를 예측해서 미리 메인 메모리로부터 불러올 수 있어야 합니다.

CPU가 캐시 메모리로부터 필요한 데이터를 찾는데 성공하는 빈도를 적중률(Cache Hit Ratio)이라고 하는데요. 적중률을 높이기 위해서 캐시 메모리에 적용되는 원리가 데이터 지역성입니다. 데이터 지역성은 시간 지역성과 공간 지역성으로 나뉩니다.

시간 지역성은 한 번 참조한 데이터는 향후에도 참조하게 될 가능성이 높다는 것입니다. 예를 들면, 100명의 중학생이 평균 키에 비해 큰지 작은지를 비교하면 “평균 키”는 매번 키를 비교할때마다 쓰일 것이므로 미리 캐시 메모리에 불러오는 것입니다.

공간 지역성은 어떤 데이터를 참조하면 향후 그 데이터와 연관성이 있는 데이터를 참조하게 될 가능성이 높다는 것입니다. 예를 들면, 책을 볼 때 2페이지를 펼친 경우 1페이지나 3페이지를 볼 가능성이 높으므로 해당 데이터를 미리 불러오는 것입니다.

캐시 메모리의 용량을 키우면 데이터 지역성 원리가 필요없지 않느냐고 하실 수 있는데요. 일단 캐시 메모리을 구성하는 SRAM의 가격이 비싸고, 캐시 메모리가 많은 데이터를 보관하면 CPU가 캐시 메모리를 검색하는 횟수가 늘어나 처리 속도가 느려지고 전력 소비가 커지는 단점이 있습니다.

L1과 L2의 의미

그래서 요즘에는 CPU를 설계할 때 캐시 메모리의 캐시 메모리를 두는 방식을 씁니다. 캐시 메모리를 L1, L2라고 부르는데, 여기에서 “L”은 캐시의 계층인 Level을 뜻합니다. 메인 메모리의 캐시 메모리가 L2, L2의 캐시 메모리가 L1입니다. L1이 L2에 비해 속도가 빠른 고가의 소재로 만들어집니다. 캐시 메모리 크기는 인텔 4코어 CPU 기준으로 L1가 256KB이고 L2가 2,048KB입니다.

CPU의 성능을 비교할 때 코어 수나 클럭 수 외에 L1, L2 캐시 메모리의 크기와 속도도 중요하게 보는데요. 애플, 인텔, AMD가 설계하는 CPU의 캐시 메모리 성능은 아래와 같습니다. 아래 표를 보면 애플이 만드는 CPU인 M1, M2 칩이 주목받고 있는 이유를 알 수 있습니다.

구분 애플 인텔 AMD
L1 Instr 192KB 48KB 32KB
L1 Data 192KB 48KB 32KB
L2 4MB 512KB 512KB
Latency 3-Cycle 5-Cycle 4-Cycle
L1 Instr: 명령어를 저장하는 L1 캐시
L1 Data: 데이터를 저장하는 L1 캐시
Latency: 명령을 주었을 때 그 명령을 수행하기까지 걸리는 시간

지금까지 CPU와 메인 메모리의 속도 차이로 인해 발생하는 병목 현상을 줄여주는 캐시 메모리에 대해 알아 봤습니다. CPU 성능을 비교할 때 코어 수나 클럭 수만 보는 경우가 많은데요. CPU 성능을 제대로 비교하기 위해서는 캐시 메모리 성능도 함께 보는 것이 좋습니다.

 

CPU 오버클럭 기본 개념 및 방법

오버클럭이란 시스템의 컴퓨팅 속도를 향상시키기 위해 의도적으로 클럭이라 불리우는 CPU의 작동 주파수를 원래 사양보다 높게 설정하는 것을 말합니다. 오버클럭으로 CPU의 작동 주파수가 높

thinkingpocket.tistory.com

 

AMD와 인텔 CPU 코어 및 클럭 성능 비교

CPU 성능을 비교할 때 많이 쓰이는 단위가 코어 수, 스레드 수, 클럭 수입니다. 코어 수는 CPU 의 코어 수, 스레드 수는 동시 처리 가능 작업 수, 클럭 수는 코어의 작업 속도를 말합니다. 1.0GHz는 1초

thinkingpocket.tistory.com

댓글