Bernd Leitenbergers Blog

Galileos CDS – Teil 2

So, heute geht es weiter mit Teil 2 über Galileos CDS, dieser Beitrag schließt nahtlos an den ersten Beitrag von gestern an, wie man schon an der ersten Textzeile sieht. Nach der Einleitung im ersten Teil geht es heute weiter damit warum der RCA 1802 genutzt wurde und was seine Vor- und Nachteile waren. Morgen folgt dann der letzte Teil.

Der zweite Grund war weil der RCA 1802 in der Technologie „Silicon on Saphire“ (SOS) hergestellt wurde. Das ist eine Sonderform der viel häufiger eingesetzten Technologie Silicium on Isolator (SOI). SOS entsteht durch das Aufbringen einer dünnen Schicht aus Silizium auf einen Saphirwafer bei hoher Temperatur. Sein Hauptvorteil für elektronische Schaltungen liegt im hoch isolierenden Saphirsubstrat. Der Vorteil des isolierenden Substrats besteht in einer sehr geringen parasitären Kapazität, was zu höherer Geschwindigkeit, geringerem Stromverbrauch, besserer Linearität und besserer Isolation als bei Bulk-Silizium führt. Saphir ist chemisch eine Form von Aluminiumoxid. Aluminiumoxid wird bei SOI eingesetzt, dort wird reines Aluminium elektrochemisch oxidiert. Das entstehende Aluminiumoxid ist bei SOI aber amorpher Natur. Bei SOS liegt dagegen eine regelmäßige Kristallstruktur vor. Die Sauerstoffatome haben den gleichen Abstand und die gleiche Symmetrie wie die Siliciumatome. Jedes Siliciumatom wird von vier Sauerstoffatomen umgeben, die als Isolatoren fungieren.

SOS wurde 1961 entwickelt. Mitte der Sechziger Jahre setzte RCA die Technologie erstmals für Mikroelektronik ein. 1972 schrieb ein Ingenieur über die Vorteile der Technologie: „he principal metallurgical, chemical and electrical properties of SOS films prove to be as good as, or better than, those of chemically or mechanically polished bulk silicon wafers“. SOS wurde Jahrzehnte lang selten eingesetzt, ein weiteres prominentes Beispiel waren die Schaltkreise des HP 41, der auch bei bemannten Raumfahrtmissionen des Space Shuttles eingesetzt wurde. Beim HP 41 war von Bedeutung das die Technologie geringe Leckverluste hatte, also der Taschenrechner länger mit einer Batterie auskam wenn er nicht rechnen musste. Seit 2008 wird SOS deutlich häufiger für strahlengehärtete Bausteine genutzt. Ein Grund ist, dass die Empfindlichkeit der Schaltkreise für Strahlung ansteigt wenn die Transistoren kleiner werden. SOS basierte Schaltkreise haben deutlich bessere Leistungswerte als reine Siliziumschaltkreise. So kann man, wenn man die Schaltung nicht mehr verkleinern kann, mehr Geschwindigkeit erzielen. Die Wahl von Saphir klingt zuerst nach einer teuren Technologie, doch Saphir ist nur eine Modifikation von Aluminiumoxid. Eine andere Kristallstruktur ist das Korund, das auch als Schleifmittel genutzt wird. Seit 1910 kann man preiswert Einkristalle von beliebiger Größe herstellen, in den Sechzigern wurden schon Einkristalle von 50 kg Gewicht gezüchtet, die für die Wafer in einer besonderen Ebene geschnitten wurden, damit die Abstände der Atome mit denen von Silizium übereinstimmten. So gezüchtete Saphire werden auch für Uhrengläser verwendet (Saphirglas) und sind dort auch in preiswerten Uhren verbreitet.

