マルチコアと同期
MESIプロトコルで、Exclusive(E)状態のラインにそのコアが書き込むときの動作として正しいものはどれか。
- Aほかのすべてのコアに無効化の要求を送ってから書き込む
- B書き込みはできないので、いったん主記憶に書いてから読み直す
- Cほかのコアに知らせる必要がなく、そのままM状態に変わる
答えと解説を見る
正解:C. ほかのコアに知らせる必要がなく、そのままM状態に変わる
E状態は、このコアだけがラインを持ち、内容が主記憶と同じ状態です。ほかのコアにコピーがないと分かっているので、書き込むときに無効化の通知をせずにM状態へ移れます。1つのコアだけが使うデータを読んでから書く、というよくある処理で通信を省けるのが、E状態を設ける利点です。S状態から書き込む場合は、ほかのコピーの無効化が必要です。
- A. E状態ではほかにコピーがないので、通知は不要です。
- B. そのまま書き込めます。
- C. 正しい。自分だけが持っていると分かっているからです。