Articulo de referencia

Intel i860

El Intel i860 (también conocido como 80860 ) es un microprocesador RISC presentado por Intel en 1989. Representa uno de los primeros intentos de Intel por crear una arquitectura...

El Intel i860 (también conocido como 80860 ) es un microprocesador RISC presentado por Intel en 1989. Representa uno de los primeros intentos de Intel por crear una arquitectura de conjunto de instrucciones completamente nueva y de alta gama desde el fallido Intel iAPX 432 de principios de la década de 1980. Fue el primer chip del mundo con un millón de transistores. [ 1 ] Su lanzamiento se realizó con gran bombo y platillo, eclipsando ligeramente al anterior Intel i960 , que tuvo éxito en algunos nichos de sistemas embebidos . El i860 nunca alcanzó el éxito comercial y el proyecto se canceló a mediados de la década de 1990.

Implementaciones

Muere con procesador Intel i860 XR.
Muere con procesador Intel i860 XP.

La primera implementación de la arquitectura i860 es el microprocesador i860 XR (nombre en clave N10 , después del cual los ingenieros de Microsoft acuñaron el nombre "NT" para N-ten [ 3 ] [ 4 ] ), que funcionaba a 25, 33 o 40 MHz. El microprocesador i860 XP  de segunda generación (nombre en clave N11 ) agregó páginas de 4 Mbyte, cachés en chip más grandes, soporte para caché de segundo nivel, buses más rápidos y soporte de hardware para bus snooping para proporcionar coherencia de caché en sistemas multiprocesador . Una reducción del proceso para el XP de 1 μm a 0,8 μm usando el proceso CHMOS V aumentó el reloj a 40 y 50 MHz. [ 5 ] Ambos microprocesadores admitían el mismo conjunto de instrucciones para programas de aplicación. 

Características técnicas

El i860 combinaba varias características únicas para la época, sobre todo su arquitectura de palabra de instrucción muy larga (VLIW) y su potente soporte para operaciones de punto flotante de alta velocidad. [ 6 ] El diseño utiliza dos clases de instrucciones: instrucciones "básicas" que utilizan una ALU de 32 bits e instrucciones de "punto flotante o gráficas" que operan en un sumador de punto flotante, un multiplicador de punto flotante o una unidad gráfica entera de 64 bits. El sistema tenía pipelines separados para la ALU, el sumador de punto flotante, el multiplicador de punto flotante y la unidad gráfica. Puede obtener y decodificar una instrucción "básica" y una instrucción de "punto flotante o gráficas" por ciclo de reloj. Al utilizar instrucciones de punto flotante de doble operación (que transfieren valores entre instrucciones de doble operación consecutivas), puede ejecutar hasta tres operaciones (una ALU, una multiplicación de punto flotante y una suma o resta de punto flotante) por ciclo de reloj. [ 1 ] [ 7 ]

Todos los buses de datos tenían un ancho mínimo de 64 bits. El bus de memoria interna hacia la caché, por ejemplo, tenía un ancho de 128 bits.

Las instrucciones de la clase "core" utilizan treinta y dos registros enteros de 32 bits. Pero las instrucciones de "punto flotante o gráficos" utilizan un banco de registros al que pueden acceder las unidades de punto flotante como treinta y dos registros de 32 bits, dieciséis de 64 bits u ocho de 128 bits, o al que puede acceder la unidad gráfica como dieciséis registros enteros de 64 bits.

La unidad "core" se encarga de obtener las instrucciones y, en el modo normal de "instrucción única", puede obtener una instrucción "core" de 32 bits o una instrucción "floating-point o graphics" de 32 bits por ciclo. Sin embargo, al ejecutarse en modo de doble instrucción, se accede a la caché de instrucciones como instrucciones VLIW que consisten en una instrucción "core" de 32 bits emparejada con una instrucción "floating-point o graphics" de 32 bits, obtenidas simultáneamente a través de un bus de 64 bits. [ 7 ]

Intel se refería al diseño como el "microprocesador i860 de 64 bits". [ 8 ]

Las instrucciones Intel i860 actuaban sobre tamaños de datos de 8 bits a 128 bits. [ 9 ]

