Obecný nástroj CP1600 - General Instrument CP1600

Herní konzole Intellivision, v drtivé většině přední aplikace rodiny CP1600

CP1600 je 16bitový mikroprocesor vytvořený v rámci partnerství mezi General Instrument a Honeywell v roce 1975. Honeywell využil CP1600 v řadě kontrolních procesů počítačů a souvisejících systémů, ale jeho nejvíce rozšířené používání byl CP1610 verze v Intellivision herní konzole . Vzhledem k marketingové filozofii společnosti General Instrument vyhledávat zákazníky pouze s velmi velkými objednávkami a ignorovat menší zákazníky tento systém viděl jen malé využití. Rovněž neusilovali o uspořádání druhého zdroje , což bylo v počátcích návrhů mikroprocesorů požadavkem většiny potenciálních zákazníků.

Popis

Fyzická implementace

Pinový výstup CP1600

CP1600 byl realizován v NMOS a požadované +12, 5, -3 klínových zdroje; většina interní logiky byla implementována v TTL (5 V). Každý cyklus mikrostatu nebo procesoru používá čtyři interní časové sloty generované dvěma nepřekrývajícími se hodinami. Dvoufázové hodiny 3,3 MHz produkují mikrocyklus 600 nanosekund. Dvoufázové hodiny 5 MHz produkují 400 nanosekundový mikrocyklus. Vzhledem k energetickým požadavkům hodinových signálů musely být tyto generovány pomocí externích obvodů, jak bylo v této éře návrhu mikroprocesorů běžné.

Aby bylo možné vměstnat 16bitový procesor do 40pinového čipového designu DIP (Dual In -Line Package ), CP1600 multiplexoval své datové a adresové piny. To umožnilo použít sadu 16 pinů jak pro výběr adresy, tak pro čtení a zápis dat, ale k tomu byly zapotřebí dva cykly sběrnice. To také komplikovalo celkové rozložení stroje, protože na paměťové sběrnici byly vyžadovány vyrovnávací paměti pro zablokování adresy, zatímco procesor přepnul piny do datového režimu. Rozhraní systému bylo také složité a vyžadují tři kolíky, BDIR, BC1a BC2, které musely být dekódované pochopit, v jakém stavu paměťové sběrnice byl.

Poměrně neobvyklou vlastností CP1600 byl koncept „externí větve“. To bylo implementováno jako čtyři piny na čipu, EBCA0skrz EBCA3které držely spodní čtyři bity BEXTinstrukčního operačního kódu. Když je tato instrukce provedena, piny se aktivují a slouží k označení, který z až šestnácti externích systémů by měl být vzorkován a vrácen na EBCIkolík. Logická hodnota tohoto pinu, vysoká nebo nízká, pak indikovala, zda má být větev přijata. To lze použít například k testování, zda externí zařízení mělo vstupní data, která je třeba zpracovat.

Celkově implementace systému pomocí CP1600 často vyžadovala další podpůrné čipy a logiku. To zahrnovalo systém pro multiplexování šestnácti signálů na jeden pin, pokud bylo použito externí větvení, a převodník tří bitů na osm řádků, aby se zabránilo dekódování signálů stavu sběrnice ve vnějších částech.

Instrukční sada a registry

Ze 16 bitů dostupných v instrukčním operačním kódu použil CP1600 pouze 10. Zbývajících 6 bitů bylo označeno jako „Rezervováno pro budoucí rozšíření“. Zdá se, že dalších 6 bitů bylo zamýšleno pro použití s ​​koprocesory, které prosazovaly linii PCIT, která zastavovala CPU, dokud nebyla uvolněna. Počáteční dokumentace ukazuje dva plánované čipy v sérii, 1616, který přidal "Extended Instruction Set", a 1618 "Priority Expander".

Systém obsahoval 87 základních pokynů. Pokyny mohou mít jedno až tři 16bitová slova v závislosti na použitém formátu adresování. CP1600 nepodporoval nepřímé adresování paměti (offsety) a smyčka byla implementována pomocí vyhrazeného sčítače, který prováděl jednokruhové změny adres v paměti. Aritmetickou logickou jednotku (ALU) byl 16-bit široký a mohl přidat dvě vnitřní registry 16bitové do 2,4 mikrosekund, a paměť registrovat přidat dvě 16-bitová čísla 3,2 mikrosekund.

