mini|Die CDC 6600. Hinter der Systemkonsole befinden sich zwei „Arme“ des kreuzförmigen Gehäuses mit geöffneten Verkleidungen. Innen sind einzelne Module zu sehen. Die Halterungen der Module sind angelenkt, um die dahinter liegenden Halterungen zugänglich zu machen. Jeder Arm der Maschine hatte bis zu vier solcher Halterungen. Rechts sieht man das Kühlsystem. mini|Grund- und Aufriss der CDC 6600 mit Bemaßung mini|Systemkonsole eines CDC-6600-Systems. Bei diesem fortschrittlichen Design ersetzten Bildschirme und Tastatur die an damaligen Systemkonsolen üblichen Hunderte von Schaltern und Kontrollleuchten. Die softwaregesteuerten Bildschirme dienten zur Textanzeige in drei wählbaren Schriftgrößen und vermochten auch einfache Grafiken zu zeichnen. Im Gegensatz zu modernen Rastergrafik-Bildschirmen hatte die Konsole zwei Vektorbildschirme; in deren FontEine Probe dieser eigentümlichen Schrift findet sich auf der Titelseite von bestand jede Glyphe aus einer Reihe von Vektoren. Autovervollständigung von Schlüsselwörtern erlaubte eine schnellere Befehlseingabe.

Die CDC 6600 war das Flaggschiff der Großrechnersysteme aus der CDC-6000-Serie der Control Data Corporation. Allgemein als erster erfolgreicher Supercomputer angesehen, übertraf sie den vorherigen Rekordhalter der Branche, die IBM 7030 Stretch, um den Faktor drei. Mit einer Leistung von bis zu 3 MegaFLOPS war die CDC 6600 von 1964 bis 1969 schnellster Computer der Welt, bis sie diesen Status an ihren Nachfolger, die CDC 7600, verlor.

Viele Exemplare wurden an verschiedene Kernwaffen-Labors geliefert, und einige fanden ihren Weg in die Computerlabors der Universitäten. Eine CDC 6600 ist im Computer History Museum in Mountain View (Kalifornien) ausgestellt. Die einzige noch lauffähige Maschine der CDC-6000-Serie wurde am Living Computers: Museum + Labs in Seattle restauriert und kann dort online genutzt werden.

Geschichte und Wirkung

Die ersten Produkte von CDC basierten auf den bei ERA entwickelten Maschinen, die Seymour Cray nach seinem Wechsel zu CDC aktualisieren musste. Nach einer experimentellen Maschine namens Little Character wurde 1960 die CDC 1604 ausgeliefert, einer der ersten kommerziellen Computer auf Transistorbasis und eine der schnellsten Maschinen auf dem Markt. Das Management zeigte sich erfreut und plante eine neue Serie von Maschinen, die stärker auf die geschäftliche Nutzung zugeschnitten waren. Sie sollten beispielsweise Anweisungen für die Zeichenverarbeitung und das Speichern von Datensätzen enthalten. Cray war an einem solchen Projekt nicht interessiert und setzte sich zum Ziel, eine neue Maschine zu produzieren, die 50-mal schneller als die 1604 sein sollte. Als er gebeten wurde, einen detaillierten Bericht über die Pläne in einem und fünf Jahren in der Zukunft zu erstellen, schrieb er zurück, sein Fünfjahresziel sei, „den größten Computer der Welt zu produzieren“ – „der größte“ seinerzeit synonym mit „der schnellste“ – und sein Einjahresplan lautete, „ein Fünftel des Weges geschafft zu haben“.

Nach Umzug in ein neues Büro in der Nähe des ursprünglichen CDC-Hauptquartiers begann sein Kernteam, mit hochwertigen Versionen der „billigen“ Transistoren zu experimentieren, die Cray bei der 1604 verwendet hatte. Nach langen Versuchen stellten sie fest, dass sich Transistoren auf Germanium-Basis einfach nicht viel schneller betreiben ließen als bei der 1604. Die „Business-Maschine“, die das Management ursprünglich wollte und die sich jetzt als CDC 3000-Serie formierte, reizte sie so weit aus wie möglich. Als Lösung entschied Cray dann, mit den damals neuen Silizium-basierten Transistoren von Fairchild Semiconductor zu arbeiten, die gerade auf den Markt kamen und eine dramatisch verbesserte Schaltleistung boten.

