x
1

CDP1802



El RCA CDP1802 es un microprocesador de 8 bits LSI (Large Scale Integration) en formato DIP 40 fabricado en tecnología CMOS implementado utilizando la arquitectura COSMAC (Complementary Symmetry Monolithic Array Computer)[1]​ lanzado por RCA a principios de 1976, siendo el primer microprocesador de la compañía en un solo chip.[2]​ Es la segunda versión del COSMAC 1801 primer microprocesador CMOS, que estaba formado por dos circuitos, reunidos en uno solo en el 1802.[3]​ Los aficionados por lo general se refieren a el simplemente como "el 1802". En la actualidad sigue siendo fabricado por Intersil Corporation como un microprocesador de alta fiabilidad. El 1802 tiene una arquitectura diferente de la mayoría de los otros microprocesadores de 8 bits.

En 1970 y 1971, Joseph Weisbecker desarrolló una nueva arquitectura de computadoras de 8 bits.[4]​ RCA publicó el trabajo de Weisbecker como el COSMAC 1801U y 1801R (también conocido como TA6889/TA6890 y TC 1084/TC 1085) a principios de 1975, utilizando su proceso CMOS (llamado COS/MOS, acrónimo de Complementary Silicon/Metal-oxide Semiconductor). En 1976, un equipo liderado por Jerry Herzog integró los dos chips en uno, el 1802.[2][5][6]

Los sucesores del 1802 son el CDP1804, el CDP1805 y el CDP1806, que tienen un conjunto de instrucciones extendido, otras características mejoradas (como RAM y ROM incorporadas y un temporizador incorporado), con algunas versiones funcionando a velocidades de reloj más rápidas, aunque no con una diferencia de velocidad significativa. Algunas características también se pierden, como la funcionalidad de cargador de arranque automático DMA. También hay algunos cambios menores en la función de los pines.

El RCA 1802 tiene un diseño CMOS de núcleo estático sin una frecuencia de reloj mínima, de modo que puede ejecutarse a velocidades muy bajas y baja potencia, incluyendo una frecuencia de reloj de cero para suspender el microprocesador sin afectar su funcionamiento. Tiene dos buses separados de 8 pines: un bus de datos bidireccional de 8 bits y un bus de direcciones multiplexando la parte alta y baja de las direcciones en dos ciclos, al contrario de lo normal, que es multiplexar las direcciones y los datos.

El 1802 tiene un puerto de salida (Q) de un solo bit, programable y comprobable, y cuatro pines de entrada que son probados directamente por una rama de su conjunto de instrucciones (EF1-EF4).

Puede direccionar 64K de memoria, RAM y ROM en cualquier combinación. Mantiene un espacio separado para periféricos que controla mediante cuatro líneas N, que toman un valor 1 a 7 cuando se direcciona un periférico. Permite la transmisión de datos entre memoria y periféricos directamente, sin pasar por el acumulador. Contiene un DMA rudimentario, utilizando R2 como puntero.

Su modo entrada/Salida (I/O) es flexible y programable, y tiene un reloj monofásico con un oscilador integrado. Su conjunto de registros consta de dieciséis registros de 16 bits. El contador de programa (PC) puede residir en cualquiera de estos, y se puede configurar mediante la instrucción SEP Rn, proporcionando una forma sencilla de implementar múltiples PCs y realizar llamadas de subrutina. (Vea las llamadas de subrutina más abajo). De forma similar, los punteros y el direccionamiento indirecto usan el registro X (instrucción SEX Rn), o los 16 registros pueden usarse como registros de propósito general. Las interrupciones DMA In y Out utilizan registros específicos.

El 1802 consta de un array de 16 registros de 16 bits, R0 a R15. Cualquiera de estos registros se puede usar como contador de programa, punteros de datos, punteros de pilas o simplemente para guardar datos. Tras el reset, R0 es el contador de programa. Se puede mover la información de los registros al acumulador y viceversa, la parte alta (R0.1) y la parte baja (R0.0) separadamente. Además de los registros, el 1802 contiene:

La tecnología del 1802 lo hizo atractivo para aplicaciones donde el bajo consumo era prioritario: equipos portátiles y militares. Para este ámbito, así como el aeroespacial existen versiones "endurecidas" (Hardened) frente a radiación y en silicio sobre zafiro (SOS). Huges lo fabricó como segunda fuente y en 2006 Harris lo mantiene en su catálogo, tanto comercial como hardened.

