stringtranslate.com

i860

El Intel i860 (también conocido como 80860 ) es un diseño de microprocesador RISC introducido por Intel en 1989. Es uno de los primeros intentos de Intel de crear una arquitectura de conjunto de instrucciones de alta gama completamente nueva desde el fallido Intel iAPX 432 de principios de la década de 1980. . Fue el primer chip de un millón de transistores del mundo. [1] Fue lanzado con considerable fanfarria, eclipsando ligeramente al anterior Intel i960 , que tuvo éxito en algunos nichos de sistemas integrados . El i860 nunca logró el éxito comercial y el proyecto finalizó a mediados de la década de 1990.

Implementaciones

Muere de Intel i860 XR.
Muere de Intel i860 XP.

La primera implementación de la arquitectura i860 es el microprocesador i860 XR (cuyo nombre en código es N10 ), que funcionaba a 25, 33 o 40 MHz. El microprocesador i860 XP de segunda generación (nombre en código N11 ) agregó páginas de 4 Mbytes, cachés en chip más grandes, soporte de caché de segundo nivel, buses más rápidos y soporte de hardware para espionaje de autobuses, para lograr consistencia de caché en sistemas multiprocesador . Una reducción del proceso para el XP (de 1 μm a 0,8 CHMOS V) aumentó el reloj a 40 y 50 MHz. [3] Ambos microprocesadores admitían el mismo conjunto de instrucciones para programas de aplicación.

Características técnicas

El i860 combinó una serie de características que eran únicas en ese momento, en particular su arquitectura de palabra de instrucción muy larga (VLIW) y su potente soporte para operaciones de punto flotante de alta velocidad. [4] 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áficos" que operan con un sumador de punto flotante, un multiplicador de punto flotante o un 64 Unidad gráfica entera de bits. El sistema tenía tuberías separadas para la ALU, el sumador de punto flotante, el multiplicador de punto flotante y la unidad gráfica. Puede recuperar y decodificar una instrucción "central" y una instrucción de "punto flotante o gráficos" por reloj. Cuando se utilizan instrucciones de punto flotante de operación dual (que transfieren valores entre instrucciones de operación dual posteriores), es capaz de ejecutar hasta tres operaciones (una ALU, una multiplicación de punto flotante y una suma o resta de punto flotante). ) por reloj. [ 15]

Todos los buses de datos tenían al menos 64 bits de ancho. El bus de memoria interna hacia el caché, por ejemplo, tenía 128 bits de ancho.

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

La unidad "núcleo" es responsable de buscar instrucciones, y en el modo normal de "instrucción única" puede recuperar una instrucción "núcleo" de 32 bits o una instrucción de "punto flotante o gráficos" de 32 bits por ciclo. Pero cuando se ejecuta en modo de instrucción dual, se accede a la caché de instrucciones como instrucciones VLIW que consisten en una instrucción "central" de 32 bits emparejada con una instrucción de "punto flotante o gráficos" de 32 bits, reunidas simultáneamente en una instrucción de 64 bits. autobús. [5]

Intel se refirió al diseño como "microprocesador i860 de 64 bits". [6]

Las instrucciones Intel i860 actuaron sobre tamaños de datos desde 8 bits hasta 128 bits. [7]

Los gráficos admiten instrucciones similares a SIMD además de matemáticas enteras básicas de 64 bits. Por ejemplo, su ruta de datos entera de 64 bits puede representar varios píxeles juntos como píxeles de 8 bits, píxeles de 16 bits o píxeles de 32 bits. [5] La experiencia con el i860 influyó en la funcionalidad MMX que luego se agregó a los procesadores Pentium de Intel .

Las canalizaciones hacia las unidades funcionales son accesibles mediante programas ( VLIW ), lo que requiere que los compiladores ordenen las instrucciones cuidadosamente en el código objeto para mantener las canalizaciones llenas. En las arquitecturas tradicionales, estas tareas eran manejadas en tiempo de ejecución por un programador 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 función fuera del chip al compilador. Esto permitió que el i860 dedicara más espacio a unidades funcionales, mejorando el rendimiento. Como resultado de su arquitectura, el i860 podía ejecutar ciertos gráficos y algoritmos de punto flotante con una velocidad excepcionalmente alta, pero su rendimiento en aplicaciones de propósito general se resintió y era difícil programar de manera eficiente (ver más abajo).

