Dnešný článok môžete čítať vďaka Martinovi ‚M1‘, ktorý sa podelil o skúsenosti s testovaním našich najobľúbenejších CPU.
Milovníkov historických počítačov zaskočila začiatkom tohtoročnej jari správa, že Zilog po 48 rokoch ukončí výrobu svojho ikonického procesora Z80. Následkom tejto informácie zmizli zo skladov oficiálnych distribútorov zásoby všetkých procesorov Z80. Výrobca oznámil, že procesory si môžu distribútori posledný krát objednať už len do polovice júna 2024. Po niekoľkomesačnej nedostupnosti Z80 sa v ponuke opäť objavili, ale už za oveľa väčšiu cenu. Rovnako zareagoval aj šedý trh a zvýšenie cien sa dalo postrehnúť aj u čínskych obchodníkov, predávajúcich procesory väčšinou neznámeho pôvodu a parametrov. Nákup u takýchto obchodníkov je spojený s rizikom, že nakúpené procesory nebudú zodpovedať tomu, čo deklaruje predajca, nakoľko veľké množstvo nielen procesorov Z80, ale aj iných vyhľadávaných čipov, býva preznačených a teda s inými než očakávanými parametrami.
Vzhľadom na to, že sám vlastním niekoľko procesorov Z80 nakúpených v minulosti v Číne, a o niektorých som už mal aj predtým pochybnosti, rozhodol som sa otestovať, nakoľko sa ich parametre zhodujú so značením.
Na internete možno nájsť niekoľko verzií testerov Z80, ktoré si kladú za úlohu zistiť typ čipu a maximálne použiteľnú frekvenciu hodinových pulzov. Ja som sa však rozhodol ísť vlastnou cestou, a pokúsiť sa otestovať čo najviac parametrov procesora. Jedným z tých najdôležitejších bola spotreba čipu, ktorá dokáže jednoznačne odhaliť, akou technológiou bol procesor vyrobený. Zároveň som chcel, aby bol tester plne automatizovaný a pri samotnom testovaní ho nebolo potrebné prestavovať.
Štandardne testery Z80 obsahujú pamäte ROM a RAM, dekóder pamätí a portov, niekoľko obvodov vstupno-výstupných portov a zobrazovacie LED diódy, ktoré informujú o výsledku testov. Ďalšou dôležitou časťou je nastaviteľný zdroj hodinových impulzov. Moja snaha bola existujúce riešenia zjednodušiť. Vo výsledku sa tester uspokojil so siedmimi integrovanými obvodmi okrem samotného testovaného procesora. Sú to pamäť flash a rýchla RAM, jeden dekóder, jeden vstupný a jeden výstupný port. Zvyšné dva obvody sú programovateľný oscilátor a čip merania spotreby, ktoré sú už súčasné moderné obvody a navyše sa vyrábajú len v púzdrach SMT. Tester je doplnený o malý OLED displeji, ktorý dokáže poskytnúť oveľa väčšie množstvo informácií o priebehu a výsledku testov.
Samotný test prebieha v niekoľkých fázach. Na začiatku sa zmeria napätie a prúd pretekajúci Z80 a vypočíta sa spotreba čipu. Následne sa vykoná známy test OUT (C), 0 ,ktorý dokáže vo väčšine prípadov odhaliť, či sa jedná o čip vyrobený NMOS alebo CMOS technológiou. Pokiaľ boli Z80 vyrobené na základe licencie firmy Zilog, je až na výnimky nemožné zistiť konkrétneho výrobcu. Čipy z NDR mali pri reverznom inžinierstve opravenú chybu v príkaze OUTI, čo umožňuje presne identifikovať procesory tohto pôvodu. Procesory firmy NEC, ktoré sa nachádzajú v počítačoch ZX Spectrum v najväčšom meradle, sa dajú zistiť podľa nastavení nedokumentovaných príznakov Y a X (alebo F.5 a F.3) stavového registra počas spracovania inštrukcií SCF a CCF. Mimochodom, procesor μPD780 od firmy NEC oficiálne nie je procesor Z80, ale procesor „plne pinovo a softvérovo kompatibilný so Z80“.
Ďalším z funkčných testov je reakcia na vyvolané prerušenie NMI a INT. Záverečný test je zameraný na zistenie maximálnej frekvencie hodinových impulzov, pri ktorej je Z80 schopná pracovať bez chýb. Použitý programovateľný oscilátor pracuje na princípe prednastaviteľného čítača, teda dokáže základnú frekvenciu (66MHz) deliť nastavenou hodnotou od 2 do 1025. Test začína na frekvencii 1MHz a stúpa vďaka zmene hodnoty deliča až do 33Mhz. Po každej zmene frekvencie test prechádza veľkou sadou inštrukcií a kontroluje vplyv všetkých inštrukcií na registre a príznaky CPU a porovnáva ich so známou hodnotou. V prípade, že nastane rozpor vo výsledku, je za maximálnu hodnotu frekvencie použitá hodnota z predošlého testu. Ak test inštrukcií prejde bez straty bodov, je ešte zmeraná hodnota prúdu, ktorá stúpa s použitou frekvenciou hlavne u procesorov CMOS. Procesor pri nepodporovaných rýchlostiach môže chybami vo vykonávaní inštrukcií spôsobiť kolaps testera, posledná “dobrá” hodnota však zostáva svietiť na displeji. Prácu testera však treba ukončiť jeho vypnutím. Aj tu som zvažoval automatizáciu, ale programovateľný oscilátor nemá vstup RESET a možnosť vrátenia sa na prednastavenú hodnotu je len vypnutím. Vyriešiť by to šlo doplnením malého mikrokontroléra vo funkcii watchdogu, ktorý by stav kolapsu dokázal identifikovať a oscilátor preprogramovať späť na menšiu frekvenciu. Ale keďže sa jedná o jednoúčelový a málo využívaný tester, je takéto riešenie skôr prepychom.
Testovanie všetkých procesorov Z80, ktoré som našiel v zásobách, odhalilo niekoľko falošných čipov s preznačeným popisom, kde sa namiesto rýchleho a úsporného CMOS ukázal pomalý NMOS procesor. Testy ďalej odhalil, že väčšina procesorov zvláda až dvojnásobnú frekvenciu oproti udávanej hodnote. Treba mať však na mysli, že výrobca túto hodnotu deklaruje tak, aby procesor dlhodobo bez chýb pracoval v celom teplotnom rozsahu a prípadných odchýlkach v striede signálu.
Video z testovania mojej zbierky procesorov si môžete pozrieť na Youtube
Martin ‚M1‘
Pěkně to Martin vymazlil, líbí se mi to. Jen bacha na to napájení. Vidím na fotce 4,64V, což je mimo specifikace a Z80 se díky tomu může chovat trochu jinak. U sebe jsem na to taky narazil, je to díky napájení z USB a použitým kabelem. V testeru by mělo být napětí cajk.