멀티코어와 동기화

캐시 일관성(coherency)과 메모리 일관성 모델(consistency model)의 차이로 올바른 것은?

  1. A둘은 같은 의미이며 부르는 이름만 다르다
  2. B일관성(coherency)은 같은 주소의 값의 불일치를 없애는 약속이고, 일관성 모델은 서로 다른 주소의 동작이 어떤 순서로 보이는지에 대한 약속이다
  3. C일관성(coherency)은 소프트웨어만으로, 일관성 모델은 하드웨어만으로 실현한다
정답과 해설 보기

정답: B. 일관성(coherency)은 같은 주소의 값의 불일치를 없애는 약속이고, 일관성 모델은 서로 다른 주소의 동작이 어떤 순서로 보이는지에 대한 약속이다

캐시 일관성(coherency)은 하나의 주소에 대해, 모든 코어가 쓰기를 같은 순서로 보고 결국 최신 값을 읽을 수 있음을 보장합니다. 한편 메모리 일관성 모델은 코어 0이 x에 쓰고 나서 y에 썼을 때, 다른 코어에 x와 y의 쓰기가 어떤 순서로 보일 수 있는지를 규정합니다. 캐시 일관성이 유지되고 있어도 서로 다른 주소의 순서는 뒤바뀌어 보일 수 있으며, 거기에 배리어가 필요합니다.

  • A. 다루는 문제가 다릅니다.
  • B. 맞습니다. 둘이 갖추어져야 비로소 올바른 병렬 프로그램을 작성할 수 있습니다.
  • C. 둘 다 하드웨어와 소프트웨어 양쪽에 관련됩니다.
이 분야 연습하기 분야로 돌아가기

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

  1. 하드웨어 트랜잭셔널 메모리(hardware transactional memory)의 개념으로 올바른 것은?
  2. 조건 변수(condition variable)로 「큐가 비어 있지 않게 될 때까지 기다린다」고 할 때, 대기에서 깨어난 뒤 조건을 if문이 아니라 while문으로 다시 확인하는 이유로 올바른 것은?
  3. 두 코어가 각자의 캐시에 변수 x의 복사본을 가지고 있다. 코어 0이 x에 쓴 뒤 코어 1이 x를 읽을 때, 캐시 일관성(cache coherency) 메커니즘이 없다면 일어날 수 있는 문제는 무엇인가?
  4. 캐시 일관성 프로토콜인 MESI의 네 가지 상태 조합으로 올바른 것은?
  5. MESI 프로토콜에서 캐시 라인이 Modified(M) 상태일 때의 의미로 올바른 것은?

이 분야의 비교