Articles

GeeksforGeeks

för att förbättra prestanda för en CPU har vi två alternativ:
1) förbättra hårdvaran genom att införa snabbare kretsar.
2) Ordna hårdvaran så att mer än en operation kan utföras samtidigt.

eftersom det finns en gräns för hårdvarans hastighet och kostnaden för snabbare kretsar är ganska hög, måste vi anta 2: a alternativet.

rörledning : Pipelining är en process för arrangemang av hårdvaruelement i CPU så att dess totala prestanda ökar. Samtidig utförande av mer än en instruktion sker i en rörledad processor.

Låt oss se ett verkligt exempel som fungerar på begreppet pipelined operation. Tänk på en vattenflaskförpackningsanläggning. Låt det finnas 3 steg som en flaska ska passera genom, sätta in flaskan(i), fylla vatten i flaskan(F) och försegla flaskan (erna). Låt oss betrakta dessa steg som steg 1, Steg 2 respektive steg 3. Låt varje steg ta 1 minut för att slutföra sin funktion.
Nu, i en icke-rörledning, sätts en flaska först in i växten, efter 1 minut flyttas den till steg 2 där vatten fylls. Nu, i steg 1 händer ingenting. På samma sätt, när flaskan flyttar till steg 3, är både steg 1 och steg 2 inaktiva. Men vid rörledning, när flaskan är i steg 2, kan en annan flaska laddas i steg 1. På samma sätt, när flaskan är i steg 3, kan det finnas en flaska vardera i steg 1 och steg 2. Så efter varje minut får vi en ny flaska i slutet av steg 3. Därför är den genomsnittliga tiden för tillverkning av 1 flaska:

utan pipelining = 9/3 minuter = 3m

I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)

med pipelining = 5/3 minuter = 1,67 m

I F S | || I F S || | I F S (5 minutes)

således ökar pipelined operation effektiviteten hos ett system.

design av en grundläggande rörledning

  • i en rörledad processor har en rörledning två ändar, ingångsänden och utgångsänden. Mellan dessa ändar Finns det flera steg / segment så att utgången från ett steg är ansluten till ingången till nästa steg och varje steg utför en specifik operation.
  • gränssnittsregister används för att hålla mellanutgången mellan två steg. Dessa gränssnittsregister kallas också spärr eller buffert.
  • alla steg i rörledningen tillsammans med gränssnittsregistren styrs av en gemensam klocka.

utförande i en pipelined processor
Exekveringssekvens av instruktioner i en pipelined processor kan visualiseras med hjälp av ett rymdtidsdiagram. Tänk till exempel på en processor som har 4 steg och låt det finnas 2 instruktioner som ska utföras. Vi kan visualisera exekveringssekvensen genom följande rymdtidsdiagram:

ej överlappat utförande:

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 Cykel

Pipeline Stages

RISC processor har 5 steg instruktion pipeline att utföra alla instruktioner i RISC instruktionsuppsättningen. Följande är de 5 stegen i RISC pipeline med sina respektive operationer:

  • Steg 1 (Instruction Fetch)
    i detta skede läser CPU instruktioner från adressen i minnet vars värde finns i programräknaren.
  • steg 2 (Instruktionsavkodning)
    i detta skede avkodas instruktionen och registerfilen nås för att få värdena från de register som används i instruktionen.
  • steg 3 (Instruction Execute)
    i detta skede utförs ALU-operationer.
  • steg 4 (minnesåtkomst)
    i detta skede läses och skrivs minnesoperander från/till minnet som finns i instruktionen.
  • Steg 5 (Skriv tillbaka)
    i detta skede skrivs beräknat/hämtat värde tillbaka till registret som finns i instruktionerna.

prestanda för en rörledad processor
Tänk på en’ k ’- segmentrörledning med klockcykeltid som’Tp’. Låt det finnas n-uppgifter som ska slutföras i rörledningsprocessorn. Nu kommer den första instruktionen att ta ’k’ – cykler för att komma ut ur rörledningen, men de andra ’n – 1’ – instruktionerna tar bara ’1’ – cykeln vardera, dvs totalt ’n-1’ – cykler. Så, tid det tar att utföra ’n’ instruktioner i en pipelined processor:

 ETpipeline = k + n – 1 cycles = (k + n – 1) Tp

i samma fall, för en icke-pipelined processor, exekveringstiden för ’n’ instruktioner kommer att vara:

 ETnon-pipeline = n * k * Tp

så, speedup (S) av pipelined processor över icke-pipelined processor, när ’n’ uppgifter är exekveras på samma processor är:

 S = Performance of pipelined processor / Performance of Non-pipelined processor

eftersom processorns prestanda är omvänt proportionell mot körtiden har vi

 S = ETnon-pipeline / ETpipeline => S = / S = / 

När antalet uppgifter ’n’ är betydligt större än k, det vill säga n >> k

 S = n * k / n S = k

där ” K ” är antalet steg i rörledningen.

även effektivitet = Given hastighet upp / Max hastighet upp = S / Smax
vi vet att, Smax = k

så, effektivitet = s / k

genomströmning = antal instruktioner / Total tid för att slutföra instruktionerna

så, genomströmning = n / (k + n – 1) * Tp

Obs: cyklerna per instruktion (KPI) värdet av en idealisk pipelined processor är 1

Tack se set 2 för beroenden och Datarisk Och Set 3 för typer av rörledning och stalling.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *