stringtranslate.com

RCA 1802

Troquel RCA CDP1802

El COSMAC (Complementary Symmetry Monolithic Array Computer) 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 CDP1801R y CDP1801U de dos chips , que luego se combinaron en el CDP1802 de un solo chip . [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 utilizando componentes TTL . RCA comenzó a desarrollar la versión CMOS del diseño del procesador en 1973, probándola en 1974 con planes de pasar inmediatamente a una implementación de un solo chip. Jerry Herzog dirigió el diseño de la versión de un solo chip, que se probó 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 fabricaban mediante el proceso NMOS , el COSMAC se implementó en forma CMOS y utilizó lógica estática . Esto le permitió funcionar con configuraciones de energía más bajas e incluso detenerse por completo; Además, funcionará a menor temperatura y no generará tanto calor como los chips NMOS. RCA también produjo versiones endurecidas por radiación , que encontraron uso en el campo aeroespacial. [5] Estos permanecen en producción a partir de 2022, [5] y a partir de 2008 continuaron siendo producidos por Renesas (anteriormente Intersil ). [6] [7]

Los sucesores del 1802 son el CDP1804, CDP1805 y CDP1806, que tienen un conjunto de instrucciones ampliado y otras características mejoradas (como RAM y ROM en el chip y temporizador incorporado), y algunas versiones funcionan 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 dual en línea (DIP) de 40 pines. [ ¿ cuando? ]

Historia

fred

Joseph Weisbecker había estado fascinado durante mucho tiempo con el potencial de las computadoras en el hogar, y ya en 1955 afirmó 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 (CI) en la década de 1960 cambió las cosas dramáticamente. 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 regresar a sistemas más simples. Baratas... las microcomputadoras podrían abrir vastos mercados nuevos. [8]

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, las tenía que comprar en Radio Shack , repartiendo deliberadamente sus compras entre cuatro tiendas para que nadie le preguntara por qué compraba tantas piezas. [9] El diseño se estaba ejecutando en octubre de 1971 y contenía 100 chips [1] repartidos en múltiples placas de circuito . [1]

El resultado, al que llamó FRED, aparentemente por Dispositivo Educativo Recreativo Flexible, estaba empaquetado en una caja que no se diferenciaba del Altair 8800 de unos años más tarde, con interruptores de palanca en el panel frontal para entrada, lámparas para salida, y luego agregando un teclado con almohadilla hexagonal . [9] Weisbecker agregó nuevas funciones continuamente y en 1972 había obtenido 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ó inmediatamente atraída 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 ingresó al 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 comerciales conocida. [9]

Liberar

Weisbecker mostró la máquina a la dirección de RCA durante todo 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 empresa mientras salía con estrellas discográficas, ignorando a RCA Laboratories a pesar de una serie de desarrollos líderes en la industria que estaban teniendo lugar allí. Parte del escepticismo mostrado por la gerencia puede haber tenido que ver con la reciente venta por parte de la compañía de su negocio de computadoras centrales a Sperry Rand con una enorme amortización . [9]

Finalmente, la empresa se interesó en el sistema y comenzó a adaptarlo a su sistema de fabricación COS/MOS recientemente introducido. Un informe de laboratorio de 1973 [b] se refiere a un "prototipo" entregado en 1972, pero probablemente se refiere a la implementación TTL original. Continúa señalando que se hizo 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 COmplementary-Symmetry-Monolithic-Array Computer. 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 una versión de un solo chip. planificado. [10] [c]

Dispositivos COSMAC

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

Mientras tanto, Weisbecker había adaptado el FRED original, conocido dentro de RCA como System 00 en ese momento, usando el nuevo chipset para producir un sistema de placa única muy simplificado conocido como entonces 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 de 1977. Una característica única del ELF es que no requería ninguna memoria de solo lectura (ROM) para su inicio. en cambio, el sistema de acceso directo a la memoria (DMA) del procesador se utilizó para leer los interruptores del panel frontal directamente en la memoria. [9]

RCA debatió si introducir en el mercado versiones preenvasadas del ELF. Mientras debatían, un mayor desarrollo condujo a una máquina simplificada que combina el ELF con un nuevo chip controlador de pantalla , el CDP1861 , para producir una consola de juegos . Durante este tiempo, RCA contrató a Joyce 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 adquiridas por las compras de RCA. [9]

Después de un año de discusiones, la compañía finalmente decidió lanzar dos productos para el mercado masivo basados ​​en la plataforma, un kit de computadora conocido 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 no se anunció hasta enero de 1977, un par de meses después de que Fairchild Channel F se convirtiera en la primera máquina de cartucho del mercado. Ambos pronto serían eclipsados ​​y en gran medida olvidados debido al lanzamiento del Atari 2600 ese mismo año. RCA canceló el Studio II en febrero de 1978. [9]

RCA también lanzó una serie de sistemas informáticos modulares, basados ​​en el factor de forma RCA Microboard desde el lanzamiento inicial del 1802, hasta el colapso de la propia RCA. Estos estaban destinados principalmente al desarrollo de sistemas y aplicaciones industriales, y eran altamente configurables. [12]

Uso integrado

El COSMAC era único entre los primeros procesadores de 8 bits porque había sido diseñado explícitamente para uso en microcomputadoras; Otros diseños de la época apuntaban invariablemente al espacio de los procesadores integrados , y los que habían sido diseñados para uso en computadoras eran generalmente sistemas más complejos y, a menudo, de 16 bits. Aunque COSMAC había sido diseñado para uso informático, la lenta entrada de RCA al mercado y los intentos poco respaldados en este mercado finalmente fracasaron y otros procesadores como el MOS 6502 y Zilog Z80 llegarían a dominar este mercado. Irónicamente, COSMAC acabaría encontrando un gran éxito en el mercado integrado, porque su diseño CMOS le permitía funcionar a menor potencia. A finales de la década de 1970 se utilizaba ampliamente en muchos entornos industriales, y especialmente en el aeroespacial. El 1802 llevó la sonda Galileo a Júpiter en 1989, y sigue en uso en funciones similares hasta el día de hoy. [9]

Aplicaciones

Sistemas de microcomputadoras

Varias de las primeras microcomputadoras se basaron en el 1802, incluido el COSMAC ELF (1976), Netronics ELF II , Quest SuperELF, COSMAC VIP , Comx-35 , el finlandés Telmac 1800 , Telmac TMC-600 y Oscom Nano, el yugoslavo Pecom 32 y 64. , y los sistemas CyberVision 2001 vendidos a través de Montgomery Ward a finales de la década de 1970, [13] así como la consola de videojuegos RCA Studio II (una de las primeras consolas en utilizar gráficos de mapa de bits ). El sistema de entrenamiento por computadora de placa única Edukit , similar a un COSMAC Elf ampliado , fue ofrecido por Modus Systems Ltd. en Gran Bretaña a principios de la década de 1980. [14] Infinite Incorporated produjo un entrenador de computadora de consola expandible de bus S-100 basado en 1802 a fines de la década de 1970 llamado UC1800, disponible ensamblado o en forma de kit. [15] [16]

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 Membership Card que cabe en una lata de Altoids [17] y el Spare Time Gizmos Elf 2000 (Elf 2K), [18 ] entre otros. Ver § Emuladores y simuladores para otros sistemas.

Integración de productos

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

Chrysler posterior a 1980 y los modelos de vehículos asociados utilizan el 1802 en su sistema electrónico de combustión pobre de segunda generación, con control electrónico de chispa, uno de los primeros sistemas de control a bordo basados ​​en computadora para automóviles. [21] [22]

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

Endurecimiento por radiación

Se fabricó una versión de alta velocidad del 1802 con tecnología de proceso de semiconductores de silicio sobre zafiro (SOS), que le confiere cierto grado de resistencia a la radiación y a las descargas electrostáticas (ESD). [24] Una versión diferente del 1802 endurecida por radiación, desarrollada conjuntamente por RCA y Sandia National Laboratories , se construyó sobre silicio a granel utilizando tecnología C 2 L (Closed COS/MOS Logic). [25] [26] Junto con sus capacidades de consumo de energía extremadamente bajo, esto hace que el chip sea muy adecuado para aplicaciones espaciales y militares. [25] (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).

Tecnología y ciencia espacial.

El 1802 se utilizó en muchas naves espaciales y programas, experimentos, proyectos y módulos de ciencia espacial, como la nave espacial Galileo , [27] Magellan , [28] el instrumento analizador de ondas de plasma en la nave espacial Ulysses de la ESA, varios satélites en órbita terrestre [29] y satélites que transportan radioaficionados. [30]

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

Usos militares

Varios artículos militares británicos de las décadas de 1980 y 1990 utilizaron el 1802, entre ellos:

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 (También fue inventado por Joseph Weisbecker ) (y variantes), 8th (una versión de Forth creada por Lee Hart), [33] Tiny BASIC de Tom Pittman , [34 ] C, varios ensambladores y ensambladores cruzados, y otros. Agencias federales como la NASA y sus instalaciones utilizaron otros lenguajes especializados, incluido el Centro Espacial Johnson, AMES, Goddard, Langley, Marshall y el Jet Propulsion Laboratory (JPL), que incluía el compilador cruzado HAL/S, [35 ] STOIC , un lenguaje similar a Forth, [36] 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

Los aficionados han emulado y simulado en hardware y/o software el chip 1802 y las computadoras que utilizan el microprocesador. Hay tres diseños en VHDL para una FPGA . [37] [38] [39] 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 . [40] Un simulador en línea de COSMAC Elf (mejorado) escrito en JavaScript se ejecuta en el navegador del usuario sin necesidad de descargarlo. [41]

Descripción

Introducción

Configuración de pines del chip DIP del procesador RCA CDP1802 COSMAC

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 bajo consumo, incluida una frecuencia de reloj de cero para suspender el microprocesador sin afectar su funcionamiento.

Tiene dos buses de 8 pines separados: un bus de datos bidireccional de 8 bits y un bus de direcciones multiplexado en el tiempo , accediendo a los 8 bits de orden superior y de orden inferior de la dirección de 16 bits en ciclos de reloj alternos. Esto contrasta con la mayoría de los diseños de la época, como el MOS 6502 y el Intel 8080 , que utilizaban 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 rama (EF1-EF4). Estos pines permiten que tareas simples de entrada/salida (E/S) se manejen directamente y se programen fácilmente.

Debido a que las instrucciones tardaban 16 o 24 ciclos de reloj en completarse, el 1802 no era particularmente rápido. A modo de comparación, el 6502 completa la mayor parte de la instrucción en 2 a 4 ciclos de reloj, y la más larga (instrucción oficial) [42] toma 7 ciclos. [43]

Designaciones de sufijos de números de pieza

Varios sufijos del número de pieza CDP1802 indican especificaciones técnicas, incluidas (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 precinto (X). Estos estaban algo estandarizados entre los distintos proveedores, 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) [44]

Registros y E/S

Registrar modelo

El 1802 es una máquina de 8 bytes, con soporte mínimo para operaciones de 16 bits, excepto mediante manipulación de 2 bytes. El acumulador primario es el registro 'D' de 8 bits (registro de datos). El indicador de acarreo de un solo bit es DF (indicador de datos). La mayoría de las operaciones utilizan el registro D, incluidas las funciones aritméticas y lógicas, y las instrucciones de carga y almacenamiento que hacen referencia a la memoria. La mayoría de las operaciones de 16 bits tienen que funcionar 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.

Una característica importante del 1802 es un conjunto de dieciséis registros de 16 bits cada uno, utilizados principalmente para direccionamiento. Usando la instrucción SEP, puede seleccionar cualquiera de los 16 registros para que sea el contador del programa ; Usando la instrucción SEX, puede seleccionar cualquiera de los registros de 16 bits para que sea el registro de índice . [45] El registro R0 tiene el uso especial de contener 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. [46]

Hay instrucciones que permiten configurar y leer los valores de estos registros a través de D, trabajando por separado los 8 bits superiores e inferiores a la vez. También hay instrucciones para realizar incrementos y decrementos de todo el valor de 16 bits, y algunas instrucciones realizan incrementos y decrementos automáticos, como LDA (avance de carga) y STXD (almacenamiento mediante X y decremento). Las comparaciones de valores y registros de 16 bits también necesitarían utilizar el registro D como intermediario, utilizando múltiples instrucciones para realizar las operaciones.

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 indicadores 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 para aficionados basadas en 1802 debido al manejo fácil y favorable de las líneas. Era típico que la línea Q controlara un LED de estado , una interfaz de casete , una interfaz RS-232 y el altavoz. Esto significaba que el usuario podía realmente escuchar la transmisión de datos RS-232 y del casete (a menos que se implementara un control de volumen). Tradicionalmente, la línea EF4 está conectada al botón momentáneo de ENTRADA en COSMAC Elf. Otros sistemas podrían utilizar una de las otras líneas.

Hay algunos otros registros e indicadores 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. En Internet, hay muchas versiones de una Tabla de las Instrucciones 1802, aquí hay un enlace: https://www.atarimagazines.com/computeii/issue3/page52.php Hay varias Tablas en el área Archivo para registros en miembros del club en línea 1802 para el foro en https://groups.io/g/cosmacelf/files. Cada Instrucción es un único Byte, de 8 Bits. Los 4 bits a la izquierda, a veces llamados dígitos hexadecimales de alto orden, tienen que ver con la naturaleza real de la instrucción, y esos 4 bits están relacionados con el registro I. Los 4 bits a la derecha, a veces llamados dígitos hexadecimales de orden bajo, tienen que ver con el registro de trabajo, de donde se toman los datos o se colocan en él, y esos 4 bits están involucrados con el registro N. Cuando se realiza un Programa, las distintas etapas del trabajo y los Procesos se almacenan temporalmente en el Registro señalado por el Registro N, como sucede cuando se realiza una Multiplicación larga o una División larga en una hoja de papel. Por supuesto, a veces los datos se mueven hacia y desde la sección de memoria RAM, y se realizan diferentes ramas del programa, según sea necesario, en el transcurso del tiempo.

Derivación

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

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

Las ramas largas utilizan direccionamiento completo 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 el PC en uno para el salto corto incondicional, o en dos para los saltos largos. Sólo 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 posibles 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.

Se pueden llamar rápidamente algunas subrutinas de uso común manteniendo su dirección en uno de los 16 registros; sin embargo, la subrutina llamada debe saber (codificada) 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 otra SEP para regresar a la persona que llama (SEP significa Establecer contador de programa y selecciona cuál de los 16 registros se usará como programa). contador 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 de "retorno" SEP devuelva el control a la persona que llama, 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 round robin. En las primeras computadoras para aficionados, trucos y técnicas como este 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 puede usarse 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 = Llamada, R5 = Devolución, R6 = Puntero de argumentos pasados ​​(no destructivo). Aunque estas rutinas de apoyo son pequeñas, su uso conlleva una sobrecarga de velocidad de ejecución. (a diferencia de lo que se incurriría si las instrucciones CALL y RET reales fueran parte del diseño del microprocesador) Esta configuración permite que R0 se use para DMA y R1 para interrupciones, si se desea, permitiendo que R7 a través de RF (hexadecimal) para uso general uso 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 sólo 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 de ellas). uno seguido de una instrucción Poner en el registro, PHI y PLO).

