PS Wissenschaftliches Arbeiten

Open-source server-side tools and
languages for e-commerce

Baum-Struktur-Anzeiger - Anwendungsbeispiel - Originaldokument zurück  


Computer in der Raumfahrt

Dieser Artikel behandelt die Hardware von Computern die in benannten Raumfahrzeugen eingesetzt werden und wurden. Leider liegen mir nicht sehr viele ausführliche Informationen vor, ich habe mich trotzdem bemüht diese in diesen kleinen Text zusammen zu tragen. Teil 2 behandelt die eingesetzten Computer in unbemannten Projekten. Der Artikel basiert neben anderen Aufzeichnungen vor allem auf dem Buch Computers in Spaceflight The NASA Experience. Dieses ist online unter NASA Histories verfügbar.

1. Machte das Apollo Programm den PC möglich?

Oftmals hört man, daß ein Spin-off des Apollo Programmes der kleine Computer sei. Dies ist aus mehreren Gründen falsch.

2. Hardware die im Weltraum funktioniert

Nicht ganz einfach, ist es mit den Bedingungen des Weltraums fertig zu werden.

Dies alles macht Hardware für den Weltraumeinsatz nötig. Alle größeren Weltraumorganisationen entwickeln heute spezielle Hardware für den Einsatz im Weltraum. Grund dafür sind neben den obigen Gründen auch spezielle Anforderungen hinsichtlich Raumfahrzeuges.

3. Computer in bemannten Raumfahrzeugen

3.1. Mercury

Im Mercury Programm wurden noch keine Computer eingesetzt. Das Programm wurde relativ schnell aufgezogen und die Hardware war noch nicht leistungsfähig genug um sie ins Raumfahrzeug zu integrieren. Dies war auch nicht nötig : Um auf Risiken weitgehend zu verzichten wurde die Mission vom Boden aus geflogen. Der Pilot war nur als Passagier eingeplant und die Missionen selbst auf maximal 1 Tag ausgelegt. In ähnlicher Weise wurden auch sowjetische Missionen bis in die 80 er vom Boden aus geflogen und auch heute noch wird bei amerikanischen Missionen eine höhere Verantwortung auf die Crew gelegt.

Bild 1: Instrumentenboard von Mercury

Das Bild oben zeigt das Instrumentenboard von Mercury - Es gab viel zu Beobachtungen und einige Schalter, aber keinen Computer. Immerhin : Das "User interface" war so einfach, das es sogar dressierte Affen bedienen konnten, die man vor den Menschen in den Orbit schoß !

3.2. Gemini

Im Gemini Programm wurde die Mission schon komplizierter. Hier sollten nahe der Erde all die Dinge geübt werden, die im Mondprogramm nötig sind : Koppeln von Raumfahrzeugen im Orbit, Langzeitflüge bis 14 Tagen, Arbeit außerhalb des Raumschiffes. Das ganze wäre auch vom Boden aus möglich gewesen, jedoch war ein Computer eine Unterstützung und im Mondprogramm mußte es ja auch weitgehend ohne Bodenkontrolle gehen.

Bild 2: Rechner von Gemini

Der Gemini Rechner war der erste Computer der im Orbit eingesetzt wurde. Er war noch auch diskreten Bauteilen aufgebaut, d.h. einzelnen Transistoren, nicht integrieren Schaltungen. Er hatte Abmessungen von 48 x 37 x 32 cm und eine Masse von 26.6 kg. Er bestand aus 5 Boards und war mit 510 Modulen aufgebaut. Die Auslegung war noch nicht redundant. Der Rechner hatte eine Zykluszeit von 140 Mikrosekunden, konnte also maximal 7000 Befehle/Sek abarbeiten. Diese auch zur damaligen Zeit langsame Rechengeschwindigkeit resultierte aus der seriellen Verarbeitung der Daten. Sie ermöglichte aber eine große Vereinfachung des Designs. Daten wurden innerhalb des Rechenwerkes mit 500 000 Bit/sec übertragen, zum Speicher mit 250.000 Bit/sec. (Im nachfolgenden wie sonst üblich als Baud abgekürzt).

