Test procesoru Intel 8008 (U808D)




Tato stránka představuje jednoduché zapojení pro základní otestování funkčnosti mikroprocesoru Intel 8008, což je vůbec první osmibitový procesor na světě. Procesor je v maličkém pouzdru DIP 18 a je to opravdový exot. Nehovoří jazykem žádného známého kmene, nepřipojíte k němu přímo žádný ze známých a populárních počítačových obvodů. Neexistují k němu od Intelu žádné speciální podpůrné obvody... Maličký procesor používá pouze jedinou osmibitovou sběrnici a vysílá jakousi hatmatilku na své stavové výstupy S0, S1 a S2. Tuto hatmatilku je nutné dekódovat s použitím klasických TTL LS obvodů a vytvořit tak potřebné řídící signály. Ty je však ještě nutno správně synchronizovat s dvoufázovými hodinami, které si mimochodem také musíte vytvořit sami z diskrétních obvodů... Přitom k předchůdcům 4004/4040 i následovníkovi 8080 Intel specializované obvody pro generování hodin dodával:-) Procesor 8008 se vyráběl i v tehdejší NDR pod označením U808D a právě s tímto obvodem byl v tuzemsku publikován asi jediný 8008 mikropočítač: VSS 808 (ročenka AR 1982).

CPU Intel 8008
CPU Intel 8008
tester CPU Intel 8008
tester CPU Intel 8008

Jelikož jsem získal originální Intel 8008 a chtěl jsem vědět zdali funguje, navrhl jsem jednoduchý způsob testování. Z výše uvedeného je jasné, že nelze použít klasické NOPování se sledováním čítání adresy. Bylo potřeba na to jít jinak. Navrhl jsem tedy jednoduché testovací zapojení. Sice píšu jednoduché, ale oproti klasickému NOPování je to přeci jen složitější. A testuje se instrukcí NOP:-) Zapojení a popis testu dávám k dispozici.


Intel 8008 (U808D) tester

Zapojení je inspirované schématem "Nine-chip microcomputer" z knihy The Microcomputer Design, kap. 25 (více o ní na konci stránky). Pouze jsem upravil časování na uvolňovacích vstupech dekodéru stavů (74LS138) tak, aby se signál T3 dal přímo použít na čtení instrukce a nemusel se generovat další signál T3A. Toto zapojení je ale pouze pro testovací účely, pro konstrukci počítače není použitelné! Výhodou je použití pouze 4 jednoduchých standardních IO (+ pochopitelně CPU). Procesor sice vyžaduje napájení +5V a -9V, ale všechny signálové vstupy a výstupy jsou kompatibilní s TTL LS (vyjma hodin, ty jsou MOS - proto ty pullupy tam).


    tester CPU 8008


Procesor lze spolehlivě otestovat pouze logickou sondou s indikací impulsů. Ale pochopitelně je působivější sledovat změny stavových signálů na logickém analyzátoru či osciloskopu:-) Než začnete testovat, je nutné se s procesorem a hlavně s principem stavů seznámit. Ideální je ta ročenka AR 1982, kde je vše přehledně a v češtině.

Principem testu je ověření, že procesor prochází v různých režimech všemi adekvátními stavy. Testuje se instrukcí NOP 22h která se na datovou sběrnici přivádí z třístavového oddělovače (74244, 245, 373, 573, 645, apod). To, že procesor prochází sledovaným stavem, je signalizováno impulsy na příslušném výstupu z dekodéru 74LS138. Pokud procesor některým stavem neprochází, je daný výstup trvale v log. 1. Na test tak stačí logická sonda s indikací impulsů. Tester jsem realizoval na nepájivém poli:

tester CPU Intel 8008
tester CPU Intel 8008


Způsob testování

Poznámka: všechny dále popisované signály a úrovně jsou klasické TTL!

režim STOP:

do tohoto režimu se procesor dostane vždy po zapnutí napájení s rozpojenými spínači INTR a WAIT. Vstup INT na CPU musí být v log. 0 (klopný obvod na vstupu by se tak měl nastavit automaticky). V režimu STOP je procesor trvale ve stavu T3S. Signály S0=S1=1, S2=0 jsou stabilní. Všechny výstupy dekodéru stavů 74LS138 jsou v log.1, pouze na výstupu T3S jsou patrné pulsy.

