Ich lese "Computer-Organisation und Design der Hardware/Software-Schnittstelle" in der spanischen Ausgabe, und ich habe in eine Übung geraten, die ich nicht lösen kann. Die Übung befasst sich mit der Speicherhierarchie, speziell mit Caches.CPU-Cache-Trefferzeit
Die Übung sagt:
Wenn 2,5 ns erforderlich sind Etiketten für den Zugriff auf in einem N-Wege-Assoziativ-Cache, 4 ns für Zugriffsdaten, 1 ns für die Treffer-/Ausfall Vergleichs- und 1 ns die Daten zurückzugeben, im Erfolgsfall vom Prozessor ausgewählt.
Der kritische Pfad in einem Cache-Treffer ist durch die Zeit gegeben, um zu bestimmen, ob es Erfolg oder Zeitdatenzugriff gab?
Wie hoch ist die Trefferlatenz des Cache? (erfolgreicher Fall).
Was wäre die Latenz des Erfolgs im Cache, wenn sowohl die Zugriffszeit auf Labels als auch die Datenmatrix 3 ns beträgt?
Ich werde versuchen, die Fragen mit allen über Erinnerungen, die ich weiß, zu beantworten.
Um auf eine im Cache gespeicherte Daten zugreifen zu können, muss ich als Erstes die Zeile mit dem Indexfeld einer Adresse suchen. Sobald das Speichersystem die Zeile gefunden hat, muss ich das Label-Feld meiner Adresse mit dem Label-Feld des Caches vergleichen. Wenn sie übereinstimmen, dann ist es ein Treffer, und ich muss die Daten zurückgeben und eine Datenmenge in der durch das Offset-Feld der Adresse bestimmten Zeile verschieben und dann die Daten an den Prozessor zurückgeben.
Das bedeutet, dass der Cache 8.5 ns dauert. Aber ich habe auf eine andere Art gedacht, dass Chaches es tun können: Wenn ich die gewünschte Zeile (2,5 ns) bekomme, kann ich nun auf die Daten zugreifen, und parallel dazu kann ich die Bedingung von iquality auswerten. Also, die Zeit wird 4.5 ns sein. Eines davon ist das Ergebnis der zweiten Frage. Welches dieser Ergebnisse ist richtig?
Für die erste Frage wird der kritische Pfad der Vorgang sein, der die größere Zeit benötigt; Wenn der Cache 4.5 benötigt, um die Daten zu erhalten, greift der kritische Pfad auf die Etiketten im Cache zu - Vergleich - gibt die Daten zurück. Ansonsten wird es der gesamte Prozess sein.
Für die letzte Frage, wenn der kritische Pfad der gesamte Prozess ist, dann dauert es 8ns. Sonst dauert es 5ns (Etikettenzugriff im Cache, Vergleich, Rückgabe der Daten).
Dies ist wahr? Und was ist mit einem voll assoziativen Cache ?, und einem direkten Mapping-Cache?
Das Problem ist, dass ich nicht weiß, welche Dinge der Cache zuerst und was als nächstes oder parallel tun.
Ausgezeichnete Antwort!, Danke –