Los dos modos de direccionamiento Registro indirecto y Registro indirecto con incremento automático son bastante eficientes para realizar operaciones de 8 bits en los datos del acumulador. Sin embargo, no existen otros modos de direccionamiento. Por lo tanto, es necesario emular el modo de direccionamiento directo utilizando las cuatro instrucciones mencionadas anteriormente para cargar la dirección en un registro de repuesto; seguido de una instrucción para seleccionar ese registro como registro índice; seguido, finalmente, de 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 incorporado simple , que tiene dos líneas de solicitud de DMA para entrada y salida de DMA. La CPU solo accede a la memoria durante ciertos ciclos del ciclo de la máquina de varios pasos, que requería entre 8 y 16 ciclos de reloj. El hardware externo podría leer o escribir datos durante estos periodos sin interrumpir el procesador, un concepto general conocido como robo de ciclos .

R0 se utiliza como puntero de dirección DMA. La dirección inicial de los datos DMA se colocaría en R0 y luego bajaría el pin de lectura o escritura apropiado en la CPU. La CPU respondió a la solicitud de DMA incrementando el valor en R0, de modo que la siguiente solicitud se almacene automáticamente en la siguiente ubicación de la memoria. Por lo tanto, simplemente activando repetidamente los pines DMA, el sistema recorrería 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 cargar un programa 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 con un 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 mediante el paso 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 requieren 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, el MOS Technology 6502 necesita de dos a siete ciclos de reloj para ejecutar una instrucción, y el Intel 8080 necesita de cuatro a 18 ciclos de reloj.

