CDC 7600 - CDC 7600

CDC 7600
CDC7600 Hauptübersicht.png
3D-Rendering mit einer Figur als Maßstab
Design
Hersteller Control Data Corporation
Designer Seymour Cray
Veröffentlichungsdatum Juni 1967
Einheiten verkauft +75
Preis 62 bis 155 Tausend US-Dollar (monatliche Miete 1968)
Gehäuse
Maße Höhe: 188 cm (74
Zoll ) Breite: 302 cm (119 Zoll)
Leistung 95 kW @ 208 V 400 Hz
System
Betriebssystem Chippewa, SCOPE, KRONOS
Zentralprozessor 60-Bit- Prozessor @ 36 MHz
Erinnerung 3,84 Megabyte (bis zu 512000 60-Bit-Wörter)
MIPS 15 MIPS
FLOPS 36 MFLOPS
Vorgänger CDC 6600
Nachfolger CDC Cyber

Der CDC 7600 war der von Seymour Cray entwickelte Nachfolger des CDC 6600 , der die Dominanz von Control Data auf dem Gebiet der Supercomputer bis in die 1970er Jahre ausdehnte . Der 7600 lief mit 36,4 MHz (27,5 ns Taktzyklus) und verfügte über einen 65-Kword-Primärspeicher (mit einer 60-Bit-Wortgröße) mit Magnetkern und einen Sekundärspeicher mit variabler Größe (bis zu 512 Kword) (je nach Standort). Es war im Allgemeinen etwa zehnmal so schnell wie das CDC 6600 und konnte bei handkompiliertem Code etwa 10 MFLOPS liefern , mit einer Spitze von 36 MFLOPS. Darüber hinaus erwies es sich in Benchmark-Tests Anfang 1970 als etwas schneller als sein IBM- Konkurrent, das IBM System/360 , Modell 195. Als das System 1967 auf den Markt kam, wurde es in Basiskonfigurationen für rund 5 Millionen US-Dollar verkauft, und zwar beträchtlich mehr als Optionen und Funktionen hinzugefügt wurden.

Zu den bemerkenswerten Beiträgen des 7600 auf dem neuesten Stand der Technik, über das umfangreiche Pipelining hinaus , gehörte die physische C-Form, die sowohl die Stellfläche reduzierte als auch die Leistung erheblich steigerte, indem die Entfernung, die die Signale zurücklegen mussten, verringert wurde.

Design

Als sich der 6600 der Produktionsqualität näherte, verlor Cray das Interesse daran und wandte sich der Entwicklung seines Ersatzes zu. Eine Maschine "etwas" schneller zu machen, wäre in den späten 1960er Jahren nicht allzu schwierig; die Einführung integrierter Schaltkreise ermöglichte eine dichtere Packung von Komponenten und damit eine höhere Taktrate. Transistoren im Allgemeinen wurden auch etwas schneller, da sich die Produktionsprozesse und die Qualität verbesserten. Man könnte erwarten, dass diese Art von Verbesserungen eine Maschine doppelt so schnell macht, vielleicht sogar fünfmal. Doch wie schon beim 6600-Design hat sich Cray das Ziel gesetzt, eine Maschine mit zehnfacher Leistung zu produzieren.

Einer der Gründe, warum der 6600 so viel schneller war als seine Zeitgenossen, ist, dass er mehrere Funktionseinheiten hatte, die parallel betrieben werden konnten. Zum Beispiel könnte die Maschine eine Addition von zwei Zahlen durchführen und gleichzeitig zwei andere multiplizieren. Allerdings musste jede gegebene Anweisung ihre Reise durch die Einheit beenden, bevor die nächste in sie eingespeist werden konnte, was zu einem Engpass führte, wenn dem Schedulersystem die Anweisungen ausgingen. Das Hinzufügen weiterer funktionaler Einheiten würde die Leistung nicht verbessern, es sei denn, der Scheduler wurde ebenfalls stark verbessert, insbesondere im Hinblick auf mehr Speicher, sodass er mehr Anweisungen nach solchen durchsuchen könnte, die in die parallelen Einheiten eingespeist werden könnten. Das schien ein großes Problem zu sein.

