AMDs Comeback - Ryzen 7 1800X im Test

Prozessoren | HT4U.net | Seite 8

Die Ausführungseinheiten


Wie üblich bei AMD gibt es zwei Cluster an Ausführungseinheiten, jenen für die Ganzzahl- (Integer) sowie Lade-/Speicher-Operationen und jenen für Gleitkomma-Berechnungen.

Bild: AMDs Comeback – Ryzen 7 1800X im Test
Der Cluster für Integer-Operationen umfasst bei der ersten Generation von Zen vier arithmetisch-logische Einheiten (ALUs), die Berechnungen der Art a+b oder a&b durchführen. Darüber hinaus gibt es noch zwei Adress-Generierungs-Einheiten (AGUs), die von Lade-/Speicherbefehlen verwendet werden. Dabei können zwei Lade- und eine Speicher-Operation parallel auf den L1-Daten-Cache zugreifen, um 128 Bit Daten anzufordern oder abzuspeichern. Damit kommt ein Zen-Kern auf die gleiche Anzahl an ALUs wie ein Bulldozer-Kern oder Intels Skylake-/Kaby-Lake-Kerne, und auch bei den AGUs liegt man nahezu gleichauf mit Intels letzter Prozessorgeneration, muss jedoch gegenüber Bulldozer mit vier AGUs weniger auskommen. Letzteres sollte in der Praxis aber kein großes Problem darstellen, denn die wichtige Kennzahl der parallelen Cache-Zugriffe (2 x lesen, 1 x schreiben) ist gleichgeblieben.

Bild: AMDs Comeback – Ryzen 7 1800X im Test
Das Register im Integer-Cluster fasst bei Zen insgesamt 168 Register und liegt auf Haswell-Niveau. Zum Vergleich, Bulldozer kam nur auf 160, während es bei Intels Skylake schon 180 Einträge sind. Mit 44 in Ausführung befindlichen Speicher-Operationen liegt Zen zwischen Haswell (42) und Skylake (56), während man sich mit 72 Lade-Operationen exakt auf Augenhöhe mit Skylake befindet.

Etwas anders sieht es bei den Gleitkomma-Einheiten aus, denn hier kommt es ganz empfindlich auf den ausgeführten Code an. So bietet Zen zwei Additions- und zwei Multiplikations-Einheiten für Gleitkomma-Operationen, die jeweils aber nur 128 Bit breite Daten verarbeiten können. Bei modernem AVX2-Code mit 256 Bit breiten Operanden müssen entsprechend die Einheiten zusammengeschaltet werden, bei Fused-Multiply-Add-Operationen, FMA, (a = x*y + z mit nur einer Ergebnisrundung am Ende der Berechnung) bleibt dann sogar im schlechtesten Fall nur noch eine einzige Einheit übrig. FMA-Operationen werden zwar innerhalb der Multipikations-Einheiten ausgeführt, benötigen jedoch einen Input-Port der angrenzenden Additions-Einheit, womit diese nur bedingt nutzbar ist.

Im besten Fall können bei Zen also vier Operationen parallel ausgeführt werden (2 x 128-Bit-Addition, 2 x 128-Bit-Multiplikation), im schlechtesten Fall jedoch nur eine (1 x 256-Bit-FMA). Intel wählt bei seinen Prozessoren einen anderen Weg, und so kann Skylake/Kaby Lake immer zwei 256 Bit breite Operationen verarbeiten, egal, ob FMA, Addition oder Multiplikation. Verringert sich die Datenbreite auf 128 Bit oder weniger, ändert sich dies jedoch nicht. Bei älterem Code (in der Desktop-Welt) sollte Zen also auf Augenhöhe oder gar darüber agieren können, bei sehr modernem, hoch optimiertem AVX2-Code (in der Server-Welt) sollte hingegen Intels letzte Prozessorgeneration Vorteile besitzen.

Bild: AMDs Comeback – Ryzen 7 1800X im Test


Um den Umstand des schwankenden Durchsatzes der Gleitkomma-Einheit vom Pipeline-Frontend (also der Fetch-, Decode- und Dispatch-Einheit) zu entkoppeln, verwendet AMD bei Zen einen zweistufigen Scheduler für die Gleitkomma-Operationen. Diese landen zunächst in einer Non-Schedule-Queue (NSQ), bevor sie tatsächlich zum Scheduler gelangen, der sie dann an die entsprechenden Einheiten weiterreicht. Damit will es AMD vermeiden, dass bei einer voll ausgelasteten Gleitkomma-Einheit der Dispatcher oder Decoder gestoppt werden muss, da dieser in der Regel die Integer-Einheit noch weiter versorgen kann. Nun kommt es erst zu dieser Situation, wenn auch die NSQ voll ist. Der Integer-Cluster benötigt solch eine NSQ im Übrigen nicht, da dort die Ausführungszeiten für jeden Befehl aufgrund der einfacheren Datenstrukturen (Ganzzahl vs. Gleitkomma) deutlich kürzer sind (im Schnitt nur etwas über einem Taktzyklus).

Des Weiteren kann die Gleitkomma-Einheit von Zen Verschlüsselungsbefehle à la AES verarbeiten und bietet damit wie bereits Bulldozer eine Hardware-Beschleunigung für AES.

Das Register-File für die Gleitkomma-Einheit fasst mit 160 Einträgen fast so viele wie Intels Prozessoren seit Haswell (168), und auch mit einem Puffer für insgesamt 192 Operationen, die gleichzeitig in Ausführung sein können, liegt man auf Haswell-Niveau.

Bei allen Leistungseinschätzungen muss man natürlich immer auch den restlichen Kern im Kopf behalten. Keine Leistungskrone wird durch eine theoretisch exzellente AVX2-Leistung oder viele Einheiten gewonnen. Letztendlich muss das Zusammenspiel aller Einheiten passen. Ob dies gelingt, beantworten unsere Benchmark-Seiten.