Denkt man an hochskalierbare Multiprozessor-Server-Systeme, stößt man unweigerlich auf den im Silicon Valley ansässigen Hersteller Sun Microsystems, der den Einsatz und die Entwicklung der SPARC-Prozessoren stark beeinflusst hat. Zwar bietet das Unternehmen mittlerweile auch Systeme mit AMDs Opteron und Linux oder x86 Solaris an, dennoch besteht die größte Affinität zur SPARC-Prozessorlinie.
Für diese CPUs mit SPARC-Architektur bietet Sun mit dem SunOS Solaris ein eigenes optimiertes Betriebssystem an. Dieses entwickelt der Hersteller ebenso weiter wie seine SPARC-Prozessoren. Der noch 2007 erwartete UltraSPARC T2 „Niagara 2“ mit acht Kernen und 64 möglichen Threads sowie der SPARC64 VI vom Kooperationspartner Fujitsu zeigen, wie viel Potenzial in dieser Architektur steckt.
In diesem Artikel informieren wir Sie über die Architektur der SPARC-Prozessoren und ihre Besonderheiten sowie darüber, welche Modelle es eigentlich gibt. Außerdem geben wir einen Ausblick auf die nächsten SPARC-Generationen.
Intel zu langsam: Sun entwickelte SPARC
Die (S)kalable (P)rocessor (ARC)hitecture – kurz SPARC – beschreibt kein Prozessordesign mit technischen Spezifikationen für die Hardware, sondern wie der Name bereits verdeutlicht, Eigenschaften der Hardware aus Sicht der Software. Die 1982 gegründete Firma Sun Microsystems sah zu jener Zeit einen Markt für leistungsfähige Server. So begann der Hersteller mit einer eigenen Server-Linie – der Sun1 - mit 68000er Prozessoren von Motorola. Als Betriebssystem setzte Sun das damals neue auf BSD-4.1 basierende hauseigene SunOS. Mittlerweile ist SunOS mit dem Common Desktop Environment (CDE), OpenWindows, Gnome oder einer anderen GUI bekannt als Solaris – aktuell in der Version 10.
Während das Betriebssystem weiter entwickelt und Systeme der dritten Generation (sun3/3x) mit dem 68030-Prozessor 1987 vertrieben wurden, war man mit der Leistung der Prozessoren für das eigene Betriebssystem nicht glücklich und sah kein Entwicklungspotenzial. Sun entschloss sich, die Prozessoren von Intel näher zu betrachten. So erschien 1988 mit dem Sun386i ein x86-basiertes System mit einem 20-MHz-i386-Prozessor.
Wieder die fehlende Entwicklungsmöglichkeit und die geringe Performance vor Augen, sondierte Sun den aktuellen Prozessormarkt und entschloss sich schon frühzeitig, einen Schritt nach vorne zu gehen. Der Hersteller begann, eine Architektur, basierend auf den damals aktuellen und zukünftigen Anforderungen – insbesondere die seinerzeit fehlende Multiprozessor-Unterstützung (SMP) - zu beschreiben. Die erste Instruction-Set-Architecture auf dem Papier war geboren. 1987 wurde sie als Version 7 an mehrere Prozessorhersteller lizenziert und vermarktet.
RISC-Design als Grundlage
Grundlage dieser SPARC getauften Architektur war das von Professor Patterson entwickelte RISC-Design. Als „Basis-Prozessor“ diente ein RISC-2-Prozessor TMS9900, der 1983 um Professor Dave Patterson an der University of Berkeley (UCB) entwickelt und nach den Wünschen der Sun-Entwickler modifiziert wurde.
Da Sun damals keine eigenen Produktionsstätten für Prozessoren besaß, wurden die ersten SPARC-Prozessoren von Texas Instruments (TI) gefertigt. Es war TI überlassen, aus der SPARC-Beschreibung das Prozessordesign zu erstellen. Gemeinsam mit SUN wurde der reale Prozessor anschließend erfolgreich auf SPARC-Konformität überprüft. Seinen ersten Einsatz fand der SPARC-Prozessor in der Workstation 4/260 der vierten Generation von Sun-Systemen.
Damit begann die erste SPARC-Generation ihr Dasein. Der „Sunrise“ getaufte 32-Bit-Prozessor mit 16 MHz Taktfrequenz erblickte im Jahr 1986 als erster SPARC-Prozessor die Welt. TI fertigt auch heute noch für Sun Prozessoren. Daneben existieren SPARC-Prozessoren der Firmen Cypress, Weitek, LSI und Fujitsu.
1989 übernahm die neu gegründete, unabhängige Non-Profit-Organisation „SPARC International“ die Überprüfung der offenen Architektur auf Konformität der eingereichten Hardware- oder Simulationssysteme. Gemäß Definition können konforme Systeme mit unterschiedlichen Prozessoren und Chips geliefert werden. Bis 1990 gab es 35 SPARC-Implementierungen.
Chronologie
Seit dem ersten SPARC-Prozessor bis heute gibt es nur drei Architekturversionen des SPARC-Designs:
-
v7: War die erste Version mit dem ersten SPARC „Sunrise“
-
v8: Weiterhin 32 Bit und einige Optimierungen für SMP, superskalar
-
v9: Übergang zu 64 Bit mit dem „UltraSPARC“ und „SPARC64“
SunSPARC mit v7 beinhaltet eine Ganzzahl-Unit (IU), eine externe Gleitkomma-Einheit (FPU), einen direkt-assoziativen gemeinsamen Daten- und Befehls-Cache und eine Speicherverwaltungseinheit (MMU). Zusätzlich existiert eine 4-stufige Pipeline (fetch F, decode D, exec E, update WB) für Ganzzahloperationen. Die FPU und IU laufen synchron.
Die v8-Architektur ist superskalar und besitzt jeweils einen Cache für Daten und einen für Befehle. Das Design v9 erweitert die Register auf 64 Bit und enthält zusätzlich Multimediabefehle.
Jahr |
Historie |
1982 |
Gründung „SUN Microsystems“ |
1983/84 |
Entwicklung von SPARC, basierend auf TMS9900-RISC-2-Prozessor |
1986 |
erster SPARC-Prozessor 86900 „Sunrise“ Publikation SPARC-v7-Design, SunSPARC |
1989 |
Gründung „SPARC International“ |
1990 |
SPARC-v8-Design von SPARC Int. publiziert |
1991 |
erster standardisierter Interconnect „MBus“ von SUN entwickelt |
1993/95 |
SPARC-v9-Design, 64-Bit, „UltraSPARC“ und „SPARC64“ |
1996 |
UPA-Bus löst den MBus als Interconnect ab |
1997 |
SUN setzt auf PCI als Bussystem |
RISC & CISC
Mit dem reduzierten Befehlssatz (RISC) wurde das Einsatzgebiet bereits im Vorfeld auf eine hohe Integer- und Gleitkomma-Leistung sowie schnelle Codeausführung optimiert. Auch ALPHA-, MIPS-, PA-RISC- und IBM-Power-CPUs zählen zu diesem Typ von RISC-Prozessoren. Diese haben im Gegensatz zu den CISC-Typen (Complex Instruction Set Computing) den begrenzten Befehlssatz nicht als Mikrocode vorliegen, sondern in der Regel fest auf dem Chip verdrahtet.
Dies hat unter anderem den Vorteil einer fast deterministischen Antwortzeit, was gerade in Echtzeit-Betriebssystemen im Vordergrund steht. Die Befehle sind in der Regel gleich breit - bei SPARC 4 Byte - und nicht wie bei x86 zwischen einem und 15 Byte breit. Waren die ersten Prozessoren fast alle vom Typ RISC, versuchte man es später mit CISC-Prozessoren und der Mikroprogrammierung. Doch stieß man bald an Grenzen, und Mitte der 80er Jahre kehrten viele wieder zum RISC-Design zurück, weil mittlerweile auch höhere Integrationsdichten machbar wurden. RISC-Prozessoren zählten im Benchmark-Vergleich zu den schnellsten Prozessoren.
Vergleicht man x86-Prozessoren - von Intel oder AMD - so stellt man fest, dass die SPARC-Prozessoren ihren eigenen Lebenszyklus haben. Während Intel bereits den 65-nm-Fertigungsprozess mit einer Taktfrequenz von über 3 GHz einsetzt, verwendet die UltraSPARC-Linie meist noch 90 nm. Dafür setzte SUN bereits früh auf 64 Bit, Multiprozessorfähigkeit, hohe Leistung bei niedrigem Takt und große Caches.
Über alle SPARC- beziehungsweise UltraSPARC-Prozessoren besteht eine Binärkompatibilität – unabhängig vom Hersteller.
Sun-Bussysteme
Frühe Systeme von Sun nutzten den P4-Bus. Mit dem SBus entwickelte Sun einen eigenen Erweiterungskartenbus für die SPARC-Systeme. Anfänglich mit bis zu 25 MHz bei 32 Bit getaktet, wurde der SBus später um 64-Bit-Operationen erweitert und die Taktrate verdoppelt. Seit 1997 setzt Sun jedoch auf PCI, da sich der bisherige Bus nicht zuletzt wegen des ungewöhnlichen Formfaktors kaum außerhalb der SPARC-Systeme durchgesetzt hat.
Mit dem MBus hat SUN 1991 den ersten herstellerunabhängigen und standardisierten Interconnect für CPU-Module entwickelt. Dieser nutzt bei maximal 40 MHz Taktfrequenz 64 Bit breite Daten und Adressen im Multiplexbetrieb. Damit bietet der MBus eine nominelle Bandbreite von 80 MByte/s. Bei sonst gleichen Kenndaten trat der XDBus (Extended Data) mit einem paketvermittelnden Busprotokoll 1993 für SuperSPARC und für maximal 64 Prozessoren in einem System die Nachfolge an.
Zur Vernetzung von mehr als 64 Prozessoren reichte das Design des gemeinsamen Busses nicht mehr aus. Es folgte 1996 der UPA-Bus (Ultra-Port-Architektur) als interner Crossbar-Switch für den UltraSparc I/II mit maximal 400 MHz Taktfrequenz und einem Bustakt von 40 bis 100 MHz. Damit erreichte Sun eine Bandbreite von bis zu 2,4 GByte/s. Dieser Bus wurde innerhalb der sun4u-Linie auch als Grafikport verwendet. Ebenfalls paketvermittelt folgte als Interconnect die Sun Fireplane 2001 für den UltraSparc III mit mehr als 750 MHz Taktfrequenz und bis zu 150 MHz Bustakt. Unterstützt werden Broadcast- und Punkt-zu-Punkt-Verbindungen.
Als Backplane-Bus hat der Multimaster-Bus VME, basierend auf der Motorola-Prozessorfamilie weite Verbreitung gefunden und wird noch heute beispielsweise bei der Raumstation ISS eingesetzt. Die Ursprungsversion verfügte über einen 16-Bit-Daten- und 24-Bit-Adressbus.
SPARC-Versionen
Die verschiedenen SPARC-Versionen gibt es mittlerweile in diversen Varianten: SunSPARC, microSPARC, SuperSPARC und UltraSPARC bei Sun und Texas Instruments, HyperSPARC bei Ross Technology und SPARClite sowie SPARC64 bei Fujitsu. Daneben gibt es noch eine v8-Version unter dem Codenamen LEON. Ein LEON-2 wurde im Auftrag der ESA entwickelt. Der LEON-3 steht unter der GPL und ist ein Softwaremodell geschrieben für VHDL.
Jeder SPARC verfügt über ein großes Feld von Ganzzahl- und Fließkomma-Registern. Diese können nicht direkt, sondern nur über entsprechende Registerfenster angesprochen werden. Daneben existieren noch einige globale Register.
Angefangen 1986 mit dem ersten SPARC im v7-Design, folgte 1992 der MicroSPARC mit 50 MHz Taktfrequenz in der Sun 4/15 und 1993 der mit 70 bis 110 MHz arbeitende MicroSPARC II. Der Prozessor war aus 2,2 Millionen Transistoren aufgebaut. Der MicroSPARC II kam in der SparcStation5 mit Solaris 2.6 zum Einsatz und brachte eine Leistung von 79 SPECint92- und 65 SPECfp92-Punkten.
SuperSPARC
Der Nachfolger der MicroSPARC-Linie war seit 1991 der im 0,8 µm BiCMOS gefertigte superskalare SuperSPARC mit Codenamen Viking. Der auf SPARC-Version 8 basierende Prozessor bestand aus 3,1 Millionen Transistoren und arbeitete mit einer Taktfrequenz von 33 bis 60 MHz. Ein fünffach assoziativer L1-Daten-Cache mit 20 KByte und der vierfach assoziative L1-Befehls-Cache mit 16 KByte sowie der 2-MByte-L2-Cache dienten als Puffer. Als Bussystem kam der M- und XBus in der SparcStation 10 und 20 im Mai 1992 zum Einsatz. Dies war das erste Dual-CPU-System mit v8-Architektur.
Die Basis des SuperSPARC bildet der superskalare Prozessor, der durch zwei Ganzzahlen- und eine Gleitkomma-Einheit ergänzt wird. Mit der vierstufigen Pipeline konnten zwei Ganzzahlberechnungen pro Takt durchgeführt werden. Mit Techniken wie „Branch Prediction“ – also Sprungvorhersage – und „Data Forwarding“ wurde der Prozessor optimiert.
Mit dem Nachfolger SuperSPARC II im Jahr 1994 erhöhte man die Taktfrequenz auf 75 bis 90 MHz, integrierte eine weitere Einheit für Gleitkommadivision und Quadratwurzelberechnungen. Außerdem wurde das Registerfeld für Ganzzahlen überarbeitet. Damit kam der Prozessor auf 135 SPECint92- und 147 SPECfp92-Punkte.
Mobile SPARC-Systeme
Mit der SparcStation Voyager - Codename Gypsy - hat Sun schon einmal ein Laptop-System auf den Markt gebracht. Als Prozessor kam der MicroSPARC II mit 60 MHz Taktfrequenz zum Einsatz. Des Weiteren waren 80 MByte Speicher installiert, als Bus diente ein SBus und für Erweiterungen stand noch ein PCMCIA-Slot vom Typ II zur Verfügung. Das System lieferte 47,5 SPECint95- und 40,3 SPECfp95-Punkte.
Seit Mitte 2005 sind drei Modelle „Sun Ultra 3 Mobile Workstation“ verfügbar:
-
550/650 MHz UltraSPARC-III-Prozessor, 15-Zoll-Display
-
1,28 GHz UltraSPARC-IIIi-Prozessor, 15-Zoll-Display
-
1,28 GHz UltraSPARC-IIIi-Prozessor, 17-Zoll-Display
UltraSPARC
Unter allen Serien der Sun-Systeme ist vermutlich die sun4u-Serie mit dem SPARC-v9-Design die bisher erfolgreichste. Vor allem die UltraSPARC-Prozessoren mit ihrer 64-Bit-Unterstützung zeichnen dafür verantwortlich. Mit der sun4m-Serie begann die Multiprozessor-Unterstützung.
Seit der Einführung der UltraSPARC-v9-Prozessoren 1993 hat Sun die Taktfrequenz stetig erhöht. Vom UltraSPARC II mit 250 MHz, mit dem Einsatz von Kupfer (Cu) des UltraSPARC III (Cu) auf 1,2 GHz bis hin zum UltraSPARC IV+ mit 1,8 GHz.
Dies liegt immer noch weit unter den Taktraten, die man aus dem x86-PC-Segment kennt. Mit der Dual-Core-Generation UltraSPARC IV/IV+ begann Sun, ein symmetrisches Multithreading (SMT) pro Kern zu integrieren. Intel hat dies mit der HyperThreading-Technologie (HT) propagiert. Die zweite Generation von Chip-Multi-Threading (CMT), besser bekannt als Thread-Level-Parallelism (TLP), erschien mit der Niagara-Linie im Herbst 2005. Die dritte CMT-Generation setzt auf die Prozessoren mit Codenamen „Rock“ im zweiten Halbjahr 2008.
Codenamen der SPARC-CPUs
Die CPU-Hersteller beschreiben ihre Produkte vor der offiziellen Vorstellung fast ausschließlich über Codenamen. Besonders bei AMD und Intel ist dieses Verfahren sehr beliebt. Beispiele für Codenamen sind „Kentsfield“ für den Core 2 Quad von Intel oder „Barcelona“ für AMDs Mitte 2007 erwarteten Opteron mit vier Kernen.
Bei den SPARC-Prozessoren gibt es die folgenden Codenamen:
Codename |
Prozessorreihe |
Viking |
SuperSPARC |
Voyager |
SuperSPARC II |
Hornet/ Spitfire |
UltraSPARC I |
Sapphire-Black/ Blackbird |
UltraSPARC IIs |
Sapphire-Red/ Sabre |
UltraSPARC Iii |
Hummingbird |
UltraSPARC IIe |
Cheetah |
UltraSPARC III |
Cheetah+ |
UltraSPARC III Cu |
Jalepeno |
UltraSPARC IIIi |
Serrano |
UltraSPARC IIIi+ |
Jaguar |
UltraSPARC IV |
Panther |
UltraSPARC IV+ |
Olympus-C |
SPARC64 VI |
Niagara |
UltraSPARC T1 |
Niagara 2 |
UltraSPARC T2 |
Rock |
UltraSPARC V |
Millenium |
- nicht veröffentlicht - |
Systemlinie
In den folgenden Tabellen finden Sie die SPARC-Prozessoren mit ihren wichtigsten Spezifikationen chronologisch aufgeführt:
System |
Jahr |
Prozessor |
Takt [MHz] |
Bus |
Betriebssystem |
sun1 |
1984 |
Motorola 68000 |
10 |
Multibus |
Unisoft V7 UNIX |
sun2 |
1984 |
Motorola 68010 |
10 |
Multibus + VMEBus |
bis SunOS 4.0.3 |
sun3 |
1987 |
Motorola 68020 |
16-33 |
VMEBus |
SunOS 3.0-4.1.1.U1 |
sun3x |
1987 |
Motorola 68030 |
20-33 |
VMEBus + P4Bus |
SunOS 3.0-4.1.1.U1 |
sun386i |
1988 |
Intel i386 |
20 |
-- |
SunOS 4.0.1 |
sun4 |
1989 |
1. Generation SPARC, SparcStation |
14-33 |
VMEBus + P4Bus |
bis Solaris 2.4 |
sun4c |
1990 |
2. Generation SPARC, Fujitsu MB86901A/86903, LSI L64801, Weitek 8701, MicroSPARC |
20-40 |
SBus |
SunOS 4.0.3c-5.7 |
sun4m |
1992 |
3. Generation SPARC v8, 1-4 Micro-/ MicroII/HyperSPARC, CY7C601 |
33-200 |
SBus + MBus, VMEBus |
bis Solaris 2.5.1 |
sun4d |
1992 |
1-20 Micro-/HyperSPARC |
33-180 |
XDBus/ MBus, SBus |
ab Solaris 2.2 |
sun4e |
-- |
SPARCengine 1 |
-- |
-- |
-- |
sun4u |
1993 |
4. Generation SPARC v9, 64Bit „UltraSPARC“, 1-14 UltraSPARC II |
143-450 |
UPABus und SBus/ PCI |
ab Solaris 2.5.1 |
Prozessor |
Jahr |
Generation UltraSPARC |
Takt [MHz] |
Einsatz |
UltraSPARC II |
1998 |
Beginn der 2. Generation |
250-480 |
|
UltraSPARC IIe |
2001 |
-- |
500 |
SunBlade 100 |
UltraSPARC IIi |
1998 |
-- |
270-480 |
|
UltraSPARC III |
2001 |
-- |
600-1200 |
SunBlade 1000, SunFire |
UltraSPARC IIIi |
2003 |
Beginn der 3. Generation |
1064-1600 |
|
UltraSPARC III Cu |
2001 |
-- |
1002-1200 |
F15K |
UltraSPARC IV |
2004 |
4. Generation |
1050-1350 |
|
UltraSPARC IV+ |
2005 |
5. Generation |
1500-1800 |
Prozessor |
Jahr |
Wortbreite |
Takt [MHz] |
Sonstiges |
SPARC MB86900 |
1986 |
32 |
15 |
|
SPARC MB86902 |
1986 |
32 |
25 |
|
SPARC MB86903-40 |
1987 |
32 |
40 |
|
SPARClite MB86831 |
1996 |
32 |
80 |
|
SPARC64 III (HAL) |
1998 |
64 |
330 |
ECC/ Parity, Out-of-Order Engine Tiefe: 63 |
SPARC64 GP |
2000 |
64 |
450/ 560 |
|
SPARC64 V |
2003 |
64 |
1350 |
Primepower-Server-Linie |
SPARC64 VI |
2007 |
64 |
2400 |
neuer Jupiter-BUS |
Aktuell bei Sun: UltraSPARC IV+ und UltraSPARC T1
Mit dem UltraSPARC IV+ Prozessor verfügt SUN über den zurzeit leistungsfähigsten SPARC-Prozessor in der fünften Generation. Dieser bietet 2 MByte L2-Cache und 32 MByte off-chip-L3-Cache.
Die Kooperation von Sun mit Fujitsu ist sehr eng. Konzentriert sich Sun zurzeit auf den UltraSPARC T2 „Niagara 2“, so ist es bei Fujitsu der SPARC64 VII mit Quad-Core-Technologie. Im Bereich der Gleitkomma-Arithmetik – im Server-Bereich weniger ausschlaggebend – bringt der Niagara 2 laut Sun die fünffache Performance gegenüber seinem Vorgänger, dem UltraSPARC T1.
Neu: Aktuell von Fujitsu: SPARC64 VI
Der aktuelle SPARC64 VI mit Dual-Core-Technologie arbeitet mit Taktfrequenzen von 2,15 bis 2,40 GHz. Damit soll die CPU gegenüber dem SPARC64 V (Single-Core) die 2,5-fache Geschwindigkeit erreichen. Mit dem SPARC64 VI von Fujitsu – Codename „Olympus-C“ - wird der neue Interconnect „Jupiter-Bus“ eingeführt.
Der SPARC64 III war 1998 wesentlich leistungsfähiger als der damals zum gleichen Zeitpunkt verfügbare UltraSPARC II von Sun. Fujitsu sicherte bereits bei diesem Prozessor den TLB und den Cache mit ECC oder Paritätsdaten ab. Den SPARC64 V setzt Fujitsu in der Primepower-Server-Linie ein. Der Chip basiert auf dem SPARC-v9-Design mit 64 Bit virtuellem und 43 Bit physikalischem Adressraum. Fujitsu dimensionierte den L1-Cache mit jeweils 128 KByte für Daten und Befehle. Dem vierfach assoziativ organisierten L2-Cache spendierte der Hersteller eine Puffergröße von 2 MByte. Die Fehlererkennungen baute Fujitsu mit einem durchgehend ECC-geschützten L1-Cache, einer wiederholten Befehlsausführung in Hardware sowie einer Fehlerklassifizierung aus.
Beim SPARC64 VI mit Dual-Core-Technologie beträgt die Größe des gemeinsamen L2-Cache 5 oder 6 MByte. Die zweite Pufferstufe besitzt eine 12fach assoziative Organisation. Den Datenpfad zum L2-Cache vergrößerte Fujitsu von 64 auf 256 Bit. Die L1-Caches bleiben mit je 128 KByte für Daten und Befehle unverändert. Zu den Architekturerweiterungen der SPARC64-VI-Cores zählen unter anderem eine verbesserte Sprungvorhersage, eine schnellere Fused-Multiply-Accumulate-Ausführung (FMA) sowie verdoppelte TLBs.
Mehr Performance durch VMT & Dual-Core
Fujitsu implementiert beim SPARC64 VI erstmals ein sogenanntes „Vertical Multi-Threading“ - VMT. Das Event-gesteuerte Threading arbeitet ähnlich wie in Intels Itanium 2 9000. VMT erlaubt die gleichzeitige Abarbeitung von zwei Threads.
Die Implementation von VMT benötigt laut Fujitsu zirka zwei Prozent mehr Die-Fläche pro Core. Dabei soll der Olympus mit VMT eine bis zu 20 Prozent höhere Performance erreichen. Mit VMT sinkt der L2-Cache-Miss deutlich, er wird effektiv „versteckt“. Eine Performancesteigerung mit VMT wird natürlich nur bei multi-threaded programmierten Anwendungen erreicht. Die Thread-Anzahl sollte höher sein als die Core-Anzahl.
Die Integer-Performance des SPARC64 VI ist laut Fujitsu pro Core identisch mit dem SPARC64 V – bei gleicher Taktfrequenz. Pro Sockel verdoppelt sich aber durch die Dual-Core-Technologie und erhöhte Taktfrequenz die Ganzzahlengeschwindigkeit.
Bei den Fließkommaberechnungen bietet der SPARC64 VI pro Core aber eine 25 Prozent stärkere Performance. Hier profitiert die neue CPU von der höheren Bandbreite des Systembusses. Außerdem arbeitet der SPARC64 VI mit vier Write Ports im FP-Register-File.
Hohe Betriebssicherheit
Den SPARC64 VI „Olympus“ stattet Fujitsu mit zusätzlichen RAS-Features aus. So beherrscht die CPU beispielsweise eine dynamische Cache-Größen-Reduzierung. Treten Defekte in den Cache-Lines auf, so deaktiviert Olympus diese Bereiche. Dieses Verfahren klingt ähnlich wie Intels Pellston-Technologie beim Itanium 2 9000. Beim SPARC64 VI sind zusätzlich alle 1-Bit-Fehler im L1- und L2-Cache per ECC korrigierbar. Außerdem legt Fujitsu über alle Pipeline-Schritte wie Fetch und Dispatch sowie den Ausführungseinheiten eine Paritätsprüfung.
Die Fertigung des SPARC64 VI mit dem hauseigenen 90-nm-Kupfer-Prozess erfolgt mit zehn Layern. Der Prozessor ist aus 540 Millionen Transistoren aufgebaut. Diese breiten sich auf einem 20,38 x 20,67 mm großem Die aus. Für die Kommunikation kommt der SPARC64 VI mit "relativ genügsamen" 412 Signal-Pins aus.
Fujitsu gibt für den SPARC64 VI eine maximale Energieaufnahme von 120 Watt an. Im typischen Betrieb soll sich die 64-Bit-CPU mit 80 Watt begnügen. Laut Fujitsu entfallen dabei 25 Watt auf Leckströme, die restlichen 55 Watt benötigt der Prozessor für die eigentliche Arbeit.
Multi-Core-CPU Sun „Niagara“
Durch den Kauf der Firma „Afara WebSystems“ 2002 brachte Sun das Prozessor-Entwicklerteam ins eigene Boot. Als erstes Ergebnis ist der Niagara-Prozessor UltraSPARC T1 entstanden.
Den UltraSPARC T1, gefertigt von TI seit 2005 im 90-nm-Prozess mit neun Kupfer-Layern, hat Sun mit der neuen Technik „CoolThreads“ ausgestattet. Damit konnte der Hersteller eine Leistungsaufnahme von 72 bis 79 Watt realisieren. Auf Grund dieser geringen Leistungsaufnahme im Vergleich zu anderen Prozessoren wurde der UltraSPARC T1 mit dem Umweltpreis 2006 ausgezeichnet.
Durch die CoolThreads-Technologie kann jeder Kern des Niagara vier Threads gleichzeitig bearbeiten. Insgesamt ermöglicht der UltraSPARC T1 somit 32 parallele Threads.
Im Prozessor integrierte Sun vier DDR2-533-Kanäle mit einer Bandbreite von 25,6 GByte/s. Der Niagara mit seinen acht Kernen ist für Ganzzahl-Berechnungen optimiert. Für Fließkomma-Berechnungen steht der CPU nur eine Unit zur Verfügung. Jeder Core des UltraSPARC T1 verfügt über 16 KByte Befehls- und 8 KByte Daten-L1-Cache. Ein 3 MByte großer L2-Cache dient allen Kernen gemeinsam als Datenpuffer. Durch eine integrierte TCP/IP-Offload-Engine (TOE) und eigene Verschlüsselungseinheiten für RC4 und 3DES ist der Niagara für Netzwerkaufgaben in Blades prädestiniert. In Solaris 10 wurde der TCP/IP-Stack massiv überarbeitet und für die neuen Chip-Features optimiert.
Das Design des T1 erinnert durch den Fokus auf das Netzwerk eher an ein SoC-Design. Um die Fertigungsausbeute zu erhöhen, bietet Sun auch UltraSPARC-T1-Versionen mit vier oder sechs Kernen an. Bei diesen selektierten Modellen sind also nicht alle Kerne funktionsfähig.
Das Design in Verilog ist seit Anfang 2006 unter der Open-Source-Lizenz (GPL) frei verfügbar.
Noch 2007: UltraSPARC T2 mit 64 Threads
Beim UltraSPARC T2 – dem Nachfolger des Niagara - will Sun die Rechenleistung verdoppeln und führt zahlreiche Architekturerweiterungen ein. Zwar wird die CPU weiterhin acht SPARC-Prozessorkerne verwenden, allerdings kann jeder Core jetzt acht statt vier Threads simultan berechnen. Insgesamt erlaubt der UltraSPARC T2 dann bis zu 64 parallele Threads. Für SMP-Systeme mit zwei oder mehr Prozessoren ist der UltraSPARC T2 weiterhin nicht ausgelegt. Es fehlt ihm ein Cache-Koheränz-Protokoll.
Von einer Verdoppelung der Core-Anzahl auf 16 Stück sah Sun auf Grund der zu großen notwendigen Die-Fläche ab. Es wären dann keine Ressourcen mehr für die Erhöhung der Floating-Point-Performance übrig gewesen. Beim UltraSPARC T2 fügt Sun bei jedem Core eine zweite Ausführungseinheit hinzu. Dadurch war die Verdoppelung der Threads pro Kern möglich. Zusätzlich wurden die L2-Bänke von vier auf acht erhöht, damit die acht Threads pro Core effektiver arbeiten können. Würden weiterhin nur vier L2-Cache-Bänke zur Verfügung stehen, sinkt die Performance laut Sun um 15 Prozent.
Deutliche Performance-Steigerung
Beim UltraSPARC T1 teilen sich noch alle acht Kerne eine einzige Gleitkomma-Einheit. Beim Niagara 2 verfügt jeder Core nun über eine Floating/Graphics-Unit (FGU) sowie einen verbesserten Kryptographie-Koprozessor. Die als Streaming Processing Unit (SPU) bezeichnete Logik arbeitet mit der vollen Core-Taktfrequenz und beschleunigt Verschlüsselungen. Der UltraSPARC T2 beherrscht dabei RC4, DES/3DES, AES-128/192/256, MD5, SHA-1 und SHA-256. Die insgesamt acht Stream Processing Units erreichen laut Sun einen Verschlüsselungsdurchsatz, der der Bandbreite beider integrierter 10-Gbit/s-Ethernet-Ports entspricht. Die zwei Ethernet-Schnittstellen lassen sich virtualisiert auf bis zu acht Partitionen verteilen.
Ein SPARC-Core beim UltraSPARC T2 verfügt über eine achtstufige Integer- und zwölfstufige Floating-Point-Pipeline. Neu in den Pipelines ist eine Pick-Stufe. Pick wählt pro Taktzyklus zwei Threads aus acht vorhandenen aus. Die Single-Thread-Integer-Performance verbesserte Sun eigenen Angaben zufolge um 40 Prozent. Fließkommaberechnungen erledigt der UltraSPARC T2 als Single-Thread fünfmal schneller. Den gesamten Floating-Point-Durchsatz will Sun um den Faktor 10 erhöht haben.
Jeder Kern des UltraSPARC T2 besitzt wie beim T1-Modell 16 KByte L1-Cache für Befehle und 8 KByte für Daten. Zusätzlich verfügen die Cores über einen dem L1-Befehls-Cache nachgeschalteten Befehlspuffer für jeden Thread. Der von allen Cores gemeinsam genutzte L2-Cache wird von 3 auf 4 MByte aufgestockt. Die Organisation der zweiten Pufferstufe legt Sun zudem 16-fach assoziativ aus statt 4-fach wie beim T1.
Server im Prozessor
Den Arbeitsspeicher steuert der UltraSPARC T2 über vier Dual-Channel-FB-DIMM-Controller an – statt vier DDR2-533-SDRAM-Channels wie beim T1. Sun will eine Peak-Bandbreite von 42 GByte/s beim Lesen sowie 21 GByte/s beim Schreiben von Daten erreichen.
Die interne Kommunikation zwischen den Kernen und dem L2-Cache übernimmt ein Crossbar-Switch CCX. Damit können die Kerne mit 90 GByte/s in den L2-Cache schreiben und mit 180 GByte/s Daten lesen. Für die Kommunikation mit der Außenwelt spendiert Sun dem UltraSPARC T2 neben den erwähnten zwei 10-Gbit-Ethernet-Schnittstellen noch zwei PCI-Express-x8-Schnittstellen. Damit erlaubt der Multi-Core-Prozessor eine I/O-Bandbreite von 3 bis 4 GByte/s. Sun will den UltraSPARC T2 mit allen wichtigen Features ausstatten, die in einem Server benötigt werden.
Die Fertigung des UltraSPARC T2 erfolgt im 65-nm-Prozess. Der Chip benötigt dabei eine Die-Fläche von 342 mm². Den Performance-pro-Watt-Faktor will Sun beim UltraSPARC T2 gegenüber dem T1 verdoppeln. Der aktuelle UltraSPARC T1 begnügt sich mit zirka 72 Watt.
Ein erstes in Silizium realisiertes Sample fertigte Sun bereits Ende Mai 2006. Systeme mit UltraSPARC-T2-CPUs möchte Sun in der zweiten Jahreshälfte 2007 ausliefern.
Anfang 2008: Fujitsu SPARC64 mit Quad-Core
Fujitsus Nachfolger des SPARC64 VI mit der Bezeichnung SPARC64 VII setzt auf vier in einem Die vereinte Prozessorkerne. Die Quad-Core-CPU basiert auf der Architektur des SPARC64 VI „Olympus“ mit Dual-Core-Technologie. Allerdings wird es wieder einige Verbesserungen am Kern geben. Dabei soll der Quad-Core-Prozessor Sockel-kompatibel zum SPARC64 VI bleiben.
Jeder Prozessorkern des SPARC64 VII beherrscht wie beim Olympus das so genannte Vertical Multi-Threading SMT. Pro Core sind damit zwei Threads gleichzeitig möglich. Insgesamt bearbeitet der SPARC64 VII mit seinen vier Kernen acht Threads simultan. Alle vier Cores des SPARC64 VII greifen auf einen gemeinsamen 6 MByte großen L2-Cache zurück.
Die Fertigung des SPARC64 VII erfolgt mit einer Strukturbreite von 65 nm. Beim Olympus setzt Fujitsu noch auf ein 90-nm-Verfahren. Trotz der vier Prozessorkerne beschränkt sich die Die-Größe des SPARC64 VII auf 464 mm². Zum Vergleich: Der SPARC64 VI mit Dual-Core-Technologie benötigt eine Fläche von 421 mm².
Beim SPARC64 VII visiert Fujitsu eine Taktfrequenz von 2,7 GHz an. Der Prozessor soll Anfang 2008 auf den Markt kommen. Das Design des SPARC64 VII befindet sich bereits im finalen Stadium.
Neu: Noch 2008: UltraSPARC V „Rock“ mit 16 Kernen
Erste Bilder vom kommenden UltraSPARC-V-Prozessor "Rock" hat Sun-CEO Jonathan Schwartz in seinem Block veröffentlicht.
Der in der zweiten Jahreshälfte 2008 erwartete Prozessor ist mit 16 Kernen ausgestattet. Gegenüber dem aktuellen UltraSPARC IV+ bedeutet das die achtfache Kernanzahl. Suns UltraSPARC V kann 256 Terabyte an Daten in einer einzigen Software-Domäne adressieren. Die Fertigung erfolgt von externen Halbleiterproduzenten.
Von den 2395 Pins dienen 812 für Daten, 1514 für die Stromversorgung und die restlichen 69 sind bisher nicht verbunden. Erste Programme dafür werden laut Jonathan Schwartz bald lauffähig sein. Interessant bleibt die offene Frage nach der Anzahl Threads pro Kern, die bisher bei zwei liegt. Vermutlich werden 4 oder 8 Threads pro Kern lauffähig sein.
Aussicht
Nachdem das Wettrüsten um die höchsten Taktraten beendet ist, besinnen sich die Hersteller auf andere Techniken, hier namentlich Multi-Core-Prozessoren, SMT und SoC. Auch die Hersteller von SPARC-Prozessoren springen auf diese Schiene auf. Die Anzahl der Kerne pro Prozessor und die Anzahl der Threads pro Core werden von Generation zu Generation vervielfacht.
Mit der Integration von Crypto- und Netzwerkfunktionen direkt auf dem Chip gibt Sun mit der UltraSPARC-T1- und T2-Serie den Weg vor. Die Skalierung ändert die Richtung von vertikal auf horizontal.
Die SPARC-Prozessor-Roadmap gibt einen Eindruck von den nächsten Generationen. Wenn der UltraSPARC T2 in der zweiten Jahreshälfte 2007 debütieren soll, startet der Rock 2008 gleich mit 16 Kernen.
Der Rock – optimiert für hohen Datendurchsatz – soll einen 30-fach größeren Durchsatz im Vergleich zum UltraSPARC-III erzielen. Optimiert auf den Webdurchsatz soll der Niagara 2 dies gegenüber einem UltraSPARC IIIi bieten. (cvi)