Unidad 6 · Paralelismo, segmentación y multiprocesadores

jueves 19 de noviembre · 16:0017:40 · en 89 días

Guía del maestro.docx

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%.

Mis notas0 palabras
.docx
Tareas propias de esta sesión

Nada anotado en esta sesión todavía.