General Instrument CP1600
The CP1600 is a 16-bit microprocessor created in a partnership between General Instrument and Honeywell in 1975.[1] The CP1600's design was based on the PDP-11, whose design also formed the basis of the Western Digital MCP-1600 and influenced others. Honeywell used the CP1600 in a number of process control computers and related systems, but its most widespread use was the CP1610 version in the Intellivision video game console.
Description
The CP1600's instruction set closely followed the PDP-11's, but was not entirely compatible. The instruction opcode was only 10 bits, with the remaining 6 marked "Reserved for future expansion". It appears that the extra 6 bits were intended to be used with co-processors, asserting the PCIT line which stalled the CPU until released. Instructions might be one to three words long depending on the addressing format being used. Unlike similar CPUs[specify], the CP1600 did not support memory-memory indirect addressing (offsets), and looping was implemented in a different way which allowed it to run much faster[specify].
Like the PDP-11, the CP1600 used eight 16-bit "general purpose" processor registers, although they were not truly general purpose as in modern designs. Only R0 was truly general purpose and has been described as "the primary accumulator".[2] R1 through R3 were data counters, generally used for register-based addressing ("implied addressing"). R4 and R5 auto-incremented after being accessed, which made them useful for looping over collections of data.
R6 was the stack pointer, R7 the program counter. Since both of these registers were visible to the programmer, they could be used to implement multiple stacks, or support more complex branching, among other things. There were no implicit stack instructions; when R6 was used in a "read" operation it decremented the address and then returned the data being pointed at, simulating a POP
, and when it was used in a "write" it would post-increment (like R4/R5) and write, like a PUSH
.
Like the PDP-11, one of the CP1600's notable features was the use of memory-mapped I/O, meaning that devices were controlled by writing to certain locations in memory. Unlike the PDP-11's Unibus, however, the CP1600 multiplexed its data and address lines in order to reduce pin count and fit into a 40-pin DIP. This change meant that implementations had to use latches or buffers to be able to interface with the CPU as it changed the bus from indicating an address to data.[2] This negatively affected I/O performance, and to address this problem GI designed the "Programmable Interface Controller" which was designed to work in concert with the CP1600 as a channel controller.
The CP1600 was implemented in nMOS and required +12, +5, -3 V power supplies; most internal logic was implemented in TTL (5 V). Each micro state or processor cycle uses four internal time slots generated by two non-overlapping clocks. A 3.3 MHz two-phase clock produces a 600 nanosecond microcycle. A 5 MHz two-phase clock produces a 400 nanosecond microcycle. It is able to add two 16-bit internal registers in 2.4 microseconds, and memory to register add two 16-bit numbers in 3.2 microseconds.[3]
General Instrument provided cross-assemblers and simulators/debuggers compatible with 16-bit or larger minicomputers.[4] GI also provided a standalone CP1600 based microcomputer system in the GIC1600.[5]
Uses
The CP1610, used in the Intellivision, is a compatible member of the 1600 microprocessor family. It uses a 2 MHz two-phase clock producing a 1 microsecond processor cycle.[6] The CP1610 in the NTSC Intellivisions uses a 1.7897725 MHz two-phase clock. Although users of the CP1600 in the traditional computer role were relatively rare, over 3 million Intellivisions were produced from 1980 until the video game crash of 1983 led to the closing of the Intellivision production lines in 1984.[7]
Production of the CP1600 ended in 1985 when General Instrument spun off its microelectronics division to create Microchip Technology. By this point a number of 32-bit designs like the MC68000 were available that limited interest in a 16-bit design like the CP1600, and their main existing customer, the Intellivision, was no longer in production. Many other products were also end-of-lifed at the same time, and their primary product was the PIC.
References
- ^ Belzer, Jack; Holzman, Albert G.; Kent, Allen (1978). Encyclopedia of Computer Science and Technology: Volume 10 - Linear and Matrix Algebra to Microorganisms: Computer-Assisted Identification. CRC Press. p. 402. ISBN 9780824722609.
- ^ a b Lowell Turner, "General Instruments CP1600", 10 July 2001
- ^ http://www.bitsavers.org/components/gi/CP1600/CP-1600_Microprocessor_Users_Manual_May75.pdf
- ^ http://www.bitsavers.org/components/gi/CP1600/CP-1600_Cross_Assembler_Simulator_Users_Manual_Nov74.pdf
- ^ http://www.bitsavers.org/components/gi/CP1600/GIC1600_Microcomputer_Users_Manuals_Sep75.pdf
- ^ http://intellivisionbrasil.com/docs/manuais-hardware/Service_GeneralInstrument_CP1610.pdf
- ^ "Mattel Intellivision - 1980-1984". ClassicGaming. IGN. Archived from the original on 2008-06-23. Retrieved 2008-05-16.
External links
- "CP1610" at the Intellivision Wiki