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?