Microarquitectura y paralelismo a nivel de thread
Desde su aparición hace casi 50 años, los procesadores han doblado su velocidad cada 18 meses.
Esto ha sido debido, por una parte, a los avances en la integración de circuitos que permiten
duplicar el número de transistores cada 18 meses y una mayor velocidad del reloj y por otra, a
mejoras de su arquitectura ( organización interna de los diferentes módulos operativos) orientadas a ejecutar un número cada vez mayor de instrucciones por ciclo. Desde el inicio de esta década este
proceso se ha visto condicionado por la emergencia de problemas tecnológicos nuevos que han
motivado una reorientación de los nuevos diseños. La conferencia tratara de revisar estos
problemas y analizar las soluciones microarquitectonicas adoptadas motivando la introducción de
los diseños multicore y multithreading actuales e introduciendo los aspectos arquitectónico y de
programación de estas nuevas arquitecturas.
Francisco Tirado - Universidad Complutense de Madrid - España
http://www.fing.edu.uy/inco/cursos/arqsis2/teorico/clase19.pdf
Por qué una nueva arquitectura?
- Incompatibilidad de hardware con x86
- Decenas de millones de transistores disponibles en el chip
- Se pueden construir cachés más grandes
- Más unidades de ejecución…
- Aumentar superescalaridad
- Gran complejidad
- Más lógica para orquestar el funcionamiento
- Se necesita mejorar branch prediction…
- …y pipelines más largos
- Mayor penalización por misprediction
- Mayor cantidad de renaming registers requeridos
Instruction parallelism despachado en tiempo de
compilación
Incluído en instrucción de máquina
El procesador utiliza esta información para la
ejecución en paralelo
Requiere circuitería menos compleja
El compilador tiene “todo el tiempo del mundo”
para determinar posibles operaciones
paralelizables
Visión global del programa
Organización General

Carácterísticas clave
Gran cantidad de registros
Formato de instrucción de IA-64 asume 256
• 128 * 64 bits ints. enteras, lógicas y de propósito general
• 128 * 82 bits ints. punto flotante y gráficos
64 * 1 bit predicated execution registers
Múltiples unidades de ejecución
8 o más…
Dependiente de cantidad de transistores disponibles
La ejecución de instrucciones en paralelo depende del
hardware disponible
• Ej: 8 instrucciones paralelas pueden ser ordenadas en dos grupos
sii hay 4 unidades de ejecución disponibles