procesadores superescalares

  • View
    221

  • Download
    0

Embed Size (px)

DESCRIPTION

arquitectura del computador

Text of procesadores superescalares

  • SISTEMAS ELECTRNICOS PARA EL TRATAMIENTO DE LA INFORMACIN

    8. 1

    JUAN F. GUERRERO MARTNEZ JOS V. FRANCS VILLORA

    Curso 2010-2011

    Tema 8 Procesadores Superescalares:

    Paralelismo Explcito a Nivel de Instruccin

    IA-64 es una arquitectura de 64 bits desarrollada conjuntamente por Intel y HP (Hewlett-Packard). Est basado en una tecnologa denominada EPIC (Explicitally Parallel Instruction Computing, procesamiento de instrucciones explcitamente paralelas), que abarca los siguientes conceptos bsicos:

    - Paralelismo explcito a nivel de instrucciones (explcito en las instrucciones mquina en lugar de ser identificado por el procesador en tiempo de ejecucin).

    - Palabras de instruccin muy grandes (VLIW). - Ejecucin de saltos basada en predicados. - Carga especulativa.

    En este tema utilizaremos la arquitectura del IA-64 para recorrer diversos aspectos

    organizativos de la arquitectura de los procesadores superescalares explcitamente paralelos.

    8.1 Introduccin a la arquitectura del IA-64

    A continuacin resumimos las diferencias principales entre una arquitectura superescalar y la arquitectura IA-64:

    - En la implementacin superescalar cada instruccin es una palabra. En la IA-64 se tienen instrucciones VLIW formadas por paquetes de 3 instrucciones de tipo RISC.

    - Ambas implementaciones trabajan con mltiples unidades funcionales, si bien en la arquitectura IA-64 suelen ser ms numerosas.

    - La implementacin superescalar utiliza prediccin de saltos con ejecucin especulativa de un camino, mientras que la IA-64 utiliza la ejecucin especulativa de los dos caminos de una bifurcacin.

    - En la implementacin superescalar se realiza el anlisis del paralelismo, reordenacin y optimizacin del flujo de instrucciones en tiempo de ejecucin, mientras que la IA-64 lo hace en tiempo de compilacin.

  • SISTEMAS ELECTRNICOS PARA EL TRATAMIENTO DE LA INFORMACIN

    8. 2

    JUAN F. GUERRERO MARTNEZ JOS V. FRANCS VILLORA

    Curso 2010-2011

    - En la implementacin superescalar se realiza la carga de un dato desde memoria slo cuando es necesario, mientras que en la IA-64 se pueden cargar datos especulativamente.

    Cabe remarcar la diferencia fundamental entre ambas aproximaciones: si bien un

    procesador superescalar analiza el paralelismo en tiempo de ejecucin, la arquitectura IA-64 traslada todo ese trabajo al compilador, que lo hace en tiempo de compilacin.

    Una desventaja del paralelismo explcito es que la programacin en ensamblador es casi imposible.

    El primer producto de esta arquitectura recibi el nombre clave de Merced. Actualmente Intel

    comercializa su arquitectura IA-64 con el nombre de Itanium 2. Para Intel, crear una nueva arquitectura, incompatible con la arquitectura x86, supone un

    decidido paso adelante motivado por los dictados de la tecnologa. La familia x86 comenz su andadura a finales de los aos setenta. Conforme aumentaron las posibilidades de integracin de transistores, los procesadores de la familia comenzaron a introducir segmentacin y otras tcnicas que contribuan al aumento de prestaciones. Sin embargo, mantener la compatibilidad hacia atrs de los nuevos procesadores de la familia comenz a ser un lastre. Otros fabricantes aumentaron la velocidad utilizando primero las tecnologas RISC y posteriormente la implementacin superescalar. Intel, sin embargo, anclado por compatibilidad a una arquitectura CISC que deba ser compatible hacia atrs, intent con el Pentium utilizar moderadamente tcnicas superescalares y despus, con el Pentium Pro y el Pentium II, tuvo que incorporar una traduccin de las instrucciones CISC a microinstrucciones RISC para poder utilizar tcnicas superescalares ms eficazmente. Actualmente, una forma eficaz de utilizar la gran cantidad de transistores disponibles es la utilizacin de tcnicas de paralelismo explcito, para lo cual Intel y HP han decidido crear una nueva arquitectura, independiente de que Intel mantenga la lnea de procesadores de la popular familia x86.

    Cuando los diseadores han de decidir a qu dedicar los cada vez ms transistores que es posible integrar en para la fabricacin de un procesador, tienen pocas posibilidades. Por un lado, incrementar las cachs internas llega a un punto a partir del cual no mejora la tasa de aciertos de forma significativa. Por otro lado se puede incrementar el grado de paralelismo superescalar, aadiendo ms unidades de ejecucin, sin embargo la complejidad y la circuitera necesaria aumentan exponencialmente. Complejidad que sirve para mejorar muy poco las prestaciones de la mquina, ya que, como vimos en el tema anterior, en la implementacin superescalar se pueden emitir 5 o ms instrucciones en no ms del 10% de los casos (en las condiciones ms favorables).

    Para solucionar este problema, Intel y HP han apostado por la implementacin de un gran

    nmero de unidades funcionales en paralelo, pero utilizando el enfoque del paralelismo explcito. En esta estrategia, el compilador planifica estticamente las instrucciones en tiempo de compilacin, en lugar de que lo haga dinmicamente el procesador en tiempo de ejecucin. As, es el compilador el que determina qu instrucciones pueden ejecutarse en paralelo, e incluye esa

  • SISTEMAS ELECTRNICOS PARA EL TRATAMIENTO DE LA INFORMACIN

    8. 3

    JUAN F. GUERRERO MARTNEZ JOS V. FRANCS VILLORA

    Curso 2010-2011

    informacin en la instruccin mquina, liberando de dicha labor al procesador. Una ventaja de esto es que el procesador no requiere tanta circuitera compleja como un procesador superescalar con paralelismo implcito. Adems, mientras que el procesador tiene que determinar la posibilidad de una potencial ejecucin en paralelo en cuestin de nanosegundos, el compilador dispone de un plazo varios rdenes de magnitud mayor para examinar el cdigo con detenimiento, y puede considerar el programa en toda su extensin.

    8.2 Organizacin

    La organizacin de la arquitectura IA-64 se muestra, esquemticamente, en la figura 8.1. Las caractersticas ms importantes son:

    - Gran nmero de registros. El formato de instruccin de la arquitectura IA-64 permite la utilizacin de hasta 256 registros de 64 bits, 128 de uso general para datos enteros y lgicos y 128 para datos en coma flotante y grficos. Tambin dispone de 64 registros predicado de un bit.

    - Mltiples unidades de ejecucin. Puede utilizar muchas ms unidades paralelas que las mquinas superescalares tpicas, de paralelismo implcito a nivel de instrucciones, que suelen soportar cuatro cauces. Tpicamente se usan ocho o ms unidades funcionales. P. ej., Itanium 2 tiene 11 unidades funcionales diferentes.

    Figura 8.1: Esquema de organizacin de la arquitectura del IA-64.

  • SISTEMAS ELECTRNICOS PARA EL TRATAMIENTO DE LA INFORMACIN

    8. 4

    JUAN F. GUERRERO MARTNEZ JOS V. FRANCS VILLORA

    Curso 2010-2011

    El gran tamao del banco de registros supone una diferencia importante respecto a las

    mquinas RISC y superescalares. Ntese que una mquina superescalar tpica utiliza el paralelismo a nivel de instruccin de forma implcita, es decir la gestin del paralelismo a nivel de instruccin la realiza el procesador. Es por eso que este tipo de mquinas utiliza un mayor nmero de registros fsicos que lgicos a travs del renombramiento de registros. Sin embargo, el paralelismo explcito libera al procesador de la carga del renombramiento de registros y del anlisis de dependencias. Esta tarea pasa a realizarla el compilador, que necesita utilizar un gran nmero de registros explcitos.

    Figura 8.2 Formato de Instruccin de la arquitectura IA-64.

    8.3 Formato de Instruccin

    Las instrucciones de la arquitectura IA-64 responden al tipo de VLIW, Very Long Instruction Word, ya que cada instruccin es en realidad un paquete de 128 bits que contiene 3 instrucciones de 40 bits mas un campo plantilla de 8 bits, figura 8.2. El campo plantilla indica qu instrucciones se pueden ejecutar en paralelo, de forma que su interpretacin no se limita a un solo paquete. As, si por ejemplo el flujo de instrucciones permite la ejecucin de ocho instrucciones en paralelo, el compilador las reordenar para que abarquen paquetes contiguos, y ajustar los bits de plantilla para informar al procesador cuales son las instrucciones independientes. Las instrucciones agrupadas no tienen por qu estar en el orden original.

  • SISTEMAS ELECTRNICOS PARA EL TRATAMIENTO DE LA INFORMACIN

    8. 5

    JUAN F. GUERRERO MARTNEZ JOS V. FRANCS VILLORA

    Curso 2010-2011

    El campo plantilla proporciona una gran flexibilidad. El compilador puede mezclar

    instrucciones dependientes e independientes en el mismo paquete, con tan solo indicarlo en el campo plantilla. Esto no ocurre en otros diseos VLIW, que necesitan insertar instrucciones NOP hasta completar el paquete para evitar que instrucciones dependientes compartan el mismo paquete.

    La figura 8.2 muestra el formato de cada una de las instrucciones del paquete. La

    instrucciones son de 40 bits, lejos de los 32 bits tpicos de las instrucciones RISC. Esto es debido a que un mayor nmero de registros implica ms bits para codificarlos y, adems, se aade la referencia a un campo predicado (cuya utilidad se explica en el siguiente apartado).

    8.4 Ejecucin con predicados

    La ejecucin con predicados es una tcnica que posibilita que la ejecucin de instrucciones pueda referirse a un registro predicado de 1 bit. Esto indica que la ejecucin de dicha instruccin ser especulativa, y una vez se sepan los valores de los registros predicado, la instruccin se retira si el valor final del registro predicado correspondiente es verdadero (valor 1, booleano TRUE), y se descarta si es falso. Por otro lado, todas aquellas instrucciones sin asignacin de