Konsepter:Pipelining
Fra CodeWiki
Pipelining generelt omhandler en teknikk hvor man kan utføre flere instruksjoner samtidig. Konseptet er litt ulikt innenfor ulike områder, men det er i prinsippet dette det handler om:
Datamaskinarkitektur
Her handler det om instruksjonspipelining. Dette er en teknikk brukt innenfor datamaskinarkitektur som har til hensikt å øke antall instruksjoner som kan bli utført i en gitt tidsenhet. Ideen går ut på å dele opp utførelsen av en datamaskininstruksjon inn i en serie av uavhengige steg, med lagere på slutten av hvert steg.
Mikrokontrolleren
I en mikrokontroller vil pipelining si at mens vi eksekverer en funksjon, kan vi hente frem en annen instruksjon parallelt med dette.
Mikroprosessoren
Prosessen hvor mikroprosessoren tar hånd om en instruksjon kan brytes ned til en serie av fire enkle steg.
1: Fetch
Henter den neste instrksjonen fra adressen lagret i programtelleren.
2: Store
lagre denne instruksjonen i et instruksjonsregister og dekode den, og inkrementèr adressen i programtelleren.
3: Execute
Eksekver instruksjonen som nå ligger i instruksjonsregisteret. Hvis instruksjonen ikke er en branch instruksjon, men en aritmetisk instruksjon, så sendes den til den tilhørende ALU'en.
4: Write
skriv resultatene av den instruksjonen fra ALU'en tilbake til destinasjonsregisteret.
I en moderne prosessor vil de fire stegene ovenfor bli repetert igjen og igjen helt til programmet er ferdig med å eksekvere. Dette er stort sett de 4 stegene i en klassisk RISC-pipeline.
