Bernd Leitenberger
Seymour Cray's Computer - Architekturen von
Supercomputern
Die Cyber 6600 & 7600
Nach dem ersten kommerziell erfolgreichen
Modell "Cyber 6600" im Jahre 1964 mit 5-9 MFlops,
war die 1969 erschienene "Cyber 7600"
mit 40 MFlops mehr als vier mal schneller. Sie wird als der erste echte "Supercomputer", also auf
Rechengeschwindigkeit getrimmte Computer, angesehen. Nebenbei bemerkt, wurden in ihr Architekturen implementiert, die sich auch 25 Jahre
später in den Intel Chips wiederfinden:

Erstmal eine Erinnerung in welcher Zeit wir uns befinden:
1969 hatte das beliebte "IBM Modell 360" Rechenleistungen von 330
KBFlops, und wurde unter anderem auch von der
NASA für die Steuerung der Mondlandung (am Boden) eingesetzt. Die
"Cyber 6600" und "Cyber 7600" waren aus einzelnen Transistoren
aufgebaut- mit entsprechend langen Laufzeiten innerhalb der Maschine (um diese zu
Minimieren, erhielt die "Cyber 7600" eine Y
- Form). Speicherbausteine waren damals als Ringkernspeicher ausgelegt: Winzige Eisenringe auf Drähten aufgezogen - trotzdem erreichten diese Maschinen die Rechenleistung eines Pentium mit 200 MHz!
Damit dies ging, bestand der zentrale Prozessor bei beiden Modellen aus 10 einzelnen Funktionseinheiten:
-
2 Fließkomma - Multiplizierer (1 Mikrosekunde pro Operation)
-
2 Fließkomma - Divisonseinheiten (3,4 Mikrosekunden pro Operation)
-
1 Additionseinheit
-
1 Long Additionseinheit (0,3 Mikrosekunden)
-
2 Inkrementeinheiten
-
1 Sprungeinheit
-
1 Vergleichseinheit
-
1 Shift - Einheit (0,1 Mikrosekunden)
-
1 Zähleinheit (0,1 Mikrosekunden).
Die Einheiten hatten jeweils eine eigene unabhängige Pipeline, die sie mit Befehlen versorgte, und in der Befehle im 10 MHz Takt abgearbeitet
wurden. Die Pipeline führte dazu, daß pro Takt ein Befehl ausgeführt werden konnte.
Dazu kamen 10
(optional 20)
Peripherieprozessoren, welche die gesamten I/O Teile übernahmen. Die Maschine war eine 60 Bit
- Architektur und jeder Befehl hatte auch eine Länge von 60 Bit. Dieses
einheitliche Befehlsformat würde man heute RISC nennen. Jedes 60 Bit - Wort konnte enthalten:
-
einen 60 Bit - Fließkommawert
-
10 Zeichen à 6 Bit (bei den Programmiersprachen FORTRAN und COBOL, ohne Kleinbuchstaben und Sonderzeichen,
vollkommen ausreichend)
-
4x 15 Bit Register
-
2x 30 Bit Memory - Adressen
Die Instruktionen hatten bei Registeroperationen eine Breite von 12 Bit und bei Speicheroperationen
24 Bit - wovon 18 Bit
auf die Adresse entfielen. 18 Bit, das sind 256 KBWorte. Das klingt heute nach wenig, doch Seymour Cray meinte,
daß niemand
mehr Speicher benötigen würde. Schließlich bestand der Speicher aus Ringkernspeichern. Ein Modul hatte 1024 Bit x 12 Bit.
Fünf dieser Module, jedes so groß wie eine Platine, ergaben 1024Worte von 60 Bit. Davon brauchte man dann 256
Stück, um den
Speicher aufzubauen.
Trotzdem verlangten Kunden mehr, und so wurde eine "Cyber" für Boeing mit einem 2
MBWorte zusätzlichen Speicher augerüstet,
der zwar mit 1,4 Mikrosekunden erheblich langsamer als der Hauptspeicher mit 475 ns war, aber immer 10 Worte auf einmal
lieferte, also über einen 600 Bit Bus verfügte, während der Hauptspeicher einen 60 Bit Bus hatte.
Der Takt betrug bei der "Cyber 6600" (für die obige Zahlen
geltend) 10 MHz = 100 ns Zykluszeit. Eine Verbesserung der
Architektur erlaubte es, bei der "Cyber 7600" den Takt auf 27,5 ns zu senken. Durch die parallel arbeitenden Einheiten konnte man
dann idealerweise bis zu 40 MFlops erreichen - dank 10 Funktionseinheiten und 60 Bit RISC Architektur. Und dies mit
Hauptspeicher der 20 mal langsamer als die CPU war.
Nur zum Vergleich: 40 MFlops erreicht auch ein Pentium mit 200 MHz (5 mal höher als bei der
"Cyber 7600"), 60 ns Zugriffszeit und zwei zwischengeschalteten Caches (8 mal schneller
wie der Ringkernspeicher).
Cray 1+2
1972 verließ Seymour Cray CDC und gründete seine eigene Firma. Schon nach
vier Jahren brachte er seinen Erstling die "Cray 1S" heraus. Um die
Geschwindigkeit zu steigern, hatte die Maschine ein neues Prinzip. Die "Supercomputer" wurden damals nicht angeschafft, um hunderte von Terminals zu bedienen oder Datenverarbeitung
durchzuführen. Nein, es liefen vor allem naturwissenschaftliche Modelle auf ihnen, die "durchgerechnet wurden". Sei es die Flugbahn einer Rakete, die Explosion einer Supernova,
daß Verhalten einer Tragfläche, oder das Wetter von Morgen. Allen war gemeinsam,
daß viele kleine Elementarzellen immer wieder denselben Berechnungen unterzogen
wurden.
Crays genialer Ansatz war nun, sich zu sagen: "Wenn ich sowieso viele Zellen
habe, die ich immer auf dieselbe Weise berechne, warum dann nicht gleich mehrere auf
einmal?". Die Lösung war die Vektor - Architektur: Anstatt in jedem Register einen
Wert zu halten und zu bearbeiten, verfügte
die "Cray 1" über 8 Vektor - Register. Sie nahmen 64 Werte à 64 Bit auf einmal auf, und bearbeiten sie auch
bei komplexem Operationen, wie Multiplikationen und Divisonen. Dazu kamen noch
acht normale "skalare
" Register, 24 Bit - Adreßregister für maximal 16 MBWort - Speicher (Serienaustattung war 1
MBWort). Diese waren noch
gespiegelt, so konnte man schnell zwischen zwei Werten und Adreßbereichen umschwenken.
Geleichzeitig konnten maximal eine Vektor- und Skalaroperation durchgeführt werden, was eine maximale Performance von 160
MFlops bei 12 ns Zykluszeit (80 MHz Takt) ergab. Typischerweise wurde eine Leistung von 100-110 MFlops erreicht.

