# PowerPC 970

Der PowerPC 970 oder PPC 970 ist ein 2002 von IBM vorgestellter 64-Bit-RISC-Mikroprozessor der PowerPC-Familie, der von Apple auch als PowerPC G5 bezeichnet wird, da er für Generation 5 der PowerPC-Entwicklung steht. Er wurde aus dem leistungsfähigeren IBM POWER4+ entwickelt, einem Spross der IBM-Power-Familie für Hochgeschwindigkeitsrechner, und ist der zweite PowerPC-Prozessor mit 64 Bit Wortbreite. Der zuvor von IBM und Motorola bereits 1996 vorgestellte PowerPC 620 mit 64 Bit aus der 2. Generation (G2) war jedoch kommerziell nicht erfolgreich.
Aufgrund spekulativer Ausführung ist der PowerPC 970 von den 2017 entdeckten Sicherheitslücken Spectre und Meltdown betroffen. Da Systeme, die diesen Prozessor nutzen, schon lange nicht mehr vom Hersteller unterstützt werden, bleiben diese Sicherheitslücken offen. Ein Patch müsste bei Spectre aus einer Kombination aus Firmware- und Betriebssystem-Fix bestehen (Mikrocode-Update und aktualisierter Kernel), wohingegen bei Meltdown ein Kernel-Update reichen würde, das Page Table Isolation (PTI) implementiert.

## Technik

Dank der AltiVec-kompatiblen Erweiterung VMX ist der PowerPC 970 vollständig Code-kompatibel zu 32-Bit-G4-Prozessoren. Die einzige Ausnahme stellt die laut PowerPC-Spezifikation optionale Little-Endian-Unterstützung dar, die dem PowerPC 970 gegenüber seinen Vorgängern fehlt. Die Kommunikation mit dem System erfolgt über zwei 32 Bit breite Busse. Er ist mit 64 KB L1-Cache für Instruktionen bzw. 32 KB für Daten und 512 bis 1024 KB fehlertolerantem (Fehlerkorrekturverfahren) L2-Cache für Instruktionen und Daten ausgestattet. Es wurden Modelle mit interner Taktfrequenz von 1,0 bis 2,5 GHz gebaut, der PowerPC 970FX wurde von Apple auf 2,7 GHz übertaktet.
Der G5-Prozessor ist multiprozessorfähig und verfügt über zwei Gleitkommaeinheiten mit doppelter Genauigkeit, die die besonders für Number-Crunching (Hochleistungsrechnen mit vielen gleichartigen Zahlen und Rechenoperationen) wichtigen FMAC-Instruktionen (Fused Multiply Add) beherrschen, bei welchen der Prozessor mit nur einem Befehl eine Multiplikation und Addition durchführt. Seine AltiVec-Implementierung entspricht der der ersten G4 (PowerPC 7400/7410), während G4e-Versionen (ab der PowerPC-7450-Generation) über eine verbesserte AltiVec-Implementierung verfügen.
Im Gegensatz zum 1999 von Motorola im Alleingang entworfenen G4 (PowerPC-7400- und -7450-Serien), der aus dem von IBM und Motorola gemeinsam erarbeiteten G3 (PowerPC-750-Serie) entwickelt wurde, hat der G5 einen wesentlich größeren Lookahead-Puffer, mit dem er eintreffende Instruktionen antizipieren und entsprechend reagieren kann (beispielsweise um schon vorab später benötigte Daten aus dem Speicher anzufordern). Dies bedeutet allerdings auch, dass zusammen mit seinem höheren Takt die Pipeline (die Anzahl der Stationen, die ein Befehl im Prozessor durchläuft) deutlich länger ist als die des G4. Der G5 arbeitet Befehle in Fünfergruppen ab, die gemeinsam durch den Chip geschleust werden, da sonst der Verwaltungsaufwand bei insgesamt maximal 215 gleichzeitig in der Verarbeitung befindlichen Instruktionen zu groß wäre. Diese Fünfergruppen, die immer aus vier Rechenbefehlen und einem Sprungbefehl bestehen, versucht der G5 am Anfang der Verarbeitung möglichst optimal zu füllen, ungenutzte Slots bleiben frei. Angepasste Compiler können durch entsprechende Codegenerierung helfen, die Fünfergruppen besser zu füllen.
In Apples G5-Modellen ist der Prozessor über den Elastic Bus genannten, bidirektionalen, in jede Richtung 32 Bit breiten Front Side Bus (FSB) mit dem System Controller verbunden. Der FSB läuft in den Power Macs und Xserve G5 normalerweise mit der Hälfte des jeweiligen Prozessortaktes. Nur beim iMac G5 und dem danach veröffentlichten Single-1,8 GHz Power Mac G5 Late 2004 (welcher intern weitgehend dem iMac G5 Rev. A entspricht und daher von allen anderen Power-Mac-G5-Modellen abweicht) taktet der Elastic Bus mit einem Drittel der CPU-Geschwindigkeit, aber auch andere Multiplikatoren sind laut IBM möglich.
Als Chipsatz verwendete Apple den gemeinsam mit IBM entwickelten Chip CPC925 (von Apple U3 und U3H genannt), der die Verbindung mit PCI- und AGP-Erweiterungskarten bewerkstelligt und mit dessen Speichercontroller sich DDR-400-Speicher, optional auch mit ECC, anbinden lässt. In den letzten Power-Mac-G5-Modellen mit Dual-Core-Prozessor PowerPC 970MP wird wie in den letzten iMac G5-Modellen der neuere von IBM alleine entwickelte Chipsatz CPC945 (von Apple U4 genannt) verwendet, wodurch diese Modelle nicht nur PCI-Express bei Macs einführten, sondern auch den verwendeten Speicher auf DDR2-533 (wieder optional auch mit ECC) beschleunigte. Auch wurde damit die Speicherlatenz verbessert, was neben der Integerleistung der Hauptkritikpunkt der ersten G5-Generation war.
Der letzte 2006 vorgestellte Chipsatz CPC965 bietet vor allem Stromverbrauch-Optimierungen.

