Pipeline timing latency और throughput
लक्ष्य और assumptions
Pipeline का clock period, fill/drain खर्च, finite batch speedup और steady throughput निकालें। पूर्वज्ञान: CPU time/CPI और datapath पाठ। यहाँ hazards केवल दिए गए stall count के रूप में आते हैं; कारण अगले पाठ में हैं।
जब तक अलग न कहा जाए, pipeline scalar, in-order और शुरू में खाली है; k stages हैं और हर stage एक cycle लेता है। प्रति cycle अधिकतम एक instruction प्रवेश करता है। सभी instructions सभी stages से गुजरते हैं, resource conflicts तथा data/control stalls नहीं हैं। d_i combinational delay है। Register overhead h में प्रश्न के अनुसार clock-to-Q, setup और clock allowance शामिल हैं। Period में h एक बार जुड़ता है, एक cycle में k बार नहीं।
1. सबसे धीमा stage गति तय करता है
Period τ=max(d_i)+h है। जल्दी समाप्त stages अगले edge तक रुकते हैं; उनका बचा समय अपने आप धीमे stage को नहीं मिलता। पहले instruction की latency kτ है। Fill होने के बाद प्रति τ एक result पूरा होता है, इसलिए throughput 1/τ है। एक instruction की latency बढ़ने पर भी लंबे stream का कुल समय घट सकता है।
उदाहरण: delays 100,160,120,140 ps और h=20 ps पर τ=180 ps। एक instruction 4×180=720 ps लेता है। Steady throughput एक instruction/180 ps≈5.556 billion instructions/s है। तुलना का unpipelined design serial sum और zero अतिरिक्त overhead से 520 ps/instruction लेता है। इसलिए उसकी व्यक्तिगत instruction latency कम है।
2. n+k−1 का कारण
पहला instruction cycle k के अंत में पूरा होता है। दूसरा k+1 और nवाँ k+n−1 पर। इसलिए n≥1 पर T_pipe=(n+k−1)τ। इसमें fill/drain का boundary effect शामिल है; फिर से k−1 न जोड़ें। यह खाली pipeline में चलने वाला अलग batch है, warm-up के बाद लगातार stream का measurement नहीं।
उदाहरण: ऊपर n=10 पर 13 cycles यानी 2340 ps लगेंगे। Unpipelined समय 10×520=5200 ps है। Speedup=5200/2340≈2.222। n=1 पर speedup=520/720<1। बहुत बड़े n पर सीमा 520/180≈2.889 है, चार नहीं। असमान stages तथा register overhead आदर्श लाभ घटाते हैं।
यदि सभी stages का delay d, overhead शून्य तथा comparator का समय kd हो, speedup nk/(n+k−1) होगा। केवल लंबे stream पर यह k के पास पहुँचता है। Comparator का वास्तविक समय लें; अपने आप kτ न मानें।
3. Stalls, CPI और उपयोगी instructions
यदि पूरे batch के लिए S अतिरिक्त non-overlapping खोए cycles दिए हैं, कुल cycles=n+k−1+S। Bubble उपयोगी program instruction नहीं है। Finite-batch CPI=(n+k−1+S)/n। लंबे stream में boundary छोटा होने पर CPI≈1+S/n। यहाँ stalls की गिनती में overlapping causes पहले ही समायोजित माने गए हैं।
उदाहरण: पाँच-stage pipeline, 40 उपयोगी instructions, 6 अतिरिक्त stalls और 2 ns period। Cycles=40+4+6=50, समय=100 ns, exact finite CPI=1.25। Steady estimate 1+6/40=1.15 चार boundary cycles छोड़ देता है; इसे इस batch की exact CPI न कहें।
4. अधिक stages हमेशा तेज नहीं
[100,160,120,140] ps और h=20 ps में 160 ps stage को दो 80 ps stages में बाँटें। अब maximum 140 ps, τ=160 ps और k=5। n=10 का समय 14×160=2240 ps है, पुराने 2340 ps से थोड़ा बेहतर। n=1 पर latency 800 ps है, पुराने 720 ps से खराब। यदि 100 ps stage बाँटें तो bottleneck 160 ps बना रहता है: period 180 ps ही है, depth बढ़ने से finite batch धीमा होता है। वास्तविक design में h तथा branch penalty भी बदल सकते हैं।
सामान्य गलतियाँ और हल करने का क्रम
पहले k,n,delays,h तथा extra cycles की परिभाषा लिखें। Cycles से गुणा करने से पहले period निकालें। समान उपयोगी काम और बताए comparator की तुलना करें। Pipeline depth को speedup, पहली latency को completion interval या bubbles को उपयोगी instructions न मानें। यह scalar model superscalar या out-of-order निष्कर्ष नहीं देता।
मौलिक अभ्यास: छह single-correct MCQ
ये मौलिक शिक्षण प्रश्न हैं, पिछले वर्षों के प्रश्न नहीं। ठीक एक उत्तर चुनें।
P01. Stage delays 80,120,100 ps और register overhead 10 ps है। Period?
A. 110 ps B. 120 ps C. 130 ps D. 330 ps
उत्तर: C
A: औसत सबसे धीमे stage को नहीं ढकता।
B: Register overhead छूटा है।
C: max(80,120,100)+10=130 ps।
D: एक cycle में सभी stages combinationally पार नहीं होते।
P02. खाली पाँच-stage scalar pipeline बिना stalls 12 instructions कितने cycles में पूरे करती है?
A. 12 B. 16 C. 17 D. 60
उत्तर: B
A: चार boundary cycles छूटे हैं।
B: 12+5−1=16।
C: पाँच extra जोड़ना off-by-one गलती है।
D: 60 बिना overlap पाँच-cycle execution है।
P03. चार-stage ideal scalar pipeline का period 3 ns है। पहली latency और steady completion interval?
A. 3 ns, 3 ns B. 12 ns, 12 ns C. 12 ns, 3 ns D. 3 ns, 12 ns
उत्तर: C
A: पहला instruction चार stages पार करता है।
B: 12 ns latency है, steady interval नहीं।
C: Latency=4×3=12 ns; fill के बाद हर 3 ns में completion।
D: दोनों quantities उलटी हैं।
P04. पाँच-stage pipeline में 20 useful instructions और 3 extra non-overlapping stalls हैं। Exact batch CPI?
A. 1.15 B. 1.20 C. 1.35 D. 1.40
उत्तर: C
A: Fill/drain सीमा छूटी है।
B: Boundary है लेकिन stalls छूटे हैं।
C: Cycles=20+4+3=27; CPI=1.35।
D: पाँच boundary cycles जोड़े, चार चाहिए।
P05. Comparator 600 ps/instruction लेता है। तीन-stage pipeline का period 250 ps है। बिना stalls 8 instructions का speedup?
A. 3 B. 2.4 C. 1.92 D. 0.8
उत्तर: C
A: Stages की संख्या finite speedup नहीं है।
B: 2.4 लंबे stream की सीमा है।
C: पुराना=4800 ps; नया=10×250=2500 ps; ratio=1.92।
D: सही ratio 4800/2500 है।
P06. Non-bottleneck stage दो में बाँटा जाता है; overhead तथा bottleneck delay समान हैं। बिना stalls fixed finite batch पर प्रभाव?
A. समय हमेशा आधा होता है B. Period समान रहता है और एक cycle बढ़ता है C. Period दोगुना होता है D. एक cycle घटता है
उत्तर: B
A: Bottleneck अभी भी period तय करता है।
B: Depth एक बढ़ी, n+k−1 एक बढ़ा; period वही है।
C: Maximum delay और overhead नहीं बदले।
D: Stage जोड़ने से boundary cycle बढ़ता है।
स्रोत और दायरा
यह 2026 course के बताए भाग का पाठ है, पूरे COA syllabus की समाप्ति नहीं। सभी गणनात्मक उदाहरण और प्रश्न मौलिक हैं। 2027 की पूर्णता का दावा नहीं।
प्रगति सहेजने के लिए साइन इन करें। साइन इन