Bild 3: Ringkernspeicher

Der Speicher bestand aus 39 Modulen von Ringkernspeichern à 64 x 64 Bits, zusammen also 19968 Byte. Ein Wort bestand immer aus 39 Bits die in 3 mal 13 Bit Scheiben unterteilt wurden. Üblicherweise wurden die ersten 13 Bits für ein Befehlswort verwendet und die restlichen 26 Bit für die Daten. Der Rechner hatte also eine 13/26 Bit Architektur. Derartige "krumme" Architekturen waren damals üblich, so war der erste Supercomputer die Cyber 6600 z.B. ein 6/18 Bit System. Ringkernspeicher war vor Einführung der Halbleiterspeicher Anfang der 70 er Jahre der normale Speicher bei Computern. Er besteht aus kleinen Eisenringen die auf einem Geflecht von Kupferdrähten sitzen. Ein starker Stromstoß kann an einem Kreuzungspunkt die Magnetisierung des Eisenrings ändern und so ein Bit speichern. Mit einem schwächeren Strom kann man den Speicher auslesen. Die Speicherung ist anders als heute magnetisch und damit permanent wie bei einer Festplatte.

Ab Gemini 8 kam ein zusätzliches Bandlaufwerk zur Datenspeicherung zum Einsatz. Ihren Weltraumeinsatz feierten diese schon beim ersten Satelliten der USA der seine Daten auf ein kleines Band (allerdings analog) aufzeichnete und dann in der Nähe der Bodenstation abspielte. Ein Problem war die Datensicherheit, die damals bei einem fehlerhaften Bit auf 100.000 Bit lag. Man erhöhte diese indem man die Daten dreifach aufzeichnete. War ein Bit defekt, so waren die anderen beiden doch lesbar und über Mehrheitsentscheidung konnte so das dritte korrigiert werden. Nur wenn zwei Bits falsch waren wurde die Information verfälscht. diese Wahrscheinlichkeit lag aber bei 1:1 Mrd.

Die Speicherkapazität des 26 kg schweren Bandlaufwerks lag bei 11.17 Megabit, also 7 mal größer als der Hauptspeicher. Bedingt durch das dreifache Lesen dauerte es aber 6 Minuten um ein Programm in den Speicher zu lesen. Die Datenrate lag so nur bei 440 Baud.

Die Software wurde angesichts der Rechengeschwindigkeit und Speicherkapazität in Assembler geschrieben und bestand aus 4 Modulen : Aufstieg, Einfangen, Rendezvous und Wiedereintritt. Beim unbemannten Gemini 2 Test belegte die Software 1250 von 12288 Worten. Das Booten des Rechners dauerte 20 Sekunden. Das User Interface bestand aus einem Keyboard für numerische Eingaben und einer 7 stelligen Digitalanzeige - Der Rechner ähnelte mehr einem Taschenrechner als einem Computer.

3.3. Apollo

Der Computer für Apollo mußte erheblich mehr leisten als der von Gemini. Zum einen war die Funkverzögerung von 1.5 Sekunden beim Mond. Dies konnte in kritischen Situationen das scheitern der Mission bedeuten wenn sofort reagiert werden mußte. Zum andern fanden bestimmte Manöver wie das Einschiessen in die Umlaufbahn ohne Funkontakt hinter dem Mond statt. Ohne einen Computer wäre die Mondmission nicht durchführbar gewesen.

Schon 1961 machte man sich daher an die ersten  Konzepte für den Apollo Bordrechner. Man entschied sich schliesslich für identische Rechner in der Kapsel (CM) und im Mondlander (LM). Die Software war jedoch unterschiedlich, da der Lander auf dem Mond landen sollte während das CM zum Mond starten und zurückkehren sollte.

Der Rechner hatte Abmessungen von 61 x 32 x 15 cm. Er wog 31.7 kg und verbrauchte 70 Watt bei 28 V Spannung. Dazu kamen die hier abgebildeten Bedienungseinheiten die je 20 x 20 x 17.5 cm groß waren und 8 kg wogen. Zwei davon aren im CM und eines im LM.

