5.2.3 · D2 · HinglishProcessor Datapath & Pipelining

Visual walkthroughClassic 5-stage pipeline (IF - ID - EX - MEM - WB)

2,043 words9 min read↑ Read in English

5.2.3 · D2 · Hardware › Processor Datapath & Pipelining › Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Hum poore walkthrough mein teen simple symbols use karenge. Inhe pehle naam lete hain, kisi bhi picture se pehle, taaki koi bhi cheez kabhi surprise na kare:

Neeche sab kuch ticks count karna hai aur se multiply karna hai. Bas yahi poora derivation hai.


Step 1 — Ek instruction jobs ki ek chain hai

KYA. Ek single instruction lo. Yeh ek indivisible blob mein nahi ho sakta — yeh actually chhote jobs ka ek sequence hai jo order mein hone chahiye: usse fetch karo, phir decode karo, phir compute karo, phir memory touch karo, phir answer write back karo.

KYUN. Har job ko pichle job ka output chahiye. Tum ek instruction ko decode nahi kar sakte jo tumne fetch nahi ki; tum woh numbers add nahi kar sakte jo tumne read nahi kiye. Yeh forced order hi hai jo ek line (assembly line) ko natural shape banata hai — dekho Register File read in ID jo ALU Design in EX ko feed karta hai.

PICTURE. Neeche, ek instruction boxes se left-to-right flow karti hai. Har box ek job hai; arrows hain "result aage do."

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Step 2 — Non-pipelined machine: koi overlap allowed nahi

KYA. Ab instructions ek aisi machine par run karo jo unhe overlap karne se mana karti hai: instruction 2 box 1 mein tab tak start nahi ho sakti jab tak instruction 1 box se poori tarah nahi nikal jaati.

KYUN. Yeh hamaara baseline hai — woh cheez jise pipelining ko beat karna hai. Agar hum nahi jaante ki "slow" kaisa dikhta hai, toh "fast" ka koi matlab nahi.

PICTURE. Har instruction puri line akele occupy karti hai, phir agla shuru hota hai. Bade white gaps notice karo: jab instruction 1 "compute" mein hai, "fetch" box idle baitha hai.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Step 3 — Unhe overlap karo: har tick ek nayi instruction

KYA. Wohi boxes rakho, lekin jis moment instruction 1 box 1 (fetch) chhod deti hai, instruction 2 ko box 1 mein enter karne do. Har tick, sab ek box right shift karte hain, aur ek fresh instruction left se slide karti hai.

KYUN. Step 2 mein woh idle boxes wasted hardware the. Overlapping unhe fill kar deta hai: full speed par saare boxes ek saath alag-alag instructions par busy hain. Yeh assembly line hai. Woh chhoti trays jo har instruction ki half-done state ko boxes ke beech hold karti hain woh pipeline registers hain (IF/ID, ID/EX, …).

PICTURE. Yeh classic staircase diagram hai. Ek column (ek tick) padho saare boxes ko busy dekhne ke liye; ek row (ek instruction) padho uski 5-box journey dekhne ke liye.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Step 4 — Ticks count karna: "fill" phir "one-per-tick"

KYA. Count karo ki poora staircase kitne ticks leta hai. Do phases:

  1. Fill: pehli instruction ko abhi bhi apne poore ticks chahiye far right tak pahunchne aur finish karne ke liye. Pehla result tick par aata hai.
  2. Steady state: us pehle result ke baad, ek aur instruction right end se har single tick pop out karti hai. instructions baaki hain finish hone ke liye.

KYUN. Hum literally staircase figure padh rahe hain. Pehla finish delayed hai (pipe ko fill hona hai); uske baad har finish ek tick apart hai kyunki poori line ek saath aage badhti hai.

PICTURE. Wahi staircase, ab annotated: orange bracket fill ticks mark karta hai, magenta bracket one-per-tick finishes mark karta hai.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Step 5 — Do times divide karo: speedup formula appear hoti hai

KYA. Baseline (Step 2) ko overlapped time (Step 4) se divide karo. Speedup = "kitni baar faster."

KYUN. "Factor of se faster" ka matlab hai purana-time divided by naya-time. Isse zyada kuch nahi.

PICTURE. Do bars, same instructions: lamba bar short bar ke upar; unki lengths ka ratio speedup hai.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Step 6 — Limit: yeh par kyun cap hoti hai (large )

KYA. ko enormous push karo (millions of instructions). Dekho fraction kaise settle hota hai.

KYUN. Real programs billions of instructions run karte hain, isliye large- behaviour wahi hai jo matter karta hai. Hum upar aur neeche se divide karte hain dekhne ke liye kya bachta hai.

  • aur — "fill cost" instructions par spread hoti hai; jaise badhta hai woh tak shrink ho jaate hain.
  • Jo bachta hai — sirf . Pipeline zyada se zyada times faster ho sakti hai, kyunki best case mein instructions overlap karte hain.

PICTURE. Speedup versus ka ek curve: yeh climb karta hai aur dashed line ki taraf flatten ho jaata hai, kabhi cross nahi karta.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Step 7 — Edge & degenerate cases (woh corners jinpar tum trip nahi kar sakte)

Har corner ke liye KYA / KYUN / PICTURE, taaki koi scenario surprise na kare:

Annotated figure mein teeno corners side by side dikhaye gaye hain.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)

Ek-picture summary

Upar ki sab cheez ek single diagram mein collapse hoti hai: staircase (overlap), do brackets ( fill, steady), do comparison bars, aur ratio jo speedup hai — limit corner mein pinned hai.

Figure — Classic 5-stage pipeline (IF - ID - EX - MEM - WB)
Recall Feynman retelling — poora walkthrough simple words mein

Ek instruction actually paanch chhote jobs hain jo row mein hote hain, isliye akele yeh 5 ticks leti hai (Step 1). Agar tum har instruction ko poori tarah finish hone do next shuru karne se pehle, toh 1000 run karne mein ticks lagte hain — aur zyaadatar boxes poore time idle baithte hain (Step 2). Toh iska badla, jis instant pehla box free ho, tum ek nayi instruction slide in karo: ab paanchon boxes ek saath paanch alag instructions par kaam karte hain (Step 3). Ticks count karo: pehla result 5 ticks wait karta hai pipe fill hone ke liye, phir ek result har tick nikalta hai baaki 999 ke liye (Step 4). Slow time ko fast time se divide karo aur tick-length cancel ho jaati hai, bach jaata hai (Step 5). Bade programs ke liye woh fraction ki taraf climb karta hai lekin kabhi pass nahi karta, kyunki best case mein sirf instructions overlap karte hain (Step 6). Aur corners mein — ek instruction, ek stage, ya uneven boxes — gain khatam ho jaata hai ya shrink ho jaata hai, jo exactly wahi hai jo formula predict karta hai (Step 7).


Active recall

Speedup mein numerator kahan se aata hai?
No-overlap baseline time se: instructions mein se har ek ticks karti hai (Step 2).
Denominator kahan se aata hai?
Overlapped run se: ticks pipe fill karne ke liye, phir aur instructions har tick ek finish hoti hain (Step 4).
speedup se kyun gayab ho jaata hai?
Yeh serial aur pipelined dono times mein appear hota hai, isliye cancel ho jaata hai — speedup ka shape sirf aur par depend karta hai.
hone par speedup kya hai, aur kyun?
Exactly 1 — ek single instruction ke paas overlap karne ke liye kuch nahi hai.
hone par speedup par kyun cap hoti hai?
Fill terms aur 0 tak shrink ho jaate hain, bach jaata hai; best case mein sirf instructions overlap karte hain.