## Verwendung

IBM setzte den PowerPC 970 in den eigenen JS20- (970/970FX) und JS21- (970MP/970FX) Blades ein, die einige TOP500-Cluster wie der MareNostrum in Spanien nutzten. Auch das bis 2007 erhältliche IBM System p5 185 Express verwendete PowerPC-970-Prozessoren. Andere Hersteller boten ebenfalls G5-Blades an, auch der PPC-Hersteller Genesi bot ab 2006 eine Open Server Workstation auf Basis des Dual-Core-G5 PowerPC 970MP an.
Da der PowerPC 970 noch der AIM-Allianz (Apple, IBM, Motorola) entstammt, war Apple auch der Hauptabnehmer und setzte den „G5“, was gleichzeitig der umgangssprachliche Name für den damit betriebenen Macs selbst ist, im Power Mac G5 und in den zur selben Zeit verkauften iMacs ein. Um die Geräuschentwicklung des Power Mac G5 auf niedrigem Niveau zu halten, hat Apple bei dem damaligen Topmodell mit 2 × 2,5-GHz-CPUs (sowie bei den beiden nachfolgenden Revisionen mit 2 × 2,7 GHz-CPU bzw. 2 × 2,5 GHz-Dual-Core-CPU jeweils beim Topmodell) eine Flüssigkeitskühlung eingesetzt; mit insgesamt neun individuell gesteuerten Lüftern ist das Gerät angenehm leise. Ein Power Mac G5 mit einem 3 GHz schnellen Prozessor sollte laut Steve Jobs im Jahr 2004 erscheinen, wozu es jedoch nie kam. Inwieweit dieses Versprechen in Rücksprache mit IBM nicht mehr umgesetzt wurde, blieb unklar, jedoch wechselte Apple Anfang 2006 von PowerPC- auf Intel-Prozessoren.

## Modelldaten
### IBM PowerPC 970

