1

L1/L2 キャッシュ ラインごとに、メイン メモリ データ ワードの複数のコピーをキャッシュできますか?

4

4 に答える 4

1

メインメモリが複数回キャッシュにある可能性があります。明らかに、それは真実であり、マルチプロセッサマシンではよくあることです。しかし、ユニプロセッサマシンでも、それが発生する可能性があります。

分割されたL1命令/データキャッシュを備えたPentiumCPUについて考えてみます。命令はIキャッシュにのみ送信され、データはDキャッシュにのみ送信されます。これで、OSが自己変更コードを許可している場合、同じメモリをIキャッシュとDキャッシュの両方に、1回はデータとして、1回は命令としてロードできます。これで、そのデータがL1キャッシュに2回あります。したがって、このような分割キャッシュアーキテクチャを備えたCPUは、競合状態/破損を回避するためにキャッシュコヒーレンスプロトコルを採用する必要があります。

于 2009-05-19T16:07:19.953 に答える
0

はい、できます。L1コピーは更新されますが、L2にフラッシュされていません。これは、L1とL2が非排他的キャッシュである場合にのみ発生します。これはユニプロセッサでは明らかですが、通常、コアごとに独自のL1キャッシュを持つマルチプロセッサではさらに顕著です。

それはすべてキャッシュアーキテクチャに依存します-それが何らかの種類のものを保証するかどうか。

于 2009-05-20T00:38:46.093 に答える
0

いいえ - 既にキャッシュにある場合、MMU は別のコピーを作成するのではなく、それを使用します。

于 2009-05-19T16:00:03.447 に答える
0

すべてのキャッシュは、基本的にメモリ全体のいくつかの小さなサブセットを格納します。CPU がメモリからワードを必要とする場合、メイン メモリがチェックされる前に、最初に L1 に移動し、次に L2 キャッシュに移動します。そのため、特定のメモリ ワードを L2 と L1 に同時に格納することはできますが、L1 に 2 回格納することはできません。

于 2009-05-19T16:01:40.203 に答える