Articulo de referencia

Computación con instrucciones explícitamente paralelas

La computación de instrucciones explícitamente paralelas ( EPIC ) es un término acuñado en 1997 por la alianza HP-Intel [ 1 ] para describir un paradigma de computación que los ...

La computación de instrucciones explícitamente paralelas ( EPIC ) es un término acuñado en 1997 por la alianza HP-Intel [ 1 ] para describir un paradigma de computación que los investigadores habían estado investigando desde principios de la década de 1980. [ 2 ] Este paradigma también se denomina arquitecturas de independencia . Fue la base para el desarrollo de la arquitectura Intel Itanium por parte de Intel y HP , [ 3 ] y HP afirmó posteriormente que "EPIC" era simplemente un término antiguo para la arquitectura Itanium. [ 4 ] EPIC permite que los microprocesadores ejecuten instrucciones de software en paralelo utilizando el compilador , en lugar de circuitos complejos en el chip , para controlar la ejecución de instrucciones paralelas. Esto tenía como objetivo permitir una simple escalabilidad del rendimiento sin recurrir a frecuencias de reloj más altas .

Orígenes en VLIW

En 1989, los investigadores de HP reconocieron que las arquitecturas de computadoras con conjunto de instrucciones reducido (RISC) estaban alcanzando un límite de una instrucción por ciclo . Comenzaron una investigación sobre una nueva arquitectura, posteriormente denominada EPIC . [ 3 ] La base de la investigación fue VLIW , en la que múltiples operaciones se codifican en cada instrucción y luego son procesadas por múltiples unidades de ejecución.

Uno de los objetivos de EPIC era trasladar la complejidad de la planificación de instrucciones del hardware de la CPU al compilador de software , que puede realizar dicha planificación de forma estática (con la ayuda de información de retroalimentación de trazas). Esto elimina la necesidad de circuitos de planificación complejos en la CPU, lo que libera espacio y energía para otras funciones, incluidos recursos de ejecución adicionales. Un objetivo igualmente importante era aprovechar aún más el paralelismo a nivel de instrucción ( ILP ) mediante el uso del compilador para encontrar y explotar oportunidades adicionales de ejecución paralela .

VLIW (al menos en sus formas originales) tiene varias deficiencias que impidieron que se popularizara:

La arquitectura EPIC evolucionó a partir de la arquitectura VLIW, pero conservó muchos conceptos de la arquitectura superescalar .

Más allá de VLIW

Las arquitecturas EPIC añaden varias características para sortear las deficiencias de VLIW:

  • Cada grupo de instrucciones de software se denomina paquete . Cada paquete tiene un bit de parada que indica si el siguiente paquete depende de este conjunto de operaciones. Gracias a esta capacidad, las futuras implementaciones pueden ejecutar varios paquetes en paralelo. El compilador calcula la información de dependencia, por lo que el hardware no tiene que realizar comprobaciones de dependencia de operandos.
  • La instrucción de precarga de software se utiliza como un tipo de precarga de datos. Esta precarga aumenta las probabilidades de acierto en la caché para las cargas y puede indicar el grado de localidad temporal necesario en los distintos niveles de la caché.
  • Una instrucción de carga especulativa se utiliza para cargar datos de forma especulativa antes de saber si se utilizarán (evitando las dependencias de control) o si se modificarán antes de su uso (evitando las dependencias de datos).
  • Una instrucción de verificación de carga ayuda a las cargas especulativas al comprobar si una carga especulativa dependía de un almacenamiento posterior y, por lo tanto, debe recargarse.

La arquitectura EPIC también incluye un conjunto heterogéneo de conceptos arquitectónicos para aumentar el ILP :

  • La ejecución con predicados se utiliza para disminuir la frecuencia de bifurcaciones y aumentar la ejecución especulativa de instrucciones. En esta función, las condiciones de bifurcación se convierten en registros de predicados que se utilizan para anular los resultados de las instrucciones ejecutadas desde el lado de la bifurcación que no se toma.
  • Las excepciones retardadas, mediante el uso de un bit de "no es nada" dentro de los registros de propósito general, permiten la ejecución especulativa más allá de las posibles excepciones.
  • Los archivos de registro arquitectónico muy grandes evitan la necesidad de renombrar los registros .
  • Las instrucciones de bifurcación multidireccional mejoran la predicción de bifurcaciones al combinar muchas bifurcaciones alternativas en un solo paquete.

La arquitectura Itanium también incorporó archivos de registro rotativos , una herramienta útil para la segmentación de software, ya que evita tener que desenrollar y renombrar los registros manualmente.

Otras investigaciones y desarrollo

Se han realizado otras investigaciones sobre arquitecturas EPIC que no están directamente vinculadas al desarrollo de la arquitectura Itanium:

  • El proyecto IMPACT de la Universidad de Illinois en Urbana-Champaign , dirigido por Wen-mei Hwu , fue la fuente de muchas investigaciones influyentes sobre este tema.
  • La arquitectura Play-Doh de HP-labs fue otro proyecto de investigación importante.
  • Gelato era una comunidad de desarrollo de código abierto en la que investigadores académicos y comerciales trabajaban para desarrollar compiladores más eficaces para aplicaciones Linux que se ejecutaban en servidores Itanium.

Véase también

Referencias

  1. Schlansker y Rau (febrero de 2000). "EPIC: una arquitectura para procesadores paralelos a nivel de instrucción" (PDF) . HP Laboratories Palo Alto, HPL-1999-111 . Archivado del original (PDF) el 19 de mayo de 2022. Consultado el 8 de mayo de 2008 .
  2. US 4847755 , Morrison, Gordon E.; Brooks, Christopher B. y Gluck, Frederick G., "Método y aparato de procesamiento paralelo para aumentar el procesamiento mediante el procesamiento paralelo de instrucciones de bajo nivel con concurrencias naturales", publicado el 11 de julio de 1989, asignado a MCC Development Ltd. 
  3. 1 2 "Inventando Itanium: Cómo HP Labs ayudó a crear la arquitectura de chips de próxima generación" . HP Labs . Junio ​​de 2001. Archivado del original el 4 de marzo de 2012. Recuperado el 14 de diciembre de 2007 .
  4. De Gelas, Johan (9 de noviembre de 2005). "Itanium : ¿Hay luz al final del túnel?" . AnandTech . Archivado del original el 13 de enero de 2006. Consultado el 8 de mayo de 2008 .
  • Antecedentes históricos de EPIC
  • Mark Smotherman (2002) " Comprensión de las arquitecturas e implementaciones de EPIC "