본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Cache Flush
캐시에 들어 있는 데이터를 하위 계층(주기억장치)에 반영하고 캐시를 비우는 동작

캐시는 주기억장치의 일부를 복사해 두고 쓰기 때문에, 어느 순간 캐시의 내용과 주기억장치의 내용이 달라진다. 이 불일치를 해소해야 하는 시점이 있다.

  • 프로세스 문맥 교환(Context Switch)
  • DMA 전송 전후 — 주변장치가 주기억장치를 직접 읽고 쓰므로
  • 여러 프로세서가 같은 메모리를 볼 때(캐시 일관성)
  • 전원 차단, 시스템 종료
  • 가상 주소 매핑 변경
동작 내용
Flush 변경된(Dirty) 블록을 하위 계층에 쓰고 캐시를 비운다
Clean / Write-back 하위 계층에 쓰기만 하고 캐시는 그대로 둔다
Invalidate 쓰지 않고 캐시 내용을 무효화만 한다. 변경분은 버려진다

쓰기 정책과의 관계

편집 원본 편집
정책 동작 플러시 부담
Write-Through 캐시와 주기억장치에 동시에 쓴다 항상 일치하므로 플러시 부담이 없다. 대신 쓰기가 느리다
Write-Back 캐시에만 쓰고 블록이 교체될 때 기록한다 빠르지만 불일치 구간이 생겨 플러시가 필요하다

성능에 미치는 영향

편집 원본 편집

플러시 직후에는 캐시가 비어 있으므로 강제 미스(Compulsory Miss)가 몰린다. 잦은 플러시는 성능을 크게 떨어뜨리므로, 필요한 주소 범위만 골라 플러시하는 방식을 쓴다.