Answer from cs61c-el (David Tung 16479725) for Question 3 The hazard unit inserts a bubble by checking if one of the values needed for the ALU is changed by a previous load instruction in the instruction decode stage; if it is, the hazard unit will keep the PC from decrementing, keeping the instruction in the ID stage, and send a bubble through the program with all of the control values as 0, which has the same effect as a nop. There is no fear of an "inifinite loop" because we recheck the condition of whether the value has been loaded from memory yet, and with forwarding, we will have that by the next cycle in the MEM/WB register.