In dieser Zeit wuchs CDC von einem Startup zu einem großen Unternehmen, und Cray wurde zunehmend frustriert über die seiner Ansicht nach lächerlichen Managementanforderungen. Die Situation spitzte sich zu, als sich 1962 die neue CDC 3600 der Produktionsreife näherte und genau das zu werden schien, was die Geschäftsleitung wollte und als sie es wollte. Cray sagte schließlich dem CEO von CDC, William Norris, dass sich etwas ändern müsse, sonst würde er das Unternehmen verlassen. Norris fand, dass er zu wichtig sei, um ihn zu verlieren, und gab Cray grünes Licht, ein neues Labor einzurichten, wo immer er wollte.

Nach kurzer Suche entschloss sich Cray, in seine Heimatstadt Chippewa Falls (Wisconsin) zurückzukehren, wo er ein Stück Land kaufte und ein neues Labor eröffnete.

Obwohl dies zu einer längeren Verzögerung bei der Konstruktion seiner neuen Maschine führte, begann die Entwicklung im neuen Labor ohne Eingriffe des Managements rasch. Zu dieser Zeit wurden die neuen Transistoren ziemlich zuverlässig, und mit ihnen gebaute Module funktionierten meist auf Anhieb einwandfrei. Die 6600 nahm Gestalt an, wobei Cray mit Jim Thornton, Systemarchitekt und „heimlichem Genie“ der 6600, zusammenarbeitete.

Die ersten CDC 6600 wurden 1965 an Livermore und Los Alamos ausgeliefert. Sie wurden schnell zu einem unentbehrlichen System in wissenschaftlichen und mathematischen Rechenkreisen, wobei Systeme an das Courant Institute of Mathematical Sciences, das CERN, das Lawrence Radiation Laboratory und viele andere geliefert wurden. Insgesamt wurden etwa 50 Exemplare ausgeliefert, nach anderen Quellen über 100.

Cray wandte sich sofort ihrem Nachfolgemodell zu, das als CDC 7600 ausgeliefert werden sollte, und setzte sich dafür das Zehnfache der Leistung der 6600 als Ziel. Die späteren CDC Cyber 70- und 170-Computer waren der CDC 6600 im Gesamtdesign sehr ähnlich und nahezu vollständig abwärtskompatibel.

Die 6600 war dreimal schneller als die vorherige Rekordhalterin, die IBM 7030 Stretch; dies alarmierte IBM. Der damalige CEO Thomas J. Watson, Jr. schrieb ein Memo an seine Mitarbeiter: „Letzte Woche hat Control Data … das 6600-System angekündigt. Meines Wissens arbeiten im Labor, das das System entwickelt, nur 34 Personen, einschließlich des Hausmeisters. Davon sind 14 Ingenieure und 4 Programmierer … Wenn ich diese bescheidenen Anstrengungen mit unseren umfangreichen Entwicklungsaktivitäten vergleiche, kann ich nicht nachvollziehen, warum wir unsere branchenführende Position verloren haben, indem wir jemand anderes den leistungsstärksten Computer der Welt anbieten lassen.“ Crays Antwort war sardonisch: „Es scheint, als hätte Mr. Watson seine eigene Frage beantwortet.“An exact image of the memo appears in:

Beschreibung

Typische Maschinen dieser Zeit verwendeten eine einzige CPU, um das gesamte System zu betreiben. Ein typisches Programm lud zuerst Daten in den Hauptspeicher (häufig unter Verwendung von vorgefertigtem Bibliothekscode), verarbeitete sie und schrieb sie dann zurück. Diese vielfältigen Aufgaben erforderten einen umfangreichen Befehlssatz und damit eine komplexe CPU. Dies wiederum implizierte eine große CPU, was zu Signalverzögerungen führte, während Informationen zwischen ihren einzelnen Modulen flossen. Diese Verzögerungen begrenzten die Leistung der Maschine; sie konnte nur mit einer Taktrate arbeiten, die es den Signalen erlaubte, rechtzeitig das nächste Modul zu erreichen.

Cray wählte einen anderen Ansatz. Zu dieser Zeit liefen CPUs in der Regel langsamer als der Arbeitsspeicher, an den sie angeschlossen waren. Beispielsweise benötigte ein Prozessor 15 Zyklen, um zwei Zahlen zu multiplizieren, während für jeden Speicherzugriff nur ein oder zwei erforderlich waren. Dies bedeutete, dass der Arbeitsspeicher während eines erheblichen Zeitanteils inaktiv war. Es war diese Leerlaufzeit, die die 6600 ausnutzte.

