Resumen de aspectos relevantes de la arquitectura IA-64

 

Proyecto de Arquitectura de Computadores CC51B

Xavier Noguer

27/11/98


Contenidos
 


Introduccion
  El termino IA-64 proviene de Intel Architecture-64 bits, y se refiere al hecho de que los procesadores de esta familia (empezando por el ya anunciado Merced) seran de 64 bits, a diferencia de los pertenecientes a la actual familia Intel x86 que no pueden manejar valores de mas de 32 bits.

Pero ademas de esta caracteristica, que ya es parte de otras arquitecturas hace varios años (Alpha, MIPS, etc...), el aspecto mas relevante de la nueva arquitectura es que permite agrupar instrucciones para ser ejecutadas paralelamente en forma explicita. Esta y otras caracteristicas se consideran parte de EPIC (Explicitly Parallel Instruction Computing), un termino creado por Intel que designaria un nuevo tipo de arquitectura de computadores (como RISC, CISC, etc...).

Esta arquitectura fue creada por Intel en conjunto con HP, y como es habitual en los procesadores Intel, mantendra la compatibilidad con los procesadores x86 anteriores.

Caracteristicas de IA-64 y EPIC
  Algunas de las caracteristicas que definirian EPIC de acuerdo a Intel son las siguientes:
  • Gran cantidad de registros.
  • Tener paralelismo explicito en el codigo de maquina. Dependencias entre instrucciones son encontradas y manejadas por el compilador, no por el procesador.
  • Predication. Las instrucciones de las distintas ramas de un salto son marcadas por registros de atributo (predicate registers) para ser ejecutadas simultaneamente.
  • Carga especulativa. Se cargan datos de memoria anticipadamente.

Ahora pasamos a explicar mas detalladamente estas caracteristicas.

Registros
  Registros de IA-64:
  • 128 registros de uso general de 64 bits
  • 128 registros de punto flotante de 80 bits
  • 64 registros de atributo (predicate registers)de 1 bit

Esta gran cantidad de registros, 4 veces los que se encuentran en un procesador RISC habitual, ayudara a disminuir los accesos a memoria.

Formato de instrucciones
 

El formato de las instrucciones incluiria lo siguiente:

  • opcode
  • predicate register (6 bits)
  • registro fuente 1 (7 bits)
  • registro fuente 2 (7 bits)
  • registro destino (7 bits)
  • campos especiales para aritmetica entera y de punto flotante

El compilador agrupa 3 instrucciones en un "paquete" de 128 bits. Cada paquete contiene ademas de las tres instrucciones un campo template que indica las dependencias entre instrucciones, o sea si una instruccion debe ejecutarse secuencialmente respecto a las otras 2, o todas se pueden ejecutar en forma paralela, etc... Ademas contiene informacion con respecto a si estas instrucciones se pueden ejecutar en forma paralela con las del siguiente paquete, de manera que se pueda encadenar cualquier numero de instrucciones para ser ejecutadas paralelamente.

Tomando en cuenta esto ultimo, el template deberia tener un minimo de 3 bits (posiblemente algunos mas), y por lo tanto cada instruccion tendria alrededor de 40 bits. Pero el tamaño del codigo, comparado con el de un procesador RISC con instrucciones de 32 bits, es alrededor de un 33% mayor (3 instrucciones en 128 bits comparado con 4 en la misma cantidad de bits para un RISC).

Predication
  Predication es un metodo por el cual se ejecutan las dos ramas de un salto condicional simultaneamente (en vez de usar metodos de prediccion de salto).

Cuando un compilador encuentra una instruccion de salto marca las instrucciones de cada rama del salto con un identificador llamado atributo. Cuando el procesador encuentre un salto va a ejecutar ambas ramas simultaneamente, pero no guardara los resultados mientras los valores de los registros de atributos no esten definidos. Luego que la condicion de salto es evaluada, el procesador guarda un 1 en el registro de atributo que corresponde a la rama que si se debia ejecutar y un 0 en el correspondiente a la otra. Antes de guardar el resultado de una instruccion el procesador revisa su registro de atributo, y si este contiene un 1 guarda el resultado, si contiene un 0 descarta el resultado.

Estudios han revelado que aproximadamente en la mitad de los saltos condicionales de un programa se puede usar predication. Esto, unido al hecho de que los metodos de prediccion de salto actualmente usados predicen correctamente en mas de un 90% de los casos, indicaria que este metodo no resultara en un gran ahorro de tiempo de ejecucion en programas.

Carga especulativa
  Como una forma de reducir los tiempos de espera en que el procesador no realiza ningun trabajo mientras espera un dato de memoria, la arquitectura IA-64 implementa un mecanismo de carga especulativa.

Por medio de este el compilador puede situar una instruccion de carga especulativa antes de cuando en realidad se va a necesitar. Justo antes de ejecutar la instruccion que usara los datos cargados especulativamente se revisara que estos sean validos

Produccion
 

La produccion del primer procesador de esta familia, Merced, deberia empezar en el año 2000 con la nueva tecnologia de 0.18 micrometros, pero probablemente este chip no sea capaz de demostrar todo el potencial de EPIC, en parte debido a que la tecnologia aun no ha sido probada en procesadores reales. Por ello ya ha sido anunciado el sucesor de Merced, McKinley (cuya produccion comenzaria en 2001), que deberia ser capaz de aprovechar aun mas las ventajas de EPIC.

Rendimiento
 

Segun Intel Merced operaria a una frecuencia de alrededor de 800 MHz, a la cual lograria un rendimiento de 50 SPECint95 y 100 SPECfp95

Pero este rendimiento no parece ser muy superior, quizas hasta inferior, al que lograran los procesadores RISC que competiran con Merced. Alpha 21264 de Digital se espera que obtenga un rendimiento de 100 SPECint95 y 150 SPECfp95 aproximadamente a una frecuencia de 1 GHz. UltraSPARC III de Sun ha obtenido un rendimiento de 35 SPECint95 y 60 SPECfp95 a 600 MHz.

Quizas un obstaculo para lograr un mayor rendimiento en los procesadores IA-64 sera la necesidad de mantener compatiblidad con la familia x86 (ahora tambien llamada IA-32).

Conclusiones
 

Todo parece indicar que IA-64, y en particular Merced, no va a representar un gran adelanto en el rendimiento de procesadores sobre las arquitecturas RISC ya existentes, en especial el Alpha 21264 y sus posibles sucesores podrian mantener una ventaja en rendimiento sobre IA-64 por varios años.

La nueva tecnologia de IA-64 tampoco es muy innovativa, todas sus caracteristicas aparte del paralelismo ya han sido aplicadas en otros procesadores. E incluso los aspectos de paralelismo de IA-64 son muy similares a los que posee el TMS320C6201 de Texas Instruments.

Referencias
  Intel anuncia la nueva arquitectura de 64 bits

HP e Intel presentan tecnologia EPIC

Merced Facts and Speculations

Intel, HP make EPIC disclosure