Apollo Guidance Computer

Apollo Guidance Computer

Apollo-Raumfahrzeug (Kommandomodul und Servicemodul) (Apollo 15)
Apollo Guidance Computer

Der Apollo Guidance Computer (AGC) war der bei den Apollo-Raumflügen eingesetzte Computer für die Navigation. Er wurde benutzt, um in Echtzeit Fluginformationen zu sammeln und zur Verfügung zu stellen, sowie alle Navigationsfunktionen des Apollo-Raumfahrzeugs automatisch zu steuern. Er war damit das erste erkennbar moderne eingebettete System.

Er wurde ab 1961 für das Apollo-Programm unter der Leitung von Charles Stark Draper am MIT Instrumentation Laboratory entwickelt. Die bei den Flügen benutzte Hardware wurde von Raytheon hergestellt.

Einsatz im Apollo-Programm

Bei jedem Mondflug – abgesehen von Apollo 8, die kein Lunar Module (LM) mitführte – wurden jeweils zwei AGC eingesetzt. Einer befand sich im Kommandomodul (CM) des Apollo-Raumfahrzeugs und ein weiterer in der Mondlandefähre. Beide Systeme waren baugleich, aber mit unterschiedlicher Software ausgestattet; die Navigationsdaten waren zwischen den Geräten kompatibel. Der AGC war Bestandteil des sogenannten Primary Guidance, Navigation and Control System (PGNCS, ausgesprochen: pings), dem unabhängigen inertialen Navigationssystem der Apollo-Raumfahrzeuge.

Darüber hinaus wurden bei den Mondmissionen zwei weitere Computer eingesetzt:

  • Ein Launch Vehicle Digital Computer (LVDC) genannter Flugcomputer, der im Booster Instrumentation Ring der Saturn V untergebracht war. Hierbei handelte es sich um einen von der IBM Federal Systems Division gebauten seriellen Rechner.
  • Ein kleiner von TRW gebauter Rechner im sogenannten Abort Guidance System (AGS) der Mondlandefähre. Dieses sollte im Falle eines Fehlers des PGNCS eingesetzt werden. Das AGS konnte zum Start der Landefähre vom Mond und zum Rendezvous mit dem Kommandomodul (CM) benutzt werden, aber nicht zum Landen auf dem Mond.

Anwendung außerhalb des Apollo-Programms

Fly-by-wire-System mit Apollo Guidance Computer in einer F-8 „Crusader“ der NASA

Der AGC bildete 1972 die Basis für ein experimentelles Fly-by-wire-System, welches in einer Vought F-8 „Crusader“ installiert wurde, um die Machbarkeit und die Vorzüge eines rechnergestützten Fly-by-wire-Systems zu demonstrieren. Dabei wurde der AGC nur in der ersten Phase dieses Projekts eingesetzt, und in einer zweiten Phase durch einen anderen Rechner ersetzt. Die hierauf folgende Forschung führte zum Fly-by-wire-System des Space Shuttle und indirekt zu den Fly-by-wire-Systemen moderner Luftfahrzeuge.

Beschreibung

Prozessor

Liste der Befehle im Apollo Guidance Computer. Zur schnellen Verfügbarkeit war sie auf eine Instrumentenbrettverkleidung gedruckt

Der Apollo-Flugcomputer war der erste, bei dem integrierte Schaltkreise (IC) eingesetzt wurden. Die bis 1966 benutzte Block-I-Version des AGC war aus 4100 ICs aufgebaut. Jedes dieser ICs beinhaltete ein einzelnes NOR-Gatter mit drei Eingängen. Bei der ab Apollo 7 eingesetzten Block-II-Version des AGC waren jeweils zwei NOR-Gatter mit drei Eingängen in einem IC mit Flat-Pack-Gehäuse untergebracht. Es wurden hier annähernd 5600 Gatter benutzt. Die in Widerstands-Transistor-Logik aufgebauten Gatter wurden von Fairchild Semiconductor hergestellt. Die Verdrahtung der ICs war mittels Wickelverbindung aufgebaut und in Epoxidharz eingegossen. Der Prozessor arbeitete intern mit 16-Bit-Datenworten (14 Bit Daten, 1 Überlaufbit und 1 Vorzeichenbit (Einerkomplement)). Bei der Verwendung als Programmbefehl waren 3 bit für den Opcode und 12 Bit für die Adresse reserviert.

Speicher

Der Schreib-Lese-Speicher (RAM) des AGC war als Ringkernspeicher und der Festwertspeicher (ROM) als Core Rope Memory aufgebaut. Der RAM-Bereich konnte von den Astronauten, falls erforderlich, manuell beliebig manipuliert werden.

