Was sich ändert, wenn Befehle im Speicher liegen
Ein Rechner kann programmierbar sein, ohne sein Programm elektronisch zu speichern. Beim ursprünglichen ENIAC bestimmten Verbindungen zwischen den Einheiten und die Stellung der Schalter den Ablauf. Ein anderes Rechenverfahren erforderte deshalb Vorbereitungen und Prüfungen an der Hardware. Trotzdem waren automatische Berechnungen und für die damalige Zeit beachtliche Flexibilität möglich.
Bei einem gespeicherten Programm werden die Befehle zu codierten Informationen, die der Rechner aus dem Speicher liest. Dieselben Recheneinheiten können je nach geladenem Programm unterschiedliche Abläufe ausführen. Programme müssen weiterhin vorbereitet, Daten eingegeben und Ergebnisse geprüft werden: Ein Speicher nimmt niemandem die Programmierarbeit ab.
Stell dir einen einfachen Vergleich vor: Nach Quadratzahlen sollen nun Summen berechnet werden. Bei einer über Kabel und Schalter programmierten Maschine kann dafür eine andere Verschaltung nötig sein. Liegen die Befehle im Speicher, besteht der Wechsel vor allem darin, ein anderes Programm zu laden. Das Beispiel verdeutlicht die Vorbereitung; es misst nicht, wie lange diese Aufgaben auf einem bestimmten historischen Rechner dauerten.
Der Artikel zur Von-Neumann-Architektur erläutert das allgemeine Prinzip. Hier geht es um die praktische Hürde: Wie lassen sich Befehle lange genug aufbewahren, ohne Verlust lesen und zum richtigen Zeitpunkt abrufen?