Además de la tecnología C2L CMOS de "silicio en masa", el 1802 también estaba disponible fabricado en la tecnología Silicon on Sapphire (SOS) de proceso de semiconductores, que le da un grado de resistencia a radiación y a la descarga electrostática (ESD). Junto con sus capacidades extremas de baja potencia, esto hace que el chip sea adecuado en aplicaciones espaciales y militares (también, en el momento en que se introdujo el 1802, muy pocos, si es que los había, microprocesadores resistentes a la radiación estaban disponibles en el mercado).[7][8]​ La versión resistente a la radiación del 1802 fue fabricada por Sandia National Laboratories bajo acuerdo con RCA.[9]

El 1802 fue utilizado en muchas naves espaciales y programas de ciencia espacial, experimentos, proyectos y módulos.

Un número de primeros microcomputadores se basaron en el 1802, incluyendo el COSMAC ELF (1976), Netronics ELF II, Quest SuperELF, COSMAC VIP, Comx-35, los finlandeses Telmac 1800 y Oscom Nano, los yugoslavos Pecom 32 y 64, y los sistemas Cybervision vendidos por Montgomery Ward a finales de los años 70,[29]​ así como la videoconsola RCA Studio II (una de las primeras consolas en utilizar gráficos en mapa de bits). El sistema de entrenador de computadoras individuales Edukit en una sola placa (SBC - single board computer), similar a un COSMAC Elf ampliado, fue ofrecido por Modus Systems Ltd. en Inglaterra a principios de los años ochenta.[30]​ Infinite Incorporated produjo un ordenador con bus S-100 para ampliación basado en el 1802 como equipo de entrenamiento a finales de los años 70 llamado el UC1800, disponible ensamblado o en forma del kit.[31][32]

Como parte del trabajo de los aficionados a la Retroinformática, otras computadoras se han construido más recientemente (después de 2000), incluyendo el kit de microordenador en tarjeta de socio que se ajusta en una lata Altoids[33]​ y el Spare Time Gizmos Elf 2000 (Elf 2K),[34]​ entre otros. Consulte Emuladores y Simuladores para otros sistemas.

El 1802 también se usó en una variedad de otros productos y sistemas, algunos basados en la ciencia, y otros comerciales.

El primer lenguaje de alto nivel disponible para el 1802 fue Forth, proporcionado por Forth, Inc. en 1976. Otros lenguajes de programación disponibles, tanto intérpretes como compiladores, son CHIP-8 (y variantes), 8th (una versión de Forth creada por Lee Hart),[50]Tiny BASIC de Tom Pittman,[51]C, varios ensambladores y ensambladores cruzados, entre otros. Otros lenguajes especiales fueron usados por varias agencias federales, como la NASA y sus instalaciones, incluyendo el Centro Espacial Lyndon B. Johnson, AMES, el Centro de vuelo espacial Goddard, Langley, Marshall y el Laboratorio de Propulsión a Reacción (JPL), que incluyeron el compilador cruzado HAL/S,[52]STOIC, un lenguaje parecido al Forth,[17]​ y otros.

El chip 1802 y los ordenadores que utilizan el microprocesador han sido emulados y simulados en hardware y/o software por aficionados. Un diseño está en VHDL para un FPGA.[53]​ Se creó un clon del COSMAC Elf de plena velocidad y bus exacto sin un chip de microprocesador CDP1802 ni el chip de vídeo CDP1861 utilizando microcontroladores PIC.[54]​ Un simulador en línea del COSMAC Elf (mejorado) escrito en JavaScript se ejecuta en el navegador del usuario sin necesidad de descargar.[55]

En los primeros microcomputadores basados en 1802, el chip de vídeo, CDP1861 (para el formato de vídeo NTSC, CDP1864 para PAL ), utilizó el controlador DMA incorporado para mostrar gráficos bitmap en blanco y negro en pantallas estándar de TV. El 1861 también fue conocido como el sistema de gráficos Pixie, pantalla, chip y generador de vídeo,[56]​ sobre todo cuando se utiliza en el microordenador COSMAC ELF. Otras nombres de chips conocidos para el 1861 son TA10171, TA10171V1 y TA10171X, que fueron designaciones tempranas para "muestras de ingeniería de pre-calificación" y "números de parte preliminares", aunque se han encontrado en microordenadores de producción RCA Studio II y Netronics Elfs.[57]

