Back to the 2023 paper

Module 3: Pipelining

20237m

The stage delays in a four-stage pipeline are 800, 500, 400 and 300 picoseconds. The first stage (with delay 800 picoseconds) is replaced with a functionally equivalent design involving two stages with respective delays 600 and 350 picoseconds. What would be the throughput increase (in percentage) of the pipeline?

Worked SolutionAI Assisted

Given stage delays: T1=800T_1=800, T2=500T_2=500, T3=400T_3=400, T4=300T_4=300 ps. Pipeline clock Tclk=max⁡(Ti)T_{clk}= \max(T_i) (+ latch overhead ignored).

Before modification:
Tclk1=max⁡(800,500,400,300)=800 psT_{clk1}= \max(800,500,400,300)=800\text{ ps}
Throughput =1/Tclk1= 1/T_{clk1} instructions per ps.
f1=1800 ps=1.25×109 instr/sf_1 = \frac{1}{800\text{ ps}} =1.25\times10^{9}\text{ instr/s}

After splitting first stage into 600600 ps + 350350 ps, stages become: 600,350,500,400,300600,350,500,400,300.

Tclk2=max⁡(600,350,500,400,300)=600 psT_{clk2}= \max(600,350,500,400,300)=600\text{ ps}
f2=1600 ps=1.667×109 instr/sf_2 = \frac{1}{600\text{ ps}} =1.667\times10^{9}\text{ instr/s}

Throughput increase:
%Δ=f2−f1f1×100=1600−18001800×100=(800600−1)×100\%\Delta = \frac{f_2-f_1}{f_1}\times100 = \frac{\frac{1}{600}-\frac{1}{800}}{\frac{1}{800}}\times100 = \left(\frac{800}{600}-1\right)\times100
=(1.333...−1)×100=33.33%= \left(1.333...-1\right)\times100 = 33.33\%

Speedup =800/600=1.33= 800/600 = 1.33.

If latch overhead tlt_l (e.g., 20ps) included, then Tclk1=800+tlT_{clk1}=800+t_l, Tclk2=600+tlT_{clk2}=600+t_l, increase =800+tl600+tl−1≈32.25%= \frac{800+t_l}{600+t_l}-1 \approx 32.25\% for tl=20t_l=20ps. Ideal approx 33.33% increase.

Note: Total latency increases slightly (20002000 ps → 21502150 ps) but steady-state throughput improves due to smaller max stage delay (pipeline bottleneck reduced).

Similar questions

Student FinanceWeb Platform

Pocketly — Personal Finance for Students

Keep your hostel and college expenses under control. Track accounts, log spending in seconds, and stay within your monthly budget.