Robuster Begleiter zum Mond: Der Apollo Guidance Computer

Seite 3: Robuster Computer, smarte Software

Inhaltsverzeichnis

Im Apollo Guidance Computer lief der Quarzoszillator mit einer Taktfrequenz von 2,048 MHz, welche durch 2 geteilt wurde, um die internen Operationen mit 1,024 MHz abzuarbeiten. Dieser Takt wurde ebenfalls durch 2 geteilt, um mit 512 kHz die externen Systeme anzusteuern. Das ROM vermochte 36.864 16-Bit-Worte (14 Bit Daten + 1 Vorzeichenbit, 1 Prüfbit) zu speichern, das RAM wiederum 2048 Worte.

Der AGC-Prozessor entspricht im Prinzip der Harvard-Architektur mit getrennten Daten- und Programmwegen -- mit einigen Ausnahmen. So gibt es einen etwas urigen Index-Befehl, der es erlaubt, den nächsten Opcode und/oder dessen nächste Adresse zu ändern. Selbstveränderlicher Code ist eigentlich kein Bestandteil der Harvard-Architektur. Außerdem liegen Code und Daten im gemeinsamen Festwertspeicher -- ist dann also doch eher eine Mischarchitektur.

Das ROM arbeitete nicht über magnetische Zustände von Kernen, sondern über Drähte, die mehrfach entweder in Ringkerne herein- oder vorbeigeführt wurden (Ein Draht in den Kern hinein entsprach dabei einer logischen 1, am Kern vorbei einer logischen 0). Das sogenannte Core Rope Memory erforderte zwar einen enormen Aufwand und Genauigkeit in der Produktion, bot aber dafür auch eine hohe Unempfindlichkeit gegenüber Erschütterungen – ideal für eine Raketenmission.

Der AGC-II-Rechner – sowohl der in der Apollo-Kapsel (CGC) als auch der in der Landefähre (LGC) – bestand aus zwei zusammengeschraubten Laden (Trays) mit Steckplätzen für die zahlreichen Module. Er war 6 Zoll hoch, 12,5 Zoll breit, 24 Zoll tief und wog 32 kg. Hinzu kam das Ein/Ausgabesystem DSKY mit dem Keyboard und den numerischen Anzeigen.

Das CPU-Tray enthielt 24 Logic-, 5 Interface- und 2 Powermodule. Das Speicher-Tray beherbergte neben dem Oszillator- und dem Alarm-Modul insgesamt 8 Speichertreiber-Module und natürlich den Speicher selber: das zwei Slots umfassende Modul für Erasable Memory (ist im Unterschied zu allen anderen schwarz) und die mit einem völlig anderen Formfaktor daherkommenden sechs Module für den Fädelspeicher.

Dem Rechner zur Seite stand eine fast gleichgroße Coupling Data Unit (CDU) mit all den Digital-zu-Analog und Analog-zu-Digitalwandlern, Verstärkern, der Navigationshardware et cetera. Die CDUs in der Apollokapsel und in der Landefähre waren etwas unterschiedlich bestückt.

Die Software (in Assembler geschrieben) sollte eine Schlüsselrolle einnehmen. Dabei war dafür zunächst kein eigenes Budget geplant. Unter der Führung von Mathematikerin Margaret Hamilton (erst eher durch Zufall zum Apollo-Programm gekommen, übernahm sie aber bald die Leitung des Entwicklerteams) entwarfen die Entwickler ein prioritätengesteuertes Multiprozesssystem, das dank eines zuverlässigen Designs die Mondlandung sicher und stabil gestaltete.

Die Mathematikerin Margaret Hamilton (hier mit dem Ausdruck des AGC-Quellcodes) leitete die Softwareentwicklung für den Apollo Guidance Computer

Display and Keyboard (DSKY) hieß die Benutzerschnittstelle, mit der die Astronauten den Computer über Eingabeparameter "Verb – Noun – Enter" für die damalige Zeit enorm komfortabel steuern konnten. Das Betriebssystem "Executive“ ermöglichte mit Scheduling über kooperatives Multitasking bis zu 8 Prozesse gleichzeitig (einer davon als Leerlaufprozess). Mit der Night-Watchman-Funktion war sogar eine präemptive Überwachung eingebunden, die blockierende Prozesse einfach via Restart erneuerte. Dank Restart-Tables waren dabei die bisher berechneten Daten nicht komplett verloren und der Rechner arbeitete fast ohne Verzögerung weiter.

Diese prioritätengesteuerte Systemarchitektur (von Computeringenieur J. Halcombe Laning erdacht) sollte ihre wichtigste Bewährungsprobe ausgerechnet wenige Minuten vor der geplanten Landung von Apollo 11 bestehen. In den letzten Minuten vorm Aufsetzen des Landemoduls auf der Mondoberfläche meldete der AGC einen 1202-Alarm. Die Ursache lag an dem fälschlich arbeitenden Rendezvous-Radar, welcher den Rechner mitten im Landevorgang mit nutzlosen Daten speiste, statt im Standby zu verharren.

Eine Fehlersuche zum denkbar ungünstigsten Zeitpunkt – schließlich war man kurz vor der Landung. Guidance Officer Steve Bales reagierte am Schnellsten und gab innerhalb weniger Sekunden dem Missionsleiter zu verstehen, dass es kein schwerwiegender Fehler sei.

Bales hatte sich nach umfangreichen Tests die Fehlercodes aufgeschrieben und deren Konsequenzen. Der 1202-Alarm war ein "executive overflow – no core sets". Damit signalisierte der Computer, dass er ausgelastet war und die niederpriorisierten Tasks nun verwerfen wird. Auch der kurz darauf folgende 1201-Alarm war ebenso ungefährlich.

Mit der Übernahme des Steuerknüppels, weil die vorgesehene Landestelle sehr uneben war, bewies Armstrong zudem das Funktionieren der fly-by-wire-Steuerung unter Teilautomatik.

Die Landung war ein voller Erfolg. Steve Bales erhielt sogar für seine schnelle Unbedenklichkeitserklärung angesichts der Fehlermeldungen eine Medaille, stellvertretend für das gesamte Bodenpersonal.

Die 1202/1201-Alarme wurden als Computerfehler abgetan, dabei haben sie einen Ablauffehler erfolgreich abgefangen. Daher geriet die Leistung des besonderen Computersystems unter der Entwicklung von Margaret Hamilton fast in Vergessenheit. Erst 2003 besann sich die NASA auf ihren Anteil am Gelingen der Apollo-Missionen und zeichnete sie mit dem Exceptional Space Act Award aus.

Der Quellcode des AGC (mit herrlich nerdigen Kommentierungen der Entwickler) wurde bereits veröffentlicht. Und dieser Meilenstein der Computertechnik, der als integriertes System alle nachfolgenden Entwicklungen beeinflusst haben dürfte (das fly-by-wire-System sogar direkt beim Space Shuttle und auch im Flugzeugbereich) lässt sich auch online nachspielen.

Viele weitere Details zu den Innereien des Apollo Guidance Computer und der von Margaret Hamilton und ihrem Team entwickelten Software bringt ein Artikel von Andreas Stiller in c't Retro 2019: "Programm-Alarm? Kein Problem! Wie der Bordcomputer der Apollo-Kapsel die ersten Menschen zum Mond brachte". (jk)