Um dieses Problem zu lösen, wandte sich Cray dem Konzept einer Befehlspipeline zu . Jede Funktionseinheit bestand aus mehreren Abschnitten, die der Reihe nach betrieben wurden, beispielsweise könnte eine Additionseinheit eine Schaltung aufweisen, die dem Abrufen der Operanden aus dem Speicher gewidmet ist, dann die eigentliche mathematische Einheit und schließlich eine weitere, um die Ergebnisse zurück in den Speicher zu senden. Zu jedem Zeitpunkt war nur ein Teil der Einheit aktiv, während der Rest wartete, bis er an der Reihe war. Eine Pipeline verbessert dies, indem sie den nächsten Befehl einspeist, bevor der erste abgeschlossen ist, wodurch diese Leerlaufzeit verbraucht wird. Während beispielsweise ein Befehl zusammenaddiert wird, können die Operanden für den nächsten Addierbefehl abgerufen werden. Auf diese Weise warten die Operanden für die nächste Addition bereits darauf, hinzugefügt zu werden, sobald der aktuelle Befehl abgeschlossen ist und zur Ausgangsschaltung übergeht. Auf diese Weise arbeitet jede Funktionseinheit „parallel“ sowie die Maschine als Ganzes. Die Leistungssteigerung hängt im Allgemeinen von der Anzahl der Schritte ab, die das Gerät ausführen muss. Zum Beispiel benötigte die Multiplikationseinheit des 6600 10 Zyklen, um eine Anweisung zu vervollständigen, so dass durch das Pipelining der Einheiten erwartet werden kann, dass sie etwa die 10-fache Geschwindigkeit erreicht.

So einfach sind die Dinge jedoch nie. Das Pipelining erfordert, dass die Interna der Einheit so weit getrennt werden können, dass jeder Schritt des Vorgangs auf vollständig getrennten Schaltkreisen ausgeführt wird. Dies ist in der realen Welt selten zu erreichen. Dennoch verbesserte die Verwendung von Pipelining beim 7600 die Leistung gegenüber dem 6600 um etwa den Faktor 3. Um den Rest des Ziels zu erreichen, müsste die Maschine mit einer höheren Geschwindigkeit laufen, was jetzt mit neuen Transistordesigns möglich ist. Allerdings gibt es aufgrund der Zeit, die Signale benötigen, um sich zwischen Teilen der Maschine zu bewegen, eine physikalische Grenze für die Leistung, die wiederum durch ihre physikalische Größe definiert wird. Wie immer hat sich Crays Konstruktionsarbeit diesem Problem mit großem Aufwand gewidmet und ermöglicht somit höhere Betriebsfrequenzen. Beim 7600 bestand jedes Schaltungsmodul tatsächlich aus bis zu sechs Leiterplatten , jede davon vollgestopft mit Subminiatur-Widerständen, Dioden und Transistoren. Die sechs Platinen wurden übereinander gestapelt und dann entlang ihrer Kanten miteinander verbunden, wodurch ein sehr kompaktes, aber im Grunde unreparierbares Modul entstand.

Die gleiche dichte Packung führte jedoch auch zum größten Problem der Maschine – der Hitze. Für den 7600 wandte sich Cray erneut an seinen Kältetechniker Dean Roush, ehemals bei der Firma Amana . Roush fügte auf der Rückseite jeder Seite des Kordholzstapels eine Aluminiumplatte hinzu , die wiederum von einem Flüssigkeits-Freon-System gekühlt wurde, das durch den Kern der Maschine lief. Da dieses System mechanisch und daher fehleranfällig war, wurde das 7600 in eine große "C"-Form umgestaltet, um Zugang zu den Modulen auf beiden Seiten der Kühlleitung zu ermöglichen, indem man in das Innere des "C" geht und den Schrank öffnet .

Die Architektur

Der 7600 war ein architektonisches Wahrzeichen, und die meisten seiner Funktionen sind immer noch Standardbestandteile des Computerdesigns. Es ist ein Computer mit reduziertem Befehlssatz und einem 15-Bit-Befehlswort, das einen 6-Bit-Operationscode enthält. Es gibt nur 64 Maschinencodes, einschließlich eines No-Operation-Codes , ohne Festkomma-Multiplikations- oder Divisionsoperationen im Zentralprozessor.