Bild 4: Apollo-Computer

Für den Rechner wurde eine Wortbreite von 16 bit gewählt. Alle Berechnungen erfolgten in diesem Format, d.h. es gab keine Flieskommazahlen. für höhere Genauigkeiten gab es Doppelwort und Triplewortberechnungen, die jedoch nur für bestimmte Navigationsvariablen gewählt wurden. Der Gesamte Rechner bestand aus zwei Packs mit je 24 Modulen die jedes 60 logische Flatpacks mit zwei Gattern in 72 Pin Einschüben enthielten, insgesamt also 5760 einzelne Gatter - Der gesamte Rechner war noch in diskreten Bauteilen entworfen, nicht in denen ab 1964 verfügbaren integrierten Schaltungen.

Der Rechner verfügte über 6 Register mit 12 Bits Breite. Eine Verschiebung und Addition eines Offsets (wie beim 8086 10 Jahre später) ergab dann den vollen Adressbereich von 16 KWorten oder 128 KByte. Der Takt lag bei einem Megaherz. Max. 42000 Instruktionen konnten pro Sekunde ausgeführt werden.

Der Speicher wurde im Laufe der Entwicklung immer mehr erweitert und umfasste schliesslich 36 KWorte (72 KByte) ROM und 2 KWorte (4 Kbyte) RAM. Bei Apollo Missionen waren die Astronauten schwer damit beschäftigt Werte in den Rechner einzutippen die ihnen die Bodenstation funkte. Als bei Apollo 13 durch den Missionabbruch zahlreiche Manöver durchzuführen hatte wurde das Papier an Bord recht knapp. 10500 Tastendrücke erforderte im Mittel eine Mission - Die NASA hatte am Boden zwar alle Werte die der Rechner ausgab, misstraute aber dem Programmieren vom Boden aus.

Der Speicher bestand wieder aus Ringkernspeichern : 6 Modulen mit je 6144 Worten à 16 Bit. Jedes Modul zerfiel zudem in 6 Bänke. Von den 36 Bänken konnten die ersten 2 direkt mit 12 Bit Adressiert werden der Rest über eine Verschiebung. Der Speicher musste Monate vor der Mission programmiert werden, wobei es keine Möglichkeit gab die Software am Original zu testen.

Um eine erhöhte Zuverlässigkeit zu erreichen implementierte man ein einfaches Multitasking System : Die Aufgaben wurden in Tasks eingeteilt und alle 20 ms wurde nachgesehen ob ein Task mit Höherer Priorität die Aufmerksamkeit benötigte. In diesem Fall hätte man die Ergebnisse des unwichtigeren Tasks verworfen. Trotzdem kam es bei der Apollo 11 Landung zu einer Überlastung des Rechners des LM, als das Landeradar 85.000 mal pro Sekunde die Aufmerksamkeit erforderte.

Zusätzlich zum Hauptrechner gab es im LM noch den AGS : Ein Computersystem, welches bei einem Landeabbruch den Lander in einen sicheren Mondorbit einschiessen sollte. Man konnte ihn von einem Pad im LM aus aktivieren. Der Rechner war eine 18 Bit Maschine (5 Bit Instruktionen, 27 verfügbar und 13 Bit Adressen). Die Ausführungszeit umfasste 10-70 Mikrosekunden. Der Rechner hatte je 2 KWorte ROM und RAM und wog 15 kg. Er musste niemals zum Abbruch eingesetzt werden, aber wurde zur Kopplung von LM und CM bei Apollo 11 eingesetzt.

3.4. Skylab

