Wie Ur-Chips den Mensch zum Mond brachten

Das Display und die Tastatur eines Apollo Bordcomputers, ausgestellt im Computer History Museum in Mountain View.
Der Bordcomputer der Apollo-Kapseln war eine technische Pionierleistung.
 
Die Mondlandung wurde auch durch Pionierarbeit bei Computern möglich gemacht – die bis heute nachwirkt. So wurden erstmals Vorgänger heutiger Chips eingesetzt und die Regeln guten Software-Designs geprägt. Der genähte Speicher setzte sich hingegen nicht durch.
 
Schon als die US-Mission zum Mond beschlossen wurde, war klar, dass die Astronauten beim Anflug Hilfe von einem Computer brauchen würden; einer Maschine, die verlässlich ist, möglichst wenig Strom verbraucht, nicht viel Platz einnimmt und einfach zu bedienen ist.
 
Das Problem: Als US-Präsident John F. Kennedy im Mai 1961 das Ziel verkündete, bis Ende des Jahrzehnts einen Menschen auf die Mond-Oberfläche zu bringen, existierte ein solcher Computer nicht einmal annähernd. Die Rechner waren eher genau das Gegenteil: Sie stürzten häufig ab, waren mindestens so gross wie mehrere Kühlschränke und mussten oft noch über Lochstreifen mit Informationen gefüttert werden.
 
Die in jahrelanger Entwicklungsarbeit entwickelte Lösung hiess AGC – Apollo Guidance Computer – und die Maschine bedeutete in vieler Hinsicht Neuland, um den Anforderungen gerecht zu werden. Manche Neuerungen setzten sich dauerhaft durch: So wurden im AGC zum
ersten Mal integrierte Schaltkreise eingesetzt – sozusagen die Vorfahren heutiger Mikrochips.
 
Purzelnde Preise
Ganz nebenbei schaffte es die US-Raumfahrtagentur Nasa auch noch, durch ihre Grossbestellungen den Preis der Chips drastisch zu senken, schrieb der Raumfahrt-Historiker Charles Fishman, der die technische Geschichte der Mond-Mission im Buch "One Giant Leap" aufarbeitete. Von 1000 Dollar pro Schaltkreis bei der ersten Bestellung 1962 purzelte der Preis schon binnen eines Jahres auf 15 Dollar und schmolz bis 1969 auf nur noch 1,58 Dollar zusammen.
 
Die Innovation, den Speicher für den Computer buchstäblich zu nähen, war allerdings zu speziell, um ausserhalb der Mondmissionen Anwendung zu finden. Für den Hauptspeicher, in dem die Software des Apollo-Computers steckte, wurde die sogenannte Core Rope Memory erfunden – auf Deutsch auch "Fädelspeicher" genannt.
 
Die Entwickler suchten nach einem Medium, das - statt etwa Magnetspeichern - extrem widerstandsfähig gegen alle Arten von Strahlung sein sollte. Der in binäre Zahlenkombinationen aus Nullen und Einsen umgewandelte Softwarecode wurde tatsächlich fest vernäht: Ging der Draht durch einen Ferritkern, wurde eine Eins ausgelesen, führte er am Kern vorbei, war das eine Null. Dutzende Frauen fädelten die Drähte monatelang mit Spezialmaschinen durch und durften sich keinen einzigen Fehler erlauben. Der Speicher hatte ein Fassungsvermögen von 73 Kilobyte.
 
Bahnbrechend für ihre Zeit
Aus heutiger Sicht kann es schwer fallen, nachzuvollziehen, wie bahnbrechend die Apollo-Computer für ihre Zeit waren. Sie kamen auf 85'000 Rechenoperationen pro Sekunde - Apples A12-Chip im aktuellen iPhone XS schafft 5 Billionen. Für die 1960er Jahre war es aber ein Leistungssprung, der unter anderem möglich wurde,
Der "genähte" Kernspeicher.
weil die integrierten Schaltkreise mehr Leistung bei gleichem Volumen erlaubten. Der Apollo-Computer empfing Daten vom Radar und anderen Sensoren sowie von der Bodenstation und steuerte das Raumschiff. Die Mondfähre und das eigentliche "Apollo-11"-Raumschiff hatten jeweils einen AGC.
 
Zur Kommunikation der Astronauten mit den Computern dachten sich die Entwickler am Massachusetts Institute of Technology (MIT) bei Boston ein System aus, das die schnelle Eingabe von Befehlen erlaubte. Es wurde eine Liste von "Verben" und "Substantiven" ("Verb" und "Noun" auf Englisch) festgelegt, die für einzelne Aktionen und Begriffe standen.
 
Zur Eingabe gab es ein Zahlenfeld mit extra grossen Tasten, damit die Astronauten sie auch mit den Handschuhen ihrer Raumanzüge sicher treffen konnten, sowie Vorwahl-Tasten für "Verb" und "Substantiv". Gab ein Raumfahrer zum Beispiel "Verb 34" ein, bedeutete das "beenden", "Noun 46" stand für "Konfiguration des Autopiloten". Die Programmierer bauten in den Software-Code als Scherz ein Shakespeare-Zitat, in dem die Worte "Verb" und "Noun" vorkamen.
 
Stapelweise Code
Geschrieben war die Software des Apollo-Computers in der heute weitgehend unbekannten Programmiersprache Assembly. Die Direktorin der Software-Entwicklung, Margaret Hamilton, posierte damals für ein Foto neben einem Stapel des ausgedruckten Programmcodes – die Bände erreichten fast ihre Grösse. Die Seiten wurden später eingescannt und der Code ist heute unter anderem auf der Entwicklerplattform Github verfügbar. Einige Enthusiasten bauten auf dieser Basis Emulatoren auf, mit denen man einen virtuellen Apollo-Computer bedienen kann.
 
Hamilton und ihr Team versuchten, den Computer so robust wie möglich arbeiten zu lassen und zementierten dabei einige Grundsätze auch heutiger Software-Entwicklung. So legten sie fest, dass Aufgaben priorisiert wurden – und bei Bedarf weniger wichtige Aktionen einfach abgebrochen wurden, um Kapazität freizumachen. Das könnte einen Abbruch der "Apollo 11"-Mission kurz vor dem Ziel verhindert haben.
 
Denn drei Minuten vor der Landung auf dem Mond am 20. Juli 1969, als der Computer den Anflug berechnen sollte, meldete er plötzlich Fehler - aus Überlastung, wie man später herausfand. Der Grund war ein nicht behobener Konstruktionsmangel, wie der Autor David Mindell im Buch "Digital Apollo" beschrieb. Die Astronauten liessen neben dem Radar für die Landung auch den sogenannten Rendezvous-Radar laufen, der für die spätere Annäherung an das Raumschiff gebraucht wurde. Das war eine Vorsichtsmassnahme für den Fall, dass die Mondfähre schnell zum Hauptschiff zurückkehren muss.
 
Anders als bei Tests am Boden wurden die beiden Radare allerdings aus zwei verschiedenen Wechselstromquellen gespeist, die in verschiedenen Phasen liefen. Dadurch nahm der Rendezvous-Radar Interferenzen wahr und lastete den Bordcomputer mit der sinnlosen Aufgabe aus, sie zu interpretieren. Das von Hamilton entworfene System brach den Prozess als nebensächlich ab und machte damit Rechenleistung für die Landung frei. (sda)