Data hazard
När en instruktion i pipelinen behöver ett dataresultat som en föregående instruktion ännu inte hunnit producera. Det vanligaste hindret mot att köra instruktioner tätt efter varandra — om det inte hanteras måste pipelinen stanna och vänta.
Typer: RAW (Read After Write) — den klassiska och äkta: instruktion B läser ett register som A just ska skriva, men A är inte klar → B måste vänta på A:s resultat. WAR (Write After Read) och WAW (Write After Write) är "falska" beroenden som bara uppstår pga återanvändning av samma register, och kan elimineras med registeromdöpning (ge dem olika fysiska register). Hantering av RAW: forwarding/bypass skickar resultatet direkt från där det beräknas till där det behövs, utan att vänta på att det skrivs till registerfilen — vilket ofta eliminerar väntan helt. Out-of-order-exekvering hjälper genom att köra oberoende instruktioner under tiden. Att förstå data hazards är grunden för att förstå varför CPU:er behöver forwarding och omdöpning. Hör ihop med forwarding/bypass och register-renaming.