늘 겸손하게

CS - Computer Structure - 캐시 메모리(Cache Memory) 본문

Computer Science/Computer Structure

CS - Computer Structure - 캐시 메모리(Cache Memory)

besforyou999 2022. 11. 23. 20:07

캐시 메모리 (Cache Memory)

 

속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리

 

ex) CPU 코어와 메모리 사이의 병목 현상 완화

ex) 웹 브라우저 캐시 파일은, 하드디스크와 웹 페이지 사이의 병목 현상을 완화

 

CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다.

 

속도가 빠르다는 장점이 있지만, 비용이 비싸 대용량으로 사용하기 어려운 단점이 존재.

 

CPU에는 이러한 캐시 메모리가 2~3개 정도 사용된다. (L1, L2, L3 캐시 메모리라고 부른다)

속도와 크기에 따라 분류한 것으로, 일반적으로 L1캐시부터 먼저 사용된다. (CPU에서 가장 빠르게 접근하고, 여기서 데이터를 찾지 못하면 L2로 감)

 


 

듀얼 코어 프로세서의 캐시 메모리 : 각 코어마다 독립된 L1 캐시 메모리를 가지고, 두 코어가 공유하는 L2 캐시 메모리가 내장됨

만약 L1 캐시가 128kb면, 64/64로 나누어 64kb에 명령어를 처리하기 직전의 명령어를 임시 저장하고, 나머지 64kb에는 실행 후 명령어를 임시저장한다. (명령어 세트로 구성, I-Cache - D - Cache)

 

- L1 : CPU 내부에 존재

- L2 : CPU와 RAM 사이에 존재

- L3 : 보통 메인보드에 존재한다고 함

 

캐시 메모리 크기가 작은 이유는, SRAM 가격이 매우 비쌈.

 


디스크 캐시 : 주기억장치(RAM)와 보조기억장치(하드디스크) 사이에 존재하는 캐시

 


캐시 메모리 작동 원리

 

- 시간 지역성

 

for나 while 같은 반복문에 사용하는 조건 변수처럼 한번 참조된 데이터는 잠시 후 또 참조될 가능성이 높음

 

- 공간 지역성

 

A[0], A[1]과 같은 연속 접근 시, 참조된 데이터 근처에 있는 데이터가 잠시 후 또 참조될 가능성 높음

 

=> 이처럼 참조 지역성의 원리가 존재한다.

 

 

캐시에 데이터를 저장할 때는, 이러한 참조 지역성(공간)을 최대한 활용하기 위해 해당 데이터뿐만 아니라, 옆 주소의 데이터도 같이 가져와 미래에 쓰일 것을 대비한다.

 

CPU가 요청한 데이터가 캐시에 있으면 'Cache Hit', 없어서 DRAM에서 가져오면 'Cache Miss'

 


캐시 미스 경우 3 가지

 

1. Cold miss

 

해당 메모리 주소를 처음 불러서 나는 미스

 

2. Conflict miss

 

캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스 (direct mapped cache에서 많이 발생)

 

3. Capacity miss

 

캐시 메모리의 공간이 부족해서 나는 미스

 

-> Conflict는 주소 할당 문제, Capacity는 공간 문제

 


 

출처

https://github.com/gyoogle/tech-interview-for-developer