개발/etc

캐시란 무엇인가 (1)

Dane.Kim 2023. 3. 29.

--

프로세서의 속도가 증가함에 따라 메모리의 속도도 따라와준다면 좋았겠지만...

프로세서가 빠르나 메모리가 느려 시스템의 속도가 느린 상황.

 

이런 상황을 '캐시' 를 통해 개선할 수 있다.

캐시는 CPU 칩 안에 들어가는 메모리로, 자주 사용하는 데이터를 담아놓고 메인 메모리 접근 대신 사용해

처리 속도를 높이는 용도로 쓰인다.

 

그럼 여기서 '자주 사용하는 데이터'는 어떤 기준으로 선정될까.

바로 시간 지역성 과 공간 지역성 , 즉 지역성 원리에 따라 판단되어진다.

시간 지역성은 최근 접근한 데이터에 다시 접근하는 경향을 말하고, 공간 지역성은 최근 접근한 데이터의

주변 공간에 다시 접근하는 경향을 말한다.

 

--

CPU 칩에는 L1, L2, L3 Cache와 같이 여러 개의 캐시가 들어간다. 

 

L1 Cache는 프로세서와 가장 가까이 있는 캐시로, Instruction Cache(I$)와 Data Cache(D$)로 나뉜다.

 

Instruction Cache : 메모리의 TEXT 영역 데이터를 다루는 캐시

Data Cache : TEXT 영역을 제외한 모든 데이터를 다루는 캐시

 

L2 Cache는 용량이 큰 캐시로, 나누지 않고 사용한다.

L3 Cache는 멀티 코어 시스템에서 여러 코어가 공유하게 되는 캐시이다.

 

--

다음 글에서는 캐시의 성능에 대해 정리.

댓글