Der 7600 hat zwei Hauptspeicher. Ein kleiner Kernspeicher enthält die aktuell ausgeführten Befehle und die aktuell verarbeiteten Daten. Es hat eine Zugriffszeit von 10 der 27,5-ns-Minor-Zyklen und eine Wortlänge von 60 Bit. Ein großer Kernspeicher hält Daten bereit, die in einen kleinen Kernspeicher übertragen werden können. Es hat eine Zugriffszeit von 60 der 27,5-ns-Minor-Zyklen und eine Wortlänge von 480 Bit (512 Bit mit Parität). Die Zugriffe werden vollständig gepipelinet und gepuffert, sodass die beiden die gleiche sequentielle Übertragungsrate von 60 Bit alle 27,5 ns haben. Die beiden arbeiten parallel, so dass die sequentielle Übertragungsrate von einem zum anderen 60 Bit pro 27,5 ns Nebenzyklus beträgt. Bei einem Betriebssystemaufruf wird der Inhalt des kleinen Kernspeichers ausgelagert und vom Betriebssystem aus dem großen Kernspeicher ersetzt und anschließend wiederhergestellt.

Es gibt eine 12-Wort-Befehlspipeline, die in der CDC-Dokumentation Befehlswortstapel genannt wird. Alle Adressen im Stack werden geholt, ohne auf die Verarbeitung des Befehlsfeldes zu warten. Daher geht das Abrufen des Zielbefehls einer bedingten Verzweigung der Auswertung der Verzweigungsbedingung voraus. Während der Ausführung einer 10-Wort-Schleife (bis zu 40 Befehle) verbleiben alle benötigten Befehle im Stack, sodass keine Befehle abgerufen werden und ein kleiner Kernspeicher für Datenübertragungen frei bleibt.

Es gibt acht 60-Bit-Register mit jeweils einem Adressregister. Das Verschieben einer Adresse in ein Adressregister startet ein Lesen oder Schreiben eines kleinen Kernspeichers. Arithmetische und logische Befehle haben diese Register als Quellen und Ziele. Der Programmierer oder Compiler versucht, die zu verwendenden Daten rechtzeitig abzurufen und Daten zu speichern, bevor weitere Daten das gleiche Register benötigen, aber wenn es nicht bereit ist, geht der Prozessor in einen Wartezustand über, bis dies der Fall ist. Es wartet auch, wenn eine der vier Gleitkomma-Recheneinheiten auf Anforderung nicht bereit ist, aber aufgrund von Pipelining geschieht dies normalerweise nicht.

Beziehung zum CDC 6600

Der CDC 7600 "wurde so konzipiert, dass er mit dem 6600 aufwärts kompatibel mit Maschinencode ist, aber eine erhebliche Leistungssteigerung bietet". Ein Benutzer sagte: "Die meisten Benutzer könnten ohne Änderungen auf beiden Systemen laufen."

Obwohl die 7600 teilten viele Merkmale der 6600, einschließlich Hardware, Anweisungen und seine 60-Bit - Wortgröße, war es nicht Objekt-Code kompatibel mit den CDC 6600. Darüber hinaus war es nicht ganz Source-Code ( COMPASS ) kompatibel, da einige Anweisungen im 7600 nicht im 6600 vorhanden waren und umgekehrt. Es war ursprünglich CDC 6800 genannt worden, wurde aber in 7600 geändert, als Cray entschied, dass es nicht vollständig kompatibel sein konnte. Aufgrund des Betriebssystemdesigns des 7600 teilten sich der 6600 und der 7600 jedoch trotz der geringen Unterschiede eine "einheitliche Softwareumgebung".

Tatsächlich war der 7600 aus einer übergeordneten Perspektive dem 6600 ziemlich ähnlich. Zu dieser Zeit konnte der Computerspeicher in Blöcken mit unabhängigen Zugriffspfaden angeordnet werden, und Crays Designs nutzten dies zu ihrem Vorteil. Während die meisten Maschinen eine einzige CPU verwenden würden, um alle Funktionen des Systems auszuführen, erkannte Cray, dass dies bedeutete, dass jeder Speicherblock eine beträchtliche Zeit im Leerlauf verbrachte, während die CPU Anweisungen verarbeitete und auf andere Blöcke zugegriffen hat. Um sich dies zunutze zu machen, überließen die 6600 und 7600 die alltäglichen Haushaltsaufgaben, etwa das Drucken von Ausgaben oder das Lesen von Lochkarten , einer Reihe von zehn kleineren 12-Bit-Maschinen auf Basis des CDC 160A, den sogenannten "Peripheral Processor Units", oder PPUs. Für jeden gegebenen Zyklus der Maschine hatte eine der PPUs die Kontrolle und speiste Daten in den Speicher ein, während der Hauptprozessor Zahlen verarbeitete. Als der Zyklus abgeschlossen war, wurde der nächsten PPU die Kontrolle gegeben. Auf diese Weise hielt der Speicher immer aktuelle Informationen für den Hauptprozessor bereit (mit Ausnahme von Verzögerungen in den externen Geräten selbst), wodurch Datenverzögerungen vermieden und die CPU für mathematische Leistung und nichts anderes ausgelegt werden konnte . Die PPU hätte man als sehr smarten „Kommunikationskanal“ bezeichnen können.