chips de soporte

Gráficos

En las primeras microcomputadoras basadas en 1802, el chip controlador de pantalla de video de gráficos complementario, RCA CDP1861 (para el formato de video NTSC , variante CDP1864 para PAL ), usaba el controlador DMA incorporado para mostrar gráficos de mapa de bits en blanco y negro en pantallas de TV estándar a hasta a 64 píxeles horizontalmente por 128 píxeles verticalmente. El 1861 también era conocido 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 funcionaban a otras velocidades como los ~2,8 MHz del Comx o los 5 MHz del Pecom . El COSMAC VIP , que integraba el chip de video con el procesador como una computadora diseñada específicamente para ese propósito (en lugar de como un complemento de un kit para aficionados), hizo funcionar el 1802 mucho más lento, sincronizándolo exactamente con el 1861, a un ritmo no -estándar 1.76064 MHz, como se recomienda en el diseño de referencia de la hoja de especificaciones de Pixie. [d]

El circuito integrado 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 o el Telmac TMC-600 , utilizaban el VIS (Sistema de interfaz de vídeo), que consta de los circuitos integrados complementarios CDP1869 y CDP1870, para obtener gráficos en color de resolución claramente superior, comparables a otros sistemas de 8 bits de la década de 1980. .

Ejemplos de código