Bei Skylab fand zum ersten Mal "normale" Industrietechnologie Anwendung : Eine welttraumtaugliche Version des IBM 360 Systems. Anders als beim Zentralprozessor des 360 Systems dem AP 101 wurde eine 16 Bit anstatt 32 Bit Technologie gewählt um das Design einfacher zu halten. Der Rechner war aber auf Softwareseite kompatibel zum AP 101. Zwei Rechner mit je 16 Kiloworten teilten sich die Arbeit. Einer war verantwortlich für die Lageregelung und Kontrolle der Station, der zweite sorgte für die Kontrolle der Sonnentelesope, dem im Nachhinein wichtigsten Bestandteil der Skylab Station. Als Speicher kamen auch diesmal wieder Ringkernspeicher zum Einsatz. Anders als bei Apollo oder Gemini war eine Zuverlässigkeit über 600 Tage gefordert die das System auch erfüllte, es gab bis zum Verglühen von Skylab nach 6 Jahren keinen Absturz der Rechner.

Bild 5: Skylab-Computer

Der Datenspeicher bestand wiederum aus Ringkernspeichern. Jeder Rechner hatte zwei 8 K Module. Software konnte von einem Band geladen werden. Diesmal dauerte der Upload nur 11 Sekunden. Ein Problem war von Anfang an der knappe Speicher - halb so groß wie bei Apollo. Am Schluss beanspruchte die Software 16329 von 16384 Speicherzellen.

Auch hier bestand das User Interface in einer einfachen 10 Tasten Tastatur : Werte wurden in Oktal (0..7) eingegeben.

3.5. Space Shuttle

Die Erfahrungen bei Skylab wurden im Shuttle verarbeitet : Es wurde wieder ein Nachfolger des AP 101 verwendet, jedoch diesmal in 32 Bit um höhere Geschwindigkeit zu erreichen. Auch kam man ab von Assembler als Programmiersprache und schuf eine eigne Programmiersprache für die Software : HAL - Die NASA bestreitet übrigens jede Verwandtschaft zu dem Computer HAL aus dem Film "2001 Odyssee im Weltraum". Der AP 101 wurde 1966 eingeführt, so das als 1970 es an das Design ging der Prozessor schon eingeführt war und auch in den Bombern B-52 und B-1B eingesetzt wurde. Kombiniert wurde er mit einem eigenen I/O Prozessor.

Der AP 101 hat einen ladbaren Microcode von 2048 Instruktionen für max. 48 Bit in der Länge. Belegt wurde dieser Microcode mit 154 Opcodes. Instruktionen konnten 16 oder 32 Bit Ganzzahlen oder - zum ersten Mal - 32,40 oder 64 Bit Flieskommazahlen umfassen. Die Geschwindigkeit betrug 480.000 Instruktionen/sec. Der Speicher konnte direkt nur mit 16 Bit adressiert werden. Doch Erweitern über Segmentierung erhöhte den Adressbereich auf 256 KWorte oder 1 MByte.

Der Speicher bestand auch hier zuerst aus Ringkernspeichern mit 400 ns Zugriffszeit. 80 KWorte in der CPU und 24 KWorte im I/O Prozessor. Jedes Wort bestand aus 18 Bit, wobei 2 bits der Fehlererkennung dienten. Um die Zuverlässigkeit des ganzen Systems zu erhöhen kamen 5 Rechner zu Einsatz die sich gegenseitig überwachten. Nur 4 waren von IBM, der fünfte von Honeywell diente als Absicherung gegen einen Defekt der alle IBM Rechner lahmgelegt hätte. Die Mission wäre auch mit einem Rechner beendigbar gewesen. Dazu kam eine interne Fehlererkennung die 95 % der Hardwaredefekte erkennen konnte.

Verbunden wurden die Rechner und der Rest des Shuttles über 24 I/O Busse mit einem zusätzlichen Master Bus. Anders als bei allen früheren Missionen gab es nun zum ersten Mal Bildschirme die Text darstellen konnten. Die Bildschirme haben Größen von 5 x 7 Toll und stellten 51 x 26 Zeichen dar 4 Stück sind mit Tastaturen verbunden. Ein eigener 16 Bit Prozessor mit 8 KWorten RAM kümmert sich um die 4 Displays.

