Última actualización: 20/04/2020


Curso Académico: 2019/2020

Organización de Computadores
(13885)
Grado en Ingeniería Informática (Plan 2011) (Plan: 256 - Estudio: 218)


Coordinador/a: MORENO LORENTE, LUIS ENRIQUE

Departamento asignado a la asignatura: Departamento de Ingeniería de Sistemas y Automática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:

Rama de Conocimiento: Ingeniería y Arquitectura



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, crea
Descripción de contenidos: Programa
El programa se descompone del siguiente modo : 1. Introducción a la computación en paralelo. Concepto de paralelismo y evolución histórica. 2. Organización general de un computador. 3. Condiciones para el paralelismo y análisis de las prestaciones. Análisis de dependencias. Niveles de paralelización y tamaño de grano. Caracterización del rendimiento. Modelos de rendimiento teórico. 4. Fundamentos de la segmentación. Conceptos básicos de la segmentación. Estructura de control de las unidades funcionales segmentadas. 5. Procesadores segmentados. Etapas básicas de un procesador segmentado con planificación estática de instrucciones. Tipos de riesgos y soluciones a los mismos. Ejecución multiciclo. Planificación dinámica de instrucciones. Predicción dinámica de saltos. 6. Arquitecturas superescalares , supersegmentadas y VLIW. Conceptos de procesador superescalar y supersegmentado. Prestaciones de un procesador superescalar y de un procesador supersegmentado. Procesadores VLIW. Situación actual de los procesadores.
Actividades formativas, metodología a utilizar y régimen de tutorías
Las actividades que se llevan a cabo en la impartición de la asignatura son: ¿ Clases Teóricas y Ejercicios: 1,66 ECTS. (PO: a, b, e, f, g, h, i, k)¿ Tienen por objetivo alcanzar las competencias específicas cognitivas de la asignatura. Los alumnos recibirán las notas de clase y tendrán textos básicos de referencia. Actividades:¿ ¿ Conceptos teóricos indicados en el programa, importancia de la materia, visión crítica de las arquitecturas actuales e importancia de los aspectos en las prestaciones de los mismos. Conciencia de la necesidad de aprender nuevos conceptos a lo largo de la vida profesional. ¿ ¿ Formulación y resolución de problemas de arquitecturas de computadores. Análisis de dependencias, simulación de la ejecución sobre arquitecturas determinadas, analisis de los resultados, y propuestas de mejora en la solución. ¿ ¿ Ejemplos durante las clases que hagan consciente al alumno del impacto en la empresa de la elección una arquitectura de máquina u otra. ¿ ¿ Mejora de las habilidades de comunicacion mediante la lectura de materiales y la realización de exámenes escritos. ¿ ¿ Clases Prácticas: 4 prácticas en laboratorio, mas tres horas estimadas de trabajo del alumno en casa para prepararla y escribir la memoria, 0.75 ECTS . (PO: a, b, c, d, e, g, k)¿Desarrollan las competencias específicas instrumentales y la mayor parte de las transversales, como son la de trabajo en equipo, capacidad de aplicar los conocimientos a la práctica, de planificar y organizar y de análisis y síntesis. También tienen por objetivo desarrollar las capacidades específicas actitudinales. Para ello se:¿ ¿ Desarrollan en grupo varias prácticas a lo largo del curso aplicando principios de sistemas de computación al campo de la ingeniería de computadores y con apoyo parcial del profesor.¿ ¿ Se realizan diseño de problemas a partir de especificaciones iniciales, los estudiantes deben estudiar las especificaciones y proponer e implementar una solución. ¿ Los estudiantes deben usar herramientas de simulación para analizar y mejorar soluciones a los problemas propuestos. ¿ ¿ Se desarrollan en grupos de trabajo de forma colaborativa, ampliando así la capacidad para ampliar conceptos teórico y debe demostrar que el grupo es capaz de desarrollar un experimento cumpliendo requisitos y restricciones de tiempo. ¿ ¿ Mejoran las capacidades de comunicación a través de las memorias escritas de las prácticas.¿ ¿ Realización de Actividades Académicas Dirigidas con presencia del profesor: 1 ECTS. (PO: b, d, e, g, k)¿ ¿ Resolución de ejercicios, casos prácticos y experimentos de forma participativa en la clase de ejercicios. Los alumnos deben estudiar casos y extraer conclusiones de los mismos, tanto de forma individual como colaborativa. ¿ Trabajo personal. 1.5 ECTS. (PO: a, b, c, d, e, f, g, h, i, k)¿ ¿ Autoestudio de conceptos y su aplicación. Trabajo en grupo para acabar prácticas. Adquisición de información extra, importancia de SO en la profesión y necesidad de aprendizaje.¿ ¿ Examenes. 0.25 ECTS. (PO: a, b, c)
Sistema de evaluación
  • Peso porcentual del Examen Final 0
  • Peso porcentual del resto de la evaluación 100

Bibliografía básica
  • D.A. PATTERSON y J. L. HENNESSY. Estructura y Diseño de Computadores: Interficie circiuitería/programación. Ed Reverté, 2000.
  • J. L. HENNESSY y D.A. PATTERSON. Computer Architecture: A Quantitative Approach. Fourth Edition. Ed Elsevier 2007.
  • J. SILC et al,. ¿Processor Architecture¿. Springer Verlag, 1999.
  • J.P. SHEN y M.H. LIPPASTI. Modern Processor Design: Fundamentals of superscalar processors. Ed Mac Graw Hill 2005.
  • K. HWANG. Advanced Computer Architecture. Mc Graw-Hill , 1993.
Bibliografía complementaria
  • A.R. OMONDI. The Microarchitecture of Pipelined and Superscalar Computers. Kluwer Academic Publishers, 1999.
  • H. S. STONE. High Performance Computer Architecture. Ed Addison Wesley, 1993.
  • P. M KOGGE. The Architecture of Pipelined Computers. Ed Mc Graw Hill, 1981.

El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.