stringtranslate.com

IA-64

IA-64 ( arquitectura Intel Itanium ) es la arquitectura de conjunto de instrucciones (ISA) de la discontinuada familia Itanium de microprocesadores Intel de 64 bits . La especificación ISA básica se originó en Hewlett-Packard (HP) y fue implementada posteriormente por Intel en colaboración con HP. El primer procesador Itanium, con nombre en código Merced , fue lanzado en 2001.

La arquitectura de Itanium se basa en un paralelismo explícito a nivel de instrucciones , en el que el compilador decide qué instrucciones ejecutar en paralelo. Esto contrasta con las arquitecturas superescalares , que dependen del procesador para gestionar las dependencias de las instrucciones en tiempo de ejecución. En todos los modelos de Itanium, hasta Tukwila incluido , los núcleos ejecutan hasta seis instrucciones por ciclo .

En 2008, Itanium fue la cuarta arquitectura de microprocesador más implementada para sistemas de clase empresarial , detrás de x86-64 , Power ISA y SPARC . [1]

En 2019, Intel anunció la discontinuación de las últimas CPU compatibles con la arquitectura IA-64.

Historia

La arquitectura Intel Itanium

Desarrollo

En 1989, HP comenzó a preocuparse por el hecho de que las arquitecturas de computación con conjunto de instrucciones reducido (RISC) se estaban acercando a un límite de procesamiento de una instrucción por ciclo . Tanto los investigadores de Intel como los de HP habían estado explorando opciones de arquitectura informática para futuros diseños y comenzaron a investigar por separado un nuevo concepto conocido como palabra de instrucción muy larga (VLIW) [2] que surgió de una investigación realizada por la Universidad de Yale a principios de los años 1980. [3]

VLIW es un concepto de arquitectura informática (como RISC y CISC ) en el que una única palabra de instrucción contiene múltiples instrucciones codificadas en una palabra de instrucción muy larga para facilitar que el procesador ejecute múltiples instrucciones en cada ciclo de reloj. Las implementaciones típicas de VLIW dependen en gran medida de compiladores sofisticados para determinar en el momento de la compilación qué instrucciones se pueden ejecutar al mismo tiempo y la programación adecuada de estas instrucciones para su ejecución, y también para ayudar a predecir la dirección de las operaciones de bifurcación. El valor de este enfoque es realizar un trabajo más útil en menos ciclos de reloj y simplificar los requisitos de hardware de programación de instrucciones del procesador y predicción de bifurcaciones, con una penalización en el aumento de la complejidad, el costo y el consumo de energía del procesador a cambio de una ejecución más rápida.

Producción

Durante ese tiempo, HP había comenzado a creer que ya no era rentable para las empresas de sistemas empresariales individuales como la propia HP desarrollar microprocesadores propietarios. Intel también había estado investigando varias opciones arquitectónicas para ir más allá de la ISA x86 y abordar los requisitos de servidores empresariales de alta gama y computación de alto rendimiento (HPC).

En 1994, Intel y HP se asociaron para desarrollar el ISA IA-64, utilizando una variación de los conceptos de diseño VLIW que Intel denominó explícitamente computación de instrucciones paralelas (EPIC). El objetivo de Intel era aprovechar la experiencia que HP había desarrollado en sus primeros trabajos de VLIW junto con la suya propia para desarrollar una línea de productos de gran volumen destinada a los sistemas de alta gama antes mencionados que pudieran venderse a todos los fabricantes de equipos originales (OEM), mientras que HP deseaba poder comprar procesadores listos para usar fabricados con la tecnología de fabricación en volumen y de proceso contemporánea de Intel que fueran mejores que sus procesadores PA-RISC.

Intel tomó la iniciativa en el proceso de diseño y comercialización, mientras que HP contribuyó a la definición de ISA, la microarquitectura Merced/Itanium y Itanium 2. El año objetivo original para entregar el primer producto de la familia Itanium, Merced, era 1998. [2]

Marketing

Los esfuerzos de marketing de productos y de participación de Intel en la industria fueron sustanciales y lograron éxitos de diseño con la mayoría de los OEM de servidores empresariales, incluidos los basados ​​en procesadores RISC en ese momento. Los analistas de la industria predijeron que IA-64 dominaría en servidores, estaciones de trabajo y computadoras de escritorio de alta gama, y ​​eventualmente suplantaría tanto a las arquitecturas RISC como a las CISC para todas las aplicaciones de propósito general. [4] [5] Compaq y Silicon Graphics decidieron abandonar el desarrollo posterior de las arquitecturas Alpha y MIPS respectivamente a favor de migrar a IA-64. [6]

