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
              
 

 
     

Resumen del Programa.

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.


 

Programa detallado

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


Bibliografía

Básica (por orden de prioridad):

Complementaria:


Desarrollo de la asignatura:

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.


Transparencias (PDF):

Los enlaces se irán activando a lo largo del curso, previamente al desarrollo de cada tema.


Problemas (PDF):

 


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í


Test de clase:


Exámenes: