Answer from cs61c-ew (Joo-Rak Son 16103505) for Question 3 The purpose of the Add unit is to compute the branch target, which is the sum of PC + 4 and lower 16 bits of the instruction after it has been sign-extended and shift left two bits. It would be possible to use ALU for the functions of both ALU and Adder, if we implemented a multiplexor for each of its input and output and delayed one operation so that it is performed after another. But we would be risking serious slowdown in speed, because these operations can be, with both ALU and Adder, performed simultaneously.