El chip 1861 podría mostrar 64 pixels horizontalmente y 128 píxeles verticalmente, aunque al volver a cargar el registro R0 DMA a través del programa de controlador de software 1802 requerido y la rutina de servicio de interrupción, la resolución podría reducirse a 64 × 64 o 64 × 32 para usar menos memoria o para hacer píxeles cuadrados. 64 × 32 píxeles cuadrados creados y 256 bytes de memoria (2K bits). Esta fue la resolución habitual para el sistema de programación de juegos Chip-8. Dado que el búfer de trama de gráficos de vídeo era a menudo similar o igual en tamaño al tamaño de la memoria, no era inusual mostrar su programa/datos en la pantalla que le permite ver a la computadora pensar (es decir, procesar sus datos). Los programas que corrieron amok y se sobrescribieron accidentalmente podrían ser espectaculares.

Aunque las versiones más rápidas de 1802 podían operar a 4-5 MHz (a 5 V, era más rápida (6,4 MHz) a 10 V), normalmente se operaba a 3,58 MHz dividido por 2 (1,76 MHz) para satisfacer los requisitos de la norma 1861 que dio una velocidad de poco más de 100.000 instrucciones por segundo.

El circuito integrado CDP1862 Color Generator Circuit IC, un chip auxiliar del 1861, podría utilizarse para generar gráficos en color. Algunos sistemas informáticos, como el Pecom 64, utilizaban el VIS (Video Interface System), que consistía en los chips auxiliares CDP1869 y CDP1870, para gráficos de color de mayor resolución.

Este ejemplo de fragmento de código es una rutina de diagnóstico que prueba las operaciones ALU (Arithmetic and Logic Unit).

Nota: La rutina anterior supone que el microprocesador CDP1802 está en un estado de reinicio inicial (o que se ha configurado como tal antes de ejecutar este código). Por lo tanto, el contador de programa (PC) y el indicador de registro indirecto X se ajustan a un registro de 16 bits R0. Es por eso que se puede generar un valor inmediato, como en el ejemplo 'OUT 4,00', porque PC y X apuntan a R0. El PC se incrementa después de que el byte de instrucción de opcode se recupera de la memoria, por lo que apunta a la siguiente dirección cuando se ejecuta OUT 4. Por lo tanto, emite el valor en memoria apuntado por RX = R0, que es el siguiente byte inmediato. La instrucción OUT también incrementa el registro X, que es R0, que es también el PC, por lo que emite el valor inmediato después de la salida y continúa la ejecución del programa en la siguiente dirección de instrucción después del valor inmediato. Es por eso que ves la rutina establecida X (SEX) para registrar R6 y R0 según sea necesario. También tenga en cuenta que, aunque el código de operación OUT incrementa el registro RX, para producir fácilmente una sección de memoria ('buffer'), INP no lo hace. Almacena el valor en la dirección señalada por RX y en el acumulador de bytes de datos de 8 bits, pero RX no se modifica.

La rutina también supone que OUT 4 mostrará el valor en el LED de 8 bits del sistema de la CPU o en la pantalla hexadecimal de 2 dígitos, e IN 4 obtendrá el valor de los ocho conmutadores (o posiblemente el teclado hexadecimal). El código de operación BN4 (bucle; * = 'esta dirección'), "rama si la línea EF4 de entrada de un solo bit es lo", se usa para probar si se pulsa el botón momentáneo de "Entrada". El bucle opcode B4 ('if hi') espera que se suelte el botón. SEQ y REQ activan y desactivan la línea Q única, que suele estar conectada a un LED.

El 1802 es una "máquina de bytes", pero tiene 16 registros de 16 bits, R0-RF (a veces denominado 0-F sin el prefijo 'R'). Para hacer frente a los datos de registro de 16 bits, el programador debe obtener y poner los valores Hi o Lo de los registros utilizando el acumulador D como intermediario. Estos bytes altos y bajos de los registros a veces se denominan Rn.0 (lo) y Rn.1 (hi). Las ramas cortas son opcodes de 2 bytes con direccionamiento de página absoluta y un límite de dirección de 256 bytes. Las ramas largas son opcodes de 3 bytes con ramificación de direcciones de 16 bits.

Esta información debe hacer que la rutina sea más comprensible para cualquier programador informático que esté lo suficientemente informado como para leer "pseudo-código" y que esté al menos familiarizado con el ensamblaje y la programación del lenguaje de máquina.



Escribe un comentario o lo que quieras sobre CDP1802 (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!