📌 지역성 (locality)
- 빠른 CPU와 느린 메인 메모리 RAM의 속도 차이는 성능 저하 원인 중 하나가 되는데 , 캐시는 이 둘 사이에서 중간자 역할을 함
- 캐시가 효율적으로 동작하기 위해서는 캐시에 저장할 데이터가 지역성을 가져야 함
시간 지역성
- 읽기/쓰기를 위해 특정 메모리가 사용됐을 때 가까운 시일 내에 해당 메모리가 다시 사용될 가능성이 높은 것을 의미함
- 한번 접근한 변수는 계속해서 접근할 가능성이 높음
공간 지역성
- 특정 데이터와 가까운 주소가 순서대로 접근되는 경우를 의미함
- 이번에 접근할 변수는 이전에 접근한 변수 근처에 있을 가능성이 높음
🧰 레지스터 (Register)
- CPU 내 임시 저장장치
- 메인 메모리에서 가져온 데이터를 일시적으로 저장할 수 있는 메모리 공간
- 메모리에서 바로 CPU의 연산 장치로 값을 가져올 수 없으므로 반드시 레지스터로 값을 가져와야 하며, 연산 결과값은 다시 임시 레지스터에 저장된 후 메모리에 있는 변수에 저장되는 과정을 거침
🍋 캐시
- 메인 메모리에 있는 변수는 연산을 하기 전과 후에 반드시 레지스터를 거쳐야하는데, 이러한 비효율성을 줄이기 위해 도입됨
- CPU는 필요한 변수를 메모리에서 직접 가져오지 않고 캐시에 요청함
- 자주 사용하는 데이터를 캐시에 저장하면 CPU가 빠르게 꺼내 쓸 수 있음
- 캐시 히트(cache hit): CPU에서 요청한 데이터가 캐시 안에 있는 경우
- 캐시 미스(cache miss): CPU에서 요청한 데이터가 캐시 안에 없는 경우
출처
https://literate-t.tistory.com/73
파이썬으로 배우는 자료구조