Microsoft Xbox 360 im Test: Auf dem Weg zur Marktführerschaft?

 6/28
Frank Hüber
145 Kommentare

Prozessor

Mit der Xbox 360 möchte Microsoft alles richtig machen, dieses Eindrucks kann man sich auch beim Prozessor der Spielekonsole nicht verwehren. Während die klassische Xbox zum Deutschland-Start am 14. März 2002 noch mit einem Intel Pentium III mit 733 MHz, auf 128 kByte halbiertem L2-Cache daher kam und man im PC wesentlich leistungsfähigere Prozessoren wie den Pentium 4 2 GHz (Northwood, 0,13 µm) oder Athlon XP 2000+ (Palomino, 0,18 µm) sein Eigen nennen konnte, rechnet in der Xbox 360 ein speziell für diese Zwecke von IBM entwickelter Prozessor.

Die Eigenentwicklung basiert auf der bekannten PowerPC-Architektur (RISC), die mit IBM einen ihrer stärksten Befürworter gefunden hat. Mit der Entscheidung, den Auftrag für die Fertigung und Entwicklung des Prozessors in die fähigen Hände von „Big Blue“ zu geben, hat man sich bei Microsoft auch gegen eine grundsätzliche Abwärtskompatibilität zur ersten Xbox entschieden. PowerPC und die x86-Architektur des Pentium III (CISC) setzen auf verschiedene Befehlssätze und sind damit binär nicht miteinander kompatibel. Mit Hilfe eines eigens hierfür entwickelten Xbox-Emulators kann dennoch ein Teil der Xbox-Spiele auf der Xbox 360 genossen werden, wie wir im Abschnitt „Abwärtskompatibilität“ im weiteren Verlauf des Artikels sehen werden.

Xbox 360 Prozessor Die-Shot
Xbox 360 Prozessor Die-Shot

Der von IBM entwickelte Xbox-360-Prozessor wird in 90 nm feinen Halbleiterstrukturen unter Verwendung von Silicon on Insulator (SOI) bei IBM und Chartered Semiconductor gefertigt. Er bietet drei vollwertige 64-Bit-PowerPC-Kerne, die mit 3,2 GHz betrieben werden und mit einem jeweils 32 kByte große Daten- (4fach assoziativ) und Befehlscache (2fach assoziativ) aufwarten können. Die drei Prozessoren teilen sich einen 1 MB großen Level-2-Cache, der 8fach assoziativ ausgelegt ist. Außerdem besitzen sie eine 21-stufige Pipeline, die zwar länger als die des Athlon 64 (17/12 für FPU/ALU) aber wesentlich kürzer als die des aktuellen Pentium 4 „Prescott“ oder Pentium D „Smithfield“ (31) bleibt.

Selbstverständlich hat der Xbox-Prozessor vom PowerPC den Vektorbefehlssatz (AltiVec, VMX) geerbt (vergleichbar mit den SSE-Befehlssätzen der x86-Prozessoren), der in seiner Leistungsfähigkeit stark erweitert wurde. Die Einheit hört auf die Bezeichnung VMX-128 und stellt jedem Thread 128 Register (VMX besitzt nur 32) mit einer Breite von 128 Bit zur Verfügung. Die VMX-128 kennt darüber hinaus viele neue Befehle wie z.B. Direct3D-Pack und -Unpack oder ist in der Lage das Skalarprodukt in einem Takt zu bilden.

Da jeder der drei Kerne darüber hinaus Simultaneous Multithreading (SMT) bietet, also zwei Aufgaben parallel abarbeiten kann, ist die Xbox 360 in der Lage bis zu 6 Threads parallel auszuführen und stellt damit selbst aktuelle Dual-Core-Prozessoren von Intel oder AMD in den Schatten. Der Prozessor bleibt in seinen Abmessungen jedoch vergleichsweise kompakt. So kann dieser Xbox-Chip trotz der drei Prozessorkerne mit „nur“ 165 Millionen Transistoren auf einer Fläche von 168 mm² aufwarten. Das ist im Vergleich zum Pentium D mit seinen zwei Kernen recht wenig:

Technische Daten der CPUs im Vergleich
Xbox 360
(CPU)
Pentium 4
(500-Series)
Pentium 4
(600-Series)
Pentium D
(800-Series)
Entwicklung IBM Intel Intel Intel
Fertigung 90 nm (SOI) 90 nm 90 nm 90 nm
Transistoren 165 Mio. 125 Mio. 169 Mio. 230 Mio.
Fläche 168 mm² 112 mm² 135 mm² 206 mm2
Prozessortakt 3,2 GHz 2,8-3,8 GHz 3,0-3,8 GHz 2,8-3,2 GHz
Kerne (Threads) 3 (6) 1 (2) 1 (2) 2 (2-4)

Die geringe Größe und der dennoch hohe Takt des Xbox-Prozessors können dabei nicht auf den gemeinsam genutzten L2-Cache oder die PowerPC-Architektur zurückgeführt werden. Zwar ist der aktuelle PowerPC 970FX im 90 nm-Prozess mit 58 Mio. Transistoren und 66,2 mm² deutlich kleiner, ist mit einem Takt von 2,2 GHz aber weit von dem entfernt, was in der Xbox 360 arbeitet. Auch der inzwischen im PowerMac G5 verfügbare Dual-Core PowerPC 970MP ist mit einem Maximaltakt von 2,5 GHz weit von Microsofts Konsole entfernt.

Die Ursache hierfür ist in der Pipeline zu suchen, bei der sich IBM vom Cell und dessen Hauptprozessor (PPE) hat inspirieren lassen. So besitzt jeder Xbox-Prozessor im Gegensatz zur sonst üblichen dreifach-superskalaren Out-Of-Order-Pipeline eine „nur“ zweifach-skalare In-Order-Pipeline, die einen wesentlich geringeren Grad an Komplexität aufweist, mit weniger Transistoren auskommt und bedeutend höher getaktet werden kann.

Xbox 360 Prozessor-Blockdiagramm
Xbox 360 Prozessor-Blockdiagramm

Der Vorteil dieser Design-Entscheidung wurde damit bereits genannt. Nachteil ist jedoch eine geringere Performance bei Single-Threaded-Anwendungen. Die Idee der Out-of-Order-Execution ist simpel, die Umsetzung in Hardware jedoch kompliziert. Bei Out-of-Order (OoO) wird eine Abfolge von Instruktionen nicht wie bei In-Order stur hintereinander ausgeführt, sondern es wird durch komplizierte Hardware-Algorithmen versucht, voneinander weitgehend unabhängige Instruktionen auf die verschiedenen Verarbeitungseinheiten des Prozessors zu verteilen und so parallel – unabhängig von der eigenen Instruktionsreihenfolge – zu verarbeiten. Nach der Verarbeitung werden sie am Ende der Pipeline wieder in die richtige Reihenfolge gebracht. Dies trägt zur effektiven Ausnutzung der Hardware-Ressourcen bei und beschleunigt Programmcode, der nicht speziell für den Einsatz auf mehreren Prozessorkernen geschrieben wurde.

Intel hat zum ersten Mal den Pentium Pro mit einer Out-of-Order-Pipeline versehen und setzt diese auch heute noch beim Pentium 4 oder Pentium D ein. Auch bei der Prozessor-Architektur der nächsten Generation, die im zweiten Halbjahr 2006 mit dem kommenden Dual-Core-Prozessoren Merom, Conroe und Woodcreast Einzug halten wird, hält Intel an Out-of-Order fest und wird sogar 4fach skalar. Selbstverständlich wird auch bei allen aktuellen Prozessoren von AMD und selbst IBM hierauf nicht verzichtet.

Sowohl Xbox 360 als auch PlayStation 3 setzen aber auf 2fach-skalare In-Order-Prozessorkerne. Ein Rückschritt? Die Beantwortung dieser Frage fällt schwierig, da sie maßgeblich vom Programmcode abhängt, mit dem die Prozessoren gefüttert werden. Während die Xbox 360 innerhalb eines Threads so nur zwei Instruktionen parallel verarbeiten kann, wenn diese aufeinander folgen, völlig unabhängig voneinander sind und darüber hinaus verschiedene Execution-Units wie Floating-Point- und Integer-Unit belegen (also äußerst selten), ist sie gleichermaßen im Stande bis zu sechs verschiedene Threads (unabhängige Programmteile) gleichzeitig auszuführen. Statt auf Instruction-Level-Parallelism (ILP) zu setzen und damit die Komplexität und Kosten der Chips unnötig in die Höhe zu treiben oder einen Triple-Core-Prozessor zum jetzigen Zeitpunkt gar unmöglich zu machen, setzt IBM auf Thread-Level-Parallelism (TLP). Dies zeigt sich insbesondere beim Cell-Prozessor, der bei der PlayStation 3 zum Einsatz kommen wird und ganz und gar 9 Kerne besitzt (von denen jedoch nur einer für allgemeine Arbeiten genutzt werden kann).

Auch bei Desktop-Prozessoren ist der Trend zum TLP klar zu erkennen, denn schließlich ist es genau das Gebiet, auf das die Dual-Core-Prozessoren von Intel und AMD abzielen. Im Vergleich zur Xbox 360 ist TLP in heutigen Desktop-Prozessoren nicht ganz so stark ausgeprägt (maximal zwei Kerne), dafür wird jedoch auf ILP nicht gänzlich verzichtet und somit einem großen Problem aus dem Weg gegangen: Der Großteil der Anwendungen ist nicht in Threads aufgeteilt und profitiert damit höchstens von ILP, nicht aber von TLP, da es nur einen Haupt-Thread gibt, der den Prozessor belastet.

Die Anwendungen sind auch der Grund dafür, weshalb mit aktuellen Dual-Core-(Desktop-)Prozessoren nur bei theoretischen (synthetischen) Benchmarks oder beim Video-Encoding Leistungssteigerungen von bis zu 100 Prozent erreicht werden. Spiele profitieren fast gar nicht (oder höchstens durch neue Grafikkarten-Treiber). Würde auf die Out-of-Order-Pipeline zu Gunsten eines dritten Prozessorkerns verzichtet werden, müsste man bei einem Desktop-PC gar mit einem Leistungseinbruch rechnen.

Tatsächlich ist der Prozessor der Xbox 360 mit bis zu sechs parallelen Threads äußerst leistungsfähig, kränkelt aktuell jedoch daran, dass die erste Generation an Xbox 360-Spielen (und voraussichtlich auch die zweite) größtenteils Single-Threaded ist. Im Bestfall wurde der Physik-Berechnung ein eigener Thread spendiert, doch das ist zum jetzigen Zeitpunkt eher die Ausnahme. Zwar nutzt Microsoft wohl einen weiteren Thread, um Dolby-Digital 5.1-Audio-Encoding in Echtzeit durchzuführen, dennoch bleibt damit in jedem Fall die Hälfte der Prozessor-Ressourcen ungenutzt. Für zukünftige Spiele bleibt somit noch viel Potential, um nicht nur durch graphischen Realismus aufzufallen.

Der Prozessor der Xbox 360 ist mit einem 21,6 GB/s schnellen Bus an den von ATi entwickelten Grafikchip angebunden, der gleichermaßen als Northbridge fungiert. Um diesen Chip soll es auf der folgenden Seite gehen.

25 Jahre ComputerBase!
Im Podcast erinnern sich Frank, Steffen und Jan daran, wie im Jahr 1999 alles begann.