RCA (CDP) 1802 (también conocido como RCA COSMAC , COSMAC 1802 ) es un microprocesador de 8 bits introducido por Radio Corporation of America (RCA) en la primavera de 1976 . Actualmente continúa siendo producido por Intersil Corporation . La arquitectura del procesador es bastante diferente de la mayoría de los otros procesadores de 8 bits.
A menudo mencionadas en la designación, las letras RCA en el nombre son una abreviatura del nombre del fabricante y no forman parte de su designación real CDP 1802. También se encuentra la abreviatura COSMAC ( COmplementary S ilicon M et a l- oxide C onductor ), que RCA utilizó como nombre de tecnología de fabricación de chips , más tarde conocida como CMOS . El procesador 1802 es uno de los primeros en utilizar esta tecnología.
El diseñador principal del procesador fue Joe Weisbecker y el equipo de desarrollo estuvo dirigido por Jerry Herzog.
El procesador es una implementación de un solo chip del anterior procesador de doble chip RCA 1801 (presentado en 1975), con varias adiciones, pero conserva la compatibilidad con versiones anteriores . El diseño CMOS estático , que no tiene una velocidad de reloj mínima , permite que el procesador funcione a frecuencias muy bajas con un consumo de energía muy bajo . El bus de direcciones externo es de 8 bits, se utiliza multiplexación (los bytes alto y bajo de la dirección se dan a su vez al bus externo).
Comparado con la mayoría de los otros procesadores de una clase similar, el RCA 1802 tuvo un rendimiento bajo. Un ciclo de máquina se ejecuta en ocho ciclos. La mayoría de las instrucciones consisten en dos ciclos de máquina. A una velocidad de reloj de 1,7 MHz (1.700.000 Hz), la velocidad media será de unas 106.000 instrucciones por segundo.
Desde el lanzamiento del CDP 1802, también se ha producido una versión de silicio sobre zafiro (SOS), que es altamente resistente a la radiación y las descargas electrostáticas . Junto con el bajo consumo de energía, estas propiedades hicieron que el procesador fuera muy adecuado para su uso en naves espaciales . En este punto, existían muy pocos procesadores resistentes a la radiación .
El procesador 1802 se usó en la nave espacial Galileo [1] y también se usó ampliamente en satélites terrestres artificiales . Se cree erróneamente que el procesador 1802 se usó en las naves espaciales Voyager 1 y Viking . De hecho, en el momento del desarrollo de estas naves espaciales (1970-1974), este procesador no estaba disponible y las computadoras se fabricaban sobre microcircuitos CMOS de pequeño y mediano grado de integración [2] . Todos los procesadores utilizados en el espacio fueron lanzados con aceptación militar y operaron en el rango de temperatura de -55 a +125 °C.
Se desarrollaron varias de las primeras microcomputadoras basadas en el procesador 1802 , incluidas la Comx-35 , COSMAC ELF , COSMAC VIP , ELF II , SuperELF , la finlandesa Telmac 1800 y Oscom Nano , la yugoslava Pecom 32 y 64 , y la consola de juegos RCA Studio II . .
El primer lenguaje de programación de alto nivel disponible en 1802 fue Forth , Inc. en 1976.
Una característica importante del procesador es el archivo de registro , que consta de dieciséis registros de 16 bits . Cualquiera de ellos se puede utilizar como puntero de instrucción actual (seleccionado por la instrucción SEP) o registro de índice (seleccionado por la instrucción SEX). El registro R0 tiene un propósito especial y almacena la dirección utilizada por el controlador de acceso directo a memoria simple incorporado .
El procesador no tiene las instrucciones habituales de llamada y retorno de una subrutina (CALL y RET) y soporte de pila . La capacidad de colocar el puntero de instrucción actual en cualquier registro permite formas inusuales de llamar a las subrutinas, sin embargo, en su mayoría son adecuadas para programas pequeños. Varias de las subrutinas utilizadas con mayor frecuencia se pueden ubicar en varios registros, y las subrutinas se pueden llamar y devolver mediante la instrucción SEP. Al ejecutar la instrucción SEP, la dirección en el registro utilizado actualmente se incrementa antes de seleccionar un nuevo registro, lo que facilita la implementación de un retorno a la ubicación deseada. También se puede configurar para llamar a dos o más subrutinas en un modo cíclico. Esto se usaba a menudo en computadoras de aficionados al mostrar gráficos, para duplicar líneas cuatro veces. No es difícil llamar a subrutinas en direcciones calculadas, ya que todas las instrucciones CALL utilizan un modelo de direccionamiento indexado.
Además de los comandos de salto condicional , también hay comandos de salto condicional para el siguiente comando.
El procesador tiene cinco líneas de E/S dedicadas. Una de las líneas, Q, es un puerto de salida, su estado lo establecen los comandos SEQ y REQ. Las cuatro líneas restantes son puertos de entrada. Su estado se muestra mediante las banderas EF1, EF2, EF3, EF4, que pueden ser consultadas por ocho instrucciones especiales de salto condicional. Estas líneas de E/S se utilizaron mucho en sistemas basados en procesadores. En particular, en las computadoras de aficionados, la línea Q podría controlar simultáneamente el indicador LED de estado, la salida de la interfaz de la grabadora , la interfaz RS-232 y el altavoz (mientras que, en este caso, el altavoz reproduce sonido durante la transferencia de datos).
Se lanzaron dos modificaciones del procesador, que tenían diferentes velocidades máximas de reloj: 1802A (3,2 MHz) y 1802B (5 MHz). Se utilizó un paquete DIP40 .
RCA también lanzó los microcontroladores CDP1804, CDP1805 y CDP1806 basados en el núcleo 1802. Tienen 64 bytes de RAM integrada , un generador de reloj , un temporizador de 8 bits y 32 instrucciones adicionales, incluidos comandos de llamada y retorno de subrutinas. El CDP1804 también tiene una ROM en chip de 2 KB .
Intersil lanzó una serie de modificaciones 1802A y 1802B en paquetes DIP de plástico y cerámica, así como en un paquete PLCC .