AMDs Comeback - Ryzen 7 1800X im Test

Prozessoren | HT4U.net | Seite 10

SMT kommt, CMT geht


Wie wir bisher also gesehen haben, hat AMD vieles unternommen, um eine hohe Befehlsparallelität bei gleichzeitig geringen Kosten zu erreichen. Gleichwohl wird es in der Praxis häufig vorkommen, dass eine einzelne Anwendung gar nicht alle Einheiten (Fetch, Decode, ALUs, FPUs etc.) vernünftig auslasten kann. Um diese "brachliegenden" Ressourcen sinnvoll zu nutzen, setzt AMD bei der Zen-Architektur auf "Simultaneous Multithreading" (SMT). Damit schließt man sich Intel (Hyper-Threading der Core-Prozessoren), IBM (seit Power-6) und vielen anderen an.

SMT gaukelt dem Betriebssystem vor, dass ein "physikalischer" Kern tatsächlich aus mehreren "logischen" Kernen besteht (bei AMD sind es zwei logische Kerne). Als Resultat können dann mehrere Anwendungen oder Anwendungsstränge (Threads) zeitgleich auf dem einen Kern abgearbeitet werden. Damit steigt die Auslastung und in aller Regel auch die Effizienz.

Bild: AMDs Comeback – Ryzen 7 1800X im Test
Bild: AMDs Comeback – Ryzen 7 1800X im Test


Neben der Effizienzsteigerung der Ausführungseinheiten hat SMT noch einen weiteren positiven Effekt. So kann dadurch eine gut parallelisierte Anwendung durchaus beschleunigt werden. Auch im Falle von vielen gleichzeitig ausgeführten Programmen profitiert der Anwender von der gesteigerten Performance. Dies rührt daher, dass die verschiedenen Aufgaben nun parallel, statt sequenziell bearbeitet werden können.

Bild: AMDs Comeback – Ryzen 7 1800X im Test
Im Vergleich zu einem echten Mehrkern-Ansatz müssen für SMT lediglich ein paar Register doppelt angelegt sein und benötigen damit extra Fläche. Intel kalkulierte einst beim Pentium IV mit rund fünf Prozent zusätzlicher Fläche. Andere Ressourcen werden hingegen nach Bedarf zwischen den beiden Threads aufgeteilt. Bei den meisten Einheiten setzt AMD auf ein First-come-first-serve-Prinzip, so dass schlicht Ressourcen nach Bedarf verteilt werden. Ähnlich sieht es bei den TLBs und dem Ladepuffer aus, die jedoch extra Tags für die unterschiedlichen Threads besitzen, um die Einträge entsprechend zu kategorisieren. Mit einer algorithmischen Priorität arbeiten die Sprungvorhersage und die Registerumbenennungseinheiten. Auf diese Weise möchte AMD bei diesen "kritischeren" Teilen des Kerns dafür sorgen, dass diese für die wichtigen Aufgaben zur Verfügung stehen. Schlussendlich gibt es dann außerdem noch eine statische Aufteilung der Ressourcen, etwa bei den eingangs erwähnten Registern, aber auch die Retire-Stufe und der Dispatch-Puffer sind statisch aufgeteilt.

Der Einsatz von SMT bedeutet jedoch auch, dass AMD sich vom mit Bulldozer eingeführten CMT-Konzept (Core-Multithreading) verabschiedet. Offenbar war der CMT-Ansatz doch nicht so performant, wie man es sich erhofft hatte. Oder anders ausgedrückt: Bei der sehr heterogenen Software-Landschaft konnte CMT seine Vorteile viel zu selten ausspielen, um die gegenüber SMT deutlich höheren Kosten auszugleichen. Interessant wird es dabei zu sehen, wie effizient AMDs SMT-Umsetzung in der Praxis ist, gerade im Vergleich zu Intels Ansatz und dem alten CMT.