Es gibt drei Zuordnungsmethoden: vollständig assoziative Methode, direkte Methode und gruppenassoziative Methode. Bei der direkten Zuordnung kann ein Hauptspeicherblock in einer eindeutigen Cache-Zeile gespeichert werden. Bei der vollständigen assoziativen Zuordnung kann ein Hauptspeicherblock in einer beliebigen Cache-Gruppe gespeichert werden.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Dell G3-Computer.
Cache ist ein Hochgeschwindigkeitspufferregister und eine wichtige Technologie zur Lösung des Geschwindigkeitsunterschieds zwischen CPU und Hauptspeicher.
Der CPU-Zugriff auf den Speicher liest und schreibt normalerweise jeweils eine Worteinheit. Wenn die CPU nicht auf den Cache zugreifen kann, muss die im Hauptspeicher gespeicherte Worteinheit zusammen mit mehreren nachfolgenden Wörtern in den Cache übertragen werden. Der Grund hierfür besteht darin, sicherzustellen, dass nachfolgende Speicherzugriffe den Cache erreichen können.
Daher sollte die Dateneinheit, die gleichzeitig zwischen Hauptspeicher und Cache ausgetauscht wird, ein Datenblock sein. Die Größe des Datenblocks ist fest und besteht aus mehreren Wörtern, und die Datenblockgröße von Hauptspeicher und Cache ist gleich.
Aus Sicht der auf Cache-Hauptspeicherebene erreichten Ziele muss einerseits die Speicherzugriffsgeschwindigkeit der CPU nahe an der Cache-Zugriffsgeschwindigkeit liegen und andererseits der dafür vorgesehene laufende Speicherplatz Das Benutzerprogramm sollte als Speicherplatz gleich der Hauptspeicherkapazität vorgehalten werden.
In einem System, das die Cache-Hauptspeicher-Hierarchie verwendet, ist der Cache für das Benutzerprogramm transparent, das heißt, das Benutzerprogramm muss die Existenz des Caches nicht kennen. Daher gibt die CPU jedes Mal, wenn sie auf den Speicher zugreift, immer noch eine Hauptspeicheradresse an, genau wie wenn der Cache nicht verwendet wird. Aber in der Cache-Hauptspeicher-Hierarchie ist das erste, worauf die CPU zugreift, der Cache, nicht der Hauptspeicher.
Aus diesem Grund ist ein Mechanismus erforderlich, um die Hauptspeicherzugriffsadresse der CPU in eine Cache-Zugriffsadresse umzuwandeln. Die Konvertierung zwischen der Hauptspeicheradresse und der Cache-Adresse hängt eng mit der Zuordnungsbeziehung zwischen dem Hauptspeicherblock und dem Cache-Block zusammen. Das heißt, wenn die CPU auf den Cache zugreift, muss auf das Wort zugegriffen werden Der im Hauptspeicher befindliche Block wird in den Cache übertragen, und die für die Übertragung verwendete Strategie wirkt sich direkt auf die entsprechende Beziehung zwischen der Hauptspeicheradresse und der Cache-Adresse aus werden in diesem Abschnitt gelöst.
Es gibt drei Adresszuordnungsmethoden zwischen Hauptspeicher und Cache: vollständig assoziative Methode, direkte Methode und satzassoziative Methode.
Direct Mapping
speichert einen Hauptspeicherblock in einer eindeutigen Cache-Zeile.
Vollständig assoziative Zuordnung
kann einen Hauptspeicherblock in jeder Cache-Zeile speichern.
Assoziative Zuordnung festlegen
kann einen Hauptspeicherblock in einer beliebigen Zeile in einer eindeutigen Cache-Gruppe speichern.
Direkte Zuordnung
Viele-zu-Eins-Zuordnungsbeziehung, aber ein Hauptspeicherblock kann nur an eine bestimmte Zeilenposition im Cache kopiert werden.
Die Cache-Zeilennummer i und die Hauptspeicherblocknummer j haben die folgende funktionale Beziehung: i=j mod m (m ist die Gesamtzahl der Zeilen im Cache)
Vorteile: einfache Hardware, einfach zu implementieren
Nachteile : niedrige Trefferquote, die Speicherplatznutzung des Cache ist gering
Vollständig assoziative Zuordnung
Ein Block des Hauptspeichers wird direkt in eine beliebige Zeile im Cache kopiert
Vorteile: Die Trefferquote ist hoch und Die Speicherplatzauslastung des Caches ist hoch.
Nachteile: komplexe Zeilen, hohe Kosten, niedrige Geschwindigkeit Es ist festgelegt, in welcher Zeile des Hauptspeicherblocks die Gruppe flexibel ist, d zwischen Gruppen und vollständig assoziativ innerhalb der Gruppe.
Das obige ist der detaillierte Inhalt vonWelche drei Adresszuordnungsmethoden gibt es zwischen Hauptspeicher und Cache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!