2

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

ご協力ありがとうございました!

4

1 に答える 1

2

64 バイトのキャッシュ ラインがあり、1 バイトを書き込むとします。「キャッシュ ラインの 1/64」をキャッシュに入れることはできないので、残りの 63 バイトはどこから来るのでしょうか? それらはメイン メモリ (または次のレベルのキャッシュ) から取得する必要があります。

于 2016-08-27T12:46:59.827 に答える