18 feb 2009

Microarquitectura y Paralelismo


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
Paralelismo Explícito
 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





Vídeos

Realizar una aplicación PocketPC con Visual .NET 2005, SQL Server 2005 Mobile Edition y Windows Mobile 2003 Segunda Edición

1 parte Para ver los siguientes ver en opciones del youtube