Stejně jako PDP-11, CP1600 používal osm 16bitových „obecných“ procesorových registrů , přestože nebyly skutečně obecné jako v moderních provedeních. Pouze R0 měl skutečně obecný účel a byl popsán jako „primární akumulátor“. R1 až R3 byly čítače dat, obecně používané pro adresování založené na registrech („implikované adresování“). R4 a R5 se automaticky zvyšovaly po přístupu, což je učinilo užitečné pro opakování sbírek dat.

R6 byl ukazatel zásobníku , R7 čítač programu. Protože oba tyto registry byly pro programátora viditelné, mohly být použity mimo jiné k implementaci více zásobníků nebo k podpoře složitějšího větvení. Neexistovaly žádné implicitní pokyny k zásobníku; když byl R6 použit v operaci „čtení“, snížil adresu a poté vrátil data, na která se mířilo, simulující a POP, a když byla použita v „zápisu“, došlo by k dodatečnému přírůstku (jako R4/R5) a zápisu, jako a PUSH.

I/O

Jak bylo v té době běžné, CP1600 používal paměťově mapované I/O , na rozdíl od samostatných I/O pinů, jak je vidět na systémech Intel . Použití multiplexované sběrnice a stavu vícestavové sběrnice ztěžovalo implementaci I/O obtížněji, než by tomu bylo normálně u systémů mapovaných na paměti. To znamenalo, že implementace musely používat západky nebo vyrovnávací paměti, aby mohly komunikovat s CPU, protože změnily sběrnici z indikace adresy na data. To negativně ovlivnilo výkon I/O a zvýšilo složitost I/O zařízení.

K řešení tohoto problému GI dodala sérii 164x vyhrazených I/O čipů, které implementovaly požadovanou logiku sběrnice. Patří sem například ovladač klávesnice 1641, ovladač kazetové pásky 1643 a ovládání displeje 1647. Nejznámější z nich je 1640 „Programmable Interface Controller“ nebo PIC, který byl navržen tak, aby fungoval ve shodě s CP1600 jako kanálový řadič . Stejně jako u ostatních čipů řady 1640, PIC interně dekódoval logiku sběrnice, ale také přidal velmi jednoduchý procesor, který mohl spouštět vlastní programy pro provádění I/O a přímého přístupu do paměti . Například je možné zaslat instrukci PIC na disketovou kartu, aby přečetla data z daného sektoru na disku. PIC by pak přečetl data do své vlastní interní vyrovnávací paměti, sledoval nevyužitý čas sběrnice, když by stavové piny byly všechny nulové, a pak odeslal data do hlavní paměti.

General Instrument poskytoval cross-assemblery a simulátory/debuggery kompatibilní s 16bitovými nebo většími minipočítači . Společnost GI také v GIC1600 poskytla samostatný mikropočítačový systém založený na CP1600.

Využití

CP1610, používaný v Intellivision , je kompatibilním členem rodiny mikroprocesorů 1600. Používá 2 MHz dvoufázové hodiny produkující 1 mikrosekundový cyklus procesoru. CP1610 v NTSC Intellivisions používá dvoufázové hodiny 1,7897725 MHz. Ačkoli uživatelé CP1600 v tradiční počítačové roli byli poměrně vzácní, bylo od roku 1980 vyrobeno přes 3 miliony Intellivizí až do pádu videohry v roce 1983, který v roce 1984 vedl k uzavření výrobních linek Intellivision.

Výroba CP1600 skončila v roce 1985, kdy General Instrument vyčlenila svou divizi mikroelektroniky a vytvořila technologii Microchip . V tomto okamžiku byla k dispozici řada 32bitových návrhů, jako je MC68000, které omezovaly zájem o 16bitové provedení, jako je CP1600, a jejich hlavní stávající zákazník, společnost Intellivision, se již nevyráběla. U mnoha dalších produktů bylo současně ukončeno používání a jejich primárním produktem byl PIC.

Reference

Bibliografie

externí odkazy