El i860 tiene instrucciones de rama retrasadas y no retrasadas. Cuando se toman ramas retrasadas, se ejecutará la siguiente instrucción antes de transferir el control a la instrucción de destino de la rama. Significa que el i860 tiene una única ranura de retardo de rama. [8]

Actuación

Sobre el papel, el rendimiento fue impresionante para una solución de un solo chip; sin embargo, el rendimiento en el mundo real fue todo lo contrario. Un problema, tal vez no reconocido en ese momento, fue que las rutas del 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 llevará mucho más tiempo si esos números no están en la memoria caché, pero el programador no tiene forma de saber si están o no. Si se hace una suposición incorrecta, todo el proceso se detendrá, esperando los datos. Todo el diseño del i860 se basó en que el compilador manejara eficientemente esta tarea, lo que resultó casi imposible en la práctica. Si bien teóricamente es capaz de alcanzar un máximo de aproximadamente 60-80 MFLOPS tanto para precisión simple como para precisión doble para las versiones XP, [9] el código ensamblador escrito manualmente logró obtener solo hasta 40 MFLOPS, y la mayoría de los compiladores tuvieron dificultades para obtener incluso 10 MFLOP. [10] La arquitectura Itanium posterior , también un diseño VLIW, sufrió nuevamente el problema de los compiladores incapaces de entregar código suficientemente optimizado.

Otro problema grave fue la falta de una solución para manejar el cambio de contexto rápidamente. El i860 tenía varias tuberías (para las partes ALU y FPU) y una interrupción podría derramarlas y requerir que se recargaran todas. Esto requirió 62 ciclos en el mejor de los casos y casi 2000 ciclos en el peor. Este último es 1/20000 de segundo a 40 MHz (50 microsegundos), una eternidad para una CPU. Esto eliminó en gran medida el i860 como CPU de uso general.

Fallecimiento

A medida que los compiladores mejoraron, el rendimiento general del i860 hizo lo mismo, pero para entonces la mayoría de los otros 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 . De manera confusa, 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 de Core i7.

Andy Grove sugirió que el fracaso del i860 en el mercado se debió a que Intel se esforzó demasiado:

Ahora teníamos dos chips muy potentes que estábamos introduciendo casi al mismo tiempo: el 486, basado en gran medida 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 compatible con nada. No sabíamos qué hacer. Así que presentamos ambos, pensando que dejaríamos que el mercado decidiera. ... nuestra ambigüedad hizo que nuestros clientes se preguntaran qué representaba realmente Intel, ¿el 486 o el i860?

—Andy  Grove , [11]

Aplicaciones

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

Al principio, el i860 sólo se utilizaba en un pequeño número de superordenadores como el Intel iPSC/860 . Posteriormente, Intel comercializó el i860 como un microprocesador para estaciones de trabajo durante un tiempo, donde competía con microprocesadores basados ​​en las arquitecturas MIPS y SPARC , entre otras. Las estaciones de trabajo Unix Oki Electric OKI Station 7300/30 [12] y Stardent Vistra 800 [13] se basaron en un i860 XR de 40 MHz que ejecutaba UNIX System V /i860. [14] El Hauppauge 4860 [15] y el Olivetti CP486 [16] 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 basadas en i860XR diseñadas internamente (con nombre en código Dazzle ), y solo transfirió NT a MIPS ( Microsoft Jazz ), Intel 80386 y otros procesadores más tarde. Algunos afirman que la designación NT era una referencia al nombre en clave "N-Ten" del i860XR. [17]

El i860 tuvo cierto uso en el mundo de las estaciones de trabajo como acelerador de gráficos. Se usó, por ejemplo, en NeXTdimension , donde ejecutaba una versión reducida del kernel Mach ejecutando una pila PostScript completa . Sin embargo, la parte PostScript del proyecto nunca se terminó, por lo que terminó simplemente moviendo píxeles de color. En esta función, el diseño del i860 funcionó considerablemente mejor, ya que el programa principal podía cargarse en la caché y hacerse completamente "predecible", permitiendo a los compiladores ordenar correctamente. Truevision produjo una placa aceleradora basada en i860 destinada a ser utilizada con sus tarjetas framebuffer Targa y Vista. Pixar produjo una versión personalizada de RenderMan para ejecutarse en la tarjeta que corría aproximadamente cuatro veces más rápido que el host 386. Otro ejemplo fue RealityEngine de SGI , que utilizó varios procesadores i860XP en su motor de geometría. Este tipo de uso también desapareció lentamente, a medida que más CPU de uso general comenzaron a igualar el rendimiento del i860 y Intel centró su atención en los procesadores Pentium para computación de propósito general.

