Las cinco etapas
- IF — busca la instrucción en la dirección del PC y avanza el PC.
- ID — decodifica y lee los registros fuente. Aquí se detectan los riesgos.
- EX — la ALU calcula el resultado, la dirección de memoria o la condición del salto.
- MEM — las cargas y almacenamientos acceden a memoria.
- WB — el resultado se escribe en el registro destino.
Cómo leer el diagrama
Cada fila es una etapa y cada columna un ciclo de reloj; la celda dice qué instrucción ocupa esa etapa en ese ciclo. Con tres instrucciones independientes no hay esperas: la primera termina en el ciclo 5 y después sale una por ciclo.
| Etapa | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| IF | I0 | I1 | I2 | — | — | — | — |
| ID | — | I0 | I1 | I2 | — | — | — |
| EX | — | — | I0 | I1 | I2 | — | — |
| MEM | — | — | — | I0 | I1 | I2 | — |
| WB | — | — | — | — | I0 | I1 | I2 |
Sin riesgos, N instrucciones tardan N + 4 ciclos: 4 para llenar el pipeline y luego una por ciclo. Cualquier ciclo por encima de eso es una penalización, y el diagrama muestra dónde se produce: una burbuja (burb.) es una etapa vacía insertada mientras una instrucción espera en ID, y FLUSH es una instrucción descartada tras un salto.