El MCP-1600 es un microprocesador multichip de 16 bits introducido por Western Digital en 1975 y producido hasta principios de los años 1980. [2] [3] Utilizado en Pascal MicroEngine , el procesador WD16 en Alpha Microsystems AM-100 y la microcomputadora DEC LSI-11 , [4] una implementación compacta y de costo reducido del DEC PDP-11 .
Hay tres tipos de chips en el conjunto de chips:
Los chips utilizan un reloj de cuatro fases de 3,3 MHz y tres voltajes de fuente de alimentación (+5 V, +12 V y -5 V), según lo requiere el proceso de puerta de silicio de canal N disponible en ese momento en Western Digital. Internamente, el MCP-1600 es un procesador de 8 bits (relativamente rápido) que puede microprogramarse para emular una CPU de 16 bits. Todas las operaciones de bytes se ejecutan en un período de reloj; las operaciones de palabras y las bifurcaciones toman dos relojes. Se admiten hasta cuatro MICROM, pero normalmente dos o tres podrían contener el microprograma necesario para un procesador. [5]
El archivo de registro consta de 26 registros de 8 bits. Diez pueden ser direccionados directamente por la microinstrucción (Rx), cuatro pueden ser direccionados directa o indirectamente (Rx/Gx) y los 12 restantes pueden ser direccionados sólo indirectamente (Gx). El direccionamiento indirecto se realiza a través de un registro G de 3 bits que generalmente se carga con el campo de registro de la instrucción PDP-11. [1]
La característica más importante del MCP-1600 es su matriz de traducción programable (PTA). El PTA sirve para generar nuevas direcciones de búsqueda de microinstrucciones en función de varios parámetros. Estos parámetros son los que normalmente se consideran durante la decodificación de una macroinstrucción. La PTA fue diseñada específicamente para eliminar la mayor parte de los gastos generales de la traducción de macroinstrucciones. Básicamente, un código de operación de macroinstrucción se traduce rápidamente en una dirección que se carga en el contador de ubicación, creando un salto al microcódigo apropiado para manejar la macroinstrucción. [5]
John Wallace fue el director de proyecto y diseñó el 1621, Mike Briner diseñó el 1611 y más tarde se convirtió en vicepresidente senior de Silicon Storage Technology . Bill Pohlman fue el director de ingeniería de diseño y posteriormente fue director de proyecto para el procesador Intel 8086 .
En marzo de 1976, se anunció que National Semiconductor adquiriría como segunda fuente el MCP-1600. No está claro si alguno fue producido por National. [6]
En la Unión Soviética se fabricó un clon del CP1611 y CP1621 con la designación KR581IK1 y KR581IK2 ( en ruso : КР581ИК1 y КР581ИК2 ). [7] La serie soviética 581 también incluía a otros miembros de la familia MCP-1600. [8]
cp16sim es un simulador MCP-1600 de código abierto. Escrito en C , emula el procesador MCP-1600 y su PTA ejecutando el código que se encuentra en el procesador Pascal Microengine WD9000. A partir de 2016 está inacabado. "Funciona lo suficientemente bien como para ejecutar las primeras docenas de instrucciones de código p de la ROM de arranque ACD PDQ-3 antes de adentrarse en la maleza". Se publica bajo la Licencia Pública General GNU versión 3. [9]