Neben dem Vektorprozessor hatte Seymour Cray auch intern einiges am Computer
geändert. Die "CRAY 1" war nun ein doppeltes Kreissegment mit einer Höhe von 195 cm und einem maximalen Durchmesser von 255 cm. Dadurch konnten die Verbindungen
kürzer gehalten werden. Erstmalig setzte Cray integrierte Schaltkreise ein, wenn auch nicht in der damals
verfügbaren Integrationsdichte. Auch sonst war er sehr konservativ: anstatt den langsamen Speicher, wie heute üblich, über
Caches anzubinden, setzte er auf 16 Bänke mit Speicher in Bipolarer ECL
- Technologie, mit 50 ns, immerhin 3-4 mal so schnell
wie normale RAM's. "You can't fake Memory with a Bandwith you don't have". Oder anders gesagt:
er setzte eher auf einen
enorm breiten Datenbus, der laufend Werte nachlieferte und dafür die RAM's im Interleave
- Betrieb ansprach. Wenn man die
Probleme und den Verwaltungsaufwand bei heutigen Caches kennt, kann man nachvollziehen,
daß dies das Design erheblich
einfacher machte. Eine billigerer Version, die "CRAY 1M", die 1982 erschien, verwendete dann MOS - RAM's mit 70 ns Zugriffszeit.
Der Speicher wuchs dadurch auf 4 MBWorte an.
Erfolgreich wurde die "CRAY 1" gegenüber anderen Vektorrechnern, die auch in Crays ehemaliger Firma CDC entwickelt wurden,
weil er durch die skalare Architektur und die halbe Zykluszeit gegenüber der
"Cyber 7600" bei nicht vektorisierten Programmen, die doppelte Performance einer
"Cyber 7600" erreichte.
Die "CRAY 1" war, anders als die "Cyber 7600", ein vollkommen auf Rechenleistung gezüchteter Rechner. Es gab keinen I/O Prozessor.
Anders ausgedrückt: die "CRAY 1" brauchte selbst einen "Jumbo", einen Großrechner, der sonst 100-1000 Terminals bedient hätte, nur
damit er ihr die Ein/Ausgaben abnahm: Daten von Magnetbänden und Platten
abrufen, Ergebnisse visualisieren und ausdrucken.
Die Cray 2
1985 erschien nach zweijähriger Verzögerung die
"CRAY 2". Seymour Cray hatte die Zykluszeit auf
4,1 ns verkleinert. Damit dies ging, wurde die "CRAY 2" noch
kleiner -
max. 135 cm Höhe, bei 115 cm Durchmesser. Schließlich legt das Licht in 4 ns schon
1,2 m zurück. Zur Kühlung wurde der ganze Rechner in Fluorkohlenstoff gebadet, das Kühlmittel wog ein Drittel des
2,5 t - Rechners. Zusammen mit 2 oder 4 Vektorprozessoren war eine
"CRAY 2" der erste Rechner, der die 1 GFlop - Grenze überwand. Jeder Prozessor schaffte bei 227 MHz maximal 488 MFlops.

