GeeksforGeeks
for å forbedre ytelsen TIL EN CPU har vi to alternativer:
1) Forbedre maskinvaren ved å innføre raskere kretser.
2) Ordne maskinvaren slik at mer enn en operasjon kan utføres samtidig.Siden det er en grense på maskinvarens hastighet og kostnaden for raskere kretser er ganske høy, må vi vedta 2. alternativ.
Rørlegging : Pipelining er en prosess med arrangement av maskinvareelementer AV CPU slik at den generelle ytelsen økes. Samtidig utførelse av mer enn en instruksjon foregår i en pipelined prosessor.
La oss se et virkelighetseksempel som fungerer på begrepet rørledd drift. Vurdere en vannflaske emballasje anlegg. La det være 3 trinn som en flaske skal passere gjennom, Sette inn flasken (I), Fylle vann i flasken (F) og Forsegle flasken(E). La oss betrakte disse stadiene som henholdsvis trinn 1, trinn 2 og trinn 3. La hvert trinn ta 1 minutt for å fullføre operasjonen.
Nå, i en ikke-rørformet operasjon, settes en flaske først inn i anlegget, etter 1 minutt flyttes den til trinn 2 hvor vann fylles. I fase 1 skjer det ingenting. På samme måte, når flasken beveger seg til trinn 3, er både trinn 1 og trinn 2 inaktiv. Men i pipelined drift, når flasken er i trinn 2, kan en annen flaske lastes på trinn 1. På samme måte, når flasken er i trinn 3, kan det være en flaske hver i trinn 1 og trinn 2. Så, etter hvert minutt, får vi en ny flaske på slutten av fase 3. Derfor er den gjennomsnittlige tiden det tar å produsere 1 flaske:
Uten pipelining = 9/3 minutter = 3m
I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)
med pipelining = 5/3 minutter = 1,67 m
I F S | || I F S || | I F S (5 minutes)
dermed øker pipelinedoperasjonen effektiviteten til et system.
Utforming av en grunnleggende rørledning
- i en pipelined prosessor har en rørledning to ender, inngangsenden og utgangsenden. Mellom disse endene er det flere stadier / segmenter slik at utgangen av ett trinn er koblet til inngangen til neste trinn, og hvert trinn utfører en bestemt operasjon.
- Grensesnittregistre brukes til å holde mellomutgangen mellom to trinn. Disse grensesnittregistrene kalles også lås eller buffer.
- Alle stadier i rørledningen sammen med grensesnittregistrene styres av en felles klokke.
Utførelse i en pipelined prosessor
Utførelsessekvens av instruksjoner i en pipelined prosessor kan visualiseres ved hjelp av et romtidsdiagram. For eksempel, vurder en prosessor som har 4 trinn og la det være 2 instruksjoner som skal utføres. Vi kan visualisere utførelsessekvensen gjennom følgende romtidsdiagrammer:
ikke overlappet utførelse:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
S1 | I1 | I2 | ||||||
S2 | I1 | I2 | ||||||
S3 | I1 | I2 | ||||||
S4 | I1 | I2 |
Total time = 8 Cycle
Overlapped execution:
Stage / Cycle | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
S1 | I1 | I2 | |||
S2 | I1 | I2 | |||
S3 | I1 | I2 | |||
S4 | I1 | I2 |
Total time = 5 Syklus
Pipeline Stages
RISC prosessor har 5 trinns instruksjon rørledning for å utføre alle instruksjonene I RISC instruksjonssett. Følgende er de 5 stadier AV RISC rørledning med sine respektive operasjoner:
- Trinn 1 (Instruksjon Hente)
I denne fasen CPU leser instruksjoner fra adressen i minnet hvis verdi er til stede i programtelleren. - Trinn 2 (Instruksjonsdekode)
i dette stadiet dekodes instruksjon og registerfilen er tilgjengelig for å få verdiene fra registrene som brukes i instruksjonen. - Trinn 3 (Instruksjon Utfør)
I DETTE stadiet utføres alu-operasjoner. - Stage 4 (Memory Access)
i dette stadiet leses og skrives minneoperander fra / til minnet som er til stede i instruksjonen. - Trinn 5 (Skriv Tilbake)
i dette stadiet skrives beregnet / hentet verdi tilbake til registeret som finnes i instruksjonene.
Ytelse av en pipelined prosessor
Vurdere en ‘k’ segment rørledning med klokke syklus tid Som ‘Tp’. La det være ‘n’ oppgaver som skal fullføres i pipelined prosessoren. Nå skal den første instruksjonen ta’ k ‘ sykluser for å komme ut av rørledningen, men de andre ‘n – 1’ instruksjonene tar bare ‘1’ syklus hver, det vil si totalt ‘n – 1’ sykluser. Så, tid tatt for å utføre ‘n’ instruksjoner i en pipelined prosessor:
ETpipeline = k + n – 1 cycles = (k + n – 1) Tp
i samme tilfelle, for en ikke-pipelined prosessor, utførelsestid for ‘n’ instruksjoner vil være:
ETnon-pipeline = n * k * Tp
så, speedup (Er) av pipelined prosessor over ikke-pipelined prosessor, når ‘n’ oppgaver er utført på samme prosessor er:
S = Performance of pipelined processor / Performance of Non-pipelined processor
da ytelsen til en prosessor er omvendt proporsjonal med utførelsestiden, har vi
S = ETnon-pipeline / ETpipeline => S = / S = /
når antall oppgaver ‘n’ er betydelig større enn k, det vil si n >> k
S = n * k / n S = k
hvor ‘k’ er antall trinn i rørledningen.
Også, Effektivitet = Gitt hastighet opp / Maks hastighet opp = S / Smax
Vi vet At, Smax = k
Så, Effektivitet = s / k
Gjennomstrømning = antall instruksjoner / Total tid for å fullføre instruksjonene
Så, Gjennomstrømning = n / (k + n – 1) * Tp
Merk: syklusene per instruksjon (KPI) verdien av en ideell pipelined prosessor er 1
se sett 2 for avhengigheter Og Datafare Og Sett 3 for rørledningstyper Og stalling.