2009-05-19 4 views
1

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

答えて

1

メインメモリが複数回キャッシュに存在する可能性があります。明らかに、これはマルチプロセッサ・マシンにとって真実であり、一般的な出来事です。しかし、ユニプロセッサーのマシンでさえ、それは起こり得る。

スプリットL1命令/データキャッシュを持つPentium CPUを考えてみましょう。命令はIキャッシュにのみ行き、データはDキャッシュにのみ行きます。現在、OSが自己修正コードを許可している場合、同じメモリをIキャッシュとDキャッシュの両方に、一度データとして、一度は命令としてロードすることができます。今度はL1キャッシュでそのデータを2回使用します。従って、このような分割キャッシュアーキテクチャを有するCPUは、競合状態/破損を回避するためにキャッシュ一貫性プロトコルを使用しなければならない。

0

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

+0

必ずしもそうである必要はありません。それは完全にキャッシュアーキテクチャに依存します。 – sybreon

0

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

すべてはキャッシュアーキテクチャに依存します。何らかのことが保証されているかどうか。

関連する問題