En 1997, era evidente que la arquitectura IA-64 y el compilador eran mucho más difíciles de implementar de lo que se pensaba originalmente, y la entrega de Itanium comenzó a retrasarse. [7] Dado que Itanium fue el primer procesador EPIC de la historia, el esfuerzo de desarrollo se topó con más problemas imprevistos de los que el equipo estaba acostumbrado. Además, el concepto EPIC dependía de capacidades del compilador que nunca se habían implementado antes, por lo que se necesitaba más investigación. [8]

Varios grupos desarrollaron sistemas operativos para la arquitectura, incluyendo Microsoft Windows , Unix y sistemas similares a Unix como Linux , HP-UX , FreeBSD , Solaris , [9] [10] [11] Tru64 UNIX , [6] y Monterey/64 [12] (los últimos tres fueron cancelados antes de llegar al mercado). En 1999, Intel lideró la formación de un consorcio de la industria de código abierto para portar Linux a IA-64 al que llamaron "Trillium" (y luego renombraron "Trillian" debido a un problema de marca registrada), que fue liderado por Intel e incluyó a Caldera Systems , CERN , Cygnus Solutions , Hewlett-Packard, IBM, Red Hat , SGI , SuSE , TurboLinux y VA Linux Systems . Como resultado, se entregó un Linux IA-64 funcional antes de lo previsto y fue el primer sistema operativo en ejecutarse en los nuevos procesadores Itanium.

Intel anunció el nombre oficial del procesador, Itanium , el 4 de octubre de 1999. [13] En cuestión de horas, el nombre Itanic había sido acuñado en un grupo de noticias de Usenet como un juego de palabras con el nombre Titanic , el transatlántico "insumergible" que se hundió en su viaje inaugural en 1912. [14]

Al día siguiente, el 5 de octubre de 1999, AMD anunció sus planes de ampliar el conjunto de instrucciones x86 de Intel para incluir un modo de 64 bits totalmente compatible con versiones anteriores, revelando además la nueva arquitectura x86 de 64 bits de AMD, en la que la compañía ya había trabajado, que se incorporaría al próximo microprocesador de octava generación de AMD, cuyo nombre en código era SledgeHammer . [15] AMD también señaló que una divulgación completa de las especificaciones de la arquitectura y más detalles estarían disponibles en agosto de 2000. [16]

Como AMD nunca fue invitado a contribuir con la arquitectura IA-64 y cualquier tipo de licencia parecía poco probable, la extensión de la arquitectura AMD64 de AMD se posicionó desde el principio como una forma evolutiva de agregar capacidades informáticas de 64 bits a la arquitectura x86 existente, mientras que todavía era compatible con el código x86 de 32 bits heredado , a diferencia del enfoque de Intel de crear una arquitectura de 64 bits completamente nueva y completamente incompatible con x86 con IA-64.

Fin de la vida

En enero de 2019, Intel anunció que Kittson dejaría de fabricarse, con una fecha límite de pedido para enero de 2020 y una fecha límite de envío para julio de 2021. [17] [18] En noviembre de 2023, se eliminó la compatibilidad con IA-64 del kernel de Linux y desde entonces se mantiene fuera del árbol. [19] [20] [21]

Arquitectura

Intel ha documentado ampliamente el conjunto de instrucciones Itanium [22] y la prensa técnica ha proporcionado descripciones generales. [4] [7]

La arquitectura ha cambiado de nombre varias veces a lo largo de su historia. HP la llamó originalmente PA-WideWord . Intel la llamó más tarde IA-64 , luego Itanium Processor Architecture (IPA), [23] antes de decidirse por Intel Itanium Architecture , pero todavía se la conoce ampliamente como IA-64 .

Se trata de una arquitectura explícitamente paralela rica en registros de 64 bits. La palabra de datos base es de 64 bits, direccionable por bytes. El espacio de direcciones lógicas es de 264 bytes. La arquitectura implementa la predicción , la especulación y la predicción de bifurcaciones . Utiliza ventanas de registros de tamaño variable para el paso de parámetros. El mismo mecanismo también se utiliza para permitir la ejecución paralela de bucles. La especulación, la predicción, la predicación y el cambio de nombre están bajo el control del compilador: cada palabra de instrucción incluye bits adicionales para esto. Este enfoque es la característica distintiva de la arquitectura.

