40 Jahre Apollo 11

Wie ein Computerfehler fast die Mondlandung verhinderte

20.07.2009 von Jürgen Hill
Vor 40 Jahren landeten mit Apollo 11 die ersten Menschen auf dem Mond. Dabei hing das epochale Ereignis an einem seidenen Faden: In letzter Sekunde bockte der Computer und die Mondlandung drohte zu scheitern.
2 Stunden und 31 Minuten dauerte der erste Mondspaziergang am 21. Juli 1969.
Foto: NASA

Am 20. Juli um 20.17:58 Coordinated Universal Time (UTC) schrieb er Geschichte. Mit "Houston, Tranquility Base here. The Eagle has landed!", funkte Apollo-11-Kommandant Neil Armstrong die erlösenden Worte von der geglückten Mondlandung zur Erde - die NASA hat den originalen Funkverkehr online gestellt. Damit löste Apollo 11 das am 25. Mai 1961 von Präsident John F. Kennedy gegebene Versprechen ein, noch bis zum Ende des Jahrzehnts Menschen auf den Mond zu bringen und so die Schlappe gegenüber den Sowjets auszuwetzen.

Diese hatten im April 1961 mit Juri Gagarin den ersten Menschen ins Weltall geschossen und damit den Wettlauf um die Eroberung des Alls gestartet.

Houston, wir haben ein Problem - in der entscheidenden Phase der Mondlandung sorgte eine Überlastung des Bordcomputers fast für einen Abbruch der Mission.
Foto: NASA

Angesichts der erfolgreichen Mondlandung und der faszinierenden Bilder von Armstrongs ersten Schritten auf dem Mond am 21. Juli um 2.56 UTC (in den USA war noch der 20. Juli) geriet schnell in Vergessenheit, dass das Projekt nur Sekunden vor der Landung an einem seidenen Faden hing. Der Computer des Lunar Module (LM), wie die Mondfähre im Fachjargon korrekt bezeichnet wird, spuckte beim Anflug auf den Mond mehrere Fehlermeldungen aus. Mit den wiederholten Fehlern "1201" und "1202" sorgte der Apollo Guidance Computer (AGC) fast für einen Abbruch der Landung. Dass die Mondlandung dennoch stattfand, ist dem damals 24-jährigen Computerwissenschaftler Jack Garman zu verdanken. Er gab dem zuständigen Guidance Officer die Entwarnung "That´s ok", man könne weiter dem Computer vertrauen, solange die Fehlermeldung nicht ständig komme. Auf Anraten von Houston setzte Armstrong dann die Landung manuell fort.

Die Ursache des Problems, das fast zum Abbruch der Mondlandung führte, war relativ einfach und ist heute fast jedem Windows-Benutzer bekannt.

Computer-Overflow bei der Landung

Mit dem Luna Module Eagle landeten Armstrong und Aldrin als erste Menschen auf dem Mond.
Foto: NASA

Der Apollo Guidance Computer war schlicht überlastet, und das entsprechende Programm reagierte nicht, oder um es neudeutsch zu formulieren, der Computer hatte ein "overflow problem". Die Ursache hierfür war relativ schnell ausgemacht: Obwohl eigentlich unnötig, waren die Astronauten bei der Landung darauf trainiert, sowohl das Lande- als auch das Rendezvous-Radar (das eigentlich zur Ankoppelung des LM an das Command/Service Module (CSM), die eigentliche Apollo-11-Kapsel, diente) zu benutzen. Mit der Verarbeitung der Daten von zwei Radarsystemen war der Computer nun überfordert.

Aus heutiger Sicht, in einer Zeit, in der Handys mit 1-Gigahertz-Prozessor gebaut werden, Grafikkarten mit 1 GB RAM ausgestattet sind und PCs Zwei- wenn nicht gar Vier-Kern-CPUs besitzen, mag dies verwundern. Doch der Apollo Guidance Computer hatte gerade einmal 72 KB ROM sowie 4 KB RAM und eine Taktfrequenz von rund einem Megahertz. Das Eingabe- und Ausgabemodul DSKY (von Display und Keyboard abgeleitet) erinnerte mehr an einen wissenschaftlichen Taschenrechner als an ein User Interface für einen Computer.

