| Home | Computer | Computer Geschichte | Site Map |
Bei der Recherche zu meinem Aufsatz "Supercomputer und der PC" habe ich mich zum ersten mal genauer mit den Dingen beschäftigt welche die Rechner von Seymour Cray so schnell gemacht haben. Dies veranlasste mich zu dem Aufsatz über Seymour Cray selbst. Dabei wurde meine Bewunderung und Verblüffung noch größer, vor allem wenn man bedenkt, dass diese Rechner bei relativ niedrigem Takt eine erhebliche Rechenleistung erbracht haben. Nun geht es darum diese Architekturen genauer zu betrachten
Nach dem ersten kommerziell erfolgreichen Modell, der Cyber 6600 im Jahre 1964
mit 5-9 MFlops je nach Modell war die 1969 erschienene Cyber 7600 mehr als vier mal schneller und
erreichte 40 MFlops. Sie wird als der erste echte "Supercomputer" also auf Rechengeschwindigkeit
getrimmte Computer angesehen. Nebenbei bemerkt wurden in ihr Architekturen implementiert, die 25
Jahre später sich auch in Intel Chips wieder finden (na ja zumindest teilweise, die Cyber 7600
war hinsichtlich superskalarer Operationen weiter entwickelt...).
Erst mal eine Erinnerung in welcher Zeit wir uns befinden: 1969 hatte das beliebte IBM Modell 360 Rechenleistungen von 330 KFlops und wurde unter anderem auch von der NASA für die Steuerung der Mondlandung (am Boden) eingesetzt. Die Cyber 6600 und 7600 waren aus einzelnen Transistoren zusammengesetzt, keine integrierten Schaltungen. Mit entsprechend langen Laufzeiten innerhalb der Maschine (um diese zu minimieren erhielt die Cyber 7600 eine Y Form). Speicherbausteine waren damals Ringkernspeicher: Winzige Eisenringe auf Drähten aufgezogen. Man konnte damals jedes Speicherbit und jeden Transistor noch mit den Augen sehen, und 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:
Die Einheiten hatten jeweils eine eigene Pipeline, welche sie mit Befehlen versorgte und in der Befehle im 10 MHz Takt abgearbeitet wurden. Die Pipeline führte dazu dass pro Takt ein Befehl ausgeführt werden konnte. Jede Einheit hatte eine eigene Pipeline, so das sie unabhängig voneinander arbeiten konnten. Dazu kamen 10 (optional) 20 Peripherieprozessoren, welche die gesamten I/O Teile übernahmen. Die Maschine war eine 60 Bit Architektur und jeder Befehl hatte eine Länge 15 oder 30 Bit. (Es gab auch einige 60 Bit Befehle). Dieses einheitliche Befehlsformat würde man heute RISC nennen. Jedes 60 Bit Wort konnte enthalten:
Die Instruktionen selbst hatten eine Breite von 12 Bit bei Registeroperationen und 24 Bit bei Speicheroperationen - wovon 18 Bit auf die Adresse entfielen. 18 Bit das sind 256 KWorte. Das klingt heute nach wenig, doch Seymour Cray meinte das niemand mehr Speicher benötigen würde. Schließlich bestand der Speicher aus Ringkernspeichern. Der Speicherblock bestand aus jeweils 12 Platinen mit 4.096 Bit (64*64) Kernen die zu einem Memory Modul von etwa 15*15*15 cm Größe zusammengefasst wurden. Fünf dieser Module ergaben dann eine Speicherbank von 4 KWorten mit jeweils 60 Bit Breite.
Bei Maximalbestückung ergaben dann 64 dieser Speicherbänke den Gesamtspeicher von 256 KWorten, entsprechend 1.920 KByte.
Trotzdem verlangten Kunden mehr und so wurde eine Cyber für Boeing mit einem 2 Mega Worte zusätzlichen Speicher ausgerü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.
Um die Leistung weiter zu steigern entlasteten Peripherieprozessoren die eigentliche CPU. Auf 10 Peripherieprozessoren lief das eigentliche Betriebssystem (hier schon ein Parallelrechner). Es kümmerte sich um die optimale Auslastung der eigentlichen CPU. Sie übernahmen aber auch die Kommunikation mit der Peripherie, also das Austauschen der Daten mit Speichereinheiten oder das Ausdrucken. Jeder der Peripherieprozessoren hatte einen eigenen lokalen Speicher von 4 KWorten zu je 12 Bit Breite (ein Memorymodul).
Der Takt betrug bei der Cyber 6600 (für die obige Zahlen gelten) 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) und 60 ns RAM Zugriffszeit und zwei zwischengeschalteten Caches (8 mal schneller als der Ringkernspeicher).
1972
verlies Seymour Cray CDC und gründete seine eigene Firma. Schon nach 4 Jahren brachte er seinen
Erstling die Cray 1S heraus. Die Maschine hatte ein neues Prinzip um die Geschwindigkeit zu
steigern. Die "Supercomputer" wurden damals nicht angeschafft um hunderte von Terminals zu
bedienen oder Datenverarbeitung zu machen. Nein es liefen vor allem naturwissenschaftliche
Modelle auf ihnen die "durchgerechnet wurden". Sei es die Flugbahn einer Rakete, die Explosion
einer Supernova, das Verhalten einer Tragfläche oder das Wetter von Morgen. Allen war gemeinsam,
das viele kleine Elementarzellen immer wieder denselben Berechnungen unterzogen werden.
Crays genialer Ansatz war nun sich zu sagen: "Wenn ich sowieso viele Zellen haben die ich immer auf dieselbe Weise berechne, warum dann nicht gleich mehrere auf einmal?". Die Lösung war eine Vektor Architektur: Anstatt in jedem Reuigster einen Wwert zu halten und zu bearbeiten verfügte die Cray 1 über 8 Vektor Register - sie nahmen jeweils 64 Werte à 64 Bit auf einmal auf und bearbeiten sie auch so, das pro Takt ein Ergebnis herauspurzelte - auch bei komplexem Operationen wie Multiplikation und Division. Dazu kamen noch 8 normale "skalare" Register, acht 24 Bit Adressregister für maximal 16 MWorte Speicher (Die Serienausstattung betrug 1 MWort). Diese Register waren noch gespiegelt, so konnte man schnell zwischen zwei Werten und Adressbereichen umschwenken.
Gleichzeitig konnte 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 maximale Leistung von 100-110 MFlops erreicht.
Neben dem Vektorprozessor hatte Seymour Cray auch intern einiges am Computer geändert. Er 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. Zum ersten mal setzte Seymour 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 RAMs. "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 RAMs im Interleave Betrieb ansprach. Wenn man die Probleme und den Verwaltungsaufwand heute bei Caches kennt, kann man nachvollziehen das dies das Design erheblich einfacher machte. Eine billigere Version, die Cray 1M die 1982 erschien verwendete dann MOS RAM mit 70 ns Zugriffszeit. Der Speicher wuchs dadurch auf 4 MWorte an.
Eine weitere Besonderheit war, dass die Cray noch festverdrahtet war. "Festverdrahtet", das bedeutet, dass die Bits aus dem Speicher direkt auf die Eingänge der CPU geleitet wurden. Dort durchliefen Sie die Schaltung und bewirkten die Durchführung des Maschinenbefehls. Schon damals war aber die Kodierung in Mikrocode üblich. Dabei gibt es einen Zwischenschritt: Jeder Maschinenbefehl wird in zahlreiche, einfachere kleinere Befehle zerlegt. Diese werden dann ausgeführt. Dieser Zwischenschritt erlaubt es die eigentliche Schaltung der CPU einfacher zu gestalten und da der Microcode in einem speziellen Speicher abgelegt ist kann er nach Auslieferung des Computers noch verändert werden, zum Beispiel. wenn ein Designfehler erst dann erkannt wurde. Dafür benötigt aber der Zwischenschritt der Zerlegung von Maschinencode in Microcode und deren Ausführung mehr Zeit als bei einer festverdrahteten Architektur. Für die Cray 1, die vor allem auf Geschwindigkeit ausgelegt war verwandte Seymour Cray daher keinen Microcode.
Erfolgreich wurde die Cray 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 ein vollkommen auf Rechenleistung gezüchteter Rechner - Es gab keinen I/O Prozessor. Anders ausgedrückt. Die Cray brauchte selbst einen "Jumbo", einen Großrechner der sonst 100 Terminals bedient hätte, nur damit der ihr die Ein/Ausgaben abnahm : Daten von Magnetbänden und Platten holen. Ergebnisse visualisieren und ausdrucken... In der Uni Stuttgart wo ich studierte beschäftigte das Rechenzentrums zwei Jumbos mit je 6-8 MFlops nur für diesen Zweck!
Erst
1985 erschien nach 2 Jähriger Verzögerung die Cray 2. Seymour Cray hatte die Zykluszeit auf 4.1
ns verkleinert. Damit dies ging wurde die Cray 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 GigaFLOP Grenze
überwand. Jeder Prozessor schaffte bei 227 MHz maximal 488 MFlops.
Nachdem bei allen bisherigen Rechnern Cray immer den Bedarf an RAM unterschätzt hatte, langte er diesmal in die vollen: Die Adressregister wurden auf 32 Bit erweitert und eine Cray 2 hatte in der Grundausführung 512 MWorte (4 Gigabytes) Speicher. Was heute noch nach viel klingt war 1985 riesig. Ein PC hatte 1985 256 KByte Speicher und Großrechner einige zig Megabytes. Mit dem teuren und niedrig integrierten ECL oder S-RAM war allerdings soviel RAM unbezahlbar. So setzte Cray schnelles DRAM mit 56 ns Zugriffszeit ein. Als Ausgleich nahm er einen 64 oder 128 er 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 Seymour Cray nur für die Register einen lokalen Speicher von 16 KWorten mit 4 Takten Zugriffszeit, dies war jedoch kein echter Cache denn er cachte keinen Arbeitsspeicher sondern nur Register. Spätere Versionen erweiterten den Adressraum sogar auf gigantische 4 MWorte (32 GBytes). Zusammen mit der niedrigen Zykluszeit von 4.1 ns - von anderen Rechnern erst im Jahre 1995 unterboten - war die Cray 2 vor allem geeignet bei großen Datenmengen. Sie hatte jedoch hausinterne Konkurrenz in der X-MP und Y-MP Serie. Die mit mehr Prozessoren dieselbe Rechenleistung erreichten.
Wem die Rechenleistung einer Cray 2 nicht reichte konnte mehrere vernetzen - mit 1.6 GBit pro Sekunde über ein spezielles Netzwerk.
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 Cray Computer Corporation. Es war ein friedliches Auseinandergehen. Der Grund: Durch die zweijährige Verzögerung der Cray 2, die schon 1982 erschienen sollte war es nötig einen Nachfolger der Cray 1 zu etablieren - Schließlich bringt auch die Konkurrenz neue Modelle heraus. Die Wahl fiel auf eine Weiterentwicklung der Cray 1 auf 2 Prozessoren, die Cray X-MP. Es war möglich diese weiter zu entwickeln (später entstand daraus die Cray Y-MP mit 4 oder 8 Prozessoren und die Cray T90 mit 16 Prozessoren), aber keine Firma kann es sich leisten praktisch zwei Supercomputerlinien zu fahren: Solche Rechner werden einzeln verkauft und von einem Modell selten mehr als 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 Taktsignale bewegen 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 die Daten einige Dutzend Gatter so das sich die Schaltzeiten addieren.
Seymour Cray sah die Lösung in einem anderen Halbleiter Material: Gallium Arsenid. Silizium ist zwar das allgemein eingesetzte Material und auch das preiswerteste. Doch es ist 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, blieb noch Galliumarsenid.
Was Seymour Cray unterschätzt hat, war die Komplexität der Aufgabe: Einen neuen Rechner entwickeln ist schon schwierig. Aber dazu noch neue Schaltungen auf der Basis eines allgemein nicht eingesetzten Materials, war zu schwierig 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. USD 1993 einen Prozessor der Cray 3 vorstellen und auch im NCAR installieren. Das gesamte System sollte aus 16 Prozessoren bestehen in einem nur 90 × 90 cm großen Kubus, 4 GB Speicher und direkten Verbindungen mit 8 GB/s zwischen den Prozessoren. Bei einer Zykluszeit von 2.11 ns erreichte ein Prozessor eine Peakperformance von 0.948 GFLOP, der gesamte Rechner 15.17 GFLOP. 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 Supercomputer Hersteller der Galliumarsenid einsetzte. Cray Research hatte die Architektur der Cray 1 weiter entwickelt und mit der Cray C90 ein 16 Prozessorensystem mit einer Performance von 1 GFLOP pro Prozessor - bei nur 4.2 ns Zykluszeit und herkömmlicher Technologie. 1995 ging Crays Firma CCC in Konkurs. Sie hatte nicht ein Cray 3 System verkaufen können. In der Zwischenzeit arbeitete jedoch Seymour Cray schon an der Cray 4 - ebenfalls mit Gallium Arsenid und 1 ns Zugriffszeit. Am 22.9.1996 starb er an den Folgen eines Verkehrsunfalls bevor er die Cray 4 vollenden konnte.
Schon zur der Zeit als die Cray 3 vorgestellt wurde hatte ein Wechsel in den
Architekturen eingesetzt. Der Grund war relativ einfach: Die Vektorrechner waren schon immer hart
an den Möglichkeiten der Hardware und im Laufe der Jahre nur langsam in ihrer Leistung gestiegen.
Von der Cray 1 zur Cray C90 oder Cray 3 um den Faktor 6 pro Vektorprozessor - 1 GFLOP anstatt 160
MFlops. 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 MByte/sec.
Zudem entfiel immer mehr Overhead auf die Synchronisation zwischen den Prozessoren.
Im Gegensatz dazu stieg die Leistung von Mikroprozessoren im gleichen Zeitraum von 500.000 (8 Bit) Operationen auf 50 Millionen (64 Bit) Operationen pro Sekunde. Also erheblich schneller als die Rechenleistung der Supercomputer. Es wurde nun interessant viele Mikroprozessoren der oberen Leistungsklasse zusammenzuschalten und damit einen Rechner aufzubauen. Daneben hatte dies den Vorteil, das man das System leicht skalaren konnte indem man einzelne Knoten von 4,8 oder 16 Prozessoren bündelte und so von einem Webserver bis hin zum Supercomputer System 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. Systeme auf Basis von Power PC, Alpha Chips, MIPS und SPARC gibt es. Cray Research produziert die T3 Serie auf Basis der Alpha CPU. Da eine CPU viel kleiner als die früheren Vektorprozessoren ist, kann man diese erheblich höher takten, zudem verfügen heutige CPUs über zwei - drei Fliesskommaeinheiten und Integer Einheiten auf dem Chip und sind damit praktisch schon ein Mehrprozessorsystem im kleinen. Der derzeit (2002) zweigrößte Rechner ASC White besteht aus 8192 Power PCs CPU mit je 375 MHz. Bei einer Spitzenleistung von 12.3 TFLOP braucht er allerdings 2.4 MW Strom und belegt eine Fläche von 1100 m². Von dem Charme einer Cray 2 ist nichts mehr geblieben. Der Earth Simulator von NEC braucht sogar ein eigenes Gebäude (Bild links) - und ein eigenes Kraftwerk noch dazu! Es ist allerdings auch ein Vektorrechner, denn die Japaner (NEC, Fujitsu) sind dieser Technik verbunden geblieben.
Die Technik der parallelen Verarbeitung mehrerer Daten findet man auch heute in Prozessoren. Altivec (Power PC) oder 3 NOW (Athlon) bzw. MMX (Intel) sind solche Beispiele. Diese als SIMD (Single Instruction, Multiple Data) bezeichneten Befehle unterscheiden sich aber von den Vektorregistern in der Weise, dass sie in der Regel nur ein breites Register nutzen und dieses in kleinere Untereinheiten aufteilen um so 2 oder mehr Datenworte gleichzeitig zu bearbeiten.
Gallium Arsenid wird heute nicht mehr bei Computern eingesetzt, man findet es zum Teil. in Handys vor allem aber bei der Wandlung von elektrischen in Lichtsignale. Da man hier neben der schnellen Schaltgeschwindigkeit auch die Lichtaussendung der Halbleiter nutzen kann.
Dieser Text stammt von Bernd Leitenberger| Sitemap | Kontakt | Neues | Bücher vom Autor | Buchempfehlungen |
|