CP1600 er en 16-bit mikroprocessor , skabt i midten af 1970'erne i fællesskab af General Instrument og Honeywell . CP1600-mikroprocessoren blev designet baseret på PDP-11- minicomputerarkitekturen , også brugt på basis af Western Digitals MCP-1600- mikroprocessor og har indflydelse på mange andre designs. Honeywell har brugt CP1600 i en række computere til processtyring og sammenkoblede systemer, men CP1610- versionen , der bruges i Intellivision -spillekonsollen, har været den mest udbredte .
CP1600 -kommandosystemet gentager næsten fuldstændigt PDP-11-kommandosystemet, men er ikke kompatibelt med det på niveau med operationskoder og har forskelle i adresseringstyper. Kun de nederste 10 bit bruges til opkoder, de øverste 6 er markeret som "Reserveret til yderligere udvidelse". På den anden side, ved design af systemer, gjorde dette det muligt at reducere mængden af ROM. Formentlig var de reserverede 6 bit beregnet til brug af coprocessorer. Længden af kommandoer er fra et til tre maskinord, afhængigt af typen af adressering. I modsætning til andre processorer med samme arkitektur understøtter CP1600 ikke hukommelse-til-hukommelse dataoverførsler ved hjælp af indirekte adressering (offsets), derudover bruger betingede springinstruktioner 16-bit offsets i stedet for 8-bit, hvilket tillader, i i tilfælde af lange spring, undgå at bruge yderligere ubetingede springkommandoer.
Ligesom PDP-11 bruger CP1600 otte 16-bit registre til generelle formål , selvom disse registre ikke er fuldstændig ækvivalente i instruktionssættet. Register R0 kan ikke bruges til indirekte hukommelsesadgang. Registrene R1 - R3 kan bruges til indirekte hukommelsesadgang, men understøtter ikke automatisk inkrementering. Registrene R4 og R5 øges altid automatisk efter en indirekte hukommelsesadgang [1] .
Register R6 bruges som stak-pointer, register R7 er programtæller. Fordi begge registre er programmatisk tilgængelige for programmøren, er det muligt at implementere flere stakke eller kompleks hoplogik. Der er ingen eksplicitte instruktioner til at få adgang til stakken, R6-registret nedsættes automatisk, før det bruges til indirekte at læse data fra hukommelsen, hvilket simulerer en instruktion POP, og automatisk inkrementerer efter brug af det til indirekte at skrive data til hukommelsen, hvilket simulerer en instruktion PUSH.
Ligesom PDP-11 er en af kendetegnene ved CP1600 understøttelse af hukommelse I/O register mapping , hvilket betyder evnen til at styre enheder ved at skrive til specifikke hukommelsesadresser. I CP1600, i modsætning til Unibus brugt i PDP-11, blev adresse- og databusser multiplekset for at reducere antallet af ben og passe processoren ind i en 40-bens DIP - pakke. Denne forskel betød, at det i praktiske anvendelser af processoren var nødvendigt at bruge låse eller buffere til at fikse adressen og dataene [1] . Dette begrænsede I/O-hastigheden, så General Instrument udviklede en serie "Programmerbare Interface-controllere" designet til at blive brugt sammen med CP1600 som kanalcontrollere .
CP1600-processoren blev lavet ved hjælp af N-MOS- teknologi , +12, +5, -3 V-kilder blev brugt til strømforsyning, logiske signalniveauer er kompatible med TTL . Oprindeligt frigivet ved 3,3 MHz (600 ns maskincyklustid) [2] , derefter blev frekvensen øget til 5 MHz (400 ns maskincyklustid). De nødvendige kommandoer for at udføre fra 6 til 14 maskincyklusser, som ved en frekvens på 5 MHz varierede fra 2,4 til 5,6 μs [3] . General Instruments producerede også "GIMINI"-udviklingssystemet til CP1600 [2] .
CP1610-mikroprocessoren, der bruges i Intellivision-spillekonsollen, er faktisk en langsommere version af CP1600 med nogle få forenklinger. I Intellivision-set-top-boksen kørte CP1610-mikroprocessoren ved 894 kHz for NTSC -fjernsyn eller 1 MHz for PAL / SECAM -versioner . Selvom brugere af CP1600-baserede computere var meget sjældne, blev der produceret mere end 3 millioner Intellivision-konsoller fra 1980 indtil 1983 computerspilindustriens krise , som førte til lukningen af de konsolproducerende industrier i 1984. [fire]
Produktionen af CP1600 ophørte i 1985, da General Instruments udskilte sin mikroelektronikdivision for at danne Microchip Technology . På dette tidspunkt var en række 32-bit udviklinger allerede tilgængelige, såsom Motorola 680x0 , som reducerede interessen for 16-bit systemer såsom CP1600, og hovedforbrugeren, Intellivision, ophørte med produktionen. Samtidig blev understøttelsen af mange andre produkter droppet, og PIC -mikrocontrollere blev det nye firmas hovedprodukt .