El 88000 ( m88k para abreviar) es una arquitectura de conjunto de instrucciones RISC desarrollada por Motorola durante la década de 1980. El MC88100 llegó al mercado en 1988, unos dos años después de los competidores SPARC y MIPS . Debido al inicio tardío y a los grandes retrasos en el lanzamiento del MC88110 de segunda generación , el m88k logró un éxito muy limitado fuera de la plataforma MVME y los entornos de controladores integrados. Cuando Motorola se unió a la alianza AIM en 1991 para desarrollar el PowerPC , el desarrollo posterior del 88000 finalizó.
Motorola entró en la década de 1980 en una posición de fuerza; el Motorola 68000, recientemente presentado por la compañía, superó fácilmente a cualquier otro microprocesador en el mercado, y su arquitectura de 32 bits se adaptó naturalmente al mercado emergente de estaciones de trabajo . Intel no estaba incursionando agresivamente en el espacio de 32 bits, y las compañías que lo hicieron, en particular National Semiconductor , arruinaron sus lanzamientos y dejaron a Motorola en control de todo lo que no era Intel . En ese momento, Intel tenía alrededor del 80% del mercado total de computadoras, mientras que Motorola controlaba el 90% del resto.
En este contexto, a principios de los años 80 se introdujo el concepto RISC. Al principio, hubo un intenso debate en el sector sobre si el concepto mejoraría realmente el rendimiento o si sus programas en lenguaje de máquina más largos ralentizarían la ejecución debido a accesos adicionales a la memoria. Todo ese debate terminó a mediados de los años 80, cuando aparecieron las primeras estaciones de trabajo basadas en RISC; la última Sun-3/80, que funcionaba con un Motorola 68030 de 20 MHz, ofrecía unos 3 MIPS, mientras que la primera Sun-4/260 basada en SPARC con un SPARC de 16 MHz ofrecía 10 MIPS. Hewlett-Packard , DEC y otros grandes fabricantes empezaron a adoptar plataformas RISC.
Este cambio en el mercado tenía el potencial de dejar a Motorola fuera del mercado de estaciones de trabajo, uno de sus únicos bastiones y uno de los más lucrativos. Apple siguió siendo el único gran proveedor de la compañía fuera del espacio de las estaciones de trabajo; otros usuarios del 68000, en particular Atari Corporation y Commodore International , estaban tambaleándose en un mercado que se estaba estandarizando rápidamente en los modelos compatibles con IBM PC . [1]
Los diseños RISC fueron un esfuerzo consciente para adaptar el procesador a los tipos de operaciones que llamaban los compiladores en esa plataforma, en el caso de las estaciones de trabajo Unix, el lenguaje de programación C. El proyecto seminal IBM 801 había notado que los compiladores generalmente no usaban la gran mayoría de las instrucciones disponibles para ellos, y en su lugar usaban la versión más simple de las instrucciones, a menudo porque estas se desempeñaban más rápido. Sin embargo, los circuitos que proporcionaban las otras versiones de estas instrucciones agregaron sobrecarga incluso a la versión más simple. Eliminar estas instrucciones no utilizadas de la CPU eliminó esta sobrecarga y liberó un espacio significativo en el chip. Esto dio lugar para aumentar el número de registros del procesador , lo que tuvo un impacto mucho mayor en el rendimiento que las instrucciones de casos especiales eliminadas. Por esta razón, se puede decir que el concepto RISC está impulsado por el diseño del mundo real de los compiladores. [2]
Los artículos de Motorola sobre el diseño del 88000 hablan de instrucciones de un solo ciclo, archivos de registro de procesador de gran tamaño y otras características del concepto RISC, pero no mencionan la palabra "RISC" ni una sola vez. [3] Como los diseños RISC existentes ya habían entrado en el mercado, la empresa decidió que no intentaría competir con ellos y, en su lugar, produciría el procesador más potente del mundo. Para ello, tomó notas de diseño de una de las computadoras más rápidas de una era anterior, la supercomputadora CDC 6600. En particular, adoptó el concepto de tablero de puntuación del 6600. El tablero de puntuación permitía a la CPU examinar el uso de registros de la instrucción y enviar inmediatamente aquellos que no dependían de cálculos previos que aún no estaban completos; esto permitía reordenar las instrucciones para permitir que se ejecutaran las que tenían los datos requeridos mientras que otras tenían sus datos cargados desde la memoria caché o la memoria. Esta reordenación de instrucciones podía mejorar el uso hasta en un 35%. [4]
El diseño también utilizaba buses de direcciones de datos e instrucciones separados. Esto era costoso en términos de número de pines; tanto las cachés de instrucciones como las de datos tenían 32 pines para sus direcciones y 32 pines para los datos, lo que significa que el sistema completo utilizaba 128 pines en el "bus P". Este diseño se basó en la observación de que solo alrededor de un tercio de las operaciones estaban relacionadas con la memoria; el resto operaba sobre datos ya leídos. Esto favorecía fuertemente tener una ruta de instrucciones dedicada a una caché de instrucciones externa. Las cachés y las unidades de gestión de memoria (MMU) asociadas eran inicialmente externas, un controlador de caché podía conectarse a los buses de datos o de instrucciones, y se podían utilizar hasta cuatro controladores en cada bus. Internamente había tres buses de 32 bits, conectados a las unidades internas de diferentes maneras según fuera necesario para leer y escribir datos en los registros. [5]
Otra característica del nuevo diseño era su soporte integrado para coprocesadores especializados, o "unidades de función especial", o SFUs. [5] Además de los comandos internos soportados de fábrica, reservó bloques de 256 instrucciones que podían ser utilizados por coprocesadores. Esto estaba dirigido a los diseñadores que deseaban personalizar el sistema; se podían agregar nuevas unidades funcionales sin afectar la arquitectura del conjunto de instrucciones existente , asegurando la compatibilidad del software para la funcionalidad principal. [2] Cada 88000 venía con SFU1 ya instalado, la unidad de punto flotante (FPU). [5] Las instrucciones de bifurcación y salto incorporan una opción de bifurcación retrasada (.n), que se puede especificar para garantizar que la instrucción secuencial posterior se ejecute antes de la instrucción de destino de la bifurcación, independientemente de la condición de la bifurcación. [6] La colocación de la instrucción de bifurcación u otra instrucción que pueda cambiar el puntero de instrucción, en la ranura de retraso de bifurcación está en desuso para mantener la compatibilidad futura. [7]
En 1987, ya era de conocimiento público que Motorola estaba diseñando su propio procesador RISC. La industria informática lo denominó "78000", [a] un homenaje al anterior 68000, [2] y se convirtió en el 88000 cuando se lanzó en abril de 1988.
Como efecto secundario de la complejidad del diseño, la CPU no cabía en un único chip. El 68030, lanzado un año antes, tenía 273.000 transistores, incluyendo la unidad lógica aritmética (ALU) y la unidad de gestión de memoria (MMU) en un único chip, con la unidad de coma flotante (FPU) opcional como un chip separado. En contraste, el 88000 empaquetaba la ALU y la FPU juntas en el MC88100 de 750.000 transistores, y la unidad de gestión de memoria (MMU) y la memoria caché de RAM estática de 16 KB en el MC88200 de 750.000 transistores. A diferencia del 68030, donde la FPU era realmente opcional, un sistema 88000 práctico no podía construirse sin al menos un MC88200. Los sistemas podían incluir más de un MC88200, produciendo cachés más grandes y permitiendo múltiples rutas a la memoria principal para un mejor rendimiento. [2]
Dirigido al segmento de gama alta del mercado, se afirmó que era el procesador de 32 bits más rápido del mundo cuando se lanzó. Funcionando a 20 MHz, alcanzó 34.000 Dhrystones o 17 VUPS , [8] [b] en comparación con aproximadamente 12 MIPS para un SPARC de 12,5 MHz de la misma antigüedad en el SPARCstation , o alrededor de 3,3 MIPS del 68030 de 20 MHz. También estaba disponible como una parte de 25 MHz a 21 MIPS, 48.387 Dhrystones. [9]
En ese momento, Motorola comercializó el 88000 estrictamente para el segmento de gama alta del mercado, que incluía "telecomunicaciones, inteligencia artificial, gráficos, animación tridimensional, simulación, procesamiento paralelo y supercomputadoras", al tiempo que sugería que la serie 68k existente seguiría utilizándose en el mercado de estaciones de trabajo. En cambio, la mayoría de los clientes potenciales ignoraron el 88000 [8] y el sistema tuvo poco uso.
Como el lanzamiento original no tuvo prácticamente ningún uso fuera de los propios productos de Motorola y esos clientes tradicionales estaban empezando a pasarse a otros diseños RISC, la empresa relanzó el diseño en formato de un solo chip, el MC88110. A finales de los años 80, varias empresas estaban examinando activamente la serie 88000 para su uso futuro, entre ellas NeXT , Apple Computer y Apollo Computer , pero todas habían desistido del diseño cuando el 88110 estuvo finalmente disponible en 1992.
Hubo un intento de popularizar el sistema con el grupo 88open , similar a lo que Sun Microsystems intentaba con su diseño SPARC . Parece que fracasó en cualquier sentido práctico. [10]
A principios de los años 90, Motorola se unió al esfuerzo de AIM para crear una nueva arquitectura RISC basada en la arquitectura IBM POWER . Incorporó algunas características del 88000 (como una interfaz de bus compatible [11] ) en la nueva arquitectura PowerPC para ofrecer a su base de clientes algún tipo de ruta de actualización. En ese momento, el 88000 fue abandonado lo antes posible. [12]
Al igual que el 68000 que lo precedió, el 88000 se consideró un diseño "limpio". Es una arquitectura de carga/almacenamiento de 32 bits pura con cachés de instrucciones y datos separados ( arquitectura Harvard ) [13] y buses de datos y direcciones separados. Tiene un conjunto de comandos pequeño y potente y utiliza un espacio de direcciones plano.
Una característica arquitectónica inusual es que tanto las instrucciones enteras como las instrucciones de punto flotante utilizan el mismo archivo de registro .
La primera implementación del ISA 88000 fue el microprocesador MC88100 , que incluía una FPU integrada . Junto a este se encontraba la MMU MC88200 y el controlador de caché . La idea detrás de esta división de tareas era permitir que los sistemas multiprocesador se construyeran más fácilmente; un solo MC88200 podía admitir hasta cuatro MC88100. Sin embargo, esto también significaba que construir el sistema más básico, con un solo procesador, requería ambos chips y un cableado considerable entre ellos, lo que aumentaba los costos. Probablemente esta fue otra de las razones principales para el éxito limitado del 88000.
Esto fue abordado posteriormente por el superescalar MC88110 , que combinaba la CPU, la FPU, la MMU y la caché L1 en un único paquete. Una modificación adicional, realizada a instancias del proyecto *T del MIT , dio como resultado el MC88110MP, que incluía comunicaciones en chip para su uso en sistemas multiprocesador. [14] Se planeó una versión capaz de alcanzar velocidades de hasta 100 MHz, llamada MC88120, pero nunca se construyó.
A principios de los años 90 se estaba desarrollando una implementación para aplicaciones integradas, el MC88300, pero finalmente se canceló. Ford Motor Company había planeado utilizar los chips, que junto con su adopción por parte de los proveedores de telecomunicaciones se habían considerado como una garantía de la viabilidad de la arquitectura de forma indefinida. [15] Motorola ofreció un diseño PowerPC como reemplazo, que Ford aceptó. [16]
Motorola lanzó una serie de computadoras de placa única , conocidas como la serie MVME , para construir sistemas "listos para usar" basados en el 88000, así como las computadoras apilables Serie 900 que empleaban estas placas MVME. A diferencia de los sistemas de montaje en torre o en bastidor , las de la Serie 900 se colocaban unas sobre otras y se conectaban entre sí con un cableado tipo bus. El concepto nunca se popularizó.
Los usuarios de terceros importantes fueron limitados. El único uso generalizado sería en la serie Data General AViiON . Estas fueron bastante populares y siguen teniendo un uso limitado en la actualidad. Para los modelos posteriores, DG se pasó a Intel. Encore Computer construyó su máquina Encore-91 en el m88k, luego presentó un rediseño completamente desde cero como la serie Infinity 90, pero no está claro cuántas de estas máquinas se vendieron. Encore se pasó al Alpha . Tektronix presentó su línea XD88 de estaciones de trabajo gráficas en abril de 1989. [17]
GEC Computers utilizó el MC88100 para construir el GEC 4310, uno de los ordenadores de la serie GEC 4000 , pero los problemas con la gestión de la memoria hicieron que no funcionara tan bien como los ordenadores de la serie GEC 4000 anteriores de la empresa , basados en matrices de puertas y Am2900 . El modelo TC-2000 de BBN Butterfly utilizó el procesador MC88100 y se escaló a 512 CPU. Linotype-Hell utilizó el 88110 en sus estaciones de trabajo "Power" que ejecutaban el editor de gráficos rasterizados DaVinci para la manipulación de imágenes.
El MC88110 se incluyó en algunas versiones de una máquina NeXT que nunca se lanzó, la NeXT RISC Workstation , pero el proyecto se canceló junto con todos los proyectos de hardware NeXT en 1993. Las máquinas OMRON LUNA-88K de 4 procesadores de Japón usaban el m88k y se usaron durante un corto tiempo en el proyecto del núcleo Mach en la Universidad Carnegie Mellon . A principios de la década de 1990, Northern Telecom utilizó el MC88100 y el MC88110 como procesador central en su familia de conmutadores telefónicos DMS SuperNode.
La mayoría de los demás usuarios eran mucho más pequeños. Alpha Microsystems originalmente planeó migrar a la arquitectura 88K desde el Motorola 68000 , y creó internamente una máquina a su alrededor ejecutando UNIX System V , pero luego fue descartado en favor de derivados posteriores de 68K. [18] NCD usó el 88100 (sin el 88200) en sus X-Terminals 88K . Dolphin Server, una escisión del moribundo Norsk Data , construyó servidores basados en el 88k. [19] Alrededor de 100 sistemas fueron enviados durante 1988-1992.
Virtuality utilizó el MC88110 en la máquina arcade de realidad virtual SU2000 como procesador gráfico, con un MC88110 por pantalla de cada casco de realidad virtual .
En el espacio informático integrado, la "computadora VMS de tres canales" del F-15 S/MTD utilizó tres 88000 en una computadora triplemente redundante. [20]
Motorola lanzó su propio derivado de UNIX System V , System V/88, para sus sistemas basados en 88000. Hubo dos versiones principales: Release 3.2 Version 3 y Release 4.0 Version 3. [21] Los sistemas Data General AViiON ejecutaban DG/UX . Existen puertos OpenBSD para los sistemas MVME, [22] estaciones de trabajo LUNA-88K, [23] y sistemas Data General AViiON. [24] Existe al menos un puerto NetBSD experimental no oficial para los sistemas MVME. [25]