ENIAC

ENIAC auf einem Bild der US-Armee

Der ENIAC (kurz für Electronic Numerical Integrator and Computer) war der erste elektronische digitale Universalrechner und einer der ersten Computer überhaupt. Im Auftrag der US-Armee wurde er ab 1942 von J. Presper Eckert und John W. Mauchly an der Universität von Pennsylvania entwickelt und am 16. Februar 1946 offiziell in Dienst gestellt. Bis zu seiner Abschaltung am 2. Oktober 1955 diente er der US-Armee zur Berechnung ballistischer Tabellen.

Ähnlich dem Atanasoff-Berry-Computer (1938-1942) und dem Britischen Colossus (1943), einem kryptographischen Spezialrechner, benutzte der ENIAC Elektronenröhren zur Repräsentation von Zahlen und elektrische Pulse für deren Übertragung. Dies bewirkte eine deutlich höhere Rechenleistung als die von Konrad Zuses Z3 (1941), die zwar eine vergleichsweise moderne Architektur aufwies, aber noch auf mechanischen Relais basierte. Wie der ASCC (erbaut zwischen 1939 und 1944, auch bekannt als Mark I) verwendete der ENIAC ein Dezimalsystem zur Darstellung von Zahlen.

Datei:Grundriss ENIAC.JPG
Grundriss des ENIAC

Der ENIAC bestand aus 40 parallel arbeitenden Komponenten, von denen jede 60cm breit, 270cm hoch und 70cm tief war. Die komplette Anlage war in U-Form aufgebaut, beanspruchte eine Fläche von 10x17m und wog 27t. Der Stromverbrauch der 17.468 Elektronenröhren, 7.200 Dioden, 1.500 Relais, 70.000 Widerstände und 10.000 Kondensatoren lag bei 174kW. Der Bau des ENIAC kostete 468.000$, ein Betrag, der nur aufgrund des hohen Bedarfs an Rechenleistung seitens der US-Armee zur Verfügung stand. Im Vergleich zu seinen Vorgängern beeindruckt der ENIAC schon durch seine schiere Größe.

Der ENIAC konnte addieren, subtrahieren, multiplizieren, dividieren und Quadratwurzeln ziehen. Er wurde programmiert, indem man die einzelnen Komponenten mit Kabeln verband und die gewünschten Operationen auf Drehschaltern einstellte. Eine Addition/Subtraktion brauchte 0,2 Millisekunden, eine Multiplikation bis zu 2,8 ms, eine Division bis zu 24 ms und eine Quadratwurzel mehr als 300 ms. Der ENIAC wurde anfangs nur von Frauen programmiert, den "ENIAC-girls", meist studierte Mathematikerinnen. Sie hatten zuvor an der Heimatfront ballistische Berechnungen an mechanischen Tischrechnern durchgeführt.

Röhrenhalter des ENIAC

Ein großes Problem bei der Entwicklung des ENIAC war die Fehleranfälligkeit der Elektronenröhren. Wenn nur eine der 17.468 Röhren ausfiel, rechnete die gesamte Maschine fehlerhaft. Um die Kosten dieser unvermeidlichen Ausfälle gering zu halten, wurden in den ENIAC eigens Diagnoseprogramme eingebaut, die das Auffinden einer auszutauschenden Röhre erleichterten. Außerdem wurde bemerkt, dass mehr Röhren beim Ein- und Ausschalten kaputt gingen, als während des laufenden Betriebs. Als Konsequenz ging man dazu über, den ENIAC einfach nicht mehr auszuschalten. Die Ausfallzeit konnte so auf nur wenige Stunden je Woche reduziert werden, ein den Umständen entsprechend hervorragendes Ergebnis.

Als Testlauf kurz vor seiner Fertigstellung wurden Ende 1945 Berechnungen im Rahmen der Entwicklung der Wasserstoffbombe durchgeführt. Dies war jedoch eine Ausnahme. Von Philadelphia aus zog der ENIAC 1947 ins nahegelegene Ballistic Research Lab in Aberdeen um und berechnete bis zu seiner Abschaltung Geschossbahnen.

Mauchly und Eckert gründeten 1946 eine Computerfirma, die später von Remington Rand übernommen wurde. Der ENIAC wurde 1947 zum Patent angemeldet. Im Jahr 1967 kam es zu einem langjährigen Gerichtsstreit über die Gültigkeit des Patents. 1973 wurde es schließlich für ungültig erklärt, da bereits Atanasoffs ABC einige Eigenschaften aufwies, die für den ENIAC patentiert waren. Da Mauchly während eines Besuches bei Atanasoff im Jahr 1941 Gelegenheit hatte, den ABC zu studieren, und wahrscheinlich einige Inspiration daraus zog, wurde der ENIAC vom Gericht als abgeleitetes Werk angesehen. Der Ruhm für die Erfindung des ersten elektronischen Rechners, den Mauchly und Eckert bis dahin geteilt hatten, geht seither auf Atanasoff über.

Nichtsdestoweniger war der Bau des ENIAC eine Glanzleistung und vielleicht der größte Schritt in der Entwicklung des Computers, der jemals gemacht wurde.

Funktionsweise des ENIAC

