RCA 1802


De Wikipedia, la enciclopedia libre
  (Redirigido desde COSMAC 1802 )
Saltar a navegación Saltar a búsqueda
Disparo de matriz RCA CDP1802

El COSMAC es una familia de microprocesadores de 8 bits introducida por RCA . Es históricamente notable como el primer microprocesador CMOS . [1] El primer modelo de producción fue el de dos chip CDP1801R y CDP1801U , que más tarde se combinaron en el chip único CDP1802 . [2] El 1802 representó la mayor parte de la producción de COSMAC, y hoy toda la línea se conoce simplemente como RCA 1802 .

El diseño del procesador tiene su historia en una computadora doméstica experimental diseñada por Joseph Weisbecker a principios de la década de 1970, construida en su casa con componentes TTL . RCA comenzó el desarrollo de la versión CMOS del diseño del procesador en 1973, probándolo en 1974 con planes para pasar a una implementación de un solo chip de inmediato. Jerry Herzog dirigió el diseño de la versión de un solo chip, que se muestreó en 1975 y entró en producción en 1976. [3] [4]

A diferencia de la mayoría de los diseños de la época, que se fabricaron utilizando el proceso NMOS , el COSMAC se implementó en forma CMOS y utilizó lógica estática . Esto permitió que se ejecutara con configuraciones de energía más bajas e incluso se detuvo por completo. RCA se refirió a su proceso CMOS como "semiconductor complementario de silicio / óxido de metal", dando lugar al acrónimo COS / MAC, [5] que luego fue respaldado por "computadora de matriz monolítica de simetría complementaria" al referirse al procesador. RCA también produjo versiones endurecidas por radiación utilizando un proceso de silicio sobre zafiro , que encontró uso en el campo aeroespacial. Estos permanecen en uso hasta el día de hoy y continúan siendo producidos por Renesas.(anteriormente Intersil ). [6]

Los sucesores del 1802 son el CDP1804, CDP1805 y CDP1806, que tienen un conjunto de instrucciones extendido, otras características mejoradas (como RAM y ROM en el chip y temporizador incorporado), con algunas versiones que se ejecutan a velocidades de reloj más rápidas, aunque no una diferencia de velocidad significativa. Algunas características también se pierden, como la funcionalidad del cargador de arranque automático DMA. También hay algunos cambios menores en la función de los pines, pero la línea continúa produciéndose en su formato original de paquete en línea dual (DIP) de 40 pines .

Historia

FRED

Joseph Weisbecker había estado fascinado durante mucho tiempo con el potencial de las computadoras en el hogar, habiendo declarado ya en 1955 que esperaba que algún día se integraran en prácticamente todos los dispositivos. La tecnología de la época hizo imposibles las pequeñas computadoras integradas, pero la introducción del circuito integrado (IC) en la década de 1960 cambió las cosas drásticamente. En 1974 describió las posibilidades en un artículo de IEEE Computer:

Durante 20 años, el hardware de las computadoras se ha vuelto cada vez más complejo, los lenguajes más tortuosos y los sistemas operativos menos eficientes. Ahora, las microcomputadoras nos brindan a algunos de nosotros la oportunidad de volver a sistemas más simples. Las microcomputadoras económicas… podrían abrir vastos mercados nuevos. [7]

A partir de 1970, [a] Weisbecker comenzó el diseño de una pequeña máquina utilizando circuitos integrados de lógica de transistor-transistor (TTL) RCA para construir el procesador. Otras piezas, interruptores, lámparas y demás, tuvo que comprarlas en Radio Shack , repartiendo deliberadamente sus compras en cuatro tiendas para que nadie le preguntara por qué compraba tantas piezas. [8] El diseño se ejecutó en octubre de 1971 y contenía 100 chips [1] repartidos en varias placas de circuito . [1]

El resultado, al que llamó FRED, aparentemente para Dispositivo educativo recreativo flexible, se empaquetó en una caja que no era muy diferente al Altair 8800 de unos años después, con interruptores de palanca en el panel frontal para entrada, lámparas para salida y luego agregando un teclado de almohadilla hexagonal . [8] Weisbecker agregó nuevas funciones continuamente y en 1972 había ganado un generador de caracteres y la capacidad de cargar y guardar programas en cintas de casete . [1]

La hija de Weisbecker, Joyce Weisbecker , se sintió atraída inmediatamente por el sistema y comenzó a escribir programas para él. Esto incluyó varios juegos, que fueron portados a máquinas posteriores basadas en COSMAC. Cuando RCA entró en el negocio de las consolas de juegos a finales de la década de 1970, estos juegos se grabaron en forma de cartucho ROM y Joyce se convirtió en la primera desarrolladora de videojuegos comercial conocida. [8]

Liberar

Weisbecker mostró la máquina a la gerencia de RCA durante este período, pero al principio hubo poco interés. Esto fue poco después de que David Sarnoff se jubilara y entregara el puesto de director ejecutivo a su hijo, Robert Sarnoff . Robert estaba más interesado en construir el lado mediático de la compañía mientras salía con estrellas de la grabación, ignorando a RCA Laboratories a pesar de una serie de desarrollos líderes en la industria que tenían lugar allí. Parte del escepticismo mostrado por la gerencia puede haber tenido que ver con la reciente venta de la empresa de su negocio de computadoras mainframe a Sperry Rand con una gran amortización . [8]

