Set de instrucciones arquitectura
Computación de instrucción explícitamente paralela ( EPIC ) es un término acuñado en 1997 por la alianza HP-Intel [1] para describir un paradigma informático que los investigadores habían estado investigando desde principios de los años 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ó más tarde que "EPIC" era simplemente un término antiguo para la arquitectura Itanium. [4] EPIC permite a los microprocesadores ejecutar instrucciones de software en paralelo utilizando el compilador , en lugar de complejos circuitos integrados , para controlar la ejecución de instrucciones en paralelo. Esto tenía como objetivo permitir un escalamiento simple del rendimiento sin recurrir a frecuencias de reloj más altas .
Raíces 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 . [ se necesita aclaración ] Comenzaron una investigación sobre una nueva arquitectura, más tarde llamada EPIC . [3] La base de la investigación fue VLIW , en el que se codifican múltiples operaciones en cada instrucción y luego se procesan mediante múltiples unidades de ejecución.
Uno de los objetivos de EPIC era trasladar la complejidad de la programación de instrucciones del hardware de la CPU al compilador de software , que puede realizar la programación de instrucciones de forma estática (con ayuda de información de seguimiento de retroalimentación). Esto elimina la necesidad de circuitos de programació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 explotar aún más el paralelismo a nivel de instrucción ( ILP ) mediante el uso del compilador para encontrar y explotar oportunidades adicionales para la ejecución paralela .
VLIW (al menos las formas originales) tiene varias deficiencias que le impidieron convertirse en algo común:
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 solucionar las deficiencias de VLIW:
- Cada grupo de múltiples instrucciones de software se denomina paquete . Cada uno de los paquetes tiene un bit de parada que indica si el paquete siguiente depende de este conjunto de operaciones. Con esta capacidad, se pueden crear implementaciones futuras para emitir múltiples paquetes en paralelo. El compilador calcula la información de dependencia, por lo que el hardware no tiene que realizar la verificación de dependencia de operandos.
- Se utiliza una instrucción de captación previa de software como tipo de captación previa de datos. Esta captación previa aumenta las posibilidades de que se produzca un acierto en la caché para cargas y puede indicar el grado de localidad temporal necesaria en varios niveles de la caché.
- Una instrucción de carga especulativa se utiliza para cargar datos de forma especulativa antes de que se sepa 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 carga de verificación ayuda a las cargas especulativas al verificar si una carga especulativa dependía de una tienda posterior y, por lo tanto, debe recargarse.
La arquitectura EPIC también incluye un conjunto de conceptos arquitectónicos para aumentar el ILP :
- La ejecución predicada se utiliza para disminuir la aparición de bifurcaciones y aumentar la ejecución especulativa de instrucciones. En esta característica, las condiciones de la rama se convierten en registros de predicados que se utilizan para eliminar los resultados de las instrucciones ejecutadas desde el lado de la rama que no se toma.
- Las excepciones retrasadas, que utilizan un bit de nada dentro de los registros de propósito general, permiten la ejecución especulativa más allá de posibles excepciones.
- Los archivos de registro arquitectónico de gran tamaño evitan la necesidad de cambiar el nombre del registro .
- 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 agregó archivos de registros rotativos , una herramienta útil para la canalización de software ya que evita tener que desenrollar y cambiar el nombre de los registros manualmente.
Otras investigaciones y desarrollo
Ha habido otras investigaciones sobre arquitecturas EPIC que no están directamente relacionadas con el desarrollo de la arquitectura Itanium:
- El proyecto IMPACT de la Universidad de Illinois en Urbana-Champaign , dirigido por Wen-mei Hwu , fue fuente de investigaciones muy influyentes sobre este tema.
- La arquitectura PlayDoh de los laboratorios HP fue otro importante proyecto de investigación.
- 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.
Ver también
Referencias
- ^ Schlansker y Rau (febrero de 2000). "EPIC: una arquitectura para procesadores paralelos a nivel de instrucción" (PDF) . Laboratorios HP Palo Alto, HPL-1999-111 . Consultado el 8 de mayo de 2008 .
- ^ Estados Unidos 4847755, Morrison, Gordon E.; Brooks, Christopher B. & Gluck, Frederick G., "Método y aparato de procesamiento paralelo para aumentar el procesamiento mediante el procesamiento paralelo de instrucciones de bajo nivel que tienen concurrencias naturales", publicado el 11 de julio de 1989, asignado a MCC Development Ltd.
- ^ ab "Inventar Itanium: cómo HP Labs ayudó a crear la arquitectura de chip de próxima generación". Laboratorios HP . Junio de 2001. Archivado desde el original el 4 de marzo de 2012 . Consultado el 14 de diciembre de 2007 .
- ^ De Gelas, Johan (9 de noviembre de 2005). "Itanium: ¿hay luz al final del túnel?". AnandTech . Consultado el 8 de mayo de 2008 .
enlaces externos
- Antecedentes históricos de EPIC
- Mark Smotherman (2002) "Comprensión de las arquitecturas e implementaciones EPIC"