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.
Para lograr este objetivo el alumno adquirirá los Program Outcomes (PO) siguientes: a, b, c, d, e, f, g, h, i, k.¿Relacionados con las competencias siguientes:¿
1 Competencias Transversales/Genéricas¿
1.1 Capacidad de análisis y síntesis. (PO: b, e, g)¿
1.2 Capacidad de organizar y planificar. (PO: b, c, h) ¿
1.3 Resolución de problemas (PO: a, e, k)¿
1.4 Trabajo en equipo (PO: d)¿
1.5 Capacidad de aplicar los conocimientos en la práctica PO: a, b, c, e, f, i, k)¿
2 Competencias Específicas¿
2.1 Cognitivas (Saber) (PO: a, b, c, e, f, h, k)¿
- Conocer los elementos básicos que constituyen la arquitectura del computador, del procesador y su importancia en el rendimiento.
- Comprender las condiciones básicas que se requieren para el paralelismo, analizar las dependencias existentes en el software y como afectan en la ejecución de dicho software en un computador con diferentes arquitecturas.
- Conocer la estructura básica y forma de procesamiento de un procesador segmentado y cuales son los problemas básicos que limitan la eficiencia en el procesamiento.
- Conocer los métodos avanzados que para de aumento del paralelismo de ejecución a nivel de procesador se utilizan en la arquitecturas actuales.
2.2 Procedimentales/Instrumentales (Saber hacer) (PO: b, c, e, k)¿
- Métodos de reordenación del código de un programa para mejorar la eficiencia de su ejecución.
- Utilizar un simulador para analizar las ined¡ficiencias de ejecución.¿
- Usar herramientas de simulación y monitorización de arquitecturas de procesadores ¿
2.3 Actitudinales (Ser) (PO: e, g, h, i)¿
- Capacidad para generar nuevas ideas (creatividad)¿
- Actitud crítica respecto a las arquitecturas de procesadores actuales¿
- Preocupación por las prestaciones de las arquitecturas de procesadores actuales. ¿
- Motivación para busqueda de mejores soluciones
- Interés por investigar y buscar soluciones a nuevos problemas relacionados con la arquitectura de los procesadores actuales.
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.