Hier ist das Problem, an dem ich arbeite:
Das Problem: "Eine Hochgeschwindigkeits-Workstation hat 64-Bit-Wörter und 64-Bit-Adressen mit Adressauflösung auf Byte-Ebene. Angenommen, ein direkt zugeordneter Cache mit 8192 64-Byte-Zeilen enthält jeweils wie viele Bits der folgenden Adressfelder für den Cache? 1) Byte 2) Index 3) Tag? "
Zuerst definierte ich die Begriffe in diesem Problem und verwendete die andere Frage zu Stack Overflow Direct Mapped Cache und meine andere Frage zu Caching als Referenz. (Bitte korrigieren Sie mich, wenn eine meiner Definitionen falsch ist.)
- 64-Bit-Wörter - Der Prozessor kann jeweils 64 Bit verarbeiten
- 64-Bit-Adressen mit Adressierung auf Byte-Ebene - es gibt 2 ^ 64 Speicherplätze im RAM und jeder Speicherplatz speichert ein Byte.
- Der Cache hat eine hohe Geschwindigkeit und ist in Cache-Zeilen unterteilt
- Direkt zugeordneter Cache ist der Ort, an dem ein RAM-Speicherblock auf eine Cache-Zeile abgebildet wird (nicht sicher, welche Bedeutung dies hat)
Bearbeiten Sie jetzt Direct Mapped Cache als Referenz
- Byte - Da eine Bytezeile aus 64 Byte besteht, benötigen Sie 6 Bit, um ein einzelnes Byte innerhalb dieser Bytezeile zu identifizieren
- Index - Da es 8192 "Zeilen" von Bytezeilen gibt, benötigen Sie mindestens 10 Bits, um jede Zeile zu identifizieren
Jetzt ist hier der Teil, an dem ich festsitze. Der andere Post sagte: "Alle anderen Bits sind TAG-Bits." während dieses Vortrag Post sagte : „Jede Zeile hat einen Tag, den die Adresse in M , aus dem die Zeile kopiert wurde anzeigt“. Ich vermute, dass M das RAM bedeutet.
Hier wären also alle anderen Bits 64 - 6 - 10 = 48 Bits. Aber würden Sie nicht alle 64 Bits im TAG benötigen, um anzugeben, von welchem Speicherort im RAM die Daten im Cache stammen? Kann jemand die Verwirrung klären, die ich hier habe?
quelle