Obsah
1. RCA 1802: poslední mohykán osmibitové éry mikroprocesorů
2. Od čipů 1801U a 1801R k mikroprocesoru 1802
3. Mikroprocesor RCA 1802 a jeho konkurenti
8. Instrukční sada čipu RCA 1802
9. Podrobnější pohled na instrukční sadu
10. Operace s registry (přesuny dat)
17. Mikroprocesor RCA 1802 v současnosti
1. RCA 1802: poslední mohykán osmibitové éry mikroprocesorů
Na stránkách Roota jsme si již popsali většinu slavných osmibitových mikroprocesorů první generace (Intel 8008, Intel 8080, Motorola 6800, MOS 6502) i druhé generace (Zilog Z80, Motorola 6809). Taktéž jsme se zabývali vývojem osmibitových mikrořadičů (Intel 8048, Intel 8051, Motorola 68HC05, 68HC08, PIC…). Ovšem prozatím jsme se jen velmi okrajově zmínili o dalším důležitém osmibitovém čipu, který byl používán jak ve funkci mikroprocesoru, tak i mikrořadiče. Jedná se o čip nazvaný RCA 1802 a jeho význam tkví mj. i v tom, že byl použit hned v několika kosmických projektech.
Obrázek 1: Slavná sonda Galileo.
Pravděpodobně nejznámější je jeho využití v planetární sondě Galileo (použito bylo celkem šest čipů RCA 1802) nebo v raketoplánech (Space Shuttle), kde byl později nahrazen výkonnějším čipem 80386 (s velkou pravděpodobností ve variantě 80386EX). Nalézt jsme ho mohli i ve slavných letadlech Boeing 737 (těch poctivých bez přílepky MAX), v Hubbleově teleskopu, v sondě Magellan atd.
Obrázek 2: Satelity SATCOM vyrobené a provozované společností RCA.
RCA 1802, resp. mikroprocesory se stejnou architekturou, jsou stále komerčně dostupné (a to za dosti nehorázné ceny), takže se jedná o 44 let starou technologii, která stále nachází své využití. A zapomenout nesmíme ani na relativně rozsáhlou základnu fanoušků tohoto čipu, což do značné míry souvisí s počítačem ELF zmíněným v dalším textu. Na druhou stranu se RCA 1802 z několika důvodů nepodařilo použít v komerčně úspěšných herních konzolích nebo domácích mikropočítačích, takže v tomto ohledu můžeme tento čip považovat za poněkud neúspěšný.
Obrázek 3: Raketoplán discovery původně vybavený čipy RCA 1802 (a samozřejmě i stovkami dalších integrovaných obvodů).
2. Od čipů 1801U a 1801R k mikroprocesoru 1802
„This microprocessor is so good that even RCA is not really aware of how good it is.“
Vznik čipu, který je dnes známý pod označením RCA 1802, datujeme už na začátek sedmdesátých let minulého století. Tehdy totiž vznikla koncepce mikroprocesoru, která byla poprvé na komerční bázi realizována čipem Intel 4004 (i když RCA byla tomuto cíli taktéž velmi blízko). Již v roce 1975 vyvinul Joseph Weisbecker (ještě se o něm několikrát zmíníme v dalším textu, protože se jedná o klíčovou postavu celého projektu) osmibitovou architekturu založenou na dvou čipech označovaných 1801U a 1801R. V roce 1976 tým vedený Jerry Herzogem tyto čipy spojil do jediného integrovaného obvodu, který nesl název 1802. Jednalo se o čip postavený na technologii CMOS, což se ukázalo být velmi užitečné a důležité, protože se 1802 používal i jako mikrořadič, který bez problémů „přežil“ i snížení hodinové frekvence na 0 Hz (tedy zastavení hodin) s opětovným rozběhnutím (jinými slovy – všechny registry musely být statické).
Obrázek 4: Čip RCA 1802.
3. Mikroprocesor RCA 1802 a jeho konkurenti
Nový typ mikroprocesoru, jehož plné jméno je RCA CDP1802 (dnes již jen RCA 1802 nebo mezi znalci „eighteen oh two“), začal být na trh dodáván v roce 1976. V tomto kontextu je dobré se podívat i na mikroprocesory a mikrořadiče, které vznikly v první polovině sedmdesátých let minulého století (pro úplnost jsem přidal i čipy ze druhé generace, tj. především Zilog Z80 a Intel 8085, oba tyto čipy stavěly na Intel 8080, kterou vylepšovaly, popř. „jen“ zmenšovaly počet nutných pomocných obvodů a počet napájecích napětí):
# | Čip | Vznik | Typ čipu |
---|---|---|---|
1 | Intel 4004 | 1971 | čtyřbitový mikroprocesor |
2 | Intel 8008 | 1972 | osmibitový mikroprocesor |
3 | Intel 8080 | 1974 | osmibitový mikroprocesor |
4 | Motorola 6800 | 1974 | osmibitový mikroprocesor |
5 | MOS 6502 | 1975 | osmibitový mikroprocesor |
6 | RCA 1802 | 1976 | osmibitový mikroprocesor |
7 | Zilog Z80 | 1976 | osmibitový mikroprocesor |
8 | Intel 8085 | 1976 | osmibitový mikroprocesor |
9 | Intel 8048 | 1976 | osmibitový mikrořadič |
RCA 1802 byl postupně dodáván v několika variantách, které se odlišovaly například maximálním hodinovým cyklem a rozsahem napájecího napětí:
# | Označení | Maximální frekvence | Rozsah napájecího napětí |
---|---|---|---|
1 | CDP1802C | 2.5 MHz ( 5V) | 4 – 6.5V |
2 | CDP1802 | 5.0 MHz (10V) | 4 – 10.5V |
3 | CDP1802AC | 3.2 MHz ( 5V) | 4 – 6.5V |
4 | CDP1802A | 6.4 MHz (10V) | 4 – 10.5V |
5 | CDP1802BC | 5.0 MHz ( 5V) | 4 – 6.5V |
4. Rozhraní čipu RCA 1802
V této kapitole se zaměříme na popis rozhraní mikroprocesoru RCA 1802, tedy především vstupních a výstupních pinů určených pro připojení pamětí, popř. dalších periferních zařízení. Klasická verze RCA 1802 byla dodávána v DIP pouzdru se čtyřiceti piny, podobně jako naprostá většina tehdejších mikroprocesorů a mikrořadičů. Zapojení těchto čtyřiceti pinů je ukázáno na následujícím obrázku:
Obrázek 5: Piny mikroprocesoru RCA 1802.
Vcc, Vss a Vdd jsou určeny pro napájení. Připomeňme si, že čip byl vyráběn v technologii CMOS a jeho napájecí napětí mohlo být zvoleno v širokém rozhraní od 4V do 10,5V (ovšem bez problémů i 12V).
Na obrázku vidíme i piny pro osmibitovou jednosměrnou adresovou sběrnici. Čip sice používal šestnáctibitové adresy, ovšem adresa byla posílána po osmi bitech (vyšší bajt následovaný bajtem nižším). To – společně s piny pro řízení sběrnice – umožňovalo snadno připojit i paměti s osmibitovou adresou, paměti vybavené záchytným registrem (latch) pro polovinu adresy atd.
Dále čip obsahoval osm obousměrných pinů představujících datovou sběrnici. Zajímavý je pin označený Q. Jedná se o jednobitový výstup. To se může zdát málo (a pochopitelně v porovnání s mikrořadiči to i málo je), ovšem pro mnoho amatérských výrobků byl i jednobitový výstup – který nepotřeboval žádné další podpůrné obvody typu 8255 – užitečný. Je ovšem možné použít ještě další tři výstupy N0, N1 a N2 ovládané instrukcí OUT – za předpokladu, že tyto piny nejsou využity pro řízení periferních zařízení.
Důležité jsou i piny určené pro DMA, tedy přímý přístup do paměti. Tyto piny umožňovaly programování počítače ELF, o němž se zmíníme později. Řadič DMA, kterým je RCA 1802 vybaven, totiž umožňuje načítat programy do paměti bez jakéhokoli obslužného SW. To umožňuje vytvořit mikropočítače založené na RCA 1802, které mají jen minimum komponent – pouze několik přepínačů, tlačítek a pomocných logických integrovaných obvodů.
5. Architektura čipu RCA 1802
Čip RCA 1802 používal architekturu, která je značně odlišná od všech tehdy existujících osmibitových čipů. Odlišnost spočívá především ve způsobu využití pracovních registrů, které sloužily i pro adresování operandů v operační paměti (což není novinka, v tomto exceluje například MOS 6502), ovšem u RCA 1802 se jedná o jediný způsob, jak přistupovat k operační paměti. Čip byl navíc velmi ortogonální, například neobsahoval čítač instrukcí – tím mohl být libovolný pracovní registr. Podobným způsobem bylo možné vybrat index registr. Tyto rozdíly – nemožnost přímé adresace paměti, volba registru pro čítač instrukcí, neexistence zásobníku atd. – znamenaly, že se RCA 1802 programoval dosti odlišným způsobem, než všechny tehdejší mikroprocesory.
Obrázek 6: Blokový diagram čipu RCA 1802.
6. Sada registrů
Celá sada registrů čipu RCA 1802 (neboli programátorský model) je vypsána v následující tabulce:
# | Označení | Počet bitů | Stručný popis |
---|---|---|---|
1 | D | 8 | akumulátor (zde nazývaný data register) |
2 | R0-RF | 16 | pracovní registry (scratch-pad) používané pro adresování |
3 | P | 4 | výběr jednoho z registrů R0-RF, který bude sloužit jako čítač instrukcí |
4 | X | 4 | výběr jednoho z registrů R0-RF, který bude sloužit jako index registr |
5 | N | 4 | registr nastavovaný podle dolních čtyř bitů instrukce (typicky obsahuje index registru R0-RF) |
6 | I | 4 | registr nastavovaný podle horních čtyř bitů instrukce (typicky obsahuje operační kód, viz další text) |
7 | T | 8 | dočasný registr (temporary) používaný několika instrukcemi |
8 | A | 16 | interně používaný pro adresování |
9 | DF | 1 | příznakový registr DF používaný instrukcemi ADD a SHIFT pro registraci přetečení |
10 | Q | 1 | jednobitový registr Q řídicí výstup označený taktéž Q |
7. Adresovací režimy
Čip RCA 1802 používá v instrukcích tři základní adresovací režimy:
- Register: číslo (index) registru, s nímž se má operace provést, je uložen ve spodních čtyřech bitech instrukčního slova. Příkladem mohou být instrukce DEC a GET LOW (GLO).
- Register-Indirect: ve spodních bitech instrukce je uloženo číslo (index) registru, který obsahuje adresu operandu. Podobné adresování nalezneme v MOS 6502 nebo u 8048 (omezeno na @R0 a @R1).
- Immediate: operand (data) jsou uloženy v dalším bajtu za načtenou instrukcí. Konkrétně se jedná o adresu uloženou v R(P), tedy v takovém pracovním registru, jehož číslo (index) je uložen v registru P.
8. Instrukční sada čipu RCA 1802
V předchozích kapitolách jsme si řekli, že samotná architektura čipu RCA 1802 se dosti podstatným způsobem odlišovala od dalších osmibitových mikroprocesorů, které vznikly v první polovině sedmdesátých let minulého století. Týká se to i instrukční sady, která je ovšem na druhou stranu navržena takovým způsobem, aby byla co nejvíce regulární a navíc i snadno zapamatovatelná při použití hexadecimálních kódů instrukcí. Jednobajtový operační kód instrukce je totiž rozdělen na dvě čtyřbitové části, které jsou při načtení instrukce uloženy do čtyřbitových registrů I a N. U mnoha typů instrukcí obsahuje registr N číslo (index) pracovního registru, se kterým se operace provádí (druhým registrem je většinou implicitně akumulátor D). Podívejme se nejprve na tabulku zobrazující skupiny instrukcí pro všechny možné kombinace dvou hexadecimálních číslic:
Obrázek 7: Skupiny instrukcí v instrukční sadě RCA 1802.
Z tabulky je patrné, že instrukce jsou podle obsahu prvních čtyř bitů (I) rozděleny do šestnácti skupin, které si ve stručnosti popíšeme v navazující kapitole.
9. Podrobnější pohled na instrukční sadu
Pojďme se nyní do větších podrobností podívat na instrukční sadu mikroprocesoru RCA 1802 podrobněji. Víme již, že instrukce jsou rozděleny do šestnácti skupin, které si postupně popíšeme. Každá skupina je jednoznačně identifikována hodnotou prvního nibblu instrukčního slova, který je při načítání instrukce ukládán do registru I. Podle typu instrukce rozpoznáváme tyto typy:
- Operace s registry (přesuny dat)
- Práce s operační pamětí
- Aritmetické operace
- Logické operace
- Skoky
- Přeskočení (vynechání) instrukce
- Řízení (přerušení atd.)
- Vstupně-výstupní operace (jednobitový výstup, čtyřbitové vstupy atd.)
Z toho důvodu, že skupina instrukce je určena nejvyššími čtyřmi bity instrukčního slova, budou v dalších tabulkách hodnoty těchto čtyř bitů zapsány do sloupce I (protože se tato hodnota vždy do registru I ukládala).
10. Operace s registry (přesuny dat)
Celá čtvrtina operačních kódů, tedy 64 kombinací, je vyhrazena pro přesuny dat mezi registry, konkrétně vždy mezi akumulátorem D a vybraným pracovním registrem Rn. Existují celkem čtyři instrukce, které začínají písmenem G (Get) nebo P (Put), za kterým následuje HI, pokud se používá horní bajt registru Rn nebo LO, pokud je čtení/zápis proveden do spodního bajtu:
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | 8 | GLO | přesun nižšího bajtu registru Rn do akumulátoru D |
2 | 9 | GHI | přesun vyššího bajtu registru Rn do akumulátoru D |
3 | A | PLO | přesun hodnoty akumulátoru D do dolního bajtu registru Rn |
4 | B | PHI | přesun hodnoty akumulátoru D do horního bajtu registru Rn |
5 | D | SEP | zápis čtyř bitů do registru P (volba čítače instrukcí) |
6 | E | SEX | zápis čtyř bitů do registru X (volba index registru) |
7 | E | LDI | načtení osmibitové konstanty do akumulátoru |
11. Práce s operační pamětí
Mikroprocesor RCA 1802 obsahoval i instrukce umožňující čtení operandů z operační paměti, popř. zápis operandů do paměti. Tato operace byla vždy prováděna mezi pamětí a akumulátorem, ovšem s tím, že adresa pro čtení/zápis byla uložena v některém pracovním registru Rn – adresa tedy nebyla součástí instrukčního slova, což dosti podstatným způsobem komplikovalo (resp. přesněji řečeno prodlužovalo) algoritmy typu „přesuň bajt z adresy X na adresu Y“):
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | 0 | LDN | načtení obsahu paměti z adresy uložené v registru Rn a uložení hodnoty do akumulátoru D |
2 | 4 | LDA | jako instrukce LDN, ovšem obsah registru Rn se zvýší o jedničku |
3 | 5 | STR | uložení obsahu akumulátoru na adresu uloženou v registru Rn |
4 | F | LDX | přečtení dat z adresy uložené v registru R(X) (zvolený index registr) |
5 | 7 | LDXA | přečtení dat z adresy uložené v registru R(X) (zvolený index registr); zvýšení obsahu index registru |
6 | 7 | STXD | zápis dat na adresu uloženou v registru R(X) (zvolený index registr); snížení obsahu index registru |
12. Aritmetické operace
Další poměrně velkou skupinu instrukcí představují aritmetické operace. Celou šestnáctinu operačních kódů zabírá instrukce INC, která slouží pro zvýšení obsahu vybraného registru Rn o jedničku, a to bez detekce přetečení. Podobně v instrukčním kód nalezneme instrukci DEC, která obsah vybraného registru Rn snižuje. Existuje i možnost zvýšit obsah registru, jehož index je uložen v registru X. Další aritmetické instrukce vždy používají jako jeden ze svých operandů akumulátor D:
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | 1 | INC | zvýšení obsahu registru Rn o jedničku |
2 | 2 | DEC | snížení obsahu registru Rn o jedničku |
3 | 6 | IRX | zvýšení obsahu registru, jehož číslo je uloženo v X |
4 | F | ADD | součet D s obsahem buňky adresované R(X) |
5 | 7 | ADC | součet D s obsahem buňky adresované R(X) (s přenosem) |
6 | F | SD | rozdíl D od obsahu buňky adresované R(X) |
7 | 7 | SDB | rozdíl D od obsahu buňky adresované R(X) (s výpůjčkou) |
6 | F | SM | rozdíl D od obsahu buňky adresované R(X) |
8 | 7 | SMB | jako SDB, ovšem s otočením operandů |
9 | F | ADI | součet D a bajtu uloženého za instrukcí |
10 | F | SDI | rozdíl D a bajtu uloženého za instrukcí |
11 | F | SMI | jako SDBI, ovšem s otočením operandů |
12 | 7 | ADCI | součet D a bajtu uloženého za instrukcí (s přenosem) |
13 | 7 | SDBI | rozdíl D a bajtu uloženého za instrukcí (s přenosem) |
14 | 7 | SMBI | jako SDBI, ovšem s otočením operandů (s přenosem) |
13. Logické operace
Následují instrukce určené pro logické operace a bitové rotace:
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | F | SHR | aritmetický posun doprava (posun osmi bitů) |
2 | F | SHL | aritmetický posun doleva (posun osmi bitů) |
3 | 7 | SHRC | bitová rotace doprava přes příznak DF (rotace devíti bitů) |
4 | 7 | SHLC | bitová rotace doleva přes příznak DF (rotace devíti bitů) |
5 | F | OR | operace OR mezi akumulátorem D a buňkou R(X) |
6 | F | AND | operace AND mezi akumulátorem D a buňkou R(X) |
7 | F | XOR | operace XOR mezi akumulátorem D a buňkou R(X) |
8 | F | ORI | operace OR mezi akumulátorem D a osmibitovou konstantou |
9 | F | ANI | operace AND mezi akumulátorem D a osmibitovou konstantou |
10 | F | XRI | operace XOR mezi akumulátorem D a osmibitovou konstantou |
14. Krátké skoky a přeskočení bajtu
Pro řízení běhu programu se používají nepodmíněné a podmíněné skoky. Za operačním kódem instrukce následuje další bajt představující dolních osm bitů cílové adresy (horních osm bitů je uloženo v registru R(P)). Povšimněte si zde velkého rozdílu oproti dalším typům mikroprocesorů – instrukce nahradí dolní bajt cílové adresy, nejedná se tedy o relativní skok ve smyslu, že lze skákat například v rozsahu –128 až 127 adres (relativní skoky jsou výhodnější v tom, že instrukce skoku může být umístěna kdekoli v operační paměti):
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | 3 | BR | krátký nepodmíněný skok |
2 | 3 | BQ | krátký podmíněný skok podle obsahu jednobitového registru Q (musí být nulový) |
3 | 3 | BNQ | krátký podmíněný skok podle obsahu jednobitového registru Q (musí být nastaven na 1) |
4 | 3 | BZ | krátký podmíněný skok v závislosti na tom, zda je akumulátor D nulový |
5 | 3 | BNZ | krátký podmíněný skok v závislosti na tom, zda je akumulátor D nenulový |
6 | 3 | BDF | krátký podmíněný skok podle obsahu jednobitového registru DF (příznak přenosu je nenulový) |
7 | 3 | BPZ | alias pro předchozí instrukci (plus or zero) |
8 | 3 | BGE | alias pro předchozí instrukci (greater or equal) |
9 | 3 | BNF | krátký podmíněný skok podle obsahu jednobitového registru DF (příznak přenosu je nulový) |
10 | 3 | BM | alias pro předchozí instrukci (minus) |
11 | 3 | BL | alias pro předchozí instrukci (less) |
12 | 3 | B1 | krátký podmíněný skok podle stavu pinu EF1 (nastaven na jedničku) |
13 | 3 | B2 | krátký podmíněný skok podle stavu pinu EF2 (nastaven na jedničku) |
14 | 3 | B3 | krátký podmíněný skok podle stavu pinu EF3 (nastaven na jedničku) |
15 | 3 | B4 | krátký podmíněný skok podle stavu pinu EF4 (nastaven na jedničku) |
16 | 3 | BN1 | krátký podmíněný skok podle stavu pinu EF1 (nastaven na nulu) |
17 | 3 | BN2 | krátký podmíněný skok podle stavu pinu EF2 (nastaven na nulu) |
18 | 3 | BN3 | krátký podmíněný skok podle stavu pinu EF3 (nastaven na nulu) |
19 | 3 | BN4 | krátký podmíněný skok podle stavu pinu EF4 (nastaven na nulu) |
20 | 3 | SKP | další bajt je ignorován (tedy jakoby se jedná o skok, jehož podmínka není nikdy splněna, opak BR) |
15. Dlouhé skoky a instrukce pro podmíněné přeskočení dvou bajtů
Jedná se o jediné instrukce, které modifikují celých šestnáct bitů čítače instrukcí, tedy registru R(P). Adresa je v tomto případě uložena ve dvou bajtech za instrukcí (kromě instrukce RET):
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | 7 | RET | skok na adresu uloženou na adrese R(X) |
2 | C | LBR | dlouhý nepodmíněný skok |
3 | C | LBQ | dlouhý podmíněný skok podle obsahu jednobitového registru Q (musí být nulový) |
4 | C | LBNQ | dlouhý podmíněný skok podle obsahu jednobitového registru Q (musí být nastaven na 1) |
5 | C | LBZ | dlouhý podmíněný skok v závislosti na tom, zda je akumulátor D nulový |
6 | C | LBNZ | dlouhý podmíněný skok v závislosti na tom, zda je akumulátor D nenulový |
7 | C | LBDF | dlouhý podmíněný skok podle obsahu jednobitového registru DF (příznak přenosu je nenulový) |
8 | C | LBNF | dlouhý podmíněný skok podle obsahu jednobitového registru DF (příznak přenosu je nulový) |
Následují instrukce, které při platné podmínce přeskočí následující dva bajty (bez ohledu na jejich obsah):
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | C | LSQ | přeskok při Q==1 |
2 | C | LSNQ | přeskok při Q==0 |
3 | C | LSZ | přeskok při D==0 (akumulátor) |
4 | C | LSNZ | přeskok při D!=0 |
5 | C | LSDF | přeskok při DF==1 (příznak přetečení) |
6 | C | LSNF | přeskok při DF==0 |
7 | C | LSIE | přeskok při IE=1 (Interrupt Enable) |
8 | C | LSKP | přeskok za jakýchkoli okolností |
16. Vstupně-výstupní operace
Poslední skupina instrukcí zahrnuje především různé vstupně-výstupní operace:
# | I | Instrukce | Stručný popis |
---|---|---|---|
1 | 0 | IDL | čekání na I/O operaci (DMA-IN, DMA-OUT, INT), ve skutečnosti se instrukce IDL provádí v cyklu stále dokola (procesor není zastaven) |
2 | 6 | OUT | výstup bajtu adresovaného pomocí R(X) je poslán na datovou sběrnici + ovládání výstupů N0, N1 nebo N2 |
3 | 6 | INP | přečtení vstupu z datové sběrnice a uložení na R(X) |
4 | 7 | REQ | vynulování jednobitového registru Q a tím pádem i pinu Q |
5 | 7 | SEQ | nastavené (na jedničku) jednobitového registru Q a tím pádem i pinu Q |
6 | 7 | DIS | zákaz přerušení |
17. Mikroprocesor RCA 1802 v současnosti
RCA 1802 má stále – neuvěřitelných 44 let po svém vzniku – velmi věrnou skupinu uživatelů a fanoušků (což lze ostatně říci o všech výše jmenovaných osmibitových čipech, snad s výjimkou Intelu 4004 a 8008), ovšem z hlediska „globální popularity“ měl tak trochu smůlu, protože nebyl použit v žádném úspěšném domácím mikropočítači a i jeho použití v herní konzoli bylo prakticky stoprocentně zastíněno fenomenálně úspěšnou herní konzolí Atari 2600 (založené na zjednodušené variantě čipu MOS 6502). Dnes se RCA 1802 využívá v amatérských konstrukcích, v nichž se typicky instalují původní čipy RCA (ne ty nově vyrobené – ty jsou příliš drahé). RCA 1802 byl převeden i na FPGA, a to například v projektu používajícím SpinalHDL, popř. existuje i alternativní verze ve Verilogu.
18. Obsah druhé části článku
Již v úvodní kapitole jsme si řekli, že čip RCA 1802 je známý mj. i tím, že byl použit – a to dokonce několikrát – v kosmickém programu, v letadlech a s velkou pravděpodobností i v armádních projektech. Existovalo totiž několik technologicky odlišných variant tohoto čipu, z nichž nejzajímavější je varianta používající technologii SOS neboli silicon on sapphire. Tato technologie umožňuje produkovat čipy s větší odolností proti záření, včetně (samozřejmě jen do určité míry) záření ionizujícímu. A právě tato zvýšená odolnost je vyžadována v kosmickém prostoru i pro vojenské aplikace.
Obrázek 8: Mikropočítač ELF (autor: Paul Schmidt).
Druhou oblastí, v níž se mikroprocesor RCA 1802 rozšířil, bylo zcela odlišné spektrum uživatelů. Jednalo se (a vlastně se i stále jedná) o elektroniky, kteří si sestavovali vlastní mikropočítače. A jeden z absolutně nejjednodušších mikropočítačů vůbec je založen právě na dnes popisovaném mikroprocesoru. Tento mikropočítač, který je programován zadáváním obsahu jednotlivých bajtů ukládaných do operační paměti pomocí osmi přepínačů, se nazývá COSMAC ELF a jeho popisem se budeme zabývat příště.
Obrázek 9: Mikropočítač Netronic ELF.
19. Literatura
- A Radiation-Hardened Bulk Si-Gate Microprocessor Family, R.E. Stricker, A.G.F. Dingwall, S. Cohen, J.R. Adams, and W.C. Slemmer
IEEE Conference on Nuclear and Space Radiation Effects,
Santa Cruz, CA, July 17–20, 1979 - Rapid Annealing Response of the Hardened 1802 Bulk CMOS Microprocessor, John Scarpulla, Robert Mozulay, Christine Ausnit, Edward W. Hogan, and Richard H. Casey
IEEE Transactions on Nuclear Science, Vol. NS-27, No. 6 December 1980
- U.S Shah,
Microprocessor and its applications
20. Odkazy na Internetu
- RCA 1802 (Wikipedia)
https://en.wikipedia.org/wiki/RCA_1802 - Great Microprocessors of the Past and Present (V 13.4.0)
http://www.cpushack.com/CPU/cpu.html - Chip Hall of Fame: RCA CDP 1802
https://spectrum.ieee.org/semiconductors/processors/chip-hall-of-fame-rca-cdp-1802 - The CPUs of Spacecraft: Computers in Space
http://cpushack.com/space-craft-cpu.html - Part I: RCA 1802, weirdness at its best (1974)
http://www.cpushack.com/CPU/cpu2.html#Sec2Part1 - Embedded Processor and Microcontroller primer and FAQ
http://www.faqs.org/faqs/microcontroller-faq/primer/ - COSMAC ELF: The CDP1802’s Place in Microcomputing History
http://www.cosmacelf.com/ - Cosmac 1802
http://www.nyx.net/~lturner/public_html/Cosmac.html - CDP1802AC/3: High-Reliability CMOS 8-Bit Microprocessor
https://www.renesas.com/eu/en/www/doc/datasheet/cdp1802ac-3.pdf - A Short Course In Programming
http://www.ittybittycomputers.com/IttyBitty/ShortCor.htm - The 1802 Instruction Set
https://www.atarimagazines.com/computeii/issue3/page52.php - Jak se zrodil procesor?
https://www.root.cz/clanky/jak-se-zrodil-procesor/ - Osmibitové mikroprocesory a mikrořadiče firmy Motorola (1)
https://www.root.cz/clanky/osmibitove-mikroprocesory-a-mikroradice-firmy-motorola-1/ - Mikrořadiče a jejich použití v jednoduchých mikropočítačích
https://www.root.cz/clanky/mikroradice-a-jejich-pouziti-v-jednoduchych-mikropocitacich/ - Mikrořadiče a jejich aplikace v jednoduchých mikropočítačích (2)
https://www.root.cz/clanky/mikroradice-a-jejich-aplikace-v-jednoduchych-mikropocitacich-2/ - Československé osmibitové počítače
https://www.root.cz/clanky/ceskoslovenske-osmibitove-pocitace/ - 25 Microchips That Shook the World
https://spectrum.ieee.org/tech-history/silicon-revolution/25-microchips-that-shook-the-world - COSMAC 1802: history of microprocessors in space
https://www.retrotechnology.com/memship/1802_spacecraft.html - COSMAC 1802 on AMSATs running IPS
https://www.retrotechnology.com/memship/amsat.html - Technické informace o sondě Galileo
https://www.retrotechnology.com/memship/galileo.txt - COSMAC “ELF” Microcomputer Trainer User’s Manual:
http://www.cosmacelf.com/publications/books/cosmac-elf-manual.pdf - RCA COSMAC MICROPROCESSOR
http://www.decodesystems.com/cosmac/ - Netronics ELF II
https://oldcomputers.net/netronics-elf.html - Netronics Elf II
http://www.qwkslva.com/Museum/Netronics_Elf/netronics_elf.html - Assorted COSMAC Computers
http://www.cosmacelf.com/gallery/assorted-cosmac-computers.html - RCA 1802 COSMAC (plocha čipu)
http://visual6502.org/images/pages/RCA_1802_die_shots.html - Joseph Weisbecker
https://en.wikipedia.org/wiki/Joseph_Weisbecker - Joe Weisbecker Video Game Collection
https://digital.hagley.org/weisbecker - CDP1802A
https://www.renesas.com/us/en/products/space-harsh-environment/harsh-environment/microprocessors-peripherals/device/CDP1802A.html#overviewInfo - Grafické karty a grafické akcelerátory (7)
https://www.root.cz/clanky/graficke-karty-a-graficke-akceleratory-7/ - Osmibitové mikrořadiče Rabbit: praví dědicové mikroprocesoru Zilog Z80
https://www.root.cz/clanky/osmibitove-mikroradice-rabbit-pravi-dedicove-mikroprocesoru-zilog-z80 - Čtyřicet let existence slavných mikroprocesorů řady Motorola 68000
https://www.root.cz/clanky/ctyricet-let-existence-slavnych-mikroprocesoru-rady-motorola-68000/ - Intel 8008 Instruction Set
https://www.bytecollector.com/archive/mark8/My_Mark-8_Info/Software/8008_ReferenceCard.PDF - Intel 8008 instruction set
https://www.pastraiser.com/cpu/i8008/i8008_opcodes.html - Silicon on sapphire
https://en.wikipedia.org/wiki/Silicon_on_sapphire - COSMAC ELF Lives Again, In FPGA
https://hackaday.com/2020/01/23/cosmac-elf-lives-again-in-fpga/ - verilog1802
https://github.com/jamesbowman/verilog1802 - 1802 FIG FORTH
https://www.retrotechnology.com/memship/figforth_1802.html