Home | Computer | Crays Supercomputer | Site Map |
Der Begriff "Supercomputer" ist eng mit Seymour Cray verbunden. Er leitete die Entwicklung der CDC 6600, die als erster Supercomputer gilt. Später machte er sich selbstständig und schuf die Cray 1 und 2. Ich möchte mich in diesem Artikel mit der Architektur der Cray 1 näher befassen.
Ursprünglich arbeitete Seymour Cray bei der Firma Control Data Corporation, die sich auf einen Nischenmarkt spezialisiert hatte: Großrechner für naturwissenschaftliche Anforderungen. In den sechziger Jahren war IBM schon bei den Großrechnern führend und von dem IBM-Modell 360 wurden Abertausende verkauft. IBM konzentrierte sich auf Rechner, die für die Datenverarbeitung ausgelegt waren, also für die Eingabe von Buchungen vieler Terminals oder das Verarbeiten von Daten wie dem Erstellen von Gehaltsabrechnungen. Bei diesen Rechnern war die Geschwindigkeit nicht so wesentlich, vielmehr zählte, dass viele Benutzer mit ihnen interagieren konnten oder die Daten schnell eingelesen und ausgedruckt wurden.
Die allerersten Rechner waren in den vierziger Jahren für naturwissenschaftliche und militärische Probleme entworfen worden. Doch in den Fünfziger Jahren begann mehr und mehr die Wirtschaft Computer einzusetzen und der Regierungsmarkt wurde für die Computerindustrie unwichtiger. Eine Ausschreibung der Institute die Nuklearforschung betrieben für einen voll transistorisierten Rechner, der erheblich schneller sein sollte und sich für Berechnungen besser eignete, war zwar erfolgreich: Remington Rand und IBM entwickelten zwei Rechner, den LARC und die IBM 7030. Aber sie konnten davon nur wenige verkaufen. Daraufhin wandten sich beide Firmen dem Geschäft mit Firmen zu. (Bild der Cyber 6600: Jitze Couperus)
Die Firma Control Data Corporation (CDC) spezialisierte sich auf diesen Markt. Der Erstling war die CDC 1604, schon von Cray entwickelt. Sie war zwar langsamer als schon existierende Konkurrenzprodukte (0,1 MFLOPS), aber erheblich zuverlässiger als diese, 1964 folgte die CDC 6600, die als erster kommerziell erfolgreicher Supercomputer gilt. Sie hatte um die Berechnungen zu beschleunigen 10 Funktionseinheiten, was man später "Superskalarität" bezeichnete. Das bedeutet, mehr als ein Befehl kann gleichzeitig bearbeitet werden, indem nachfolgende Befehle an verschiedene Einheiten übertragen werden. Dazu kamen weitere 10 Peripheriprozessoren, um die primären Recheneinheiten zu entlasten. Die Cyber 6600 erreichte eine Geschwindigkeit von 1 MFlop, was zu ihrer Zeit enorm schnell war. Sie war der erste kommerzielle Rechner, der einen Monitor (CRT: Cosmic Ray Tube) standardmäßig einsetzte.
1 MFLOP sind 1 Million Fließkommaoperationen pro Sekunde. Also typischerweise eine Addition oder Subtraktion (Multiplikationen oder Divisionen dauern länger). Wie bei allen Rechnern bis in die späten achtziger Jahre sind diese Angaben mit Vorsicht zu genießen. Erst dann setzte sich der LINPACK Benchmark als Vergleichskriterium durch. Der LINPACK Benchmark ist eine Matrizenmultiplikation. Das ist praktisch der Idealfall, weil jedes Element der ersten Matrix mit jedem der Zweiten multipliziert wird. Es gibt keine Abhängigkeiten (ein Ergebnis baut auf einem vorhergehenden Zwischenwert auf) und es gibt keine Verzweigungen und bei sehr großen Arrays macht auch der Schleifendurchlauf der ebenfalls Zeit benötigt wenig aus. Die vorher ermittelten Maximalwerte sind theoretische, die von der Hardware her möglich sind (bei der Cray 1 z. B. eine Vektoroperation und eine Skalaroperation gleichzeitig pro Funktionseinheit. Was als maximale praktische Performance beobachtet wird, hängt dann stark von dem Programm ab und so findet man auch stark schwankende Werte für die maximale Performance. Bei einer Untersuchung des Livermoore Labors zeigte sich das bei einer Cray X-MP die mittlere Performance bei 70 MFLOPS lag. Die Schwankungsbreite war aber enorm: Das schnellste Programm erreichte 220 MFLOP, das langsamste nur 10. Theoretisch erreichen sollte sie 300 MFLOP. Oder ein anderes Beispiel: Wenn ein Prozessor einer Cray T90 nicht rechnen soll, sondern Zahlen sortieren, dann erreicht dieser Rechner gerade noch 62 Millionen Operationen pro Sekunde.
1969 erschienen das Nachfolgemodell, die CDC 7600. Sie verwandte dieselbe Architektur, war aber aufgrund höheren Taktes und der Einführung einer Befehlspipeline mehr als zehnmal schneller und erreichte 36,4 MFlops in der Spitze und 10 MFlops im Durchschnitt.
Bei der CDC 6600 zeigte sich beim Einsatz, dass es schwierig war, alle Recheneinheiten mit Daten zu versorgen. Um sie optimal auszulasten, erfand Cray die Pipeline, das bedeutet, ein Befehl wird vorausschauend in einen Buffer der CPU geladen und wandert bei jedem Takt eine Stufe in der Pipeline weiter, wobei er stufenweise dekodiert wird. Am Schluss ist er ausgeführt. Beide Maßnahmen zusammen bewirken, dass ein Rechner, obwohl jeder Befehl mehrere Takte zur Ausführung braucht, trotzdem einen oder sogar mehrere Befehle pro Takt ausführen kann (2012 liegt das Maximum bei Intel Prozessoren bei bestimmten Fließkommabefehlen bei zwei Befehlen pro Takt und Kern). Die Pipeline brachte alleine einen Faktor 3 in der Geschwindigkeit. Cray erhoffte sich sogar einen Faktor 10. Durch einen höheren Takt von 36,4 anstatt 10 MHz wurde sie nochmals schneller und erreichte eine Dauerleistung von 10 MFlops als mit 36 MFlops als Peakperformance. Der höhere Takt wurde vor allem durch dichtere Packung und damit verkürzte Laufzeit erreicht.
Bei dem nächsten Rechner, der CDC 8600 zeigte sich bald, dass sie zu komplex sein würde. 1968 begonnen, kam Control Data Corporation 1971 in ein Finanzierungsproblem, ohne das eine Fertigstellung absehbar war. Cray vertrat wie andere Ingenieure, dass sie CDC 8600 so komplex wäre, dass man sie nie funktionierend fertigen konnte (die Cyber 6600 und 7600 hatten Up-Zeiten in denen keine Reparatur nötig war, von einigen Stunden je mehr Transistoren ein Computer enthielt desto geringer war die Zeitspanne, bis es ein Problem gab). Das Design sah vier Prozessoren vor, um die Geschwindigkeit zu erhöhen wurden die Platinen sehr dicht mit Chips bepackt und die Kühlung wurde sehr aufwendig. Zudem sah er um die Langsamkeit des speichers, der 32-mal langsamer als der Prozessor war vor eine Instruktion zeitgleich mit unterschiedlichen Daten in allen vier Prozessoren auszuführen sodass der Hauptspeicherzugriff minimiert werden konnte,
1972 verließ Cray im Einvernehmen Control Data, als die 8600-Entwicklung aufgrund finanzieller Engpässe angehalten wurde. Er wollte vom Design weg zu einem umsetzbaren und die Firma hatte nicht die Mittel um nach vier Jahren neu anzufangen. Die CDC 8600 wurde nie gebaut. 1974 stellte CDC die Entwicklung als ein, anderes Modell, die STAR produktionsreif wurde. (Bild der Cyber 7600: Jitze Couperus)
1972 gründete Seymour Cray seine eigen Firma "Cray Research". Ziel war es einen eigenen Supercomputer zu entwickeln und das gelang. Die Cray 1. Sie steht heute nicht nur synonym mit dem Begriff des Vektorrechners, sondern ihre Architektur war so gut, das in der Folge basierend auf ihr zahlreiche Nachfolgemodelle entstanden, die zum einen die Produktpalette nach unten abrundeten, aber auch nach oben (Cray X-MP, Y-MP). Noch 1995 erschien die Cray T90, die auf der Architektur der Cray 1 aufbaute. Wie bei vorherigen Modellen hatte Seymour Cray sich vorgenommen, dass die Geschwindigkeit um den Faktor 10 gesteigert werden sollte. Er erreichte dies nicht (eigentlich bei keinem seiner Rechner), aber er meinte, wenn man sich zu wenig vornimmt macht man zu viele Kompromisse und versucht zu wenig neues.
Die Cray 1 hatte die Form von zwei Kreissegmenten, die jeweils ein „C“ formten. (Jeweils ein 270 Grad Kreis). Nur in der Mitte gab es einen Zugang zu den Platinen, sodass die Mechaniker wenig Platz hatten. Das äußere, niedrigere, Kreissegment konnte als Sitzbank genutzt werden. Jedes Kreissegment bestand aus 24 Säulen in denen die Module stecken, sie würde man heute als ein Rack bezeichnen. Im US-Sprachgebrauch wurde auch gesagt, es wäre "the world most expensive love-seat".
Die Abmessungen waren relativ kompakt. Der Rechner hatte einen Durchmesser von etwas über 2,6 m. Allerdings galt dies nur für den Rechner selbst. Dazu kam noch ein Computer (MCU) zum Hochfahren und Übermittlung von Aufgaben sowie die Plattenlaufwerke in kühlschrankgroßen Schränken. Mindestens genauso groß war die Gleichstromversorgung für die 115-kW-Leistung und die Klimaanlage, die genauso viel Abwärme loswerden musste. Die relativ kleinen Abmessungen (verglichen mit anderen Großrechnern) sollten nicht über das Gewicht von über 5 t hinwegtäuschen. In Garching stützte man den Platz, wo die Cray 1 sich befand, im Untergeschoss mit zusätzlichen Pfosten ab, damit die Decke nicht nachgab. 30 Personen waren mit den Aufbau des Rechners, der in zwei Lastwagen ausgeliefert wurde beschäftigt.
Die Cray 1 war Seymour Crays erster Rechner, der ganz auf integrierten Schaltungen beruhte. Diese waren zwar schon zum Start der Entwicklung über zehn Jahre alt, doch seine vorherigen Rechner bestanden noch aus einzelnen Transistoren und Ringkernspeichern. Bisher mied Cray wie andere Hersteller die ICs. Über den Grund kann man nur spekulieren. Sicher ist, dass ICs nicht schneller als Transistoren waren. Solange der Integrationsgrad klein war, gab es auch keinen Platzvorteil, dafür aber den Nachteil, dass keine beliebige Schaltung möglich war, sondern nur eine vorgegebene die man dann in größerer Stückzahl einsetzen musste, da sich der Aufwand für das Design einer Schaltung nur bei größeren Stückzahlen lohnte. Er blieb auch bei der Cray 1 konservativ. So verwendete er nur Schaltungen mit einer zu seiner Zeit relativ niedrigen Integrationsdichte.
Um eine sehr hohe Geschwindigkeit zu erreichen, setzte er auf die ECL-Technologie. ECL: (Emitter coupled logic) ist eine Technologie bei der zwei Transistoren über den Emitter verbunden sind. Beim Schalten erreichen sie nie den Sättigungszustand und schalten sehr viel schneller als die Transistor-Transistor-Logik (TTL), die damals wie heute bei preiswerten Schaltungen eingesetzt wurde. ECL-Bausteine schalten zwar sehr schnell, aber sie haben eine hohe Verlustleistung, weshalb bis heute die Integrationsdichte klein ist. (Verglichen mit TTL-Schaltungen).
Seymour Cray versandte nur drei Typen von IC, alle in ECL Logik:
Die Register bestanden aus 16 x 4 Bit Bipolar Chips mit einer Zykluszeit von 6 ns (statischer Speicher).
Der Speicher bestand aus 1024 x 1 Bit Bipolar Chips mit einer Zykluszeit von 50 ns (statischer Speicher). Sie stammten von Fairchild.
Die Logik bestand aus einem 5-4 NAND Gatter (ein Gatter mit 5 Eingängen und 4 Ausgängen). Pro Chip waren je nach Quelle zwischen 4 und 7 Gatter untergebracht. Diese niedrige Integrationsdichte war eine negative Kehrseite der ECL-Technologie. sie eignet sich nicht für VLSI Schaltungen.
Das Logikgatter war in etwa dem TTL Baustein 7420 vergleichbar (zwei 4-NAND Gatter). Während dieses aber in TTL-Bauweise Durchlaufzeiten von 8-22 ns hatte, lag diese bei den ECL-Gattern bei unter einer Nanosekunde. Alle Chips hatten 16 Anschlusspins. Hinsichtlich der Hardware war die Cray konventionell aufgebaut, sie verwendete "off the Shelf" Technologie, also eingeführte Hardware. Durch die schnelle Entwicklungszeit (die Chips wurden 1976 selektiert, Anfang 1976 wurde schon die erste Cray 1 ausgeliefert) resultierte dadurch kein Nachteil.
Die Cray 1 verwandte insgesamt rund 200.000 Gatter. Alle logischen Funktionen wie auch Rechenvorgänge sind mit NAND Gattern durchführbar, doch dazu musste man diese erst einmal in die einzelnen Teile aufbrechen. Bei der Cray 1 mit ihren vielen Funktionseinheiten und Registern keine einfache Aufgabe. Über 1.300 Seiten sollen das Diagramm der Logik des Prozessors ausgemacht haben. (Module: Bild links von Rama).
Der Übergang zu integrierten Schaltungen erhöhte die Zuverlässigkeit enorm, auch wenn die Integrationsdichte für heutige (und auch damalige) Verhältnisse niedrig war, so ersetzte jedes Gatter zumindest einige Dutzend Transistoren. Ein Gatter schaltete im Durchschnitt in 0,5 ns, im schlimmsten Fall in 1 ns. Der Preis war, dass die ECL-Gatter sehr viel Verlustwärme abgaben. Ein Umstand, der durch die dichte Packung noch verschlimmert wurde.
Für eine hohe Geschwindigkeit ist aber nicht nur die Schaltgeschwindigkeit der Gatter wichtig. Der Computer besteht ja aus vielen Platinen und diese müssen auch verdrahtet werden. Die Cyber 7600 war ein großer Schrank und hatte eine Zykluszeit von 27,5 ns. Die Cray 1 eine von 12,5 ns. Das bedeutet, dass auch die Laufgeschwindigkeit in den Leitungen berücksichtigt werden musste. Idealerweise legt ein Signal in einem Kupferkabel etwa 200.000 km/s zurück. Das sind in 12,5 ns maximal 2,5 m. Die Leitungen auf den Platinen waren noch langsamer. Dazu wurden noch die Chips passiert. Keine Verbindung dürfte daher länger als 72 Zoll, 182 cm lang sein. Das ist die Gesamtstrecke. Das führte dazu, dass er ein 270-Grad-Kreissegment als Architektur wählte. Alle Leitungen hatten ein Vielfaches von 30 cm, maximal 120 cm dürften Kabel lang sein. Leitungen wurden auch gezogen, wenn die Abstände zwischen Moduln zu klein waren, damit diese nicht außer Takt gerieten und auf den meisten Modulen waren nur wenige Chips, dafür sich mäandernde Leitungen – auch so sollten Unterschiede in der Schaltgeschwindigkeit ausgeglichen werden. So waren die IC an den Ecken mit 1 ns Verzögerung langsamer als die in der Mitte die 0,5 ns erreichten.
Ein Problem das bei der Entwicklung auftrat waren stehende Wellen, die durch Signalspitzen in der Leitung zur Erdung induziert wurden. Sie konnten Reflexionen verursachen, die sich mit dem Nutzsignal überlagerten und es auslöschen oder abschwächen konnten. Zur Lösung wurden die Pfade jedes Signals so gelegt, dass alle möglichen Wege innerhalb eines Moduls die gleiche Länge hatten, auch wenn man dazu zusätzlich Chips einbauen musste, mit dem einzigen Zweck das Signal zu verzögern. Etwa 10-20% aller ICs dienten nur diesem Zweck. Die zweite Lösung war es jedes Modul zu terminieren, das heißt, die Stromversorgung sah kein dynamisches Signal. Stehende Wellen beschränkten sich maximal auf ein Modul. Dazu wurden Widerstände an den Verbindungen jedes Moduls platziert. Dies ging nur bei den einfachen Gattern. Komplexere Gatter wären so nicht isolierbar gewesen. Etwa 20% der Wiederstände (zwei Typen von 60 und 300 Ohm, beide aus Tantal) waren nur zur Terminierung der Module und Signalphase nötig. Auch auf die Integrationsdichte hatte es Folgen. So waren auch die Ausgangspins jedes Chips terminiert. Dies wäre bei höherer Integration nicht möglich gewesen. Als zweite Folge waren auch alle Drähte, mit denen die Module verkabelt wurde so lang, dass ein Signal ein vielfaches von 1 ns brauchte um sie zu durchlaufen. (siehe Oben) Auch die Modulgröße von 6 Zoll (Distanz zwischen den beiden Seiten die verbunden waren) wurde deswegen so gewählt, weil ein Signal durch die Platine 1 ns brauchte.
Jede Platine (damals Modul genannt) hatte fünf Lagen, oben zwei Signallagen, darunter zwei für die Spannungen +5,2 und -2,0 V und eine für die Erdung. Ein Modul konnte auf jeder Seite maximal 144 Chips aufnehmen. (festes 12 x 12 Raster). In der Praxis waren es meist weniger, denn jedes Modul hatte eine bestimmte Logikfunktion zu erfüllen und es musste auch noch Platz für die Leitungen bleiben. (Platinen und Kühlbleche im Bild von Rama)
72 Module passten in ein 28 Zoll hohes Rack. 24 dieser Racks gab es. Von den 1728 Steckplätzen waren 1662 belegt. Es gab 113 unterschiedliche Module, jedes 8 x 6 Zoll groß mit einem 12 x 12 Raster für die Chips. Jedes hatte 96 Pins zur Verbindung mit anderen Modulen, die jedoch nie alle beschaltet waren. Durchschnittlich 58 Pins waren belegt. Um defekte Chips zu finden, gab es bei jedem Modul 144 Testpunkte.
Die 24 Racks befanden sich in dem höheren, inneren Kreissegment. Bedingt durch die hohe Packungsdichte und die Wahl einer sehr schnellen, aber mit hoher Abwärme verbundenen Technologie emittierte dieses in etwas mehr als einem halben Kubikmeter Volumen eine Abwärme von über 100 kW, also in etwa so viel wie 50 Elektroheizlüfter. Jedes Modul emittierte 49 Watt, das ist für die Größe von 15 x 20 cm eine Menge Wärme. Damit war die Cray 1 nicht mehr wie bisherigen Rechner durch Luft kühlbar. Die Lösung war Freon. Jedes Modul hatte ein Kühlblech über dem Board aus Kupfer, das an einer vertikalen Säule endete, durch die Freon strömte. Zwei Platinen wurden an den Oberflächen des Kühlbleches montiert, es endete an einer Aluminiumstange als "kaltem" Pol, die durch Freon gekühlt wurde. Da Aluminium eine geringere Wärmeleitfähigkeit als Kupfer hatte gab das Kupfer die Wärme an das gekühlte Aluminium ab. Das Aluminium wurde auf 21 Grad Celsius gekühlt, das Kupfer erreichte 25°C und die Module 48°C.
Zwei externe Kompressoren verflüssigten das verdampfende Freon. Jeder Kompressor erzeugte so viel Druck, wie nötig war, um 20 t anzuheben. Jede Säule konnte die Hitze von 128 Modulen aufnehmen. Die abgegebene Leistung betrug 71,8 kW bei 256 KWorten Speicher und 115 kW beim Vollausbau von 1024 KWorten. Etwa die Hälfte entfiel auf die Logik und die andere Hälfte auf den Speicher. Es gab anfangs Probleme mit der Kühlung. Verbindungen aus Edelstahl und Aluminium waren nicht dicht. Ursache war Öl, das dem Freon zugesetzt wurde für die Schmierung des Kompressors. Es konnte durch Dichtungen entweichen. Das konnte durch festes Verschweißen gelöst werden. Es dauerte aber eineinhalb Jahre bis man eine Lösung hatte und war die längste Verzögerung beim Bau. Das Aluminium war poröse für Freon und zusammen mit dem Öl bildeten sich Schaumblasen. Eine Spezialfirma in Minnesota wurde mit der Lösung beauftragt und fand schließlich auch eine.
Teile der Kühlung waren wie die Stromversorgung in der äußeren Bank untergebracht, die mit einem Sitzpolster bezogen wurde. Die Farbe von Sitzpolster und Verkleidung konnte der Kunde frei bestimmen. Auch wenn die Kühlung nicht problemlos war (verglichen mit der CDC 7600 gab eine Cray 1 rund viermal mehr Wärme pro Volumeneinheit ab) so war sie doch lösbar. Beim letzten Rechner den Seymour Cray bei CDC entwarf, der CDC 8600 scheiterte er dagegen an der Kühlung.
Die Stromversorgung lieferte 150 kW. Natürlich konnte dies nicht mit einem Netzteil erzeugt werden. Es gab 36 parallel geschaltete Stromversorgungen die eine unregulierte Spannung von 400 Hz erzeugten. Filter blendeten das 2400-Hz-Resonanzsignal aus.
Der Hauptspeicher betrug je nach Modell 256, 512 oder 1024 KWorte. Jedes Wort hatte 64 Bit, sodass dies 2, 4 oder 8 MByte entsprach, Die Angabe in KWorten war damals üblicher als die heutige Angabe in KByte. Bei der Cray 1 entsprach wegen der 64 Bit Architektur ein Wort genau acht Byte. Der Speicher wurde in 16 Bänken angesprochen. Jede mit einer Maximalbestückung mit 64 KWorten. Die Module verwandten 72 Chips um ein Datenwort zu Speichern. (Ein Wort plus 8 weitere Bits für die Fehlerkorrektur). Bedingt durch die 8 Bits für die Fehlerkorrektur konnten Zweibit-Fehler erkannt und Einbitfehler korrigiert werden. Die 16 Bänke erlaubten es, die Langsamkeit des Speichers zu kompensieren. Mit 50 ns war die Zugriffszeit genau 4 Takte lang. Wenn nun aufeinander folgende Worte in unterschiedlichen Banken lagen, so wurden diese nacheinander angesprochen und der nächste Zugriff erfolgte erst nach 16 Takten. Bedingung war, dass der Rechner eine Pipeline hatte und die Daten vorausschauend las, also bevor man es brauchte schon die nächsten Worte las, denn sonst hätte diese Konstruktion keinen Sinn gemacht. Je nach Hauptspeichergröße gab es acht oder 16 Speicherbänke.
Die Architektur erlaubte pro Taktzyklus nur ein Datenwort zu speichern oder zu laden. So wurde auch der Verdacht geäußert, die Vektorregister wären eingeführt worden um die begrenzte Bandbreite des Speichers zu umgehen. Denn dadurch gab es insgesamt 512 zusätzliche Register. Bis heute ist nicht geklärt warum zwar die Instruktionen mit 320 MWorten/s gelesen wurden, die Daten aber nur mit 80 MWorten/s gelesen oder geschrieben. Die Cray 1 hatte noch keinen lokalen Speicher auf den man schneller zugreifen konnte oder mehrere Worte pro Zyklus lesen konnte, ein solcher "local Memory" wurde bei der Cray 2 eingeführt und ist heute unter der Bezeichnung "Cache" Bestandteil jedes Mikroprozessors.
Beim Vollausbau entfielen 73.728 Chips, rund ein Drittel der IC auf den Speicher. Die 24 Adressbits (es hätten 20 für diesen Speicher ausgereicht) erlaubten es, bei den Nachfolgemodellen den Speicher zu erweitern. Sie steckten in 16 der 24 Racks. Der Speicher machte somit den Großteil des Computers aus. Bei einem kleineren Speicherausbau waren es genauso viele Racks, nur waren die Module nur halb bestückt. (Verkabelung im Bild von Rama)
Die Fehlererkennung war ursprünglich nicht vorgesehen. Der erste Cray 1A ging für eine sechsmonatige Testphase nach Los Alamos. Das Labor für Supercomputer hatte schon damals einen ganzen Zoo an Hochleistungsrechnern darunter einige CDC 7600 und 6600. Es zeigte sich, das Speicherparitätsfehler für 89% der Ausfälle verantwortlich waren. Für weitere Aufträge wurde daher eine Fehlererkennung gefordert, der Cray nachkam. Das war eine kluge Entscheidung, denn der Report zeigte, dass die Cray 1 ohne Fehlerkorrektur eine MTBF von nur 4 Stunden hatte. Die späteren Exemplare mit Fehlerkorrektur sollen bis zu 50 Stunden am Stück gelaufen sein. Cray selbst gab eine Verfügbarkeit von 22 Stunden pro Tag an und reservierte zwei Stunden für Wartungsarbeiten / Fehlerbehebung.
Das Diagramm zeigt, dass die Cray 1 zahlreiche Funktionseinheiten beinhaltete. Ein Erfolg war nicht nur, dass diese Funktionseinheiten parallel arbeiten konnten, sondern, obwohl die Cray 1 als Vektorrechner gebaut wurde, sie genauso gut „normale“ Fließkommaberechnungen und Integerberechnungen durchführen konnte.
Einige Besonderheiten sieht man schon an dem Registersatz. Es gibt reine Adressregister, Skalarregister (Skalar für einen Wert, sie nahmen Ganzzahlen und Fließkommazahlen auf) und Vektorregister. Die drei Sätze mit je 8 Registern, gab es schon bei der CDC 6600. Die wesentliche Änderung war das die dort üblichen Ganzzahlregister durch die Vektorregister ersetzt wurden.
Jedes der acht Adressregister war 24 Bit breit. Die Cray 1 konnte 16 MWorte adressieren, doch diesen Speicher schöpften erst Nachfolgemodelle aus. Die Skalarregister nahmen 64 Bit Zahlen auf, davon gab es ebenfalls acht. Mit ihnen waren Fließkommaberechnungen (mit einer 49-bit-Mantisse und 15 Bit Exponent) oder Ganzzahlberechnungen möglich. Die acht Vektorregister fassten je 64 Zahlen zu je 64 Bit Länge. Nicht auf dem Diagramm eingezeichnet, weil nicht durch Programm zugänglich waren die B und T Register. Diese beiden Register aus sehr schnellem Speicher (1 ns Zugriffszeit) nahmen die Werte von A bzw. S Registern auf, wenn diese verändert wurden um sie an den Speicher weiterzugeben. Damit standen diese im nächsten Taktzyklus für Veränderungen frei. Das war eine Lösung um die Geschwindigkeit zu steigern, weil sonst alle Änderung an diesen Registern warten mussten die sie in den Speicher zurückgeschrieben wurden. Die B und T Register erlaubten das Chaining, ein wichtiges Feature der Architektur, die entlasteten auch den Speicher. Denn sonst wären viel mehr Speicheroperationen nötig.
Die CPU hatte getrennt drei wesentliche Einheiten:
Die Einheiten für die Adressverarbeitung. Es gab eine Einheit um Adressen zu addieren (2 Takte), multiplizieren (6 Takte). Dazu gab es den A-Registersatz der acht Register umfasste, je mit 24 Bit.
Die Einheiten für Skalaroperationen. Skalar vom italienischen „Scala“ für Treppe heißt: Ein Operand nach dem anderen wird wie beim gehen auf einer Treppe (Stufe für Stufe) verarbeitet. Alle Mikroprozessoren arbeiten bis heute vorwiegend skalar, auch wenn inzwischen Vektoroperationen zusätzlich möglich sind. Die Skalaroperationen ermöglichten sowohl die Verarbeitung von ganzen Zahlen wie auch Fließkommazahlen. Es gab hier eine Einheit um Zahlen zu addieren/subtrahieren (3 Takte) Bits zu verschieben (mit 0 aufgefüllt) wobei auch zwei Register zusammengefasst werden, konnten zu einem 128-Bit-Register (2 Takte für ein Register, 3 für zwei). Ein Verschieben entspricht dem Multiplizieren mit 2 oder der Division mit 2. Die logische Einheit führte logische Verknüpfungen wie UND / ODER / Exclusive ODER oder Maskierungen von Bits aus. Das dauerte nur einen Taktzyklus. Die letzte Einheit zählte die Bits in einem Register, die auf "1" oder "0" standen. Das dauerte 4 bzw. 3 Takte. Die Skalareinheit wurde gegenüber der Cyber 7600 kaum verbessert. Eine eigene Einheit zählte die "1" Bits in einem Wort oder ermittelte die führenden "0" Bits. Die dazu nötigen Spezialbefehle gab es seit der CDC 6600 in jedem Rechner von Cray für den besonderen Kunden NSA.
Die Vektoreinheiten: Ein Unterschied zu den Skalaroperationen war, dass hier nicht ein Operand bearbeitet wurde, sondern viele. Wie viele, das wurde in einem anderen Register festgelegt. Der Befehl stoppte erst, wenn alle Daten abgearbeitet waren. Die Addiereinheit addierte/subtrahierte den Inhalt von zwei Vektorregistern und benötigte dazu 3 Takte. Die Shifteinheit benötigte vier Takte und die logische Einheit 2 Takte. Die Funktion war die gleiche wie bei der Skalareinheit.
Was die Cray aber nicht hatte, war ein Stack. Der gesamte Speicher wurde über die Adressregister angesprochen. Sie dienten auch als Indexregister in Schleifen. Da man aber ab und an Adressen oder Daten speichern muss, z.B., um in Subroutinen zu springen, gab es dafür einen Satz von temporär genutzten Registern, genannt B (Adressen) und T (Skalare). Von beiden gab es 64 Stück. Mit einer Instruktion konnte man einen Wert aus einem der S- oder B-Register dort ablegen oder wieder holen. Bei einem Sprung wurde die nächste Adresse in ein B-Register übertragen, und wenn man an diese zurückkehren wollte, konnte ein Maschinenbefehl sie wieder an den Programmzähler übertragen.
Die gesamte Architektur war so ausgelegt, dass alle Befehle feste Ausführungszeiten hatten. Das machte eine Besonderheit bei der Division nötig, da bei dieser in den normalen Implementationen dies nicht gegeben ist. Eine Division wurde durchgeführt, indem über das Newtonsche Tangentenverfahren approximativ die Division berechnet wurde. Sie brauchte erheblich länger als die anderen Operationen und hatte selbst bei Vektoroperationen nur eine Spitzenrate von 25 Millionen Divisionen pro Sekunde.
Multiplikationen und Divisionen von ganzen Zahlen wurden über die Fließkommaeinheit abgewickelt und nur die Mantisse verwendet. (Bild rechts: Stromversorgung). Es gab auch die Möglichkeit Zahlen einfacher Genauigkeit zu verarbeiten, doch war sie nicht schneller als die von 64 Bit Zahlen.
Alle Einheiten waren pipelined, das bedeutet die CPU lud Befehle bei jedem Takt. Sie durchwanderten eine Pipeline. Bei jedem Takt wurde ein Teil der Dekodierung/Ausführung durchgeführt und der Befehl rutschte in der Pipeline "nach oben", während unten der nächste Befehl vom Speicher kam. Nach n Takten war der Befehl dann ausgeführt. Bei diesem Prinzip gibt es eine Vorlaufzeit von n Takten bis der erste Befehl ausgeführt ist (n je nach Befehl: 3 bis 11 Takte) und danach folgt bei jedem Takt ein neuer Befehl. Mit diesem Prinzip kann ein Rechner pro Takt einen Befehl ausführen, selbst wenn jeder Befehl mehr als einen Takt erfordert. Die Cray hatte pro Funktionseinheit eine eigene Pipeline und da diese unabhängig waren (also z.B. eine Ganzzahl Operation in einem Skalarregister parallel zu einer Fließkommaoperation durchgeführt werden konnte9, war die Cray auch fähig mehr als einen Befehl pro Takt durchzuführen. Die Pipeline hatte 11 Stufen.
Begrenzend waren hier dann andere Faktoren wie die Speicherbandbreite oder ob Register frei waren.
War es eine Addition und eine Additionseinheit gerade frei (es gab ja zwei für Ganzzahlen) so wurde die Addition angestoßen, sie brauchte drei Takte zur Ausführung. Der nächste Befehl der einen Takt später dekodiert war musste nun nicht warten bis die Addition ausgeführt war, sondern wenn die Einheit gerade frei war, so konnte er auch in einem Takt ausgeführt werden. So erklärt sich auch die Spitzenleistung von 2 FLOPS pro Taktzyklus, da Multiplikation und Addition von Vektordaten parallel erfolgen konnten.
Die Vektorarchitektur brachte einen deutlichen Performanceschub. Die Cyber 7600, Seymours letzter Rechner, erreichte 36,4 MIPS, aber nur 5 MFlops. Eine Fließkommaoperation war also siebenmal langsamer als als eine Ganzzahloperation. Die Cray 1 dagegen konnte durch mehrere Vektoreinheiten bis zu zwei MFlops pro Takt ausführen, war also deutlich schneller. Das Vektorprinzip war nicht neu, ein anderer Cyber-Rechner, der Star 100 hatte es schon vorher eingesetzt, aber er hatte eine Memory-Memory Architektur, verarbeitete also die Daten aus dem Speicher und schrieb diese wieder zurück. Damit waren zwar mehr Daten als bei der Cray 1 auf einmal bearbeitbar, aber bis die Daten die Pipeline gefüllt hatten konnten durchaus 100 Takte vergehen. Seymour Cray implementierte dafür die Vektorregister, für die er bei acht Registern zu je 64 Worten mit je 64 bit alleine 512 Bausteine brauchte, aber dies gab dem Rechner einen enormen Performanceschub. Bei skalaren Operationen war die Cray 1 dagegen nur durch den höheren Takt schneller.
Die Architektur war sehr stark registerorientiert, basierte also darauf dass die Zahlen möglichst lange in den Registern gehalten wurden. Daher gab es auch so viele Register. Das war eine Folge des Schiffbruchs den CDC mit der Star 100 erlitt. Das Speicherinterface war nicht für große Datentransfers ausgelegt. Der Speicher konnte zwar 320 MWorte/s bei den Instruktionen abliefern, aber nur 80 MWorte bei den Daten. Bei 80 MHz Takt und Dreiadressformat hätte man aber die dreifache Bandbreite benötigt. Diesen Nachteil sollte das Nachfolgemodell Cray X-MP ausräumen. Das langsame Speicherinterface begrenzte vor allem bei Skalaroperationen die Performance deutlich. Bei Vektoroperationen, vor allem Chainung wirkt es sich weniger stark aus und auf diese Verarbeitung war die Cray 1 ausgelegt.
Die Cray 1 hatte 128 Befehle und war in der Befehlsstruktur und Auslegung ein Vertreter der RISC-Architektur, auch wenn die Befehle sehr mächtig waren. RISC sollte hier weniger auf den Befehlssatz, als vielmehr auf die Architektur des Computers bezogen werden. Es gab insgesamt 120 Befehle, 8 Befehle die in den 7 Bits hineinpassten blieben ungenutzt.
Befehle konnten 16 oder 32 Bits breit sein. Befehle mit 32 Bits enthielten eine Adresse oder Konstante. Von den 120 Befehlen nutzen 18 dieses Format. Es gab 4 Buffer mit je 64 Speicherplätzen für Befehle, jeder 16 Bits breit (Instruction Buffer). Sie waren so ausgelegt dass je 4 Speicherplätze (ein 64-Bit-Wort) für jede Bank vorhanden war und es vier Buffer pro Bank gab. Die Adresse des PC wurde bei jedem Takt gelesen und wenn nötig der Instruction Buffer vorausschauend gefüllt. Bei Sprüngen innerhalb von 256 Einträgen oder lokalen Schleifen von maximal 256 Einträgen Länge, waren diese innerhalb des Instruction Buffers möglich. Dieser Instruktion Buffer lud aus jeder Speicher Bank bei jedem Takt vorausschauend ein Wort und hatte daher eine sehr hohe Speicherbandbreite von 320 MWorten/s.
Eine Besonderheit war, dass die Cray sogar einen Speicherschutz vorsah. Da der Speicher sowohl Instruktionen wie auch Daten enthielt, konnte der Teil, der nur Anweisungen enthielt, geschützt werden. Wurde in diesen geschrieben, so wurde ein Interrupt ausgelöst. Wurde dieser nicht bearbeitet, wurde das Anwendungsprogramm terminiert. Es dauerte fast 30 Jahre, bis dieses Feature auch in PC-Prozessoren als „No-Execution-Bit“ einzog. Hier um Malware abzufangen, bei der Cray 1 war der Zweck zu verhindern, dass fehlerhaft programmierte Anwendungen den Code mit Daten überschrieben.
Geladen wurden immer ganze Worte aus dem ganzen Speicher. Ein Wort enthielt so bis zu vier Instruktionen. Eine 32-Bit-Instruktion konnte sich auch über zwei Worte erstrecken (kein Padding).
Bei arithmetischen Operationen enthielt der 16 Bit Code in den ersten 7 Bit den Opcode. Diese ersten 7 Bits waren auch bei den folgenden Befehlsformaten immer gleich. Danach folgten je drei Bit, die die Registernummer des Ersten und zweiten Operanten und des Zielregisters für das Ergebnis enthielt. Das entspricht dem Format
c = a+ b
Zahlreiche Mikroprozessoren verstanden und erstehen dagegen bis heute nur die Form, in der das Ziel wieder in einem Register der Operanden landet, z.B. in der Form
a = a+b
(a, b, c stehen hier für Registernamen, nicht für eine Gleichung)
Bit Operationen hatten nach dem 7-Bit-Opcode in den nächsten 3 Bit den Index des zu bearbeiteten Registers und dann in 6 Bits die Maske oder den Zähler für das Verschieben.
Konstanten gab es in zwei Formen. Nach dem Opcode kam wie bisher auch in 3 Bit die Registernummer. Der Rest (6 Bits) konnte dann eine kurze Konstante (0..63) sein oder es konnte ein weiterer 16-Bit-Block die niedrigwertigen Bits einer 22-Bit-Konstante (-2 bis +2 Millionen) sein.(Kühlung im Bild von Rama)
Bei Speichertransfers war der Opcode immer 32 Bit lang. In den ersten 4 Bits steckte der Opcode, in den nächsten 3 Bits der Index des Adressregisters das die Adresse aufnimmt und dann folgen 3 Bits für ein Skalarregister, das die Daten dieser Adresse aufnimmt. Die restlichen 22 Bits beinhalten die Adresse selbst, wovon bei der Cray 1 nur 20 Bits genutzt wurden. Das Trickreiche dabei war, dass nach einem dieser Worte nun nicht nur der Inhalt dieser Speicherzelle im spezifizierten S-Register war, sondern auch die Adresse in einem A-Register. Für Zugriffe auf folgende Adressen musste dieses also nur noch inkrementiert werden. Andere Prozessoren hatten dafür zwei Befehle, bei dem Adressregister und Skalarregister getrennt geladen wurden.
Sprünge hatten nach dem 7 Bit Opcode eine 25 Bit Adresse, wovon 2 Bits für das Speichern der nächsten Adresse in einem Adressregister benutzt wurden. Von dort konnte sie für Rücksprünge wieder ausgelesen werden. Es gab in diesem Sinne keine Instruktionen die CALL und RET bei Intel-Prozessoren entsprechen.
Interrupts wurden wie bei den Vorgängern CDC 6600 und 7600 verarbeitetet. Es gab einen speziellen Befehl, den Exchange Befehl den man in einer Interrupt Routine nutzen konnte. Er sicherte die skalaren Register der Cray und konnte sie nach Ende des Interrupts restaurieren. Dafür gab es einen reservierten Speicherbereich. Die Vektorregister wurden dagegen von dem Betriebssystem in der Job Control Area gesichert. Vor beginn des Interrupts wurden daher alle Vektoroperationen zuerst abgeschlossen.
Obwohl der Rechner über 5 t schwer war, war er nicht vollständig. Die gesamte Verbindung zur Außenwelt waren jeweils 12 Kanäle zur Eingabe und 12 Kanäle zur Ausgabe. Jeder mit 16 Datenleitungen und drei Steuerleitungen. Ein Analogon zum PC wäre, dass die Cray die CPU mit dem Arbeitsspeicher ist – ohne Slots, ohne Grafikkarte, ohne Tastatur und Monitor. Die drei Datenleitungen signalisierten ob die Cray bereit war, Daten zu empfangen/senden, einen Transfer wiederaufzunehmen oder ob die Verbindung beendet werden sollte. Maximal konnten 16 Bits pro Kanal in 50 ns übertragen werden, (320 MBit/s) eine Geschwindigkeit, welche kein angeschlossener Rechner erreichen konnte. Daten wurden direkt in den Hauptspeicher geschrieben. Später gab es ein eigenes Ein/Ausgabesubsystem, das wie die SSD als Arbeitsspeichererweiterung in einem Viertelkreissegment aber dem gleichen Aufbau wie eine Cray 1 untergebracht war. Es wog 1,5 t und belegte eine Fläche von 1,4 m².
Dazu gab es noch eine Realzeituhr, realisiert durch ein Zählregister von 64 Bit Breite, das bei jedem Takt um 1 inkrementiert wurde. Es konnte genutzt werden, um die Ausführungsdauer von Programmen zu bestimmen.
Cray selbst fertigte nur den Computer, wir würden es bei einem PC wohl als das Mainboard mit dem Speicher bezeichnen. Alle anderen Komponenten stammten von Zulieferern. So die MCU anfangs von Data General, die Disks von Control Data und Fujitsu. Sie wurden an die 24 I/O Kanäle angeschlossen. In der Basiskonfiguration waren es zwei Diskcontroller vom Typ DCU-2, die von Cray in ECL-Technologie gefertigt wurden und eine beliebige Anzahl von DD-19 Disklaufwerken, die von Fremdherstellern stammten. Eine DD-19 Einheit hatte 10 Disks mit je 411 Spuren, 18 Sektoren pro Spur und 32.768 Bits pro Sektor. Das war eine Kapazität von 2.424 Milliarden Bits oder 303 MByte / 37,8 MWorte pro Diskstapel. Die mittlere Zugriffszeit betrug 15 bis 80 ms. Die Datenübertragungsrate 35,6 Mbit/s pro Einheit. Es waren keine Festplatten wie heute, also hermetisch abgeschlossene Platten festmontiert mit dem Motor, sondern es war ein Plattenstapel, der ausgewechselt werden konnte. In diesem Falle gab es 10 Gruppen von Schreibe/Leseköpfen und 40 Oberflächen, was für 20 Einzelplatten spricht.
Es gab dann später weitere Plattenlaufwerke mit höheren Kapazitäten. Die Cray 1S hatte auch die optionale Möglichkeit I/O Prozessoren anzuschließen, der einen eigenen lokalen Speicher hatte. So blockierten Ein-/Ausgabe nicht das eigentliche Rechenwerk.
Eine Besonderheit war, dass man die Cray 1 nicht einfach einschalten konnte und dann mit einem Terminal Befehle eingeben. Es gab dazu einen eigenen Minicomputer von Data General (zuerst eine S/200, dann eine Data General Eclipse), später gab es von Cray einen eigenen Computer. Er wurde Main Control Unit (MCU) genannt. Er übertrug das Bootprogramm in den Hauptspeicher der Cray und initiierte die „Dead Start Sequence“, wir würden heute dazu „Booten“ sagen. Danach konnte man über die MCU über das Betriebssystem mit der Cray kommunizieren und Programme starten.
Optional, und das wurde oft angewandt, wurden die 24 Ein-/Ausgabekanäle nicht mit Disklaufwerken, sondern anderen Großrechnern verbunden, die es dann ermöglichten, dass die Cray auf mehr Peripherie zugreifen konnte und Programme gechaint wurden, also viele Benutzer Zugriff hatten.
Wenn man die Cray an einen anderen Rechner anschloss so musste man an den I/O Bus einen Vermittler anschließen, der zwischen der Geschwindigkeit des angeschlossenen Computers und der nativen Geschwindigkeit der Cray vermittelte. Was der Cray fehlte war ein eigener I/O Prozessor der dies übernahm und auch die Daten zwischenspeicherte und so die CPU entlastete. Dies wurde bei den folgenden Modellen korrigiert.
Die Software war anfangs überschaubar. Das Betriebssystem war COS, Cray Operation System. Es war ein Betriebssystem für Batchprozesse. 63 Jobs konnten zwischengespeichert werden. Ein interaktiver Betrieb war nicht vorgesehen. Ein Frontend-Computer übermittelte Jobs und übermittelte Daten bzw. holte die Dateien wieder ab. Als Programmiersprachen stand der CAL (Cray Assembler Language) und CFT, Cray FORTRAN Compiler zur Verfügung. Letztere hatte eine vektorisierte Bibliothek, was bedeutete, dass der Programmierer nun nicht selbst dafür sorgen musste, dass die Programme die Vektoreinheit optimal auslasteten. Allerdings ging dies in der ersten Version nur bei Schleifen, die keine Verzweigung oder Sprung beinhalteten. Cray vermied anders als IBM und CDC proprietäre Erweiterungen des FORTRAN Standards.
Die karge Softwareausstattung war anfangs ein Problem. Es gab anfangs gar nichts, kein Betriebssystem, keinen Compiler. So weigerte sich das Büro für Wettervorhersage in Boulder eine Cray zu kaufen, solange es keine Software gäbe. Sie musste erst erstellt werden. So verlief der Verkauf schleppend. Im ersten Jahr waren es nur zei Rechner, die schon vor erscheinen vorbestellt waren. 1977 stand das Betriebssystem und der Fortran Compiler und auch Boulder kaufte eine Cray. Zum Ende des Jahres waren 6 Rechner verkauft und Cray Research machte den ersten Profit mit 2 Millionen Dollar.
Spätere Rechner unterstützen auch andere Sprachen (Pascal, C, Ada) und setzten eine eigene Version von UNIX ein. (Innenansicht im Bild von Rama). Nach der Fast-Katastrophe als man am Anfang nur wenige Verkäufe ohne Betriebssystem/Compiler hatte unternahm man später große Anstrengungen optimierte Compiler zu scheiben. Diese vektorisierten den Code, erkannten also Schleifen und schrieben diese so um, dass Vektoroperationen genutzt wurden. Das ermöglichte im Idealfall die Programme zu beschleunigen ohne das die Benutzer sie umschreiben mussten.
Bis 1982 waren 200 Anwendungen so umgeschrieben, dass sie die Cray 1 optimal nutzten. Das brachte auch den Durchbruch bei kommerziellen Kunden. 1980 wurde die erste Cray 1 an einen nichtinstitutionellen Kunden verkauft: die Ölindustrie, es folgte die Automobilindustrie.
Auch wenn die Cray wesentlich stabiler als die CDC 7600 war, die als Vergleich oft herangezogen wurde (auch wenn Cyber inzwischen die STAR-100 ebenfalls mit Vektorprinzip und Texas Instruments den ASC ebenfalls mit Vektorrechnungen eingeführt hatten), so fiel sie doch alle paar Tage aus. Anfangs hatte sie eine MTBF von 50 Stunden. Cray hatte bei großen Kunden wie den Supercomputerzentren der USA, die mehr als eine Cray hatten, jeweils eine Serviceabteilung, bei Europa meistens eine pro Land, in dem eine Cray stand. In Deutschland z.B. eine in Garching, wo die erste Cray 1A war, diese musste dann auch das Rechenzentrum von Stuttgart bedienen, wo die Zweite stand. War ein Modul defekt, so wurde es zuerst komplett ausgetauscht, das defekte Modul zur nächsten Servicestation geschickt und dort unter dem Mikroskop der Chip ausgelötet und durch einen neuen ersetzt. Um festzustellen welches Modul defekt war gab es Testpunkte auf den Modulen. Bei Speicherfehlern konnte man es anhand der Adresse lokalisieren.
Der Einstandspreis war 1977 7,9 Millionen für die CPU und 0,9 Million für die Plattenlaufwerke, zusammen 8,86 Millionen für die ersten Rechner.
Die Geschwindigkeit der Cray 1 ist aufgrund der vielen Funktionseinheiten, die parallel betrieben werden konnten und der Möglichkeit des Chainings sehr schwer zu beziffern. Cray Research selbst beziffert die Peak-Performance auf 160 MFLOPS, was aber nur bei bestimmten Umständen erreichbar war. Als typische Geschwindigkeit werden eher 80 MFlops genannt. Als einer der Vorteile wurde oft genannt, dass die Cray 1, anders als andere frühe Vektorrechner auch skalare Operationen sehr schnell durchführen konnte, wenngleich hier eine weitaus geringere Spitzengeschwindigkeit erreicht wurde. Das bedeutete einen Geschwindigkeitsvorteil auch bei Berechnungen, die nicht vektorisiert werden konnten, wie der Berechnung der Orbitale von Atomen oder Molekülen. Skalaraoperationen waren allerdings sehr langsam. Hier wurden nur 5 MIPS gemessen, weil die Daten laufend vom Speicher gelesen und geschrieben werden mussten. Wenn ein Programm Vektoren vom Speicher als und schrieb sank auch die Fließkommaperformance auf rund 22 MFlops herab.
Das Vektorprinzip wurde von Cray nicht erfunden. Die Cyber Star-100 setzte es vorher ein und auch andere Computer hatten es umgesetzt. Was die Cray so erfolgreich machte, war, dass sie die gesamten Operationen in Registern durchführte. Die Star 100 machte es im Speicher und war dadurch langsamer.
Um es zu verstehen, muss man wissen, wie Computer normalerweise Daten verarbeiten. Ein herkömmlicher Prozessor der zwei Zahlen addiert führt üblicherweise Folgendes aus:
Lade einen Wert aus dem Speicher in ein Register.
Lade einen Wert aus dem Speicher in ein zweites Register.
Addiere beide Werte.
Lege das Ergebnis im Speicher ab.
Je nach Architektur können das bis zu vier Befehle sein. Jeder Befehl hat eine Ausführungszeit. Er muss angefordert werden (Fetch), erkannt werden, welche Operation es ist (decode), es kann dann bei dem Laden und Speichern dann noch das Holen der Daten hinzukommen (read the effective adress) und dann wird er ausgeführt (execute).
Jeder dieser Schritte dauert mindestens einen Takt, je nach Komplexität mehrere. Die Star-100 vereinfachte dies dahingehend, dass der Befehl nun sich auf eine variable Anzahl von Speicherzellen bezog. Was blieb, war immer noch, das die Daten aus dem Speicher geladen und wieder zurückgeschrieben wurde, aber sie hatte für die eigentliche Addition nach dem ersten Ausführen nur noch den letzten Schritt zu tun: execute.
Seymour Cray verbesserte dies nun dahin gehend, dass er nicht den Speicher, sondern Vektorregister nutzte, und die Eigenschaft der Pipeline nutzte, dass diese vorausschauend lud.
Eine Vektoroperation hatte eine Anlaufzeit von x Takten. Aus dem Speicher wurden nun die Vektorregister nacheinander gefüllt wobei bei jedem Takt ein Register gefüllt wurde. Hier war die Pipeline von Nutzen und das der Speicher auf 16 Bänke verteilt war. So konnte, anders als bei einem zufälligen Speicherzugriff, der 11 Takte dauerte, pro Takt ein Wort gelesen werden.
Gleichzeitig wurde die Operation nacheinander auf jedes Register angewandt, bis das Letzte erreicht wurde. Wenn also 64 Register benötigt wurden, so waren am Ende 64 Rechnungen in x+64 Takten durchgeführt. Im Vektormodus war x zwischen 2 und 4, so dauerte dies anstatt 128 bis 256 Takte nur 66 bis 68.
Mehr noch. Es gab ja mehr als eine Funktionseinheit. Nehmen wir an, es soll addiert werden. Sobald die Ersten beiden Register addiert wurden, sind diese frei. Neben der Addiereinheit gab es noch die logische und die Shifteinheit, das bedeutete, man konnte, wenn die Programmstellung es zuließ, noch weitere Operationen parallel durchführen, die nun die auf die schon bearbeiteten Register zugriffen.
Eine Besonderheit war das Chaining, wenn ein Vektorregister gleichzeitig Operand und Ziel war, so konnte im Idealfall zwei Rechnungen pro Takt durchgeführt werden. Das wurde möglich durch zwei Schattenregister (B- und T- Register) in denen die Ergebnisse der Adressoperation (B-Register) oder Fließkomma/Skalaroperationen (T-Register) landeten bis das eigentliche A- oder S-Register frei wurde. Über das Vektor Mask Register konnte man schnell abfragen ob das Ergebnis
Die gesamte Architektur trug dem Rechnung, was der Hauptzweck dieser Rechner war: Simulationen. Egal ob es aerodynamische Untersuchungen, Crashsimulationen, Wettervorhersage oder die Simulation der Explosion einer Supernova war. Alle diese Simulationen arbeiteten auf die gleiche Weise: Man unterteilte das Untersuchungsobjekt, z.B. einen Flugzeugflügel, dessen aerodynamische Strömung man untersuchen will, in viele kleine Flächen, je mehr, desto genauer wird es. Nun berechnet man für einen Zeitschritt, die Kräfte, Temperaturen, Druck oder andere physikalische Parameter in jeder Zelle. Am Ende werden zwischen den Zellen Daten ausgetauscht für die neuen Startbedingungen (Luftströmungen bewegen sich ja) und dann geht das ganze von vorne los.
Klar ist: In jeder Zelle müssen die gleichen Rechnungen gelöst werden, nur gibt es pro Zelle andere Ausgangswerte. Wenn nun nicht jede Zelle nacheinander berechnet wird, sondern eine Gleichung in jeder Zelle nur mit unterschiedlichen Daten, dann hat man schon die Voraussetzung für einen Vektorrechner.
Gelingt dies nicht, und dafür gibt es auch Fälle, vor allem in der Atomphysik und Chemie, dann kann die Geschwindigkeit eines Vektorrechners gravierend einbrechen. Das Gleiche gilt, wenn Programme sehr viele unterschiedliche Speicherbereiche ansprechen. Vektorrechner sind daher Spezialrechner und sie sind nicht für alle Aufgabenstellungen geeignet und auch nicht für einen Multiuserbetrieb, wenn nicht ein Programm, sondern sehr viele gleichzeitig laufen. Für die Kunden vor allem aus dem militärischen und wissenschaftlichen Bereich, später auch aus den Branchen Automobil, und Flugzeugbau (Crashsimulationen, Optimierung von Tragflächen und Triebwerken) und der Ölindustrie (Auswertung von seismischen Daten bei der Suche nach Öl- und Gasfeldern) galt das aber nicht.
Cray 1 |
|
---|---|
Abmessungen: |
Innerer Kreis: 143,5 cm Durchmesser, 195,5 cm Höhe Äußerer Kreis: 262,9 cm Durchmesser, 48 cm Höhe |
Gewicht: |
5,25 t |
Stromverbrauch: |
115 kW Vollausbau, 71,8 kW minimal (256 KWorte Speicher) |
Racks: |
24, davon 16 für den Speicher |
Module: |
1662 in 113 Typen. 1 bis 708 Module pro Typ. |
Chips: |
200.000 |
Taktfrequenz |
80 MHz, 12,5 ns Takt |
Speicherausbau |
0,25, 0,5 oder 1 MWorte |
Geschwindigkeit: |
160 MFlops Peak, 80 Flops Durchschnitt, 130 MFlops praktischer Spitzenwert bei Matrizenmultiplikationen |
Kosten |
8,89 Millionen Dollar mit Discsystem (1977) |
Auch wenn die Cray 1 Maßstäbe setzen, so hatte sie doch auch drei Mängel die sich bald herausstellten. Das erste war eine inadäquate Ein/Ausgabefähigkeiten. Es gab 12 Ein/Ausgabedatenleitungen, es war keine standardisierte Schnittstelle und bei Ein/Ausgabeoperationen hielt dies die CPU auf. Die Cray 1S ging dieses Problem an, indem sie eigene I/O Prozessoren mit eigenem Speicher einführte. Das zweite war das die Bandbreite zum Speicher zu klein war. Es gab einen Port für alle Zugriffe, auf den entweder geschrieben oder gelesen werden konnte. Das bedeutete: ein Befehl der zwei Datenwörter lass und ein Ergebnis schrieb konnte nicht in einem Taktzyklus ausgeführt werden, da jeder Zugriff den Port belegte (zweimal lesen, einmal schreiben). Nur wenn die Daten aus den Registern kamen und dorthin geschrieben wurden erreichte die Cray 1 ihre Höchstleistung, das war bei den Vektorrechnungen der Fall.
Dieses Problem wurde mit der Cray X-MP angegangen die vier Ports pro CPU hatte, je drei für Vektorregister und einen für I/O-Zugriffe. das vervierfachte die Bandbreite. Das letzte Problem, das bei keinem Nachfolger angegangen wurde war das Fehlen eines Hardware-Prefetches. Darunter versteht man, dass die CPU vorrausschauend liest und die Daten in einen lokalen Puffer scheibt, in der Hoffnung dass sie bald benötigt werden und dann der Zugriff schneller ist. Dieses Konzept das im PC mit Caches realisiert wird hat man nie bei der Cray Superrechnern eingeführt.
Es gab zuerst eine Reihe von Variationen der Cray 1. Mit Cray 1A-C wurden die Varianten mit unterschiedlichem Hauptspeicher bezeichnet. A für 1 MWorte, B für 0,5 MWorte und C für 0,25 MWorte. Allerdings wurde keine Cray 1C jemals produziert. Es gab nach der Cray 1 auch die firmeninterne Diskussion, ob man die Produktpalette nach unten erweitern sollte, also Rechner mit geringerer Leistung die preisgünstiger sind. Seymour Cray sprach sich dagegen aus. Er meinte, die Firma würde am besten dastehen, wenn sie die leistungsfähigsten Rechner herstelle, auch wenn es nur wenige Nutzer gäbe. Ohne eine Konkurrenz in diesem Segment wäre der Verkauf profitabler als einen Computer zu bauen der mit "normalen" Großrechnern konkurrieren muss.
1979 folgte die Cray 1S. Es gab sie in zahlreichen Subvarianten. Die Cray 1 hatte einen vergrößerten Hauptspeicher. Er bestand nun standardmäßig aus 1 MWorten, bis 4 MWorte waren möglich. Das war relativ einfach, schon bei Markteinführung der Cray 1 Seymour Cray davon sprach, dass man Testmuster des 4-Kbit-ECL Speicherchips teste und dieser die gleiche Performance wie das in der Cray 1A verbaute 1 kbit Modell habe. So mussten nur die Speicherchips ausgetauscht werden. Die Adressdekodierung unterstützte schon bei der Cray 1A bis 4 MWorte Speicher.
Neu waren zwei bis vier I/O Prozessoren jeder mit 64 KWorten zu je 16 Bit lokalem Speicher. Diese I/O Prozessoren hatten 6 DMA Kanäle, die direkt mit dem Hauptspeicher kommunizieren konnten. Jeder Kanal erreichte eine Transfergeschwindigkeit von 850 MByte/s. Demgegenüber hatte der (in einigen Modellen immer noch verfügbaren) I/O Kanälen mit seinen 24 Leitungen nur eine mittlere Geschwindigkeit von 50 Mbit, als Peakrate erreichte er 160 Mbit/s. Der I/O Prozessor beschleunigte den Datentransfer also um den Faktor 40. Jeder I/O Prozessor konnte dann an Peripheriegeräte oder (von Cray empfohlen) anderen Großrechner angeschlossen werden. Auch die Festplattenlaufwerke hatten an Kapazität zugelegt und fassten nun bis zu 660 MByte pro Plattenstapel. Die Data General Eclipse Rechner als MCU wurden nun durch einen von Cray selbst entwickelten „Minicomputer“ mit 16 Bit Architektur und 80 MIPS und zwei Konsolen. „Minicomputer“ deswegen, weil Minicomputer eher Leistungen von rund 1 MIPS hatten.
Die Cray 1S kann bei den meisten Konfigurationen von der Cray 1 leicht unterschieden werden. Die CPU brauchte nun weniger Racks für den Speicher. Die Versionen mit nur 1 MWort hatten nun einen 180-Grad-Bogen. Umgekehrt kam der I/O Prozessor als Segment dazu, der ein Viertelsegment ausmachte, aber neben der CPU stand. Wenn eine Cray CPU also nur 180 Grad ausmacht oder noch ein Segment danebensteht, dann ist es eine Cray 1S.
Die letzte Cray 1 war dann 1982 die Cray 1M. Sie setzte anstatt den ECL-Bausteinen nun schnelles MOS-RAM ein. Der Effekt war, dass die Maschine dramatisch billiger wurde (4-7 Millionen Dollar je nach Version bei mehr Speicher als eine Cray 1S die für 8,5 bis 13,3 Millionen Dollar verkauft wurde). Der MOS Speicher war schon bei den Buffern der I/O Prozessoren der Cray 1S eingesetzt worden. Die schnellsten MOS Bausteine erreichten 70 ns und damit war der Speicher schnell genug um den ECL-Speicher zu ersetzen. Die Cray 1M war ein kleiner Schritt in Richtung "mini-Supercomputer" auch wenn sie nicht richtig Mini war.
Es wurden trotzdem nur neun Cray 1M verkauft, weil kurz darauf die Cray X-MP vorgestellt wurde. Trotzdem erreichte eine Cray 1M einen Rekord: Eine in Saudi Arabien aufgestellte, war der erste Rechner, der ein Jahr ohne Unterbrechung arbeitete. Insgesamt wurden 81 Cray 1 aller Modelle verkauft, die letzte 1984. Die Zahl klingt nach wenig, doch die Wirtschaftlichkeitsberechnung, nach der sich auch der Verkaufspreis richtete, ging nur von 12 verkauften Systemen aus, sodass dies ein großer finanzieller Erfolg für Cray Research war. (Anders als PC‘s wurden auch nicht die Preise im Laufe der Zeit gesenkt, sondern neue Modelle zu neuen Konditionen auf den Markt gebracht).
Die Cray X-MP entstand unter der Leitung von Steven Chen. Seymour Cray hatte sich dem nächsten Computer, der Cray 2 gewidmet. Doch deren Umsetzung verzögerte sich. Die Cray X-MP veränderte die grundlegende Architektur nicht, nur hatte sie anfangs zwei, später vier Vektorprozessoren. Die größere Integrationsdichte ließ nun 16 Gatter pro Chip zu und so passten vier Prozessoren in den gleichen Raum wie bei der Cray 1 ein Prozessor. 1982 erschien das erste Modell mit zwei Prozessoren (Cray X-MP/2), 1984 lies eine höhere Integrationsdichte dann vier Prozessoren in 12 Säulen zu. Da es auch noch verschiedene Speichergrößen gab wurde ein Namensschema eingeführt: Die erste Ziffer nach der Bezeichnung stand für die Anzahl der Prozessoren, die zweite für den Heuspeicher in Megaworten.
Das Standardmodell war die Cray X-MP/4 mit ECL-Speicher vier Vektorprozessoren. Sie war fünfmal schneller als eine Cray 1A. Bedingt durch den technischen Fortschritt, konnte die Taktzykluszeit auf 9,5 ns, ab 1986 auf 8,5 ns gesenkt werden. Der Speicher bestand anfangs aus ECL-Chips, nun mit 4 KBit Größe und 38 ns Zugriffszeit. Später gab es auch die Cray X-MP mit MOS RAM von bis zu 16 MWorten Größe und 76 ns Zugriffszeit. Dafür musste die Adressierung aber erweitert werden, da zwar 24 Bit für die Adresse zur Verfügung standen und auch die Adressregister 24 Bit breit waren, aber bisher nur 22 Bits verarbeitet wurden. Der Cray X-MP/2 brauchte nur die Hälfte der elektrischen Leistung einer Cray X/MP/4 und war mit zwei Prozessoren trotzdem 2,5-mal schneller als eine Cray 1A. Als Einstiegsmodel folgte dann die Cray X-MP/1 mit nur einem Vektorprozessor und ebenfalls MOS-RAM. Sie war nur 25% schneller als eine Cray 1. Das Flagschiff Cray X-MP/48 verfügte sogar über 8 Megaworte ECL Speicher. Es schlug im Stromverbrauch von 128 kW die Cray 1.
Anders als bei den letzten Modellen der Cray 1 waren nun die I/O Prozessoren nun Bestandteil der Architektur und fest miteingebunden. Zusätzlich wurde eine SSD-Erweiterung (Solid-state Storage Device), eine Art RAM Disk aus MOS RAM von 256, 512 und 1024 MByte Größe hinzugenommen werden. Sie sahen aus wie ein Cray 1 Segment (4 Säulen) und konnten mit einer bis zu 20 langen Leitung an eine Cray X-MP angeschlossen werden. Die Bandbreite betrug 320 bis 1250 MByte/s (Cray X-MP) bzw. 100 MByte/s (Cray 1 M/S), der Zusatzspeicher wurde in bis zu 64 Bänken organisiert. Hier betrug die Zugriffszeit auf Datenblöcke lediglich 25 Mikrosekunden. Das war zwar tausendmal langsamer als ECL Speicher, aber immer noch tausendmal schneller als das Lesen von Plattenstapeln. Letztere hatten nun auf 1.200 MByte pro Drive zugelegt. 48 Drives konnten angeschlossen werden. Diese SSD wog rund 1,5 t und brauchte 1,4 m² Fläche.
Das Wesentliche war aber, dass nun mehr Vektorprozessoren parallel arbeiten konnten. Sie griffen gemeinsam auf den Speicher zu, der global für alle Prozessoren zur Verfügung stand. Sie kommunizierten aber nicht miteinander. Eine Logik erkannte gleichzeitige Zugriffe auf denselben Speicherbereich. Das Verteilen der Aufgaben auf die Prozessoren war Sache der Software. Weiterhin hatte man den langsamen Speicherzugriff als "Bottleneck" erkannt und die Cray X-MP konnte pro Prozessor in einem Taktzyklus maximal drei Speicheroperationen und eine Ein/Ausgabeoperation ausführen.
Die Cray X-MP wurde zu einem sehr erfolgreichen Produkt 189 Stück wurden verkauft. 1988 kostete eine Cray X-MP/4 12 Millionen Dollar.
Darauf aufbauend wurde die Cray Y-MP entwickelt. Sie erschien 1988. Die Änderungen in der Architektur bestanden in der Einführung der 32 Bit Adressierung. Sonst hätte der Speicher nicht ausgebaut werden können.
Die Modulzahl wurde deutlich verkleinert. Die Cray X-MP4 hatte noch 144 Module. Nun gab es nur noch 8 Platinen für die 8 CPU, eine für den Zeitgeber und 32 für den Speicher (jedes Modul fasste 1 MWort). Die Platinen waren aber deutlich größer rund 50 x 50 cm in den Abmessungen. Die ECL-Arrays in 2,5 µm Technologie fassten nun 2.500 Gatter. Da die Architektur sich kaum verändert hatte, reichten nun 312 Arrays für eine CPU aus. Nach wie vor verbrauchte ein Array aber alleine 9 Watt an Strom. Die Zykluszeit konnte weiter auf 6 ns gedrückt werden.
Während der Prozessor (2-8 waren möglich) weiterhin in ECL-Technologie gefertigt wurde ging man beim Speicher auf langsameren statischen Speicher über. Dieser wird bei PC‘s nur in den Caches direkt beim Prozessor eingesetzt. Dadurch war es möglich, mehr Speicher einzubauen. Standard waren 32 MWorte mit einer Zugriffszeit von 15 ns und einer Zykluszeit von 102 ns. Das war zwar schneller als bei der Cray 1, aber der Vektorprozessor war auch schneller geworden. Um dies auszugleichen, wurde der Speicher in 32 Bänke aufgeteilt. Eine Cray Y-MP erreichte die fünfzehnfache Geschwindigkeit einer Cray 1. Pro Vektorprozessor war dies aber nur eine Steigerung um 87,5%. Die SSD-Erweiterung war nun fester Bestandteil des Rechners.
1992 kam die Cray Y-MP EL auf den Markt die anstatt SRAM normalen dynamischen Speicher einsetzte (DRAM, derselbe Speicher der auch in ihrem Computer steckt). Später waren so bis zu 2 GByte Speicher möglich.
Als Cray die Firma Supertek übernahm, die eine Cray basierend auf stromsparenden CMOS Bausteinen fertiggestellt hatte, wurde sie um die Cray Y-MP 90 EL (EL für Entry Level) erweitert. Ihr Vektorprozessor erreichte nur 33 MHz und 133 MFlops (verglichen mit 167 MHz und 333 MFlops bei der Cray Y-MP), aber der Rechner passte in einen kleinen Schrank und kam mit einer normalen Stromversorgung aus. Ihr interner Aufbau differierte aber total. So setzte sie den VME-Bus zur Kommunikation mit den Peripheriegräten ein. Supertek hatte schon die Cray X-MP mit RISC Prozessoren nachgebaut, dabei aber nur 18,1 MHz und 18 MIPS erreicht. Aber diese Version war sehr preiswert. Ein Einprozessorsystem kostete 300.000 Dollar und ein Vierprozessorsystem 1 Million. Dagegen lagen die Preise für eine Y-MP zwischen 5 und 16 Millionen Dollar.
Der letzte der Reihe war die Cray C90, die nochmals die Zykluszeit auf 4,1 ns reduzierte. Es gab nun zwei Pipelines pro Prozessor. Davon gab es ebenfalls nun 16 Stück. Der Speicherausbau betrug nun 128 MW bis 1024 MWorte bei SRAM und 2 Gigaworte bei DRAM. Die CPU bestand nach wie vor aber aus ECL-Technologie. Eine Spitzenperformance von 16 GLOPS war möglich, im LINPACK Benchmark wurden 13,6 GFLOP erreicht. Das war die 90-fache Geschwindigkeit einer Cray 1. Die Cray C90 erschien 1991. Zu dieser Zeit kamen schon mehr und mehr Rechner auf den Markt, die heute die TOP 500 Liste der schnellen Rechner dominieren: Rechner aus Tausenden von PC-Prozessoren, die wegen der Massenproduktion viel preiswerter als die stromfressende ECL-Technologie mit eigenen Schaltungen waren.
Der letzte Vektorrechner war die Cray T90. Nochmals gelang es, die Zykluszeit auf 2,2 ns zu senken. Die Dichte der Chips hatte nun 800.000 Gatter pro IC erreicht. 32 Prozessoren waren nun in der größten Version verfügbar und der Speicherausbau lag bei SRAM standardmäßig bei 1 GWort. Man hatte auch die Vektorregister auf 128 Elemente erweitert. Um die Rechner unabhängiger zu machen, hatte jeder Prozessor auch einen eigenen Datencache. Aber damit war auch das Ende erreicht. Der Rechner war für seine Zeit zu teuer (39 Millionen Dollar), schwer (10 Tonnen) erforderte nach wie vor eine Kühlung mit Fluorcarbonen und galt als wenig zuverlässig. Bisher war es so, dass die theoretische Höchstleistung von Cray Rechnern nahe an der praktisch erreichbaren lag. Aber während Cray 1,76 GFLOPS pro Prozessor (4 Additionen pro Takt) reklamierte waren es in der Praxis nur zwei und beobachtet wurden 400 bis 800 MFlops pro Prozessor.
Danach stieg Cray um auf massiv parallele Systeme, die seitdem auch mit einer Ausnahme in der Top 500 Liste alle Rechner stellen. Die Ausnahme war der Earth Simulator der Anfang des Jahrtausends drei Jahre lang der schnellste Rechner war. Außer Cray Research hatten auch immer japanische Firmen Vektorrechner entwickelt und für eine Ausschreibung der japanischen Regierung wurde ein Vektorrechner mit 640 Knoten zu je acht Vektorprozessoren entwickelt. Er basierte auf NEC SX-6 Technologie. Er blieb aber alleine. weitere Systeme folgten nicht. Japan hatte schon in den Achtzigern Supercomputer entwickelt und zeitweise sogar Cray den Rang des schnellsten Computers abgenommen.
Das ist neben den Kosten einen eigenen Prozessor aus Gates in ECL Technologie fertigen zu müssen, aber auch anhand der Entwicklung leicht zu erkennen. Die Cray 1 hatte eine Zykluszeit von 12,5 ns. Die Cray T90 eine von 2,2 ns. Das war eine Geschwindigkeitssteigerung um den Faktor 6. Verschiedene Architekturverbesserungen wie mehr Funktionseinheiten, zwei Pipelines oder längere Vektorregister brachten weitere Geschwindigkeitssteigerungen. Aber im wesentlichen wurde die Taktfrequenz von 80 MHz im Jahre 1976 auf 440 MHz 1992 erhöht. Im gleichen Zeitraum stieg der Takt bei Mikroprozessoren von 3 MHz auf 40 MHz, also doppelt so schnell. Dabei gab es mehr Verbesserungen der Architektur wie der Übergang von 8 auf 32 Bit Verarbeitungsbreite und die Integration von nummerischen Coprozessoren. Im folgenden Jahrzehnt stieg der Takt sogar noch schneller an, um 2003 3,8 GHz zu erreichen – 100-mal schneller als 1992. Seitdem ist er aus demselben Grund wie bei den ECL-Bausteinen kaum noch angestiegen – höhere Takte steigern thermische Verlustströme exponentiell, was große Probleme bei der Kühlung aufwirft und den Stromverbrauch explodieren lässt.
Im Jahre 1998 übertrumpfte der Alpha Mikroprozessor von DEC im Takt den schnellsten Vektorrechner, die Cray T90. Er brauchte zwar für eine Instruktion mehr Taktzyklen und konnte keine Vektorrechnungen, doch es war ja auch nur ein Mikroprozessor, einige wären fähig einen Vektorprozessor zu ersetzen und sie waren als in Serie hergestellte Bausteine viel billiger als die eigens entwickelten Vektorprozessoren. Cray Research gab die Vektorechner auf und wechselte zu massiv parallelen Prozessorsystemen (MPP)
Cray selbst hatte die Cray 2 entwickelt, die noch kompakter war, anders als die X-MP Serie zur gleichen Zeit normales DRAM einsetzte um die langsame Geschwindigkeit dessen durch 256 Bänke kompensieren. Hier badeten die Chips schon in Freon, was die Reparatur erschwerte. Dies wurde auch für das Nachfolgemodell übernommen. Sie hatte erheblich mehr Speicher als ein Cray X-MP, doch aufgrund des langsamen Speichers waren beide Modelle in etwa gleich schnell, bei Programmen, die auf die Architektur nicht Rücksicht nahmen oder dies nicht konnten, war sie sogar langsamer. Aufgrund der sehr langen Pipeline musste man bei einer Cray 2 wesentlich mehr Arbeit in die Programme stecken, um eine hohe Geschwindigkeit zu erreichen als bei der Cray X-MP. Cray Research verkaufte mehr Cray X-MP als Cray 2, sodass diese Linie aufgegeben wurde. Es wurden nur 25 Cray 2 verkauft.
Da Seymour Cray schon sah, dass die Geschwindigkeit von ECL-Bausteinen und damit der Takt kaum steigerbar war, setzte er auf eine völlig neue Technologie: Galliumarsenid als Halbleitermaterial. Er gründete ein neues Unternehmen, die Cray Computer Generation um die Cray 3 basierend auf diesen Bausteinen zu bauen. Grund war auch das Cray Research zum gleichen Zeitpunkt an der Cray C90 arbeitete und diese favorisierte, nachdem schon die alte Linie aufbauend auf der Cray 1 sich besser als die Cray 2 verkaufte.
Die Cray 3 basierte auf Galliumarsenid für die CPU Schaltkreise und da dieses Halbleitermaterial kürzere Schaltperioden als Silizium aufweist (es wird bis heute für Leistungsverstärker im Hochfrequenzbereich verwendet) betrug der Taktzyklus nur 2,11 ns. Ein Vektorprozessor erreichte 0.948 GFLOPS, 16 Stück waren vorgesehen. Die einzige gefertigte Cray 3 hatte zwar kleinere Probleme (die es auch bei der ersten Cray 1A gab), aber dies war nicht die Ursache für den fehlenden finanziellen Erfolg. Vielmehr wurden nun mehr massiv parallele Systeme mit tausender Prozessoren von Intel, Sun oder MIPS gekauft. Sie waren skalierbarer (leichter erweiterbar) einfacher aufzurüsten (Austausch der CPU Karten durch neue Prozessoren) und letztendlich billiger als die Vektorrechner. Auch Cray Research stellte zwei Jahre später die Produktion der Vektorrechner ein. Cray hatte sich immer gegen diesen Ansatz gewehrt. Er beschrieb dies einmal so: „Wenn Sie ein Feld umpflügen wollen. Was nehmen Sie? 1024 Hühner oder zwei kräftige Ochsen?".
Die Cray 3 kam zu einem ungünstigen Zeitpunkt. Hauptkunden waren bisher vor allem Regierungsstellen gewesen, und hier dominierte in den USA vor allem die militärische Forschung. Mit dem Zusammenbruch des Ostblocks, sank für einige Jahre die Nachfrage nach Supercomputern rapide, zumal zum selben Zeitpunkt die USA begann ihre verschiedenen Computerzentren zu vernetzen, sodass es einen „landesweiten Supercomputer“ gab. Damit benötigte man auch weniger Rechner. Waren an einem Ort Kapazitäten frei, so konnte man sie anderswo nutzen.
Es verzögerte sich die Entwicklung der Cray 3 und die Auslieferung des ersten Exemplars verschob sich von 1991 auf 1993. Der einzige
Kunde sprang ab, und CCC konnte zwar das NCAR als neuen Kunden für eine kleinere Maschine gewinnen, doch diese wurde nicht bezahlt. CCC
ging 1995 in den Konkurs. Cray selbst starb am 3.10.1996 an den Folgen eines Autounfalls, den er am 22.9.1996 hatte.
Typ |
Erscheinung | Zykluszeit |
Takt | Speicherausbau |
Prozessoren |
Speichertechnologie |
MFLOPS pro Prozessor |
MFLOPS gesamt |
Kosten |
---|---|---|---|---|---|---|---|---|---|
Cray 1A |
1976 | 12,5 ns |
80 MHz | 1 MW |
1 |
ECL |
160 |
160 |
8,86 Mill. $ |
Cray 1B |
12,5 ns |
80 MHz | 0,5 MW |
1 |
ECL |
160 |
160 |
||
Cray 1C |
12,5 ns |
80 MHz | 0,25 MW |
1 |
ECL |
160 |
160 |
||
Cray 1S | 1979 | 12,5 ns | 80 MHz | 1 MW |
1 |
ECL |
160 |
160 |
13,3 Mill $ |
Cray 1M |
1982 | 12,5 ns |
80 MHz | 1,2,4 MW |
1 |
MOS |
160 |
160 |
4-7 Mill. $ |
Cray X-MP/1 |
1982 | 9,5 ns / 8.5 ns |
105 / 117 MHz | 1,2,4,8 MW |
1 |
MOS |
200 |
200 |
|
Cray X-MP/2 |
1982 | 9,5 ns / 8.5 ns |
105 / 117 MHz | 4,8,16 MW |
2 |
MOS |
200 |
400 |
|
Cray X-MP/4 |
1982 | 9,5 ns / 8.5 ns |
105 / 117 MHz | 8,16 MW |
4 |
ECL |
234 |
942 |
15 Mill. $ |
Cray Y-MP/8 |
1988 | 6 ns |
166 MHz | 32 MW |
8 |
SRAM |
333 |
2.300 |
30 Mill. $ |
Cray C90 |
1991 | 4,1 ns |
240 Mhz | 32 MB |
16 |
SRAM |
1.000 |
16.000 |
30 Mill. $ |
Cray T90 |
1995 | 2,2 ns |
450 MHz | 1.024 MW |
32 |
SRAM |
1.760 |
50.000 |
Cray 1 Reliabilty Report Los Alamo
Knowing Machines: Essays on Technical Change von Donald A. MacKenzie
Artikel zuletzt geändert: 1.5.2022
Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.
Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.
Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.
Mehr über das Buch auf dieser eigenen Seite.
Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.
Sitemap | Kontakt | Impressum / Datenschutz | Neues | Hier werben / advertisment here | Buchshop | Bücher vom Autor |