Leitungscomputer von Apollo

Apollo Guidance Computer (AGC) war ein Digitalcomputer, der für das Programm von Apollo erzeugt ist, das an Bord jeder Apollo Command Module (CM) und Lunar Module (LM) installiert wurde. Der AGC hat Berechnung und elektronische Schnittstellen für die Leitung, Navigation und Kontrolle des Raumfahrzeugs zur Verfügung gestellt. Der AGC hatte eine 16-Bit-Wortlänge, mit 15 Datenbit und einem Paritätsbit. Der grösste Teil der Software auf dem AGC wurde in einem speziellen gelesenen nur Gedächtnis versorgt, das als Kerntau-Gedächtnis bekannt ist, das durch das Weben von Leitungen durch magnetische Kerne geformt ist, obwohl ein kleiner Betrag von gelesenen - schreibt, dass Kerngedächtnis zur Verfügung gestellt wurde.

Astronauten haben mit dem AGC kommuniziert, den das Verwenden einer Ziffernanzeige und Schlüsselpolsters den DSKY genannt hat. Der AGC und seine DSKY Benutzerschnittstelle wurden am Anfang der 1960er Jahre für das Programm von Apollo vom MIT Instrumentierungslaboratorium entwickelt. Der AGC ist bemerkenswert, um einer der ersten einheitlichen Stromkreis-basierten Computer zu sein.

Operation

Jeder Flug zum Mond (mit Ausnahme von Apollo 8, der kein Mondmodul auf seiner Mondbahn-Mission genommen hat) hatte zwei AGCs, ein jeder im Befehl-Modul und dem Mondmodul. Der AGC im Befehl-Modul war am Zentrum der Leitung dieses Raumfahrzeugs & Navigationssystems (G&C). Der AGC im Mondmodul hat seinen Apollo PGNCS (Primäre Leitung, Navigation und Regelsystem), ausgesprochen als ein Akronym als pings geführt.

Jede Mondmission hatte zwei zusätzliche Computer:

  • Launch Vehicle Digital Computer (LVDC) auf dem Saturn V Boosterrakete-Instrumentierungsring
  • Abort Guidance System (AGS) des Mondmoduls, um im Falle des Misserfolgs des LM PGNCS verwendet zu werden. Der AGS konnte verwendet werden, um sich vom Mond, und zum Rendezvous mit dem Befehl-Modul zu entfernen, aber nicht zu landen

Design

Der AGC wurde am MIT Instrumentierungslaboratorium unter Charles Stark Draper mit dem von Eldon C. Hall geführten Hardware-Design entworfen.

Früh ist architektonische Arbeit aus J.H. Laning dem Jüngeren gekommen.

Albert Hopkins,

Ramon Alonso,

und

Hugh Blair-Smith.

Die Flughardware wurde von Raytheon, dessen Herb Thaler fabriziert

war auch auf der architektonischen Mannschaft.

Der Flugcomputer von Apollo war erst, um integrierte Stromkreise (ICs) zu verwenden.

Während die Version des Blocks I 4,100 ICs verwendet hat, jeder, eine Single 3-Eingänge-NOCH Tor enthaltend, hat die spätere Version des Blocks II (verwendet in den zu Mannschaft gehörten Flügen) 2,800 ICs, jeden mit zwei 3-Eingänge-NOCH Toren verwendet. Die ICs, von Halbleiter von Fairchild, wurden mit der Logik des Widerstand-Transistors (RTL) in einem flachen Satz durchgeführt. Sie wurden über die Leitungshülle verbunden, und die Verdrahtung wurde dann in Wurf-Epoxydharz-Plastik eingebettet. Der Gebrauch eines einzelnen Typs von IC (der Doppel-NOR3) überall im AGC hat Probleme vermieden, die einen anderen früh IC Computerdesign, der Freiwillige im amerikanischen Unabhängigkeitskrieg II Leitungscomputer geplagt haben, der eine Mischung der Logik des Diode-Transistors und Diode-Logiktore verwendet hat.

Der Computer hatte 2048 Wörter des erasable magnetischen Kerngedächtnisses und 36 kilowords des Read-Only-Kerntau-Gedächtnisses. Beide hatten Zykluszeit von 11.72 Mikrosekunden. Die Speicherwortlänge war 16 Bit: 15 Bit von Daten und 1 Sonderbar-Paritätsbit. Das mit der Zentraleinheit innere 16-Bit-Wortformat war 14 Bit von Daten, 1 Überschwemmung hat gebissen, und 1 Zeichen hat (die Ergänzungsdarstellung von) gebissen.

DSKY Schnittstelle

Die Benutzerschnittstelle zum AGC war der DSKY, für Anzeige und Tastatur eintretend, und hat gewöhnlich Dis-Schlüssel ausgesprochen. Es hatte eine Reihe von Anzeigelampen, Ziffernanzeigen und einer mit der Rechenmaschine artigen Tastatur. In Befehle wurde numerisch als zweistellige Zahlen eingegangen: Verb und Substantiv. Verb hat den Typ der Handlung beschrieben, die durchzuführen ist, und Substantiv hat angegeben, welche Daten durch die durch den Verbbefehl angegebene Handlung betroffen wurden.

