The control unit generates the control signals required to perform an operation in the proper sequence. All the signals that control the operation of the data path are generated by the control unit. Signals generated by the control unit are uniquely determined by:
Contents of control step counter: each state, or count, corresponds to one of the time steps required in the sequence.
Contents of the instruction register: specifies the type of the instruction to be executed as specified by the opcode.
Contents of the condition code and other status flags: signals from data path like Sign Flag, Zero Flag, ... etc., and other signals like MFC, interrupts, ... etc.

Control unit can be designed using any of the following approaches:
Hardwired Controller: uses combinational logic to produce control signal outputs.
Microprogrammed Controller: control signals are generated by a program similar to machine language programs.

We will consider both approaches in the design of control unit and compare the two approaches in terms of area, speed, and flexibility.