La arquitectura implementa una gran cantidad de registros: [24] [25] [26]

Cada palabra de instrucción de 128 bits se denomina paquete y contiene tres ranuras , cada una de las cuales contiene una instrucción de 41 bits , más una plantilla de 5 bits que indica qué tipo de instrucción hay en cada ranura. Esos tipos son unidad M (instrucciones de memoria), unidad I (ALU entera, ALU entera no ALU o instrucciones extendidas inmediatas largas), unidad F (instrucciones de punto flotante) o unidad B (instrucciones extendidas de ramificación o ramificación larga). La plantilla también codifica paradas que indican que existe una dependencia de datos entre los datos anteriores y posteriores a la parada. Todas las instrucciones entre un par de paradas constituyen un grupo de instrucciones , independientemente de su agrupación, y deben estar libres de muchos tipos de dependencias de datos; este conocimiento permite al procesador ejecutar instrucciones en paralelo sin tener que realizar su propio análisis de datos complicado, ya que ese análisis ya se realizó cuando se escribieron las instrucciones.

Dentro de cada ranura, todas las instrucciones, excepto unas pocas, tienen predicados, lo que especifica un registro de predicado, cuyo valor (verdadero o falso) determinará si se ejecuta la instrucción. Las instrucciones predicadas que siempre deben ejecutarse tienen como predicado , que siempre se lee como verdadero.pr0

El lenguaje ensamblador IA-64 y el formato de instrucciones se diseñaron deliberadamente para que los escribieran principalmente compiladores, no humanos. Las instrucciones deben agruparse en paquetes de tres, lo que garantiza que las tres instrucciones coincidan con una plantilla permitida. Las instrucciones deben emitir paradas entre ciertos tipos de dependencias de datos, y las paradas también se pueden utilizar solo en lugares limitados según las plantillas permitidas.

Ejecución de instrucciones

El mecanismo de búsqueda puede leer hasta dos paquetes por ciclo de reloj desde la caché L1 hacia la tubería. Cuando el compilador puede aprovechar esto al máximo, el procesador puede ejecutar seis instrucciones por ciclo de reloj. El procesador tiene treinta unidades de ejecución funcionales en once grupos. Cada unidad puede ejecutar un subconjunto particular del conjunto de instrucciones , y cada unidad se ejecuta a una velocidad de una instrucción por ciclo a menos que la ejecución se detenga esperando datos. Si bien no todas las unidades de un grupo ejecutan subconjuntos idénticos del conjunto de instrucciones, las instrucciones comunes se pueden ejecutar en varias unidades.

Los grupos de unidades de ejecución incluyen:

Idealmente, el compilador puede agrupar las instrucciones en conjuntos de seis que se pueden ejecutar al mismo tiempo. Dado que las unidades de punto flotante implementan una operación de multiplicación-acumulación , una sola instrucción de punto flotante puede realizar el trabajo de dos instrucciones cuando la aplicación requiere una multiplicación seguida de una suma: esto es muy común en el procesamiento científico. Cuando ocurre, el procesador puede ejecutar cuatro FLOP por ciclo. Por ejemplo, el Itanium de 800 MHz tenía una calificación teórica de 3,2  GFLOPS y el Itanium 2 más rápido, a 1,67 GHz, tenía una calificación de 6,67 GFLOPS.

En la práctica, el procesador puede estar a menudo infrautilizado, y no todas las ranuras están ocupadas con instrucciones útiles debido, por ejemplo, a dependencias de datos o limitaciones en las plantillas de paquetes disponibles. El código más denso posible requiere 42,6 bits por instrucción, en comparación con los 32 bits por instrucción de los procesadores RISC tradicionales de la época, y las operaciones fallidas debido a ranuras desperdiciadas reducen aún más la densidad del código. No es práctico generar de forma óptima instrucciones adicionales para cargas especulativas y sugerencias para ramas y caché, porque un compilador no puede predecir el contenido de los diferentes niveles de caché en un sistema que ejecuta múltiples procesos y recibe interrupciones.

Arquitectura de memoria

