Cache wortadressierter HS statt byte addressiert?

1 Antwort

Da es deine Hausaufgaben sind nur ein Ansatz: du hast ein Kapazität (16 Blöcke) und unterschiedliche Satzgrößen = daraus errechnet du doch ganz einfach die Satzzahlen...

Bei den Bits kläre die Aufgabe der einzelnen Typen und wieviele Bits du dazu jeweils brauchst ..


RedDevil1982 
Fragesteller
 07.06.2023, 12:59

Danken für deinen Tipp:

Wenn der Hauptspeicher Byteadressiert ist, ist mir das klar.

Hier steht allerdings wortaddressierter Hauptprozessor

Datenwort a 2 Byte

Im Cache stehen ja jetzt auch die Adressen der Datenwörter

Spielen wir es bei a) mal für Assozität 1-fach durch:

n = 1 Anzahl der Blöcke pro Satz. Der Cache hat insgesamt 16 Blöcke

c = n * s c = Anzahl aller Blöcke s= Anzahl der Sätze

n = 1, daher c = s somit Anzahl Sets 16

Index-Bits: ich habe 16 Sätze also 2^4 = 4 Bits für den Index

Off-Set: ich ein Block umfasst 4 Datenwörter, 2^2 = 2 Bits für den Off-Set

Tag-Bits: Alle Cachspeicher werden mit 32-Bit addressiert laut Aufgabe

32 - 4 - 2 = 26 Bit für den Tag ????

Wäre dies soweit richtig?

0
RedDevil1982 
Fragesteller
 07.06.2023, 13:02

b) wie verändern sich die Werte bei Byt-weiser-Adressierung

1-fach: Anzahl Sets bleibt gleich 16, Index--Bits bleibt gleich, Off-Sett 2^3 = 3 Bits jetzt, da 4 Datenwörter a 2 Byte = 8 Byte.

Tag 32 - 4- 3 = 27 . Richtig?

0
RedDevil1982 
Fragesteller
 07.06.2023, 19:12
@myotis

Das hier jetzt im Speicher ein Datenwort a 2 Byte verwendet wird. Das verwirt mich. Jetzt adressressiere ich ja mit dem Offset nicht mehr jedes Byte sondern die Datenworte? Deshalb denke ich das der Offset hier 2^2 a 2 Bit sein müsste, da 4 Datenwörter in einem Block stehen.

Adressiere ich Byteweise 4 DW a 2 Byte = 8 Byte brauch ich einen Offset von 2^3 a 3 Bit.

0
myotis  07.06.2023, 20:44
@RedDevil1982
  • Tag-Bits sind der Rest zur Länge - hier 32 Bit
  • Indexbits brauchste ab 2 Sets: sind die Hochzahl in Setzahl=2^x...
  • ist die Hochzahl innerhalb des Blocks: hier immer 2, wie Du schon angegeben hast

Also

  • 1-fach = 1 Blocks/Set = 16 Sets = 26 Tagbits, 4 Indexbits, 2 Offsetbits
  • 2-fach = 2 Blocks/Set = 8 Sets = 27 Tagbits, 3 Indexbits, 2 Offsetbits
  • 4-fach = 4 Blocks/Set = 4 Sets = 28 Tagbits, 2 Indexbits, 2 Offsetbits

die Tagbitzahl kommt mir zwar hoch vor, aber wenn der Prozessor mit 32 bit arbeitet...

aber ich mir das hier letztlich auch erst heute angelesen...

...von daher keine Gewähr! ;o)

0