Ein Magnetband wurde erst sehr spät in die Spezifikationen aufgenommen, wurde aber bald essentiell, denn die Software sprengte den Arbeitsspeicher. Zwei Bänder, jedes mit einer Kapazität von 8 Millionen 16 Bit Worten nahmen die Flugsoftware auf, die mit 700 KWorten inzwischen das verfügbare RAM weit überschritt. Die Softwareentwicklung gestaltete sich einfacher, da man diese auch auf einem IBM 360/75 System entwickeln konnte.

1988 wurden die Rechner durch die Leistungsfähigeren AP 101F ersetzt : Jeder mit 256 KWorten Halbleiterspeicher und doppelter Geschwindigkeit von 1 Million Instruktionen/sec. Ähnliches passierte auch beim Triebwerkskontroller. Dieser überwacht die Triebwerke. Der HDC-601 ein 16 Bit Computer mit 16 KWorten RAM wurde zuerst genutzt, später ein Motorola MC 68000 mit je zwei 64 K großen CMOS RAM Speichern und C als Programmiersprache anstatt Assembler.

Trotzdem flogen auf jeder Mission auch kleinere Rechner mit vom HP-41C Rechner bis zu speziellen IBM Notebooks die für Daten genutzt wurden die einfach nicht auf den wenigen Displays unterzubringen waren oder missionsspezifischen Programmen.

In den Raumanzügen für die Tätigkeit außerhalb des Shuttles, den EMU's steuert ein relativ bescheidener Computer alle Funktionen die für das Leben des Astronauten notwendig sind : Ein NSC-800 (8 Bit) mit 2 Mhz, 32 K ROM und 2 K RAM. Die Software ist in PL/N geschrieben und benötigt nur 30 der 32 K ROM.

3.6. ISS

Von der ISS sind seitens der ESA die Daten ihrer Computerhardware bekannt. Die ESA ist mit zwei Computersystemen beteiligt : Dem DMS. Es steuert das russische Modul Swesda und übernimmt lenkungs- und Navigationaufgaben für die ganze Station. Kernstück des 50 kg schweren Rechners sind. Das DMS besteht aus vier Rechnern : Zwei zur Steuerung der Swesda und zwei zur Steuerung des Außenarmes und für Andockvorgänge. Jeder der Rechner hat einen SPARC Prozessor mit 6 MB RAM und 8 MB ROM - wenig im Vergleich zu irdischer Hardware aber viel im Vergleich zum Space Shuttle.  Die Rechner sind fehlertolerant und bestehen aus 3 Untereinheiten die separat ausgetauscht werden können. Jeder der vier Rechner benötigt nur 40 Watt Strom.

Bild 6: DMS

Die Kommunikation geschieht über den MIL STD Bus, einem Bus den die NASA für ihren Prozessor MIL 1750 A eingeführt hatte. Der Bus ist heute veraltet, doch reicht die Geschwindigkeit von 1 MBit/s für die Stationsdaten aus. Er ist dafür durch besondere Protokolle sehr sicher

Weiterhin gibt es auf dem europäischen Labor Columbus einen weiteren Rechner der sich an den DMS anlehnen wird. Für die Steuerung der Experimente hat die ESA wird der SPLC eingesetzt. Dieser Rechner soll die Experimente steuern und als Neuerung soll er es erlauben sich an jedem Ort der Station mit Notebooks einzuwählen und von dort aus die Daten abzurufen. Basis des SPLC genannten Computer ist eine Architektur auf dem VME BUS. Er basiert auf dem SPARC V7 Prozessor, besitzt 8 MB SRAM und 4 MB EEPROM Speicher. Als Massenspeicher wird eine 50 MB große EEPROM "Disk" benutzt. Sie hat Interfaces für mehrere Filesysteme, darunter auch DOS. Die Kommunikation geschieht über 6 serielle RS 422 Schnittstellen und Anschlüsse für 6 Mezzantine Boards. Als Betriebssystem findet VxWorks Verwendung.

Die Mezzantine Boards sind die wechselbaren Steckkarten des Systems, ähnlich wie bei einem PC. Es gibt 5 verschiedene :



zurück