Apollo Guidance Computer

Kommando- und Servicemodul des Apollo 15-Raumfahrzeuges
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 vom US-amerikanischen Rüstungs- und Elektronikkonzern 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, zuständig für die Navigation bis zur Mondumlaufbahn und zurück, und ein weiterer in der Mondlandefähre, primär zuständig für die sichere Landung auf dem Mond und das Rendezvous mit dem Kommandomodul bei Rückkehr der Aufstiegsstufe. 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 Gui­dance Computer in einer F-8 „Crusader“ der NASA (1971)

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 Com­puter. Zur schnellen Verfügbarkeit war sie auf eine Instrumentenbrett­verkleidung 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 etwa 5600 Gatter verbaut. Die in RTL-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.

Weitere Besonderheiten:

  • Der Prozessor arbeitete im Einerkomplement.
  • Der Adressbereich des Prozessors hatte je nach Befehl nur eine Größe von 1 bzw. 4 Ki-Worten. Um den gesamten Speicher ansprechen zu können, wurde der Speicher in umschaltbaren Speicherbänken organisiert.
  • Der Prozessor besaß insgesamt 6 Timer.

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 beschrieben werden.

Die Block-I-Version des AGC verfügte über ein RAM mit einer Kapazität von 1024 Datenworten à 16 bit und ein ROM mit einer Kapazität von 12288 Datenworten à 16 bit, die später auf 24576 Datenworte erweitert wurde. Die Block-II-Version des AGC verfügte über ein RAM mit einer Kapazität von 2048 Datenworten und ein ROM mit einer Kapazität von 32768 Datenworten à 16 bit.[1]

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

In heutiger, damals allerdings noch nicht üblicher Terminologie verfügte der AGC so insgesamt über 68 KiB Speicher. 64 KiB wurden als ROM für die gespeicherte Software verwendet. Die restlichen 4 KiB dienten als RAM. 

Taktgeber

Als primärer Taktgeber wurde beim AGC ein Quarzoszillator mit einer Taktfrequenz von 2048 kHz benutzt. Dieses Taktsignal wurde durch 2 geteilt, um die internen Operationen des AGC mit einer Frequenz von 1024 kHz abzuarbeiten. Das 1024 kHz-Signal wurde ebenfalls durch 2 geteilt, um ein zweites Taktsignal mit einer Frequenz von 512 kHz zu erzeugen. Dieser MASTER FREQUENCY genannte Takt diente zur Synchronisation der externen Systeme des Apollo-Raumfahrzeugs.

Software

Die Informatikerin Margaret Hamilton vor der ausgedruckten Apollo-Flugsoftware, die am MIT von ihr und ihrem Team entwickelt wurde[2] (1969)

Nachdem die Entwicklung von Software für den AGC ursprünglich im 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 Assembler 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 Gui­dance Computers

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 (Substantiv) 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 denselben AGC betrieben. Die Mondlandefähre verfügte über nur ein DSKY für seinen AGC.

Gewicht

Zusammen mit dem Interface wogen die AGCs in der Apollo-Kapsel und in der Landefähre je rund 32 kg.

Literatur

  • Eldon C. Hall: Journey to the Moon: The History of the Apollo Guidance Computer. American Institute of Aeronautics and Astronautics, Inc., Reston, VA 1996, ISBN 1-56347-185-X.
  • 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.
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 (englisch).
  • James Tomayko: The Apollo guidance computer: Software. In: Computers in Spaceflight: The NASA Experience. NASA, abgerufen am 23. Mai 2017 (englisch).
  • James Tomayko: Using the AGC. In: Computers in Spaceflight: The NASA Experience. NASA, abgerufen am 23. Mai 2017 (englisch).
  • Frank O'Brian: The AGC hardware. In: The Apollo Guidance Computer: Architecture and Operation. Springer Verlag, abgerufen am 5. Mai 2018 (englisch).

Einzelnachweise

  1. a b APOLLO GUIDANCE COMPUTER PROGRAM BLOCK I (100) AND BLOCK II. Raytheon, 31. Dezember 1969, abgerufen am 27. August 2017.
  2. Maia Weinstock: Scene at MIT: Margaret Hamilton's Apollo code. In: MIT News. 17. August 2016, abgerufen am 22. Juli 2019.

Auf dieser Seite verwendete Medien

Agc verb-noun-list.jpg
  • Liste der Befehle im Apollo Guidance Computer. Zur schnellen Verfügbarkeit war sie auf eine Instrumentenbrettverkleidung gedruckt.
  • List of numeric codes for verbs and nouns in the Apollo Guidance Computer. For quick reference, they were printed on a side panel.
Agc view.jpg
Apollo Guidance Computer Ansicht NASA
Margaret Hamilton - restoration.jpg
Margaret Hamilton neben den Ausdrucken der von ihr und ihrem Team für das Apollo-Projekt entwickelten Flugsoftware.
Vought F-8 E-24741 Fly by wire.jpg
Um die technische Machbarkeit und die Vorzüge eines rechnergestützten Fly-by-wire-Systems für das Apollo-Programm zu demonstrieren wurde der Apollo Guidance Computer in der einer Vought F-8 eingesetzt. Der AGC Computer ist in der Avionik-Bucht im Rumpf hinter dem Cockpit teilweise sichtbar; gut zu erkennen ist die Anzeige- und Tastatureinheit (DSKY). Für die Aufnahme des Computers und anderer Geräte wurden die Waffen und Munitionsmagazine entfernt.
Apollo CSM lunar orbit.jpg
The Apollo 15 Service Module as viewed from the Apollo Lunar Module. Image has been cropped and rotated.
Apollo DSKY interface.svg
The Apollo Guidance Computer DSKY (display & keyboard) user interface unit.