Desde 2002 hasta 2006, los procesadores Itanium 2 compartían una jerarquía de caché común. Tenían 16 KB de caché de instrucciones de nivel 1 y 16 KB de caché de datos de nivel 1. La caché L2 estaba unificada (tanto de instrucciones como de datos) y tiene 256 KB. La caché de nivel 3 también estaba unificada y variaba en tamaño desde 1,5 MB hasta 24 MB. La caché L2 de 256 KB contiene lógica suficiente para manejar operaciones de semáforo sin perturbar la unidad lógica aritmética (ALU) principal.

Se accede a la memoria principal a través de un bus a un chipset externo . El bus Itanium 2 se llamó inicialmente bus McKinley, pero ahora se lo suele llamar bus Itanium. La velocidad del bus ha aumentado de forma constante con los nuevos lanzamientos de procesadores. El bus transfiere 2×128 bits por ciclo de reloj, por lo que el bus McKinley de 200 MHz transfirió 6,4 GB/s y el bus Montecito de 533 MHz transfiere 17,056 GB/s [28]

Cambios arquitectónicos

Los procesadores Itanium lanzados antes de 2006 tenían soporte de hardware para la arquitectura IA-32 para permitir la compatibilidad con aplicaciones de servidor heredadas, pero el rendimiento para el código IA-32 era mucho peor que el del código nativo y también peor que el rendimiento de los procesadores x86 contemporáneos. En 2005, Intel desarrolló IA-32 Execution Layer (IA-32 EL), un emulador de software que proporciona un mejor rendimiento. Con Montecito, Intel eliminó el soporte de hardware para el código IA-32.

En 2006, con el lanzamiento de Montecito , Intel realizó una serie de mejoras en la arquitectura básica del procesador, entre ellas: [29]

Véase también

