멀티코어와 동기화
두 코어가 각자의 캐시에 변수 x의 복사본을 가지고 있다. 코어 0이 x에 쓴 뒤 코어 1이 x를 읽을 때, 캐시 일관성(cache coherency) 메커니즘이 없다면 일어날 수 있는 문제는 무엇인가?
- A코어 1이 자신의 캐시에 남아 있는 오래된 값을 읽어 버린다
- B코어 1의 읽기가 코어 0의 쓰기보다 반드시 빨라진다
- Cx의 값이 2배로 읽힌다
정답과 해설 보기
정답: A. 코어 1이 자신의 캐시에 남아 있는 오래된 값을 읽어 버린다
멀티코어 CPU에서는 코어마다 있는 캐시에 같은 주소의 데이터 복사본이 만들어질 수 있습니다. 코어 0이 자신의 캐시 안에서만 x를 바꾸면 코어 1의 캐시에는 오래된 값이 남아 있고, 코어 1은 그 값을 읽게 됩니다. 캐시 일관성 메커니즘은 쓰기 시 다른 코어의 복사본을 무효화하는 등의 방법으로, 어느 코어에서 읽어도 최신 값이 보이도록 합니다.
- A. 맞습니다. 복사본의 내용이 어긋나 버립니다.
- B. 속도의 문제가 아니라 값의 정확성의 문제입니다.
- C. 값이 제멋대로 바뀌는 일은 없습니다.