マルチコアと同期

MESIプロトコルで、Exclusive(E)状態のラインにそのコアが書き込むときの動作として正しいものはどれか。

  1. Aほかのすべてのコアに無効化の要求を送ってから書き込む
  2. B書き込みはできないので、いったん主記憶に書いてから読み直す
  3. Cほかのコアに知らせる必要がなく、そのままM状態に変わる
答えと解説を見る

正解:C. ほかのコアに知らせる必要がなく、そのままM状態に変わる

E状態は、このコアだけがラインを持ち、内容が主記憶と同じ状態です。ほかのコアにコピーがないと分かっているので、書き込むときに無効化の通知をせずにM状態へ移れます。1つのコアだけが使うデータを読んでから書く、というよくある処理で通信を省けるのが、E状態を設ける利点です。S状態から書き込む場合は、ほかのコピーの無効化が必要です。

  • A. E状態ではほかにコピーがないので、通知は不要です。
  • B. そのまま書き込めます。
  • C. 正しい。自分だけが持っていると分かっているからです。
この分野を解く 分野ページへ

マルチコアと同期のほかの問題

  1. 無効化型のコヒーレンシプロトコルで、あるコアがShared(S)状態のラインに書き込むときに行われることはどれか。
  2. MESIプロトコルで、コア0がModified(M)状態で持っているラインを、コア1が読もうとしたときの一般的な動作はどれか。
  3. キャッシュコヒーレンシのスヌーピング方式の説明として正しいものはどれか。
  4. コアの数が多いシステムで、スヌーピング方式の代わりにディレクトリ方式のコヒーレンシが使われる理由として正しいものはどれか。
  5. コヒーレンシのプロトコルには無効化型と更新型がある。多くのCPUが無効化型を採用している理由として最も適切なものはどれか。