본문 바로가기

학부_대학원/운영체제

캐시 쓰기 정책

SMALL

과거 Cache Coherence에관해서 설명 했던 적이 있다.

그와 관련해서 캐시 쓰기 정책에 관해서 알아 보도록 한다.


먼저 CPU가 메모리를 요구하게 된다. 그러면 캐시를 먼저 확인하게 되고

캐시에 존재하게 되면 해당 캐시 메모리에 접근하게 된다.

그리고 접근을 했다고 가정하고, CPU가 캐시 메모리 값을 변경 하였다.

값이 변경 되었기 때문에, 캐시 메모리 값도 변경해야하고 메인 메모리 값도 변경 해야 할 것이다.

정리하면

0. CPU가 쓰기 요청

1. CPU가 캐시 메모리 값 변경

2. 메인 메모리 값 변경

이 발생되어야 한 것이다. 


여기서 설명할 정책은 "언제 메인 메모리 값을 변경" 해주냐를 정하는 정책이다.


Write Through 정책

해당 방식은 기본적으로 생각 할 수있는 정책이다. 

내가 생각하기에는 부지런한 사람 정책이라고 생각한다.

부지런한 사람은 즉각 즉각 바로 바로 바뀐 내용을 정리 할 것이다.

해당 방식은 구현에 있어서 매우 간단한 구조이다.

쓰기 정책이 발생되면 무조건 메인 메모리 값을 같이 변경 해주면 된다.

하지만 항상 메인 메모리에 접근 해야 하기 때문에, 케시를 사용해서

발생하는 속도 증가의 효과가 빛바레진다.


정리

쓰기 요청   

캐시 메모리 변경

메인 메모리 접근 ----

    | --> 캐시의 이득이 없어진다.

메인 메모리 변경-----


하지만 실제 메모리 접근에서 쓰기 요청은 10%~15% 만 된다고 한다.

그래서 많이 사용된다.


Writ  Back 정책

 CPU에서 메모리에 대한 쓰기 요청 시 캐시에서만 쓰기 작업과 그 변경 사실을 확인할 수 있는 표시를

하여 놓은 후 캐시로부터 해당 블록의 내용이 제거될 때 그 블록을 메인 메모리에 복사함으로써 

메인 메모리와 캐시의 내용을 동일하게 유지하는 방식


해당 방식은 동일 블록 내에 여러 번 쓰기를 실행 하는 경우 캐시에만 여러번 쓰기를 하기 때문에

속도 측면에서 이득이다.




LIST