AMD Piledriver vs. Steamroller vs. Excavator — Leistungsvergleich der Architekturen
2nd Generation: Piledriver
(Auszug/Zusammenfassung aus dem Artikel vom 01.05.2012)
Bei der APU Trinity wurde erstmals die 2. Generation der Bulldozer-Architektur namens Piledriver eingesetzt. Viele Einzelheiten, wie z.B. der größere TLB, die größeren Scheduler-Windows, Befehlssatzerweiterungen wie FMA3 und F16C, zusätzliche Write Buffer für den L2, die IDIV-Einheit oder die Aufhebung des Strafzolls für 256-Bit-AVX-Befehle waren schon vorher durch den AMD Optimization Guide oder durch eigene Recherche bekannt, die durch den aktuellen Foliensatz bestätigt wurden. Das Front-End, in dem die Daten in ein Bulldozer-Modul eingelesen werden, sieht man in folgendem Bild:
Einige Schwachstellen, die z.B. durch den Informatikprofessor Agner Fog angemahnt wurden, waren damit behoben oder zumindest abgemildert. (Eine Zusammenfassung der Schwachstellen gab es in unserer alten Meldung: Bulldozer-Architektur unter der Lupe: Schwachstellen identifiziert).
Eine der Schwachstellen war das sogenannte Instruction Window gewesen. Das ist ein Paket von x86-Befehlen, das von der “Fetch-Unit” geschnürt wird und darauf wartet, durch den Dekoder in interne µOps dekodiert zu werden. Wie auch beim K10 werden beim Bulldozer 32 Byte pro Takt aus dem L1-Instruction-Cache eingelesen, aber bei Bulldozer teilen sich die 32 Byte dann eben auf zwei Threads und damit auch auf zwei Instruction Windows à 16 Byte auf. 16 Byte sind für AMD deshalb ein Rückschritt. Aktuelle Intel-CPUs holen sich pro Takt zwar auch nicht mehr, allerdings wird Intels Dekoder durch den Loop Stream Detector (seit der Penryn-Generation, verbessert im Nehalem) und den großen µOp-Puffer (seit Sandy Bridge) stark entlastet. Mit solchen Finessen kann auch Piledriver nicht aufwarten, aber immerhin wird der Flaschenhals etwas geweitet. Zu guter Letzt darf man nicht vergessen, dass es weiterhin nur einen Dekoder je Modul gibt. Das Maximum bleibt also bei zwei x86-Instruktionen pro Takt und pro Thread, aber mit einem größerem Instruction Window stellt man sicher, dass dieses Maximum öfter erreicht werden kann.
Zusätzlich gab es im Front-End noch Feintuning an der Sprungvorhersage-Logik, diese kann mehr Einträge umfassen, was man auch im Die-Foto erkennen kann.