Die Ziffern wurden über die grüne Hochspannung electroluminescent Sieben-Segmentanzeigen gezeigt. Die Segmente wurden durch elektromechanische Relais gesteuert, die die Anzeigeaktualisierungsrate beschränkt haben (Block II hat kontrollierte Berichtiger des schnelleren Silikons verwendet). Drei 5-stellige unterzeichnete Zahlen konnten auch im Oktal- oder dezimalen gezeigt werden, und wurden normalerweise verwendet, um Vektoren wie Raumhandwerk-Einstellung oder eine erforderliche Geschwindigkeitsänderung (Delta-V) zu zeigen. Obwohl Daten innerlich in metrischen Einheiten versorgt wurden, wurden sie als übliche USA-Einheiten gezeigt. Diese mit der Rechenmaschine artige Schnittstelle

war

von seiner Art, dem Prototyp für alle ähnlichen Digitalbedienungsfeld-Schnittstellen erst.

Das Befehl-Modul hatte zwei mit seinem AGC verbundene DSKYs: Ein gelegener auf der Hauptschalttafel und eine Sekunde hat sich in der niedrigeren Ausrüstungsbucht in der Nähe von einem Sextanten niedergelassen, der verwendet ist, für die Trägheitsleitungsplattform auszurichten. Das Mondmodul hatte einen einzelnen DSKY für seinen AGC. Ein Flugdirektor Einstellungshinweis (FDAI), der vom AGC kontrolliert ist, wurde über dem DSKY auf der Konsole des Kommandanten und auf dem LM gelegen.

2009 wurde ein DSKY in einer öffentlichen Versteigerung verkauft, die durch Erbe-Versteigerungen für 50,788 $ gehalten ist.

Timing

Der AGC Timing der Verweisung ist aus einer 2.048-MHz-Kristalluhr gekommen. Die Uhr wurde durch zwei geteilt, um eine vierphasige 1.024-MHz-Uhr zu erzeugen, die der AGC gepflegt hat, innere Operationen durchzuführen. Die 1.024-MHz-Uhr wurde auch durch zwei geteilt, um ein 512-Kilohertz-Signal genannt die Master-Frequenz zu erzeugen; dieses Signal wurde verwendet, um Außenraumfahrzeugsysteme von Apollo zu synchronisieren.

Die Master-Frequenz wurde weiter durch einen scaler, zuerst durch das fünf Verwenden eines Ringzählers geteilt, um ein 102.4-Kilohertz-Signal zu erzeugen. Das wurde dann durch zwei durch 17 aufeinander folgende Stufen genannt F1 (51.2 Kilohertz) durch F17 (0.78125 Hz) geteilt. Die F10 Bühne (100 Hz) wurde zurück in den AGC gefüttert, um die Realzeituhr und das andere unwillkürliche Gegenverwenden Pinc (besprochen unten) zu erhöhen. Die F17 Bühne wurde verwendet, um den AGC periodisch auftretend zu führen, als es im Standby funktionierte.

Hauptregister

Der AGC hatte vier 16-Bit-Register für den allgemeinen rechenbetonten Gebrauch, genannt die Hauptregister:

Es gab auch vier Positionen im Kerngedächtnis, an Adressen 20-23, synchronisierte Redigieren-Positionen, weil, was auch immer versorgt wurde, dort ausgewechselt oder rotieren gelassen durch Ein-Bit-Position abgesehen von derjenigen erscheinen würde, die richtige 7-Bit-Positionen ausgewechselt hat, um einen der interpretierenden 7-Bit-Op.-Codes herauszuziehen, die 2 zu einem Wort gepackt waren. Das war für den Block I und Block II AGCs üblich.

Andere Register

Der AGC hatte zusätzliche Register, die innerlich im Laufe der Operation verwendet wurden:

Befehlssatz

Das Instruktionsformat hat 3 Bit für opcode und 12 Bit für die Adresse verwendet. Block hatte ich 11 Instruktionen: und (grundlegend), und, und (zusätzlich). Auf die ersten acht, genannt Grundbefehle, wurde durch die 3 Bit op. Code direkt zugegriffen. Die endgültigen drei wurden als extracode Instruktionen angezeigt, weil auf sie zugegriffen wurde, indem sie einen speziellen Typ der Instruktion (genannt) sofort vor der Instruktion durchgeführt haben.

Der Block I AGC Instruktionen hat aus dem folgenden bestanden:

(übertragen Sie Kontrolle): Ein vorbehaltloser Zweig zur Adresse hat durch die Instruktion angegeben. Die Rücksprungadresse wurde im Q-Register automatisch versorgt, so konnte die Instruktion für Unterprogramm-Anrufe verwendet werden.

