The MCP-1600 is a multi-chip 16-bit microprocessor introduced by Western Digital in 1975 and produced through the early 1980s.[2][3] Used in the Pascal MicroEngine, the WD16 processor in the Alpha Microsystems AM-100, and the DEC LSI-11 microcomputer,[4] a cost-reduced and compact implementation of the DEC PDP-11.
General information | |
---|---|
Launched | 1975 |
Common manufacturer | |
Performance | |
Max. CPU clock rate | to 3.3 MHz |
Data width | 8 (microdata), 18 (microcode), 16 (macrodata) |
Address width | 11 (microcode), 16 (macrodata) |
Architecture and classification | |
Number of instructions | 98 |
Physical specifications | |
Package |
|
History | |
Successor | none |
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | (bit position) |
Register file |
LSI-11 use[1] | |||||||||||||||
R3 | R2 | PSW | ||||||||||||||
R5 | R4 | Destination | ||||||||||||||
R7 | R6 | Source | ||||||||||||||
R9 | R8 | Bus address | ||||||||||||||
RB | RA | Instruction register | ||||||||||||||
RD/GD | RC/GC | R7 (PC) | ||||||||||||||
RF/GF | RE/GE | R6 (SP) | ||||||||||||||
GB | GA | R5 | ||||||||||||||
G9 | G8 | R4 | ||||||||||||||
G7 | G6 | R3 | ||||||||||||||
G5 | G4 | R2 | ||||||||||||||
G3 | G2 | R1 | ||||||||||||||
G1 | G0 | R0 | ||||||||||||||
Control registers | ||||||||||||||||
G | Register Pointer | |||||||||||||||
LC | Location Counter | |||||||||||||||
RR | Return Register | |||||||||||||||
TR1 | TR0 | Translation Register | ||||||||||||||
Status register | ||||||||||||||||
NB | ZB | C4 | C8 | N | Z | V | C | ALU status/Flags |
Description
editThere are three types of chips in the chip-set:
- CP1611 RALU - Register ALU chip
- CP1621 CON - Control chip
- CP1631 MICROM - Mask-programmed microcode ROM chip (512 – 22 bit words)
The chips use a 3.3MHz four phase clock and three power supply voltages (+5V, +12V, and -5V), as required by the N-channel silicon gate process then available at Western Digital. Internally the MCP-1600 is a (relatively fast) 8-bit processor that can be micro-programmed to emulate a 16-bit CPU. All byte operations execute in one clock period; word operations and branches take two clocks. Up to four MICROMs are supported, but usually two or three could hold the needed microprogram for a processor.[5]
The register file consists of 26 8-bit registers. Ten may be addressed directly by the microinstruction (Rx), four may be addressed either directly or indirectly (Rx/Gx), and the remaining 12 may be addressed only indirectly (Gx). Indirect addressing is via a 3-bit G register which is usually loaded with the register field of the PDP-11 instruction.[1]
The most significant feature of the MCP-1600 is its Programmable Translation Array (PTA). The PTA serves to generate new microinstruction fetch addresses as a function of several parameters. These parameters are those which are normally considered during the decode of a macroinstruction. The PTA was designed specifically to eliminate most of the overhead of macroinstruction translation. Essentially a macroinstruction opcode is quickly translated into an address that is loaded onto the Location Counter, creating a jump to the appropriate microcode to handle the macroinstruction.[5]
John Wallace was the Project Manager and designed the 1621, Mike Briner designed the 1611, and later became a Senior VP at Silicon Storage Technology. Bill Pohlman was the design engineering manager and he later was Project Manager for the Intel 8086 processor.
Microcode could be developed using a DEC LSI-11 computer with the KUV11-AA Writable Control Store (WCS) option. This option allowed programming of the internal 8-bit micromachine to create application-specific extensions to the instruction set. The WCS is a quad Q-Bus board with a ribbon cable connecting to an open MCP-1600 microcode ROM socket.[6]
In March 1976, it was announced that National Semiconductor would second-source the MCP-1600. It is unclear whether any were produced by National.[7]
A clone of the CP1611 and CP1621 was manufactured in the Soviet Union under the designation KR581IK1 and KR581IK2 (Russian: КР581ИК1 and КР581ИК2).[8] The Soviet 581 series included other members of the MCP-1600 family as well.[9]
Simulator
editcp16sim is an open source MCP-1600 simulator. Written in C, it emulates the MCP-1600 processor and its PTA executing the code found on the WD9000 Pascal Microengine processor. As of 2016 it is unfinished. "It works well enough to execute the first few dozen p-code instructions of the ACD PDQ-3 boot ROM before going into the weeds." It is released under the GNU General Public License version 3.[10]
Gallery
edit-
CP1611 RALU chip
-
CP1621 Control chip
-
CP1631 MICROM chip
References
edit- ^ a b Bell, C. Gordon (1978). Computer Engineering: A DEC View of Hardware Systems Design (4th Printing ed.). Digital Equipment Corporation. ISBN 1-483207-67-6. Retrieved 29 July 2022.
- ^ "Western Digital adds MCP-1600 Micro". Computerworld. 26 November 1975.
- ^ "Western Digital 1600". AntiqueTech. Archived from the original on 3 January 2017. Retrieved 5 January 2017.
- ^ "Western & DEC have 3-Chip uC Mini" (PDF). Microcomputer Digest. 1 (6): 7. December 1974. Retrieved 11 January 2023.
- ^ a b MCP-1600 Microprocessor Users Manual (PDF). Western Digital. 1975. Retrieved 28 April 2022.
- ^ LSI-11 WCS user's guide (PDF) (1st ed.). Digital Equipment Corporation. June 1978. Archived (PDF) from the original on 23 February 2023. Retrieved 7 January 2023.
- ^ "MCP 1600 Second Sourced" (PDF). Modern Data. 9 (3): 40. March 1976. Retrieved 7 November 2022.
- ^ "Soviet microprocessors, microcontrollers, FPU chips and their western analogs". CPU-world. Retrieved 2020-04-18.
- ^ Козак, Виктор Романович (24 May 2014). "Номенклатура интегральных микросхем — Микропроцессоры: серии 580 - 589" [Nomenclature of integrated circuits — Microprocessors: Series 580 - 589] (in Russian). Retrieved 24 March 2016.
- ^ Smith, Eric. "Microcode-Level Simulator for Western Digital MCP1600". Github. Retrieved 25 December 2022.