La tarjeta gráfica admite instrucciones tipo SIMD , además de operaciones matemáticas básicas con enteros de 64 bits. Por ejemplo, su ruta de datos de enteros de 64 bits puede representar varios píxeles como píxeles de 8, 16 o 32 bits. [ 7 ] La experiencia con el i860 influyó en la funcionalidad MMX que posteriormente se incorporó a los procesadores Pentium de Intel .

Las tuberías de acceso a las unidades funcionales son accesibles mediante programación ( VLIW ), lo que obliga a los compiladores a ordenar cuidadosamente las instrucciones en el código objeto para mantener las tuberías llenas. En las arquitecturas tradicionales, estas tareas se gestionaban en tiempo de ejecución mediante un planificador en la propia CPU, pero la complejidad de estos sistemas limitaba su aplicación en los primeros diseños RISC. El i860 fue un intento de evitar esto por completo trasladando esta tarea fuera del chip, al compilador. Esto permitió al i860 dedicar más espacio a las unidades funcionales, mejorando el rendimiento. Como resultado de su arquitectura, el i860 podía ejecutar ciertos algoritmos gráficos y de punto flotante a una velocidad excepcionalmente alta, pero su rendimiento en aplicaciones de propósito general se veía afectado y era difícil programarlo de forma eficiente (véase más adelante).

El i860 dispone de instrucciones de salto tanto sin retardo como con retardo. Cuando se ejecutan saltos con retardo, la siguiente instrucción se ejecuta antes de transferir el control a la instrucción de destino del salto. Esto significa que el i860 dispone de una única ranura de retardo de salto. [ 10 ]

Actuación

Sobre el papel, el rendimiento era impresionante para una solución de un solo chip; sin embargo, el rendimiento en el mundo real distaba mucho de serlo. Un problema, quizás no reconocido en su momento, era que las rutas de código en tiempo de ejecución son difíciles de predecir, lo que significa que resulta extremadamente difícil ordenar las instrucciones correctamente en tiempo de compilación . Por ejemplo, una instrucción para sumar dos números tardará considerablemente más si esos números no están en la caché, pero no hay forma de que el programador sepa si lo están o no. Si se hace una suposición incorrecta, toda la tubería se detendrá, esperando los datos. Todo el diseño del i860 se basaba en que el compilador escribiera instrucciones que ejecutaran esta tarea de manera eficiente, lo que resultó casi imposible en la práctica. Si bien teóricamente era capaz de alcanzar un pico de alrededor de 60-80 MFLOPS tanto para precisión simple como para precisión doble en las versiones XP, [ 11 ] el código ensamblador escrito manualmente solo logró llegar a unos 40 MFLOPS, y la mayoría de los compiladores tuvieron dificultades para obtener incluso 10 MFLOPS. [ 12 ] La arquitectura Itanium posterior , también un diseño VLIW, sufrió nuevamente el problema de compiladores incapaces de entregar código suficientemente optimizado.

Otro problema grave era la falta de una solución para gestionar rápidamente el cambio de contexto . El i860 tenía varias tuberías (para las partes ALU y FPU) y una interrupción podía saturarlas y obligar a recargarlas todas. Esto tardaba 62 ciclos en el mejor de los casos y casi 2000 en el peor. Esto último equivale a 1/20000 de segundo a 40  MHz (50 microsegundos), una eternidad para una CPU. Esto prácticamente descartó al i860 como CPU de propósito general.

Fallecimiento

A medida que mejoraban los compiladores, el rendimiento general del i860 también mejoraba, pero para entonces la mayoría de los demás diseños RISC ya habían superado al i860 en rendimiento.

A finales de la década de 1990, Intel reemplazó toda su línea RISC con diseños basados ​​en ARM , conocidos como XScale . Curiosamente, el número 860 se ha reutilizado desde entonces para un chipset de control de placa base para sistemas Intel Xeon ( Pentium de gama alta ) y un modelo del Core i7.

Andy Grove sugirió que el fracaso del i860 en el mercado se debió a que Intel estaba sobrecargada de trabajo:

Teníamos dos chips muy potentes que estábamos lanzando casi al mismo tiempo: el 486, basado principalmente en tecnología CISC y compatible con todo el software de PC, y el i860, basado en tecnología RISC, que era muy rápido pero no compatible con nada. No sabíamos qué hacer. Así que lanzamos ambos, pensando que dejaríamos que el mercado decidiera. ... Nuestra indecisión hizo que nuestros clientes se preguntaran qué representaba realmente Intel, ¿el 486 o el i860?