Trotzdem war der AGC zu seiner Zeit ein Meilenstein im Rechnerbau: Er war der erste Rechner mit einem Echtzeit-Betriebssystem, dem Menschen ihr Leben anvertrauten, und markierte zudem den Einstieg in die Fly-by-Wire-Technologie, wie sie heute in modernen Passagierjets üblich ist. Das Betriebssystem konnte bis zu acht Prozesse gleichzeitig in einem nichtpräemptiven Multitasking-Verfahren verarbeiten und hatte zudem eine Prioritätenliste für die einzelnen Programme. Um Totalabstürze zu vermeiden, besaß das System zudem die Fähigkeit, sich automatisch neu zu starten und die entsprechenden Tasks weiterzuverarbeiten.

Lift off, an der Spitze einer Saturn V traten Armstrong, Aldrin und Collins die Reise zum Mond an.
Foto: NASA

Ferner hatte die Hardware, wenn sie mehr Register benötigte, eine höhere Priorität als die eigentlichen Programminstruktionen. Und genau dies geschah bei der Mondlandung: Das Rendevouzsradar forderte immer mehr Register an, so dass sich die Ausführung der anderen Programme um 15 Prozent verlangsamte. Da diese nun nicht mehr genügend Rechenzeit bekamen, wurden sie vom System wiederholt neu gestartet, was zu den bekannten Fehlermeldungen führte.

Werden Sie selbst zum Astronauten

Unter http://www.ibiblio.org/apollo ist beispielsweise eine virtuelle Version des Apollo Guidance Computers zu finden. Wer Interesse an einer grafisch ansprechenderen Simulation hat (siehe Screenshot), sollte das Project Apollo for Orbiter (http://www.orbiterwiki.org/wiki/NASSP) besuchen, das auf dem freien Space-Simulator Orbiter aufbaut.

Eisenkerne als RAM

Die eigentliche Recheneinheit des AGC war dabei keine CPU aus einem Chip, sondern bestand aus einem Verbund von rund 5000 Logik-Gattern mit NOR-Logik. Als Bauteile verwendete die NASA erstmals integrierte Schaltkreise (Integrated Circuits = ICs). 1963 gingen beispielsweise 60 Prozent der gesamten US-amerikanischen IC-Produktion in die Entwicklung der Apollo-Computer. Auch ROM und RAM hatten keine Gemeinsamkeiten mit den heute in PCs verbauten Bauteilen, denn es wurden so genannte Ringkernspeicher verwendet.

RAM 1969: Der Arbeitsspeicher der Apollo 11 bestand aus Ringkernspeichern.
Foto: H.J. Sommer III, Professor of Mechanical Engineering, Penn State University

Diese bestanden aus hartmagnetischen Ferritringen (Magnetic Core Memory), die per Strom ummagnetisiert wurden, wobei je nach Magnetisierung der Wert des Speichers dann 0 oder 1 betrug. Im ROM (Core Rope Memory) hatten die Ferritkerne eine feste Magnetisierung, die von Arbeiterinnen in Fabriken in den Leitungsverbund "eingewoben" wurde. Bei der NASA trug diese Art vom Speicher deshalb den Spitznamen LOL Memory (Little Old Ladies Memory). Dieser zeitaufwändige Prozess wirkte sich jedoch direkt auf die Softwareentwicklung aus. Die Programme für den Apollo-Computer mussten zirka vier Monate vor dem Start gewoben, also hart verdrahtet werden. Erschwerend kam hinzu, dass die Programme nur unzureichend per Softwaresimulation überprüft werden konnten. Selbst ein Honeywell-1800-Minicomputer (die Computer-Division wurde später von Bull übernommen) konnte die AGC-Programme nur mit einem Zehntel der eigentlichen Geschwindigkeit ablaufen lassen. Wohl oder übel wurden die NASA und ihr Partner, das MIT, damit zu Pionieren in Sachen Softwarequalitätssicherung.

In den Hochzeiten des Apollo-Programms arbeiteten 600 Entwickler an der Hardware und 400 Programmierer an der Software des AGC.