Enxeñeiro en Informática |
Asignaturas |
Arquitectura e Enxeñaría de Computadores |
Contidos |
Datos Identificativos | 2013/14 | |||||||||||||
Asignatura | Arquitectura e Enxeñaría de Computadores | Código | 614111401 | |||||||||||
Titulación |
|
|||||||||||||
Descriptores | Ciclo | Período | Curso | Tipo | Créditos | |||||||||
1º e 2º Ciclo | Anual |
Cuarto | Troncal | 9 | ||||||||||
|
Temas | Subtemas |
1. Introducción al procesamiento paralelo | 1.1. Procesamiento paralelo 1.2. Condiciones de paralelismo - Concepto de dependencia - Condiciones de Bernstein - Paralelismo hardware y software 1.3. Niveles de paralelismo 1.4. Importancia del procesamiento paralelo 1.5. Clasificaciones de arquitecturas paralelas - Taxonomía de Flynn - Organización del sistema memoria: clasificación tradicional de sis- temas MIMD. 1.6. Medidas de rendimiento |
2. Paralelismo a nivel de instrucción | 2.1. Rendimiento de un procesador 2.2. Soluciones básicas para la mejora del rendimiento: Evolución 2.3. Técnicas para el aumento del paralelismo a nivel de instrucción 2.4. Planificación estática/software - Planificación estática básica - Desenrollamiento de bucles - Planificación estática superescalar - Planificación estática VLIW - Segmentación software - Detección y eliminación de dependencias 2.5. Planificación dinámica/hardware - Planificación dinámica superescalar 2.6. Renombre de registros - Renombre de registros software - Renombre de registros hardware: Buffer de reordenamiento 2.7. Tratamiento de operaciones load/store: buffer de almacenamiento 2.8. Tratamiento de riesgos de control - Predicción de salto estática, salto retardado - Predicción dinámica de saltos 2.9. Especulación 2.10. Ejemplos comerciales |
3. Procesamiento vectorial | 3.1. ¿Por qué máquinas vectoriales? 3.2. Arquitecturas vectoriales 3.3. Arquitectura vectorial básica - Componentes principales de la U.V. - Máquinas vectoriales comerciales - Repertorio de instrucciones de la U.V. - Ejemplo de bucle vectorial 3.4. Vectorización 3.5. Tiempo de ejecución vectorial 3.6. Organización de memoria en un procesador vectorial - Entrelazamiento de memoria - Técnicas de estructuración de datos para máquinas vectoriales 3.7. Control de la longitud del vector 3.8. Rendimiento vectorial - Efectos de la vectorización. - Mejorando el rendimiento vectorial: • Encadenamiento de U.F. vectoriales • Transformación de código para evitar conflictos de acceso a memoria 3.9. Ejemplos comerciales: - Earth Simulator - Cray X1 |
4. Computación paralela: arquitecturas y paradigmas de programación | 4.1. Introducción 4.2. Arquitecturas paralelas modernas: * Arquitecturas paralelas vectorial, multimedia y GPU * Arquitecturas paralelas TLP: multiprocesador y multicomputador * Arqutiecturas paralelas RLP: cluster y WSC * Arquitecturas paralelas híbridas * Comparación entre arquitecturas paralelas modernas 4.4. Paradigmas de programación * Paradigma de memoria compartida, memoria distribuida, PGAS, streaming y MapReduce. * Paradigmas híbridos * Comparación entre herramientas disponibles en el mercado * Comparación entre soluciones tecnológicas disponibles en el mercado |
5. Arquitecturas multiprocesador: coherencia caché y consistencia de memoria | 5.1. Introducción 5.1. Sincronización 5.2. Modelos de consistencia de memoria 5.2. Protocolos de coherencia caché * Protocolo de snooping * Protocolo basado en directorio |
6. Redes de interconexión para arquitecturas paralelas | 6.1. Introducción 6.2. Redes de interconexión estáticas 6.3. Estrategias de conmutación 6.4. Redes de interconexión dinámicas 6.5. Funciones de encaminamiento de datos 6.6. On-chip networks (OCN) |
|