Wie wurden Register im Apollo Guidance Computer implementiert?

Es fällt mir schwer, Informationen über die Zusammensetzung der AGC-Register zu finden. Waren sie auch Magnetic Core Memory oder etwas anderes?

Antworten (2)

CPU-Architektur (Register) Alle CPU-Register sind speicherabgebildet (siehe nächster Abschnitt). Die Register an den Adressen 00-23 (oktal) sind aus Sicht des Befehlssatzes zentral für die CPU-Operationen. Register von den Adressen 00-07 sind Flip-Flops (naja, außer 07) im Prozessor; alle anderen Register sind speziell gehandhabte löschbare Speicherstellen. Immer wenn auf diese Flip-Flop-Register zugegriffen wird, werden ihre Inhalte in ihre entsprechenden löschbaren Speicherstellen kopiert. Dieser Link ist unidirektional; die löschbaren Speicherstellen 00–07 können niemals gelesen werden, da alle Versuche dazu zu den entsprechenden Flip-Flops umgeleitet werden.

Die Register an den Adressen 24-61 werden allgemein als "Zähler" bezeichnet. Während die Zählerregister programmgesteuert modifiziert werden können, werden sie typischerweise nur durch das Programm eingerichtet und werden dann anschließend automatisch durch Ereignisse wie elektrische Impulse inkrementiert oder dekrementiert. Die TIME1-TIME6-Register sind noch spezialisierter, da die "Impulse", die sie inkrementieren, tatsächlich von einem Oszillator geliefert werden, so dass diese Zähler als Timer fungieren. Viele der Zähler können zum Auslösen von Interrupts bei Überlauf verwendet werden, sodass die CPU sie verwenden kann, um verschiedene Hardwarebedingungen oder -ereignisse zu erkennen, ohne die Hardware kontinuierlich abzufragen.

Nur die Register 0 bis 7 waren Hardware-Register, die aus Flip-Flops unter Verwendung von NOR-Gattern aufgebaut wurden. Die Register 10 bis 60 (Oktalzahlen) wurden mit Magnetkernen speicherabgebildet.

Um viele Logikgatter einzusparen, wurden möglichst viele Register im Kernspeicher untergebracht.

Einzelheiten finden Sie in der Speicherkarte .

Vielen Dank!

Eine Fülle von Informationen über die AGC finden Sie, wenn Sie hier herumstöbern .

Um Ihre Frage direkt zu beantworten, haben wir aus den allgemeinen Konstruktionsmerkmalen des Apollo Guidance Computers , die auf dieser Seite verfügbar sind, (Hervorhebung hinzugefügt)

Die AGC verwendet drei Arten von Speicherschaltungen; einer dient zur dauerhaften Speicherung von Anweisungen und Konstanten und fasst etwa 24.000 Wörter. Der zweite Typ dient der temporären Speicherung von Zwischenergebnissen, modifizierten Anweisungen und Eingabedaten. Es enthält ungefähr 1024 Wörter. Beide Arten von Speicher sind relativ wirtschaftlich und dicht in Bezug auf die Anzahl von Wörtern pro Volumeneinheit. Sie benötigen aber auch vergleichsweise viel Zeit zum Lesen und Schreiben (ca. 12 µsec). Der dritte Speichertyp, bestehend aus 16 Registern, hat eine Lese-Schreib-Zeit von etwa 2 us und ist etwa 1000-mal größer im Volumen als die beiden anderen Speichertypen. Diese Gruppe enthält Eingangs- und Ausgangsregister, die zwischen dem Computer und dem Rest des Apollo-Systems kommunizieren. Die zentralen Register nehmen an den Anweisungen teil und bewirken, dass die gewünschten mathematischen Transformationen durchgeführt werden. ...Die zentralen Register und die Eingabe-Ausgabe-Register werden unter Verwendung von Halbleiternetzwerken (mikrologische NOR-Gatter) hergestellt.

Die IO-Register wurden unter Verwendung des Kernspeichers speicherabgebildet.
Speicherzuordnung bedeutet nur, dass über eine Speicheradresse darauf zugegriffen werden kann. Es sagt nichts über die Hardware aus, die tatsächlich zum Speichern und Abrufen des Werts verwendet wird. Seite 19 dieses Links von der oben verlinkten Seite: klabs.org/history/history_docs/mit_docs/1717.pdf besagt ausdrücklich, dass die Eingangsregister Flip-Flop-basiert waren. Ihre obige Antwort weist auch darauf hin, dass die Speicherzuordnung zwar dazu führte, dass die Daten in den Kernspeicher kopiert wurden, dies jedoch effektiv ein Nur-Schreib-Speicher war und nur die Flip-Flops für diese Adressen verwendet wurden.
Es gab einen Nur-Lese-Kernspeicher, der für Programme und Konstanten verwendet wurde, und auch einen Lese-/Schreib-Kernspeicher für variable Daten.
Viele der eingehenden Informationen bestehen aus Impulsfolgen, die gezählt werden müssen, und die laufende Summe muss dem Programm zur Verfügung stehen. Das Inkrementieren der Zähler erfolgte mit Logik, die Zählerstände wurden im Kernspeicher abgelegt. Diese Art von Eingabe ging also durch den Kernspeicher.