私はComputer Architecture: A Quantitative Approachを読んでいましたが、次の段落 (バージョン 5 - ページ 415) に混乱しました。
" 一般的なプロトコルの最適化は、Owned 状態 (通常は O で示される) を導入することです。Owned 状態は、ノードが Owned ブロックのみを読み取ることができるという点で、Shared 状態のように動作します。他のノードの所有ブロックに対する読み取りおよび書き込みミス Modified または Owned 状態のいずれかのブロックに対する読み取りミスは、データを要求側ノードに提供し、Owned 状態に遷移しますModified または Owned 状態のいずれかのブロックに対する書き込みミスは、データを供給しますこの最適化された MOSI プロトコルは、ノードが Modified または Owned 状態のブロックを置き換えるときにのみメモリを更新します。」
私の質問は: 書き込みミスが発生したときに、要求元のノードに古いデータを提供する必要があるのはなぜですか?
私が行った努力: 関連する質問を 1 つ読みました。その質問に対する答えがよくわかりません。特に、「古いデータを利用できるようにしておくと、正確性の問題なしに、書き込みミス要求を投機的に (順不同の実行や書き込みのプリフェッチなどで) 送信できます。」 しかし、古いデータはメモリに書き戻されるのではなく、要求元のノードに書き戻されるため、私の質問はまだ異なると思います (キャッシュである必要がありますか?)。