Este pequeño ejemplo de código prueba los pines del indicador de evento (EF). Para probar los pines del uno al cuatro, cambie B4 a B2, que prueba el pin EF2.

BUCLEB4 EFbranch ; debido a que los pines EF están activos en nivel bajo, esto hace que se comporte como una puerta no  SOLICITARBUCLE BR Sucursal EFSEQBUCLE BR 

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

.. PRUEBA ALU OPS   0000 90 GHI 0 .. CONFIGURAR R6 _       0001 B6 PHI 6   0002 F829 LDI DOIT .. PARA ENTRADA DE OPCODE        0004 A6 OLP 6   0005 E0 SEXO 0 .. ( X = 0 YA )      0006 6400 SALIDAS 4 , 00 .. ANUNCIENNOS LISTOS _       0008 E6 SEXO 6 .. AHORA X = 6      0009 3 F09 BN4 * .. ESPÉRALA _ _       000 B 6 C INP 4 .. OK , CONSIGUELO _       000 C 64 OUT 4 .. Y ECO EN PANTALLA        000 D 370 D B4 * .. ESPERA LA LIBERACIÓN       000 F F860 LDI # 60 .. AHORA PREPÁRESE PARA        0011 A6 PLO 6 .. PRIMER OPERANDO      0012 E0 SEXO 0..DILO _ _ _      0013 6401 SALIDA 4 , 01   0015 3 F15 BN4 *   0017 E6 SEXO 6 .. TÓMALO Y ECO _ _         0018 6 C ENTRADA 4 .. ( A 0060 )      0019 64 OUT 4 .. ( TAMBIÉN INCREMENTAR R6 )       001 A 371 A B4 *   001 C E0 SEXO 0 .. Ídem SEGUNDO OPERANDO       001 D 6402 SALIDA 4 , 02   001 F E6 SEXO 6   0020 3 F20 BUCLE : BN4 * .. ESPÉRATE _ _        0022 6 C INP 4 .. CONSIGUELO ( NOTA : X = 6 ) _        0023 64 OUT 4 .. ECO _      0024 3724 B4 * .. ESPERA LIBERACIÓN _       0026 26 DIC 6 .. RESPALDO R6 A 0060 _         0027 26 DIC 6   0028 46 LDA 6 .. OBTENER 1 ST OPERANDO A D         0029 C4 HACER : NOP .. HACER OPERACIÓN      002 A C4 NOP .. ( REPUESTO )    002 B 26 DIC 6 .. VOLVER A 0060       002 C 56 STR 6 .. RESULTADO DE SALIDA      002 D 64 FUERA 4 .. ( X = 6 AÚN )      002 E 7 A REQ .. APAGAR Q _      002 F CA0020 BUCLE LBNZ .. ENTONCES SI CERO ,       0032 7 B SEQ .. ENCENDERLO OTRA VEZ _       0033 3020 BR BUCLE .. REPETIR EN CUALQUIER CASO        

