Wie wichtig ist L3-Cache? Athlon II gegen Phenom II

Inhaltsverzeichnis

>>

Vielkern-Prozessoren mit einem dedizierten Zwischenspeicher auszustatten, der von allen verfügbaren Kernen gemeinsam genutzt wird, macht durchaus Sinn. Ein schneller Speicher wie der Third-Level Cache moderner Prozessoren ist daher Praxis, um den Zugriff auf häufig benötigte Daten zu beschleunigen: Kerne sollten, wenn möglich, nicht auf den langsameren Hauptspeicher (RAM) zurückgreifen müssen – soweit die Theorie. Die Einführung des AMD Athlon II X4, einem einfachen Phenom II X4 ohne L3-Cache, deutet darauf hin, dass der L3-Cache vielleicht nicht immer unbedingt notwendig ist. Wir haben uns für einen Vergleich zweier AMD-Prozessoren mit und ohne L3-Cache Cache entschieden.

Cache – So funktionierts

Das Prinzip von Cache ist einfach: Er dient zur Zwischenspeicherung von Daten, um zu verhindern, dass der Prozessor auf die nächst langsamere Ebene des Speichersystems, den Hauptspeicher, zurückgreifen muss. Die aktuelle Desktop-Cache-Hierarchie besteht aus drei Cache-Ebenen, bevor letztlich der Zugriff auf den Hauptspeicher ausgelöst wird. Die zweite und besonders die dritte Ebene sind nicht nur für das Zwischenspeichern von Daten zuständig, sondern dienen auch dazu, die Verwendung des Busses zwecks Datenaustausch zwischen mehreren Prozessor-Kernen zu minimieren. Bevor wir uns an die Einzelheiten machen hier ein paar Grundlagen.

Cache: Hits und Misses

Die Effektivität einer Cache-Architektur wird anhand der Trefferquote (hit rate) bemessen: Treffer sind Anfragen, die mit Hilfe von zwischengespeicherten Daten beantwortet werden. Alle anderen Anforderungen, die eine Aktivität auf nächster Ebene oder dem Hauptspeicher verursachen, werden als Cache Misses bezeichnet. Diese sind langsam, da sie den Prozessor oft zu Wartezeiten zwingen. Im Gegensatz dazu helfen Treffer dabei, die maximale Performance aufrechtzuerhalten. Die Ausführung von Befehlen unabhängig von deren Eingangsreihenfolge, so genannten Out-of-Order-Ausführung, identifiziert voneinander unabhängige Anweisungen, um die Befehlsabarbeitung von der Abhängigkeit noch anzuliefernder Daten abzukoppeln.

Cache: Schreiben, Exklusivität, Kohärenz

So genannte replacement policies bestimmen, wie Raum für neue Cache-Einträge geschaffen wird. Da Daten, die in den Cache geschrieben werden, letztlich auch im Hauptspeicher verfügbar sein müssen, kann das System dies direkt vornehmen (write-through) oder überschriebene Speicherorte als “dirty” kennzeichnen  und den Schreibvorgang erst dann ausführen, sobald die Daten aus dem Cache gelöscht wurden (write-back).

Daten aus diversen Cache-Ebenen lassen sich exklusiv speichern, so dass keine Datenredundanz existiert. Oder aber ein Cache kann in inklusiver Weise betrieben werden, in der sich auf einer folgenden, niedrigeren Cache-Ebene stets eine Kopie der Daten befindet. Der Phenom von AMD arbeitet mit einem exklusiven L3-Cache, während Intel der inklusiven Cache-Startegie gefolgt ist. Kohärenz-Protokolle kümmern sich um das Management gültiger Daten über mehrere Ebenen, Strategien, Kerne und sogar Prozessoren (Nodes bzw. Knoten) hinweg.

Cache: Kapazität

Größere Caches bieten mehr Platz für Daten, sorgen allerdings auch für höhere Latenzen. Da Cache auch große Mengen an Prozessor-Transistoren in Anspruch nimmt, ist es wichtig, ein funktionierendes Gleichgewicht zwischen Transistorkosten und Die-Größe sowie Leistungsaufnahme und Performance/Latenz-Problemen zu finden.

Cache: Assoziativität

RAM-Einträge können entweder direkt gemappt werden: in einem Cache-Speicher kann es also nur eine Adresse für die Datenzwischenspeicherung geben, oder sie sind n-fach assoziativ. Das bedeutet n mögliche Positionen auf dem Cache für das Speichern von Daten. Eine höhere Assoziativität garantiert eine höhere Trefferquote, führt allerdings auch zu längeren Latenzen, da es mehr Zeit in Anspruch nimmt, um n Assoziationen mit möglichen Treffern zu vergleichen. Deshalb macht es Sinn, eine vielfache Assoziativität für die letzte Cache-Ebene zu verwenden, da hier die Cache-Kapazität am größten ist und die nächste Ebene ohnehin ein langsamer Speicherzugriff wäre.

Hier ein paar Beispiele: Die Core i5 und i7 Prozessoren arbeiten mit einem 32 KB 8-fach assoziativem L1-Daten- und 32 KB 4-fach assoziativem L1-Befehls-Cache. Intel will Befehle schneller verfügbar machen, während das Unternehmen gleichzeitig die Cache-Treffer auf dem L1-Daten-Cache maximiert. Der L2-Cache ist wieder 8-fach assoziativ, während der L3-Cache von Intel noch “klüger” ist und eine 16-fach assoziativ arbeitet, um die Anzahl der Cache-Treffer zu maximieren. AMD verfolgt auf dem Phenom II X4 mit einem 2-fach assoziativem L1-Cache eine andere Strategie mit niedrigsten Latenzen. Um mögliche Fehler zu kompensieren ist die Kapazität doppelt so groß: 64 KB für Daten und 64 KB für Befehle. Wie auf dem Prozessor von Intel ist der L2-Cache 8-fach assoziativ, allerdings funktioniert der L3-Cache von AMD dann 48-fach assoziativ. Ohne zuvor einen Blick auf die CPU-Architektur geworfen zu haben sollte man allerdings keine voreiligen Schlüsse ziehen, immerhin zählen lediglich die Ergebnisse. Dieser Cache-Exkurs dazu, Ihnen einen Blick auf die Komplexität hinter dem Multi-Level-Caching zu bieten.

Seiten:

Tags: , ,

Ebenfalls interessant...

Schreibe einen Kommentar

Privacy Policy Settings

Google Analytics Wir sammeln anonymisierte Daten darüber, welche Beiträge und News gelesen werden. Wir ermitteln dabei auch die Zeit - ebenfalls anonymisiert - wie lange ein Beitrag gelesen wurde. Dadurch können wir einfacher Themen anbieten, die Sie interessieren.
This website stores some user agent data. These data are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to opt-out of any future tracking, a cookie will be set up in your browser to remember this choice for one year. I Agree, Deny
598 Verbiete Google Analytics, mich zu verfolgen