캐시메모리
캐시메모리(Cache Memory)는 속도가 빠른장치(CPU)와 느린장치(메모리)간의 속도차에 의한 병목현상을 줄이기 위한 범용메모리다.
메인 메모리와 CPU사이에 위치하며, CPU속도에 버금갈만큼 메모리계층에서 가장 빠르며, 용량이 적고 비싸다
캐시메모리가 속도가 빠른이유
캐시메모리는 메인메모리에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게한다.
이를 위해서 CPU가 어떤 데이터를 원하는지 어느정도 예측을 할수 있어야한다
캐시메모리에 CPU가 ‘다음에 참조할 정보'가 어느정도 들어있는지에 따라 캐시의 성능이 결정되기 떄문이다.
이를 위해서 사용하는것이, 캐시의 지역성(Locality)이다
Cache Locality(지역성)
데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생하는것을 말한다.
캐시의 적중률(Hit rate)를 극대화하여 캐시가 효율적으로 동작하기 위해 사용되는 성질이다.
전제조건은 ‘프로그램은 모든 코드와 데이터를 균등하게 접근하지 않는다' 라는것을 전제로 한다
- 공간지역성 : 최근에 사용했던 데이터와 인접한 데이터가 참조될 가능성이 높다 (A[0], A[1]…)
- 시간지역성 : 최근에 사용했던 데이터가 재참조될 가능성이 높다 (for, while …)
- 참고할만한 링크 : https://arca.live/b/programmers/728546
Hit Ratio
CPU에서 필요로 하는 데이터가 캐시메모리에 있어서, 참고할수 있느냐? 하는것이 Cache Memory의 성능이 된다.
CPU에서 필요한 데이터가 Cache Memory내에 들어와 있으면 이를 ‘Cache Hit’라고 하고, 들어있지않은것을 ‘Cache Miss’라고 한다.
원하는 데이터가 Cache 에 있을 확률을 Hit Ratio라고 한다
'CS지식' 카테고리의 다른 글
RAID 전략에 대해서 알아보기 (0) | 2022.11.12 |
---|---|
VM vs Container (0) | 2022.11.12 |
In-Memory 는 왜 쓸까? (0) | 2022.11.01 |
도커와 가상환경(VM)의 차이 (0) | 2022.07.04 |
파이썬이 C언어보다 느린 이유 (0) | 2022.07.02 |