Wie der 6600 verwendete der 7600 60-Bit-Wörter mit Befehlen, die im Allgemeinen 15 Bit lang waren, obwohl es auch 30-Bit-Befehle gab. Die Befehle wurden in die 60-Bit-Wörter gepackt, aber ein 30-Bit-Befehl konnte nicht zwei Wörter überspannen, und die Steuerung konnte nur an den ersten Befehl in einem Wort übertragen werden. Der Befehlssatz selbst hatte sich jedoch geändert, um das neue interne Speicherlayout widerzuspiegeln, wodurch er mit dem früheren 6600 inkompatibel wurde. Die Maschinen waren ähnlich genug, um eine Portierung von Compilern und Betriebssystemen ohne allzu große Probleme zu ermöglichen. Die Maschine wurde zunächst nicht mit Software geliefert; Sites mussten bereit sein, ihr eigenes Betriebssystem zu schreiben, wie LTSS, NCAROS und andere; und Compiler wie LRLTRAN (Livermores Version von Fortran mit dynamischer Speicherverwaltung und anderen nicht standardmäßigen Funktionen).

CDC stellte auch zwei Multiprozessor-Computer auf Basis des 7600 mit der Modellnummer 7700 her. Sie bestanden aus zwei 7600-Maschinen in asymmetrischer Konfiguration: einer zentralen und einer zusätzlichen Maschine. Sie wurden für den Raketenstart und die eingehende Verfolgung von Interkontinentalraketen der UdSSR verwendet . Der Radarsimulator war ein Echtzeitsimulator mit einem CDC 6400 für das Eingabe-/Ausgabe-Frontend. Diese Systeme sollten in der Pacific Missile Range eingesetzt werden . Ein Computer wurde bei TRW in Redondo Beach CA installiert (später auf das Kwajalein Atoll, Südpazifik verlegt), und der zweite wurde bei McDonnell Douglas in Huntington Beach, Kalifornien, installiert . Sie waren echte 7600er, die durch Chassis 25 verbunden waren, um sie zu 7600 MP zu machen.

Empfang und Nutzung

Von etwa 1969 bis 1975 galt der CDC 7600 allgemein als der schnellste Computer der Welt, abgesehen von spezialisierten Einheiten. Trotz der fortschrittlichen Mechanik und Kühlung war der 7600 jedoch anfällig für Ausfälle. Sowohl LLNL als auch NCAR berichteten, dass die Maschine mindestens einmal am Tag und oft vier- oder fünfmal ausfallen würde. Die Akzeptanz an den Installationsstandorten dauerte Jahre, während die Fehler behoben wurden, und obwohl sich die Maschine angesichts ihrer "High-End" -Nische im Allgemeinen gut genug verkaufte, ist es unwahrscheinlich, dass die Maschine für CDC wirkliche Gewinne erzielte. Der Nachfolger CDC 8600 wurde nie fertiggestellt und Seymour Cray gründete sein eigenes Unternehmen Cray Research .

Ein überlebender 7600 ist teilweise im Computer History Museum ausgestellt . Durch seine schiere Größe können nur zwei Eckmöbel gezeigt werden. Der Rest ist im Lager. Ein weiterer 7600 ist zusammen mit seiner Konsole und einem Bandcontroller im Chippewa Falls Museum of Industry and Technology ausgestellt .

Verweise

Externe Links

Fotos

Aufzeichnungen
Vorangegangen von
CDC 6600
3 Megaflops
Leistungsstärkster Supercomputer der Welt
1969–1975
Nachgefolgt von
Cray-1
136 Megaflops