Home | Raumfahrt | Sonstige Raumfahrtaufsätze | Raumfahrt & Computer | Site Map |
Erstmals wurde bei den bemannten Gemini Missionen ein Computer in einem Raumfahrzeug eingesetzt. Er hatte die Abmessungen von 48 × 37 × 32 cm³ und wog 26,6 kg, war also für die damaligen Verhältnisse extrem klein und leicht. Am 7.3.1962 bekam IBM von McDonnell den Auftrag Y20163R für die Entwicklung des Gemini-Trägheitsführungssystems. Damit hatte der Computerhersteller IBM erstmals die Aufgabe einen Bordcomputer für ein Raumfahrzeug zu entwickeln. Bisher waren Großrechner die Domäne von IBM und so fasste einer der Ingenieure auch die Aufgabe wie folgt zusammen: Den Inhalt eines Kühlschranks in eine Hutschachtel hineinzupacken.
Der Auftrag hatte einen Umfang von 2,6 Millionen Dollar. Die erste Maschine wurde am 31.8.1963 dem finalen Testprogramm unterzogen. Im Dezember 1965 wurde der letzte von 20 Rechnern ausgeliefert. Mit ihm begann eine langjährige Zusammenarbeit zwischen IBM und dem Zentrum für bemannte Missionen. Apollo, Skylab, Space Shuttle - sie alle setzten Bordrechner von IBM ein. Schon vorher war IBM der Hauptlieferant bei den Rechnern für die Missionskontrolle. So wurde „Mission Control“ bei Gemini von IBM 7094 Computern überwacht (zwei Stück wegen der Redundanz) und die Daten wurden bei den Bodenstationen von älteren IBM 709 vorverarbeitet. Die 7094-Serie waren speziell für wissenschaftliche Problemstellungen ausgelegte Rechner, sie waren die schnellsten von IBM produzierten, als die Aufträge für das Gemini Programm Anfang der sechziger Jahre vergeben wurde.
Der Gemini Digital Computer (GDC) bestand aus fünf Platinen mit 510 Modulen. Der Computer wurde aus diskreten Einzelteilen wie Transistoren, Widerstände und Dioden gefertigt, verwandte also noch keine integrierten Schaltungen. Eine komplette Platine wurde dann in Epoxidharz eingegossen, um sie vor den Belastungen beim Raketenstart zu schützen. Dieser wurde damals wie heute mit Rütteltischen simuliert.
Der Speicher bestand aus 39 Modulen mit je 64 × 64 Bits pro Modul. Es wurden immer drei Befehlsworte von 13 Bit Breite zu einem Speicherwort zusammengefasst. Das reduzierte die Anzahl der Bits, die man brauchte, um den Speicher zu adressieren von 14 auf 12. Der Speicher nahm 4.096 dieser Dreierbündel auf. (Insgesamt 159.744 Bits). Der Speicher wurde dann nochmals in 16 Segmente mit je 256 Worten unterteilt. Er bestand aus Ringkernspeicher, dem damaligen Standardspeicher bei Computern. Dabei werden kleine Eisenkerne auf eine Drahtmatrix aufgezogen. Zum Speichern eines Bits wurden die beiden Drähte, auf deren Kreuzungspunkt sich ein Ring befand, unter Strom gesetzt. Die kombinierte Stromstärke erzeugte ein so starkes Magnetfeld, dass die Permanentmagnetisierung des Eisenrings verändert wurde. Zum Lesen wurden auch beide Drähte unter Strom gesetzt, aber mit einer geringeren Stromstärke. Das erzeugte Magnetfeld bewirkte durch Wechselwirkung mit dem Permanentmagnetfeld einen induzierten Strom in einem dritten, stromlosen Lesedraht, der von dem Ursprungsmagnetfeld abhing.
Der Ringkernspeicher hatte den praktischen Vorschlag, dass er nichtflüchtig war. Bei den Missionen wurde oft der Rechner abgeschaltet, wenn er nicht benötigt wurde. Da der Speicher seinen Inhalt auch ohne Stromzufuhr behielt, er also nicht mehr erneut eingelesen werden musste war er auch nach dem erneuten Anschalten sofort betriebsbereit, nur die Daten, wie Navigationsinformationen waren nicht mehr gültig. Da der Rechner durchschnittlich 94,5 Watt konsumierte, wurde er nur betrieben, wenn er auch benötigt wurde, also bei Start, Wiedereintritt und bei Ankopplungen. Er absolvierte nach dem Start sein Selbsttestprogramm und war dann nach etwa 20 Sekunden betriebsbereit. Bedingt durch die Anforderungen entwickelte IBM einen Ringkernspeicher, bei dem die Daten beim Auslesen nicht zerstört wurden. Das war bisher bei Ringkernspeichern nicht möglich. Diese Technologie wurde dann in kommerziellen Rechnern verwendet,
Die Taktrate betrug 0,5 MHz für den Prozessor und 0,25 MHz für den Speicher. Es gab nur 16 Instruktionen, man könnte ihn also als RISC-Rechner (RISC: Reduced Instruction Set Computer) bezeichnen. Nur rund 7.000 Befehle konnten pro Sekunde ausgeführt werden. Die meisten Instruktionen, wie ein Speichertransfer, eine Addition oder eine Subtraktion dauerten 140 Mikrosekunden. Ausnahmen waren die Multiplikation mit 420 Mikrosekunden und die Division mit 840 Mikrosekunden. Die Ausführung war deswegen so langsam, weil der Prozessor bitseriell arbeitete: Bevor eine Instruktion ausgeführt werden konnte, musste in 39 Takten erst einmal das Befehlswort eingelesen werden. Auch die Ausführung erfolgte Bit für Bit. Das reduzierte den Aufwand für den Rechner beträchtlich, denn anstatt 26 Bits auf einmal, wurde nur jeweils ein Bit jedes Operanden verarbeitet. Die Rechenwerke waren daher erheblich einfacher aufgebaut. Der Nachteil war eine enorme Geschwindigkeitseinbuße. Die ersten 8-Bit-Mikroprozessoren in den siebziger Jahren führten bei dieser Taktgeschwindigkeit rund 100.000 bis 200.000 Befehle aus. Durch die bitserielle Architektur waren es beim Gemini Bordcomputer nur 7.000.
Ein Befehlswort hatte eine feste Breite von 13 Bits. Ein Datenwort war immer 26 Bits breit. Auch die feste Breite von Instruktionen ist ein typisches RISC-Merkmal. Verwendet wurde in der CPU eine Integerarithmetrik mit Vorzeichenbit. Die Zahlen wurden aber interpretiert, wie man es wolle, es gab also keinen festen Wertebereich. So konnte eine Zahl eine ganze Integerzahl sein oder der Bruch einer Fließkommazahl. Der Programmierer musste also das "Format" seiner Daten kennen.
Ein Befehlswort hatte das Format OOOOPPPPPPPPP, wobei die 4 O-Bits für den Opcode und die 9 P-Bits für den Parameter standen. Beim Speicherzugriff wurden nur 8 Bits verwendet, daher war der Speicher auch in 16 Segmente mit je 256 Worten unterteilt. Das letzte, neunte, Bit diente dazu, zwischen zwei Sektoren umzuschalten. Reine Datenworte waren 26 Bits lang, das ist ausreichend für eine Dezimalzahl mit 7 Stellen oder einer Ganzzahl von -33.554.432 bis +33.554.433. Der Bordcomputer war ausgelegt, um fest programmierte Berechnungen durchzuführen und die Ergebnisse anzuzeigen. Er hatte noch nicht die Aufgabe das Raumschiff zu steuern, außer wenn die Titan Steuerung ausfiel, dann konnte er übernehmen. Der Befehlssatz enthält daher auch vor allem mathematische Operationen, darunter die Division und Multiplikation, die man bei einem so langsamen und einfachen Computer nicht erwarten würde. In der Software gab es dann noch weitere mathematische Routinen, für Sinus oder Quadratwurzelberechnung.
Verbunden war der Computer mit dem Telemetriesystem und dem Radar. Ein Time Reference System hatte drei 24-Bit Zähler, die mit dem Abheben gestartet wurden und in Achtel-Sekunden Intervallen erhöht wurden. Sie konnten vom Bordcomputer ausgelesen werden.
Die Instruktionen waren folgende:
HOP (0): Sprung zu einer Speicheradresse, in vielen anderen Dialekten als „Jump“ bezeichnet.
DIV (1): Division. Da die Division 6 Takte dauerte, und der Computer schon nach dem ersten Takt den nächsten Befehl ausführen wollte, musste man, um das korrekte Ergebnis zu bekommen nach einer Division 4 Worte einfügen welche "nichts " taten (eine eigene NOP-Instruktion (No Operation) fehlte). Eine weitere mit der Division verbundene Instruktion entfiel auf die SPQ, die man brauchte, um das Ergebnis abzulegen.
PRO (2): Ein-/Ausgabe von einem Port zum Akkumulator
RSU (3): Reverse Subtraktion: Unterscheidet sich von der Subtraktion nur durch die Reihenfolge der Operanden.
ADD (4): Addition
Sub(5): Subtraktion
CLA (6): Holen eines Wertes aus dem Speicher in den Akkumulator
AND (7): Binäre AND-Operation
MPY (8): Multiplikation: Auch hier waren zwei „leere Ausführungen“ nötig, weil die Ausführung drei Takte dauerte.
TRA (9): Sprung innerhalb eines Sektors
SHF(10): Shift des Operanden links/rechts
TMI(11): Konditionaler Sprung, wenn der Akkumulator kleiner als Null ist.
STO(12): Ablegen des Akkumulators im Speicher
SPQ(13): Speichert das Ergebnis der Berechnung einer Multiplikation/Division an einer Adresse ab.
CLD(14): Ein Bit des Operanden wird in den Akkumulator eingelesen, dabei wird jedes Bit im Akkumulator mit diesem Bit überschrieben.
TNZ(15): Bedingter Sprung, wenn Akkumulator größer/gleich Null.
Es gab ursprünglich sieben Betriebsmodi und ebenso viele Programme im Speicher. Mit Einführung des Bandlaufwerkes kamen während des Programmes drei weitere Modi hinzu. Es gab schließlich sechs Programme mit zehn Operationsmodi.
Vor dem Start absolvierte er ein Selbstdiagnoseprogramm („Pre-launch Mode“). Bis 150 Minuten vor dem Start konnte man Daten an den Rechner übermitteln, z.B. veränderte Startzeiten etc.
Während des Aufstiegs verarbeitete er die Daten der Beschleunigungssensoren sowie anderer Teile des Navigationssystems und stand bereit, die Steuerung der Titan zu übernehmen, falls deren Steuerungssystem ausfallen sollte. („Ascent Mode“)
Um die Agena von dem ersten Erdorbit aus zu erreichen, lieferte er die Daten, welche die Besatzung benötigte, um die Gemini auszurichten, sowie die Geschwindigkeitsinkremente, welche erforderlich waren, um sich dem Kopplungsziel zu nähern („Catch-up Mode“)
Bei der Annäherung an die Agena berechnete er auf Basis der Radardaten und der Signale der Inertialplattform, welche Triebwerke wie lange betätigt werden mussten, und zeigte dies an („Rendezvous Mode“).
War eine Zündung der OAMS oder der Agena erfolgt, so konnte der Computer die Daten des erreichten, neuen, Orbits anzeigen („Orbit Prediction Mode“).
Mit einem Weltraumsextanten konnte ebenfalls die räumliche Position, nun aber auf Basis eines äußeren Bezugssystems berechnet werden. Der Computer konnte diese nach Angabe der Winkel durch die Astronauten berechnen („Orbit Navigation Mode“).
Um die Position neben einer Agena oder einer anderen Gemini Kapsel zu halten, konnte er, basierend auf den Daten des Radars, die relative Position und Geschwindigkeit berechnen („Relative Motion Mode“).
Die Position im Orbit konnte aufgrund der Ausrichtung der eigenen Inertialplattform bestimmt und angezeigt werden („Orbit Determination Mode“).
Vor der Landung wurde die Eintrittsbahn berechnet und die nötigen Zeitpunkte und Steueranweisungen der Besatzung angezeigt. („Touchdown Prediction Mode“)
Der Computer konnte auch die Triebwerke während des Abstiegs zünden, um den Auftrieb zu regulieren und die Abweichung zum geplanten Landepunkt zu minimieren („Reentry Mode“)
Die Inertialplattform aus Kreiseln hatte das Problem, dass die Kreisel einen Drift aufwiesen. Zudem addierten sich die Fehler, wenn der Bordcomputer auf ihren Daten die Position über Stunden berechnen sollte. Daher war die normale Reihenfolge die, dass vor Beginn eines Manövers die Geschwindigkeits- und Richtungsvorgaben von der Bodenkontrolle mit einem IBM 7094 Computer auf Basis der Radarvermessung der Umlaufsbahn berechnet und zu den Astronauten übermittelt wurden, welche sie in den Bordcomputer eingab. Wenn dann die Annäherung an die Agena erfolgte, war der Bordcomputer alleine verantwortlich für die Berechnungen der Korrekturen, wobei er die Ergebnisse der Besatzung als Vorgabe präsentierte und diese die Triebwerke betätigten. Diese Philosophie spiegelte wieder, dass der GDC als eine der neuen Technologien galt, die für Apollo erprobt wurden. Apollo wäre ohne Bordcomputer nicht möglich, aber bei dem Beginn der Entwicklung des GDC galten die Computer, welche die NASA zur Vermessung der Aufstiegsbahnen und zur Verarbeitung von Daten nutzte als nicht sehr ausfallssicher. Die Gemini-Kapsel sollte notfalls auch ohne den Computer gesteuert werden können. Aus Gewichtsgründen und wegen des Stromverbrauchs war der Rechner nur einmal vorhanden. Es gab keine Redundanz. Der einzige Ausfall, den es während der Missionen gab, ereignete sich bei der 48-Erdumkreisung von Gemini 4, als die Stromversorgung des Bordcomputers nicht mehr abgeschaltet werden konnte. IBM konnte das Problem bei Tests nicht reproduzieren. Die folgenden Exemplare erhielten aber einen Schalter, mit dem man die primäre Stromversorgung überbrücken konnte.
Die Programme (Math Flow) für den Bordcomputer wurden von Mission zu Mission komplexer und länger. Die erste im Flug eingesetzte Version war Math Flow 2. Math Flow 4 hatte ein zusätzliches Wiedereintrittsprogramm, belegt nun aber schon 12.150 der 12.288 Worte des Speichers. Weitere Module würden noch mehr Speichern erfordern. Da die gesamte Software nicht in den Speicher passte, entschloss sich die NASA, ab Gemini 8 ein Bandlaufwerk als Massenspeicher hinzuzunehmen. IBM hatte schon frühzeitig einen Vorschlag gemacht, den GDC um ein Magnetbandlaufwerk zu ergänzen. Um die mangelhafte Zuverlässigkeit verfügbarer Modelle zu umgehen, speicherte der Computer jedes Bit dreimal ab. Bei Entwicklungsbeginn hatten Bandspeichergeräte einen Fehler von 1 Bit auf 100.000 Bit. Dieser Fehler musste auf 1 Bit pro 1 Milliarde gesenkt werden. Beim Einlesen wurde dann durch eine "Voter-Schaltung" eine Mehrheitsentscheidung getroffen. Sie gab das Bit weiter, das bei drei Bits am häufigsten vorkam. Eines der drei Bits dürfte also verfälscht sein. Die Speicherkapazität des 11,8 kg schweren Bandlaufwerks lag bei 1.17 Megabit, also siebenmal größer als der Hauptspeicher, der ingesamt 159744 Bit aufnahm. Bedingt durch das dreifache Lesen eines Bits, dauerte es 6 Minuten um ein Programm in den Speicher zu laden. Die Leserate lag so bei nur 440 Bit/sec, auch weil auf zwei Datenbits noch ein Synchronisationsbit und ein Paritätsbit kamen. So wurde die Kapazität des 1-Zoll-Magnetbandes von 160 m Länge von 12,5 auf 1,17 Mbit reduziert. Auf Band wurden auch Daten gespeichert, die für die Berechnungen notwendig waren. Die Math Flow 7 Version war die letzte, im Flug, eingesetzte. Sie beinhaltete auch die Routinen für das Bandlaufwerk. Sie wurde für Gemini 8-12 genutzt.
Am Schluss waren neun Versionen der Software in Maschinenspeiche codiert worden. Sie wurden als "Gemini Math Flow" bezeichnet und hatten die Versionsnummer 1-9. Der Math Flow zeigte, wie die Software geschrieben wurde. Zuerst wurden die mathematischen Gleichungen erarbeitet, darauflegte man größte Sorgfalt. Die Algorithmen, also das Programm selbst wurde dann mit Flow-Charts entwickelt und dann in Assembler dekodiert.
Der Computer kontrollierte nicht das Raumschiff, er unterstützte die Besatzung durch Berechnungen für Kursänderungen. Es zeigte sich aber bei den Missionen, dass der Computer hier viel effektiver als die Besatzung war. Die ehemaligen Piloten orientierten sich an ihrer Erfahrung, die aber bei den Orbitalgesetzen nicht von Vorteil war: im Gegenteil. Während ein Flugzeug einholt wird, indem beschleunigt wird, bewirkt dies im Orbit, dass eine höhere Bahn erreicht wird, mit einer längeren Umlaufszeit: das Ziel entfernt sich noch weiter. Der Computer erhielt als Folge neue Aufgaben. So wurden die Programme im Laufe des Gemini Programmes immer komplexer. Bei den ersten Missionen lieferte der Bordcomputer die Geschwindigkeitsvorgaben; bei den letzten Missionen gab es eine Anzeige, die von den Piloten „genullt“ werden musste. Sie mussten die Triebwerke abschalten, wenn die Anzeige "0" erreichte. Trotzdem war ein zu hoher Treibstoffverbrauch ein Dauerproblem bei den meisten Gemini Missionen. Als Folge erhielt die Apollo-Kommandokapsel ein Computersystem, das alle Zündungen selbst steuerte. Später wurde auch erprobt, ob der Computer den Wiedereintrittsprozess überwachen und Störungen aktiv ausgleichen konnte. Gemini 11 landete vom Computer gesteuert genauso präzise, wie wenn die Besatzung dieses kritische Manöver durchführte.
Bei Gemini trug die Besatzung viel mehr Verantwortung für die Steuerung des Raumfahrzeugs als noch bei Mercury. Die Bodenkontrolle assistierte mehr, als sie es bei Mercury tat. Als Folge sank die Anzahl von Relais, die benötigt wurden, um Bodenkommandos durchzuführen, von 220 auf 60. Die Anzeigekonsole hatte verschiedene Anzeigen für:
Raumlage und deren Änderung.
Fluggeschwindigkeit und deren Änderung
Differenzgeschwindigkeit (RADAR)
Flughöhe
Zeit
Leistung und Zustand der Brennstoffzellen
Treibstoffvorrat und Verbrauch
Klima in der Kabine
Das Programm wurde mit einem Drehschalter mit anfangs sieben Positionen ausgewählt und mit einem Start-Button vom Bandlaufwerk in den Speicher gelesen. Nach Ausführen des Selbsttests war der Computer dann betriebsbereit.
Zur Eingabe von Zahlen diente die Manual Data Insertion Unit (MDIU). Sie bestand aus einer Zehnertastatur und einer Anzeige für 7 Dezimalzahlen. An ihr gab es noch drei Knöpfe um eine Anzeige zu löschen (Clear), eine Adresse auszulesen (Read out) und einen Schalter um Daten zu übergeben (Enter). Mit einem Kippschalter konnte der Computer ein-/ausgeschaltet werden. Die Anzeige war unterteilt in:
zwei führende Ziffern: Sie gaben an, welche Adresse ausgelesen/geschrieben wird. Bis zu 99 Adressen konnten so angesprochen werden. Die folgenden 5 Ziffern gaben den Inhalt des Speichers als Dezimalzahl aus. Eine negative Zahl wurde mit einer führenden "9" ausgegeben.
Die zweite Anzeige war die Geschwindigkeitsanzeige "Increment Velocity Indicator" IVI. Sie hatte drei Anzeigen für je drei Ziffern. Je eine für jede Raumrichtung. Die Software wurde so verbessert, dass die Besatzung diese Anzeige zu "Nullen", also die Relativgeschwindigkeit auf null reduzieren konnte.
Der Bordcomputer war vorprogrammiert. Die Routinen waren fest, es war nicht vorgesehen die Software während des Flugs auszutauschen, doch dies war auch bei allen folgenden Systemen so. Was möglich war, war die Ausgangswerte für die Berechnungen vom Boden zu übertragen. Das einfache Protokoll übertrug dazu 24 Bit, die sich in 6 Bits Adresse und 18 Bits Daten aufteilten. Damit konnten 64 Worte direkt angesprochen werden. Doch war dies ungenügend. Denn so war nur ein Teil des Speichers für Werte nutzbar und zudem konnten nur 18 Bits anstatt 26 Bits übertragen werden, was einen Genauigkeitsverlust auf 5 Dezimalziffern bedeutete.
Daher gab es ein erweitertes Protokoll, bei dem in die Adressen 20 und 21 (octal) zwei Worte geschrieben wurden. Wenn dies erfolgte, so wurden die 18 Bits dieser beiden Adressen zusammengelegt. Die 36 Bit breite Struktur bestand nun aus einem 26 Bit Datenblock und einer 10 Bit breiten Adresse. So konnte ein Viertel des Speichers direkt angesprochen werden. Bei Funkkontakt wurden alle 2,4 Sekunden 21 Statusworte aus dem Speicher des Instrumentationssystems zur Bodenstation übertragen.
Der GDC bewährte sich bei Gemini. Erstmals war auch während des Wiedereintritts die räumliche Lage der Kapsel veränderbar. Dadurch sollten die Unsicherheiten für eine Punktlandung verringert werden. Auch dies war ein Test für Apollo, das einen sehr schmalen Korridor ansteuern sollte und während des Wiedereintritts aktiv steuern sollte.
Bei der ersten bemannten Mission, Gemini 3, gab der Bordcomputer, aufgrund seiner Berechnung andere Werte für die finalen Korrekturen vor der Landung, als vorher in Windkanaltests ermittelt worden war. Die Missionskontrolle gab daraufhin die Anweisung an die Besatzung, diese zu ignorieren und die Werte einzugeben, die man bei diesen Tests ermittelt hatte. Gemini 3 wurde daher von Hand gesteuert und Grissom und Young landeten 65 km vom Zielpunkt entfernt. Bei der Auswertung zeigte sich, dass der GDC die korrekten Korrekturen berechnet hatte und die von der Bodenkontrolle berechneten falsch waren - man hatte vergessen, die verbrauchte Luft und das abgegebene Wasser beim Gewicht zu berücksichtigen. Bei Gemini 8 konnte der Bordcomputer zwar nicht die Mission retten, aber er sorgte dafür, dass Gemini 8 sehr nahe neben des Zielpunkts für die Notwasserung niederging (nur 11 km von der Vorgabe entfernt) und so schnell von einem Rettungsflugzeug gesichtet wurde. Die Genauigkeit für eine Punktlandung wurde zum Ende des Geminprogramms immer besser. Gemini 9 wasserte nur 0,7 km vom Zielpunkt entfernt. Der Bordcomputer konnte die Kapsel bis auf 4 km genau an die Bergungsflotte heranführen. Den Rest machten manuelle Korrekturen der Astronauten in der aerodynamischen Phase aus. Nach Gemini 8 blieben alle Missionen unter einer Abweichung von 10 km.
Links
http://www.ibiblio.org/apollo/Gemini.html
Artikel erstellt am 28.6.2013
Sitemap | Kontakt | Neues | Impressum / Datenschutz | Hier werben / advert here | Buchshop | Bücher vom Autor |