Quiz submission record for quiz6-1-1 at Sun Jul 25 23:54:02 2004: Your Answer for Question 1: The problem would be that in our original single-cycle processor, all of the control was decided during the instruction decode stage. This worked in our original processor because a single-cycle for it was to let a single instruction propagate and finish through the whole datapath before sending another instruction through. This will no longer work in a pipelined datatpath. Each instruction that is currently in the datapath has its own control values, and for the stage that it is in, it needs the control values specific to the instruction that it represents. Therefore, they need to carry along their values. For example, suppose we had an add instruction that was in the writeback stage, and a branch instruction in the instruction decode stage. Without pipelining the control, the write enable to the regfile would be turned off, and the value from our add instruction would not be written into its register. Your Answer for Question 2: The three buses are because the instruction may come from the registers, the result of the previous instructions EX (ALU) stage, or the result of a previous instructions load stage. The instance when it would just come from a register could be just the first instruction of a block of code. add $1, $1, $1 Here, $1 would come from the registers since there have been no instructions before this that have changed $1. add $1, $2, $2 add $1, $1, $1 Here, the $1 argumenets of the second instruction would come from the EX/MEM register of the previous instruction, since we should be using the changed value of $1. lw $1, 0($2) nop add $2, $1, $1 Here, the $1 of the third instruction would come from the MEM/WB register, since we should be using the value of $1 that we have just loaded from memory. Your Answer 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. Your unique submission ID is quiz6-1-1-cs61c-el-1090824842-140.