La arquitectura Clipper es una arquitectura de conjunto de instrucciones de unidad central de procesamiento (CPU) de 32 bits similar a la de una computadora con conjunto de instrucciones reducido ( RISC ) , diseñada por Fairchild Semiconductor . La arquitectura tuvo poco éxito comercial: los únicos fabricantes de computadoras que crearon líneas de productos importantes que utilizaban procesadores Clipper fueron Intergraph y High Level Hardware , aunque Opus Systems ofreció un producto basado en Clipper como parte de su gama de mainframes personales . [ 1 ] Los primeros procesadores que utilizaban 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 de computadoras con conjuntos de instrucciones complejos (CISC) anteriores, pero incorporaba algunas instrucciones más complejas que las presentes en otros procesadores RISC contemporáneos. Estas instrucciones se implementaban en una memoria de solo lectura (ROM) denominada macroinstrucciones dentro de la CPU Clipper. Este esquema permitía que Clipper tuviera una densidad de código ligeramente superior a la de otras CPU RISC.
Versiones
El primer microprocesador Clipper fabricado por Fairchild fue el C100, disponible desde 1986. 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 por completo para ser más rápido y con más registros aritméticos de punto flotante . El procesador C400 combinó dos técnicas arquitectónicas clave para alcanzar un nuevo nivel de rendimiento: despacho de instrucciones superescalar y operación supersegmentada .
Si bien muchos procesadores de la época utilizaban despacho de instrucciones superescalar o funcionamiento supersegmentado , 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 este 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 Intergraph obtuvo patentes sobre ellas. Estas patentes, junto con las patentes originales del Clipper, han sido la base de demandas por infracción de patentes interpuestas por Intergraph contra Intel y otras compañías. [ 4 ]

A diferencia de muchos otros microprocesadores, los procesadores Clipper eran en realidad conjuntos de varios chips distintos. Los C100 y C300 constan de tres chips: una unidad central de procesamiento que contiene una unidad de enteros y una unidad de punto 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 traducción de direcciones y soporte para protección de memoria y memoria virtual . El C400 consta de cuatro unidades básicas: una CPU de enteros, una FPU, una MMU y una unidad de caché. La versión inicial utilizaba un chip para la CPU y otro para 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 solo chip CAMMU.
Registros y conjunto de instrucciones
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 del procesador (PSW) que contiene indicadores de estado de la ALU y la FPU y habilitaciones de trampas, y una palabra de estado del 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 de registros enteros separados. El manejo de interrupciones consistía en guardar el PC, el PSW y el SSW en la pila, borrar el PSW y cargar el PC y el SSW desde un vector de interrupción de memoria.
El procesador Clipper utiliza una arquitectura de carga/almacenamiento , donde las operaciones aritméticas solo pueden especificar operandos de registro o inmediatos. El paquete de instrucciones básico consta de 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 uno o dos paquetes de instrucciones subsiguientes especifiquen un operando inmediato de 16 bits (con extensión de signo) o de 32 bits. El procesador es uniformemente little-endian, incluyendo los operandos inmediatos.
Se proporciona una codificación "rápida" especial con un operando sin signo de 4 bits para suma, resta, carga (mover quick al registro) y negación (mover el complemento de quick al registro).
Los modos de direccionamiento para las instrucciones de carga/almacenamiento y salto son los siguientes. Todos los desplazamientos se extienden con signo.
- (Rn), d12(Rn), d32(Rn): Registro relativo con desplazamiento de 0, 12 o 32 bits.
- d16(PC), d32(PC): PC-relativo
- d16, d32: absoluto
- [Rx](Rn), [Rx](PC): Registro o PC indexado. El registro de índice no se escala.
Además de las operaciones lógicas y aritméticas habituales, el procesador admite:
- Multiplicación, división y resto de 32×32 a 32 bits (con signo y sin signo)
- Desplazamientos y rotaciones de 64 bits, que operan sobre pares de registros pares/impares.
- Multiplicaciones extendidas de 32×32→64 bits
- Inserción/extracción de registros enteros (almacenamiento con predecremento, carga con postincremento)
- Llamada a subrutina (empujar el contador de programa, mover la dirección del operando al contador de programa).
- Retorno de la subrutina (extraer el contador de programa de la pila)
- Carga atómica de memoria y establecimiento del bit msbit
- Trampa del supervisor
Las instrucciones macro más complejas permiten:
- Inserción/extracción de múltiples registros enteros R n –R14
- Insertar/deshacer múltiples registros de punto flotante D n –D7
- Registros de usuario push/pop R0–R15
- Regreso de la interrupción (pop SSW, PSW y PC)
- Inicializar cadena de bytes (almacenar R0 copias de R2 en memoria comenzando en R1)
- Mover caracteres y comparar caracteres (longitud en R0, origen en R1, destino en R2)
La mayoría de las instrucciones permiten especificar un registro de puntero de pila arbitrario, pero, a excepción de las operaciones de guardar/restaurar registros de usuario, las operaciones con múltiples registros solo pueden usar R15.
Sistemas Clipper de Intergraph

