Dinosauriermaschinen und die Lust am Hacken

Seite 4: ENIAC

Der folgende Beitrag ist vor 2021 erschienen. Unsere Redaktion hat seither ein neues Leitbild und redaktionelle Standards. Weitere Informationen finden Sie hier.

Der erste elektronische Allzweckrechner war der ENIAC (Electronic Numerical Integrator And Computer), der im November 1945 an der Moore School of Engineering der University of Pennsylvania fertiggestellt und vor allem von Presper Ecker und John Mauchly gebaut wurde. Das Projekt wurde seit 1943 vom Ballistics Research Laboratory der US-Armee finanziert.

Auch wenn Mauchly einräumt, daß er selbst an Speicher aus Vakuumröhren gedacht hatte, besuchte er 1941 Atanasoff, um über elektronische Computer zu diskutieren. Daher beeinflußte letzten Endes Atanasoff das Denken von Mauchly. 1972 tauchte Atanasoff aus der Versenkung auf, um die Firma Honeywell bei einer Klage gegen die Ansprüche von Eckerts Firma Sperry Rand und Mauchlys Patente auf den UNIVAC Computer zu unterstützen, einem Nachfolger von ENIAC, den Eckert und Mauchly an Sperry Rand lizensiert hatten. Auch wenn Honeywell und Atanasoff den Prozeß gewonnen haben, so war dies möglicherweise ein Fehlurteil. Die Meinung der Computerhistoriker scheint zu sein, daß Eckert und Mauchly als Erfinder des elektronischen Computers gelten sollten. Erstens war ENIAC ein viel größere Maschine als die von Atanasoff, zweitens war ENIAC ein Allzweckrechner und drittens wurde er erfolgreich eingesetzt, um unabhängig voneinander gestellte Probleme zu lösen.

ENIAC

Der ursprüngliche Plan für den ENIAC sah vor, ihn zur schnellen Berechnung der Flugbahnen zu verwenden, die von Geschossen eingenommen werden, welche mit unterschiedlichen Abschußwinkeln und bei unterschiedlichen Lufttemperaturen abgefeuert wurden. Als das Projekt 1943 bewilligt wurde, berechnete man die Flugbahnen entweder mit der Brachialmethode, viele Schüsse vorzunehmen, oder mit der zeitverschlingenden Methode, daß Angestellte Schritt für Schritt die Bahnen der Geschosse nach Differntialgleichungen ausrechneten.

Der Zweite Weltkrieg war bereits vorbei, als der ENIAC fertig war und lief. Daher wurde er niemals zur Berechnung ballistischer Flugbahnen verwendet. Die erste vom ENIAC ausgeführte Berechnung diente dem Zweck, die Machbarkeit des Baus einer Wasserstoffbombe zu überprüfen. Man sprach davon, daß die Berechnung zuerst eine Million Lochkarten erforderte, wobei jede einen einzelnen "Massenpunkt" darstellte. Die Lochkarten wurden von ENIAC verarbeitet und eine Million neuer Karten generiert, die wiederum als Input für einen weiteren Berechnungsgang dienten. Informationen über das genaue Problem, das bearbeitet wurde, sind noch immer geheim. In Kapitel II biete ich eine Überlegung an, was das Ziel der Berechnung gewesen sein könnte.

Der Mann, der den Einfall hatte, das Programm für die Wasserstoffbombe auf dem ENIAC laufen zu lassen, war der berühmte Mathematiker John von Neumann. Er arbeitete im Waffenlaboratorium von Los Alamos, New Mexico, und war ein Berater der ENIAC-Gruppe, die aus Mauchly, Eckert und einigen anderen bestand.

John von Neumann

Von Neumann half ihnen, den Bauplan für einen neuen Computer mit dem Namen EDVAC (Electronic Delay Storage Automatic Calculator) ausführen. Verglichen mit dem ENIAC besaß der EDVAC einen besseren Speicher und zeichnete sich hauptsächlich dadurch aus, daß er über ein einfach zu veränderndes gespeichertes Programm verfügte. Auch wenn ENIAC seine Ausgangsdaten von Lochkarten ablas, konnte sein Programm nur mit der Hand verändert werden, indem man die Drähte auf einer Stecktafel anders schaltete und die Skaleneinstellungen veränderte. Der EDVAC machte es möglich, daß der Benutzer sowohl das Programm als auch die Daten mittels Lochkarten eingeben konnte.

Konzeptuell haben wir zwei verschiedene Speicherarten diskutiert: das Speichern von Zahlen und das Speichern von Befehlen. Wenn aber die Befehle an die Maschine auf einen numerischen Code reduziert werden und wenn die Maschine auf irgendeine Weise eine Zahl von einem Befehl unterscheiden kann, läßt sich der Speicher für die Speicherung von Zahlen und von Befehlen nutzen.

