Having

[컴퓨터 구조] CPU Cache란 무엇인가 본문

OS

[컴퓨터 구조] CPU Cache란 무엇인가

GHM 2022. 11. 22. 16:57

cache(캐시)란?

: 자주 사용하는 데이터를 미리 복사해 놓는 임시 저장 장소이다. 캐시는 원본 데이터에 접근하는 시간을 절약하기 위해 사용한다. 즉, 데이터 검색 속도를 높이기 위한 것이다. CPU 캐시를 제외한 대부분의 캐시들을 소프트웨어적으로 관리된다.

 

CPU cache란?

: CPU가 자주 사용할 만한 데이터를 메인 메모리에서 꺼내와 복사 저장해 놓는 임시 저장 장소.  CPU 내부나 바로 옆에 존재하는 작은 메모리 칩이다. (하드웨어)

 

출처: https://www.geeksforgeeks.org/cache-memory-in-computer-organization/

 

CPU 캐시의 등장배경

프로세서(CPU) 성능이 점차 발달하면서, CPU 코어와 메인 메모리간 속도 차이가 현저히 증가하였다.
CPU 코어와 메인메모리 간 데이터 접근 시간을 줄이기 위해, 캐시 메모리 개념 도입

캐시 메모리의 용량은 매우 작고 많은 비용이 들기 때문에,
메인 메모리처럼 많은 양의 데이터를 저장할 수 없다.
그러므로 캐시는 CPU가 자주 사용할 만한 데이터를 잘 예측해서 저장해둬야 한다.
즉, Cache Miss를 줄이고 Cache Hit(hit rate)를 늘려야한다.

 

그렇다면,

캐시의 적중률을 높일 수 있는 방법은 무엇일까?

'시간적, 공간적 지역성을 가진 데이터를 저장하면, 캐시의 적중률을 높일 수 있다.'

 

시간적 지역성은 
최근에 사용된 데이터가 다시 사용될 가능성이 높다는 시간적 특성을 말하고

공간적 지역성은 
최근에 사용된 데이터 근처에 있는 데이터가 사용될 가능성이 높다는 공간적 특성을 말한다. 

 

 

CPU 캐시 메모리의 종류

작업관리자에서 cpu 성능을 확인할 때,

코어, 논리 프로세서(스레드), 클락 이외에 'L1, L2, L3 캐시'란 용어가 보인다.

이에 대해 간략히 정리해보자.

 

 

 

CPU Cache Memory는 캐시의 크기와 속도를 기준으로 L1, L2, L3으로 나뉜다.

출처: https://www.digitaltrends.com/computing/what-is-cpu-cache-and-is-it-important/

 

L1 cache

CPU core 칩 내부에 존재하므로 CPU가 매우 빠르게 접근할 수 있고, 크기가 상대적으로 작다.

램보다 최대 100배 속도

L1은 instruction cache(명령캐시)data cache(데이터캐시)로 나뉜다.

명령캐시는 cpu가 사용할 데이터가 저장되고, 데이터캐시는 메인메모리에 기록될 데이터가 저장된다.

 

L2 cache

CPU core 칩 내부에 존재할 수도 있고, CPU 외부에 가까이 존재할 수도 있다.

L1 캐시에서 'cache miss'가 발생했을 경우(즉, 찾고자하는 데이터가 L1에 없을 경우),  사용되고

L1보다 상대적으로 느리고 크기가 더 크다.

하지만 여전히 램보다 최대 25배의 속도

 

L3 cache

L1, L2보다 크고 속도도 더 느리지만 여전히 램보다 빠르다.

멀티코어 환경에서 각각의 코어는 독립적인 L1, L2 메모리를 소유함과 동시에 L3을 공유한다.

 

 

CPU 캐시 동작과정

  1. CPU가 메모리에 데이터를 요청한다.
  2. CPU가 메인 메모리에 접근하기 전, 필요로하는 데이터가 캐시에 존재하는지 확인(check)한다.
  3. 있으면 (cache hit), 캐시에 접근해 데이터를 가져오고
    없으면 (cache miss), 메인 메모리에 접근해서 데이터를 가져온다.

 

 

 

참고자료

https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C