AMD FX-8150 - Bulldozer im ausführlichen Test

Prozessoren | HT4U.net | Seite 8

Die Bulldozer-Architektur



Das neue CMT-Konzept


Wie eben schon erwähnt, ermöglicht es AMD mit der Bulldozer Architektur nicht nur einen Thread sondern bis zu zwei Threads in einem Kern/Modul auszuführen. Um die Idee leichter zu verstehen, hilft ein Blick auf die aktuellen Ansätze, um parallelisierte Anwendungen zu beschleunigen.

Eine Möglichkeit ist die schlichte Vervielfältigung aller Hardware-Ressourcen im Prozessor, also die Verwendung eines echten Mehrkern-Prozessors. Eine andere Alternative ist die Verwendung von "Simultaneous Multithreading" (SMT), welches Intel beispielsweise unter dem Namen Hyperthreading vermarktet. Statt alle Ressourcen zu vervielfachen, werden nur bestimmte Puffer und Register mehrfach angelegt. Die restlichen Komponenten werden von mehreren Threads (bei Intel sind dies 2) gleichzeitig genutzt.

Gegenüber einem echten Mehrkern-Prozessor hat SMT den Vorteil, dass man weniger Transistoren verbauen muss, um die gleiche Anzahl an Threads verarbeiten zu können, d. h. es sinken die Herstellungskosten. Ein Nachteil ist jedoch, dass bei SMT/Hyperthreading sich mehrere Threads die Mehrheit der Ressourcen teilen müssen, so dass die Performance bei starker Auslastung geringer ausfällt als die eines echten Mehrkern-Prozessors.

AMD versucht mit Bulldozer nun den goldenen Mittelweg zwischen SMT/Hyperthreading (also geteilten Ressourcen für mehrere Threads) und einem echten Mehrkern-Prozessor (die Threads müssen sich keine Ressourcen teilen) zu wählen, nämlich "Core Multithreading" oder kurz CMT. Dabei werden deutlich weniger Ressourcen geteilt als bei SMT/Hyperthreading, so dass die Performance in der Theorie bei stark parallelisierten Anwendung besser sein sollte. Gleichzeitig teilen sich Threads (bei Bulldozer sind dies 2) jedoch einige Ressourcen, um Transistoren und damit Die-Fläche und Fertigungskosten zu sparen. Die Auswahl, welche Ressourcen dabei geteilt und welche vervielfältigt werden, hat AMD dabei anhand von Leistungsparametern (etwa Latenzen) und der Komplexität der Einheiten getroffen.

Bild: AMD FX-8150 – Bulldozer im ausführlichen Test
Aufbau eines CMT-Komplexes (Modul genannt) der Bulldozer-Architektur


Konkret bedeutet dies für die Bulldozer-Architektur nun, dass ein CMT-Komplex (die kleinste Einheit, die mind. zwei Threads bearbeiten kann – von uns als Modul bezeichnet) zwei Threads gleichzeitig abarbeiten kann. Die Ressourcen die sich die Threads teilen müssen, sind lediglich die Befehlshol-Einheit (Fetch) und die Dekodier-Stufe (Decode), in welcher die x86-Befehle in Maschinenbefehle übersetzt werden. Anschließend kann jeder Thread auf seine eigenen Ressourcen zugreifen. Dafür hat AMD einem solchen CMT-Komplex zwei Integer-Cluster mit eigenem Scheduler und Ausführungseinheiten, sowie eigenem L1-Daten-Cache spendiert. Jeder Thread kann daher seinen eigenen Integer-Cluster nutzen ohne den anderen zu stören.

Weiterhin gibt es einen Floating-Point-Cluster für Gleitkomma-Befehle. Dieser kann wahlweise zwischen den zwei Threads geteilt oder von einem Thread allein genutzt werden.

Wie bei Intels Hyperthreading-Technologie erscheint somit ein Bulldozer-Modul, das inkl. dem L2-Cache gerade einmal 213 Millionen Transistoren beinhaltet gegenüber dem Betriebssystem als ein Zweikern-Prozessor und kann mit zwei Threads versorgt werden. Diese können im Idealfall dann vollkommen parallel innerhalb des Moduls abgearbeitet werden und reservieren sich ihre Ressourcen dynamisch. Ist hingegen nur ein Thread aktiv, hat dieser Zugriff auf alle Ressourcen.

AnsatzChip-MultiprozessorCore-MultithreadingHyperthreading
BeispielDual-CoreBulldozer-ModulSandy-Bridge-Kern
Hardware-Overhead (gemessen an einem echten Kern)2xetwa 1,20x< 1,05x
Performance-Vorteil (gegenüber einem echten Kern)bis zu 2xbis zu 1,8xbis zu 1,25x
Performance-Vorteil vs. Hardware-Overheadmax. 1max. 1,5max. 1,2


Gegenüber einem klassischen Kern kostet das modulare Konzept samt zweitem Integer-Cluster rund 20 Prozent an Fläche (gemessen an einem Modul), dennoch soll die Leistung laut AMD im Mittel bei 80 Prozent der Leistung eines echten Zweikern-Prozessors liegen. Intels Hyperthreading Technologie kostet zwar "nur" 5 Prozent Fläche (beim Pentium 4, beim Core i7 dürfte es weniger sein), liefert jedoch auch weniger Leistungsschub (bei Sandy Bridge je nach Kernanzahl zwischen 20 und 30 Prozent). Noch leistungsfähiger wäre natürlich ein echter Dual-Core doch dieser würde natürlich 100 Prozent mehr Fläche benötigen. Auf dem Papier scheint AMDs CMT somit eine sehr interessante Alternative zu sein.

Unglücklicherweise bezeichnet AMD in diesem Konzept einen Integer-Cluster als Kern, was im eigentlichen Sinne nicht richtig ist. Aus Marketing-Sicht hat dies jedoch Vorteile, denn ein 8-Kern-Prozessor verkauft sich nun einmal besser als ein 4-Modul-Prozessor, so denkt zumindest AMD. Aus unserer Sicht ist die Namensgebung dabei jedoch sehr verwirrend. Um Missverständnissen vorzubeugen, werden wir daher die folgenden Bezeichnungen verwenden:
  • Modul: Als Modul bezeichnen wir einen CMT-Komplex, wie er im Bild zu sehen ist
  • Integer-Cluster: Damit ist das Segment zur Ausführung der Integer-Befehle gemeint (AMD nennt dies "Kern")
  • Floating-Point-Cluster: Gleitkomma-Einheiten samt zugehörigem Scheduler



 

Inhalt dieses Testberichtes