내 잡다한 노트

챕터8. 캐시 매핑 기법 본문

운영체제

챕터8. 캐시 매핑 기법

peanutwalnut 2022. 9. 17. 21:13

CPU에 있는 캐시는 메모리에서 데이터를 가져와 옳게 가져오면 캐시 히트, 맞지 않는 것을 가져오면 캐시 미스를 한다.캐시도 가상메모리처럼 매핑하는 기법이 비슷하다.

그러나 캐시는 메모리보다 작기 때문에 항상 메모리의 일부 페이지만 가지고 있다.

그래서 의미하는 바가 다르다.

 

캐시 직접 매핑

직접 매핑에서는 메모리의 페이지 수 N을 캐시의 페이지 수 M으로 나누고 이를 블록이라고 한다.

메모리의 페이지 수 N = M * 블록의 수가 된다.

직접 매핑에서는 메모리의 블록이 캐시로 올라올 때 항상 같은 위치로 올라온다.

블록의 첫 번째 페이지는 캐시의 첫 번째 페이지에만 올라오게 된다.

일정 위치에서 올라오기 때문에 메모리의 어떤 블록에서 올라오는지만 알면 된다. 그 블록 번호를 태그라고 한다. 

장점은 메모리의 페이지가 캐시의 같은 위치에 올라오기 때문에 태그만 확인하면 캐시히트나 미스를 빠르게 확인할 수 있다.

단점은 같은 위치에만 올라와서 자리다툼이 발생한다.

 

연관 매핑

페이지 테이블의 연관 매핑과 비슷하다. 자유롭게 캐시의 어느 위치에도 올라갈 수 있다. 하지만 히트인지 미스인지 확인하기 위해선 모든 주소를 검색해야 해서 느리다.

 

직접-연관 매핑

위 두개의 장점만 취한 방식이다. 캐시를 집합으로 나누고 각 집합에 직점 매핑을 사용한다.

집합으로 나누어 지다보니 같은 bd(블록까지의 거리)위치지만 태그가 다른 데이터도 올라올 수 있어 자리다툼의 단점이 생기지 않는다.