Nota: La rutina anterior supone que el microprocesador CDP1802 está en un estado de reinicio inicial (o que se configuró como tal antes de ejecutar este código). Por lo tanto, el contador de programa (PC) y el 'puntero' del registro indirecto X están configurados en el registro R0 de 16 bits. Es por eso que puede generar un valor inmediato, como en el ejemplo 'OUT 4,00', porque tanto PC como 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 señalado por 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 la rutina configurada X (SEXO) 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 ("buffer"), INP no lo hace. Almacena el valor en la dirección señalada por RX y en el acumulador de bytes de datos D 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 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 (bucle; * = 'esta dirección'), "bifurcación si la línea EF4 de entrada de un solo bit está baja", se utiliza para probar si se presiona el botón momentáneo 'Entrada'. El bucle del código de operación B4 ('if hola') espera a que se suelte el botón. SEQ y REQ encienden y apagan la única línea Q, que generalmente está 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 manejar datos de registros de 16 bits, el programador debe obtener y colocar los valores alto o bajo 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 bifurcaciones de direcciones completas 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 de máquina.

Notas

  1. ^ La fecha exacta varía entre las referencias, como es el caso de la mayoría de las fechas relacionadas con COSMAC. Edwards lo sitúa en 1969, [9] mientras que la mayoría de los demás dicen 1970, la fecha utilizada aquí.
  2. ^ Esta fue la revisión anual de las operaciones de 1973, publicada en algún momento de 1974. [10]
  3. ^ Las fechas exactas del muestreo y lanzamiento general de los distintos dispositivos COSMAC siguen siendo imprecisas. Herb Johnson ha elaborado una lista extensa de informes RCA que forman la base de las fechas de este artículo. [11]
  4. ^ Sin embargo, dada la antigüedad de la máquina, esto puede deberse a que aún no se han desarrollado grados de velocidad más altos, lo que significa que el procesador solo tenía una potencia máxima de 3,2, o posiblemente incluso solo 2,5 MHz. Aunque es un caso extremo, la máquina no sería la única que ejecuta una CPU muy por debajo de su velocidad nominal para ahorrar costos y complejidad en el sistema de cronometraje, y simplemente funcionar a 3,52 MHz habría representado un riesgoso 10%, o incluso un overclock insosteniblemente extremo del 41% .

