Deep kyun jaate hain?
Frequency f=Tcycle1 jahan Tcyclesabse slow pipeline stage se determine hoti hai. Ek lambi stage ko do chhoti stages mein split karne se Tcycle reduce ho sakta hai, f boost hoti hai.
Kaam kaise karta hai?
Logic blocks ke beech additional pipeline registers insert karo
Har stage kam combinational work karti hai → shorter critical path
Clock tezi se tick kar sakta hai kyunki har stage pehle complete ho jaati hai
Unpipelined: total delay = k⋅τ (sab logic ek cycle mein)
Pipelined: cycle time = τ+treg (slowest stage + register overhead)
Speedup = τ+tregk⋅τ
Jab k→∞: agar τ=kT0 (evenly split karo), speedup →tregT0 — register delay se bounded
Yeh kyun important hai: Register overhead bottleneck ban jaata hai. Agar treg=0.1τ hai, toh stages 10 se 20 double karne par sirf ~10% speedup milta hai, 2× nahi.
5 stages par: τlogic shayad treg se 10× bada ho → registers ~10% overhead hain
31 stages par (Pentium 4): τlogic bahut chhota hai, treg dominate karta hai → zyada stages add karne se barely kuch fayda
Optimal depth estimate kaise karein: dkdTcycle=0 set karo. Agar total logic T0 ko k stages mein split karein:
Tcycle(k)=kT0+tregdkd(kT0+treg)=−k2T0<0 always
Toh analytically, "deeper is always better" — lekin yeh hazard costs aur power ko ignore karta hai.
Clock power:
Clock network ko k sets of pipeline registers drive karne padte hain. Pentium 4 ke deeply pipelined design mein clock distribution mein 30-40% power lagti thi.
Complexity:
Forwarding paths: deep pipelines mein O(k2) potential bypasses
Control logic: 20+ stages mein dependencies track karna
Verification: sab hazard cases validate karna exponentially harder
Socho tum ek factory mein sandwiches bana rahe ho. Pehle, tum sab kuch khud karte ho: bread lo, peanut butter lagao, jelly lagao, kato, wrap karo. Ek sandwich mein 5 minute lagte hain.
Phir tum split karte ho: Person 1 bread laata hai (1 min), Person 2 PB lagaata hai (1 min), Person 3 jelly lagaata hai (1 min), Person 4 kaata hai (1 min), Person 5 wrap karta hai (1 min). Ab har minute ek complete sandwich nikalti hai! Tum 5× fast ho gaye.
Lekin agar 20 logon mein split karo? Person 1 bread ka bag kholega. Person 2 ek slice nikalega. Person 3 use counter par rakhega. Ab tumhe sandwich 20 logon ke beech pass karni padegi, aur hand-off ka time (jaise tray par rakhna aur "next!" chillana) add up ho jaata hai. Aur agar koi sandwich drop kar de (jaise CPU mein ek mistake, jise "branch misprediction" kehte hain), toh tumhe step 1 se restart karna hoga, aur ab 19 log sirf khade hain kuch nahi karte, sirf 4 ki jagah.
Deep pipelining aisa hi hai: zyada workers (stages) tumhe faster bana sakte hain, lekin ek point tak hi. Uske baad, coordination overhead aur mistakes jo cost aati hai woh gain se zyada ho jaati hai.
Pentium 4 vs Core Microarchitecture — case study in "deep vs. wide" design philosophy
#flashcards/hardware
Deep pipelining mein fundamental trade-off kya hai? :: Higher clock frequency (zyada stages = shorter critical path) vs. pipeline registers ka increased overhead, worse hazard penalties, aur diminishing returns kyunki register delay cycle time dominate karne lagti hai.
Pipeline register overhead speedup ko eventually kyun limit karta hai?
Har stage fixed delay treg (setup + clk-to-Q + skew) add karta hai. Jaise stages badhte hain, logic delay τ shrink hoti hai lekin treg constant rehti hai. Eventually Tcycle≈treg ho jaata hai, toh zyada stages add karne se cycle time barely reduce hoti hai — tum sirf data registers se guzaar rahe ho.
Branch misprediction penalty pipeline depth k ke saath kaise scale karta hai?
Penalty = k−1 cycles (branch ke baad pipeline mein sab instructions flush karo). 5-stage pipeline mein, misprediction 4 cycles cost karti hai. 20-stage pipeline mein, 19 cycles cost karti hai — almost 5× worse, jo frequency advantage erase kar sakta hai agar branches frequent hain aur mispredictions rare nahi hain.
Intel Pentium 4 Prescott ke 31-stage pipeline ki key failure kya thi?
~4 GHz achieve karne ke bawajood (high frequency), deep pipeline ki wajah se: (1) 30-cycle branch misprediction penalty, (2) stalls ki wajah se IPC ~1.5 se ~1.0 drop hua, (3) net performance ≈ shallower designs jaisi, (4) power consumption 115W tak spike hua. Frequency gain CPI increase se cancel ho gayi.
General-purpose CPUs ke liye empirically optimal pipeline depth kya hai?
Around 10-15 stages. Yeh balance karta hai: (1) 2-3× frequency boost ke liye enough depth, (2) good branch prediction ke saath manageable hazard penalties, (3) register overhead ~10-20% of cycle time, (4) diverse instruction mix ke liye achievable stage balance. Modern CPUs (jaise Zen, Core) 12-19 stages use karte hain.