캐시 메모리와 지역성
캐시 메모리(cache memory)는 CPU와 메인 메모리 간에 데이터 접근 시 속도 차이를 줄이기 위해 사용한다.
CPU에서 메인 메모리에 있는 데이터를 가져올 때 자주 사용하는 데이터는 캐시 메모리에 따로 저장한다.
이후에 해당 데이터가 필요하면 캐시 메모리에 접근한다.
이러면 메인 메모리에 접근하는 것보다 속도를 향상시킬 수 있다.
캐시 메모리에 어떤 데이터를 저장할지는 지역성을 바탕으로 결정한다.
지역성(locality)은 CPU가 자주 참조하는 데이터가 고르게 분포되지 않고 특정 부분에 몰려 있는 것을 나타낸다.
캐시 적중률을 높이려면 지역성을 바탕으로 데이터를 저장해야 한다.
지역성의 종류
•
시간 지역성(time locality)
최근 참조한 내용을 다시 참조할 가능성이 높다.
•
공간 지역성(space locality)
실제 참조한 주소 근처의 내용을 참조할 가능성이 높다.
캐시 메모리의 매핑 방식
•
직접 매핑(direct mapping)
메인 메모리를 일정한 크기로 나누고 각 영역을 캐시 메모리에 매핑하는 방식이다.
메인 메모리는 캐시 메모리보다 크므로 나눠진 n개의 메모리 영역이 1개의 캐시 메모리에 매핑된다.
•
연관 매핑(associative mapping)
메모리 영역을 캐시 메모리에 규칙 없이 매핑하는 방식이다.
메모리 영역을 캐시 메모리에 적재할 때는 간단하지만 캐시 메모리에서 필요한 메모리 영역을 찾을 때는 비효율적이다.
•
집합 연관 매핑(set associative mapping)
직접 매핑과 연관 매핑을 결합해 단점을 보완한 방식으로 범용적으로 사용된다.