Intergraph comercializó varias generaciones de sistemas Clipper, incluyendo servidores y estaciones de trabajo . Estos sistemas incluían las líneas de productos InterAct, InterServe e InterPro y estaban dirigidos principalmente al mercado del diseño asistido por ordenador (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 presentó públicamente, pero este esfuerzo se canceló antes de su lanzamiento. [ 5 ] Intergraph decidió descontinuar la línea Clipper y en su lugar comenzó a vender sistemas x86 con Windows NT .
Referencias
- ↑ "Opus Systems presenta las estaciones de trabajo Unix de la serie 300" . Computerworld . 4 de marzo de 1987. pág. 41. Consultado el 23 de junio de 2022 .
- ↑ Weisberg, David (2008). "La revolución del diseño de ingeniería: las personas, las empresas y los sistemas informáticos que cambiaron para siempre la práctica de la ingeniería" (PDF) . Capítulo 14. Archivado (PDF) del original el 4 de marzo de 2016. Recuperado el 26 de junio de 2016 .
- ↑ La colección de CPU. "Intergraph Clipper C4" .
- ↑ Flynn, Laurie (31 de marzo de 2004). "Intergraph e Intel resuelven disputa sobre chips" . The New York Times . Archivado del original el 19 de junio de 2015. Recuperado el 26 de junio de 2016 .
- ↑ Simpson, Nik (15 de enero de 2000). "Re: Intergraph Interact 340" . Grupo de noticias : comp.sys.intergraph . Usenet: Sg0g4.34$Ek.5695@newsin1.ispchannel.com .
- Fairchild Semiconductor Corporation (1987). Microprocesador Clipper de 32 bits: Manual del usuario . Prentice-Hall. ISBN 0-13-138058-3.
- Hollingsworth, Walter; Sachs, Howard; Smith, Alan Jay (1989). "El procesador Clipper: arquitectura e implementación del conjunto de instrucciones" . Communications of the ACM . 32 (2): 200– 219. doi : 10.1145/63342.63346 . S2CID 13239029 .
- Hollingsworth, Walter; Sachs, Howard; Smith, Alan Jay (11 de febrero de 1987). El Fairchild Clipper: Arquitectura del conjunto de instrucciones e implementación del procesador (PDF) (Informe técnico). UCB/CSD. 87/329 . Recuperado el 22 de marzo de 2011 .
- Cho, James; Smith, Alan Jay; Sachs, Howard (abril de 1986). La arquitectura de memoria y la unidad de gestión de memoria y caché para el procesador Fairchild Clipper (PDF) (Informe técnico). UCB/CSD. 86/289 . Recuperado el 22 de marzo de 2011 .
- Sachs, Howard; McGhan, Harlan; Hanson, Lee; Brookwood, Nathan (1991). "Compromisos de diseño e implementación en la arquitectura Clipper C400". IEEE Micro . 11 (3): 18– 21, 74– 80. Bibcode : 1991IMicr..11c..18S . doi : 10.1109/40.87566 . S2CID 8895269 .
- Historia de Intergraph
- Conjunto de instrucciones del módulo microprocesador Clipper de 32 bits (PDF) (Informe). Fairchild. Octubre de 1985. Consultado el 11 de julio de 2020 .
- Microprocesador Clipper de 32 bits: Introducción a la arquitectura Clipper (PDF) (Informe). Fairchild. Mayo de 1986. Consultado el 11 de julio de 2020 .
- Hoja de datos del motor de cómputo Clipper C100 de 32 bits (PDF) (Informe). Intergraph. Diciembre de 1987. Consultado el 11 de julio de 2020 .
- Arquitecturas de conjuntos de instrucciones
- microprocesadores de 32 bits