La familia de microprocesadores Capricorn fue desarrollada por Hewlett-Packard a finales de los años 1970 para las microcomputadoras científicas HP Series 80. Capricorn se utilizó por primera vez en la computadora BASIC de escritorio HP-85 , presentada en enero de 1980. Steve Wozniak se inspiró para construir la Apple para que fuera una computadora como la HP 9830 y, en 1976, ofreció a HP los derechos de la computadora Apple. Fue rechazado y se le dio una cesión. Cuando la división de calculadoras comenzó un proyecto de computadora de 8 bits llamado Capricorn, se fue a Apple cuando no se le permitió trabajar en ese proyecto. [1] [2]
Fuente: [3]
Capricorn es una CPU microprogramada que contiene 64 registros de ocho bits, una unidad lógica aritmética (ALU) de ocho bits, un desplazador y una lógica de control. Los 64 registros están divididos por límites. Hay un límite cada dos bytes para los primeros 32 registros y un límite cada 8 bytes para los 32 registros restantes. Cada instrucción de bajo nivel modifica los datos comenzando en el registro al que se dirige hasta el siguiente límite. El diseño da como resultado un código muy compacto. El codificador tenía que acceder y modificar entre uno y ocho bytes utilizando solo una instrucción de CPU.
Los primeros 32 registros se utilizan a menudo para la manipulación de direcciones. Los 32 registros restantes se utilizan para operaciones de punto flotante. Debido a que hay cuatro conjuntos de ocho registros de límite de bytes (32-63), la mayoría de las operaciones de punto flotante se realizan utilizando solo registros sin ningún acceso a la memoria. Seis de los primeros 32 registros están reservados por hardware para su uso como registros de propósito especial: un par de registros se define como el contador de programa, otro par como el puntero de pila y un par más como un puntero de índice para operaciones internas. No hay un acumulador dedicado: cualquier registro general se puede utilizar para los resultados de ALU porque el archivo de registros está diseñado para permitir hasta dos operaciones de lectura y una de escritura para los primeros 32 registros y hasta ocho operaciones de lectura y una de escritura para los 32 registros restantes al mismo tiempo. Cualquier par de registros se puede utilizar como un registro de índice de 16 bits.
La ALU puede funcionar en modo binario o en modo decimal codificado en binario (BCD). Las instrucciones de longitud variable permiten al programador tratar los datos de los 32 registros superiores como entidades de entre uno y ocho bytes de longitud; por ejemplo, se pueden sumar dos valores de ocho bytes (por ejemplo, la mantisa de un número de punto flotante) utilizando una sola instrucción. Esta característica reduce la cantidad de bucles que se deben programar.
La CPU tiene un mecanismo de interrupción con hasta 127 vectores. Para el acceso directo a la memoria , la CPU puede ser detenida por un dispositivo externo.
La CPU Capricorn se implementó como un circuito lógico NMOS de compuerta de silicio (4,93 × 4,01 mm) en un encapsulado dual en línea de 28 pines , con un bus externo multiplexado de 8 bits. El chip de la CPU consumía 330 mW a 625 kHz.
La sincronización de la CPU está controlada por cuatro fases de reloj no superpuestas con un ancho de 200 nanosegundos y un espaciado de 200 nanosegundos, para un ciclo de reloj general de 1,6 microsegundos, equivalente a una frecuencia de reloj de 625 kHz .
El sistema completo incluía chips de soporte diseñados conjuntamente con la CPU, como un controlador de memoria dinámica, un controlador de teclado con temporizadores, un controlador de impresora y un controlador CRT. Un chip de búfer especial conectado a las ranuras de expansión.