Arquitectura de Computadores
(2012-13)
Centro: Facultad de Informática
Titulaciones: Grado en Ingeniería de
Computadores
Grado en Ingeniería Informática
Curso: 4º
Créditos: 6
Códigos: 803218
803289
Profesor: Román Hermida Correa
Esta asignatura esta orientada a profundizar en los conocimientos de arquitectura de sistemas digitales proporcionados por las asignaturas de Tecnología y Estructura de Computadores estudiadas en los cursos previos, con especial atención a los aspectos cuantitativos de rendimiento y los mecanismos para explotar adecuadamente el creciente número de transistores que pueden integrarse en un chip. Tras estudiar conceptos de segmentación avanzada, paralelismo a nivel de instrucciones, multithreading y paralelismo a nivel de datos, la asignatura introduce los conceptos básicos de multiprocesadores, así como los mecanismos para su utilización eficiente en la ejecución de algoritmos.
Resumen del programa en inglés
This subject is conceived as an advanced course on Computer Architecture that is grounded on the basic concepts learned by the students in the previous courses on Computer Technology and Organization, with special emphasis on the quantitative aspects that characterize, the performance and the proposals to adequately exploit the growing amount of transistors that can be integrated in a chip. After studying advanced pipelining, instruction-level parallelism, multithreading and data-level parallelism, the course presents the basic ideas of multiprocessors, as well as the mechanisms for the efficient application of such architectures to execute algorithms.
Módulo 1. Introducción y tendencias en arquitectura de computadores.
- Contexto de la asignatura
- Evolución tecnológica, binomio arquitectura-tecnología
- Consumo de energía
- Factores determinantes del coste
- Fiabilidad
- Medidas de rendimiento
Módulo 2. Paralelismo a nivel de instrucción y multithreading.
- Técnicas de compilación básicas.
- Planificación dinámica de instrucciones: dependencias y renombramiento de registros
- Técnicas de predicción de saltos.
- Ejecución especulativa.
- Lanzamiento múltiple con planificación estática
- Lanzamiento múltiple con planificación dinámica
- Arquitectura VLIW
- Límites del paralelismo a nivel de instrucción.
- Ejemplos: Evolución de arquitecturas Intel
- Multithreading: concepto y tipos
- Ejemplos de arquitecturas multithread
Módulo 3. Paralelismo a nivel de datos.
- Concepto de arquitectura vectorial
- Instrucciones SIMD para procesamiento multimedia
- Unidades para procesamiento gráfico (GPUs)
- Paralelismo a nivel bucle: vectorización
Módulo 4. Multiprocesadores
- Conceptos básicos de multiprocesamiento
- La red de interconexión
- Arquitecturas de memoria compartida centralizada.
- Coherencia de cache: protocolos.
- Arquitectura de memoria compartida distribuida.
- Coherencia basada en directorio.
- Sincronización. Primitivas de sincronización.
- Concepto de consistencia de memoria: modelos.
- Introducción a la programación paralela
Módulo 5. Sistemas de almacenamiento
- Almacenamiento en disco
- Arrays de discos (RAID)
- Fiabilidad
- Medidas de rendimiento
- Mecanismos de interconexión
- Ejemplos
Básica (por orden de prioridad):
Complementaria:
Clases teóricas: 3 horas de clases teóricas a la
semana en aula.
Clases prácticas: 1 hora de clase práctica (problemas, discusión, ...) a la
semana en aula.
Evaluación:
A mitad del cuatrimestre habrá una prueba de clase opcional y no liberatoria, cuyo peso en la nota de la asignatura será del 20% para los alumnos que deseen realizarla.
Convocatoria de febrero: Examen final obligatorio y escrito, formado por
teoría y problemas. La nota de esta convocatoria será la mayor de la dos
siguientes:
- Nota de la prueba de clase x 0,2 + Nota examen x 0,7+Nota entrega ejercicios x
0,1
- Nota examen x 0,9 + Nota entrega ejercicios x 0,1.
Convocatoria de septiembre: Examen final escrito que incluye teoría y problemas. La nota de esta convocatoria será la nota del examen.
Revisión de exámenes:
Se realizará de forma individualizada, previa petición de los interesados.
Los enlaces se irán activando a lo largo del curso, previamente al desarrollo de cada tema.
Materiales de estudio adicionales
Acceso a Capítulo 1 de H&P 5ª edición (muestra): pulsa aquí
¿Necesitas repasar conceptos básicos de segmentación?: pulsa aquí
Artículo sobre multithreading masivo en revista "Computer" de agosto 2012 (accesible en red UCM): pulsa aquí
Ejemplo de programación de GPUs en CUDA: pulsa aquí
Exámenes: