Computer organization and design ch4 say:
R-type follow load can not forward, need to stall.
But why?
For example
lw |F|D|E|M|W
add | |F|D|E|M|W
We can simply forward data from mem_read_data to alu_src.
I guess that's because critical path is too long, pipeline will be meaningless?
So the forward source can only be data from pipeline stage?
Then, there is a new problem, what about R-type before branch at ID stage?
add |F|D|E|M|W
beq | |F|D|E|M|W
If forward source can only from pipeline register, this can not forward, need stall as lw does?