mittelding
2010-01-18, 16:43:09
Hallo!
Wir haben neulich kurz den vollassoziativen Cache, Direct mapped Cache und den n-Way Cache behandelt. Hab da aber noch einige Unklarheiten.
Hier gibts zwar auch ein Technologie und CPU-Board, aber ich denke, ich bin im Programmierboard gut aufgehoben.
Im Anhang seht ihr die 3 entsprechenden Bilder, auf die ich mich beziehe.
Die Caches bestehen ja alle 3 aus Adress- und Datenspeicher, aber es gibt doch ein paar Unterschiede.
Der vollassoziative Cache ist eigentlich klar, denke ich zumindest. Von der CPU kommt ein Request und es wird eine Adresse mitgeliefert, der Adresspeicher wird dann Zeile für Zeile nach der Adresse durchsucht und wenn ein Hit vorliegt, dann gibts die entsprechenden Daten zurück.
In dem Request sind auch noch 2 bit für die Wortanwahl und 2 bit für die Byteanwahl innerhalb des Worts enthalten, soweit sogut.
Beim DM-Cache ist das ähnlich, nur dass dort noch ein Index mitgeliefert wird.. man spart sich hier also die ganzen Adressvergleiche und kann direkt ansteuern. An Byte- und Wortanwahl hat sich nix geändert. Dieser Index ist im Beispiel 4 bit groß, damit lassen sich logischerweise 16 Zeilen ansteuern, wie es im Bild auch zu sehen ist.
Jetzt der n-Way Cache: Hier spricht der Index ja keine Zeilen, sondern Sätze an. 3 bit groß für 8 Sätze, das verstehe ich noch.
ABER: jetzt habe ich ja mehrere Zeilen innerhalb eines Satzes. Wie der Satz angewählt wird ist klar, dafür hab ich den Index. Aber wir kommt man auf die richtige Zeile innerhalb des Satzes? Oder läft das dann wieder so ab wie beim Assoz. Cache, dass man innerhalb des Satzes Zeile für Zeile durchgehen muss?
Was mir desweiteren noch unklar ist: es hieß, der Cache sei für die CPU unsichtbar (daher auch der Name), ihm sei egal ob er Daten aus dem Ram oder Cache bekommt. Warum liefert er im Request neben der Adresse aber auch den Index und die Anwahlbytes mit? Die sind ja spezifisch für den Cache und bringen im Ram nichts (Oder etwa doch? dann muss der Ram ja genauso organisiert und "breit" sein wie der Cache, richtig? sonst haut die Anwahl nicht hin).
Dann hab ich noch eine Pro/Kontraliste der 3 Arten, bei der ich auch einiges nicht verstehe.
Ein Nachteil des VA-Caches sei, dass man eine Verdrängungsstrategie bräuchte, wenn der Cache voll ist (was soll ersetzt werden).
Jetzt steht beim DM-Cache: "es ist kein Verdrängungsalgo. notwendig, weil die direkte Zuordnung keine alternativen zulässt." Hää? Der kann doch genauso voll laufen wie der VA auch, oder nicht?
Dann hätte ich noch ne Frage zu DM vs n-Way, aber das reicht hier fürs erste mal :)
Danke!
Wir haben neulich kurz den vollassoziativen Cache, Direct mapped Cache und den n-Way Cache behandelt. Hab da aber noch einige Unklarheiten.
Hier gibts zwar auch ein Technologie und CPU-Board, aber ich denke, ich bin im Programmierboard gut aufgehoben.
Im Anhang seht ihr die 3 entsprechenden Bilder, auf die ich mich beziehe.
Die Caches bestehen ja alle 3 aus Adress- und Datenspeicher, aber es gibt doch ein paar Unterschiede.
Der vollassoziative Cache ist eigentlich klar, denke ich zumindest. Von der CPU kommt ein Request und es wird eine Adresse mitgeliefert, der Adresspeicher wird dann Zeile für Zeile nach der Adresse durchsucht und wenn ein Hit vorliegt, dann gibts die entsprechenden Daten zurück.
In dem Request sind auch noch 2 bit für die Wortanwahl und 2 bit für die Byteanwahl innerhalb des Worts enthalten, soweit sogut.
Beim DM-Cache ist das ähnlich, nur dass dort noch ein Index mitgeliefert wird.. man spart sich hier also die ganzen Adressvergleiche und kann direkt ansteuern. An Byte- und Wortanwahl hat sich nix geändert. Dieser Index ist im Beispiel 4 bit groß, damit lassen sich logischerweise 16 Zeilen ansteuern, wie es im Bild auch zu sehen ist.
Jetzt der n-Way Cache: Hier spricht der Index ja keine Zeilen, sondern Sätze an. 3 bit groß für 8 Sätze, das verstehe ich noch.
ABER: jetzt habe ich ja mehrere Zeilen innerhalb eines Satzes. Wie der Satz angewählt wird ist klar, dafür hab ich den Index. Aber wir kommt man auf die richtige Zeile innerhalb des Satzes? Oder läft das dann wieder so ab wie beim Assoz. Cache, dass man innerhalb des Satzes Zeile für Zeile durchgehen muss?
Was mir desweiteren noch unklar ist: es hieß, der Cache sei für die CPU unsichtbar (daher auch der Name), ihm sei egal ob er Daten aus dem Ram oder Cache bekommt. Warum liefert er im Request neben der Adresse aber auch den Index und die Anwahlbytes mit? Die sind ja spezifisch für den Cache und bringen im Ram nichts (Oder etwa doch? dann muss der Ram ja genauso organisiert und "breit" sein wie der Cache, richtig? sonst haut die Anwahl nicht hin).
Dann hab ich noch eine Pro/Kontraliste der 3 Arten, bei der ich auch einiges nicht verstehe.
Ein Nachteil des VA-Caches sei, dass man eine Verdrängungsstrategie bräuchte, wenn der Cache voll ist (was soll ersetzt werden).
Jetzt steht beim DM-Cache: "es ist kein Verdrängungsalgo. notwendig, weil die direkte Zuordnung keine alternativen zulässt." Hää? Der kann doch genauso voll laufen wie der VA auch, oder nicht?
Dann hätte ich noch ne Frage zu DM vs n-Way, aber das reicht hier fürs erste mal :)
Danke!