Answer from cs61c-ev (Roland Carlos 16583196) for Question 1 When faced with a branch, we cannot go through the datapath as fast as we do with other instructions (like add). This is because we are not sure if we should branch or not, so this causes some delay in the pipeline. One solution to this is to use the branch delay slot, which puts the next sequential instruction (that does not affect the branch) into the delayed branch slot. The delayed branch always exectues the next sequential instruction, with the branch taking place after that one instruction delay. The purpose of this is to limit pipeline delays.