Developer Jay

[ComputerScience] 캐시무효화

01 May 2022

Intro

캐시무효화에 대해 알아보자


1. 캐시무효화

image

  • 오늘날의 CPU는 다중 코어 시스템으로 구성된다. 그리고 각 코어마다 L1, L2 캐시메모리가 존재한다.
  • 그렇다면 우리는 한 가지 의문점이 생겨야 한다. Core[0] 에서 L1 캐시에 쓰기를 진행하면 다른 코어의 L1 캐시에 변경된 값이 적용될까?
  • 정답은 적용되지 않는다. 한 코어에서 쓰기를 진행한다면 다른 코어에서는 알 수 없다는 것이다.
  • 캐시메모리간 동기화 문제를 해결하기 위해 캐시메모리는 데이터 쓰기를 할 때마다 Bus 통신을 통해 다른 코어의 캐시메모리의 해당 캐시라인을 무효화 시킨다.
  • 각 코어에서 찾는 데이터의 캐시가 무효화 된 상황도 Cache Miss로 볼 수 있다.
  • 캐시무효화 방식은 Write-Through 와 Write-Back 두 가지로 구분된다.
  방식 설명
1 Write-Through 값이 변경 되었을 경우 물리 메모리 까지 가서 값 변경
Instruction Cache 에서 사용하는 방식
2 Write-Back 값이 변경 되었을 경우 L1 캐시메모리만 변경 한다.
해당 캐시 라인이 제거 될 때 물리 메모리에 반영 된다.
Data Cache 에서 사용하는 방식