Sonstige Aufgaben Klausur 9/2016 - Aufgabe 5

Hi, kann mir jemand bei der Aufgabe 5 "Cache" helfen?

Der Index ergibt sich bei mir zu 8 Bit (log2(256)). Somit schließe ich aus dem Teil b der Aufgabe, da ja ein Hexwert jeweils 4 Bit sind:

Wortadresse 4 Bit
Index 8 Bit
Tag 4 Bit

Da alle 5 Zugriffe Misses sind, wäre meine Antwort, dass sich F0F0 im Blockrahmen 4 befinden muss (da ja bei 0 zu zählen begonnen wird). Ist das richtig?
 
Hallo,
an dieser Aufgabe hänge ich auch zur Zeit. Ich bin aber noch beim Aufgabenteil a). Ich habe ebenfalls 8 Bit für Index. Die Berechnung der Bits für die Wortadresse ist mir aber noch nicht ganz klar. Ich dachte bisher, dass sich die Bits der Wortadresse aus der Blockgröße in Byte berechnet.
Dazu gibt es ein Beispiel im Kurstext auf Seite 30 (KE3). Wenn die Wortadresse 4 Bits wären, dann müsste die Blockgröße 16 sein (log_2(16)).

Wenn ich die Aufgabenstellung richtig verstanden habe, dann liegt die Blockgröße bei 1 Byte und die Wortadresse wäre log_2(1)=0.

Dass das merkwürdig klingt bzw. total daneben liegen kann, ist mir klar. Ich habe soeben mal die Frage in der newsgroup (feu.informatik.kurs.20046) gestellt und hoffe dass jemand etwas genaueres sagen kann.

Ohne das Ergebnis aus a) zu kennen, kann ich mich nicht so wirklcih an den Rest der Aufgabe herantasten. Ich frage mich sowieso zu welchem Zweck eine solche Aufgabenstellung in die Klausur kommen musste....

Viele Grüße
Allan
 
Es gab eine Antwort in der Newsgroup, ich hatte die Aufgabe aber auch selbst noch einmal bearbeitet.
Es sind wohl wirklich 0 Bits für das Wort. Das würde bedeuten, dass Bit 0 bis 7 für den Index sind, und Bit 8 bis 15 für den Tag.
Zur Aufgabe b) Beim Zugriff auf A2C9 ist C9 der Index. Der Cache ist leer, also wird der Wert gelesen und in den Cache geschrieben. Unter dem Index C9 wird also der Tag A2 geschrieben.
Bei 57DF und DF57 nach dem gleichen Prinzip.
Bei A257 passiert folgendes: Unter dem Index 57 ist bereits ein Tag vorhanden. Der Wert A257 ist nicht im Cache und wird gelesen. Unter dem Index 57 wird nun A2 geschrieben.
Bei F0F0 wird unter dem Index F0 der Tag F0 geschrieben.
So hatte ich das Thema jetzt zumindest verstanden.
 
danke, die Antwort war von mir :)

Das zuvor hier von mir gepostete Ergebnis ist falsch.

Für die Nachwelt:
Hallo, ich habe die Aufgabe so gelöst, aber keine Ahnung, ob mein Ergebnis stimmt:
a)
Wortadresse = 0 Bit (log2(1))
Index = log2(256) = 8 Bit
Tag = 8 Bit

b)
Aufteilen in Tag und Index - Wortadresse gibts ja keine:
A2 C9
57 DF
DF 57
A2 57

F0 F0

und dann die Blöcke befüllen:

Blockrahmen 0 => C9 A2
Blockrahmen 1 => DF 57
Blockrahmen 2 => 57 DF
Blockrahmen 2 => 57 A2 (DF wird überschrieben?)
Blockrahmen 3 => F0 F0
 
Hallo, da die Cache-line genau 1 Wort gross ist, werden keine Wortbits gebraucht. Diese geben ja nur an an welcher Position in der Cache-line sich ein Wort befindet.
-Kai
 
Bezüglich F0:
In der Aufgabenstellung steht:
"Bei einem Writemiss wird der geschriebene Wert nicht in den Cache aufgenommen. "
Und der Cache Index F0 ist leer-
-Kai
 
Mal eine kurze Frage zu F0:
da der Cache leer ist, kommt es doch zu einem Write miss, oder? Und somit würde kein Eintrag im Cache erfolgen.
Christian
 
Genau, wenn nichts anderes angegeben ist wird ein Write-Miss nicht in den Cache geschrieben. Da unter F0 nichts im Cache steht, bleibt diese Cache-Line leer.

-Kai
 
Zurück
Oben