멀티코어와 동기화

두 코어가 각자의 캐시에 변수 x의 복사본을 가지고 있다. 코어 0이 x에 쓴 뒤 코어 1이 x를 읽을 때, 캐시 일관성(cache coherency) 메커니즘이 없다면 일어날 수 있는 문제는 무엇인가?

  1. A코어 1이 자신의 캐시에 남아 있는 오래된 값을 읽어 버린다
  2. B코어 1의 읽기가 코어 0의 쓰기보다 반드시 빨라진다
  3. Cx의 값이 2배로 읽힌다
정답과 해설 보기

정답: A. 코어 1이 자신의 캐시에 남아 있는 오래된 값을 읽어 버린다

멀티코어 CPU에서는 코어마다 있는 캐시에 같은 주소의 데이터 복사본이 만들어질 수 있습니다. 코어 0이 자신의 캐시 안에서만 x를 바꾸면 코어 1의 캐시에는 오래된 값이 남아 있고, 코어 1은 그 값을 읽게 됩니다. 캐시 일관성 메커니즘은 쓰기 시 다른 코어의 복사본을 무효화하는 등의 방법으로, 어느 코어에서 읽어도 최신 값이 보이도록 합니다.

  • A. 맞습니다. 복사본의 내용이 어긋나 버립니다.
  • B. 속도의 문제가 아니라 값의 정확성의 문제입니다.
  • C. 값이 제멋대로 바뀌는 일은 없습니다.
이 분야 연습하기 분야로 돌아가기

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

  1. 캐시 일관성 프로토콜인 MESI의 네 가지 상태 조합으로 올바른 것은?
  2. MESI 프로토콜에서 캐시 라인이 Modified(M) 상태일 때의 의미로 올바른 것은?
  3. MESI 프로토콜에서 Exclusive(E) 상태의 라인에 해당 코어가 쓸 때의 동작으로 올바른 것은?
  4. 무효화형 일관성 프로토콜에서, 어떤 코어가 Shared(S) 상태의 라인에 쓸 때 이루어지는 동작은 무엇인가?
  5. MESI 프로토콜에서 코어 0이 Modified(M) 상태로 가지고 있는 라인을 코어 1이 읽으려 할 때의 일반적인 동작은?

이 분야의 비교