Aplicaciones

Tres procesadores i860 XP-50 en una placa de circuito impreso de la supercomputadora Paragon XP/S de Intel.

Al principio, el i860 solo se usó en un pequeño número de supercomputadoras como la Intel iPSC/860 . Más tarde, Intel comercializó el i860 como un microprocesador para estaciones de trabajo durante un tiempo, durante el cual compitió con microprocesadores basados ​​en las arquitecturas MIPS y SPARC , entre otras. Las estaciones de trabajo Unix Oki Electric OKI Station 7300/30 [ 14 ] y Stardent Vistra 800 [ 15 ] se basaban en un i860 XR de 40 MHz que ejecutaba UNIX System V /i860. [ 16 ] La Hauppauge 4860 [ 17 ] y la Olivetti CP486 [ 18 ] presentaban un Intel 80486 y un i860 en la misma placa base. Microsoft desarrolló inicialmente lo que se convertiría en Windows NT en estaciones de trabajo de diseño propio basadas en el i860XR (nombre en clave Dazzle ), y solo posteriormente adaptó NT a los procesadores MIPS ( Microsoft Jazz ), Intel 80386 y otros. Algunos afirman que la designación NT era una referencia al nombre en clave "N-Ten" del i860XR. [ 19 ] 

El i860 también se utilizó en el mundo de las estaciones de trabajo como acelerador gráfico. Por ejemplo, en el NeXTdimension , donde ejecutaba una versión reducida del núcleo Mach con una pila PostScript completa . Sin embargo, la parte PostScript del proyecto nunca se terminó, por lo que solo se limitaba a mover píxeles de color. En este caso, el diseño del i860 funcionó mucho mejor, ya que el programa principal podía cargarse en la caché y hacerse completamente predecible, lo que permitía a los compiladores establecer el orden correcto. El NeXTdimension podía generar gráficos de 32 bits más rápido que el Motorola 68030 del NeXTcube principal , que generaba gráficos de 2 bits.

Truevision fabricó una tarjeta aceleradora basada en el i860, diseñada para usarse con sus tarjetas de búfer de fotogramas Targa y Vista. Pixar desarrolló una versión personalizada de RenderMan para ejecutarse en dicha tarjeta, que era aproximadamente cuatro veces más rápida que la versión original con el procesador 386. Otro ejemplo fue RealityEngine de SGI , que utilizaba varios procesadores i860XP en su motor de geometría. Este tipo de uso también fue desapareciendo gradualmente, a medida que las CPU de propósito general comenzaron a igualar el rendimiento del i860, y a medida que Intel centró su atención en los procesadores Pentium para la computación de propósito general.

Mercury Computer Systems utilizó el i860 en su sistema multicomputadora . Entre 2 y 360 nodos de cómputo residían en una red de árbol gordo conmutada por circuitos , y cada nodo disponía de memoria local que podía ser mapeada por cualquier otro nodo. Cada nodo en este sistema heterogéneo podía ser un i860, un PowerPC o un grupo de tres DSP SHARC . Se obtuvo un buen rendimiento del i860 al proporcionar a los clientes una biblioteca de funciones de procesamiento de señales escritas en lenguaje ensamblador. El hardware integraba hasta 360 nodos de cómputo en 9U de espacio de rack , lo que lo hacía adecuado para aplicaciones móviles como el procesamiento de radar aerotransportado.

A principios de la década de 1990, Stratus Technologies construyó servidores basados ​​en i860, la serie XA/R, que ejecutaban su sistema operativo propietario VOS . [ 20 ]

También en la década de 1990, Alliant Computer Systems fabricó sus servidores FX/800 y FX/2800 basados ​​en el procesador i860, reemplazando a las series FX/80 y FX/8 que se basaban en la arquitectura Motorola 68000. Tanto los sistemas informáticos de Alliant como los de Mercury se utilizaron intensamente en la NASA/JPL para las misiones SIR-C .

El ejército estadounidense utilizó el i860 para numerosas aplicaciones aeroespaciales y de procesamiento de señales digitales como coprocesador, donde se utilizó hasta finales de la década de 1990. [ 21 ]

