캐시 일관성 유지기법

I. 캐시 메모리 일관성 문제점

가. 캐시 메모리 일관성(Coherence) 문제

  • 다중 프로세스 환경에서 데이터가 여러 캐시에 복사되어 있어 캐시 간 데이터 불일치 현상 발생

나. 캐시 데이터 불일치 원인

①   변경 가능 데이터 공유 ② 입출력 동작 ③ 멀티 프로세서환경

 

II. 캐시 일관성(Cache Coherence) 유지기법

가. S/W 측면의 캐시 일관성 유지기법

기법설명
공유 캐시– 모든 프로세서들이 하나의 공유 캐시
– 장점: 항상 캐시 일관성 유지
– 단점: 프로세서 간 캐시 액세스 충돌 가능
공유 변수
캐시 미사용
– 변경 가능한 변수는 주기억장치에만 저장
– Lock 변수(임계영역) 공유 캐시 미사용

– H/W 기법보다 간단하나 캐시 이용률 저하

나. H/W 측면의 캐시 일관성 유지기법

기법설명
디렉토리
프로토콜 기반
– 캐시 블록 공유 상태 저장하는 공간 이용
– Full map: 중앙집중식, 복사본 포인터
– Limited: Fullmap 작게 유지, 메모리 효율화
– Cache: 포인터를 Linked-list로 연결
스누피
프로토콜 기반
– 주소버스 감시, 캐시 상 접근 검사
– 다른 캐시 쓰기 발생 시 자기 정보 무효화
– Write Through: 캐시 수정 → 메모리 갱신
– Write Back: 캐시 수정 → 메모리 갱신X

– Write Through는 VI 프로토콜, Write Back은 MESI 프로토콜로 대표됨
 

III. 캐시 일관성 문제 해결 기법 VI와 MESI

가. Write Through 기반 VI(Valid & Invalid)

구분상세설명
개념도
<1 단계><2 단계><3 단계>
개념– 프로세서가 캐시 데이터 수정 시 주기억장치로 갱신
캐시
상태
V: Valid → 캐시 내용 = 주기억장치 내용
I: Invalid → 캐시 내용 != 주기억장치 내용

– 스누피 제어기는 메인 메모리 변경 내용이 자신의 캐시 주소에 있는지 검사, 존재 시 무효화(Invalid)

나. Write Back 기반 MESI

구분상세설명
개념도
개념– 변경된 캐시 스누피 제어기가 다른 스누피 제어기에게 변경된 내용 통보
MESI
프로
토콜
수정(Modified): 데이터가 수정(변경)된 상태
배타(Exclusive): 유일한 복사복, 주기억장치와 동일 상태
공유(Shared): 데이터가 2개 이상 프로세서 캐시 공유
무효(Invalid): 데이터가 다른 프로세서의 수정으로 무효

– Cache Flush는 캐시 내용만 초기화, Cache Clean은 캐시 데이터를 주기억장치와 동기화 수행

One Comment

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^