2016-06-22 21 views
7

In Intel's optimization guide, Abschnitt 2.1.3, sie führen eine Reihe von Verbesserungen an den Cache-Speicher und Speicher-Subsystem in Skylake (Hervorhebung von mir):Skylake L2-Cache verbessert durch Reduzierung der Assoziativität?

Der Cache-Hierarchie des Skylake Mikroarchitektur hat die folgenden Verbesserungen:

  • Höhere Cache-Bandbreite im Vergleich zu früheren Generationen.
  • Gleichzeitige Behandlung von mehr Ladungen und Speichern durch vergrößerte Puffer.
  • Der Prozessor kann zwei Seiten parallel laufen, verglichen mit einem in der Haswell Mikroarchitektur und früheren Generationen.
  • Reduzierung der Seitenaufteilungsbelastung von 100 Zyklen in der vorherigen Generation auf 5 Zyklen.
  • L3 Schreibbandbreite von 4 Zyklen pe r Zeile in der vorherigen Generation auf 2 pro Zeile erhöht.
  • Unterstützung für die Anweisung CLFLUSHOPT zum Löschen von Zeilen und Verwalten der Speicherreihenfolge von bereinigten Daten mit SFENCE.
  • Reduzierte Leistungseinbußen für einen Software-Prefetch, der einen NULL-Zeiger angibt.
  • L2 Assoziativität geändert von 8 Möglichkeiten zu 4 Möglichkeiten.

Die endgültige mein Auge gefangen. In welcher Weise ist eine Reduzierung der Anzahl der Möglichkeiten eine Verbesserung? An sich scheint es, dass weniger Wege strikt schlechter sind als mehr Wege. Natürlich kann es sein, dass es aus gutem Grund technische Gründe dafür gibt, warum eine Verringerung der Anzahl von Möglichkeiten ein Kompromiss sein könnte, der andere Verbesserungen ermöglicht, aber hier ist es für sich allein eine Erweiterung.

Was fehlt mir?

Antwort

7

Es ist streng schlechter für die Leistung des L2-Cache.

Gemäß this AnandTech writeup of SKL-SP (aka skylake-avx512 or SKL-X) hat Intel erklärt, dass "der Hauptgrund [für die Verringerung der Assoziativität] darin bestand, das Design modularer zu gestalten". Skylake-AVX512 hat 1MiB L2-Cache mit 16-Wege-Assoziativität.

Vermutlich ist der Rückgang auf 4-Wege-Assoziativität zu schlecht in den Dual- und Quad-Core-Laptop-und Desktop-Teile (SKL-S) nicht verletzt, da eine Menge Bandbreite L3-Cache gibt. Ich denke, wenn die Simulationen und Tests von Intel festgestellt hätten, dass es sehr wehtun würde, hätten sie die zusätzliche Designzeit in Anspruch genommen, um den 8-Wege 256k Cache auf Nicht-AVX512 Skylake zu halten.


Die Oberseite der niedrigeren Assoziativität ist Machtbudget. Es könnte indirekt die Leistung verbessern, indem mehr Turbo-Headroom erlaubt wird, aber meistens haben sie es getan, um die Effizienz zu verbessern, NICHT um die Geschwindigkeit zu verbessern. Wenn Sie etwas Platz im Leistungsbudget frei haben, können Sie es anderweitig ausgeben. Oder nicht alles ausgeben und nur weniger Energie verbrauchen.

Mobile und viel-Core-Server-CPUs kümmern sich viel um Power-Budget, viel mehr als High-End-Quad-Core-Desktop-CPUs.

Die Überschrift auf der Liste sollte genauer "Änderungen", nicht "Verbesserungen" lesen, aber ich bin mir sicher, dass die Marketingabteilung sie nichts schreiben lassen würde, das nicht positiv klang. : P Zumindest Intel dokumentiert Dinge genau und detailliert, einschließlich der Art und Weise, wie neue CPUs schlechter als ältere Designs sind.


Anandtech's SKL writeup legt nahe, dass die Assoziativität Fallenlassen das Leistungsbudget freigegeben L2-Bandbreite zu erhöhen, was (in dem großen Bild) für die erhöhte Fehltrefferrate ausgleicht.

IIRC, Intel hat eine Richtlinie, dass jede vorgeschlagene Designänderung muss ein 2: 1-Verhältnis von Perf Verstärkung zu Energiekosten oder etwas ähnliches haben. Wenn sie also 1% Leistung verlieren, aber mit dieser L2-Änderung 3% Energie sparen, tun sie es. Die 2: 1-Nummer könnte korrekt sein, wenn ich mich richtig erinnere, aber das 1% und 3% Beispiel sind völlig erfunden.

Es gab einige Diskussionen über diese Änderung in einem der Podcast-Interviews, die David Kanter gemacht hatte, nachdem Details bei IDF veröffentlicht worden waren. IDK if this is the right link.

+1

Hier ist [eine weitere interessante Theorie] (http://www.agner.org/optimize/blog/read.php?i=415#867): dass der Skylake-S (dh original Skylake) mehrere architektonische Veränderungen hatte in Erwartung der AVX-512 Unterstützung in den späteren Skylake-X und Skylake Xeon Linien, obwohl Skylake-S dies nicht unterstützte. Insbesondere: _ [SKL reduziert die Assoziativität auf 4] war Vorbereitung auf die Erhöhung der Cache-Größe - SKL-S-Cache ist nur ein Viertel der SKL-X-Cache mit der gleichen Organisation und reduzierte Assoziativität erlaubt Transistor Budget von massiven 1MB Cache zu reduzieren. . Nur Spekulation, aber trotzdem interessant! – BeeOnRope

+1

@BeeOnRope: Ja, ich hatte den gleichen Gedanken nach dem Lesen [AnandTechs SKL-X Writeup] (http://www.anandtech.com/show/11550/the-intel-skylakex-review-core-i9-7900x-i7 -7820x-and-i7-7800x-tested/4), wo sie den gleichen Anspruch erheben: Reduzierte L2-Assoziativität war zumindest teilweise, um es modularer zu machen. Die Annahme, dass SKL-S durch die Verwendung des Strombudgets an anderer Stelle insgesamt schneller wird, ist möglicherweise nicht korrekt. (Es schließt es jedoch nicht aus. Es kann immer noch eine insgesamt gute oder neutrale Änderung für SKL-S sein. Und Intel hätte es nicht getan, wenn sie es für zu schlecht halten.) –