Cache Coherency

MySprtlty·2023년 1월 26일
0

Computer Architecture

목록 보기
3/6

🏷️Cache Coherency

  • 각 캐시에 저장된 데이터들 사이의 일관성은 유지되어야 한다.
  • 캐시를 계층 구조로 갖는 멀티 코어 프로세서에서는 L1, L2 캐쉬가 코어마다 존재할 수 있다.
    • 🖇️cf. 물론 어떻게 설계하느냐에 따라 다 다르기에 특정 아키텍처에 종속된 이야기다.
  • L1은 보통 명령어 캐시와 데이터 캐시로 나뉘어지고, L2와 L3는 혼합되어 있다.

📌Snooping Protocol

1. MSI Snooping (Modified, Shared, Invalid)

  • Invalid
    • 해당 데이터(cache line)이 유효하지 않음을 의미한다.
    • 읽거나 쓰려면 반드시 값을 요청해야한다.
  • Modified
    • 데이터는 해당 캐시에만 존재하고 메인 메모리는 최신 상태가 아니다.
    • 즉, 오직 하나의 코어만 이 cache line을 갖고 있는 상태다.
  • Shared
    • 데이터가 한 곳 이상에서 공유중이거나 자기만 갖고 있다.
    • 메인 메모리도 최신 값을 갖고 있다.

2. MESI (Modified, Exclusive, Shared, Invalid)

  • MSI 프로토콜에 E상태를 추가한 것이다.
  • MSI의 Shared상태에서 자기만 깨끗한(메모리와 같은) 데이터를 갖고잇는 상태를 분리하여 E라고 추가하였다.
  • 즉, Exclusive 상태는 해당 데이터가 해당 캐시에만 존재하고 다른 어떤 캐시에도 존재하지 않지만, 메모리와 일치하는 상태를 의미한다.

3. MOESI (Modified, Owner, Exclusive, Shared, Invalid)

  • dirty cache line도 공유할 수 있게 허용한 프로토콜이다.
  • 한 프로세서를 Owner로 할당하고, Owner 상태를 가진 프로세서가 write back을 수행하도록 한다.
  • AMD 프로세서에서 사용되며, MESI에 비해 더 효율적인 데이터 공유를 가능하게 한다.

4. MESIF (Intel) (Modified, Exclusive, Shared, Forward, Invalid)

  • Forward 상태는 Shared와 유사하지만, 해당 캐시가 메인 메모리로부터 데이터를 다른 캐시로 직접 전달할 책임이 있다는 것을 의미한다.
  • 즉, F상태의 cache line은 이 cache line을 달라는 요청에 응답할 수 있다.
  • Intel 프로세서에서 사용된다.
profile
2Co 4:7

0개의 댓글