El objetivo de este curso es que el estudiante conozca la evolución y estructura interna de las arquitecturas de los computadores y los principales factores que influyen en las prestaciones de un computador. Entre los conceptos en los que se profundizará están: las condiciones necesarias para el paralelismo, el diseño del repertorio de instrucciones, la microarquitectura del procesador y las principales técnicas de paralelismo interno que se aplican en los procesadores actuales con el fin de mejorar sus prestaciones (caches en el procesador, planificación dinámica de instrucciones, predicción de saltos, superescalaridad) . Por último se abordarán las máquinas superescalares, supersegmentadas y VLIW como evolución de los procesadores en la búsqueda de un mayor grado de paralelismo a nivel de instrucción.
En cuanto a las capacidades, éstas las podemos clasificar en dos grupos uno de capacidades específicas y otro de capacidades más genéricas o destrezas.
En cuanto a las capacidades específicas, al finalizar el curso el alumno será capaz de:
- Entender el funcionamiento de un procesador segmentado básico.
- Analizar las dependencias existentes en un cierto código y su efecto sobre el procesamiento.
- Comprender el funcionamiento y limitaciones de los procesadores existentes y las lineas de mejora.
- Interpretar los datos sobre prestaciones obtenidos de la ejecución de un código sobre una
máquina.
En cuanto a las capacidades generales o destrezas, durante el curso se trabajarán:
- Visión de conjunto respecto al problema complejo de la ejecución de instrucciones en un procesador segmentado.
- Habilidad para diseñar y llevar a cabo experimentos de optimización de un código, así como organizar, analizar e interpretar los resultados. Esta capacidad se trabajará especialmente en las prácticas de laboratorio así como en la resolución y discusión de casos de estudio.
- Capacidad para trabajar en equipo de forma cooperativa, crítica y respetuosa con las soluciones propuestas por los demás.