Zer0Strat schrieb:
L3 ist ein Victim Cache. Der Prefetcher haut die Daten erstmal in den L2, von da aus "fällt das runter" zum L3. @DevPandi bitte ergänzen.
Hui, das letze mal Cache-Design hatte ich vor 10 Jahren, haha.
Nein, im Endeffekt hast du das wichtigste schon gesagt. Wenn man das Thema - hab gerade nicht so viel Zeit - vereinfacht angehen will: Die Daten die direkt benötigt werden liegen in den Register, sind sie nicht da, wird „eigentlich“ im RAM gesucht und von dort geladen.
Der Prefetcher - die Instruktionen im L1i als auch im µOPS-Cache, Branchpredection und Co - schaut, welche Daten als nächstes benötigt werden, er schaut dann erst mal im L1, findet er die Daten da, alles gut, findet er sie da nicht, geht es in L2, sind sie da auch nicht, geht es in den L3 und sind sie da nicht, geht es in den RAM ggf. in den anderen CCX, sollten sie da liegen.
Der L3 ist dabei, wie du sagst, ein Victim-Cache in der Regel, das heißt, er wird nicht bewusst mit Daten befüllt, sondern er bekommt die Daten eher on-the-fly mit und zwar beim Schreiben. Kommt in der CPU ein Store-Befehl, der bestimmte Daten im Arbeitsspeicher speichern soll, landen diese zuerst im L1d und L2-Cache (der L1 ist im L2 abgebildet.) und wird dann auf dem Weg zum RAM auch im L3 gleich mit abgespeichert - in der Regel mit einer entsprechenden Flag.
Daten aus dem Arbeitsspeicher werden dabei - je nachdem wie dringend die Daten sind - in den L2 geladen und von dort aus dann in den L1 und dann in die Register. Daten aus dem L3 gehen auch in den L2 und dann L1 und Register.
Daten im L3-Cache sind also in der Regel die Daten, die die CPU eigentlich selbst in den RAM geschrieben hat und dort in der Regel als "Log" vorliegen. Deswegen profitieren Anwendungen die viele Daten schreiben und lesen in der Regel eher von großen L3-Caches, als Anwendungen die primär Daten lesen, weil die Daten, die aus der CPU heraus müssen, aber später auch wieder hinein, eben im L3-Cache liegen und damit schneller geladen sind.
Das ist jetzt stark vereinfacht und simplifiziert. Ich müsste mir erst mal das Whitepaper von Zen 3 und später Zen 4 ansehen, um das genau zu erklären.