Für Galileo war auch wichtig, das diese Technologie unempfindlicher gegenüber Strahlung war als die in der andere verfügbare Technologien, die in den anderen Prozessoren eingesetzt wurden. Die gesamte 1800-Familie von RCA war qualifiziert für eine Gesamtdosis von 1 MRad = 1000 kRad. Dafür wurden die Oxidschichten auf 900 bis 1000 Grad erhitzt und so deutlich dicker. Bei den weiteren Schritten zur Aufbringung der Schaltelemente wurde zusätzlich mit polymorphem Silizium dotiert. Jedes Grate war so von Polsilizium umgeben, durch das Elektronen mit hoher Energie abfließen konnten. Für normale Elektronen war es dagegen ein Halbleiter. Kanäle waren länger gefertigt, um sie widerstandsfähiger zu machen. Bausteine wurden 1000 Stunden lang betrieben, um sie zu testen. Eine Auswahl wurde 168 Stunden auf 150 Grad erhitzt, die Ausfallrate lag bei unter 5 Prozent. Bei den Bausteinen der 1800-er Serie von RCA stieg die Strahlenresistenz mit der Spannung an, bei 5 V war eine Gesamtdosis von 330 krad zulässig, bei 10 Volt dagegen eine von 1.400 krad. Daher wurde der RCA 1802 mit 10 Volt betrieben. Diese hohe Spannung war auch ein Grund, warum der Takt so niedrig ist. Bei der 3,2 MHz Variante RCA 1802A (die aber nicht in Galileo verwendet wurde) musste bei 10 Volt der Takt auf 2,7 MHz gesenkt werden.

Der dritte Grund war schlicht und einfach der das RCA der Vorreiter in der CMOS-Technologie war. CMOS-Bausteine von RCA waren erstmals bei den Voyagern eingesetzt worden und hatte sich dort bewährt. Außer dem Prozessor hatte RCA eine komplette Produktpalette an CMOS-Schaltkreisen. Neben Zubehörbausteinen für den Prozessor (1800-Familie) war dies die 4000-er Serie die 1968 eingeführt wurde und die bei CMOS das Gegenstück zur bekannteren 7400-er Serie bei TTL-Bausteinen war. Die 4000-er Serie wurde breit im den Computern von Galileo eingesetzt. Von den Zubehörbausteinen, speziell für den RCA 1802, wurden das RCA 1834 ROM ein 1 K x 8 Bit (1 KByte) ROM, das RCA 1852, ein IO-Port mit einer Breite von 8 Bits und das RCA 1856 ein 4 Bit Buffer/Separator eingesetzt. Die Speicherbausteine im CDS waren RCA TC244, 256 x 4 Bit CMOS RAMs. In einigen Experimenten wurden auch andere RAM Bausteine, wie das Harris HM 6504, ein 4 Kbit x 1 statischer CMOS-Speicher der 1977 erschien verwendet. Bei einer Speicherkapazität von 128 Byte pro TC244 verwundert es nicht das kleiner der Computer den vollen Adressbereich von 64 KByte ausnutzte. Maximal 32 KByte hatte ein RCA 1802 zur Verfügung, das erforderte schon 256 Bausteine, immerhin halb so viele wie bei Voyagers FDS, das 512 Bausteine für 16 KByte RAM einsetzte. Zum Vergleich: Wer im Jahre 2026 einen Computer mit 16 GByte Speicher kauft bei dem steckt meist ein DIMM mit 8 Chips zu je 16 GBit Speicherkapazität drin.

Kurz, der RCA 1802 war der einzige Einchip-Prozessor auf dem Markt, der die Anforderungen an Strahlenhärte einhielt und in CMOS Bauweise hergestellt wurde. Andere Prozessoren gab es zwar in „Military Spec“ – sie arbeiteten in einem viel größeren Temperaturbereich und waren auch strahlentolerant, das heißt hielten eine höhere Strahlendosis aus, aber nicht strahlengehärtet. Zwischen strahlungstolerant und strahlengehärtet gibt es aber einen Unterschied. Strahlentolerante Bausteine sind für Flugzeuge, Lenkwaffen oder den Einsatz in einem bemannten Raumfahrzeugen geeignet. Dabei ist die Strahlendosis höher als auf der Erdoberfläche, aber erreicht kein letales Level. Die Strahlenbelastung der Galileo ausgesetzt werden würde übersteigt die tödliche Dosis für einen Menschen aber um Potenzen. Der RCA 1802 konnte mit 5 bis 10 V Spannung arbeiten, bei Temperaturen von -55 bis +135 Grad Celsius.