Von Neumann schrieb ein Dokument mit dem Titel "First Draft of a Report on the EDVAC" und sandte es im Juni 1945 an einige Wissenschaftler. Da der Name von Neumanns als einziger Autor des Berichts angegeben war, gilt er oft als der einzige Erfinder des modernen Konzepts eines gespeicherten Programms, was aber nicht ganz richtig ist. Das gespeicherte Programm war eine Idee, über die auch andere Mitglieder der ENIAC-Gruppe nachgedacht hatten - ganz zu schweigen von Charles Babbage und seiner Analytischen Maschine! Wie auch immer, der Name blieb hängen und die Konstruktion aller normalen Computer wird die "von Neumann Architektur" genannt.

Auch wenn diese Architektur nicht ganz aus der Hand von Neumanns stammte, so war er doch der erste, der wirklich erkannte, wie leistungsstark ein Computer sein kann, wenn er ein gespeichertes Programm besitzt. Und er war bedeutend genug, um für die Verwirklichung Druck auszuüben. Am Anfang erschien die Idee, Daten und Instruktionen zusammen in den Speicher eines Computers zu bringen, seltsam und häretisch, und man glaubte auch, daß es technisch zu schwierig sei.

Die technischen Schwierigkeiten beim Speichern der Instruktionen liegen darin, daß die Maschine auf diese Instruktionen schnell zugreifen können muß. Man könnte sich vorstellen, daß man dies beispielsweise durch das Speichern der Instruktionen auf einer sich schnell drehenden Rolle eines magnetischen Tonbands löst, aber es stellte sich heraus, daß auf die Instruktionen eines Programms nicht mittels eines einzigen linearen Ablesevorgangs zugegriffen wird, wie es für ein Tonband natürlich wäre. Die Ausführung eines Programms erfordert Verzweigungen, Schleifen und Sprünge. Die Instruktionen werden nicht in einer festgelegten seriellen Reihenfolge gebraucht. Was man wirklich benötigt, ist die Möglichkeit, alle Instruktionen so im Speicher abzulegen, daß die Maschine auf jede Stelle der Befehlsliste schnell zugreifen kann.

Weil ENIAC eine solch große Zahl von Vakuumröhren verwendete, stellten sich technische Probleme bei seinem Bau in der Größenordnung einer Cheopspyramide oder einer bemannten Fahrt zum Mond. Daß es überhaupt funktionierte, ließ eine starke Motivation entstehen, auch wenn deutlich war, daß etwas mit der Verwendung all dieser Röhren geschehen mußte, besonders wenn man ein möglichst langes Programm im Computerspeicher ablegen wollte.

Der Trick, den man bei den nächsten Computern zur Speicherung anwandte, war fast unglaublich eigenartig, und man erinnert sich daran kaum noch. Bits von Informationen wurden als akustische Wellen in Tanks aus flüssigem Quecksilber gespeichert! Diese Tanks oder Röhren nannte man auch "mercury delay lines". Ein normaler Quecksilbertank war ungefähr 1,4 Meter lang und besaß einen Durchmesser von 30 Zentimetern. An jedem Ende befand sich ein piezoelektrischer Kristall. Wenn man eine oszillierende Stromspannung an den Kristall leitet, wird dieser vibrieren, und wenn man umgekehrt einen dieser Kristalle mechanisch vibrieren läßt, wird er eine oszillierende Stromspannung aussenden. Die Idee war, eine Folge von Einsen und Nullen in elektrische Oszillationen umzusetzen, dieses Signal am einen Ende der Quecksilberleitung einzugeben, die Vibrationen durch das Quecksilber laufen zu lassen, die Vibrationen am anderen Ende der Leitung eine ausgehende Oszillation erzeugen zu lassen, dieses leicht abgeschwächte Signal zu verstärken, vielleicht die Nullen und Einsen abzulesen und dann das Signal, wenn eine weitere Speicherung erwünscht war, wieder zurück am Anfang der Quecksilberleitung einzugeben. Der Ausgang absorbierte den Strom, damit sich die Vibrationen nicht auf verwirrende Weise Signaleingang widerhallten.

Wieviele Bits konnte ein Quecksilbertank aufnehmen? Die Geschwindigkeit von Lauten oder Vibrationen beträgt im Quecksilber etwa 1000 Meter in Sekunden, daher braucht ein Signal etwa eine Tausendstel Sekunde, um durch einen Tank mit einer Meter Länge zu reisen. Indem man die vibrierenden Impulse eine Millionstel Sekunde lang machte, war es möglich, etwa 1000 Bits am Beginn des Quecksilbertanks einzugeben, bis sie am Ausgang einzutreffen begannen (und dort verstärkt und wieder zurückgesendet wurden). Dieses mit einem Stromkreis ausgestattete Quecksilberfaß konnte also 1000 Bits oder ungefähr 128 Bytes speichern. Heute kann natürlich ein RAM-Chip von der Größe eines Fingernagels mehrere Megabytes oder Millionen von Bytes speichern!

EDSAC