(zählen Sie, vergleichen Sie sich, und Hopser): Eine komplizierte bedingte Zweiginstruktion. Ein Register wurde mit Daten geladen, die von der durch die Instruktion angegebenen Adresse wiederbekommen sind. (Weil der AGC die Ergänzungsnotation von verwendet, gibt es zwei Darstellungen der Null. Wenn alle Bit auf die Null gesetzt werden, wird das plus die Null genannt. Wenn alle Bit auf eines gesetzt werden, wird das minus die Null genannt.) Der verringerte absolute Wert (TUPFER) der Daten wurde dann geschätzt und in Ein Register versorgt. Wenn die Zahl größer war als Null, die TUPFER-Verminderung der Wert durch 1; wenn die Zahl negativ war, wird sie ergänzt, bevor die Verminderung angewandt wird - ist das der absolute Wert. Verringert bedeutet "decremented, aber nicht unter Null". Deshalb, wenn der AGC die TUPFER-Funktion durchführt, werden positive Zahlen zu plus die Null gehen, und auch werden negative Zahlen, aber zuerst Aufdeckung ihrer Negativität über den vierwegigen Hopser unten. Der Endschritt darin ist ein vierwegiger Hopser, abhängig von Daten im Register vor den TUPFERN. Wenn Register A größer war als 0, Hopser zur ersten Instruktion sofort danach. Wenn Register Ein enthaltener plus die Null, Hopser zur zweiten Instruktion danach. Weniger als Null verursacht einen Hopser zur dritten Instruktion danach, und minus Nullhopser zur vierten Instruktion danach. Der primäre Zweck der Zählung war, eine gewöhnliche Schleife zu erlauben, die von einem positiven Schalter kontrolliert ist, in a und zum Anfang der Schleife zu enden, die zu IBM 360's gleichwertig ist. Die absolute Wertfunktion wurde wichtig genug gehalten, um in diese Instruktion eingebaut zu werden; wenn verwendet, zu nur diesem Zweck, die Folge, nachdem er * +2, * +2, EIN gewesen ist. Eine neugierige Nebenwirkung war die Entwicklung und der Gebrauch - Löcher, als, wie man bekannt, der Wert, der wird prüft, nie positiv war, der öfter vorgekommen ist, als man denken könnte. Diese linken zwei ganze Wörter frei, und ein spezielles Komitee waren dafür verantwortlich, Datenkonstanten diesen Löchern zuzuteilen.

: Fügen Sie die Daten hinzu, die an der Adresse wiederbekommen sind, die durch die Instruktion zur folgenden Instruktion angegeben ist. kann verwendet werden, um einen Index-Wert zur Grundadresse hinzuzufügen oder abzuziehen, die durch den operand der Instruktion angegeben ist, die folgt. Diese Methode wird verwendet, um Reihe und Tabellensuchen durchzuführen; seitdem die Hinzufügung auf beiden ganzen Wörtern getan wurde, wurde sie auch verwendet, um den Op.-Code in einer folgenden (extracode) Instruktion, und bei seltenen Gelegenheiten beide Funktionen sofort zu modifizieren.

: Ein spezielles Beispiel (25). Das ist die Instruktion, die verwendet ist, um von Unterbrechungen zurückzukehren. Es veranlasst Ausführung, an der unterbrochenen Position die Tätigkeit wieder aufzunehmen.

(Austausch): Tauschen Sie den Inhalt des Gedächtnisses mit dem Inhalt Ein Register aus. Wenn die angegebene Speicheradresse im festen (read-Only-)-Gedächtnis ist, wird der Speicherinhalt nicht betroffen, und diese Instruktion lädt einfach Register A. Wenn es im erasable Gedächtnis ist, wird Überschwemmung "Korrektur" durch die Speicherung des leftmost der 16 Bit in erreicht, weil das Zeichen im Gedächtnis gebissen hat, aber es gibt kein außergewöhnliches Verhalten wie das davon.

(klar und machen Abstriche): In Lastregister mit jemandes Ergänzung der Daten durch die angegebene Speicheradresse Verweise angebracht.

(wechseln Sie zur Lagerung über): Lager-Register an der angegebenen Speicheradresse. auch entdeckt, und korrigiert dafür, Überschwemmungen auf solche Art und Weise, um ein Tragen für die Mehrpräzision fortzupflanzen, fügen hinzu/abziehen. Wenn das Ergebnis keine Überschwemmung hat (leftmost 2 Bit dasselbe), geschieht nichts Spezielles; wenn es Überschwemmung gibt (jene 2 Bit unterscheiden sich), der leftmost man geht das Gedächtnis, weil das Zeichen gebissen hat, Register A wird zu +1 oder-1 entsprechend, und Kontrollhopser zur zweiten Instruktion im Anschluss an geändert. Wann auch immer Überschwemmung ein mögliches, aber anomales Ereignis ist, gefolgt von zur Logik ohne Überschwemmungen zu sein; wenn es eine normale Möglichkeit ist (wie in der Mehrpräzision/abziehen hinzufügen), gefolgt von der NULL (= zum festen Gedächtnis) zu sein, um die Bildung des Tragens (+1, 0, oder-1) ins folgende Wort der höheren Präzision zu vollenden. Winkel wurden in der einfachen Präzision, den Entfernungen und den Geschwindigkeiten in der doppelten Präzision, und verbrauchte Zeit in der dreifachen Präzision behalten.

(tragen Sie bei): Fügen Sie den Inhalt des Gedächtnisses hinzu, um A einzuschreiben und das Ergebnis in A zu versorgen. Die 2 leftmost Bit von A können (Überschwemmungsstaat) vorher und/oder nach verschieden sein. Die Tatsache, dass Überschwemmung ein Staat aber nicht ein Ereignis ist, verzeiht beschränkte Ausmaße der Überschwemmung, wenn sie mehr als zwei Zahlen hinzufügt, so lange keine der Zwischensummen zweimal die Kapazität eines Wortes überschreitet.

