La arquitectura Clipper es una arquitectura de conjunto de instrucciones de 32 bits similar a RISC diseñada por Fairchild Semiconductor . La arquitectura nunca tuvo mucho éxito en el mercado, y los únicos fabricantes de computadoras que crearon líneas de productos importantes utilizando procesadores Clipper fueron Intergraph y High Level Hardware , aunque Opus Systems ofreció un producto basado en el Clipper como parte de su gama Personal Mainframe. [1] Los primeros procesadores que utilizaron la arquitectura Clipper fueron diseñados y vendidos por Fairchild, pero la división responsable de ellos fue vendida posteriormente a Intergraph en 1987; Intergraph continuó trabajando en procesadores Clipper para su uso en sus propios sistemas. [2]
La arquitectura Clipper utilizaba un conjunto de instrucciones simplificado en comparación con las arquitecturas CISC anteriores , pero incorporaba algunas instrucciones más complicadas que las que estaban presentes en otros procesadores RISC contemporáneos. Estas instrucciones se implementaban en una denominada ROM de macroinstrucciones dentro de la CPU Clipper. Este esquema permitía que Clipper tuviera una densidad de código algo mayor que otras CPU RISC.
El primer microprocesador Clipper producido por Fairchild fue el C100, que se comercializó en 1986. A este le siguió el C300, más rápido, de Intergraph, en 1988. El modelo final del Clipper fue el C400, lanzado en 1990, que fue rediseñado en profundidad para que fuera más rápido y le añadieron más registros de coma flotante. El procesador C400 combinó dos técnicas arquitectónicas clave para lograr un nuevo nivel de rendimiento: el envío de instrucciones superescalares y el funcionamiento supercanalizado.
Si bien muchos procesadores de la época utilizaban despacho de instrucciones superescalares u operaciones supercanalizadas , el Clipper C400 fue el primer procesador en utilizar ambos. [3]
Intergraph comenzó a trabajar en un diseño posterior del procesador Clipper, conocido como C5, pero nunca se completó ni se lanzó al mercado. No obstante, se idearon algunas técnicas avanzadas de diseño de procesadores para el C5, y se concedieron patentes a Intergraph sobre ellas. Estas patentes, junto con las patentes originales de Clipper, han sido la base de demandas por infracción de patentes presentadas por Intergraph contra Intel y otras empresas. [4]
A diferencia de muchos otros microprocesadores, los procesadores Clipper eran en realidad conjuntos de varios chips distintos. El C100 y el C300 constan de tres chips: una unidad central de procesamiento que contiene tanto una unidad de números enteros como una unidad de coma flotante , y dos unidades de gestión de memoria y caché (CAMMU), una responsable de los datos y otra de las instrucciones. Las CAMMU contenían cachés, búferes de búsqueda de traducción y soporte para protección de memoria y memoria virtual . El C400 consta de cuatro unidades básicas: una CPU de números enteros, una FPU, una MMU y una unidad de caché. La versión inicial utilizaba un chip para la CPU y la FPU y elementos discretos para la MMU y la unidad de caché, pero en versiones posteriores la MMU y la unidad de caché se combinaron en un chip CAMMU.
El Clipper tiene 16 registros enteros (R15 se usa como puntero de pila), 16 registros de punto flotante (limitados a 8 en las primeras implementaciones), además de un contador de programa (PC), una palabra de estado de procesador (PSW) que contiene indicadores de estado de ALU y FPU y habilitaciones de trampas, y una palabra de estado de sistema (SSW) que contiene habilitación de interrupción externa, modo de usuario/supervisor y bits de control de traducción de direcciones.
Los modos de usuario y supervisor tienen bancos separados de registros enteros. El manejo de interrupciones consistía en guardar el PC, PSW y SSW en la pila, borrar el PSW y cargar el PC y SSW desde un vector de trampa de memoria.
Clipper es una arquitectura de carga/almacenamiento , donde las operaciones aritméticas solo pueden especificar registros u operandos inmediatos. El "paquete" de instrucciones básico tiene 16 bits: 8 bits de código de operación, 4 bits de registro de origen y 4 bits de registro de destino. Las formas de operando inmediato permiten que 1 o 2 paquetes de instrucciones siguientes especifiquen un operando inmediato de 16 bits (con signo extendido) o de 32 bits. El procesador es little-endian de manera uniforme, incluidos los operandos inmediatos.
Se proporciona una codificación "rápida" especial con un operando sin signo de 4 bits para sumar, restar, cargar (mover rápido al registro) y no (mover complemento de rápido al registro).
Los modos de direccionamiento para las instrucciones de carga/almacenamiento y bifurcación son los siguientes. Todos los desplazamientos tienen signo extendido.
Además de las operaciones lógicas y aritméticas habituales, el procesador admite:
Las macroinstrucciones más complejas permiten:
La mayoría de las instrucciones permiten especificar un registro de puntero de pila arbitrario, pero, a excepción de guardar/restaurar el registro de usuario, las operaciones de múltiples registros solo pueden usar R15.
Intergraph vendió varias generaciones de sistemas Clipper, incluidos servidores y estaciones de trabajo . Estos sistemas incluían las líneas de productos InterAct, InterServe e InterPro y estaban orientados principalmente al mercado CAD .
Fairchild promovió el sistema operativo CLIX, una versión de UNIX System V , para su uso con Clipper. Intergraph adoptó CLIX para sus sistemas basados en Clipper y continuó desarrollándolo; este era el único sistema operativo disponible para esos sistemas. Intergraph trabajó en una versión de Microsoft Windows NT para sistemas Clipper y la demostró públicamente, pero este esfuerzo fue cancelado antes del lanzamiento. [5] Intergraph decidió discontinuar la línea Clipper y comenzó a vender sistemas x86 con Windows NT en su lugar.