개발/etc
캐시란 무엇인가 (1)
Dane.Kim
2023. 3. 29. 14:38
--
프로세서의 속도가 증가함에 따라 메모리의 속도도 따라와준다면 좋았겠지만...
프로세서가 빠르나 메모리가 느려 시스템의 속도가 느린 상황.
이런 상황을 '캐시' 를 통해 개선할 수 있다.
캐시는 CPU 칩 안에 들어가는 메모리로, 자주 사용하는 데이터를 담아놓고 메인 메모리 접근 대신 사용해
처리 속도를 높이는 용도로 쓰인다.
그럼 여기서 '자주 사용하는 데이터'는 어떤 기준으로 선정될까.
바로 시간 지역성 과 공간 지역성 , 즉 지역성 원리에 따라 판단되어진다.
시간 지역성은 최근 접근한 데이터에 다시 접근하는 경향을 말하고, 공간 지역성은 최근 접근한 데이터의
주변 공간에 다시 접근하는 경향을 말한다.
--
CPU 칩에는 L1, L2, L3 Cache와 같이 여러 개의 캐시가 들어간다.
L1 Cache는 프로세서와 가장 가까이 있는 캐시로, Instruction Cache(I$)와 Data Cache(D$)로 나뉜다.
Instruction Cache : 메모리의 TEXT 영역 데이터를 다루는 캐시
Data Cache : TEXT 영역을 제외한 모든 데이터를 다루는 캐시
L2 Cache는 용량이 큰 캐시로, 나누지 않고 사용한다.
L3 Cache는 멀티 코어 시스템에서 여러 코어가 공유하게 되는 캐시이다.
--
다음 글에서는 캐시의 성능에 대해 정리.