Do unconditional branches, such as jump
/goto
instructions cause control hazards? If so, why?
I am wondering because if unconditional branches did cause control hazards, that is like saying if A
were the jump foo
instruction and another instruction B
was the first one under foo:
, B
would have a control dependency on A
. While this is technically true, I don't see how this would cause a hazard in a pipeline since we know with 100% certainly that B
will be executed since an unconditional jump
instruction A
preceded it.