Con el tiempo, la empresa se interesó en el sistema y empezó a adaptarlo a su sistema de fabricación COS / MOS recién introducido. Un informe de laboratorio de 1973 [b] se refiere a un "prototipo" que se entregó en 1972, pero es probable que se refiera a la implementación TTL original. Continúa señalando que un esfuerzo por reducir el procesador a una implementación de dos chips con entregas en COS / MOS en 1974. Es aquí donde el procesador se conoce por primera vez como COSMAC, por Computadora de matriz monolítica de simetría complementaria. Continúa afirmando que otro laboratorio producirá el sistema en un formato de silicio sobre zafiro de 8 chips , aunque la fecha es simplemente "poco después" de las versiones CMOS, y que ya se estaban planificando los planes para una versión de un solo chip. planificado. [9] [c]

Dispositivos COSMAC

Aunque RCA comenzó el desarrollo de COSMAC a principios de la década de 1970, pasó algún tiempo antes de que presentaran sus propios productos basados ​​en él. En 1975, se experimentó con un prototipo de una máquina de juegos de arcade con ROM intercambiables para el negocio de las operaciones con monedas, pero finalmente se abandonó. [8]

Mientras tanto, Weisbecker había adaptado el FRED original, conocido dentro de RCA como System 00 en ese momento, utilizando el nuevo conjunto de chips para producir un sistema de placa única muy simplificado conocido como COSMAC ELF . Las instrucciones de construcción se describieron en un artículo de la revista Popular Electronics en 1976, y una versión ampliada con varias actualizaciones en un segundo artículo en 1977. Una característica única del ELF es que no requirió ninguna memoria de solo lectura (ROM) para el inicio. en su lugar, se utilizó el sistema de acceso directo a memoria (DMA) del procesador para leer los interruptores del panel frontal directamente en la memoria. [8]

RCA debatió si introducir versiones preempaquetadas del ELF en el mercado. Mientras debatían, un mayor desarrollo condujo a una máquina simplificada que combinaba el ELF con un nuevo chip controlador de pantalla , el CDP1861 , para producir una consola de juegos . Durante este tiempo, Joyce fue contratada por RCA para escribir varios videojuegos para la plataforma, incluido un producto educativo estilo cuestionario en asociación con Random House , una de las muchas empresas que habían sido elegidas por las juergas de compras de RCA. [8]

Después de un año de discusiones, la compañía finalmente decidió lanzar dos productos basados ​​en la plataforma, una computadora en kit conocida como COSMAC VIP y una consola de juegos conocida como RCA Studio II . Las máquinas habían estado disponibles desde 1975, pero la Studio II se anunció sólo en enero de 1977, un par de meses después de que Fairchild Channel F se convirtiera en la primera máquina basada en cartuchos en el mercado. Ambos pronto serían eclipsados ​​y olvidados en gran medida debido al lanzamiento del Atari 2600 más tarde ese año. RCA canceló el Studio II en febrero de 1978. [8]

Uso integrado

El COSMAC fue único entre los primeros procesadores de 8 bits porque había sido diseñado explícitamente para su uso en microcomputadoras; otros diseños de la época estaban dirigidos invariablemente al espacio del procesador integrado , y los que habían sido diseñados para uso informático eran, en general, sistemas más complejos y, a menudo, de 16 bits. Aunque el COSMAC había sido diseñado para uso informático, la lenta entrada en el mercado de RCA y los intentos infructuosos en este mercado finalmente fracasaron y otros procesadores como el MOS 6502 y Zilog Z80llegaría a dominar este mercado. Irónicamente, COSMAC finalmente encontraría un gran éxito en el mercado integrado, porque su diseño CMOS le permitía trabajar con menor potencia. A fines de la década de 1970, se usaba ampliamente en muchos entornos industriales, y especialmente en el aeroespacial. El 1802 dirigió la sonda Galileo a Júpiter en 1989, y sigue utilizándose en funciones similares hasta el día de hoy. [8]

Aplicaciones

Sistemas de microcomputadoras

Varios de los primeros microordenadores se basaron en el 1802, incluidos COSMAC ELF (1976), Netronics ELF II , Quest SuperELF , COSMAC VIP , Comx-35 , Finnish Telmac 1800 , Telmac TMC-600 y Oscom Nano , Yugoslav Pecom 32 y 64 , y los sistemas Cybervision vendidos a través de Montgomery Ward a finales de los 70, [11] así como la consola de videojuegos RCA Studio II (una de las primeras consolas en utilizar mapas de bitsgráficos). Modus Systems Ltd. en Gran Bretaña ofreció a principios de la década de 1980 el sistema de entrenamiento Edukit de computadora de placa única (SBC), similar a un COSMAC Elf ampliado . [12] Infinite Incorporated produjo un entrenador de computadora de consola expansible de bus S-100 basado en 1802 a fines de la década de 1970 llamado UC1800, disponible ensamblado o en forma de kit. [13] [14]