Mercury Computer Systems utilizó el i860 en su multicomputadora . De 2 a 360 nodos de cómputo residirían en una red de árbol de circuitos conmutados , y cada nodo tendría memoria local que podría ser asignada por cualquier otro nodo. Cada nodo de este sistema heterogéneo podrí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 incluía hasta 360 nodos de cómputo en 9U de espacio en rack , lo que lo hacía adecuado para aplicaciones móviles como el procesamiento de radares aéreos.

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

También en la década de 1990, Alliant Computer Systems construyó sus servidores FX/800 y FX/2800 basados ​​en i860, reemplazando las series FX/80 y FX/8 que se habían basado en el Motorola 68000 ISA. Tanto el sistema informático Alliant como el Mercury se utilizaron intensamente en la NASA/JPL para las misiones SIR-C .

El ejército de EE. UU. 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. [19]

Referencias

  1. ^ ab Perry, Tekla (2 de julio de 2022). "El primer chip de un millón de transistores: la historia de los ingenieros". Espectro IEEE . Archivado desde el original el 5 de julio de 2022 . Consultado el 5 de julio de 2022 .
  2. ^ Lewnes, Ann, "La arquitectura Intel386 llegó para quedarse", Intel Corporation, Microcomputer Solutions, julio/agosto de 1989, página 2
  3. ^ "El i860 XP - Segunda generación del i860" (PDF) . Archivado desde el original (PDF) el 2018-08-20 . Consultado el 22 de febrero de 2015 .
  4. ^ Kohn, Les; Margulis, N. (agosto de 1989). "Presentación del microprocesador Intel i860 de 64 bits". Micro IEEE . Sociedad de Computación IEEE. 9 (4): 15–30. doi : 10.1109/40.31485. S2CID  21922034.
  5. ^ Manual de referencia del programador del microprocesador abc i860 de 64 bits (PDF) . Santa Clara, California, Estados Unidos: Intel . 1989. Archivado (PDF) desde el original el 23 de febrero de 2022.
  6. ^ Grimes, Jack; Kohn, L.; Bharadhwaj, R. (julio de 1989). "El procesador Intel i860 de 64 bits: una CPU de uso general con capacidades de gráficos 3D". Aplicaciones y gráficos por computadora IEEE . Sociedad de Computación IEEE. 9 (4): 85–94. doi : 10.1109/38.31467. S2CID  38831149.
  7. ^ "The Chip Collection - Microprocesador i860 - Smithsonian Institution". Institución Smithsonian .
  8. ^ "Manual de referencia del programador del microprocesador i860 ™ de 64 bits" (PDF) . pag. 70(5-11) . Consultado el 21 de diciembre de 2023 .
  9. ^ Oleg Yu. Repin, Alexei S. Pylkin (2000). "Intel i860: microprocesador de 64 bits". sscc.ru, ICMMG. Archivado desde el original el 23 de junio de 2009 . Consultado el 27 de septiembre de 2013 .
  10. ^ Bailey, DH; Barszcz, E.; Fatoohi, RA; Simón, HD; Weeratunga, S. (1990). Resultados de rendimiento en el prototipo Intel Touchstone Gamma (PDF) (Reporte). Centro de Investigación Ames de la NASA.
  11. ^ Olson, Sander (3 de junio de 2004). "La CPU 486 de Intel cumple 15 años". Geek.com . Archivado desde el original el 25 de mayo de 2008.
  12. ^ "Oki Electric OKI Station 7300/30-Museo de la Computación".
  13. ^ "Intel i860: de aquí para allá". 2010.
  14. ^ "Computadora KUBOTA / Stardent AVSstation Titan Vistra 800". Archivado desde el original el 14 de mayo de 2014 . Consultado el 14 de mayo de 2014 .
  15. ^ "GeekDot - Hauppauge 4860". 20 de marzo de 2008.
  16. ^ "GeekDot - Olivetti CP486". 16 de agosto de 2011.
  17. ^ Thurrott, Paul (24 de enero de 2003). "Windows Server 2003: el camino hacia el oro". Gana un súper sitio . Archivado desde el original el 20 de julio de 2011 . Consultado el 2 de septiembre de 2013 .
  18. ^ "Historia de la máquina Stratus". Archivado desde el original el 12 de junio de 2003.
  19. ^ "Ruta de pila". Mayo de 1997.

enlaces externos