멀티코어와 동기화

MESI 프로토콜에서 캐시 라인이 Modified(M) 상태일 때의 의미로 올바른 것은?

  1. A이 코어만 해당 라인을 가지고 있으며, 내용이 주기억장치와 다르다(write-back 필요)
  2. B여러 코어가 같은 내용을 가지고 있으며, 주기억장치와도 일치한다
  3. C이 라인의 내용은 사용할 수 없으며, 읽으려면 다시 가져와야 한다
정답과 해설 보기

정답: A. 이 코어만 해당 라인을 가지고 있으며, 내용이 주기억장치와 다르다(write-back 필요)

M 상태는 이 코어가 쓰기를 수행하여 최신 값을 자신만 가지고 있는 상태입니다. 주기억장치의 값은 오래된 것이므로, 이 라인을 교체(evict)할 때나 다른 코어가 읽으려 할 때 최신 값을 write-back하거나 직접 전달해야 합니다. M 상태의 라인에는 다른 코어에 알리지 않고 그대로 몇 번이든 쓸 수 있으므로, 같은 코어가 연속해서 쓸 때는 빠르게 처리할 수 있습니다.

  • A. 맞습니다. 교체할 때는 주기억장치로 write-back합니다.
  • B. 그것은 Shared(S) 상태입니다.
  • C. 그것은 Invalid(I) 상태입니다.
이 분야 연습하기 분야로 돌아가기

멀티코어와 동기화의 다른 문제

  1. MESI 프로토콜에서 Exclusive(E) 상태의 라인에 해당 코어가 쓸 때의 동작으로 올바른 것은?
  2. 무효화형 일관성 프로토콜에서, 어떤 코어가 Shared(S) 상태의 라인에 쓸 때 이루어지는 동작은 무엇인가?
  3. MESI 프로토콜에서 코어 0이 Modified(M) 상태로 가지고 있는 라인을 코어 1이 읽으려 할 때의 일반적인 동작은?
  4. 캐시 일관성의 스누핑(snooping) 방식에 대한 설명으로 올바른 것은?
  5. 코어 수가 많은 시스템에서 스누핑 방식 대신 디렉터리 방식의 일관성이 사용되는 이유로 올바른 것은?

이 분야의 비교