: Führen Sie einen mit dem Bit klugen (boolean) und des Gedächtnisses mit dem Register A durch und versorgen Sie das Ergebnis im Register A.

(multiplizieren Sie): Multiplizieren Sie der Inhalt des Registers durch die Daten am Verweise angebrachten Gedächtnis richtet und versorgt das Produkt der hohen Ordnung im Register A und das Produkt der niedrigen Ordnung in der Register-LP. Die Teile des Produktes stimmen im Zeichen zu.

(teilen Sie sich): Teilen Sie den Inhalt des Registers durch die Daten an der Verweise angebrachten Speicheradresse. Versorgen Sie den Quotienten im Register A und der absolute Wert des Rests im Register Q. Verschieden von modernen Maschinen wurden Festkommazahlen als Bruchteile behandelt (begrifflicher dezimaler Punkt gerade zum Recht auf das Zeichen hat gebissen), so konnten Sie Müll erzeugen, wenn der Teiler nicht größer war als die Dividende; es gab keinen Schutz gegen diese Situation. Im Block II AGC hat eine Dividende der doppelten Genauigkeit in A und L (die LP des Blocks II) angefangen, und der richtig unterzeichnete Rest wurde in L geliefert. Das hat beträchtlich das Unterprogramm für die doppelte Präzisionsabteilung vereinfacht.

(machen Sie Abstriche): Ziehen Sie (jemandes Ergänzung) die Daten an der Verweise angebrachten Speicheradresse vom Inhalt des Registers A ab und versorgen Sie das Ergebnis in A.

Instruktionen wurden in Gruppen von 12 Schritten, genannt Timing von Pulsen durchgeführt. Die Timing-Pulse wurden TP1 durch TP12 genannt. Jeder Satz von 12 Timing-Pulsen wurde eine Instruktionssubfolge genannt. Einfache Instruktionen, wie TC, der in einer einzelnen Subfolge von 12 Pulsen durchgeführt ist. Kompliziertere Instruktionen haben mehrere Subfolgen verlangt. Die multiplizieren Instruktion hat 8 Subfolgen verwendet: Ein anfänglicher, hat gefolgt von einer Subfolge gerufen, die 6mal wiederholt, und dann durch eine Subfolge begrenzt wurde. Das wurde auf 3 Subfolgen im Block II reduziert.

Jeder Timing-Puls in einer Subfolge konnte bis zu 5 Kontrollpulse auslösen. Die Kontrollpulse waren die Signale, die die wirkliche Arbeit der Instruktion, wie das Lesen des Inhalts eines Registers auf den Bus oder des Schreibens von Daten vom Bus in ein Register getan haben.

Gedächtnis

Block I AGC Gedächtnis wurde in 1 kiloword Banken organisiert. Die niedrigste Bank (Bank 0) war erasable Gedächtnis (RAM). Alle Banken über der Bank 0 waren befestigtes Gedächtnis (ROM). Jede AGC Instruktion hatte ein 12-Bit-Adressfeld. Die niedrigeren Bit (1-10) haben das Gedächtnis innerhalb jeder Bank gerichtet. Bit 11 und 12 haben die Bank ausgewählt: 00 hat die erasable Speicherbank ausgewählt; 01 hat die niedrigste Bank (Bank 1) des festen Gedächtnisses ausgewählt; 10 hat den folgenden (Bank 2) ausgewählt; und 11 hat das Bankregister ausgewählt, das verwendet werden konnte, um jede Bank oben 2 auszuwählen. Banken 1 und 2 wurden fest befestigtes Gedächtnis genannt, weil sie immer unabhängig vom Inhalt des Bankregisters verfügbar waren. Banken 3 und wurden oben fest-schaltbar genannt, weil die ausgewählte Bank durch das Bankregister bestimmt wurde.

Der Block ich AGC hatte am Anfang 12 kilowords des festen Gedächtnisses, aber das wurde später zu 24 kilowords vergrößert. Block II hatte 32 kilowords des festen Gedächtnisses und 4 kilowords des erasable Gedächtnisses.

Der AGC hat Daten dem übertragen, und auswendig durch das G-Register in einem Prozess hat den Speicherzyklus genannt. Der Speicherzyklus hat 12 Timing-Pulse (11.72 μs) genommen. Der Zyklus hat am Timing des Pulses 1 (TP1) begonnen, als der AGC die ins S-Register herbeizuholende Speicheradresse geladen hat. Die Speicherhardware hat das Datenwort auswendig an der durch das S-Register angegebenen Adresse wiederbekommen. Wörter vom erasable Gedächtnis wurden ins G-Register durch das Timing des Pulses 6 (TP6) abgelegt; Wörter vom festen Gedächtnis waren durch das Timing des Pulses 7 verfügbar. Das wiederbekommene Speicherwort war dann im G-Register für den AGC Zugang während des Timings von Pulsen 7 bis 10 verfügbar. Nach dem Timing des Pulses 10 wurden die Daten im G-Register dem Gedächtnis zurückgeschrieben.

Der AGC Speicherzyklus ist unaufhörlich während der AGC Operation vorgekommen. Instruktionen, die Speicherdaten brauchen, mussten darauf während des Timings von Pulsen 7-10 zugreifen. Wenn der AGC das Speicherwort im G-Register geändert hat, wurde das geänderte Wort dem Gedächtnis nach dem Timing des Pulses 10 zurückgeschrieben. Auf diese Weise sind Datenwörter unaufhörlich auswendig zum G-Register und dann zurück wieder zum Gedächtnis Rad gefahren.

