Nウェイセットアソシアティブキャッシュの詳細
-
03-07-2019 - |
質問
インターネット上で行ったいくつかのリソースでは、連想キャッシュの設定方法について意見が分かれています。 は機能します。
たとえば、ハードウェアの秘密は次のように機能すると信じているようです:
次に、メインRAMメモリは 同じ数のブロックが メモリキャッシュ。 512 KBを維持する 4ウェイセットアソシアティブの例、 メインRAMは2,048に分割されます ブロック、同数のブロック メモリキャッシュ内で使用可能。 各メモリブロックはセットにリンクされています キャッシュ内の行の 直接マップされたキャッシュ内。
http://www.hardwaresecrets.com/printpage/481/8
彼らは、各キャッシュブロック(4キャッシュライン)が連続RAMの特定のブロックにマップすると言っているようです。彼らは、システムメモリ(RAM)の不連続ブロックが同じキャッシュブロックにマップできないと言っています。
これは、hardwaresecretsがそれが機能すると考える方法の写真です http://www.hardwaresecrets.com/fullimage.php?image=7864
ウィキペディアのセットアソシアティブキャッシュの写真とは対照的です http://upload.wikimedia.org/ wikipedia / commons / 9/93 / Cache%2Cassociative-fill-both.png 。
ブラウンはハードウェアの秘密に同意しません
それぞれの場合に何が起こるか考えます キャッシュラインには2セットのフィールドがありました:2 有効なビット、2つのダーティビット、2つのタグ フィールド、および2つのデータフィールド。一組 のフィールドは1つのデータをキャッシュできます メインメモリの領域、および他の にマップする別のエリア 同じキャッシュライン。
http://www.spsu.edu/cs/faculty/ bbrown / web_lectures / cache /
つまり、システムメモリの連続していないブロックは、同じキャッシュブロックに マップできます。
システムメモリ上の不連続ブロックとキャッシュブロックの関係はどのように作成されますか。これらの関係はキャッシュストライドに基づいていることをどこかで読みましたが、キャッシュストライドに関する情報はそれらが存在する以外には見つかりません。
だれが正しいですか? ストライドが実際に使用される場合、ストライドはどのように機能し、正しい技術名を持っていますか?特定のシステムのストライドを見つけるにはどうすればよいですか?ページングシステムに基づいていますか? N-wayセットアソシエイティブキャッシュを非常に詳細に説明するURLを誰かに教えてもらえますか?
も参照してください: http://www.cs.umd.edu/ class / sum2003 / cmsc311 / Notes / Memory / set.html
解決
キャッシュメモリアーキテクチャを生徒に教えるとき、ダイレクトマップキャッシュから始めます。それが理解されると、Nウェイセットアソシエイティブキャッシュは、ダイレクトマップキャッシュの並列ブロックと考えることができます。両方の数値が正しいことを理解するには、最初にset-assocキャッシュの目的を理解する必要があります。
これらは、複数のメモリロケーションが特定のキャッシュエントリにマップできるダイレクトマップキャッシュの「エイリアス」の問題を回避するように設計されています。これは、ウィキペディアの図に示されています。そのため、キャッシュエントリを削除する代わりに、Nウェイキャッシュを使用して他の「エイリアス化された」メモリロケーションを保存できます。
実質的に、ハードウェアの秘密の図は、メインメモリの最初のチャンクがWay-1に、次に2番目のチャンクがWay-2に、というように置換の順序が正しいと仮定すると正しいでしょう。ただし、メインメモリの最初のチャンクを複数の方法に分散させることも同様に可能です。
この説明がお役に立てば幸いです!
PS:連続したメモリロケーションは単一のキャッシュラインにのみ必要であり、空間的な局所性を利用します。質問の後半については、いくつかの異なる概念を混同している可能性があると思います。
他のヒント
置換ポリシーは、キャッシュ内のどこでのコピーを決定します メインメモリの特定のエントリが移動します。置換ポリシーが キャッシュ内の任意のエントリを自由に選択してコピーを保持します。キャッシュは 完全連想と呼ばれます。反対に、mainの各エントリが メモリはキャッシュの1か所にのみ入れることができ、キャッシュは直接 マッピングされました。多くのキャッシュは、メインの各エントリが メモリはキャッシュ内のN個の場所のいずれかに移動でき、説明されています Nウェイセットアソシアティブとして