멀티코어와 동기화

MESI 프로토콜에서 Exclusive(E) 상태의 라인에 해당 코어가 쓸 때의 동작으로 올바른 것은?

  1. A다른 모든 코어에 무효화 요청을 보낸 뒤 쓴다
  2. B쓸 수 없으므로 일단 주기억장치에 쓴 뒤 다시 읽는다
  3. C다른 코어에 알릴 필요 없이 그대로 M 상태로 바뀐다
정답과 해설 보기

정답: C. 다른 코어에 알릴 필요 없이 그대로 M 상태로 바뀐다

E 상태는 이 코어만 라인을 가지고 있고 내용이 주기억장치와 같은 상태입니다. 다른 코어에 복사본이 없다는 것을 알고 있으므로, 쓸 때 무효화 통지를 하지 않고 M 상태로 전이할 수 있습니다. 하나의 코어만 사용하는 데이터를 읽은 뒤 쓰는 흔한 처리에서 통신을 생략할 수 있다는 점이 E 상태를 두는 이점입니다. S 상태에서 쓰는 경우에는 다른 복사본의 무효화가 필요합니다.

  • A. E 상태에서는 다른 복사본이 없으므로 통지가 필요 없습니다.
  • B. 그대로 쓸 수 있습니다.
  • C. 맞습니다. 자신만 가지고 있다는 것을 알고 있기 때문입니다.
이 분야 연습하기 분야로 돌아가기

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

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

이 분야의 비교