Režim INTERRUPT:

do tohoto režimu se CPU dostane sepnutím spínače INTR (zůstává sepnutý). Procesor se rozeběhne a začne číst instrukci. Postupně prochází stavy T1I, T2, T3, T4 a T5. Na těchto výstupech dekodéru budou pulsy. Ostatní výstupy musí být trvale v log.1

Režim GO:

nastane po opětovném rozpojení spínače INTR. Procesor funguje stejně, jen se v aktivitě prohodí stavy T1I (nyní trvale v log.1) a T1 (nyní pulsy). Ostatní zůstává stejné, jako u interruptu. Periodickým spínáním/rozpínáním INTR se prohazuje aktivita stavů T1I a T1. Ostatní stavy zůstávají stejné (T2, T3, T4 a T5 pulsy, kdežto T3W a T3S trvale v H).

Režim WAIT:

nastane sepnutím spínače WAIT (RDY=0). Procesor zůstává ve stavu T3W. Zde jsou na výstupu dekodéru pulsy, všechny ostatní výstupy jsou v H. Rozpojením spínače WAIT se procesor vrací do režimu GO nebo INTERRUPT podle toho, v jaké pozici je spínač INTR. Zde je nutné zdůraznit, že signál RDY by měl být také synchronizován. V případě změny úrovně v nevhodný okamžik se procesor může zachovat nedefinovaně. Jednou mi po rozepnutí WAIT přešel do stavu STOP. Ale už jsem nechtěl přidávat další hradla a pro ověření činnosti (že se CPU dostane do stavu T3W) to bohatě stačí…

Poznámka k instrukci NOP:

CPU 8008 ve skutečnosti instrukci NOP nemá. Použitý kód instrukce NOP 22h je jedním z tzv. nedefinovaných kódů, které se jako NOP používají. NOP tedy může mít několik různých instrukčních kódů (na 22h jsou ale potřeba jen 2 odpory:-)). Pokud CPU načte nedefinovanou instrukci, projde všemi stavy (tedy i T4 a T5, jež některé instrukce nepoužívají) a začne nový instrukční cyklus. V jiné literatuře jsem našel instrukční soubor 8008, kde byla přímo NOP jako C0h. Toto však ve skutečnosti není NOP, ale MOV A,A.

Testování instrukcí HLT:

Další možností testu je nastavení instrukce HLT (00h nebo FFh) namísto NOP. V tomto případě procesor pojede jen v režimu INTERRUPT při sepnutém INTR. Po rozpojení spínače INTR se opět zastaví a zůstane ve stavu T3S (STOP).


Co s ním?

Po pravdě, počítačů s tímto exotickým procesorem moc neznám. Soudě podle informací z internetu býval kdysi ve světě populární jakýsi MARK 8. A pak je tu náš starý známý VSS 808 detailně popsaný v Konstrukční příloze AR 1982. Jak MARK 8, tak VSS 808 jsou "tlačítkáče". Pokud bych si někdy chtěl něco s 8008 postavit, asi by to byl právě VSS 808. Sice je dost složitý, ale s použitím modernějších součástek se dá výrazně zjednodušit. Původní zapojení je až k pláči, ale opět to vypovídá o tragičnostikomunistické éry. Tak třeba použití čítače s předvolbou 74193 jako latche je fakt hodně vypovídající o tehdejší dostupnosti součástek u nás... Další počítače (MIKE 8) jsou popsány v knize The Microcomputer Design, ale chybí jim software.


Kniha The Microcomputer Design

Na internetu se dá nalézt naskenovaná výtečná kniha The Microcomputer Design, která se věnuje návrhu mikropočítačů s procesory Intel 8008 a 8080. Důraz je ale právě na 8008. Sken není moc kvalitní a je to jen série klasických obrázků. Ale Martin Lukášek z toho vytvořil parádní OCR PDF. Bacha, je to dost velké!


    The Microcomputer Design (145 MB!)



RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2017