SPARC-Prozessoren: Starke Individualisten

11.06.2007 von Thomas Steudten
Die SPARC-Prozessoren genießen wenig Aufmerksamkeit - meist stehen Opterons, Xeons oder Itaniums im Rampenlicht. Doch gerade in Servern sind Suns UltraSPARC und Fujitsus SPARC64 fest etabliert. Multicore-Designs sind nur eine Stärke der CPUs.

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:

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.

Chronologie der SPARC-Entwicklung

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:

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:

Codenamen der SPARC-Prozessoren im Überblick

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:

Sun-Systeme im Überblick

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

UltraSPARC-Prozessoren-Linie von Sun

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

SPARC-Prozessoren-Linie von Fujitsu

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.

Rock-Sample: Sun UltraSPARC V „Rock“ bietet mit 16 Kernen massives Multiprocessing. (Quelle: Sun)

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.

Rückseite: Der UltraSPARC V verfügt über 2395 Anschlusspins. (Quelle: Sun)

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)