CP1600 är en 16-bitars mikroprocessor , skapad i mitten av 1970-talet tillsammans av General Instrument och Honeywell . CP1600-mikroprocessorn designades baserat på PDP-11- minidatorarkitekturen , som också användes på basis av Western Digitals MCP-1600- mikroprocessor och som påverkar många andra konstruktioner. Honeywell har använt CP1600 i ett antal datorer för processkontroll och sammankopplade system, men versionen CP1610 som används i Intellivision -spelkonsolen har varit den mest använda .
CP1600 -kommandosystemet upprepar nästan helt PDP-11-kommandosystemet, men är inte kompatibelt med det på nivån för operationskoder och har skillnader i adresseringstyper. Endast de nedre 10 bitarna används för opkoder, de övre 6 är markerade som "Reserverade för ytterligare expansion". Å andra sidan, när man designade system, gjorde detta det möjligt att minska mängden ROM. Förmodligen var de reserverade 6 bitarna avsedda att användas av samprocessorer. Längden på kommandon är från ett till tre maskinord, beroende på typen av adressering. Till skillnad från andra processorer med samma arkitektur stöder CP1600 inte minne-till-minne-dataöverföringar med indirekt adressering (offsets), dessutom använder villkorliga hoppinstruktioner 16-bitars offsets istället för 8-bitars, vilket tillåter, i vid långa hopp, undvik att använda ytterligare ovillkorliga hoppkommandon.
Liksom PDP-11 använder CP1600 åtta 16-bitars allmänna register , även om dessa register inte är helt ekvivalenta i instruktionsuppsättningen. Register R0 kan inte användas för indirekt minnesåtkomst. Register R1 - R3 kan användas för indirekt minnesåtkomst, men stöder inte automatisk ökning. Register R4 och R5 inkrementeras alltid automatiskt efter en indirekt minnesåtkomst [1] .
Register R6 används som stackpekare, register R7 är programräknare. Eftersom båda registren är programmatiskt tillgängliga för programmeraren är det möjligt att implementera flera stackar eller komplex hopplogik. Det finns inga explicita instruktioner för att komma åt stacken, R6-registret minskas automatiskt innan det används för att indirekt läsa data från minnet, vilket simulerar en instruktion POP, och automatiskt inkrementeras efter att ha använt det för att indirekt skriva data till minnet, vilket simulerar en instruktion PUSH.
Liksom PDP-11 är en av de utmärkande egenskaperna hos CP1600 stöd för minnes-I/O-registermappning , vilket betyder möjligheten att styra enheter genom att skriva till specifika minnesadresser. I CP1600, till skillnad från Unibus som används i PDP-11, multiplexerades adress- och databussarna för att minska antalet stift och passa in processorn i ett 40-stifts DIP - paket. Denna skillnad innebar att det i praktiska tillämpningar av processorn var nödvändigt att använda lås eller buffertar för att fixa adressen och data [1] . Detta begränsade I/O-hastigheten, så General Instrument utvecklade en serie "Programmerbara gränssnittskontroller" designade för att användas med CP1600 som kanalkontroller .
CP1600-processorn gjordes med N-MOS- teknik , +12, +5, -3 V-källor användes för strömförsörjning, logiska signalnivåer är kompatibla med TTL . Initialt släpptes vid 3,3 MHz (600 ns maskincykeltid) [2] , sedan ökades frekvensen till 5 MHz (400 ns maskincykeltid). De kommandon som krävs för att utföra från 6 till 14 maskincykler, som vid en frekvens på 5 MHz varierade från 2,4 till 5,6 μs [3] . General Instruments producerade också utvecklingssystemet "GIMINI" för CP1600 [2] .
Mikroprocessorn CP1610 som används i Intellivision-spelkonsolen är faktiskt en långsammare version av CP1600 med några förenklingar. I Intellivision set-top box körde mikroprocessorn CP1610 på 894 kHz för NTSC -tv-apparater , eller 1 MHz för PAL / SECAM- versioner . Även om användare av CP1600-baserade datorer var mycket sällsynta, producerades mer än 3 miljoner Intellivision-konsoler från 1980 fram till 1983 års datorspelsindustrikris , vilket ledde till att de konsolproducerande industrierna stängdes 1984. [fyra]
Produktionen av CP1600 upphörde 1985 när General Instruments avvecklade sin mikroelektronikdivision för att bilda Microchip Technology . Vid det här laget var ett antal 32-bitars utvecklingar redan tillgängliga, såsom Motorola 680x0 , som minskade intresset för 16-bitars system som CP1600, och huvudkonsumenten, Intellivision, upphörde med produktionen. Samtidigt upphörde stödet för många andra produkter, och PIC- mikrokontroller blev det nya företagets huvudprodukt .