CDP1802

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

El CDP1802 es un microprocesador de RCA fabricado en tecnología cmos. Es la segunda versión del COSMAC primer microprocesador cmos, que estaba formado por dos circuitos, reunidos en uno solo en el 1802.

Características[editar]

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. El bus de direcciones sólo consta de ocho hilos, 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.

Arquitectura[editar]

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:

  • D: Acumulador de 8 bits.
  • P: Indica que registro actúa como contador de programa. Es de 4 bits.
  • X: Indica que registro actúa como puntero de datos. Es de 4 bits.
  • DF: Indicador de acarreo. Un bit.
  • Q: Flag de usuario. Un bit.
  • EI: Habilita la interrupción. Un bit.
  • T: Registro temporal que contiene los valores de P y X, se usa bajo control del programa.

Instrucciones y direccionamientos[editar]

  • La única forma que el 1802 tiene para acceder a la memoria es indirectamente a través de los registros. Esto es M(R(n)), pero permite incrementar el registro, es decir: M(R(n)++), de modo que R(n) queda apuntando al siguiente byte. Como el contador de programa es uno de los registros, el direccionamiento inmediato no es más que M(R(P)++). Es necesario incrementar el registro para que apunte a la siguiente instrucción.
  • No existen saltos relativos, sino que se dividen en tres tipos:
    • Cortos, que cambian la parte baja del contador de programa, esto es: M→R(P).0
    • Largos, que cambian los 16 bits, permitiendo saltar a cualquier parte de la memoria.
    • Skip, que solo salta un byte. Tambuén existe un Skip Long incondicional que salta dos bytes.
  • No posee aritmética BCD, aunque sus derivados 1805 y 1806, sí.
  • Tiene instrucciones que realizan tanto la resta "acumulador menos memoria", D - M(R(N))→ D, como "memoria menos acumulador", M(R(N)) - D → D.
  • Carece de pila, de modo que ésta, si se usa, debe mantenerse mediante programa. Las versiones 1805 y 1806 incluyen "Standard Call" y "Standard Return". Son más lentas que modificar P, pero permiten un número ilimitado de subrutinas anidadas.

Versiones[editar]

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.

  • El 1806 es un 1802 con el juego de instrucciones extendido y temporizador.
  • El 1805 es un 1806 con RAM interna.