Informationen über die N-Wege-Assoziativ-Cache stides gesetzt
-
03-07-2019 - |
Frage
Einige der Ressourcen, die ich auf die im Internet gegangen sind haben nicht einig, wie Set assoziativen Caching funktioniert.
Zum Beispiel Hardware Geheimnisse scheinen zu glauben, es funktioniert wie folgt:
Dann wird der Haupt-RAM-Speicher ist unterteilt in die gleiche Anzahl von Blöcken in der Speicher-Cache. Halten Sie die 512 KB 4-Wege-satzassoziativen Beispiel des Haupt-RAM würde in 2.048 unterteilt werden Blöcke, die gleiche Anzahl von Blöcken, innerhalb der Speicher-Cache zur Verfügung. Jeder Speicherblock wird auf einen Satz verknüpften nur von Linien innerhalb des Cache, wie in dem direkt abgebildeten Cache.
http://www.hardwaresecrets.com/printpage/481/8
Sie scheinen zu sagen, dass jeder Cache-Block (4 Cache-Zeilen) Karten zu einem bestimmten Block von zusammenhängenden RAM. Sie sagen, nicht zusammenhängende Blöcke von Systemspeicher (RAM) kann nicht auf denselben Cache-Block.
Das ist es Bild davon, wie hardwaresecrets denkt, dass es funktioniert http://www.hardwaresecrets.com/fullimage.php?image=7864
Kontrast, dass mit wikipedia Bild von Set-Assoziativ-Cache http://upload.wikimedia.org/ wikipedia / commons / 9/93 / Cache% 2Cassociative-fill-both.png .
Brown nicht einverstanden ist mit Hardware-Geheimnisse
Überlegen Sie, was, wenn jeder passieren könnte Cache-Zeile hatte zwei Sätze von Feldern: zwei gültige Bits, zwei dirty bits, zwei Tag Felder und zwei Datenfelder. Ein Satz von Feldern könnten Daten-Cache für ein Bereich des Hauptspeichers, und die andere für ein weiterer Bereich, der zur Karte geschieht die gleiche Cache-Zeile.
http://www.spsu.edu/cs/faculty/ bbrown / web_lectures / cache /
Das heißt, nicht zusammenhängende Blöcke des Systemspeichers können auf denselben Cache-Block.
Wie die Beziehungen zwischen nicht-zusammenhängenden Blöcken auf den Systemspeicher und Cache-Blöcke erstellt sind. Ich habe irgendwo gelesen, dass diese Beziehungen auf Cache-Schritten basieren, aber ich kann keine Informationen über Cache-Schritte nur feststellen, dass sie existieren.
Wer hat Recht? Wenn Schreiten tatsächlich verwendet wird, wie die Arbeit ist schreitend und habe ich die richtigen technischen Namen? Wie kann ich den Schritt für ein bestimmtes System finden? wird es auf dem Paging-System basiert? Kann mich jemand auf eine URL verweisen, die N-Wege Assoziativ-Cache im Detail?
erklärtsiehe auch: http://www.cs.umd.edu/ Klasse / sum2003 / cmsc311 / Notes / Speicher / set.html
Lösung
Wenn ich Cache-Speicherarchitektur meiner Studenten beibringen, ich mit einem direkt abgebildeten Cache starten. Sobald das klar ist, kann man sich vorstellen n-Wege assoziativen Caches als parallele Blöcke von Direct-Mapped-Cache. Um zu verstehen, dass beide Zahlen korrekt sind, müssen Sie zunächst den Zweck des Set-Assoc-Caches verstehen.
Sie sind entworfen, um das Problem des ‚Aliasing‘ in einem direkt abgebildeten Cache zu arbeiten, in denen mehrere Speicherplatz zu einem bestimmten Cacheeintrag zuordnen. Dies ist in der Wikipedia Abbildung dargestellt. Anstatt also einen Cache-Eintrag evicting, können wir einen N-Wege-Cache verwenden, um die anderen ‚aliased‘ Stellen Speicher zu speichern.
In der Tat würde die Hardware Geheimnisse Diagramm korrekt sein die Reihenfolge des Ersatzes unter der Annahme ist, so dass das erste Stück von dem Hauptspeicher zu Way-1 abgebildet wird und dann die zweiten Chunk Way-2 und so weiter so weiter. Es ist jedoch ebenso möglich, das erste Stück des Hauptspeichers über mehrere Wege verteilt zu haben.
Hope diese Erklärung hilft!
PS: Contiguous Speicherplätze sind nur für eine einzige Cache-Zeile benötigt, räumliche Lokalität ausnutzt. Wie für den letzten Teil Ihrer Frage, ich glaube, dass man verschiedene Konzepte mehrere verwirrend sein kann.
Andere Tipps
Die Ersetzungsstrategie entscheidet im Cache, in dem eine Kopie eines bestimmter Eintrag des Hauptspeichers gehen wird. Wenn die Ersatzpolitik kostenlos einen Eintrag im Cache zu wählen, um die Kopie zu halten, ist der Cache voll assoziativ bezeichnet. Am anderen Extrem, wenn jeder Eintrag in Haupt Speicher kann nur an einer Stelle in dem Cache gehen, ist der Cache direkt abgebildet. Viele Caches implementieren einen Kompromiss, bei dem jeder Eintrag in Haupt Speicher kann in dem Cache zu einem der N Orte gehen, und werden als n-Wege assoziativen