라이트스루 vs 라이트백 캐시: 차이점 설명
쓰기 정책은 CPU가 캐시에 있는 데이터에 쓸 때 어떻게 처리할지를 결정합니다. 라이트스루(write-through) 캐시는 캐시와 메인 메모리를 동시에 갱신하므로 메모리가 항상 최신이지만 쓸 때마다 메모리 트래픽이 발생합니다. 라이트백(write-back) 캐시는 캐시만 갱신하고 해당 라인에 더티 표시를 한 뒤, 라인이 축출될 때 나중에 메모리에 씁니다. 라이트백은 더 빠르고 대역폭을 덜 쓰지만 일관성을 유지하기가 더 복잡합니다.
| 비교 항목 | 라이트스루 | 라이트백 |
|---|---|---|
| 쓰기 정책 | 모든 쓰기가 캐시와 다음 메모리 계층 양쪽으로 전달 | 쓰기는 캐시만 갱신하고 더티 비트를 설정. 메모리는 축출 시 갱신 |
| 메모리 트래픽 | 높음: 모든 쓰기가 밖으로 나감 | 더 낮음: 한 라인에 대한 반복 쓰기가 한 번의 라이트백으로 병합됨 |
| 쓰기 속도 | 보조 장치가 없으면 더 느림. 쓰기 버퍼가 지연의 대부분을 숨겨 줌 | 더 빠름: 쓰기가 캐시 속도로 완료됨 |
| 메모리와의 일관성 | 메모리가 항상 최신이므로 DMA 및 다른 코어와의 공유가 단순해짐 | 라인이 라이트백되기 전까지 메모리가 오래된 값일 수 있어 코히어런스에 더 주의해야 함 |
| 복잡도 | 단순함 | 더 복잡함: 더티 비트, 축출 시 라이트백, 코히어런스 프로토콜 |
| 축출 비용 | 저렴함: 쓸 것이 없음 | 더티 라인을 축출하면 메모리에 추가 쓰기가 발생 |
| 일반적인 쓰기 미스 정책 | No-write-allocate | Write-allocate |
| 대표 용도 | 일부 L1 캐시와 단순하거나 신뢰성을 중시하는 시스템 | 대부분의 현대 CPU 캐시, 특히 L2와 L3 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.