In digital systems (especially processors), control paths are circuits that control the behaviour of data passing through the datapath circuit mainly by controlling enable signals for each datapath circuit block (multiplexers, ALUs). These are implemented as a finite state machine.

In processors, the control path takes multiple clock cycles to execute a single instruction. There’s a general set of steps in RISC-style architectures:

  1. Fetch an instruction from the program counter.
  2. Decode the instruction.
  3. Locate/fetch the operands used by the instruction.
  4. Calculate/execute the operation with the ALU.
  5. Store the results (in a register or memory).
  6. Update the program counter (increment or replace with branch value) and go back to step 1.
    1. This update step can be optimised to take place in the same step as step 1/2.