Grundlegende Komponente für die Funktion des ENIAC war der Akkumulator, der eine 10-stellige vorzeichenbehaftete Dezimalzahl speichern sowie addieren und subtrahieren konnte. Jeder der 20 Akkumulatoren konnte eine solche Rechenoperation in 0,2 Millisekunden durchführen. Dieses Zeitintervall wird auch als Additionszyklus bezeichnet. Für Rechnungen mit doppelter Genauigkeit ließen sich zwei Akkumulatoren zusammenschalten.

Weitere arithmetische Komponenten waren der Multiplikator (3 Exemplare) und der Divider/Square-Rooter. Ein Multiplikator implementierte eine Multiplikationstabelle, nach der ein Unterprogramm gesteuert wurde, das auf 4 Akkumulatoren lief. Eine Multiplikation dauerte (je nach Länge der Zahlen) bis zu 2,8 Millisekunden. Ähnlich war auch der Divider/Square-Rooter konstruiert, der für eine Division bzw. Quadratwurzel bis zu 65 Millisekunden (13 Additionszyklen je Ziffer) benötigte. Die Programmierung komplexer Berechnungen war mit dem Master Programmer (2 Exemplare) möglich, der rekursive Programmierung erlaubte.

Für den Start der Anlage war die Initiating Unit zuständig. Beim Einschalten des ENIAC nahmen die Flipflops zufällige Werte an, sodass die Komponenten in einem undefinierten Zustand waren. Durch ein spezielles Programm der Initiating-Unit konnten die Flipflops in einen definierten Zustand gebracht, und z. B. die Akkumulatoren mit 0 initialisiert werden. Des Weiteren hatte die Initiating-Unit einen Startknopf, mit dem ein ENIAC-Programm manuell gestartet wurde. Als Taktgeber diente die Cycling Unit, die die anderen Komponenten über statische Kabel mit Steuerpulsen versorgte. Sie konnte auch in einen Schritt-für-Schritt-Modus geschaltet werden, der die Fehlersuche vereinfachte.

Als ROM dienten der Constant Transmitter (bestehend aus 3 Komponenten) und die Function Tables (3 Komponenten, je 3 Exemplare). Ersterer diente hauptsächlich zur Ansteuerung eines Lochkartenlesers. Auf letzteren wurden je 104 zehnstellige Dezimalzahlen (allerdings nur 6 Stellen individuell einstellbar) bei einer Zugriffszeit von 5 Additionszyklen gespeichert. Rechenergebnisse konnten auch gedruckt werden: Über das Printer Panel (bestehend aus 3 Komponenten) konnte ein Lochkartendrucker angesteuert werden.

Eine unmittelbare visuelle Ausgabe war in die Akkumulatoren integriert: Im oberen Bereich der Komponente gab es 102 Neonbirnchen zur Anzeige der aktuell gespeicherten Zahl (je 10 für jede der 10 Ziffern, 2 für das Vorzeichen). Anlässlich der ersten öffentlichen Präsentation des ENIAC im Februar 1946 stülpte man einen halbierten Tischtennisball über jede Leuchte – ein Design, das Vorbild für viele folgende Computer war und geradezu stilbildend für die damalige Science-Fiction.

Die Komponenten des ENIAC waren statisch miteinander verbunden, um die Taktimpulse der Cycling Unit zu empfangen. Weitere statische Verbindungen gab es zwischen den zusammenarbeitenden Komponenten (z.B. zwischen einem Multiplikator und den 4 zugeordneten Akkumulatoren). Alle weiteren Verbindungen für den Ablauf eines Programmes mussten manuell gesteckt werden. Für die Übermittlung von Programmpulsen gab es auf Fußhöhe waagerecht verlaufende Kabel in Program Trays, für Zahlenpulse wurden die Digit Trays in Kopfhöhe genutzt. An Trays und Komponenten gab es Buchsen, in die Kabel gesteckt werden konnten.

Ein deutlicher architektonischer Nachteil des ENIAC war das Fehlen eines Befehlsspeichers. Schon die Z3 und der Mark I lasen ihre Befehle von einem Magnetband, während der ENIAC für jedes Programm neu verkabelt werden musste. Nach Ideen John von Neumanns wurde der ENIAC 1948 zu einem Computer mit Befehlsspeicher umgebaut. Dies verlangsamte seine Rechenleistung auf 1/6, aber die Dauer des Umprogrammierens verringerte sich ebenfalls, sodass insgesamt ein Zeitgewinn erzielt wurde.

Referenzen

  • J. P. Eckert Jr., J. W. Mauchly, H. H. Goldstine, J. G. Brainerd: Description of the ENIAC and Comments on Electronic Digital Computing Machines. Moore School of Electrical Engineering, University of Pennsylvania, 1945.
  • H. H. Goldstine, A. Goldstine (1946): The Electronic Numerical Integrator and Computer (ENIAC). In B. Randell (Eds.): The Origins of Digital Computers, Springer-Verlag (1982).
  • J. Van der Spiegel, J. F. Tau, T. F. Ala'ilima, and L. P. Ang (2000). The ENIAC: History, Operation and Reconstruction in VLSI. In R. Rojas (Eds.): The First Computers; History and Architectures, MIT Press.

Weblinks