Er war allerdings „nobodys choice“, d.h. man hatte praktisch keine Wahl zu dem Zeitpunkt, als die Spezifikationen von Galileo festgelegt wurden.

Der Prozessor selbst hatte ein sehr ungewöhnliches Design, es war wohl ein früher RISC Chip. Die hervorragenden Eigenschaften waren extreme Einfachheit und große Flexibilität. Der Prozessor hatte 16 je 16 Bit breite Register, die als 32 je 8 Bit breite Register angesprochen werden konnten. (Scratchpad) Man konnte sie aber nicht direkt im Maschinencode ansprechen sondern tat dies über drei Indexregister N,P und X die jeweils 4 Bit breit waren. Es gab nicht wie bei anderen Prozessoren eigene Register für Programmcounter, Stackpointer oder Interruptbyte. Das Flag Register wurde auf das Carry Flag reduziert.

Der gesamte Zugriff auf den Speicher ging über den Akkumulator D: Jeweils ein Register enthielt die Adresse des Speichers, von der aus Daten in den Akkumulator D gelesen wurde. Ebenso wurde nur der Inhalt von D in den Speicher geschrieben. Es gab auch keine direkten Scratchpad-Register Operationen, auch hier war das D-Register immer ein Operand. D fungierte auch als Stackpointer. Dies war sicher eine Designschwäche, weil das D-Register sehr viele Funktionen hatte. Als Ausgleich gingen die Speicheroperationen allerdings sehr weit, so konnte eine Speicheroperation auch die nach dem Transfer die Adresse im Speicher um 1 erhöhten. Obwohl die Register 16 Bit breit waren gab es keinen 16 Bit Speicherbefehl, sondern die obere und untere Hälfte eines 16 Bit Registers mussten mit zwei Befehlen gespeichert werden.

Auch das Register welches den Programmcounter stellte, konnte aus den 16 Registern durch Zuweisung der Nummer in das 4 Bit breite P Register frei gewählt werden. Das Design, so erläuterte ein Experte, „erinnert mehr an einen Prozessor mit 32 Bytes RAM und 65536 I/O Ports“. Deswegen gab es auch vier programmierbare Ausgangsleitungen und eine Eingangsleitung.

Artithmetik erfolgte immer byteweise, trotz der 16 Bit Register. 16 Bit Additionen/Subtraktionen erforderten ein kleines Programm mit neuen Befehlen.

Ein Feature das sehr wichtig für den Bandrekorder war, war die integrierte DMA. DMA – Direct Memory Access erlaubt den Zugriff auf den Speicher ohne das dies mit Befehlen der CPU durchgeführt werden muss. Bei der 1802 DMA wurde ein Byte von einem Eingabebaustein eingelesen und an die Adresse kopiert auf die Register R(0) zeigte, danach wurde R(0) automatisch inkrementiert. Dazu musste der Input-Baustein nur die DMA-Leitung des Prozessors aktiv setzen. Der pausierte währenddessen die Abarbeitung des Maschinenbefehls für einen Zyklus. Analog konnte auch ein Byte vom Speicher direkt an einen Output-Baustein übertragen werden. Für die DMA gab es zwei Befehle die jeweils ein Byte transferierten. Während der Prozessor sonst ziemlich langsam war, konnte er in diesem Modus bis zu 200 KBytes pro Sekunde (bei 1,6 MHz) transferieren und übertraf mit dieser Datenrate alle anderen Prozessoren deutlich. Für das Kopieren eines Blocks kam noch ein Dekrement eines Zählers hinzu und ein Sprungbefehl, sodass die Nettodatenrate der Busse bei rund 50 KByte lag. Die DMA konnte allerdings nur Transfers zu I/O Bausteinen durchführen, nicht Memory-Memory-Transfers.

Alle 91 Instruktionen waren 8 Bit Breit: Viele Instruktionen hatten 4 Bit für den Opcode und 4 Bit für ein Register. Die Dekodierung der Anweisungen war relativ geradlinig und viel einfacher als bei allen anderen Mikroprozessoren. Es gab nur geringe Unterstützung für Unterroutinen, bedingte Sprünge und Stack.