Als Eckert und Mauchly die University of Pennsylvania verließen, um ihre eigene Firma zu gründen, wurden die EDVAC-Projekte vorübergehend lahmgelegt. Der britische Wissenschaftler Maurice Wilkes baute erstmals nach den Maßgaben der von-Neumann-Architektur eine Maschine, die Programme speichern konnte. Wilkes Maschine, der EDSAC (Electronic Delay Storage Automatic Calculator, bei dem "Delay Storage" auf die zum Speichern verwendeten Quecksilberleitungen), wurde im Mai 1949 an der Cambridge University in Betrieb gesetzt. Wegen der Speichertanks aus Quecksilber benötigte EDSAC lediglich 3000 Vakuumröhren.

Als Student (an der Cambridge University) sah ich die Mercury Delay Lines in der alten EDSAC-Maschine, die es hier gab. Das Quecksilber befand sich in dickwandigen Glasröhren, die zwischen 2 und 2,5 Meter lang waren, und aus denen ständig das Quecksilber in die darunter befindlichen Auffangbehälter tropfte. Niemand schien sich damals (in den später 50er Jahren) übermäßig über die Gefahren einer Quecksilbervergiftung Sorgen zu machen.

John Horton Conway in einer EMail-Nachricht vom July 1996

Auch wenn Eckert und Mauchly ausgezeichnete Wissenschaftler waren, so hatten sie doch vom Geschäft wenig Ahnung. Nach ein paaren Jahren des Kampfes übergaben sie die Führung ihrer gefährdeten Computerfirma an Remington-Rand (heute Sperry-Rand). 1952 lieferte die Abteilung Eckert-Mauchley von Remington-Rand die ersten kommerziellen Computersysteme an das National Bureau of Standards. Die Maschinen hießen UNIVAC (Universal Automatic Computer). Der UNIVAV verfügte über eine Konsole, einige Lesesysteme für Tonbänder, ein paar Gehäuse mit Vakuumröhren und eine Anlage von Quecksilberleitungen in der Größe eines chinesischen Klos. Der RAM-Speicher betrug etwa ein Kilobyte und ein Computer kostete eine halbe Million Dollar.

UNIVAC

Bekannt wurde UNIVAC in der Öffentlichkeit während der Nacht der Präsidentschaftswahlen im Jahr 1952: Dwight Eisenhower gegen Aalai Stevenson. Als Werbecoup schaffte es Remington-Rand, daß Walter Cronkite von CBS eine mit UNIVAC errechnete Vorhersage des Wahlergebnisses auf der Grundlage von den ersten abgegebenen Stimmzetteln bekanntgab. Es war das erste Mal, daß diese jetzt geläufige Praxis durchgeführt wurde. Aus nur sieben Prozent der abgegebenen Stimmen sagte UNIVAC einen erdrutschartigen Sieg für Eisenhower voraus. Doch Arthur Draper, der Forschungsdirektor von Remington-Rand, hatte Angst, diese Vorhersage dem Sender CBS mitzuteilen! Die Befragungen ließen einen knappen Wahlausgang mit einer wirklichen Chance für einen Sieg Stevensons erwarten, und die Vorhersage von UNIVAC schien dem allzusehr zu widersprechen. Daher veranlaßte Draper, daß die Ingenieure von Remington-Rand schnell das UNIVAC-Programm abänderten, so daß es das erwartete Ergebnis voraussagte: einen knappen Sieg von Eisenhower. Als ein paar Stunden später deutlich wurde, daß Eisenhower tatsächlich weit vor seinem Konkurrenten lag, wandte sich Draper an das Fernsehen und gestand seine List, um das Ansehen von UNIVAC zu verbessern. Daraus läßt sich die Lehre ziehen, daß die Vorhersagen eines Computers nur so verläßlich sind wie die Annahmen des Programmierers.

Zu Beginn wurden nur wenige UNIVACs an Firmen verkauft. Langsam entschloß sich das riesige IBM-Unternehmen, auch ins Computergeschäft einzusteigen. Auch wenn die IBM-Maschinen nicht so gut wie die UNIVACs waren, so hatte das Unternehmen eine große Verkaufsabteilung, und die meisten Firmen benutzten gewohntermaßen IBM-Rechner und -Tabulatoren mit Lochkarten. 1956 hatte IBM mit 76 installierten Computern gegenüber 46 UNIVACs einen Vorsprung errungen.

Die 50er und 60er Jahre waren eine Zeit, in der mit Computern viele ihrer unangenehmen Aspekte assoziiert wurden. Es waren außerordentlich teure Maschinen, die nur von großen Unternehmen und der Regierung benutzt wurden. Normalerweise ließ man ein Programm auf einer dieser Maschinen laufen, indem man es in Codezeilen umschrieb und eine zentrale Lochkartenmaschine einsetzte, um jede Zeile als eine Lochkarte darzustellen. Man gab seinen kleinen Stapel an Lochkarten ab, und wenn sich eine ausreichende Menge angesammelt hatte, lief das Programm als Teil eines Programmstapels. Als Ergebnis erhielt man ein vom Computer bedrucktes Papier oder, was vielleicht typischer war, eine Reihe von kryptischen Fehlermitteilungen.