Zurück


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