Mehrere der Ressourcen, die ich im Internet besucht habe, sind nicht einverstanden, wie gesetzt associative caching funktioniert.Informationen über N-Wege-Set assoziative Cache-Stati
Zum Beispiel Hardware Geheimnisse scheinen es funktioniert wie folgt zu glauben:
Dann wird der Haupt-RAM-Speicher in die gleiche Anzahl von Blöcken in der Cache-Speicher unterteilt ist. Unter Beibehaltung der 512 KB 4-Wege-Set assoziative Beispiel würde die Haupt-RAM in 2.048 Blöcke unterteilt werden, die gleiche Anzahl von Blöcken im Speicher-Cache verfügbar. Jeder Speicherblock ist mit einem Satz von Zeilen im Cache verknüpft, genau wie im direkt zugeordneten Cache.
http://www.hardwaresecrets.com/printpage/481/8
Sie scheinen zu sagen, daß jeder Cache-Block (4-Cache-Zeilen) abbildet, um einen bestimmten Block von zusammenhängenden RAM. Sie sagen, nicht zusammenhängende Blöcke von Systemspeicher (RAM) kann nicht auf den gleichen Cache-Block zuordnen.
Das ist es Bild davon, wie hardwaresecrets denkt, dass es http://www.hardwaresecrets.com/fullimage.php?image=7864
Kontrast, der mit wikipedia Bild von Set-Assoziativ-Cache http://upload.wikimedia.org/wikipedia/commons/9/93/Cache%2Cassociative-fill-both.png funktioniert.
Brown nicht einverstanden ist mit Hardware-Geheimnisse
Überlegen Sie, was, wenn jeder Cache-Zeile hatte zwei Sätze von Feldern passieren könnte: zwei gültige Bits, zwei dirty bits, zwei Tag Felder und zwei Datenfelder. Ein Satz von Feldern konnte Daten für einen Bereich des Hauptspeichers und den anderen für einen anderen Bereich, der zufällig auf die gleiche Cache-Zeile zuordnen.
http://www.spsu.edu/cs/faculty/bbrown/web_lectures/cache/
Das heißt, nicht zusammenhängende Blöcke des Systemspeichers kann Karte auf den gleichen Cache-Block.
Wie werden die Beziehungen zwischen nicht zusammenhängenden Blöcken im Systemspeicher und Cache-Blöcken erstellt? Ich habe irgendwo gelesen, dass diese Beziehungen auf Cache-Schritten basieren, aber ich kann keine Informationen über Cache-Schritte finden, außer dass sie existieren.
Wer hat Recht? Wenn Schreiten tatsächlich verwendet wird, wie funktioniert Schreiten und habe ich den richtigen technischen Namen? Wie finde ich den Schritt für ein bestimmtes System? basiert es auf dem Paging-System? Kann mir jemand auf eine URL verweisen, die detailliert den N-Way-Set-assoziativen Cache erklärt?
siehe auch: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/set.html
Wie es die Stücke des Systemspeichers nicht entscheiden, Karte, zu welchen Cache-Blöcken? Wenn ich ein Programm schreibe, wie ermittle ich die Systemspeicherbreite, die mit dem Cache übereinstimmt? –
Der Cache-Speicher entscheidet anhand eines Ersatzalgorithmus. Es verwendet normalerweise eine Form von Pseudo-LRU. Dies wird von der Hardware gehandhabt und es liegt außerhalb Ihrer Kontrolle. Sie können die Cache-Speicherparameter normalerweise aus dem Hardware-Datenblatt oder dem Benutzerhandbuch ermitteln. Es ist selten ein Softwareproblem, es sei denn, Sie verwenden eingebetteten Code, der mit einem sehr engen Zeitbudget ausgeführt werden muss. – sybreon
Es geht mir nicht darum, welche Blöcke des Systemspeichers ausgelöscht werden, sondern welche Blöcke des Systemspeichers auf welche Cacheblöcke abgebildet werden. Das heißt, was ist die Mathematik, die ein x86-Chip verwendet, um zu entscheiden, dass die Systemspeicherplätze 1000, 2000 und 3000 dem Cache-Block 5 zugeordnet werden sollten. Ich schreibe Software, deren Zweck es ist, den Cache zu manipulieren, und damit ist er rein betroffen Cache-Zuordnung Ich habe ein Programm geschrieben, um dieses Mapping durch Experimente zu bestimmen, aber ich möchte einen Artikel oder ein Papier, um meine Ergebnisse zu überprüfen. –