stringtranslate.com

Intel 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 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 alcanzó el éxito comercial y el proyecto se dio por terminado a mediados de la década de 1990.

Implementaciones

Matriz de Intel i860 XR.
Matriz de Intel i860 XP.

La primera implementación de la arquitectura i860 es el microprocesador i860 XR (nombre en código 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 bus, para la consistencia de caché en sistemas multiprocesador . Una reducción de 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 combinaba una serie de características que eran únicas en su época, en particular su arquitectura de palabra de instrucción muy larga (VLIW) y su potente compatibilidad con operaciones de punto flotante de alta velocidad. [4] El diseño utiliza dos clases de instrucciones: instrucciones "centrales" 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 de enteros de 64 bits. El sistema tenía canales separados para la ALU, el sumador de punto flotante, el multiplicador de punto flotante y la unidad gráfica. Puede buscar y decodificar una instrucción "central" y una instrucción "de punto flotante o gráfica" por ciclo de reloj. Cuando se utilizan instrucciones de punto flotante de operación dual (que transfieren valores entre instrucciones de operación dual posteriores), 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] [5]

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

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

La unidad "core" es responsable de obtener instrucciones y, en el modo normal de "instrucción única", puede obtener una instrucción "core" de 32 bits o una instrucción "de punto flotante o gráfica" 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 "core" de 32 bits emparejada con una instrucción "de punto flotante o gráfica" de 32 bits, obtenidas simultáneamente a través de un bus de 64 bits. [5]

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

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

Los gráficos admiten instrucciones similares a SIMD además de operaciones matemáticas básicas con números enteros de 64 bits. Por ejemplo, su ruta de datos con números enteros 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 se agregó posteriormente a los procesadores Pentium de Intel .

Las tuberías hacia las unidades funcionales son accesibles por programa ( VLIW ), lo que requiere que los compiladores ordenen las instrucciones cuidadosamente en el código objeto para mantener las tuberías 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 limitó su aplicación en los primeros diseños RISC. El i860 fue un intento de evitar esto por completo al trasladar esta tarea fuera del chip al compilador. Esto permitió que el i860 dedicara más espacio a las 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 vio afectado y fue difícil programar de manera eficiente (ver más abajo).

El i860 tiene instrucciones de bifurcación con y sin retraso. Cuando se toman bifurcaciones con retraso, se ejecutará la siguiente instrucción antes de transferir el control a la instrucción de destino de la bifurcación. Esto significa que el i860 tiene una única ranura de retraso de bifurcación. [8]

Actuación

En el papel, el rendimiento era impresionante para una solución de un solo chip; sin embargo, el rendimiento en el mundo real no lo era en absoluto. Un problema, tal vez no reconocido en ese momento, era que las rutas de código en tiempo de ejecución son difíciles de predecir, lo que significa que se vuelve 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 están o no. Si se realiza 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 esta tarea de manera eficiente, lo que resultó casi imposible en la práctica. Si bien teóricamente era 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 alrededor de 40 MFLOPS, y la mayoría de los compiladores tuvieron dificultades para obtener incluso 10 MFLOP. [10] La posterior arquitectura Itanium , también un diseño VLIW, sufrió nuevamente el problema de los compiladores incapaces de entregar un código suficientemente optimizado.

Otro problema grave era 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 podía desbordarlas y obligarlas a volver a cargarlas todas. Esto llevaba 62 ciclos en el mejor de los casos y casi 2000 ciclos en el peor. Esto último es 1/20000 de segundo a 40 MHz (50 microsegundos), una eternidad para una CPU. Esto eliminó en gran medida al i860 como CPU de propósito general.

Fallecimiento

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

A fines de la década de 1990, Intel reemplazó toda su línea RISC con diseños basados ​​en ARM , conocidos como XScale . Resulta confuso que el número 860 haya sido 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 exigiendo demasiado:

Ahora teníamos dos chips muy potentes que estábamos lanzando al mercado casi al mismo tiempo: el 486, basado en gran medida en la tecnología CISC y compatible con todo el software de PC, y el i860, basado en la 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 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 solo se utilizó en un pequeño número de supercomputadoras , como la Intel iPSC/860 . Posteriormente, Intel comercializó el i860 como un microprocesador para estaciones de trabajo durante un tiempo, donde compitió 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 basaban en un i860 XR de 40 MHz que ejecutaba UNIX System V /i860. [14] La Hauppauge 4860 [15] y la Olivetti CP486 [16] presentaban un Intel 80486 y un i860 en la misma placa base. Microsoft desarrolló inicialmente lo que luego se convertiría en Windows NT en estaciones de trabajo basadas en i860XR diseñadas internamente (con nombre en código Dazzle ), y luego trasladó NT a los procesadores MIPS ( Microsoft Jazz ), Intel 80386 y otros. Algunos afirman que la designación NT era una referencia al nombre en código "N-Ten" del i860XR. [17]

El i860 sí tuvo algún uso en el mundo de las estaciones de trabajo como acelerador de gráficos. Se utilizó, por ejemplo, en NeXTdimension , donde ejecutó una versión reducida del núcleo 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 central se podía cargar en la memoria caché y volverse completamente "predecible", lo que permitía a los compiladores obtener el orden correcto. Truevision produjo una placa aceleradora basada en i860 destinada a su uso con sus tarjetas de búfer de cuadros Targa y Vista. Pixar produjo una versión personalizada de RenderMan para ejecutarse en la tarjeta que funcionaba 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 CPU más generales comenzaron a igualar el rendimiento del i860 y que 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 gran tamaño conmutada por circuitos , y cada nodo tendría memoria local que podría ser mapeada por cualquier otro nodo. Cada nodo en 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 de 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, que ejecutaban 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, en reemplazo de las series FX/80 y FX/8 que se basaban en el ISA Motorola 68000. Tanto los sistemas de computación 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. [19]

Referencias

  1. ^ ab Perry, Tekla (2 de julio de 2022). "El primer chip con un millón de transistores: la historia de los ingenieros". IEEE Spectrum . 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 2015-02-22 .
  4. ^ 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.
  5. ^ Manual de referencia del programador del microprocesador abc i860 de 64 bits (PDF) . Santa Clara, CA, EE. UU.: 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 propósito general con capacidades gráficas 3D". IEEE Computer Graphics and Applications . 9 (4). IEEE Computer Society: 85–94. doi :10.1109/38.31467. S2CID  38831149.
  7. ^ "La colección de chips - Microprocesador i860 - Instituto Smithsonian". Instituto Smithsonian .
  8. ^ "Manual de referencia del programador del microprocesador i860™ de 64 bits" (PDF) . p. 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; Simon, HD; Weeratunga, S. (1990). Resultados de rendimiento del prototipo Intel Touchstone Gamma (PDF) (Informe). Centro de Investigación Ames de la NASA. Archivado desde el original (PDF) el 21 de diciembre de 2016. Consultado el 10 de julio de 2016 .
  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". Sitio web de Win Super . 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. ^ "StackPath". Mayo de 1997.

Enlaces externos