Referencias

  1. ^ Morgan, Timothy (27 de mayo de 2008). "El negocio de servidores disfruta del ciclo de actualización de X64 en el primer trimestre". IT Jungle . Archivado desde el original el 3 de marzo de 2016. Consultado el 29 de octubre de 2008 .
  2. ^ ab "Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture" (Inventando Itanium: cómo los laboratorios de HP ayudaron a crear la arquitectura de chips de próxima generación). HP Labs . Junio ​​de 2001. Archivado desde el original el 4 de marzo de 2012. Consultado el 23 de marzo de 2007 .
  3. ^ Fisher, Joseph A. (1983). "Arquitecturas de palabras de instrucción muy largas y ELI-512". Actas del décimo simposio internacional anual sobre arquitectura de computadoras . Simposio internacional sobre arquitectura de computadoras. Nueva York, NY, EE. UU.: Association for Computing Machinery (ACM). págs. 140–150. doi : 10.1145/800046.801649 . ISBN . 0-89791-101-6.
  4. ^ ab De Gelas, Johan (9 de noviembre de 2005). "Itanium: ¿hay luz al final del túnel?". AnandTech . Archivado desde el original el 3 de mayo de 2012. Consultado el 23 de marzo de 2007 .
  5. ^ Takahashi, Dean (8 de mayo de 2009). "Entrevista de salida: el presidente saliente de Intel, Craig Barrett, sobre los asuntos pendientes de la industria". VentureBeat . Archivado desde el original el 21 de abril de 2018. Consultado el 17 de mayo de 2009 .
  6. ^ ab "Itanium: una historia con moraleja". Noticias tecnológicas en ZDNet . 2005-12-07. Archivado desde el original el 2008-02-09 . Consultado el 2007-11-01 .
  7. ^ ab Shankland, Stephen (8 de julio de 1999). "El chip Merced de Intel podría seguir cayendo". CNET News . Archivado desde el original el 24 de octubre de 2012. Consultado el 16 de octubre de 2008 .
  8. ^ "Microprocesadores: VLIW, el pasado" (PDF) . Universidad de Nueva York . 18 de abril de 2002. Archivado (PDF) desde el original el 27 de junio de 2018 . Consultado el 26 de junio de 2018 .
  9. ^ Vijayan, Jaikumar (1999-09-01). "Solaris para IA-64 llegará este otoño". Computerworld . Archivado desde el original el 15 de enero de 2000.
  10. ^ Wolfe, Alexander (2 de septiembre de 1999). "Se están realizando esfuerzos de lógica básica para Merced". EE Times . Archivado desde el original el 6 de marzo de 2016. Consultado el 27 de febrero de 2016 .
  11. ^ "Sun presenta Solaris Developer Kit para Intel para acelerar el desarrollo de aplicaciones en Solaris; las galardonadas herramientas de Sun ayudan a los ISV a desarrollar fácilmente para Solaris en Intel hoy". Business Wire . 1998-03-10. Archivado desde el original el 2004-09-20 . Consultado el 2008-10-16 .
  12. ^ "El chip de próxima generación supera un hito clave". CNET News.com . 1999-09-17. Archivado desde el original el 2011-08-09 . Consultado el 2007-11-01 .
  13. ^ Kanellos, Michael (4 de octubre de 1999). «Intel nombra al chip Merced Itanium». CNET News.com . Archivado desde el original el 30 de diciembre de 2015. Consultado el 30 de abril de 2007 .
  14. ^ Finstad, Kraig (4 de octubre de 1999). "Re:Itanium". Grupo de noticias : comp.sys.mac.advocacy . Consultado el 19 de diciembre de 2013 .
  15. ^ "AMD revela nuevas tecnologías en el foro de microprocesadores" (nota de prensa). AMD. 5 de octubre de 1999. Archivado desde el original el 8 de marzo de 2012 . Consultado el 15 de agosto de 2022 .
  16. ^ "AMD lanza la especificación arquitectónica x86-64; permite la migración impulsada por el mercado a la informática de 64 bits" (nota de prensa). AMD. 10 de agosto de 2000. Archivado desde el original el 8 de marzo de 2012 . Consultado el 15 de agosto de 2022 .
  17. ^ Anton Shilov (31 de enero de 2019). «Intel dejará de fabricar el procesador Itanium 9700 «Kittson», el último de los Itanium». AnandTech . Archivado desde el original el 16 de abril de 2019. Consultado el 16 de abril de 2019 .
  18. ^ "Notificación de cambio de producto" (PDF) . 30 de enero de 2019. Archivado (PDF) del original el 1 de febrero de 2019 . Consultado el 9 de mayo de 2019 .
  19. ^ Larabel, Michael (2 de noviembre de 2023). "Se eliminó la compatibilidad con Intel Itanium IA-64 con el kernel Linux 6.7". www.phoronix.com . Phoronix . Consultado el 4 de noviembre de 2023 .
  20. ^ "linux-ia64". GitHub . Consultado el 1 de octubre de 2024 . Mantenimiento y desarrollo del sistema operativo Linux para la arquitectura Intel Itanium (IA-64)
  21. ^ "EPIC Linux" . Consultado el 1 de octubre de 2024 .
  22. ^ "Manual del desarrollador de software de la arquitectura Intel Itanium". Archivado desde el original el 8 de abril de 2019. Consultado el 8 de abril de 2019 .
  23. ^ "Boletín informativo de HPWorks". Septiembre de 2001. Archivado desde el original el 20 de noviembre de 2008. Consultado el 24 de enero de 2008 .
  24. ^ Chen, Raymond (27 de julio de 2015). «El procesador Itanium, parte 1: precalentamiento». Archivado desde el original el 1 de noviembre de 2018. Consultado el 31 de octubre de 2018 .
  25. ^ Chen, Raymond (28 de julio de 2015). «El procesador Itanium, parte 2: codificación de instrucciones, plantillas y paradas». Archivado desde el original el 1 de noviembre de 2018. Consultado el 31 de octubre de 2018 .
  26. ^ Chen, Raymond (29 de julio de 2015). "El procesador Itanium, parte 3: la convención de llamada de Windows, cómo se pasan los parámetros". Archivado desde el original el 1 de noviembre de 2018. Consultado el 31 de octubre de 2018 .
  27. ^ Sharangpani, Harsh; Arora, Ken (2000). "Microarquitectura del procesador Itanium". IEEE Micro . págs. 38–39.
  28. ^ Cataldo, Anthony (30 de agosto de 2001). «Intel equipa el procesador Itanium para que funcione más rápido». EE Times . Archivado desde el original el 1 de agosto de 2020. Consultado el 19 de enero de 2020 .
  29. ^ "Anuncio de producto de Intel". Sitio web de Intel . Archivado desde el original el 7 de noviembre de 2007. Consultado el 16 de mayo de 2007 .

Enlaces externos