Rörledningar förbättrar CPU -prestanda genom att överlappa genomförandet av flera instruktioner. Istället för att vänta på att en instruktion ska slutföras helt innan du startar nästa, delar en pipeline ned instruktionsutförande i mindre steg. Olika instruktioner kan vara i olika exekveringsstadier samtidigt. Detta är analogt med en monteringslinje i en fabrik; Varje steg utför en specifik uppgift på instruktionen och instruktionerna flyter genom stegen samtidigt.
Här är en uppdelning av varför detta leder till prestationsvinster:
* Ökad instruktionsgenomgång: Den viktigaste fördelen är förmågan att utfärda en ny instruktion varje klockcykel, även om varje instruktion tar flera klockcykler att slutföra. Detta ökar antalet instruktioner som behandlas per tidsenhet avsevärt.
* Förbättrad användning av CPU -resurser: Rörledningen håller olika komponenter i CPU upptagen. Medan en instruktion utför sin aritmetiska operation i ALU, kan en annan instruktion hämta nästa instruktion från minnet, och ännu en kan vara att skriva resultatet till ett register. Detta maximerar resursanvändningen.
* reducerad genomsnittlig instruktionstid (men inte individuell instruktionstid): Medan tiden att utföra en * singel * -instruktion kan förbli till stor del densamma (eller till och med något ökad på grund av överhuvudet för rörledningssteg), minskas den * genomsnittliga * tiden att utföra en * sekvens * av instruktionerna kraftigt på grund av överlappande exekvering.
Rörledningar är dock inte utan deras begränsningar:
* Rörledningsfaror: Dessa är situationer som kan störa det smidiga flödet av instruktioner genom rörledningen. Huvudtyperna är:
* Datoriska: En instruktion behöver data som ännu inte har producerats av en tidigare instruktion.
* Kontrollrisker: En greninstruktion förändrar programmets flöde och gör några instruktioner i rörledningen irrelevant.
* Strukturella faror: Hårdvaran saknar resurser för att utföra flera instruktioner samtidigt i rörledningen (t.ex. endast en minnesåtkomst åt gången).
Dessa faror kräver tekniker som vidarebefordran, stannar (infoga bubblor) och grenförutsägelse för att mildra deras negativa inverkan på prestanda. Trots dessa utmaningar överväger fördelarna med pipelining när det gäller ökad genomströmning långt kostnaderna i de flesta moderna CPU:er. Sofistikerade tekniker utvecklas ständigt för att ytterligare optimera rörledningsprestanda och hantera faror mer effektivt.