Die niedrigeren 15 Bit jedes Speicherwortes haben AGC Instruktionen oder Daten gehalten. Jedes Wort durch ein 16. sonderbares Paritätsbit geschützt. Dieses Bit wurde auf 1 oder 0 durch einen Paritätsgenerator-Stromkreis gesetzt, so würde eine Zählung 1s in jedem Speicherwort immer eine ungerade Zahl erzeugen. Ein Paritätsüberprüfungsstromkreis hat das Paritätsbit während jedes Speicherzyklus geprüft; wenn das Bit den erwarteten Wert nicht verglichen hat, wie man annahm, wurde das Speicherwort verdorben, und ein Paritätswarnungstafel-Licht wurde illuminiert.

Unterbrechungen und unwillkürliche Schalter

Der AGC hatte fünf gerichtete Unterbrechungen:

  • Dsrupt wurde regelmäßig ausgelöst, um die Benutzeranzeige (DSKY) zu aktualisieren.
  • Brechen Sie aus wurde durch verschiedene Hardware-Misserfolge oder Warnungen erzeugt.
  • Keyrupt hat einer Schlüsselpresse von der Tastatur des Benutzers Zeichen gegeben.
  • T3Rrupt wurde regelmäßig von einem Hardware-Zeitmesser erzeugt, um die Realzeituhr des AGC zu aktualisieren.
  • Uprupt wurde jedes Mal erzeugt, als ein 16-Bit-Wort von uplink Daten in den AGC geladen wurde.

Der AGC hat auf jede Unterbrechung durch das vorläufige Verschieben des aktuellen Programms, die Durchführung einer kurzen Unterbrechungsdienstroutine, und dann die Wiederaufnahme des unterbrochenen Programms geantwortet.

Der AGC hatte auch 20 unwillkürliche Schalter. Das waren Speicherpositionen, die als/unten Schalter oder Verschiebungsregister fungiert haben. Die Schalter, würden Verminderung oder Verschiebung als Antwort auf innere Eingänge erhöhen. Die Zunahme (Pinc), Verminderung (Minc) oder Verschiebung (Shinc) wurde durch eine Subfolge von zwischen irgendwelchen zwei regelmäßigen Instruktionen eingefügten Mikrobefehlen behandelt.

Unterbrechungen konnten ausgelöst werden, als die Schalter übergeflossen sind. Die Unterbrechungen von T3rupt und Dsrupt wurden erzeugt, als ihre Schalter, die durch eine 100-Hz-Hardware-Uhr gesteuert sind, nach der Durchführung vieler Subfolgen von Pinc übergeflossen sind. Die Uprupt-Unterbrechung wurde ausgelöst, nachdem sein Schalter, die Subfolge von Shinc durchführend, 16 Bit von uplink Daten in den AGC ausgewechselt hatte.

Standby

Der AGC hat eine Macht sparende Weise durch eine Reserve erlaubt Schalter kontrollieren lassen. Diese Weise hat die AGC Macht, abgesehen von der 2.048-MHz-Uhr und dem scaler abgedreht. Das F17-Signal vom scaler hat die AGC Macht und den AGC auf an den 1.28 zweiten Zwischenräumen umkehren lassen. In dieser Weise hat der AGC wesentliche Funktionen durchgeführt, hat die Reserve erlaubt Schalter, und, wenn noch ermöglicht, überprüft, hat die Macht abgedreht und ist zurückgegangen, um bis zum folgenden F17-Signal zu schlafen.

Im Standby hat der AGC den größten Teil der Zeit geschlafen; deshalb war es nicht wach, um zu leisten, die Instruktion von Pinc musste die Echtzeituhr des AGC an den Zwischenräumen von 10 Millisekunde aktualisieren. Um eine der durch den AGC durchgeführten Funktionen zu ersetzen, sollte jedes Mal, als es im Standby aufgewacht hat, die Echtzeituhr um 1.28 Sekunden aktualisieren.

Der Standby wurde entworfen, um Macht um 5 bis 10 W (von 70 W) während des midcourse Flugs zu reduzieren, als der AGC nicht erforderlich war. Jedoch, in der Praxis, wurde auf dem AGC während aller Phasen der Mission verlassen, und diese Eigenschaft wurde nie verwendet.

Datenbusse

Der AGC hatte gelesenen Bus von 16 Bit, und 16 Bit schreiben Bus. Daten von Hauptregistern (A, Q, Z, oder LP), oder anderen inneren Registern konnten gated auf den gelesenen Bus mit einem Kontrollsignal sein. Der gelesene Bus hat zum schreiben Bus durch einen Nichtumkehren-Puffer in Verbindung gestanden, so sind irgendwelche Daten, die auf dem gelesenen Bus auch erscheinen, auf dem schreiben Bus erschienen. Andere Kontrollsignale konnten kopieren schreiben Busdaten zurück in die Register.