Die CDC 6600 verwendete einen vereinfachten Hauptprozessor, der so ausgelegt war, dass er mathematische und logische Operationen möglichst schnell ausführen konnte. Dazu musste er so klein wie möglich gebaut werden, um die Länge der Verkabelung und die damit verbundenen Signalverzögerungen zu verringern. Dies führte zum (meist) kreuzförmigen Hauptgehäuse der Maschine, in dem die Leiterplatinen für die CPU nahe der Mitte angeordnet waren. Die CPU wurde von zehn Peripherieprozessoren unterstützt, die zur Ein-/Ausgabe und zum Datentransfer an die CPU dienten. Die 6600 verwendete ein 60-Bit-Wort und eine Einerkomplement-Darstellung von Ganzzahlen, was spätere CDC-Maschinen bis in die späten 1980er-Jahre beibehielten. Damit waren sie neben der UNIVAC 1100/2200 und einigen DSPs die letzten Systeme mit einer derartigen Architektur.

Anstatt wie andere CPUs alle Rechen- und Steueraufgaben zu erledigen, führten die 6600-CPUs nur Arithmetik- und Logikoperationen aus. Dies ermöglichte eine viel kleinere CPU, die mit einer höheren Taktrate arbeiten konnte. In Kombination mit der höheren Schaltgeschwindigkeit der Siliziumtransistoren übertraf das neue CPU-Design alle damals verfügbaren Alternativen bei Weitem. Das neue Design lief mit 10 MHz (100-ns-Takt) etwa zehnmal schneller als andere Maschinen auf dem Markt. Der einfache Prozessor war nicht nur schneller, sondern führte auch Befehle in weniger Taktzyklen aus. Beispielsweise konnte die CPU eine Multiplikation in zehn Zyklen durchführen.

Peripherieprozessoren (Eigenschaften)

Die CPU hatte dabei nur einen eingeschränkten Befehlssatz aus einfachen Instruktionen: Während typische CPUs der Ära über einen komplexen Befehlssatz verfügten, der auch Anweisungen für alle normalen „Housekeeping“-Aufgaben wie Speicherzugriff und Ein-/Ausgabe umfasste, implementierte Cray diese Befehle bei der 6600 stattdessen in separaten, einfacheren „Peripherieprozessoren“ (PPs), die ausschließlich für solche Aufgaben vorgesehen waren. Dadurch kam die CPU mit einem viel kleineren Befehlssatz aus. Dies war die erste Implementation dessen, was später als Reduced Instruction Set Computer (RISC) bezeichnet wurde.

Durch den parallelen Betrieb von CPU, Peripherieprozessoren (PPs) und E/A wurde die Leistung der Maschine erheblich gesteigert. Normalerweise hätte eine Maschine mit mehreren Prozessoren auch viel mehr gekostet. Der Schlüssel zum Design der 6600 bestand darin, die PPs so einfach wie möglich zu gestalten. Sie basierten auf der einfachen 12-Bit-CDC 160-A, die viel langsamer als die CPU lief, Daten sammelte und über dedizierte Hardware mit hoher Geschwindigkeit als Bursts in den Hauptspeicher übertrug.

Die 10 PPs wurden virtuell implementiert; nur einen Prozessor gab es als Hardware. Dieser arbeitete mit 10 PP-Registersätzen zusammen, die die 10 PP-Instanzen repräsentierten (ähnlich modernen Multithreading-Prozessoren) und als barrel (Fass) bezeichnet wurden. Bildlich gesprochen, „drehte“ sich das barrel schrittweise, wobei umlaufend jeder PP-Registersatz über einen slot der PP-CPU zugeordnet wurde. Die CPU führte den Befehl des jeweiligen PP ganz oder teilweise aus, woraufhin sich das barrel wieder „drehte“ und der CPU den Registersatz (Zustand) des nächsten PP zuordnete. Es waren mehrere „Umdrehungen“ des barrel erforderlich, um eine Anweisung abzuarbeiten. Eine vollständige barrel-„Drehung“ dauerte 1000 Nanosekunden (100 Nanosekunden pro PP), und eine Anweisung benötigte eine bis fünf „Umdrehungen“, oder noch mehr im Fall eines Datenübertragungsbefehls.

Befehlssatz-Architektur