L1 / 2キャッシュの問題
-
22-08-2019 - |
質問
L1 / L2キャッシュラインは、それぞれメインメモリデータワードの複数のコピーをキャッシュすることができるか
解決
これは、メインメモリがキャッシュ回以上であることが可能です。明らかにそれは本当だとマルチプロセッサマシンのための一般的な発生。しかし、たとえユニプロセッサ・マシン上で、それが起こることができます。
スプリットL1命令/データ・キャッシュを持つペンティアムCPUを考えてみましょう。手順は、I-キャッシュにのみDキャッシュにデータを行きます。 OSは、自己のコードを変更することができた場合、今、同じメモリは、一度の命令として、一度データとして、IおよびDキャッシュの両方にロードすることができます。今、あなたはL1キャッシュにその倍のデータを持っています。したがって、このような分割されたキャッシュ・アーキテクチャを持つCPUは、レースコンディション/破損を避けるために、キャッシュ・コヒーレンス・プロトコルを使用しなければなりません。
他のヒント
はありません - それはキャッシュにすでにかどうMMUは、別のコピーを作成するよりも、それをむしろ使用されます。
。すべてのキャッシュは基本的にメモリ全体のいくつかの小さなサブセットを格納します。 CPUは、メモリからの言葉を必要とするときには、最初のようにL1に、その後、L2キャッシュに行き、 、前にメインメモリがにチェックされています。 そう特定のメモリワードが同時にL2およびL1にすることができ、それを必要としないので、L1で2回保存することができない。
はい、できます。 L1のコピーが更新されますが、L2にフラッシュされていません。これは、L1およびL2は、非排他的なキャッシュがある場合にのみ発生します。これは、ユニプロセッサにとって明らかであるが、それは、典型的には、各コアに独自のL1キャッシュを有するマルチプロセッサのためのなおさらである。
これは、すべてのキャッシュ・アーキテクチャに依存します - それは事の任意の並べ替えを保証するかどうか。
。