* Entwicklungsname: “GigaProcessor UltraLite” (GP-UL); “GigaProcessor” war der Entwicklungsname des IBM POWER4.
* L1-Cache: 64 KiB (Instruktionen) + 32 KiB (Daten)
* L2-Cache: ECC 512 KiB mit Prozessortakt
* 64-Bit, voll 32-Bit-kompatibel, nur Big-Endian, VMX
* 575-Pin CBGA
* FSB: DDR
* Betriebsspannung (VCore): 1,1–1,3 Volt
* Verlustleistung (TDP): typisch 42 Watt bei 1,8 GHz (1,3 Volt)
* Erscheinungsdatum: 2003
* Fertigungstechnik: 130 nm
* Die-Größe: 121 mm² bei 55 Millionen Transistoren
* Processor Version Register (PVR): 0x00390202
* Taktraten: 1,4–1,8 GHz; Apple-Modelle: 1,6–2,0 GHz
* Standardmodelle:
** PowerPC 970 1,4 GHz$^*$
** PowerPC 970 1,6 GHz$^*$
** PowerPC 970 1,8 GHz (TDP: 42 W)$^*$
$^*$Von IBM vertriebene Modelle des PowerPC 970

### IBM PowerPC 970FX

* Entwicklungsname: “Altair”
* L1-Cache: 64 KiB (Instruktionen) + 32 KiB (Daten)
* L2-Cache: ECC 512 KiB mit Prozessortakt
* 64-Bit, voll 32-Bit-kompatibel, nur Big-Endian, VMX, PowerTune
* 575-Pin CBGA
* FSB: DDR mit der Hälfte (Processor Interface Ratio 2:1) oder einem Drittel (3:1) vom Prozessortakt
* Betriebsspannung (VCore): 1,0–1,25 Volt
* Verlustleistung (TDP): maximal 13–76 Watt (bei 105 °C), typisch 10–61 Watt (bei 65 °C)
* Erscheinungsdatum: 2004
* Fertigungstechnik: 90 nm
* Die-Größe: 66,2 mm² bei 58 Millionen Transistoren
* Processor Version Register (PVR): DD1.0: 0x00391100, DD2.0: 0x003c0200, DD2.1: 0x003c0201, DD3.0: 0x003c0300, DD3.1: 0x003c0301
* IBM Order Part Number: IBM25PPC970FX5xxxxxxx, IBM25PPC970FX6xxxxxxx
* Taktraten: 1,0–2,2 GHz; Apple-Modelle: 1,8–2,7 GHz (übertaktet)
* Standardmodelle (DD3.x):
** PowerPC 970FX 1,6 GHz (TDP: 29 W maximal, 23 W typisch)$^*$
** PowerPC 970FX 1,8 GHz (TDP: 37 W maximal, 30 W typisch)$^*$
** PowerPC 970FX 2,0 GHz (TDP: 60 W maximal, 48 W typisch)$^*$
** PowerPC 970FX 2,2 GHz (TDP: 76 W maximal, 61 W typisch)$^*$
* „Power-Optimized“-Modelle (DD3.x):
** PowerPC 970FX 1,0 GHz (TDP: 13 W maximal, 10 W typisch)$^*$
** PowerPC 970FX 1,2 GHz (TDP: 16 W maximal, 13 W typisch)$^*$
** PowerPC 970FX 1,4 GHz (TDP: 19 W maximal, 15 W typisch)$^*$
** PowerPC 970FX 1,6 GHz (TDP: 21 W maximal, 17 W typisch)$^*$
** PowerPC 970FX 2,0 GHz (TDP: 50 W maximal, 40 W typisch)$^*$
** PowerPC 970FX 2,2 GHz (TDP: 60 W maximal, 48 W typisch)$^*$
$^*$Von IBM vertriebene Modelle des PowerPC 970FX

### IBM PowerPC 970MP

