캐시 쓰기 정책
캐시 쓰기 정책은 CPU가 캐시에 쓴 데이터를 주기억장치에 언제 반영할지 정하는 규칙이다. 대표적인 방식은 Write Through와 Write Back이다. 두 방식을 가르는 기준은 메모리 반영 시점이다. Write Through는 쓰기가 발생하면 캐시와 주기억장치…
주요 장면
대본
개념 소개
캐시 쓰기 정책은 CPU가 캐시에 쓴 데이터를 주기억장치에 언제 반영할지 정하는 규칙이다.
대표적인 방식은 Write Through와 Write Back이다.
두 방식을 가르는 기준은 메모리 반영 시점이다.
두 방식의 구조
Write Through는 쓰기가 발생하면 캐시와 주기억장치에 동시에 기록한다.
Write Back은 캐시에만 먼저 쓰고, 해당 블록을 더티로 표시한다.
더티 비트는 캐시 값이 메모리와 달라졌음을 뜻하며, 교체 때 기록 여부를 가른다.
계산 예제
같은 블록에 1,000회 쓰기가 발생했다고 가정하고 메모리 쓰기 횟수를 비교한다.
Write Through는 쓰기마다 메모리에 기록하므로 1,000회다.
Write Back은 더티 비트가 1인 블록이 교체될 때 한 번만 기록하므로 1회다.
흔한 실수
먼저 흔한 실수를 짚는다. Write Back이 쓰기 즉시 메모리에 반영된다고 쓰면 틀린다.
Write Back은 블록이 교체될 때만 메모리에 반영하고, 더티 비트로 그 여부를 판단한다.
Write Through의 쓰기 지연과 버스 트래픽 증가도 함께 기억해야 한다.
쓰기 미스 정책
앞 문제의 정답은 기록하지 않는다. 더티 비트가 0이면 기록 없이 버린다.
쓰기 미스가 나면 블록을 캐시에 적재한 뒤 쓸지, 메모리에만 직접 쓸지 정한다.
일반적으로 Write Back은 Write Allocate와, Write Through는 No-Write Allocate와 짝지어진다.
정리
쓰기 정책은 캐시 쓰기를 주기억장치에 언제 반영할지 정하는 규칙이다.
Write Through는 항상 메모리와 일치하고, Write Back은 교체 시점에만 메모리와 맞춘다.
다중 코어에서 Write Back을 쓰면 캐시 일관성 프로토콜이 추가로 필요하다.
시험 답안에서는 반영 시점과 일관성 차이를 먼저 쓴다.