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 |
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 |
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) |