Direkt zugeordneter Cache: So bestimmen Sie die Adresszerlegung

Direkt zugeordneter Cache: So bestimmen Sie die Adresszerlegung

Nehmen wir an, ich habe einen adressierbaren Speicher von 32 Bit und einen direkt zugeordneten Cache von 4 KB. Nehmen wir an, dass jeder Eintrag (jede Zeile) des Cache aus einem eindeutigen Wort (32 Bit) besteht.

Wir können daraus schließen, dass die Indexgröße 10 Bit beträgt, da 4*2^10 Bytes / 4 = 2^10 Wörter = 2^10 Zeilen.

Da es nur ein Wort pro Zeile gibt, gehe ich davon aus, dass wir kein Offset-Feld benötigen. Daher werden die Adressen des Caches folgendermaßen zerlegt:

  • Bits 0 bis 9: Index
  • Bits 10 bis 31: Label

Ist meine Logik irgendwie falsch?

Antwort1

Wir benötigen 2 Bits für den Offset, da ein 32-Bit-Wert 4 Bytes hat und auf jedes Byte einzeln zugegriffen werden kann und der Offset daher 0,1,2 oder 3 betragen kann.

Daher wird eine Adresse vom direkt zugeordneten Cache folgendermaßen zerlegt:

  • Bits 0 bis 1: Offset
  • Bits 2 bis 11: Index
  • Bits 12 bis 31: Label

Antwort2

Eine Cache-Zeile ist normalerweise 64 Bytes lang, die Offset-Bits 0-6 wählen ein Byte in der Zeile aus.

verwandte Informationen