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.

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.
| Ansatz | Chip-Multiprozessor | Core-Multithreading | Hyperthreading |
| Beispiel | Dual-Core | Bulldozer-Modul | Sandy-Bridge-Kern |
| Hardware-Overhead (gemessen an einem echten Kern) | 2x | etwa 1,20x | < 1,05x |
| Performance-Vorteil (gegenüber einem echten Kern) | bis zu 2x | bis zu 1,8x | bis zu 1,25x |
| Performance-Vorteil vs. Hardware-Overhead | max. 1 | max. 1,5 | max. 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


Grafikkarten: Gigabyte GeForce GTX 670 OC WindForce 3 im Test
Grafikkarten: EVGA GeForce GTX 670 Superclocked im Test
Grafikkarten: Gainward GeForce GTX 670 Phantom im Test
Grafikkarten: ASUS GeForce GTX 670 DirectCU II TOP im Test
Sonstige Reviews: Fast2LAN Carryskid 1.0 im Test
Grafikkarten: NVIDIA GeForce GTX 670 von Palit im Test

Prozessoren:
Grafikkarten:
Grafikkarten:
Grafikkarten: