Instruction Fetching Datapath


The basic execution cycle consists of three steps:
  1. fetching the next instruction from instruction memory,
  2. decoding it, and
  3. executing it.
To execute any instruction, we must start by fetching the instruction from memory.

To prepare for executing the next instruction, we must also increment the program counter so that it points at the next instruction, 4 bytes later. The figure shows a portion of the datapath that fetches instructions and increments the PC to obtain the address of the next sequential instruction.

The above architecture can be improved after noticing the least significant 2 bits of the PC are always “00” since it is a multiple of 4. So instead of adding 4 to the PC, the improved datapath can simply increment upper 30 bits of PC by 1.