Skip to main content

The Fetch-Execute Cycle: Tracing the CPU Registers

By Prof. David Chen, CS Examiner·Updated April 18, 2026
A flow chart showing the exact order of data transferring between the PC, MAR, MDR, and CIR.

What is the exact sequence of the Fetch stage?

1) The address is copied from the Program Counter (PC) into the Memory Address Register (MAR). 2) The instruction at that address in RAM is copied into the Memory Data Register (MDR). 3) The instruction is copied from the MDR into the Current Instruction Register (CIR). 4) The Program Counter increments by 1.

The Fetch-Execute cycle is happening billions of times per second inside your computer right now. In CAIE Paper 1, this is the ultimate 6-mark question. You must know exactly which register passes data to which register, in the exact correct order. This guide from our Ultimate O-Level Computer Science Guide provides the bulletproof sequence you need to memorize.

1. Meet the 5 Special Registers

Before tracing the cycle, you must know what the boxes are. A register is a tiny, super-fast memory location on the CPU.

  • PC (Program Counter): Holds the address of the NEXT instruction to be executed.
  • MAR (Memory Address Register): Holds the address of the current instruction/data being fetched or saved.
  • MDR (Memory Data Register): Holds the actual data (the zeros and ones) that was just fetched from memory, or is waiting to be written to memory.
  • CIR (Current Instruction Register): Holds the instruction that is actively being decoded and executed right now.
  • ACC (Accumulator): The primary working register inside the ALU. It holds the results of calculations.

2. The Almighty Fetch Sequence

You must memorize these exact steps in chronological order. If you swap step 2 and 3, you lose all remaining marks.

Step 1: PC → MAR

The address in the Program Counter is copied into the Memory Address Register. The Address bus carries this address to RAM.

Step 2: RAM → MDR

The Data bus carries the instruction found at that address back to the CPU, depositing it directly into the Memory Data Register.

Step 3: MDR → CIR

The instruction is copied from the MDR into the Current Instruction Register so it can be worked on.

Step 4: PC = PC + 1

The Program Counter automatically increments by 1 so it points to the NEXT instruction in the program.

💡 Tutor's Tip
Simultaneous Actions: Technically, Step 3 (moving data to CIR) and Step 4 (incrementing the PC) happen at the exact same time! As long as you list both of them after Step 2, you get the marks.

3. The Decode and Execute Stages

Once the fetch sequence deposits the instruction into the CIR, the cycle continues.

Decode

The instruction inside the CIR is split into two parts: the Opcode (what to do, e.g., ADD) and the Operand (what data to do it to). The Control Unit examines the Opcode to figure out which hardware components need to wake up to perform the task.

Execute

The instruction is finally carried out. Depending on the instruction, this might involve: - Sending data to the ALU for calculation (the result gets stored in the Accumulator). - Fetching additional data from RAM (using the MAR and MDR again). - Saving a result back to RAM. - Jumping to a different part of the program (by overwriting the PC with a new address).

Prof. David Chen📋 From the Desk of Prof. David Chen
A classic trick question is: "Does the CPU stop fetching if the current instruction is to save data to memory?" No! It executes the 'save' instruction using the MAR/MDR to send data out, but the moment it finishes, the cycle restarts. It looks at the PC, grabs the next address, and the whole sequence begins again.

Frequently Asked Questions

What is the role of the Program Counter (PC)?
It points to the memory address of the NEXT instruction to be executed.
What is the difference between the MAR and MDR?
MAR holds the ADDRESS. MDR holds the DATA that was fetched from or is going to that address.
What happens during the Decode stage?
The Control Unit breaks the instruction down into its Opcode and Operand to figure out what the hardware needs to execute.
What is the Accumulator?
A register inside the ALU that holds data before and immediately after arithmetic or logical calculations.

Stop Guessing, Start Scoring

Get instant access to 500+ CAIE-aligned practice questions, worked solutions, and AI-powered mock exams across all O-Level subjects.

Related Computer Science Articles