Apollo Guidance Computer (AGC)
Wie Ur-Chips und genähter Speicher die Menschen zum Mond brachten
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 groß wie mehrere Kühlschränke und mussten oft noch über Lochstreifen mit Informationen gefüttert werden.
Die in jahrelanger Entwicklungsarbeit entwickelte Lösung hieß 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.
Ganz nebenbei schaffte es die US-Raumfahrtagentur Nasa auch noch, durch ihre Großbestellungen 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 1.000 Dollar pro Schaltkreis bei der ersten Order 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 SpeicherSpeicher für den Computer buchstäblich zu nähen, war allerdings zu speziell, um außerhalb 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. Alles zu Storage auf CIO.de
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 - viele E-Mails, die man heute bekommt, sind größer.
85.000 Rechenoperationen pro Sekunde
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 60er Jahre war es aber ein Leistungssprung, der unter anderem möglich wurde, 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 großen 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.
Programmiersprache Assembly
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öße. 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 ließen 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 Vorsichtsmaßnahme 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. (dpa/rs)