Das Problem war, das dieser Prozessor sehr langsam war. Die Taktfrequenz betrug bei Galileo nur 1,6 MHz. (Intels 8080 und der Z80 waren zu dem Zeitpunkt mit 2,5 MHz erhältlich, der 6502 und 6800 mit 1 MHz, aber diese beiden Prozessoren führten pro Taktimpuls zwei Aktionen aus, während andere Prozessoren nur eine Aktion durchführten). Damals hatten alle Mikroprozessoren einen festen „Maschinenzyklus“. Er dauerte bei Beginn einer Instruktion immer gleich lange und bei einem 8080/z80 bestand er aus folgenden drei Schritten:

Das waren zusammen 4 Takte. Ein einfacher Befehl benötigte so immer mindestens 4 Takte. Komplexere Befehle benötigten mehrere Maschinenzyklen. Wenn z.B. Daten aus dem Speicher geholt werden mussten, so brauchte dies weitere 3 Takte pro Byte (3 weil nun das Dekodieren wegfiel). In einem Instruktionsmix brauchte die 8080-CPU 6,8 Takte pro Befehl, bei 2,5 MHz erreichten sie so rund 360.000 Instruktionen pro Sekunde. Eine vergleichbare Geschwindigkeit erreichte ein 6502 oder 6800 bei 1,25 MHz.

Der RCA 1802 hatte einen gemultiplexten Adressbus. Das heißt, obwohl er intern 16 Adressleitungen nutzte, um 65.536 Bytes RAM anzusprechen (216=65.536) führte er nur 8 Leitungen über das Gehäuse nach außen. Bei jedem Speicherzugriff wurde im ersten Maschinenzyklus die oberen 8 Adressleitungen angelegt und im zweiten Zyklus die unteren acht. Während also andere Mikroprozessoren viele Befehle in einem Maschinenzyklus durchführten benötigte der RCA 1802 immer mindestens zwei Zyklen. Als kleinen Ausgleich benötigten nur die Sprungbefehle über mehr als 256 Bytes mehr als zwei Zyklen, nämlich drei. Weiterhin dauerte bei ihm ein Maschinenzyklus nicht 4 wie beim 8080, sondern 8 Takte. Ein einfacher Befehl brauchte so 16 Takte – viermal so viele wie ein 8080/z80 und achtmal so viele wie ein 6800/6502 (die aber niedriger getaktet waren).

Lange Sprünge sind im Code relativ selten. So sind dies im Instruktionsmix 16 Takte pro Befehl. Damit schaffte der 1802 bei 1,6 MHz maximal 100.000 Instruktionen pro Sekunde.

In der Summe war der RCA 1802 sogar langsamer als der schnellste Computer von Voyager. Voyagers FDS erreichte zwar nur 80.000 Instruktionen pro Sekunde, das waren aber 16 Bit Instruktionen, es war ein 16-Bit-Computer. Der RCA 1802 brauchte vier Anweisungen um einen 16 Bit Wert zu laden, sodass er maximal 25.000 Instruktionen mit 16 Bit Werten schaffte. So war zuerst niemand so richtig glücklich mit der Wahl. Man umging das Problem, indem Galileos Computer massiv parallel waren, man also die Last auf mehrere Prozessoren verteilte. Dies bezeichnete das JPL als Unified Data System (UDS). Der Einsatz des RCA 1802 bei Galileo war eine einmalige Episode. Es gab nur einen zweiten Einsatz auf der Raumsonde Magellan. Das lag daran das Magellan aus Kostengründen viele Systeme von anderen Raumsonden, darunter Voyager, Mariner 9 und eben das CDS und AACS von Galileo verwandte. In den Achtziger Jahren erkannte die USAF, dass sie einen eigenen weltraumqualifizierten Prozessor brauchten und entwickelten einen eigenen Prozessor, den MA1750A einen 16 Bit Prozessor, der dann in vielen Satelliten und Raumsonden bis zur Jahrtausendwende eingesetzt wurde.

Die mobile Version verlassen