Cache Addressing: Länge des Index, Block Offset, Byte Offset & Tag?

8

Sagen wir, ich kenne die folgenden Werte:

%Vor%

Wie berechne ich, wie viele Bits benötigt werden für:

%Vor%

a) im direkt zugeordneten Cache b) im vollständig assoziativen Cache?

    
Katy 10.01.2013, 13:30
quelle

1 Antwort

14

Die Adresse kann in folgende Teile aufgeteilt werden:

%Vor%

Anzahl der Byte-Offset-Bits

0 für wortadressierbaren Speicher, log 2 (Bytes pro Wort) für byteadressierbaren Speicher

Anzahl der Block- oder Zeilenoffset-Bits

log 2 (Wörter pro Zeile)

Anzahl der Indexbits

log 2 (CS), wobei CS die Anzahl der Cachesätze ist.

  • Für vollständig assoziativ ist CS 1. Da log 2 (1) 0 ist, gibt es keine Indexbits.
  • Für die direkte Zuordnung ist CS gleich CL, die Anzahl der Cache-Zeilen, so dass die Anzahl der Index-Bits log 2 (CS) === log 2 ist (CL).
  • Für n-Wege assoziative CS = CL ÷ n: log 2 (CL ÷ n) Indexbits.

Wie viele Cache-Zeilen Sie erhalten haben, kann berechnet werden, indem Sie die Cachegröße durch die Blockgröße = S / B dividieren (vorausgesetzt, sie enthalten nicht die Größe für Tag und gültige Bits).

Anzahl der Tag-Bits

Länge der Adresse minus Anzahl der für Offset (s) und Index verwendeten Bits. Die Länge der Adressen kann unter Verwendung der Größe des Hauptspeichers berechnet werden, wie z. Jedes Byte muss adressiert werden, wenn es sich um einen byteadressierbaren Speicher handelt.

Quelle: Ссылка

    
Capricorn 27.03.2014 18:52
quelle

Tags und Links