ILP aur TLP compare karne se pehle, tumhe us page ka har word aur symbol ka matlab pata hona chahiye — bilkul scratch se. Yeh page har brick ko order mein banata hai. Upar se neeche padho; koi bhi cheez explain hone se pehle nahi aayegi.
Ek to-do list socho jahan har line ek single, bilkul simple action hai — kuch bada nahi.
Figure 1: Ek program jo numbered stack of blue instruction boxes ke roop mein draw kiya gaya hai. Har box ek indivisible order hai (load a, add a+b -> s, ...). Yellow arrow point out karta hai ki ek single box = ek tiny order — yahi "list" hai jise ILP overlap karta hai.
Topic ko yeh kyun chahiye: ILP inhi individual orders ko overlap karne ke baare mein hai. Agar program ko alag instructions ki list ke roop mein nahi socha, toh "instruction-level" ka koi matlab nahi banta.
Figure 2: Left mein, ek single blue thread (instruction boxes ka ek column) — yahi arena hai jahan ILP operate karta hai. Right mein, teen alag coloured threads (blue, green, red) side by side chal rahe hain — yahi arena hai jahan TLP operate karta hai. Notice karo ki thread instructions se milkar bana hota hai.
Topic ko yeh kyun chahiye: ek saath kaafi threads chalana parent note ka poora doosra half hai. Hum unki ginti ko ek symbol (N) aur apna hardware ("cores") dete hain Section 6 mein — abhi ke liye, bas kaafi independent to-do lists ki picture mind mein rakho.
Ek metronome socho. Har tick par, kaam ek chhoti notch aage badhta hai.
Figure 3: Dashed white lines clock ticks mark karti hain. Upar wali blue row har tick mein exactly ek instruction finish karti hai (n=1). Neeche wali green row teen per tick finish karti hai (n=3). Yellow caption sab kuch kehta hai: bada n = zyada instructions overlap per tick = zyada ILP.
Topic ko yeh kyun chahiye: n "kitna ILP" wala knob hai. Bada n = zyada instructions overlapping = zyada ILP. Yeh seedha neeche wale speedup formula mein plug hota hai.
Ab har symbol define ho gaya hai, toh parent ka headline formula saaf padha ja sakta hai.
Ise ILP par apply karna (f aur n use karke) aur TLP par (p aur N use karke):
Denominator ko aise padho: "serial part pura bacha, plus parallel part speedup se chhota hua": (1−f) poora size rehta hai, jabki f/n parallel part hai jo n mein divide ho gaya (ya p/N jo N mein divide hua). Yaha poora shape Amdahls-Law hai — ek prerequisite jo apne page ka haqdaar hai.
Recall Denominator mein do terms kyun hain?
Kyunki total time = serial time + parallel time, aur sirf parallel term divide hota hai tumhare paas kitni parallelism hai usse. ::: Serial term (1−f) kabhi speed up nahi ho sakti — yahi kisi bhi speedup ki ceiling hai.
Yeh diagram dikhata hai ki har foundation kaise agla feed karta hai aur finally topic mein jaata hai. Words mein: Instruction root hai — yeh Thread, Clock cycle, aur Dependency ko feed karta hai. Clock cycle hume IPC n deta hai; Dependency fraction f deta hai; Thread dono core count N aur fraction p deta hai. Pair (n, f) ILP speedup drive karta hai; pair (N, p) TLP speedup drive karta hai; aur SIMD ek alag teesri strand ke roop mein enter karta hai. Teeno ILP vs TLP topic par pahunchte hain.