Originalgrafik von Bethemesh. Die Pfeile zeigen Schritte der Vorbereitung und Ausführung, keine historische Verdrahtung. Das linke Beispiel orientiert sich am ursprünglichen ENIAC; es beschreibt nicht sämtliche älteren Rechner.
EDVAC und ACE: Projekte, durch die sich Ideen verbreiteten
Das gespeicherte Programm entstand nicht durch eine einzige Vorführung. An den Arbeiten rund um ENIAC und seinen geplanten Nachfolger EDVAC waren unter anderem J. Presper Eckert, John Mauchly, Herman Goldstine, Arthur Burks und John von Neumann beteiligt. Es ging sowohl um die Organisation des Rechners als auch um die physische Speicherung von Informationen.
Der 1945 unter von Neumanns Namen verbreitete First Draft of a Report on the EDVAC trug wesentlich dazu bei, diesen Ansatz bekannt zu machen. Die Bedeutung des Dokuments rechtfertigt es jedoch nicht, sämtliche Ideen aus den Diskussionen des Teams seinem einzigen genannten Autor zuzuschreiben. Die Biografie von John von Neumann ordnet seinen Beitrag in diese gemeinsame Arbeit ein.
In Großbritannien arbeitete Alan Turing am National Physical Laboratory am Projekt ACE, der Automatic Computing Engine. Auch seine Nachkriegsentwürfe untersuchten den Aufbau eines programmierbaren elektronischen Rechners. Der später aus dieser Entwicklung hervorgegangene Pilot ACE ist nicht mit Baby oder EDSAC gleichzusetzen.
Rechenerfahrung, Bauteilforschung und wissenschaftlicher Austausch flossen in diese Projekte ein. Für eine betriebsfähige Maschine waren anschließend konkrete technische Entscheidungen nötig: Ein Architekturentwurf allein garantierte weder einen stabilen Speicher noch die korrekte Ausführung eines Programms.
Manchester Baby: ein Rechner zum Erproben seines Speichers
Williams, Kilburn und Tootill
In Manchester stand zunächst der elektronische Speicher im Mittelpunkt. Frederic C. Williams entwickelte ein Verfahren mit Kathodenstrahlröhren und führte damit seine Forschungen am Telecommunications Research Establishment fort. Tom Kilburn arbeitete mit ihm an der Verbesserung des Verfahrens. Geoff Tootill half beim Bau und bei den Tests der Versuchsmaschine.
Daran wird deutlich, wie wichtig die technischen Möglichkeiten der Nachkriegszeit waren. Bauteile, Erfahrung mit Schaltungen und Messinstrumente zählten ebenso wie die zugrunde liegende Idee. Der gebräuchliche Name „Williams-Röhre“ sollte Kilburns Anteil nicht verdecken; Williams-Kilburn-Röhre bildet die Zusammenarbeit besser ab.
Elektrische Ladungen erhalten
Der Elektronenstrahl einer Kathodenstrahlröhre erzeugt Ladungsmuster auf ihrem Schirm. Das Speichersystem unterscheidet Zustände, die Bits darstellen. Da diese Ladungen nicht unbegrenzt erhalten bleiben, müssen die Informationen gelesen und regeneriert werden.
Ein stabiles Muster anzuzeigen, genügte nicht. Ein Computerspeicher musste auch wiederholtes Lesen und Schreiben während einer laufenden Berechnung verkraften. Baby, offiziell Small Scale Experimental Machine, sollte genau das innerhalb eines vollständigen Rechners erproben.
Sein Hauptspeicher fasste 32 Wörter zu je 32 Bit, die sich Befehle und Zahlen teilten. Das entspricht 1.024 Bit oder nach heutiger Maßeinheit 128 Byte, ohne die übrigen Speicherelemente des Rechners. Die Umrechnung vermittelt die Größenordnung; Baby arbeitete deshalb nicht wie ein moderner Rechner mit byteweiser Adressierung.
21. Juni 1948: ein Programm als Belastungsprobe
Kilburn schrieb das erste erfolgreich ausgeführte Programm zur Suche nach einem Teiler einer ganzen Zahl. Das Verfahren probierte Werte aus und arbeitete mit wiederholter Subtraktion. So beanspruchte es die Befehle, die Änderungen des Ablaufs und den Speicher über längere Zeit.
Der bekannte Versuch mit 2¹⁸, also 262.144, darf nicht automatisch mit diesem ersten Erfolg gleichgesetzt werden. Die in Manchester überlieferte Chronologie unterscheidet den Lauf vom 21. Juni von den Versuchen mit dieser Zahl, die in den folgenden Tagen erreicht wurden. Der Test ermittelte den größten echten Teiler 131.072 in ungefähr 52 Minuten. Die Dauer zeigte, dass der Speicher mehr als eine kurze Vorführung überstand.
Gesucht wurde keine unbekannte mathematische Erkenntnis. Gerade das vorhersehbare Ergebnis erlaubte es, die Maschine zu prüfen. Wie bei einem wissenschaftlichen Instrument, das mit einem bekannten Messwert getestet wird, lag der Nutzen im gewonnenen Vertrauen in seine Funktion.
Die Eingabe des Programms erfolgte von Hand, die Ergebnisse wurden auf einem Kathodenstrahlschirm abgelesen. Der winzige Speicher und die eingeschränkte Ein- und Ausgabe machten Baby ungeeignet für einen Rechendienst mit vielen Nutzern. In ihrem Brief an Nature vom September 1948 beschrieben Williams und Kilburn die Maschine selbst als experimentell und zu klein, um ein brauchbares mathematisches Werkzeug zu sein.
Von Baby über Manchester Mark 1 zu Ferranti
Babys Erfolg ebnete den Weg zum leistungsfähigeren Universitätsrechner Manchester Mark 1. Im Laufe des Jahres 1949 kamen unter anderem mehr Speicher, eine Magnettrommel, Ein- und Ausgabe über Lochstreifen sowie zusätzliche Rechenmöglichkeiten hinzu. Der Speicherprototyp wurde damit zum Ausgangspunkt einer breiteren Nutzung.
Bereits im April 1949 stand eine Zwischenversion für wissenschaftliche Arbeiten anderer Universitätsabteilungen bereit, also vor EDSACs ersten Programmen. Lochstreifen-Ein- und -Ausgabe fehlten allerdings noch, und Übertragungen zur und von der Trommel mussten manuell gesteuert werden; dieser Betrieb unterschied sich vom wissenschaftlichen Rechendienst, der sich um EDSAC schrittweise entwickelte.
Der Ferranti Mark 1 gehörte zur anschließenden industriellen Entwicklungsstufe. Auf Grundlage der Universitätsarbeiten und mit Beiträgen von Mitarbeitern aus Manchester und von Ferranti entstand ein Rechner, der im Februar 1951 an die Universität geliefert wurde.
Die Namen bezeichnen also drei verschiedene Stufen: Baby, den Demonstrator von 1948; Manchester Mark 1, die 1949 entwickelte Universitätsmaschine; und Ferranti Mark 1, den 1951 gelieferten kommerziellen Rechner. Die pauschale Bezeichnung „Mark 1“ würde wichtige Unterschiede verdecken.
EDSAC: von Anfang an für die Forschung gedacht
In Cambridge leitete Maurice Wilkes das Mathematical Laboratory mit einem klaren Ziel: Wissenschaftlern der Universität Rechenmöglichkeiten bereitzustellen. Er studierte die EDVAC-Arbeiten und besuchte 1946 die Vorlesungen der Moore School. EDSAC entstand aus diesem Wissensaustausch und war keine bloße Kopie eines bereits fertigen Computers.
EDSAC, der Electronic Delay Storage Automatic Calculator, setzte auf bewährte Entwurfsentscheidungen statt auf die höchstmögliche Leistung. Chefingenieur William „Bill“ Renwick leitete den Bau. David Wheeler prägte die Programmiermethoden. Techniker und weitere Mitarbeiter des Labors ermöglichten den Aufbau, die Erprobung und später den täglichen Betrieb.
Am 6. Mai 1949 führte EDSAC seine ersten Programme erfolgreich aus, darunter die Berechnung einer Quadratzahlentabelle. Programme ließen sich über Lochstreifen eingeben; ein Fernschreiber lieferte lesbare Ergebnisse. Diese Geräte waren entscheidend für den Nutzen: Ein wissenschaftlicher Rechner musste Aufträge annehmen und mehr zurückgeben als elektrische Zustände, die nur seine Erbauer deuten konnten.
Quecksilber-Verzögerungsleitungen als Speicher
EDSAC speicherte Informationen in Quecksilber-Verzögerungsleitungen. An einem Ende eines Behälters wandelte ein Wandler elektrische Impulse in Schallwellen um. Am anderen Ende machte ein zweiter Wandler daraus wieder elektrische Signale. Die Impulse wurden nachgeformt und erneut eingespeist: Die Information zirkulierte, solange das System sie aufrechterhielt.
Das Speicherprinzip beruhte auf der Schallausbreitung in der Flüssigkeit. Elektronenröhren übernahmen Rechen- und Steuerungsaufgaben; sie waren nicht die Quecksilberbehälter. Diese Bauteile erfüllten unterschiedliche Funktionen.
Der Zugriff war zeitlich eingeschränkt: Eine Information konnte erst gelesen werden, wenn sie den Auslesepunkt erreichte. Der Kathodenstrahlröhrenspeicher in Manchester nutzte ein anderes Zugriffsverfahren. Beide Techniken mussten Informationen erhalten, riefen sie aber auf unterschiedliche Weise ab.
EDSACs Speicherkapazität lässt sich nur mit Angabe des Wortformats und des Ausbauzustands sinnvoll beschreiben. Cambridge nennt für den vollständigen Speicher 32 Verzögerungsleitungen, die 512 lange Zahlen zu 35 Bit oder 1.024 kurze Speicherplätze zu 17 Bit aufnehmen konnten. Das sind zwei Zählweisen derselben Kapazität, keine Erweiterung. Die tatsächlich nutzbare Kapazität wuchs außerdem mit der Inbetriebnahme der Speicherbänke.
Programme, Wiederverwendung und ein organisierter Rechendienst
Befehle laden und eine Bibliothek aufbauen
Ein Lochstreifen macht ein Programm noch nicht zu einem gespeicherten Programm: Viele Maschinenarten verwendeten dieses Medium. Bei EDSAC lieferte er die Programmelemente, die vor der Ausführung in den Speicher gelangten. Ein kleines Startprogramm, die initial orders, leitete das Laden ein. Beim Start brachte eine elektromechanische Vorrichtung diese ersten Befehle in den Speicher; sie luden anschließend das Programm vom Lochstreifen. Dieser hardwaregestützte Start widersprach dem Prinzip des gespeicherten Programms nicht.
Die Programmvorbereitung entwickelte sich insbesondere durch wiederverwendbare Unterprogramme weiter, zu denen Wheeler entscheidend beitrug. Eine häufige Operation ließ sich vorbereiten, testen und auf Lochstreifen für verschiedene Berechnungen aufbewahren. Dafür mussten der Sprung zum Unterprogramm und die Rückkehr zum aufrufenden Programm organisiert werden.
Stell dir eine wissenschaftliche Berechnung vor, die für zahlreiche Werte dieselbe Näherung verwendet. Ein geprüftes Unterprogramm erspart es, diesen Teil für jeden Auftrag neu zu schreiben. Seine Konventionen müssen trotzdem eingehalten und die Ergebnisse geprüft werden. So wird Programmierung zur Gemeinschaftsarbeit: Eine Berechnung baut auch auf Vorarbeiten anderer auf.
1951 veröffentlichten Wilkes, Wheeler und Stanley Gill The Preparation of Programs for an Electronic Digital Computer. Das Buch behandelt unter anderem EDSAC und die Nutzung einer Unterprogrammbibliothek. Es dokumentiert Methoden, die sich rund um den Rechner herausbildeten, noch keine heutige Programmierumgebung.
Vom ersten Ergebnis zum geregelten Betrieb
Ein erfolgreiches Programm allein begründete noch keinen regelmäßigen Dienst. Die von Wheeler verfasste und von David Hartley ergänzte Chronologie datiert die Formalisierung des Rechendienstes auf 1950, mit Bedienpersonal für die Programmausführung. Zuverlässigkeit und Nutzungsorganisation entwickelten sich nach Mai 1949 weiter.
Lochstreifen vorzubereiten und zu vergleichen, Bibliotheksroutinen zu prüfen und Unterbrechungen zu diagnostizieren, gehörte zur Laborarbeit. Eric Mutch wirkte an der Qualitätssicherung der Bibliothek mit; Gill entwickelte unter anderem numerische Routinen. Hinter EDSAC stand somit auch eine Organisation aus Menschen und Arbeitsabläufen.
Zu den Aufgaben zählten Berechnungen für Genetik, Kristallografie und weitere numerische Forschung. Der Gewinn bestand nicht nur in einer schnelleren Einzeloperation. Forschungsteams konnten ganze Berechnungsreihen in Angriff nehmen, die mit Tabellen und Tischrechenmaschinen wesentlich aufwendiger gewesen wären.
Errungenschaften vergleichen, ohne eine Rangliste zu erstellen
| Kriterium |
Manchester Baby |
EDSAC |
| Erster erfolgreicher Betrieb |
21. Juni 1948 |
6. Mai 1949 |
| Ursprüngliches Ziel |
Elektronischen Speicher beim Ausführen eines Programms erproben |
Cambridge-Forschern wissenschaftliche Rechenmöglichkeiten bieten |
| Hauptspeicher |
Regenerierte Ladungsmuster auf einem Kathodenstrahlschirm |
Schallimpulse in Quecksilber-Verzögerungsleitungen |
| Programm |
Befehle und Zahlen in einem kleinen beschreibbaren Speicher |
Vom Lochstreifen geladene und im Speicher gehaltene Befehle |
| Vorbereitung und Zugriff |
Manuelle Eingabe und Ablesen am Schirm |
Lochstreifen, Laden durch initial orders, Ausgabe am Fernschreiber |
| Bedeutung des ersten Erfolgs |
Experimenteller Nachweis |
Beginn der Entwicklung zum 1950 formalisierten Dienst |
| Weiterentwicklung |
Manchester Mark 1, danach Ferranti Mark 1 |
Unterprogrammbibliothek, Programmiermethoden und wissenschaftlicher Dienst |
Der Vergleich mit Colossus betrifft eine andere Eigenschaft. Seine Elektronik war auf Kryptoanalyse spezialisiert und wurde über Kabel und Schalter eingerichtet. Ein allgemeines Programm in einem Befehlsspeicher gab es nicht. Die Spezialisierung entsprach seiner Aufgabe; Baby ersetzte Colossus nicht.
Bei ENIAC kommt es auf den Zeitpunkt an. Ursprünglich wurden die Abläufe durch die Hardwarekonfiguration festgelegt. Nach dem Umbau von 1948 konnte ENIAC jedoch Befehle lesen, die in Schalterbänken codiert waren. Das unterschied sich vom beschreibbaren elektronischen Speicher von Baby und EDSAC. Die Aussage, ENIAC habe „nie ein gespeichertes Programm“ gehabt, würde diese Entwicklung ausblenden.
Babys Vorrang lässt sich durch das Ausführen eines Programms aus beschreibbarem elektronischem Speicher präzisieren; EDSACs Bedeutung liegt auch in der wissenschaftlichen Nutzung und dem entstehenden Rechendienst. Solche Kriterien machen die sich ergänzenden Leistungen verständlich, ohne einer Maschine pauschal den Titel „erster Computer der Welt“ zu verleihen.
Häufige Fragen
Warum ist Baby berühmt, obwohl es nicht für Forscher gedacht war?
Es zeigte, dass ein elektronischer Speicher während einer echten Berechnung sowohl Befehle als auch Zahlen halten konnte. Der kleine Speicher und die begrenzte Ein- und Ausgabe entsprachen dem Versuchszweck. Der Nachweis ermöglichte die Weiterentwicklung zu einem vollständigeren Rechner.
Begann EDSAC schon am 6. Mai 1949 mit einem regelmäßigen Dienst?
Dieses Datum bezeichnet die ersten erfolgreichen Programme. Wissenschaftliche Anwendungen folgten, doch Zuverlässigkeit und Organisation entstanden schrittweise. Die Laborchronik nennt 1950 als Zeitpunkt der Formalisierung: Erster Betrieb und organisierter Rechendienst sind unterschiedliche Meilensteine.
Speicherten Williams-Röhren und Verzögerungsleitungen dauerhaft?
Nein. Die Röhren hielten Ladungsmuster aufrecht, die Leitungen ließen regenerierte Schallimpulse zirkulieren. Beide Speicher waren auf laufende Schaltungen angewiesen. „Gespeichert“ bedeutet hier nicht, dass das Programm nach dem Ausschalten erhalten blieb.
Ist ein Programm auf Lochstreifen immer ein gespeichertes Programm?
Nein. Entscheidend ist, was der Rechner mit dem Streifen macht. EDSAC lud die Befehle zur Ausführung in seinen Speicher. Eingabemedium und Arbeitsspeicher hatten unterschiedliche Aufgaben; der Lochstreifen allein bestimmt die Architektur nicht.
Sind Manchester Baby, Manchester Mark 1 und Ferranti Mark 1 derselbe Computer?
Nein. Baby war der Versuchsprototyp von 1948. Manchester Mark 1 war der vollständigere Universitätsrechner, der 1949 entwickelt wurde. Ferranti Mark 1 war eine daraus hervorgegangene industrielle Maschine, von der im Februar 1951 ein Exemplar nach Manchester geliefert wurde.