ARQUITECTURAS AVANZADAS


Horario

Prerrequisitos

Objetivos

Evaluaciones

Prácticas

Contenidos

Bibliografía

Departamento: Informática

Área de conocimiento: Arquitectura y Tecnología de Computadores

Curso: 3º de Ingeniería Técnica en Informática de Sistemas y de Gestión.

Cuatrimestre: 2º.

Tipo de asignatura: optativa.

   

HORARIO

Teoría:
Lunes, martes y miércoles de 12h a 13h.
Aula 103. Edificio de Tecnologías de la Información y Telecomunicaciones.

Prácticas:
Miércoles de 16 a 18h.
Laboratorio 104. Edificio de Tecnologías de la Información y Telecomunicaciones.

Tutorķas:
Lunes de 11 a 12 h. y de 13 a 14h., martes de 10 a 12h. y de 13 a 14h. y miércoles de 13 a 14h.
Despacho 2D062. Edificio de Tecnologías de la Información y Telecomunicaciones.

   

PRERREQUISITOS

Se supone que el alumno que aborda esta asignatura dispone de unos conocimientos elementales sobre estructura de computadores.

   

OBJETIVOS

El objetivo de esta asignatura es dar a conocer arquitecturas diferentes a las clásicas, especialmente en el ámbito de las arquitecturas paralelas. Se estudiarán con especial interés los procesadores segmentados, los computadores vectoriales, los multiprocesadores y los multicomputadores con sus problemas asociados.

   

EVALUACIONES PREVISTAS

El examen ordinario se celebrará en junio y el extraordinario en septiembre.

Para aprobar la asignatura es necesario superar tanto los créditos teóricos como los prácticos. En caso de no superar los créditos prácticos mediante la presentación de los trabajos se deberá superar un examen práctico.
 
 

PRÁCTICAS

A lo largo del curso se desarrollarán diferentes trabajos. Estos trabajos consistirán en la programación de algunos algoritmos, se insistirá preferentemente en la programación de algoritmos paralelos mediante paso de mensajes.

CONTENIDOS


1 Conceptos generales

1.1 Necesidad del paralelismo

1.2 Concepto de paralelismo

1.3 Limitaciones del paralelismo

1.3.1 Rendimiento de los computadores paralelos
1.3.2 Ley de Amdahl
1.3.3 Ley de Gustafson
1.3.4 Dependencias

1.4 Tipos de paralelismo

1.4.1 Paralelismo implícito
1.4.2 Paralelismo explícito: clasificación de Flynn

1.5 Problemática planteada

1.6 Características de las máquinas paralelas

1.7 Aplicaciones del proceso paralelo


2 Procesadores segmentados

2.1 Introducción y definiciones

2.2 Rendimiento de los procesadores segmentados

2.3 Clasificación de los procesadores segmentados

2.4 Conflictos y sus tipos

2.5 Control de conflictos

2.5.1 Conflictos estructurales
2.5.2 Conflictos por dependencias de datos
2.5.3 Conflictos de control

2.6 Procesadores segmentados y arquitectura RISC

2.7 Procesadores superescalares y supersegmentados

2.8 Segmentación en procesadores VLIW

3 Procesadores vectoriales

3.1 Introducción y definiciones

3.2 Procesamiento vectorial

3.3 Segmentación y procesadores vectoriales

3.4 Arquitectura de los procesadores vectoriales

3.5 Rendimiento de los procesadores vectoriales

3.6 Características de los lenguajes para proceso vectorial

3.7 Compiladores para procesadores vectoriales

3.8 Ejemplos reales de computadores vectoriales

3.8.1 El Cray-1 de Cray Research
3.8.2 El Cyber-205 de Control Data
3.8.3 El IBM-3090
3.8.4 El Earth Simulator

4 Redes de interconexión

4.1 Introducción .

4.2 Rendimiento de las sistemas de comunicacidn entre procesadores

4.2.1 Modelo básico: dos procesadores con comunicación total entre los procesos
4.2.2 Modelo extendido: n procesadores con comunicación total entre los procesos
4.2.3 Modelo lineal en el tiempo de comunicaciones
4.2.4 Modelo óptimo
4.2.5 Conclusiones

4.3 Características de las redes de interconexión

4.4 Elementos de conmutación (switches)

4.5 Permutaciones y funciones de intercambio

4.6 Clasificación de las redes de interconexión

4.6.1 Redes de interconexión estáticas
4.6.2 Redes de interconexión dinámicas
4.6.3 Resumen comparativo

4.7 Métodos de encaminamiento

4.7.1 Encaminamiento en redes hipercubo
4.7.2 Encaminamiento en redes omega
4.7.3 Encaminamiento en redes delta

5 La memoria en los sistemas paralelos

5.1 Organizaciones de memoria para los multiprocesadores

5.2 Memorias entrelazadas

5.2.1 Acceso S
5.2.2 Acceso C
5.2.3 Acceso C/S

5.3 Memorias tolerantes a fallos

5.4 Coherencia caché

6 Software para sistemas paralelos

6.1 Introducción

6.2 Sistemas operativos para sistemas paralelos

6.2.1 Clasificación de los sistemas operativos multiprocesador

6.3 Detección del paralelismo

6.3.1 Grafos de flujo de datos

6.4 Modelos de programación para sistemas paralelos

6.4.1 Variables compartidas (work sharing)
6.4.2 Paso de mensajes

6.5 Lenguajes y librerías para la programación de sistemas paralelos

7 Máquinas tolerantes a fallos

7.1 Conceptos generales sobre tolerancia a fallos

7.2 Causas de los fallos

7.3 Caracterización de los fallos

7.4 Filosofías de diseño para combatir los fallos

7.5 Redundancia

7.5.1 Redundancia hardware
7.5.2 Redundancia software
7.5.3 Redundancia informacional
7.5.4 Redundancia en el tiempo

7.6 Métodos de evaluación de sistemas tolerantes a fallos

   

BIBLIOGRAFÍA