* Entwicklungsname: “Antares”
* Zweikernprozessor (Dual-Core)
* L1-Cache: 64 KiB (Instruktionen) + 32 KiB (Daten)
* L2-Cache: ECC 1024 KiB mit Prozessortakt pro Kern
* 64-Bit, voll 32-Bit-kompatibel, nur Big-Endian, VMX, PowerTune, Built-in self-test
* 575-Pin CBGA
* FSB: DDR mit der Hälfte (Processor Interface Ratio 2:1) oder einem Drittel (3:1) vom Prozessortakt
* Betriebsspannung (VCore): 0,95–1,35 Volt
* Verlustleistung (TDP): maximal 28–125 Watt (bei 105 °C), typisch 23–100 Watt (bei 65 °C)
* Erscheinungsdatum: 2005
* Fertigungstechnik: 90 nm
* Die-Größe: 153,8 mm² bei 183 Millionen Transistoren
* Processor Version Register (PVR): DD1.0: 0x00440100, DD1.1: 0x00440101
* IBM Order Part Number: IBM25PPC970MP7xxxxxxx
* Taktraten: 1,2–2,5 GHz
* Standardmodelle (DD1.1):
** PowerPC 970MP 1,2 GHz (TDP: 32 W maximal, 26 W typisch)$^*$
** PowerPC 970MP 1,4 GHz (TDP: 40 W maximal, 32 W typisch)$^*$
** PowerPC 970MP 1,6 GHz (TDP: 45 W maximal, 36 W typisch)$^*$
** PowerPC 970MP 1,8 GHz (TDP: 55 W maximal, 44 W typisch)$^*$
** PowerPC 970MP 2,0 GHz (TDP: 70 W maximal, 56 W typisch)$^*$
** PowerPC 970MP 2,5 GHz (TDP: 125 W maximal, 100 W typisch)$^*$
* “Power-Optimized”-Modelle (DD1.1):
** PowerPC 970MP 1,2 GHz (TDP: 28 W maximal, 23 W typisch)$^*$
** PowerPC 970MP 1,4 GHz (TDP: 35 W maximal, 28 W typisch)$^*$
** PowerPC 970MP 1,6 GHz (TDP: 40 W maximal, 32 W typisch)$^*$
** PowerPC 970MP 1,8 GHz (TDP: 50 W maximal, 40 W typisch)$^*$
** PowerPC 970MP 2,0 GHz (TDP: 60 W maximal, 48 W typisch)$^*$
** PowerPC 970MP 2,5 GHz (TDP: 115 W maximal, 92 W typisch)$^*$
$^*$Von IBM vertriebene Modelle des PowerPC 970MP

### IBM PowerPC 970GX

* Entwicklungsname: “Antares SP”
* L1-Cache: 64 KiB (Instruktionen) + 32 KiB (Daten)
* L2-Cache: ECC 1024 KiB mit Prozessortakt
* 64-Bit, voll 32-Bit-kompatibel, nur Big-Endian, VMX, PowerTune, Built-in self-test
* 575-Pin CBGA
* FSB: DDR
* Betriebsspannung (VCore):
* Verlustleistung (TDP):
* Erscheinungsdatum: 2006
* Fertigungstechnik: 90 nm
* Processor Version Register (PVR): DD1.0: 0x00450000
* IBM Order Part Number: IBM25PPC970GX7xxxx-xx
* Taktraten: 1,2–2,4 GHz
* “Performance-Optimized”-Modelle (DD1.0):
** PowerPC 970GX 1,6 GHz$^*$
** PowerPC 970GX 1,8 GHz$^*$
** PowerPC 970GX 2,0 GHz$^*$
** PowerPC 970GX 2,2 GHz$^*$
** PowerPC 970GX 2,4 GHz$^*$
* “Performance-Optimized”-Modelle (DD1.0):
** PowerPC 970GX 1,2 GHz$^*$
** PowerPC 970GX 1,4 GHz$^*$
** PowerPC 970GX 1,6 GHz$^*$
** PowerPC 970GX 2,2 GHz$^*$
** PowerPC 970GX 2,4 GHz$^*$
$^*$Von IBM vertriebene Modelle des PowerPC 970GX