Referencias

Citas

  1. ^ abcd Cass 2018.
  2. ^ "RCA COSMAC 1802". La página del coleccionista de fichas antiguas . 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. ^ "José 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. ^ ab Cass, Stephen. "Salón de la fama del chip: RCA CDP 1802 - IEEE Spectrum". espectro.ieee.org . IEEE . Consultado el 19 de julio de 2023 .
  6. ^ "CDP1802A". Archivado desde el original el 9 de marzo de 2012 . Consultado el 23 de agosto de 2010 .
  7. ^ "Microprocesador CMOS de 8 bits de alta confiabilidad CDP1802AC / 3". Intersil Américas LLC. 17 de octubre de 2008.
  8. ^ Weisbecker 1974, pág. 41.
  9. ^ abcdefghij Edwards 2017.
  10. ^ ab Laboratorio 1973, pag. 152.
  11. ^ Johnson, Herb (11 de diciembre de 2018). Fechas "COSMAC 1801, 1802""".
  12. ^ "RCA MCDS, sistema de desarrollo informático de microplacas". RetroTechnology.com. 2020-10-28 . Consultado el 8 de mayo de 2022 .
  13. ^ Ruske, Dave. "Cibervisión 2001, 3001 y 4001". COSMAC Elfo . COSMACELF.COM . Consultado el 30 de junio de 2016 .
  14. ^ "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 .
  15. ^ "Informe de equipo: microcomputadora Infinite UC1800" (PDF) . ClassicCmp.org - Computación clásica . Revista Radio Electrónica. Agosto de 1977 . Consultado el 22 de enero de 2017 .
  16. ^ Haberhern, William (febrero de 1977). "Artículo de la Revista Kilobaud, página 90". Archivo.org . Wayne Verde . Consultado el 22 de enero de 2017 .
  17. ^ Ciervo, Lee. "La computadora de la tarjeta de membresía 1802". Página de inicio de Lee Hart . Lee Hart . Consultado el 22 de mayo de 2016 .
  18. ^ "Tiempo libre Gizmos Elf 2000 (Elf 2K)".
  19. ^ "Cinco generaciones de medidores de humedad Sinar" . Consultado el 22 de mayo de 2016 .
  20. ^ "Inforcel" . Consultado el 22 de mayo de 2016 .
  21. ^ Johnson, Herbert R. (22 de junio de 2016). Sistema 00 "RCA/Weisbecker", también conocido como "FRED"". Retrotecnología . Consultado el 23 de junio de 2016 .
  22. ^ "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 .
  23. ^ Donnelly, William (7 de julio de 2016). "MDCCCII (1802) | Integración de productos: aplicaciones científicas y comerciales". "Un espectáculo de retrocomputación de CPU COSMAC 1802 ". William Donnelly . Consultado el 7 de julio de 2016 .
  24. ^ Briggs, GR; Connor, SJ; Sinniger, JO; Stewart, RG (agosto de 1978). "Microprocesador CMOS sobre zafiro de 40 MHz". Transacciones IEEE en dispositivos electrónicos . 25 (8): 952–959. doi :10.1109/T-ED.1978.19207.
  25. ^ ab Dingwall, A.; Stricker, R.; Sinniger, J. (octubre de 1977). "Un microprocesador CMOS C2L masivo de alta velocidad". Revista IEEE de circuitos de estado sólido . IEEE. 12 (5): 457–462. doi :10.1109/ISSCC.1977.1155726.
  26. ^ "Una familia de microprocesadores CMOS Si-Gate a granel endurecidos por radiación" (PDF) . OIEA.org . Consultado el 4 de junio de 2016 .>
  27. ^ Tomayko, James (abril de 1987). "Computadoras en vuelos espaciales: la experiencia de la NASA". NASA . Consultado el 6 de febrero de 2010 .
  28. ^ http://www2.jpl.nasa.gov/magellan/guide4.html#4.11 Guía del explorador de Venus de Magallanes, Capítulo 4 - La nave espacial Magellan - Computación y software
  29. ^ "RCA COSMAC VIP". Sitio web de tecnología obsoleta . Consultado el 31 de enero de 2010 .
  30. ^ http://www.amsat.org/amsat-new/AboutAmsat/amsat_history.php Historia de AMSAT
  31. ^ 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.
  32. ^ Desmontaje del colocador de espoleta Royal Ordnance L1A1 , consultado el 16 de octubre de 2022
  33. ^ "Software de tarjeta de membresía".
  34. ^ "Computadoras Itty Bitty y TinyBasic".
  35. ^ "Estado actual del compilador HAL/S en la computadora Modcomp Classic 7870" (PDF) .
  36. ^ MASCOT (Espectrómetro / Cámara Astronómica del MIT para telescopios ópticos). Enero de 1980.
  37. ^ Panadero, Scott (2016). "CPU 1802 codificada en VHDL". Scott L. Baker Github . Scott panadero . Consultado el 24 de julio de 2016 .
  38. ^ Smith, Eric (2009). "cosmac - Núcleo de CPU funcional equivalente RCA COSMAC CDP1802 en VHDL". Eric Smith Github . Eric Smith . Consultado el 9 de julio de 2019 .
  39. ^ Verde azulado, 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 .
  40. ^ Rossin, Ted (2011). "Clon elfo". Página de inicio de Ted Rossin . Ted Rossin . Consultado el 24 de julio de 2016 .
  41. ^ Donnelly, William (2011). "Simulador COSMAC Elf-ish CDP1802 en JavaScript". Página de inicio de Donnelly-House . William Donnelly . Consultado el 24 de julio de 2016 .
  42. ^ Landsteiner, masa: werk, Norbert (5 de junio de 2021). "(¡Ahora Go Bang!) 6502 Códigos de operación" ilegales "desmitificados". ¡Ahora ve, explota! — masa:werk / Blog . Consultado el 2 de febrero de 2024 .{{cite web}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  43. ^ "Conjunto de instrucciones 6502". masa:trabajo .
  44. ^ Shvets, Gennadiy (2 de octubre de 2016). "Familia de microprocesadores RCA 1802 (CDP1802)". CPU-World . Gennady Shvets . Consultado el 17 de octubre de 2016 .
  45. ^ "¿Qué significa SEXO?" . Consultado el 26 de diciembre de 2013 .
  46. ^ ab Manual de usuario del microprocesador COSMAC CDP1802
  47. ^ Pittman, Tom (1980). "Un curso breve de programación". cosmacelf.com . Consultado el 20 de mayo de 2017 .

Bibliografía

enlaces externos

Partes menores de este artículo se basaron originalmente en material del Diccionario gratuito de informática en línea , que tiene licencia GFDL .