스물두줄

컴퓨터시스템응용기술사 · 컴퓨터 구조 및 운영체제

캐시 메모리

캐시 메모리는 CPU와 주기억장치 사이에 둔 고속 소용량 버퍼 메모리다. 자주 쓰는 데이터의 복사본을 담아 평균 메모리 접근 시간을 줄인다. 주기억장치(DRAM)보다 빠른 SRAM으로 만들어 CPU 근처에 둔다. 지역성은 프로세스가 메모리의 일부 영역을 집중해서 참조…

주요 장면

  1. 0:02 캐시의 정의
  2. 0:19 지역성
  3. 0:39 평균 접근 시간
  4. 1:18 캐시 사상 방식
  5. 1:42 쓰기 정책
  6. 2:22 MESI 일관성

대본

캐시의 정의

캐시 메모리는 CPU와 주기억장치 사이에 둔 고속 소용량 버퍼 메모리다.

자주 쓰는 데이터의 복사본을 담아 평균 메모리 접근 시간을 줄인다.

주기억장치(DRAM)보다 빠른 SRAM으로 만들어 CPU 근처에 둔다.

지역성

지역성은 프로세스가 메모리의 일부 영역을 집중해서 참조하는 성질이다.

시간적 지역성은 최근 참조한 주소를 곧 다시 참조하는 성질이다.

공간적 지역성은 참조한 주소 근처를 곧 참조하는 성질이다.

캐시는 이 성질에 기대어 블록 단위로 데이터를 미리 가져온다.

평균 접근 시간

평균 접근 시간은 적중률 h에 따라 캐시 시간과 주기억장치 시간을 섞은 값이다.

미스율 MR을 쓰면 AMAT는 적중 시간에 미스율과 미스 손실의 곱을 더한 값이다.

적중 1ns, 미스율 5%, 미스 손실 100ns면 AMAT는 6ns가 된다.

미스율을 2%로 낮추면 AMAT가 얼마가 되는지 직접 구해 보자.

캐시 사상 방식

캐시 사상 방식은 주소 블록을 캐시의 어느 라인에 둘지 정하는 방식이다.

직접 사상은 블록당 라인이 하나뿐이라 충돌이 많다. 교체 정책이 필요 없다.

집합 연관 사상은 세트 안 n개 라인에 배치해 충돌을 줄인다. 교체는 세트 안에서 한다.

완전 연관 사상은 적중률이 가장 좋지만 모든 태그를 동시에 비교해야 한다.

쓰기 정책

쓰기 정책은 CPU가 쓴 값을 언제 주기억장치에 반영할지 정하는 방식이다.

Write Through는 캐시와 주기억장치에 동시에 써서 메모리가 항상 최신이다.

Write Back은 캐시에만 쓰고 Dirty bit로 표시한 뒤 블록 교체 시 반영한다.

일반적으로 Write Back은 Write Allocate와, Write Through는 No-write Allocate와 짝지어진다.

MESI 일관성

MESI는 다중 프로세서의 캐시 일관성을 위한 프로토콜로 4개 상태를 가진다.

네 상태는 Modified, Exclusive, Shared, Invalid다.

Shared 상태에서 쓰기가 발생하면 다른 복사본을 Invalid로 무효화한다.

그 뒤 자신의 블록을 Modified로 바꾼다. 상태 나열만 하지 말고 전이 흐름을 쓴다.

같은 장의 영상