Como parte del trabajo de los aficionados a la retrocomputación de 1802 , se han construido otras computadoras más recientemente (posteriores a 2000), incluido el kit de microcomputadora de la tarjeta de membresía que cabe en una lata de Altoids [15] y el Spare Time Gizmos Elf 2000 (Elf 2K), [16 ] entre otros. Consulte Emuladores y simuladores para otros sistemas.

Integración de productos

El 1802 también se utilizó en instrumentos científicos y productos comerciales. [17] [18]

Los vehículos Chrysler posteriores a 1980 y los modelos asociados utilizan el 1802 en su sistema electrónico de combustión reducida de segunda generación, con control de chispa electrónico, uno de los primeros sistemas de control automáticos a bordo basados ​​en computadora. [19] [20]

El 1802 se utilizó en la fabricación de muchas máquinas de pinball y videojuegos en España. [21]

Endurecimiento por radiación

Además de la tecnología C2L CMOS de "silicio a granel", el 1802 también estaba disponible fabricado en tecnología de proceso de semiconductores de silicio sobre zafiro (SOS), que le confiere un grado de resistencia a la radiación y descarga electrostática (ESD). Junto con sus capacidades de extrema baja potencia, esto hace que el chip sea adecuado para aplicaciones espaciales y militares (además, en el momento en que se introdujo el 1802, muy pocos, si es que había alguno, otros microprocesadores endurecidos por radiación estaban disponibles en el mercado). [22] [23] La versión 1802 endurecida por radiación fue fabricada en Sandia National Laboratories de acuerdo con RCA. [24]

Ciencia y tecnología espacial

El 1802 se utilizó en muchos programas, experimentos, proyectos y módulos de naves espaciales y ciencias espaciales, como la nave espacial Galileo , [25] Magellan , [26] varios satélites en órbita terrestre [27] y satélites que transportan radioaficionados. [28]

También se ha verificado a partir de la documentación fuente de la NASA que el 1802 se ha utilizado en el Telescopio Espacial Hubble . [29]

Lenguajes de programación

El primer lenguaje de alto nivel disponible para 1802 fue Forth , proporcionado por Forth, Inc. y fue conocido como MicroFORTH, en 1976 (ver el archivo de Forth Inc). 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), [30] Tiny BASIC de Tom Pittman , [31] C, varios ensambladores y ensambladores cruzados , y otros. Agencias federales como la NASA y sus instalaciones utilizaron otros lenguajes especializados, incluido el Johnson Space Center, AMES, Goddard, Langley, Marshall y el Jet Propulsion Laboratory (JPL), que incluía el compilador cruzado HAL / S, [32] STOIC , un lenguaje parecido a Forth, [33] y otros.

Interpreter for Process Structures (IPS), un lenguaje de programación y entorno de desarrollo, fue escrito y utilizado específicamente para el control en tiempo real de los satélites AMSAT .

Emuladores y simuladores

El chip 1802 y las computadoras que utilizan el microprocesador han sido emulados y simulados en hardware y / o software por aficionados. Hay tres diseños en VHDL para una FPGA . [34] [35] [36] Se creó un clon COSMAC Elf de velocidad completa y precisión de bus sin un chip de microprocesador CDP1802 o un chip de video CDP1861 utilizando microcontroladores PIC . [37] Un simulador en línea del COSMAC Elf (mejorado) escrito en JavaScript se ejecuta en el navegador del usuario sin necesidad de descargarlo. [38]

Descripción

Introducción

Pin-out del microprocesador CDP1802 de 40 pines con anotaciones de pines. Amarillo = Poder; Verde = Salida; Azul = Entrada; Rojo = E / S de tres estados.

El RCA 1802 tiene un diseño CMOS de núcleo estático sin frecuencia de reloj mínima , por lo que puede funcionar a velocidades muy bajas y baja potencia, incluida 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 multiplexadas en el tiempo, y se accede a los 8 bits de orden alto y bajo de la dirección de 16 bits en ciclos de reloj alternativos. Esto contrasta con la mayoría de los diseños de la época, como el MOS 6502 y el Intel 8080 , que usaban un bus de direcciones de 16 bits.

El 1802 tiene un puerto de salida (Q) programable y comprobable de un solo bit , y cuatro pines de entrada que se prueban directamente mediante instrucciones de derivación (EF1-EF4). Estos pines permiten que las tareas simples de entrada / salida (E / S) se manejen directamente y se programen fácilmente.

Debido a que las instrucciones tardaron entre 8 y 16 ciclos de reloj en completarse, el 1802 no fue particularmente rápido. A modo de comparación, el 6502 completa la mayoría de las instrucciones en 2 a 4 ciclos de reloj, y el más largo toma 7 ciclos. [39]

Designaciones de sufijos de números de pieza

