Intel iAPX 432

El Intel iAPX 432 fue el primer diseño de microprocesador de 32 bits de Intel, introducido en 1981 como un conjunto de tres circuitos integrados. El iAPX 432 fue pensado para ser el principal diseño de Intel para los años 1980, implementando muchas características avanzadas de multitarea y manejo de memoria en hardware, que los condujo a referirse al diseño como el Micromainframe.

El soporte para estructuras de datos del procesador permitía implementar los sistemas operativos modernos usando mucho menos código de programa que otros CPUs ordinarios, el 432 haría, internamente en hardware, mucho del trabajo. Sin embargo, el diseño era extremadamente complejo comparado a los microprocesadores de consumo masivo de ese tiempo, tanto, que los ingenieros de Intel no pudieron traducir el diseño en una implementación eficiente usando la tecnología de semiconductores de la época. El CPU resultante fue muy lento y costoso, y así, los planes de Intel para sustituir la arquitectura x86 por el iAPX 432 terminaron miserablemente.

El prefijo del nombre del modelo de procesador, iAPX, se reporta como la abreviación de intel Advanced Processor architecture, la X venía de la letra griega Ji (en inglés, Chi).

Historia

Desarrollo

El proyecto 432, comenzó en 1975 con el nombre de 8800, llamado de esta manera para indicar la continuación de los CPU existentes, 8008 y 8080. El diseño fue pensado desde el principio para ser puramente de 32 bits, y para ser la espina dorsal de Intel en las ofertas de procesadores para los años 1980. Como tal, tenía que ser considerablemente más poderoso y complejo que sus "simples" ofertas existentes. Sin embargo el diseño estaba muy por arriba de las capacidades de la existente tecnología de proceso del momento, y tuvo que ser dividido en varios chips individuales.

El núcleo del diseño fue el Procesador de Datos General (General Data Processor, GDP), que conformaron el procesador principal. El GDP estaba dividido en dos, un chip, el 43201, que manejaban la lectura (fetching) y el decodificado de las instrucciones, el otro, el 43202, que las ejecutaba. La mayoría de los sistemas también incluirían el Procesador de Interfaz (Interface Processor, IP) 43203 que funcionó como controlador de canal para la I/O (entrada/salida). En conjunto, el sistema de tres chips usaba cerca de 250.000 puertas lógicas, haciéndole uno de los diseños más grandes de su época. El contemporáneo Motorola 68000, por ejemplo, tenía cerca de 68.000 puertas lógicas con alrededor de 1/3 de eso para su microcódigo.

En 1983 Intel lanza dos circuitos integrados adicionales para la Arquitectura Interconectada (Interconnect Architecture) del iAPX 432, la Unidad de Interface de Bus 43204 (Bus Interface Unit, BIU) y la Unidad de Control de Memoria 43205 (Memory Control Unit, MCU). Estos chips permitieron sistemas multiprocesadores con hasta 63 nodos casi sin circuitos auxiliares (glueless).

Las fallas del proyecto

Varias características de diseño del iAPX 432 conspiraron para hacerlo mucho más lento de lo que tenía que ser ser. La implementación del GDP en dos chips lo limitó a la velocidad del cableado eléctrico de la tarjeta madre, aunque esto era un problema de menor importancia. La carencia de caches de tamaño razonable y la carencia de registros fue un problema considerablemente más serio. El conjunto de instrucciones también obstaculizó el desempeño, haciendo compleja y lenta la decodificación de las mismas debido a que el procesador usaba instrucciones de longitud variable alineadas a nivel de bits, al contrario de las instrucciones usadas en la mayoría de los otros diseños de procesadores en donde las instrucciones de longitud fija estaban alineadas a la palabra del CPU. Además el BIU fue diseñado para soportar sistemas tolerantes a fallas, y al hacerlo así, agregó una considerable sobrecarga al bus, con hasta 40% del tiempo de éste en estados de espera (wait states).

Investigaciones posteriores al proyecto sugirieron que el mayor problema estaba en el compilador. Éste usaba en todos los casos instrucciones "generales" de alto costo en vez de, donde hubiera tenido sentido, instrucciones más simples y de alto rendimiento. Por ejemplo el iAPX 432 incluyó una muy costosa instrucción de llamada a procedimiento entre módulos, que el compilador usaba para todas las llamadas a pesar de la existencia de instrucciones de bifurcar y enlazar (branch and link) que eran mucho más rápidas. Otra llamada muy lenta era el enter_environment, que instalaba la protección de la memoria. El compilador corría esta instrucción por cada simple variable en el sistema, incluso aunque la extensa mayoría estaba corriendo en un ambiente existente y no necesitaba ser chequeada. Para hacer las cosas peor, el compilador pasaba los datos, a, y desde los procedimientos, por valor en vez de por referencia, requiriendo en muchos casos enormes y lentas copias de memoria a memoria.

Impacto y diseños similares

Un resultado del fracaso del 432 fue que los diseñadores de microprocesadores concluyeron que el soporte de objetos en el chip conducía a un diseño complejo que invariablemente correría lentamente y el 432 fue a menudo citado como un contraejemplo por los que proponían los diseños RISC. Sin embargo, es sostenido por algunos, que el soporte de OO no fue el problema primario con los 432 y que los defectos de la implementación mencionados arriba habrían hecho lento cualquier diseño de chip. Desde el iAPX 432 nadie ha intentado un diseño similar, aunque el soporte de proceso del INMOS Transputer fue similar, y muy rápido.

Intel había invertido considerable tiempo, dinero, y mentes, en el 432, tenía un equipo experto dedicado a él y era reacia abandonarlo enteramente después de su fracaso en el mercado. Un nuevo arquitecto, Glenford Myers, fue traído para producir una arquitectura enteramente nueva y para implementar el núcleo del procesador que sería construido en un proyecto en conjunto de Intel y Siemens (posteriormente BiiN), resultando en los procesadores de la serie i960. Por un tiempo, el subconjunto del procesador RISC i960 llegó a ser popular en el mercado del procesador embebido, pero el más sofisticado 960MC y el 960MX, de tagged-memory, fueron mercadeados solamente para aplicaciones militares y tuvieron incluso menos uso que el 432.

Other Languages
italiano: Intel iAPX 432
日本語: Intel iAPX 432
한국어: 인텔 iAPX 432
norsk bokmål: Intel iAPX 432
português: Intel iAPX 432
русский: IAPX 432
Türkçe: Intel iAPX 432
українська: Intel iAPX 432