Nachdem Cray bei allen bisherigen Rechnern immer den Bedarf an RAM unterschätzt hatte, langte er diesmal in die
Vollen: die Adreßregister wurden auf 32 Bit erweitert und eine
"CRAY 2" hatte in der Grundausführung 512 MBWorte (4
Gigabyte) Speicher. Was heute noch nach viel klingt, war 1985 riesig. Ein PC hatte 1985
maxinal 256 KB Speicher, und Großrechner einige Megabytes. Mit den teuren und niedrig
integrierten ECL- oder S-RAM's, war soviel RAM allerdings unbezahlbar. So setzte Cray
schnelle DRAM's mit 56 ns Zugriffszeit ein. Als Ausgleich nahm er einen 64er oder 128er Interleave
vor, d. h. 64 Module ergaben
eine Bank die nacheinander abgefragt wurde, und erst nach 64 Takten war die erste RAM
- Bank wieder dran. Trotzdem dauerte
das Laden und Speichern von 64 Vektordaten pro Prozessor, 63 Takte, während eine Berechnung nur 22-23 Takte benötigte.
Daher verwandte Cray für die Register einen lokalen Speicher von 16 KBWorten mit 4 Takten
Zugriffszeit. Dies war
jedoch kein echter Cache, denn er cachte keinen Arbeistsspeicher, sondern nur Register. Spätere Versionen erweiteren den
Adreßraum sogar auf gigantische 4 MBWorte (32 GByte). Zusammen mit der niedrigen Zykluszeit von
4,1 ns, von anderen
Rechnern erst im Jahre 1995 unterboten, war die
"CRAY 2" vor allem für große Datenmengen geeignet. Sie hatte jedoch in der
"X-MP"- und "Y-MP"-Serie eine hausinterne Konkurrenz,
welche mit mehr Prozessoren dieselbe Rechenleistung erbrachten.
Wem die Rechenleistung einer "Cray 2" nicht reichte, konnte mehrere vernetzen - mit
1,6 GBit pro Sekunde.
Cray 3
Gleich nach der Fertigstellung der "CRAY 2", machte sich Seymour Cray an die Entwicklung der
"CRAY 3". Mit diesem Rechner verließ er Cray Research und gründete seine dritte Firma,
die Cray Computer Corporation. Es war ein friedliches
Auseinandergehen. Der Grund: durch die zweijährige Verzögerung der
"CRAY 2", die schon 1982 erscheinen sollte, war es nötig, einen Nachfolger der
"CRAY 1" zu etablieren. Die Wahl fiel auf eine
Weiterentwicklung der "CRAY 1" auf 2 Prozessoren - die "Cray
X-MP". Es war möglich diese weiterzuentwickeln (später entstand
daraus die "Cray Y-MP" mit 4 oder 8 Prozessoren, und die
"Cray T90" mit 16 Prozessoren), aber keine Firma konnte es sich leisten,
zwei Supercomputerlinien zu fahren: solche Rechner wurden einzeln verkauft
- von einem Modell selten 100 Stück.
Das Problem, das schon die Entwicklung der "CRAY 2" verzögerte, waren die Zykluszeiten:
so langsam kam man in Grenzen, die
von der Physik vorgegeben wurden. Das Licht, und damit auch die Taktsignale,
bewegt sich in einer Nanosekunde nur noch 30 cm
weit. Transistoren schalten in Bereichen, die zwar noch unter 1 ns liegen, aber bei der Verarbeitung von Daten
durchlaufen diese einige Dutzend Gatter, so daß sich die Schaltzeiten addieren.
Cray sah die Lösung in einem anderen Halbleitermaterial: Galliumarsenid. Silizium
war zwar das allgemein eingesetzte
Material und auch das Preiswerteste, doch ist es von den elektrischen Eigenschaften das
Schlechteste. Sowohl Germanium - Transistoren, wie auch Halbleiter aus Elementen der dritten und fünften Hauptgruppe, wie Galliumarsenid, schalten erheblich
schneller, weil die Elektronen eine höhere Beweglichkeit haben. Germanium kommt aus preislichen und praktischen Erwägungen
für hochintegrierte Schaltungen nicht in Frage, also blieb noch Galliumarsenid.
Was Seymour Cray unterschätzte, war die Komplexität der Aufgabe. Die Entwicklung
verzögerte sich von 1988/1989 auf 1993. Abgesichert durch einen Auftrag und staatliche Unterstützung, konnte er mit einem
Aufwand von 120 Mill. $ 1993 einen Prozessor auf der Basis von
Galliumarsenid vorstellen, und auch im NCAR in einer "CRAY 3" installieren. Das gesamte System sollte
aus 16 Prozessoren in einem nur 90 x 90 cm großen Kubus bestehen, mit 4 GB Speicher und direkten Verbindungen
(8 GB/s)
zwischen den Prozessoren. Bei einer Zykluszeit von 2,11 ns erreichte ein Prozessor eine Peakperformance von
0,948 GFlops,
der gesamte Rechner 15,17 GFlops. Der Stromverbrauch des kleinen Würfels betrug 88
KW.
Doch nachdem die "CRAY 3" produktionsreif war, wollte sie niemand haben -
sie war einfach zu teuer. Ähnlich erging es auch dem "CM-2" von Convex, einem anderen
Hersteller, der Galliumarsenid einsetzte.
Cray Research hatte die Architektur
der "CRAY 1" weiterentwickelt, und mit der "Cray C90" ein 16
- Prozessorensystem, bei einer Performance von 1 GFlops pro
Prozessor, mit nur 4,2 ns Zykluszeit und herkömmlicher Technologie,
gefertigt.
1995 ging Crays Firma
in Konkurs. Sie hatte nicht
einen "CRAY 3" verkaufen können. In der Zwischenzeit arbeitete jedoch Seymour Cray schon an der
"CRAY 4" - ebenfalls mit
Galliumarsenid und 1 ns Zugriffszeit.
Am 22.9.1996 starb er an den Folgen eines Verkehrsunfalles, bevor er die
"CRAY 4"
vollenden konnte.
Epilog
Schon zur Zeit, als die "CRAY 3" vorgestellt wurde, hatte ein Wechsel in den Architekturen eingesetzt. Der Grund war relativ
einfach: Die Vektorrechner lagen schon immer hart an den Möglichkeiten der Hardware, und
sind im Laufe der Jahre nur langsam
in ihrer Leistung gesteigen. Mehr Leistung erhielt man durch das Zusammenschalten von Prozessoren, doch gerade diese schnellen Rechner
benötigten teure Hochleistungsbusse zwischen den Prozessoren. Ein
"Pentium 4" würde sich freuen über 8 GB/s als Bussystem - der PCI Bus schafft nur maximal 133
MB/sec. Zudem entfiel immer mehr Overhead auf die Synchronisation zwischen den
Prozessoren.
Im Gegensatz dazu, stieg die Leistung von Mikroprozessoren im gleichen Zeitraum von
0,5 Millionen 8 Bit - Operationen/sec. auf 50
Millionen 64 Bit - Operationen/sec. Also erheblich schneller als die der Supercomputer. Es wurde nun interessant, viele
Mikroprozessoren der oberen Leistungsklasse zusammenzuschalten und damit einen Rechner aufzubauen. Daneben hatte dies
den Vorteil, daß man das System leicht skalaren konnte, indem man einzelne Knoten von
4, 8 oder 16 Prozessoren bündelte, und so vom Webserver bis hin zum Supercomputer,
Systeme in jeder Größe anbieten konnte. Die teure Entwicklung von spezieller
Hardware für einen Markt mit zweistelligen Stückzahlen entfiel somit.
Heute bestehen fast alle Rechner (auch die von Cray Research) aus vielen Prozessoren, die man auch in Workstations findet.
Es gibt Systeme auf der Basis von Power PC, Alpha Chips, MIPS und SPARC. Cray Research produziert die
"T3" - Serie auf Basis der "Alpha CPU". Da die
CPU's viel kleiner als die früheren Vektorprozessoren sind, kann man diese erheblich höher
takten. Zudem
verfügen heutige CPU's über Fließkomma - und Integer - Einheiten auf dem Chip, und sind damit praktisch
schon ein Mehrprozessorsystem im Kleinen. Der derzeit größe Rechner
"ASC White" besteht aus 8192 Power PC - CPU's mit je
375 MHz. Bei einer Spitzenleistung von 12,3 TFlops, braucht er allerdings
2,4 MW Leistung und belegt eine Fläche von 1100 m². Vom Charme einer
"CRAY 2" ist nichts mehr geblieben.
Galliumarsenid wird heute nicht mehr bei Computern eingesetzt. Man findet es
z. T. in Handys, vor allem aber bei der Wandlung elektrischer Signale in
Lichtsignale, da man hier neben der schnellen Schaltgeschwindigkeit, auch die Lichtaussendung der
Halbleiter
nutzen kann.
Kontakt: www.bernd-leitenberger.de
Zurück