Datenübertragungen haben wie das gearbeitet: Um Die Adresse der folgenden Instruktion vom B-Register bis das S-Register ein RB zu bewegen (liest B), wurde Kontrollsignal ausgegeben; das hat die Adresse veranlasst, sich vom Register B zum gelesenen Bus, und dann zum schreiben Bus zu bewegen. Ein WS (schreiben S), Kontrollsignal hat die Adresse vom schreiben Bus ins S-Register bewegt.

Mehrere Register konnten auf den gelesenen Bus gleichzeitig gelesen werden. Als das vorgekommen ist, Daten von jedem Register war auf den Bus einschließlich-ored. Das einschließlich - oder Eigenschaft wurde verwendet, um die Maske-Instruktion durchzuführen, die ein logischer und Operation war. Weil der AGC keine heimische Fähigkeit hatte, einen logischen zu tun, und, aber einen logischen oder durch den Bus tun konnte und ergänzen konnte (kehren) Daten durch das C-Register (um), der Lehrsatz von De Morgan wurde verwendet, um die Entsprechung von einem logischen durchzuführen, und. Das wurde durch das Umkehren von von sowohl operands, das Durchführen eines logischen oder durch den Bus, als auch dann das Umkehren des Ergebnisses vollbracht.

Software

Als die Designvoraussetzungen für den AGC definiert wurden, haben notwendige Software und Programmiertechniken so nicht bestanden es musste von Kratzer entworfen werden.

AGC Software wurde auf der AGC Zusammenbau-Sprache geschrieben und auf dem Tau-Gedächtnis versorgt. Es gab ein einfaches Echtzeitbetriebssystem, das aus Exec, ein Gruppe-System der Job-Terminplanung besteht, das auf 8 'Jobs' in einer Zeit mit dem stark mehrbeanspruchenden Konsumverein zulaufen konnte (musste jeder Job Kontrolle zurück zu Exec regelmäßig übergeben, der dann überprüft hat, ob es einen wartenden Job mit dem höheren Vorrang gab). Es gab auch einen geUnterbrechungssteuerten Bestandteil genannt Waitlist, der vielfache Zeitmesser-gesteuerte 'Aufgaben' planen konnte. Die Aufgaben waren kurze Fäden der Ausführung, die sich für die Wiederausführung auf Waitlist wiederplanen konnte, oder eine längere Operation durch das Starten eines 'Jobs' mit Exec starten konnte.

Die Exec Jobs wurden vorzugsgestützt. Der niedrigste Vorzugsjob, genannt den Scheinjob, ist immer da gewesen. Es hat diagnostische Kontrollen getan und hat ein grünes Computertätigkeitslicht auf den DSKY kontrolliert: Wenn der Scheinjob lief, hat das bedeutet, dass der Computer nichts besser hatte, um zu tun, so wurde das Licht abgedreht. Der Scheinjob ist abgegangen, wenn es etwas höheren Vorzugsjob gab, getan zu werden, und das durch das Computertätigkeitslicht angezeigt wurde, das wird illuminiert.

Der AGC hatte auch einen hoch entwickelten Softwaredolmetscher, der durch MIT entwickelt ist, der eine virtuelle Maschine mit komplizierteren und fähigen Pseudobefehlen durchgeführt hat als der heimische AGC. Sie wurden verwendet, als die Navigationsberechnung der größeren Präzision als 8 Bit erforderlich war. Interpretierter Code, der doppelten Präzisionsskalar und Vektor-Arithmetik, sogar (Matrix × Vektor) Instruktion gezeigt hat, konnte mit dem heimischen AGC-Code gemischt werden. Während die Ausführungszeit der Pseudobefehle vergrößert wurde (wegen des Bedürfnisses, diese Instruktionen an der Durchlaufzeit zu interpretieren), hat der Dolmetscher noch viele Instruktionen zur Verfügung gestellt, als AGC heimisch unterstützt und die Speichervoraussetzungen viel niedriger waren als im Fall vom Hinzufügen dieser Instruktionen in die AGC Muttersprache (Speicherkapazität war zurzeit sehr teuer). Der durchschnittliche Pseudobefehl hat verlangt, dass ungefähr 24 Millisekunden durchgeführt haben. Der Monteur und das Versionsregelsystem, genannt YUL für einen frühen Prototyp-Weihnachten-Computer, haben richtige Übergänge zwischen dem Eingeborenen geltend gemacht und haben Code interpretiert.

Eine Reihe von geUnterbrechungssteuerten Benutzerschnittstelle-Routinen genannt das Flipperspiel hat Tastatur und Anzeigedienstleistungen für die Jobs und Aufgaben zur Verfügung gestellt, die auf dem AGC laufen. Ein reicher Satz von benutzerzugänglichen Routinen wurde zur Verfügung gestellt, um den Maschinenbediener (Astronaut) Anzeige der Inhalt von verschiedenen Speicherpositionen im Oktal- oder dezimalem in Gruppen 1, 2, oder 3 Register auf einmal zu lassen. Monitor-Routinen wurden so zur Verfügung gestellt der Maschinenbediener konnte eine Aufgabe beginnen, den Inhalt von bestimmten Speicherpositionen regelmäßig wiederzuzeigen. Jobs konnten begonnen werden. Die Flipperspiel-Routinen haben die (sehr raue) Entsprechung von der UNIX-Schale durchgeführt.

