Learning
토픽 38 / 111·메모리 계층 (Memory Hierarchy)

캐시 일관성 프로토콜 (Cache Coherence Protocol: MESI, MOESI)

캐시 일관성 프로토콜 (Cache Coherence Protocol: MESI, MOESI)

멀티코어에서 여러 캐시가 동일 메모리 데이터를 일관되게 유지하는 프로토콜

특징: 상태 기반 관리, 스누핑/디렉토리 방식, 무효화 프로토콜, HW 구현

MESI 상태: M(수정/불일치/WB책임), E(독점/일치/쓰기시 M전이), S(공유/읽기전용), I(무효)

주요 전이: E→M(로컬쓰기, 버스 불필요), S→M(쓰기+BusUpgr), M→S(타코어 읽기+WB), I→E/S(읽기)

MOESI: MESI + Owned(O) 상태, M→O 전이 시 WB 생략(메모리 트래픽 감소)

스누핑(Snooping): 공유 버스 감시, 분산 판단, 소규모(4~8코어), 저지연, 버스 대역폭 한계

디렉토리(Directory): 중앙 비트벡터로 상태 관리, 대규모(16+코어), 확장성 우수, 지연 증가

거짓 공유(False Sharing): 같은 캐시 라인 내 독립 변수 수정 → 불필요한 무효화 반복, 해결: 패딩/정렬/TLS

비교: MESI(4상태/단순) vs MOESI(5상태/공유효율) vs 스누핑(소규모/저지연) vs 디렉토리(대규모/확장성)

연관: 캐시, 멀티코어, 버스 스누핑, 디렉토리 프로토콜, 메모리 일관성