Varios sufijos del número de pieza CDP1802 indican especificaciones técnicas, que incluyen (A, B y C) velocidad de funcionamiento (3,2 MHz a 6,4 MHz), temperatura (-40 ° C a +85 ° C, -55 ° C a +125 ° C) y rangos de voltaje (4 V a 10,5 V), tipo de paquete (D, E, Q) y quemado (X). Estos estaban algo estandarizados entre los diversos proveedores de origen, incluidos RCA, Intersil, Harris, Hughes Aircraft y Solid State Scientific (SSS). Hughes usó el prefijo HCMP y SSS usó el prefijo SCP (y posiblemente BCP), en lugar de CDP, y tenía sufijos adicionales que aún no se han documentado. (ejemplos: CDP1802A, CDP1802ACE, CDP1802BCD, HCMP1802AP, SCP1802D) [40]

Registros y E / S

Modelo de registro

El 1802 es una máquina de bytes de 8 bits, con soporte mínimo para operaciones de 16 bits, excepto mediante la manipulación de 2 bytes. El acumulador primario es el registro 'D' de 8 bits (registro de datos). La bandera de acarreo de un solo bit es DF (bandera de datos). La mayoría de las operaciones utilizan el registro D, incluidas las funciones aritméticas y lógicas, y las instrucciones de almacenamiento y carga de referencia a la memoria. La mayoría de las operaciones de 16 bits tienen que trabajar en el byte inferior y luego en el byte superior, a través de D, utilizando el DF como acarreo y préstamo según sea necesario. Las instrucciones permiten obtener y poner los bytes superior e inferior de los dieciséis registros de 16 bits a través de D. Sin embargo, los registros de 16 bits pueden incrementarse y decrementarse con instrucciones únicas, y algunas instrucciones realizan incrementos y decrementos automáticos, como LDA. (avance de carga) y STXD (almacenar vía X y decrementar).Las comparaciones de valores y registros de 16 bits también necesitarían usar el registro D como intermediario, usando múltiples instrucciones para realizar las operaciones.

Una característica importante del 1802 es el diseño de registro de dieciséis registros de 16 bits cada uno. Con la instrucción SEP, puede seleccionar cualquiera de los 16 registros para que sea el contador del programa ; utilizando la instrucción SEX , puede seleccionar cualquiera de los registros de 16 bits para que sea el registro de índice . [41] El registro R0 tiene el uso especial de mantener la dirección de memoria para el controlador DMA incorporado . El registro R1 tiene el uso especial de ser el contador de programa para el manejador de interrupciones. [42]

El procesador tiene cinco líneas de E / S especiales . Hay una única salida Q que se puede configurar con la instrucción SEQ y restablecer con la instrucción REQ. Hay cuatro entradas de bandera externas de un solo bit, EF1, EF2, EF3 y EF4, y hay ocho instrucciones de bifurcación dedicadas para bifurcar condicionalmente según el estado de esas líneas de entrada. Hay siete instrucciones de puerto de entrada y siete de salida que utilizan el registro RX y el acumulador D.

Las líneas EF y Q se usaban típicamente para múltiples interfaces en computadoras de aficionados basadas en 1802 debido al fácil y favorable manejo de las líneas. Era típico que la línea Q activara un LED de estado , una interfaz de casete , una interfaz RS-232 y el altavoz. Esto significaba que el usuario podía escuchar la transmisión de datos de casete y RS-232 (a menos que se implementara un control de volumen). Tradicionalmente, la línea EF4 está conectada al botón pulsador momentáneo INPUT del COSMAC Elf. Otros sistemas pueden usar una de las otras líneas.

Hay otros registros y banderas de uso especial, algunos internos y otros utilizables mediante programación: N, P, X e I de 4 bits; T de 8 bits; e IE de 1 bit.

Derivación

Hay tres tipos de ramificación incondicional y condicional en 1802, corta y larga, y saltos.

Las ramas cortas son instrucciones de 2 bytes y utilizan un rango de 256 bytes, dirección de un solo byte, direccionamiento absoluto de página en el rango de 0 a 255 (FF hexadecimal). No hay ramificación relativa. La rama corta siempre salta dentro de la página que contiene el byte de dirección. [43]

Las ramas largas utilizan direcciones completas de 16 bits para admitir el espacio de direcciones de memoria de 64 K, y son las únicas instrucciones de 3 bytes.

Las instrucciones de salto incrementan la PC en uno para los saltos cortos incondicionales, o dos para los saltos largos. Solo el Long Skip tiene ramificación condicional.

Llamadas a subrutinas

El procesador no tiene una dirección CALL de subrutina estándar ni instrucciones RET, aunque se pueden simular. El diseño de 16 registros hace posible algunos mecanismos interesantes de llamada y retorno de subrutinas, aunque se adaptan mejor a programas pequeños que a la codificación de propósito general.

Algunas subrutinas de uso común se pueden llamar rápidamente manteniendo su dirección en uno de los 16 registros; sin embargo, la subrutina llamada debe saber (codificado) cuál es el registro de la PC que llama para realizar la instrucción de "retorno". La instrucción SEP se usa para llamar a una subrutina apuntada por uno de los registros de 16 bits y otro SEP para regresar al llamante (SEP significa Set Program Counter, y selecciona cuál de los 16 registros se utilizará como contador de programa a partir de ese momento). Antes de que una subrutina regrese, salta a la ubicación inmediatamente anterior a su punto de entrada, de modo que después de que la instrucción SEP "return" devuelva el control al llamante, el registro apuntará al valor correcto para el siguiente uso. (el procesador siempre incrementa la PC después de la referencia y el uso (recuperando la siguiente instrucción para ejecutar), por lo que esta técnica funciona como se indica)

