Control unit
How to control the datapath?
Need to generate the control signals for MUXes, registers, and memory
Look at instruction formats
R-type 000000    $rs    $rt    $rd shamt function
b31-26 b25-21 b20-16 b15-11 b10-6 b5-0
memory 35 or 43    $rs    $rt address  
b31-26 b25-21 b20-16 b15-0
branch        4    $rs    $rt address  
b31-26 b25-21 b20-16 b15-0
Observations:
Opcode is always in upper 6 bits: Op[5-0], function in lower 6 bits: F[5-0]
Use to select operation to perform
Registers to read ($rs, $rt) always in bits 25-21 and 20-16
Use as indexes to register file for read
Base register for load/store always in bits 25-21
Offset always in bits 15-0
Destination register may be in 2 places:
bits 15-11 for R-type
bits 20-16 for load
Use as index to register file to write: need MUX to select