Última actualización: 28/06/2021


Curso Académico: 2021/2022

Organización de Computadores
(13885)
Titulación: Grado en Ingeniería Informática (218)


Coordinador/a: CASTILLO MONTOYA, JOSE CARLOS

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

Tipo: Optativa
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:

Rama de Conocimiento: Ingeniería y Arquitectura



Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
- Programación (curso 1º, 1er cuatrimestre) - Estructura de Computadores (curso 2º, 1er cuatrimestre) - Sistemas Operativos (curso 2º, 2º cuatrimestre) - Arquitectura de Computadores (curso 3º, 1er cuatrimestre)
Objetivos
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.
Competencias y resultados del aprendizaje
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: 1. Clases magistrales. Presentación de los principales conceptos. Discusión y aclaración de dudas sobre los conceptos. Se trabajará sobre transparencias que se les darán a los alumnos para facilitar el aprendizaje además de un texto o textos básicos de referencia requeridos en la asignatura. (2,5 ECTS) 2. Clases de ejercicios prácticos. Sesiones en las que se plantean problemas y se deja a los estudiantes en grupos que planteen sus soluciones. (2,5 ECTS) 3. Laboratorios. A los alumnos (en equipos pequeños) se les propondrán casos prácticos de estudio, deberán estudiarlos y posteriormente sacar los datos de simulación y analizarlos. Se utilizará el conocimiento de los temas tratados en clases magistrales y clases prácticas en la asignatura. Se hará un estudio previo, se trabajará en el laboratorio y posteriormente se entregará un informe escrito con los resultados y soluciones propuestas. (1 ECTS)
Sistema de evaluación
  • Peso porcentual del Examen Final 0
  • Peso porcentual del resto de la evaluación 100
Calendario de Evaluación Continua
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.