Referencias

  1. 1 2 Perry, Tekla (2022-07-02). "El primer chip de un millón de transistores: la historia de los ingenieros" . IEEE Spectrum . Archivado del original el 2022-07-05 . Recuperado el 2022-07-05 .
  2. Lewnes, Ann, "La arquitectura Intel386 llegó para quedarse", Intel Corporation, Microcomputer Solutions, julio/agosto de 1989, página 2
  3. Chen, Raymond (1 de diciembre de 2003). "¿Qué significaban originalmente las letras "NT"?" . The Old New Thing . Consultado el 15 de abril de 2026 .
  4. "SuperSite de Paul Thurrott para Windows: Windows Server 2003: El camino al éxito, primera parte: Los primeros años" . www.winsupersite.com . Archivado del original el 2 de febrero de 2004. Consultado el 15 de abril de 2026 .
  5. "El i860 XP - Segunda generación del i860" (PDF) . Archivado del original (PDF) el 20 de agosto de 2018. Consultado el 22 de febrero de 2015 .
  6. Kohn, Les; Margulis, N. (agosto de 1989). "Presentación del microprocesador Intel i860 de 64 bits". IEEE Micro . 9 (4). IEEE Computer Society: 15–30 . doi : 10.1109/40.31485 . S2CID 21922034 . 
  7. 1 2 3 Manual de referencia del programador del microprocesador i860 de 64 bits (PDF) . Santa Clara, CA, EE. UU.: Intel . 1989. Archivado (PDF) del original el 23 de febrero de 2022.
  8. Grimes, Jack; Kohn, L.; Bharadhwaj, R. (julio de 1989). "El procesador Intel i860 de 64 bits: una CPU de propósito general con capacidades de gráficos 3D". IEEE Computer Graphics and Applications . 9 (4). IEEE Computer Society: 85–94 . doi : 10.1109/38.31467 . S2CID 38831149 . 
  9. "La colección de chips - Microprocesador i860 - Institución Smithsonian" . Institución Smithsonian .
  10. "Manual de referencia del programador del microprocesador i860™ de 64 bits" (PDF) . pág. 70(5-11) . Consultado el 21/12/2023 . 
  11. Oleg Yu. Repin, Alexei S. Pylkin (2000). "Intel i860 : Microprocesador de 64 bits" . sscc.ru, ICMMG. Archivado del original el 23 de junio de 2009. Consultado el 27 de septiembre de 2013 . 
  12. Bailey, DH; Barszcz, E.; Fatoohi, RA; Simon, HD; Weeratunga, S. (1990). Resultados de rendimiento del prototipo Intel Touchstone Gamma (PDF) (Informe). Centro de Investigación Ames de la NASA. Archivado del original (PDF) el 21 de diciembre de 2016. Consultado el 10 de julio de 2016 .
  13. Olson, Sander (3 de junio de 2004). "El procesador 486 de Intel cumple 15 años" . Geek.com . Archivado del original el 25 de mayo de 2008.
  14. "Oki Electric OKI Station 7300/30-Computer Museum" .
  15. "Intel i860 - De aquí para allá" . 2010.
  16. "KUBOTA Computer/Stardent AVSstation Titan Vistra 800" . Archivado del original el 14 de mayo de 2014. Consultado el 14 de mayo de 2014 .
  17. "GeekDot - Hauppauge 4860" . 20 de marzo de 2008.
  18. «GeekDot - Olivetti CP486» . 16 de agosto de 2011.
  19. Thurrott, Paul (24 de enero de 2003). "Windows Server 2003: El camino al oro" . Win super site . Archivado del original el 20 de julio de 2011. Recuperado el 2 de septiembre de 2013 .
  20. "Historia de la máquina Stratus" . Archivado del original el 12 de junio de 2003.
  21. "StackPath" . Mayo de 1997.
  • Margulis, Neal (1990). Arquitectura del microprocesador i860 . Osborne/McGraw-Hill. ISBN 978-0-07-881645-1.
  • Muchas tarjetas de expansión i860
  • Imágenes y descripción del i860 .
  • Rhodehamel, Michael W. (1989). "La interfaz de bus y las unidades de paginación del microprocesador i860". Actas de la Conferencia Internacional IEEE de 1989 sobre Diseño de Computadoras: VLSI en Computadoras y Procesadores . Cambridge, MA, EE. UU. pp. 380–384 . doi : 10.1109/ICCD.1989.63392 .