Datorrörledning
Datorpipelining introducerades först av Intel i 486-chippet. Sättet som en pipeline fungerar på är analogt med ett industriellt löpande band. Inom CPU:n bildar en serie kretsenheter med distinkta funktioner en pipeline för instruktionsbearbetning; en x86-instruktion delas upp i fem eller sex steg, som sedan exekveras sekventiellt av dessa enheter. Detta möjliggör slutförandet av en instruktion inom en enda CPU-klockcykel, vilket ökar CPU:ns bearbetningshastighet. I den klassiska Pentium-processorn består varje heltalspipeline av fyra steg-instruktionsförhämtning, avkodning, exekvering och skrivning-tillbaka-medan den flyttande-pipelinen består av åtta steg.
Pipelining är en nyckelteknologi som används i stor utsträckning i mikroprocessorer (CPU). Den beskriver metoden med vilken instruktioner exekveras inom CPU:n; för att förstå pipelining måste man först förstå instruktioner och processen för deras utförande.
Datorinstruktioner
En datorinstruktion är en specifik uppsättning binära data som talar om för CPU:n vad den ska göra. Om processorn liknas vid en tillverkningsanläggning är en instruktion besläktad med en kundorder; det utlöser en serie åtgärder inom CPU:n "fabrik", vilket i slutändan ger ett beräkningsresultat-den färdiga produkten. Hur fungerar detta egentligen? Först måste det finnas en avdelning för att ta emot beställningar-processorns instruktionshämtningsenhet; för det andra måste det finnas en verkstad för att utföra beställningarna-processorns instruktionsexekveringsenhet. I en fabrik är produktionen av en vara uppdelad i flera tillverkningssteg; på liknande sätt omvandlas en instruktion till en serie motsvarande mikro-operationer inom CPU:n. Att slutföra dessa mikro-operationer i sekvens utgör exekveringen av hela instruktionen.
Instruktionsutförande
I låga-processorer är instruktionskörningen seriell; Enkelt uttryckt är en instruktion klar innan nästa börjar. Det här är som den tidigare nämnda fabriken i dess tidiga dagar, som bara bestod av en liten verkstad och en ensamföretagare som arbetar ensam: när han fick en beställning, skulle han vara fullt upptagen med att uppfylla den första beställningen och inte kunna acceptera en andra. Cykeln för att ta emot och slutföra beställningar-eller hämta och utföra instruktioner-är alltså en seriell process. Senare upptäckte chefen att det inte tog mycket tid att ta emot beställningar. Med hjälp av en assistent kunde de två arbeta självständigt; detta gjorde det möjligt för chefen att acceptera en ny beställning samtidigt som den färdigställde produkterna för den föregående. När det gäller CPU-arkitektur motsvarar detta separationen av instruktions-hämtningsenheten från instruktions-exekveringsenheten. Följaktligen kan CPU:n hämta nästa instruktion parallellt samtidigt som den exekverar den aktuella. Detta representerade ett kvalitativt steg inom CPU-tekniken, som flyttade operationer från seriell till parallell bearbetning och etablerade prototypen för instruktionspipelinen.
När processorn har slutfört det ovannämnda steget ligger den återstående utmaningen i att förbättra kapaciteten för parallell bearbetning. CPU-designers hämtade inspiration från fabrikssammansättningslinjer och bröt upp exekveringen av en enskild instruktion i flera olika steg-eller "mikro-instruktioner"-, vilket avsevärt minskade instruktionskomplexiteten, förenklade logikdesignen och ökade hastigheten. I CPU:er som använder pipelining-teknik, så snart en instruktion avslutar sitt första "steg", kommer nästa instruktion omedelbart in i pipelinen för att börja exekvera. Uppenbarligen kräver denna pipelining-strategi flera exekveringsenheter-en funktion implementerad i x86 chips.
