書き込みミスポリシーの割り当てによる書き込みのMESIプロトコル実装について疑問に思っています。書き込み要求があり、他のキャッシュ ラインのコピーがない状態でキャッシュ ミスが発生したとします。この図は、次のステップがメイン メモリ (または L2 キャッシュ) から値をフェッチし、それを格納して、キャッシュ ラインを M (変更済み) としてマークすることであることを示しています。その後、新しい値がキャッシュブロックに格納されると思います。問題は、なぜメイン メモリからデータをフェッチするステップが必要なのかということです。I (無効) 状態の最初に見つかったキャッシュ ラインに新しい値を単純に書き込んだり、最も古いキャッシュ ラインを置き換えて M (変更済み) としてマークしたりできないのはなぜですか?
ご協力ありがとうございました!