Übung 6, Aufgabe 5: Vollassoziativer Cache

daehn
Erstie
Erstie
Beiträge: 16
Registriert: 5. Okt 2010 13:42

Übung 6, Aufgabe 5: Vollassoziativer Cache

Beitrag von daehn »

Hallo,
ich hab ne Verstädnisfrage zu den Begriffen Block- bzw. Byteoffset und wollte mal fragen ob folgende Ideen richtig sind:

(Spoiler)

Die Länge der Adressen beträgt 32 bit (8 Hexadezimalstellen), also arbeitet das System vermutlich (da alle Daten- / Adressleitungen gleich breit sein werden) mit 32 Bit Worten (= 4 Bytes pro Wort).
Wir haben einen vollassoziativen Cache, ergo ist die Anzahl an Sets genau 1 und wir haben 0 Indexbits.
Ein Block (eine Cacheline ohne Veraltungsinformationen quasi) hat eine Größe von 64 KByte. Da wir 4 Bytes pro Wort haben sind in einem Block also 2^14 aufeinanderfolgende Wörter gespeichert. Deswegen benötigt man 14 Bits um die Worte innerhalb eines Blockes unterscheiden zu können (die Blockoffsetbits?).
In den Folien taucht darüberhinaus (nur in den Schaubildern, aber in keiner Formel) ein Byteoffset auf, vermutlich um aus einem Wort ein bestimmtes Byte selektieren zu können. Da wir 4 Bytes pro Wort haben brauchen wir also 2 Byteoffsetbits?
Als Tagbits ergeben sich damit die ersten 32-0-14-2 = 16 Bits einer Adresse.

Stimmt das so? Insbesondere ist der Unterschied zwischen Byte- und Blockoffset nicht besonders betont in den Folien, bzw. in den Formeln tauchen die Bits für das Byteoffset nie auf (obwohl sie in den Schaubildern getrennt aufgeführt werden!), deswegen die Frage.

lg

Benutzeravatar
der Interpeter
Mausschubser
Mausschubser
Beiträge: 73
Registriert: 30. Okt 2007 22:24

Re: Übung 6, Aufgabe 5: Vollassoziativer Cache

Beitrag von der Interpeter »

Mich haben die Offset Bits eben beim machen der Aufgabe auch noch mal beschäftigt.
64 KiB Blockgröße = 64*1024 Bytes = 2^16 Bytes ==> 16 Bits Block Offset

Heisst das dann dass der Byte Offset bereits immer im Block Offset enthalten ist und deshalb in keiner Formel erwähnt wird?
Dann wählt der Block Offset das entsprehende Wort und der Byte Offset das Byte des Wortes aus richtig?

Irgendwie ist der Cachekram etwas verwirrend :-/
I never comment my sourcecode. What's HARD to write must be HARD to read!

Benutzeravatar
zimpfer
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 15. Mär 2009 01:07

Re: Übung 6, Aufgabe 5: Vollassoziativer Cache

Beitrag von zimpfer »

Ja, das ist so korrekt

ez22
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 28. Mär 2011 14:52

Re: Übung 6, Aufgabe 5: Vollassoziativer Cache

Beitrag von ez22 »

hallo,

wie wurde hier die Tag-Größe berechnet? also wie ist man auf die ersten 2 Bytes gekommen

Großen Dank!

hstr
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 128
Registriert: 14. Apr 2011 22:52

Re: Übung 6, Aufgabe 5: Vollassoziativer Cache

Beitrag von hstr »

ez22 hat geschrieben:hallo,

wie wurde hier die Tag-Größe berechnet? also wie ist man auf die ersten 2 Bytes gekommen

Großen Dank!
Hi,
du hast einen vollassoziativen Cache, also nur eine Cacheline, deshalb braucht man keine Index Bits.
Nun wissen wir noch das die Blockgröße 64 Kilobyte groß ist, da unser Speicher byte-adressiert ist, brauchen
wir 16 bits Offset um jedes Byte der 64 Kilobyte zu adressieren.
Die Länge eines Speicherzugriffs (z.B. 0x9A44D124) ist 4*8 = 32 bits. Nun können wir die Anzahl Tag Bits
berechnen: 32 bits (insgesamt) - 0 bits (Index) - 16 bits (Offset) = 16 bits Tag (= 2 Byte = 4 Hexa Stellen).

Antworten

Zurück zu „Archiv“