Segmentación (Pipelining)

Solapamiento de ejecución de instrucciones: etapas del pipeline, riesgos, reenvío y paradas.

La segmentación es la técnica que hizo rápidas a las CPUs modernas. En lugar de completar una instrucción antes de comenzar la siguiente, una CPU segmentada solapa la ejecución—mientras una instrucción se está ejecutando, la siguiente se está decodificando, y la que sigue se está buscando. Como una línea de ensamblaje, cada etapa maneja una instrucción diferente simultáneamente, aumentando dramáticamente el rendimiento sin hacer más rápida ninguna instrucción individual.

Objectives

  • Explicar el concepto de pipeline usando la analogía de la línea de ensamblaje
  • Describir el pipeline RISC clásico de 5 etapas (IF, ID, EX, MEM, WB)
  • Identificar riesgos de datos, riesgos de control y riesgos estructurales
  • Aplicar reenvío (bypass) para resolver riesgos de datos
  • Comprender las paradas del pipeline y su impacto en el rendimiento

Key Takeaways

  • La segmentación solapa la ejecución de instrucciones para ~N× rendimiento (N etapas)
  • 5 etapas clásicas: Búsqueda de Instrucción, Decodificación, Ejecución, Memoria, Escritura
  • Riesgos de datos: se resuelven con reenvío; carga-uso requiere una parada
  • Riesgos de control: la predicción de saltos reduce las penalizaciones por predicción errónea
  • Pipelines más profundos aumentan el rendimiento pero amplifican las penalizaciones por riesgos

Applications

  • ARM Cortex-M: Pipeline de 3 etapas en microcontroladores para sistemas embebidos.
  • Implementaciones RISC-V: Pipeline clásico de 5 etapas en núcleos RISC-V educativos y de producción.
  • CPUs Intel/AMD: Pipelines de 14-20+ etapas con ejecución fuera de orden y especulación.
  • Pipelines de GPU: Pipelines profundos procesan miles de hilos para ocultar la latencia.

Practice Problems

Problem 1: Un pipeline de 5 etapas ejecuta 1000 instrucciones. ¿Cuántos ciclos toma (sin riesgos)?

Problem 2: ADD R1,R2,R3 seguido de SUB R4,R1,R5. ¿Qué riesgo existe y cómo se resuelve?

Problem 3: LOAD R1,[R2] seguido de ADD R3,R1,R4. ¿Puede el reenvío eliminar completamente la parada?

Problem 4: Un pipeline de 12 etapas tiene una penalización por predicción errónea de salto de 11 ciclos. Si el 15% de las instrucciones son saltos con una tasa de predicción errónea del 10%, ¿cuál es el CPI?