Volver al Blog
hardware
13 min
2026-07-31

El Pipeline del Procesador: Segmentación de Cauce de 5 Etapas y Mitigación de Hazards

Una guía técnica profunda sobre la segmentación de cauce en microprocesadores (IF, ID, EX, MEM, WB), la taxonomía de Hazards de Datos, Estructurales y de Control, y sus técnicas de resolución.

SmartEng Tools Team

Computer Architecture Specialist

En los primeros microprocesadores monociclo, cada instrucción debía completarse de principio a fin dentro de un único periodo de reloj. La frecuencia máxima del procesador estaba severamente limitada por la instrucción más lenta (como la lectura en memoria RAM).

La segmentación de cauce (pipelining) revolucionó el diseño de microprocesadores al aplicar los principios de las cadenas de montaje industriales a la ejecución de instrucciones. Al dividir el procesamiento en etapas discretas separadas por registros de segmentación (Pipeline Registers), el procesador puede ejecutar múltiples instrucciones de forma solapada en paralelo.

1. Las 5 Etapas del Cauce Clásico RISC

El pipeline estándar de 5 etapas se estructura de la siguiente manera:

IF

Instruction Fetch (Búsqueda de Instrucción)

Se lee la instrucción de 32 bits de la memoria de instrucciones apontada por el Program Counter (PC) y se incrementa el PC en +4.

ID

Instruction Decode (Decodificación y Lectura de Registros)

La Unidad de Control interpreta el opcode y se leen simultáneamente los registros fuente rs1 y rs2 del Banco de Registros.

EX

Execute (Ejecución Aritmética / Cálculo de Dirección)

La Unidad Aritmético-Lógica (ALU) efectúa la operación especificada o calcula la dirección efectiva de memoria para instrucciones de carga/almacenamiento.

MEM

Memory Access (Acceso a Memoria de Datos)

Si se trata de una instrucción LW o SW, se accede a la memoria de datos (D-Cache) para leer o escribir.

WB

Write Back (Escritura en Registro)

El resultado calculado por la ALU o el dato leído de memoria se escribe definitivamente en el registro destino rd.

2. Taxonomía de Hazards (Riesgos de Ejecución)

Aunque el pipeline ideal logra ejecutar una instrucción por ciclo de reloj (CPI = 1), en la práctica surgen situaciones denominadas Hazards que fuerzan la detención del cauce (stalls) degradando el rendimiento.

A. Hazards Estructurales

Ocurren cuando dos etapas diferentes del pipeline intentan acceder simultáneamente al mismo recurso hardware. En arquitecturas modernas, esto se soluciona separando la memoria en dos cachés físicamente independientes: I-Cache (Instrucciones) y D-Cache (Datos) (Arquitectura Harvard).

B. Hazards de Datos (RAW, WAR, WAW)

Aparecen cuando una instrucción depende del resultado de una instrucción previa que aún no ha completado la etapa de Write Back (RAW: Read-After-Write).

add x1, x2, x3         ; Genera resultado en x1 en etapa EX (ciclo 3)
sub x4, x1, x5         ; Intenta leer x1 en etapa ID (ciclo 3) → ¡DATO OBSOLETO!

Solución: Circuitos de Cortocircuito (Bypassing / Forwarding): En lugar de esperar 2 ciclos a que x1 se escriba en el Banco de Registros, un multiplexor de Forwarding redirige la salida del registro EX/MEM o MEM/WB directamente a las entradas de la ALU en la etapa EX.

C. Hazards de Control (Saltos Condicionales)

Surgen con instrucciones de salto (ej. beq x1, x2, label). La Unidad de Control no sabe si el salto se tomará hasta evaluar la condición en la etapa EX o MEM. Esto causa una penalización de vaciado de pipeline (flush penalty).

Predicción Dinámica de Saltos

Los procesadores avanzados utilizan Predictores de Salto Dinámicos de 2 bits (Saturating Counters) junto con estructuras Branch Target Buffer (BTB) para predecir la dirección de salto en la etapa IF con un acierto superior al 95%, evitando las burbujas en el cauce.

¿Quieres aplicar estos conceptos en la práctica?

Prueba nuestras micro-herramientas interactivas en tiempo real. 100% gratuitas, sin registro y de ejecución local.

Probar Decodificador RISC-V