Übungsblatt Nr 3, Aufgabe 4
09.11.2009 16:53:05
Moin,

Ich habe eine Frage zur 4. Aufgabe auf dem aktuellen Übungsblatt (Nr.3).
Und zwar steht in dem Text, dass wir einen vollassoziativen Cache haben, mit write back/non-allocate-verfahren.
Das hieße nun meiner Aufassung nach, dass bei einem Befehl zuerst geschaut wird, ob besagte Adresse im Cache liegt.
Wenn ja --> Cachehit, der Wert wird im Cache aktualisiert und das dirty bit auf 1 gesetzt, um sich zu "merken", dass man was verändert hat. Erst beim Verdrängen wird dann auch der HS aktualisiert.
Wenn nein --> Cachemiss, in diesem Falle wird direkt aus dem HS gelesen und an die Adresse geschickt, ohne dass der Cache verändert wird. Hoffe das stimmt soweit.

In der Aufgabe ist nun von der Verdrängungsstrategie FIFO die Rede, jedoch kommt diese garnicht zur Anwendung, wenn ich das richtig überlegt habe. Da die Adressen beim Schreiben alle im Cache liegen und beim Lesen der Cache nich verändert wird, muss auch nix Verdrängt werden. Oder stehe ich da jetzt aufm Schlauch?

Hoffe das war einigermaßen verständlich und ich hab nich zu direkt gefragt :-P

Danke schonma für die Mühen^^
Re: Übungsblatt Nr 3, Aufgabe 4
09.11.2009 17:05:55
Hallo,
Also das Verfahren (write-back/write-non-allocate) hast du richtig verstanden.
Dies bezieht sich allerdings nur auf Schreibvorgänge, d.h. der Prozessor errechnet ein Ergebnis und will es unter einer bestimmten Adresse abspeichern. Hierzu schaut er erst im Cache nach, aktualisiert bei einem Cache-Hit den vorhandenen Wert und setzt das Dirtybit auf 1. Bei einem Cache-Miss legt er das Ergebnis im Hauptspeicher ab. Der Cache bleibt dann unverändert.

Die Verdrängungsstrategie kommt dann zum Einsatz, wenn der Prozessor für seine Berechnungen einen Wert auslesen will. Wenn nun ein Cache-Hit vorliegt, ist ja alles in Ordnung. Bei einem Cache-Miss wird im Hauptspeicher nachgeschaut und dieser Wert dann auch in den Cache geschrieben. Dann kann es eben zu einem Konflikt kommen, falls der Cache voll ist und dann brauchst du die Verdrängungsstrategie.

Hoffe das hilft
Felix
Re: Übungsblatt Nr 3, Aufgabe 4
12.11.2009 21:16:07
Ich hab auch noch eine Frage zu der besagten Aufgabe:
In der Aufgabe heißt es, dass der Cache "von oben nach unten" befüllt wurde, also links das älteste und rechts das neueste Datum steht. Wenn ich jetzt ein neues Darum in den Cache lade, wird es dann gerade hinten angehängt und alle anderen Daten verschieben sich um eins nach links (was bedeuten würde, dass man alles umschreiben müsste) oder gilt das wirklich nur für die gezeigte Anfangsbelegung?
Re: Übungsblatt Nr 3, Aufgabe 4
12.11.2009 21:24:20
Hallo,
nein die werde nicht weitergeschoben, die Position der Cachzellen wird jedes mal beibehalten.
Das heisst wenn man "rechts" angekommen und der Cache voll ist, ist "links" das "älteste" Datum.
Was beim nächsten Einfügen eines anderen Datums überschrieben wird, hängt von der Verdränungsstrategie ab, aber bestimmt wird man nicht alle Daten eine Zelle weiter wandern lassen.
MfG
Jan
Re: Übungsblatt Nr 3, Aufgabe 4
12.11.2009 22:57:59
Wie Jan gesagt hat, nichts verschiebt sich. Und so wie du selbst auch schon festgestellt hast, nach dem Einfügen links, ist ganz links natürlich nicht mehr das älteste sonder das rechts daneben. Die Aussage gilt nur für die Anfangsbelegung, denn danach ändert sich das ja. Du musst aber wissen, welches Datum du als erstes verdrängen willst, deswegen die Angabe der Anfangsbelegung.
Gruß Simon