Pipeline stall (bubble)
Het moment waarop de cpu-pipeline moet pauzeren omdat een instructie niet verder kan: ze wacht op data, een hardwarebron of de uitkomst van een sprong. De lege ruimte die ontstaat heet een ‘bubble’ en staat voor verspilde kloktikken.
Oorzaken (hazards): een data hazard (een instructie heeft een resultaat nodig dat een eerdere nog niet heeft opgeleverd), een structural hazard (twee instructies willen tegelijk dezelfde hardwarebron), een control hazard (het is onbekend welke instructie volgt tot een sprong is afgehandeld) en, de duurste, een cache miss (honderden cycli wachten op het geheugen). Een stall plant zich voort: de instructies erachter moeten ook wachten en de pipeline vult zich met bubbles. Tegenmaatregelen: forwarding/bypass (resultaten direct tussen stages doorgeven), out-of-order execution (ander werk zoeken tijdens het wachten), branch prediction (gokken in plaats van wachten) en prefetching. Stalls minimaliseren is de kern van een groot deel van het moderne cpu-ontwerp.