Der Hauptteil der Software war auf dem Read-Only-Tau-Gedächtnis und konnte so in der Operation nicht geändert werden, aber einige Schlüsselteile der Software wurden im Standard gelesen versorgt - schreiben Magnetisch-Kerngedächtnis und konnte von den Astronauten überschrieben werden, die die DSKY-Schnittstelle verwenden, wie auf Apollo 14 getan wurde.

Block II

Eine Version des Blocks II des AGC wurde 1966 entworfen. Es hat die grundlegende Architektur des Blocks I behalten, aber hat erasable Gedächtnis von 1 bis 2 kilowords vergrößert. Festes Gedächtnis wurde von 24 bis 36 kilowords ausgebreitet. Instruktionen wurden von 11 bis 34 ausgebreitet, und Eingabe/Ausgabe-Kanäle wurden durchgeführt, um die Eingabe/Ausgabe-Register auf dem Block I zu ersetzen. Die Version des Blocks II ist diejenige, die wirklich zum Mond geflogen ist. Block wurde ich während des unbemannten Apollos 4 und 6 Flüge verwendet, und war der unglückselige Apollo I. an Bord

Die Entscheidung, das Gedächtnis und den Befehlssatz für den Block II auszubreiten, aber den Block zu behalten, ich bin einschränkende 3 Bit op. Code und 12-Bit-Adresse, hatte interessante Designfolgen. Verschiedene Tricks wurden verwendet, um zusätzliche Instruktionen hineinzuzwängen, wie, spezielle Speicheradressen zu haben, die, wenn Verweise angebracht, eine bestimmte Funktion durchführen würden. Zum Beispiel, um 25 zu richten, hat die Instruktion ausgelöst, von einer Unterbrechung zurückzukehren. Ebenfalls, 17 hat eine Instruktion durchgeführt (Hemmungsunterbrechungen), während 16 ihnen wiederermöglicht hat. Andere Instruktionen wurden durch das Vorangehen ihnen mit einer speziellen Version von genannten durchgeführt, die arithmetisch die 3 Bit op. modifiziert haben, hat der Code durch die Beschäftigung der Überschwemmung gebissen, um sie zu erweitern. Die Adressräume wurden durch die Beschäftigung der Bank (bestochen) und Register von Ebank (erasable) erweitert, so war das einzige Gedächtnis jedes Typs, der zu jeder vorgegebenen Zeit gerichtet werden konnte, die aktuelle Bank, plus der kleine Betrag des fest befestigten Gedächtnisses und des erasable Gedächtnisses. Außerdem konnte das Bankregister ein Maximum von 32 kilowords richten, so war Sbank (Superbank) Register erforderlich, auf die letzten 4 kilowords zuzugreifen. Alle Unterprogramm-Anrufe über die Bank mussten vom fest befestigten Gedächtnis bis spezielle Funktionen begonnen werden, die ursprüngliche Bank während der Rückkehr wieder herzustellen: im Wesentlichen ein System von weiten Zeigestöcken.

Der AGC des Blocks II hat auch die mysteriöse und schlecht dokumentierte Instruktion (der Name kann eine Zusammenziehung von Eds Unterbrechung, nach Ed Smally, dem Programmierer sein, der darum gebeten hat), der insgesamt einmal in der Software von Apollo verwendet wird: in der Digitalen Automatischen Kurssteuerung des Mondmoduls. In dieser Zeit, während die allgemeine Operation der Instruktion verstanden wird, sind die genauen Details noch nebelig, und, wie man glaubt, ist es für Probleme verantwortlich, die mit der Leuchte-Software von LEM AGC wetteifern.

PGNCS Schwierigkeiten

PGNCS hat unvorausgesehene Warnungen während Apollos Mondabstiegs von 11, mit dem AGC Vertretung einer 1201-Warnung ("Exekutivüberschwemmung - keinen freien Gebieten") und einer 1202-Warnung ("Exekutivüberschwemmung - keine Kernsätze") erzeugt.

Die Ursache war ein schneller, unveränderlicher Strom von unechten Zyklus-Diebstählen vom Rendezvous-Radar, absichtlich verlassen einsatzbereit während des Abstiegs, im Falle dass es für einen Abbruch erforderlich war.

Während dieses Teils der Annäherung würde der Verarbeiter normalerweise um fast 85 % geladen sein. Die 6400 Extrazyklus-Diebstähle haben pro Sekunde die Entsprechung von der 13-%-Last hinzugefügt, gerade genug Zeit für alle vorgesehenen Aufgaben verlassend, zur Vollziehung zu laufen. Fünf Minuten in den Abstieg Buzz Aldrin hat dem Computer den Befehl 1668 gegeben, der es beauftragt hat, DELTAH (der Unterschied zwischen der Höhe zu berechnen und zu zeigen, die durch den Radar und der geschätzten Höhe gefühlt ist). Das hat zusätzliche 10 % zum Verarbeiter-Arbeitspensum hinzugefügt, das Exekutivüberschwemmung und eine 1202-Warnung verursacht. Das "GEHEN" von Houston Aldrin gegeben zu werden, ist in 1668 wieder eingegangen, und eine andere 1202-Warnung ist vorgekommen. Als er die zweite Warnung gemeldet hat, hat Aldrin die Anmerkung hinzugefügt "Es scheint heraufzukommen, wenn wir 1668 haben". Glücklich für Apollo 11 war die AGC Software mit der Vorzugsterminplanung entworfen worden.

