Unidad 6 · Paralelismo, segmentación y multiprocesadores
jueves 19 de noviembre · 16:00–17:40 · en 89 días
GUÍA 19-11-26 Arquitecturas Computacionales
HU413 · jueves 19/11/2026 · 16:00-17:40 · Sesión 15
Unidad 6 · Paralelismo, segmentación y multiprocesadores
SEGMENTACIÓN
Se divide la ejecución en etapas y se procesan varias instrucciones a la vez, una en cada etapa. No reduce la latencia de una instrucción: multiplica el rendimiento.
- Las cinco etapas clásicas: búsqueda, decodificación, ejecución, memoria y escritura.
- Con k etapas equilibradas, el rendimiento ideal mejora k veces.
- El tiempo de ciclo lo fija la etapa más lenta, así que equilibrarlas es parte del diseño.
RIESGOS
- Estructurales — dos etapas necesitan el mismo recurso. Se resuelve duplicando, por ejemplo con cachés separadas de instrucciones y datos.
- De datos — una instrucción necesita un resultado que aún no se escribió. Se resuelve con adelantamiento, y con burbujas cuando el adelantamiento no alcanza, como tras un load.
- De control — no se sabe si un salto se toma hasta etapas avanzadas.
PREDICCIÓN DE SALTOS
- Estática: suponer siempre no tomado, o tomado hacia atrás por los bucles.
- Dinámica: tabla de historia con contadores de saturación de dos bits.
- Predictores correlacionados y de torneo, que combinan varios esquemas.
Con predictores modernos se supera el 95% de aciertos. Cada fallo cuesta vaciar la segmentación, y ese costo crece con la profundidad: por eso las segmentaciones muy profundas dejaron de convenir.
SUPERESCALAR Y FUERA DE ORDEN
- Superescalar — varias instrucciones por ciclo, con varias unidades funcionales.
- Ejecución fuera de orden — se ejecuta lo que tiene sus operandos listos, no lo que sigue en el programa.
- Renombrado de registros — elimina las dependencias falsas por reutilización de nombres.
- Retiro en orden — los resultados se confirman en orden de programa, para que las excepciones sean precisas.
MULTIPROCESADORES Y MULTICOMPUTADORAS
- Memoria compartida — todos los núcleos ven el mismo espacio. Fácil de programar, exige coherencia de caché.
- Memoria distribuida — cada nodo tiene la suya y se comunican por mensajes. Escala mejor, más difícil de programar.
COHERENCIA DE CACHÉ
Si dos núcleos tienen copia del mismo dato y uno lo modifica, el otro debe enterarse. El protocolo MESI —modificado, exclusivo, compartido, inválido— es el estándar. Es el precio de la memoria compartida y limita cuántos núcleos escalan bien.
PROGRAMACIÓN CONCURRENTE
- Hilos con memoria compartida: pthreads, OpenMP.
- Paso de mensajes: MPI.
- Paralelismo de datos: CUDA, OpenCL, extensiones SIMD.
TAREA
Calcular la aceleración de un programa segmentado con una tasa dada de riesgos, y aplicar la ley de Amdahl a un programa paralelizable en un 80%.
Nada anotado en esta sesión todavía.