멀티코어와 동기화
일관성 프로토콜에는 무효화형과 갱신형이 있다. 많은 CPU가 무효화형을 채택하는 이유로 가장 적절한 것은?
- A같은 코어가 같은 라인에 여러 번 쓸 때, 처음 한 번의 무효화만으로 끝나 통신이 적기 때문
- B갱신형에서는 다른 코어가 오래된 값을 읽게 되기 때문
- C무효화형에서는 캐시 용량이 2배가 되기 때문
정답과 해설 보기
정답: A. 같은 코어가 같은 라인에 여러 번 쓸 때, 처음 한 번의 무효화만으로 끝나 통신이 적기 때문
갱신형은 쓸 때마다 새 값을 다른 코어의 복사본에 보내므로, 다른 코어가 곧바로 읽는다면 유리하지만, 하나의 코어가 연속해서 쓰는 경우에는 매번 통신이 발생합니다. 무효화형이라면 첫 번째 쓰기에서 다른 복사본을 무효화한 뒤, M 상태의 라인에는 통신 없이 쓸 수 있습니다. 실제 프로그램에서는 연속해서 쓰는 경우가 많으므로 무효화형이 일반적입니다.
- A. 맞습니다. 갱신형은 쓸 때마다 값을 보냅니다.
- B. 갱신형도 올바른 값을 유지할 수 있습니다. 문제는 통신량입니다.
- C. 용량은 달라지지 않습니다.