1,041 views

Consider this question and its selected answer: https://gateoverflow.in/3690/gate2004-it-47

And this question: https://gateoverflow.in/1314/gate2009-28

Both questions are somewhat similar.

In the first one's answer, instruction $I_1$ (when i = 2), the $S_2$ stage is started in 9th cycle and not 8th, because the result of previous instruction ($I_4$) is still in the $S_2$/$S_3$ buffer during 8th clock cycle. https://gateoverflow.in/3690/gate2004-it-47?show=135162#c135162

While, in the answer of the second question, the $S_1$ stage of instruction $I_4$ (during first iteration), should start from clock 7, but the answer shows it in clock 6. Similarly with other instructions.

I am not getting why this difference? Is there any point that I am missing?

PS. From where can I study this? Hamacher book doesn't contain pipelining in this much detail.

@Rishabh

After checking question

as @nitish said if multi buffer pipelined is allowed then only concept wise https://gateoverflow.in/3690/gate2004-it-47

this one is true, otherwise u need to wait for stall too.

Means if there is a stall means the previous stage is continuing

So, u cannot start next stage  in next instruction

Though in GATE question this doesnot follow, as per my knowledge

So, just follow https://gateoverflow.in/3690/gate2004-it-47

I think GATE question follow multibuffer system , So, we havenot wait to still stall complete for an instruction, to start next stage.

Upto this I can tell,

I think ur doubt cleared

If more information I get , I will share

U can also share knowledge in this , if u get some information :)

Thanks. :)

@Rishabh Gupta 2 why in the 2009 question of your doubt asked we are not considering without loop level parallelism like why answer is not 30 ?