Una variación interesante de este esquema es tener dos o más subrutinas en un anillo para que se llamen en orden de operación por turnos. En las primeras computadoras de aficionados, trucos y técnicas como esta se usaban comúnmente en la interrupción de actualización horizontal para reprogramar la dirección de la línea de escaneo para repetir cada línea de escaneo cuatro veces para el controlador de video.

Una rutina bien conocida y de uso frecuente se conoce como SCRT (Técnica estándar de LLAMADA y RETORNO), que permite la llamada y devolución de subrutinas de propósito general, incluido el paso de parámetros "en línea" y subrutinas anidadas usando una pila. Aunque cualquiera de los registros disponibles se puede usar para esta técnica, según la preferencia del programador, muchos usan la rutina proporcionada por RCA en el Manual del usuario CDP1802, donde el uso de registro sugerido es R2 = Stack Pointer, R3 = General Program Counter (PC), R4 = Llamar, R5 = Regresar, R6 = Puntero de argumentos pasados ​​(no destructivo). Aunque estas rutinas de apoyo son pequeñas, existe una sobrecarga de velocidad de ejecución al usarlas. (a diferencia de lo que se incurriría si las instrucciones CALL y RET reales fueran parte del microprocesador 's) Esta configuración permite que R0 se use para DMA y R1 para interrupciones, si se desea, lo que permite que R7 a través de RF (hexadecimal) para el uso general del programa.

Modos de direccionamiento

Debido al bus de direcciones de 16 bits y al bus de datos de 8 bits, los dieciséis registros de propósito general tienen 16 bits de ancho, pero el registro D del acumulador tiene solo 8 bits de ancho. El acumulador, por tanto, tiende a ser un cuello de botella. Transferir el contenido de un registro a otro implica cuatro instrucciones (una Get y una Put en el byte HI del registro, y un par similar para el byte LO: GHI R1; PHI R2; GLO R1; PLO R2). De manera similar, cargar una nueva constante en un registro (como una nueva dirección para un salto de subrutina, o la dirección de una variable de datos) también implica cuatro instrucciones (dos instrucciones de carga inmediata, LDI, una para cada mitad de la constante, cada una seguida de una instrucción Put en el registro, PHI y PLO).

Los dos modos de direccionamiento Registro indirecto y Registro indirecto con incremento automático son entonces bastante eficientes para realizar operaciones de 8 bits en los datos del acumulador. Sin embargo, no hay otros modos de direccionamiento. Por lo tanto, el modo de direccionamiento directo debe emularse utilizando las cuatro instrucciones mencionadas anteriormente para cargar la dirección en un registro de reserva; seguido de una instrucción para seleccionar ese registro como registro de índice; seguido, finalmente, por la operación prevista en la variable de datos a la que apunta esa dirección.

DMA y modo de carga

El CDP1802 tiene un controlador DMA integrado simple , con dos líneas de solicitud DMA para entrada y salida DMA. La CPU solo accede a la memoria durante ciertos ciclos del ciclo de máquina de varios pasos, que requirió entre 8 y 16 ciclos de reloj. El hardware externo podría leer o escribir datos durante estos períodos sin interrumpir el procesador, un concepto general conocido como robo de ciclo .

R0 se utiliza como puntero de dirección DMA. La dirección de inicio de los datos DMA se colocaría en R0 y luego se tiraría del pin de lectura o escritura apropiado en la CPU baja. La CPU respondió a la solicitud de DMA incrementando el valor en R0, de modo que la siguiente solicitud se almacena automáticamente en la siguiente ubicación en la memoria. Por lo tanto, simplemente activando repetidamente los pines DMA, el sistema recorrerá toda la memoria.

El controlador DMA también proporciona un "modo de carga" especial, que permite cargar la memoria mientras las entradas CLEAR y WAIT del procesador están activas. Esto permite que un programa se cargue sin la necesidad de un cargador de arranque basado en ROM. Esto fue utilizado por la microcomputadora COSMAC Elf y sus sucesores para cargar un programa desde interruptores de palanca o un teclado hexadecimal sin necesidad de software y hardware mínimo. El usuario podría simplemente configurar los interruptores al siguiente valor, alternar la lectura y luego continuar. No hubo necesidad de cambiar las direcciones, eso se hizo automáticamente por el paso de DMA.

Tiempo de instrucción

La eficiencia del ciclo de reloj es pobre en comparación con la mayoría de los microprocesadores de 8 bits. Ocho ciclos de reloj constituyen un ciclo de máquina. La mayoría de las instrucciones necesitan dos ciclos de máquina (16 ciclos de reloj) para ejecutarse; las instrucciones restantes toman tres ciclos de máquina (24 ciclos de reloj). En comparación, la tecnología MOS 6502 tarda de dos a siete ciclos de reloj para ejecutar una instrucción, y el Intel 8080 tarda de cuatro a 18 ciclos de reloj.

Chips de soporte

Gráficos

En las primeras microcomputadoras basadas en 1802, el chip controlador de visualización de video de gráficos complementarios , RCA CDP1861 (para el formato de video NTSC , variante CDP1864 para PAL ), usaba el controlador DMA incorporado para mostrar gráficos de mapas de bits en blanco y negro en pantallas de TV estándar. El 1861 también se conocía como el sistema de gráficos Pixie.

Aunque las versiones más rápidas de 1802 podían funcionar a 4-5 MHz (a 5 V; era más rápido (6,4 MHz) a 10 V), normalmente funcionaba a 3,58 MHz, dividido por 2 (1,79 MHz) para satisfacer los requisitos de el chip 1861, que daba una velocidad de poco más de 100.000 instrucciones por segundo, aunque algunas corrían a otras velocidades como ~ 2,8 MHz del Comx o 5 MHz del Pecom . El COSMAC VIP , que integró el chip de video con el procesador como una sola computadora especialmente diseñada (en lugar de como un complemento a un kit de aficionado), ejecutó notablemente el 1802 mucho más lento, sincronizándolo exactamente con el 1861, a una velocidad no determinada. -Estándar 1.76064 MHz, como se recomienda en el diseño de referencia de la hoja de especificaciones de Pixie. [D]

El IC del circuito generador de color CDP1862, un chip complementario de 1861, podría usarse para generar gráficos en color. Algunos sistemas informáticos, como el Pecom 64 , utilizaban el VIS (sistema de interfaz de vídeo), que consta de los circuitos integrados complementarios CDP1869 y CDP1870, para gráficos en color de resolución claramente superior, comparables a otros sistemas de 8 bits de la década de 1980.

Muestras de código

Este ejemplo de fragmento de código es una rutina de diagnóstico que prueba las operaciones de ALU ( unidad aritmética y lógica). [44]

.. PRUEBA ALU OPS
0000 90 GHI 0 .. CONFIGURAR R6
0001 B6 PHI 6
0002 F829 LDI DOIT .. PARA ENTRADA DE OPCODE
0004 A6 PLO 6
0005 E0 SEX 0 .. (X = 0 YA)
0006 6400 OUT 4,00 .. ANUNCIAROS LISTO
0008 E6 SEXO 6 ... AHORA X = 6
0009 3F09 BN4 * .. ESPERA
000B 6C INP 4 .. OK, CONSÍGUELO
000C 64 SALIDA 4 .. Y ECO PARA VISUALIZAR
000D 370D B4 * .. ESPERAR SU LIBERACIÓN
000F F860 LDI # 60 .. AHORA PREPÁRESE PARA
0011 A6 PLO 6 .. PRIMERA OPERACIÓN
0012 E0 SEXO 0 .. DECIRLO
0013 6401 SALIDA 4,01
0015 3F15 BN4 *
0017 E6 SEXO 6 .. TOMARLO Y ECHO
0018 6C INP 4 .. (HASTA 0060)
0019 64 SALIDA 4 .. (TAMBIÉN INCREMENTO R6)
001A 371A B4 *
001C E0 SEXO 0 .. DITTO SEGUNDA OPERANDO
001D 6402 SALIDA 4,02
001F E6 SEXO 6
0020 3F20 BUCLE: BN4 * .. ESPERA
0022 6C INP 4 .. OBTENERLO (NOTA: X = 6)
0023 64 SALIDA 4 .. ECO IT
0024 3724 B4 * .. ESPERAR SU LIBERACIÓN
0026 26 DE DICIEMBRE 6 .. COPIA DE SEGURIDAD R6 A 0060
0027 26 DIC 6
0028 46 LDA 6 .. OBTENER LA PRIMERA OPERACIÓN A D
0029 C4 DOIT: NOP .. DO OPERATION
002A C4 NOP .. (REPUESTO)
002B 26 DIC 6 .. VOLVER A 0060
002C 56 STR 6 .. RESULTADO SALIDA
002D 64 SALIDA 4 .. (X = 6 FIJA)
002E 7A REQ .. APAGAR Q
002F CA0020 LBNZ LOOP ... LUEGO SI CERO,
0032 7B SEQ .. VUELVA A ENCENDERLO
0033 3020 BR LOOP .. REPETIR EN CUALQUIER CASO

Nota: La rutina anterior supone que el microprocesador CDP1802 se encuentra 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 "puntero" del registro indirecto X se establecen ambos en el registro R0 de 16 bits. Es por eso que puede generar un valor inmediato, como en el ejemplo 'OUT 4,00', porque PC y X apuntan a R0. La PC se incrementa después de que el byte de instrucción del código de operación se recupera de la memoria, por lo que apunta a la siguiente dirección cuando se ejecuta OUT 4. Por lo tanto, genera el valor en la memoria al que apunta RX = R0, que es el siguiente byte inmediato. La instrucción OUT también incrementa el registro X, que es R0, que también es la PC,por lo que genera el valor inmediato después de OUT 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 ve el conjunto de rutinas 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 generar fácilmente una sección de memoria ('búfer'), INP no lo hace. Almacena el valor en la dirección apuntada por RX y en el acumulador de bytes de datos D de 8 bits, pero RX no se modifica.

La rutina también presupone 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, y IN 4 obtiene el valor de los ocho interruptores de palanca (o posiblemente del teclado hexadecimal). El código de operación BN4 (lazo; * = 'esta dirección'), "bifurca si la línea de entrada EF4 de un solo bit es baja", se usa para probar si se presiona el botón momentáneo 'Entrada'. El bucle del código de operación B4 ('if hi') espera a que se suelte el botón. SEQ y REQ encienden y apagan la línea Q única, que generalmente está unida 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 tratar con 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 códigos de operación de 2 bytes con direccionamiento absoluto de página y un límite de dirección de 256 bytes. Las ramas largas son códigos de operación de 3 bytes con bifurcación de direcciones completa de 16 bits.

Esta información debería hacer que la rutina sea más comprensible para cualquier programador de computadoras que tenga el conocimiento suficiente para leer "pseudocódigo" y esté mínimamente familiarizado con la programación en lenguaje ensamblador y máquina.

Notas

  1. ^ La fecha exacta varía entre referencias, como es el caso de la mayoría de las fechas relacionadas con la COSMAC. Edwards lo pone en 1969, [8] mientras que la mayoría de los demás dicen 1970, la fecha que se usa aquí.
  2. Esta fue la revisión anual de las operaciones de 1973, publicada en algún momento de 1974. [9]
  3. ^ Las fechas exactas del muestreo y el lanzamiento general de los diversos dispositivos COSMAC siguen siendo imprecisas. Herb Johnson ha elaborado una extensa lista de informes de RCA que forman la base de las fechas de este artículo. [10]
  4. ^ Sin embargo, dada la antigüedad de la máquina, esto puede deberse a que los grados de mayor velocidad aún no se han desarrollado, lo que significa que el procesador solo se calificó para un máximo de 3.2, o posiblemente incluso solo 2.5 MHz. Aunque es un caso extremo, la máquina no estaría sola en ejecutar una CPU muy por debajo de su velocidad nominal para ahorrar costos y complejidad en el sistema de temporización, y simplemente correr a 3.52 MHz hubiera representado un 10% arriesgado, o incluso un overclock insosteniblemente extremo del 41%.

Referencias

Citas

  1. ↑ a b c d Cass, 2018 .
  2. ^ "RCA COSMAC 1802" . La página del coleccionista de chips antiguos . AntiqueTech.com. 21 de abril de 2009. Archivado desde el original el 2 de enero de 2013 . Consultado el 27 de diciembre de 2010 .
  3. ^ "Joseph Weisbecker" . Vintage-Computer.com. 2010-02-08 . Consultado el 27 de diciembre de 2010 .
  4. ^ "Joseph A. Weisbecker (1932-1990)" . CosmacElf.com . Consultado el 27 de diciembre de 2010 .
  5. ^ "Informe de investigación de laboratorios RCA 1973" (PDF) . RetroTechnology . RCA . Consultado el 24 de mayo de 2016 .
  6. ^ CDP1802A
  7. ^ Weisbecker 1974 , p. 41.
  8. ^ a b c d e f g h i j Edwards, 2017 .
  9. ↑ a b Lab , 1973 , pág. 152.
  10. ^ Johnson, Herb (11 de diciembre de 2018). "COSMAC 1801, 1802" fechas " " .
  11. ^ Ruske, Dave. "Cybervision 2001, 3001 y 4001" . COSMAC Elf . COSMACELF.COM . Consultado el 30 de junio de 2016 .
  12. ^ "Anuncio de la revista Wireless World en la página 22" (PDF) . Historia de la radio americana . Mayo de 1981 . Consultado el 21 de enero de 2017 .
  13. ^ "Informe de equipo - Microordenador UC1800 infinito" (PDF) . ClassicCmp.org - Computación clásica . Revista Radio Electronics. Agosto de 1977 . Consultado el 22 de enero de 2017 .
  14. ^ Haberhern, William (febrero de 1977). "Artículo Revista Kilobaud Pg 90" . Archive.org . Wayne Green . Consultado el 22 de enero de 2017 .
  15. ^ Hart, Lee. "La computadora de la tarjeta de membresía de 1802" . Página de inicio de Lee Hart . Lee Hart . Consultado el 22 de mayo de 2016 .
  16. ^ "Spare Time Gizmos Elf 2000 (Elf 2K)" .
  17. ^ "Cinco generaciones de medidores de humedad Sinar" . Consultado el 22 de mayo de 2016 .
  18. ^ "Inforcel" . Consultado el 22 de mayo de 2016 .
  19. ^ Johnson, Herbert R. (22 de junio de 2016). "RCA / Weisbecker" System 00 "también conocido como" FRED " " . Retrotecnología . Consultado el 23 de junio de 2016 .
  20. ^ "El sistema de control del motor Chrysler Lean Burn" . Toda la información de Mopar Chrysler . AllPar.com . Consultado el 23 de junio de 2016 .
  21. ^ Donnelly, William (7 de julio de 2016). "MDCCCII (1802) | Integración de productos: Aplicaciones comerciales y científicas" . Un espectáculo de retrocomputación con CPU COSMAC 1802 . William Donnelly . Consultado el 7 de julio de 2016 .
  22. ^ Dingwall, A .; Stricker, R .; Sinniger, J. (octubre de 1977). "Un microprocesador CMOS C2L a granel de alta velocidad". Revista IEEE de circuitos de estado sólido . IEEE. 12 (5): 457–462. doi : 10.1109 / ISSCC.1977.1155726 .
  23. ^ "Una familia de microprocesadores CMOS Si-Gate a granel endurecidos por radiación" (PDF) . IAEA.org . IAEA.org . Consultado el 4 de junio de 2016 .
  24. ^ Gülzow, Peter. "¡Sin RISC, sin diversión!" . AmSat Alemania .
  25. ^ Tomayko, James (abril de 1987). "Computadoras en vuelo espacial: la experiencia de la NASA" . NASA . Consultado el 6 de febrero de 2010 .
  26. ^ http://www2.jpl.nasa.gov/magellan/guide4.html#4.11 The Magellan Venus Explorer's Guide, Capítulo 4 - La nave espacial Magellan - Computación y software
  27. ^ "RCA COSMAC VIP" . Sitio web de tecnología obsoleta . Consultado el 31 de enero de 2010 .
  28. ^ http://www.amsat.org/amsat-new/AboutAmsat/amsat_history.php Historia de AMSAT
  29. ^ Afshari, A. (enero de 1993). "Cámara planetaria / de campo amplio del telescopio espacial Hubble" (PDF) . Shutterbug . Archivado desde el original (PDF) el 6 de octubre de 2016.
  30. ^ "Software de tarjeta de membresía" .
  31. ^ "Itty Bitty Computers y TinyBasic" .
  32. ^ "Estado actual del compilador HAL / S en la computadora Modcomp Classic 7870" (PDF) .
  33. ^ MASCOT (espectrómetro astronómico del MIT / cámara para telescopios ópticos) . Enero de 1980.
  34. ^ Baker, Scott (2016). "1802 CPU codificada en VHDL" . Scott L. Baker Github . Scott Baker . Consultado el 24 de julio de 2016 .
  35. ^ Smith, Eric (2009). "cosmac - núcleo de CPU equivalente funcional RCA COSMAC CDP1802 en VHDL" . Eric Smith Github . Eric Smith . Consultado el 9 de julio de 2019 .
  36. ^ Teal, Steve (2016). "VHDL 1802 Core con TinyBASIC para la placa Lattice MachXO2 Pico" . Steve Teal Github . Steve Teal . Consultado el 9 de julio de 2019 .
  37. ^ Rossin, Ted (2011). "Clon Elfo" . Página de Ted Rossin . Ted Rossin . Consultado el 24 de julio de 2016 .
  38. ^ Donnelly, William (2011). "COSMAC Elf-ish CDP1802 Simulator en JavaScript" . Página de inicio de Donnelly-House . William Donnelly . Consultado el 24 de julio de 2016 .
  39. ^ "Conjunto de instrucciones 6502" . misa: trabajo .
  40. ^ Shvets, Gennadiy (2 de octubre de 2016). "Familia de microprocesadores RCA 1802 (CDP1802)" . CPU-World . Gennadiy Shvets . Consultado el 17 de octubre de 2016 .
  41. ^ "¿Qué significa SEXO?" . Consultado el 26 de diciembre de 2013 .
  42. ^ Manual de usuario del microprocesador CDP1802 COSMAC
  43. ^ Manual de usuario del microprocesador CDP1802 COSMAC
  44. ^ Pittman, Tom (1980). "Un curso corto en programación" . cosmacelf.com . Consultado el 20 de mayo de 2017 .

Bibliografía

  • Informe de investigación 1973 (PDF) (Informe técnico). Laboratorios RCA. 1973.
  • Cass, Stephen (2 de julio de 2018). "Chip Hall of Fame: RCA CDP 1802" . Espectro IEEE .
  • Edwards, Benj (27 de octubre de 2017). "Redescubriendo a la primera diseñadora de videojuegos perdida de la historia" . Empresa rápida . Consultado el 27 de octubre de 2017 .
  • Weisbecker, Joe (marzo de 1974). "Una arquitectura de microcomputadora simplificada". Computadora IEEE . 7 (3): 41–47. doi : 10.1109 / MC.1974.6323475 .

enlaces externos

  • Hoja de datos CDP1802A / AC / BC, 1997 ( PDF )
  • Hoja de datos CDP1802AC / 3, 2008 ( PDF )
  • Sitio web de COSMAC ELF
  • Un curso corto de programación (texto de 1980 sobre ensamblador RCA 1802)
  • Disparo de alta resolución

Algunas partes menores de este artículo se basaron originalmente en material del Diccionario gratuito de computación en línea , que tiene licencia de la GFDL .

Obtenido de " https://en.wikipedia.org/w/index.php?title=RCA_1802&oldid=1033928122 "