Die Block-I-Version des AGC verfügte über ein RAM mit einer Kapazität von 1 Ki (1024) Datenworten (die Bezeichnung „Byte“ war noch wenig gebräuchlich) und ein ROM mit einer Kapazität von 12 Ki Datenworten, die später auf 24 Ki erweitert wurde. Die Block-II-Version des AGC verfügte über ein RAM mit einer Kapazität von 2 Ki Datenworten und ein ROM mit einer Kapazität von 32 Ki Datenworten.[1]

Beide Speicher hatten eine Taktzeit von 12 μs. Die Datenworte hatten eine Länge von 16 Bit (15 Bit Daten und 1 Paritätsbit (ungerade Parität)).[1]

Taktgeber

Als Taktgeber wurde beim AGC ein Schwingquarz mit einer Taktfrequenz von 2,048 MHz (2048 kHz) benutzt. Dieses Taktsignal wurde durch 2 dividiert, um ein Taktsignal mit einer Taktfrequenz von 1,024 MHz zu erzeugen. Mit diesem Takt wurden die internen Operationen des AGC abgearbeitet. Das 1,024 MHz-Taktsignal wurde wiederum durch 2 dividiert, um ein zweites Taktsignal mit einer Taktfrequenz von 0,512 MHz (512 kHz) zu erzeugen. Dieser MASTER FREQUENCY genannte Takt diente zur Synchronisation der externen Systeme des Apollo-Raumfahrzeugs.

Software

Nachdem die Entwicklung von Software für den AGC ursprünglich in Plan und Budget des Apollo-Programms nicht vorgesehen war, arbeiteten schließlich über 300 Personen daran. Zu den bekannteren gehört heute die Teamleiterin des Flug- und Navigationsprogramms, Margaret Hamilton. Erstmals wurde der Begriff des Software-Engineering etabliert sowie zahlreiche grundlegende Paradigmen desselben. Insbesondere das Prioritätsscheduling erwies sich als entscheidend für den Erfolg der ersten Mondlandung von Apollo 11.

Die Software des AGC war in Assemblersprache geschrieben. Ein EXEX genanntes Echtzeitbetriebssystem konnte bis zu sieben Prozesse nach Priorität gewichtet in einem nichtpräemptiven Multitasking-Verfahren bearbeiten. Jeder Prozess musste dabei periodisch die Kontrolle an EXEX zurückgeben. Ein achter Prozess mit diagnostischen Aufgaben wurde mit niedrigster Priorität ständig ausgeführt. Darüber hinaus gab es eine unterbrechungsgesteuerte Komponente, die WAITLIST genannt wurde.

Benutzerschnittstelle

Benutzerschnittstelle des Apollo Guidance Computers im Kommandomodul

Die Benutzerschnittstelle des AGC wurde DSKY (Display/Keyboard) genannt und bestand aus einer Reihe von Ziffernanzeigen und einer Tastatur, die an einen Taschenrechner erinnert. Befehle wurden numerisch als zweistellige Zahlen eingegeben. Für den eigentlichen Befehl gab es die Taste VERB (Verb), während der Parameter, falls erforderlich, mit der Taste NOUN (Hauptwort) eingegeben wurde.

Das Kommandomodul verfügte über zwei DSKY, eins auf der Hauptinstrumententafel und eins im unteren Geräteraum in der Nähe des Sextanten zur Ausrichtung des inertialen Navigationssystems. Beide DSKY wurden durch den gleichen AGC betrieben. Die Mondlandefähre verfügte über nur ein DSKY für sein AGC.

Literatur

  • David A. Mindell: Digital Apollo: Human and Machine in Spaceflight. The MIT Press, Cambridge 2008, ISBN 978-0-262-13497-2.
  • Frank O’Brien: The Apollo Guidance Computer : Architecture and Operation. Springer, Berlin, New-York 2010, ISBN 978-1-4419-0876-6.

Weblinks

Commons: Apollo Guidance Computer – Sammlung von Bildern, Videos und Audiodateien

Quellen

  • James Tomayko: The Apollo guidance computer: Hardware. In: Computers in Spaceflight: The NASA Experience. NASA, abgerufen am 23. Mai 2017 (Lua-Fehler in Modul:Multilingual, Zeile 149: attempt to index field 'data' (a nil value)).
  • James Tomayko: The Apollo guidance computer: Software. In: Computers in Spaceflight: The NASA Experience. NASA, abgerufen am 23. Mai 2017 (Lua-Fehler in Modul:Multilingual, Zeile 149: attempt to index field 'data' (a nil value)).
  • James Tomayko: Using the AGC. In: Computers in Spaceflight: The NASA Experience. NASA, abgerufen am 23. Mai 2017 (Lua-Fehler in Modul:Multilingual, Zeile 149: attempt to index field 'data' (a nil value)).

Einzelnachweise

  1. 1,0 1,1 APOLLO GUIDANCE COMPUTER PROGRAM BLOCK I (100) AND BLOCK II. Raytheon. 31. Dezember 1969. Abgerufen am 27. August 2017.