Gerade als es entworfen worden war, um, die Software automatisch wieder erlangte, löschende niedrigere Vorzugsaufgaben einschließlich der 1668-Anzeigeaufgabe zu tun, seine kritischen Leitungs- und Kontrollaufgaben zu vollenden. Leitungskontrolleur Steve Bales und seine Unterstützungsmannschaft, die Jack Garman eingeschlossen hat, haben herausgekommen mehrere "GEHEN" Anrufe und die Landung waren erfolgreich. Für seine Rolle hat Bales die US-Medaille der Freiheit im Auftrag der kompletten Kontrollzentrum-Mannschaft und der drei Astronauten von Apollo erhalten.

Das Problem war nicht ein Programmierfehler im AGC, noch war er Versuchsfehler. Es war ein peripherischer Hardware-Designprogrammfehler, der bereits bekannt und von Apollo 5 Ingenieure dokumentiert war.

Jedoch, weil das Problem nur einmal während der Prüfung vorgekommen war, haben sie beschlossen, dass es sicherer war, mit der vorhandenen Hardware zu fliegen, die sie bereits geprüft hatten, als, mit einem neueren, aber größtenteils ungeprüften Radarsystem zu fliegen. In der wirklichen Hardware wurde die Position des Rendezvous-Radars mit synchros verschlüsselt, der von einer verschiedenen Quelle von 800-Hz-AC aufgeregt ist als derjenige, der durch den Computer als eine Timing-Verweisung verwendet ist. Die zwei 800-Hz-Quellen waren Frequenz geschlossen, aber nicht Phase geschlossen, und die kleinen zufälligen Phase-Schwankungen haben es erscheinen lassen, als ob die Antenne in der Position schnell "bibberte", wenn auch es völlig stationär war. Diese Gespenst-Bewegungen haben die schnelle Reihe von Zyklus-Diebstählen erzeugt.

00404 Fehlercode

Der andere Fehler des Computers codiert eingeschlossenen Fehler 00404, der Schnellschrift für die IMU "unbekannte Orientierung" war. Seitdem das Trägheitsmaß-Einheitsgerät wörtlich das Handwerk erzählt hat, wohin man geht, ist das im Vergleich zum HTTP 404 nicht gefunden oder im World Wide Web verwendeter Browser-Navigationsfehlercode gewesen. Jedoch ist der spätere vertraute HTTP Fehlercode mit dem AGC nicht entstanden.

Anwendungen außerhalb Apollos

Der AGC hat die Basis eines experimentellen in einen f-8 Kreuzfahrer installierten Systems der Fliege durch die Leitung gebildet, um die Nützlichkeit des Computers gesteuerter FBW zu demonstrieren. Der in der ersten Phase des Programms verwendete AGC wurde durch eine andere Maschine in der zweiten Phase ersetzt, und auf dem Programm getane Forschung hat zur Entwicklung von Systemen der Fliege durch die Leitung für Raumfähre geführt. Der AGC hat auch geführt, obgleich indirekt, zur Entwicklung von Systemen der Fliege durch die Leitung für die Generation von Kämpfern, die zurzeit entwickelt wurden.

Der AGC wurde auch für das Tiefe Untertauchen-Rettungsfahrzeug der amerikanischen Marine verwendet

Siehe auch

Referenzen

Links

Dokumentation auf dem AGC und seiner Entwicklung

hat

Dokumentation des AGC Hardware-Designs und besonders der Gebrauch der neuen einheitlichen Stromkreise im Platz von Transistoren

Dokumentation der AGC Softwareoperation

  • Delco Electronics, Apollo 15 - Handbuch für CSM und Software von LEM AGC hat auf dem Apollo 15 Mission, einschließlich ausführlicher Benutzerschnittstelle-Verfahren, Erklärung von vielen zu Grunde liegenden Algorithmen und beschränkter Hardware-Information verwendet. Bemerken Sie, dass dieses Dokument mehr als 500 Seiten hat und mehr als 150 Megabytes in der Größe ist.
  • Stengel, R., Manuelle Einstellungskontrolle des Mondmoduls, J. Raumfahrzeug und Raketen, Vol. 7, Nr. 8, Aug 1970, Seiten 941-948.
  • Quellcode für den Befehl-Modul-Code (Comanche054) und Mondmodul-Code (Luminary099) als Text.

Einige AGC-basierte Projekte und Simulatoren

  • AGC Replik - das erfolgreiche Projekt von John Pultorak, eine Hardware-Replik des Blocks I AGC in seinem Keller zu bauen. Spiegelseite: AGC Replik.
  • Virtueller AGC Hausseite - der AGC Simulator von Ronald Burkey, plus die Quelle und binäre Codewiederherstellung für den Koloss (CSM) und die Leuchte (LEM) KURZWELLIGER
  • Planen Sie Apollo für Orbiter - Addon für den Simulator von Orbiter spaceflight, zu einer vollen Simulation des CSM und LEM einschließlich des Virtuellen AGC arbeitend.
  • Adler Lander Lander Shareware 3D-Mondsimulator mit einem Arbeiten AGC und DSKY (Windows nur)

Längere Beiträge


Doktorat / Neutronquelle
Impressum & Datenschutz