Pipeline-Stall (Bubble)
Wenn die CPU-Pipeline gezwungen ist zu pausieren, weil eine Instruktion nicht fortfahren kann — sie wartet auf Daten, eine Ressource oder das Ergebnis eines Sprungs. Die entstehende leere Lücke heißt „Bubble“ und steht für verschwendete Taktzyklen.
Ursachen (Hazards): Data Hazard (eine Instruktion braucht ein Ergebnis, das eine vorherige noch nicht erzeugt hat), Structural Hazard (zwei Instruktionen wollen gleichzeitig dieselbe Hardware-Ressource), Control Hazard (unklar, welche Instruktion als Nächstes kommt, bis ein Sprung aufgelöst ist), und — am teuersten — ein Cache Miss (Hunderte Takte auf den Speicher warten). Ein Stall pflanzt sich fort: Die nachfolgenden Instruktionen müssen ebenfalls warten, und die Pipeline füllt sich mit Bubbles. Gegenmittel: Forwarding/Bypass (Ergebnisse direkt zwischen den Stufen weiterreichen), Out-of-Order-Ausführung (während der Wartezeit andere Arbeit finden), Sprungvorhersage (raten statt warten) und Prefetching. Stalls zu minimieren ist der eigentliche Sinn eines Großteils des modernen CPU-Designs. Gehört zusammen mit Data Hazard und Forwarding/Bypass.