Pijplijnblokkeringen treden op wanneer de CPU het resultaat van een eerdere instructie nodig heeft om een andere te verwerken. Dit kan om een aantal redenen gebeuren, zoals:
* Gegevensafhankelijkheid: De volgende instructie is afhankelijk van het resultaat van de vorige instructie. Een optelinstructie kan bijvoorbeeld niet worden uitgevoerd voordat de twee op te tellen getallen in de CPU zijn geladen.
* Bronconflict: Voor de volgende instructie is een bron nodig die momenteel door de vorige instructie wordt gebruikt. Twee instructies kunnen bijvoorbeeld niet tegelijkertijd toegang krijgen tot dezelfde geheugenlocatie.
* Verkeerde voorspelling van de branche: De CPU voorspelt dat een vertakkingsinstructie de ene kant op gaat, maar in werkelijkheid gaat deze de andere kant op. Dit kan ertoe leiden dat de CPU de verkeerde instructies ophaalt en uitvoert.
Het vastlopen van pijpleidingen kan een aanzienlijke impact hebben op de prestaties. Door het aantal pijplijnstoringen te verminderen, kan de CPU de doorvoer en efficiëntie verbeteren. |