4.1 Central Processing Unit (CPU) Architecture

2026 Syllabus Objectives

By the end of this topic, you should be able to:

  • understand the basic Von Neumann model of a computer system

  • understand the stored program concept

  • explain the purpose of registers

  • explain the difference between general purpose registers and special purpose registers

  • describe the role of these special purpose registers:

    • Program Counter (PC)
    • Memory Data Register (MDR)
    • Memory Address Register (MAR)
    • Accumulator (ACC)
    • Index Register (IX)
    • Current Instruction Register (CIR)
    • Status Register
  • explain the purpose of the:

    • Arithmetic and Logic Unit (ALU)
    • Control Unit (CU)
    • system clock
    • Immediate Access Store (IAS)
  • explain how data moves around the computer using:

    • address bus
    • data bus
    • control bus
  • explain how these affect computer performance:

    • processor type
    • number of cores
    • bus width
    • clock speed
    • cache memory
  • understand how these ports connect peripheral devices:

    • USB
    • HDMI
    • VGA
  • describe the stages of the fetch-execute cycle

  • use register transfer notation (RTN) to describe the fetch-execute cycle

  • understand the purpose of interrupts

  • explain:

    • possible causes of interrupts
    • applications of interrupts
    • the use of an Interrupt Service Routine (ISR)
    • when interrupts are checked during the fetch-execute cycle
    • how interrupts are handled

The Von Neumann model

The Von Neumann model is a basic design for a computer system. Most general-purpose computers follow this model. It explains how the processor, memory, and input/output devices work together.

In this model, the computer has a central processing unit (CPU), main memory, and input/output devices. These parts are connected so that the CPU can get instructions and data from memory, process them, and then send results to output devices.

A very important idea in the Von Neumann model is that data and instructions are stored in the same main memory. This is one of the key features of this system.

The stored program concept

The stored program concept means that a program is stored in memory as a set of instructions, just like data is stored in memory. The CPU reads these instructions from memory one by one and carries them out.

This is important because it means the computer does not need to be rewired for every new task. Instead, you can simply load a different program into memory. The CPU then follows the instructions in order unless it reaches a branch instruction that tells it to jump somewhere else.

So, in simple words:

  • data is stored in memory
  • instructions are also stored in memory
  • the CPU fetches the next instruction from memory
  • the CPU decodes it and executes it

This is what allows one computer to run many different programs.


Registers

Registers are very small, very fast storage locations inside the CPU. They hold data or instructions that the CPU needs right now.

Registers are faster than main memory. This is why the CPU uses them during processing. They make the fetch-execute cycle quicker because the CPU can access them almost instantly.

There are two main types of register:

  • general purpose registers
  • special purpose registers

General purpose registers

A general purpose register can hold any data that the CPU is currently working with. It does not have just one fixed job. It can be used for many different tasks during processing.

For example, a general purpose register might hold:

  • a number being added
  • part of a calculation
  • temporary data while an instruction is being carried out

So, general purpose registers are flexible.

Special purpose registers

A special purpose register has a fixed, specific job inside the CPU. Each one is used for a particular part of processing or control.

You must know the name, short form, and purpose of each one.

Program Counter (PC)

The Program Counter (PC) stores the address of the next instruction to be fetched from memory.

At the start of the cycle, the CPU uses the value in the PC to know where the next instruction is stored. After the instruction is fetched, the PC is usually increased so it points to the next instruction.

If a branch instruction is used, the PC may be changed to a different address instead.

Memory Address Register (MAR)

The Memory Address Register (MAR) stores the address in memory that the CPU wants to access.

This could be the address of:

  • an instruction that needs to be fetched
  • a piece of data that needs to be read
  • a memory location where data needs to be written

You can think of the MAR as the register that tells memory, “this is the location I want.”

Memory Data Register (MDR)

The Memory Data Register (MDR) stores the data or instruction that has been read from memory, or the data that is about to be written to memory.

So, if the CPU fetches an instruction, that instruction is placed in the MDR first. If the CPU wants to store data into memory, the data is also placed in the MDR before it is sent.

You can think of the MDR as the register that holds the actual item moving to or from memory.

Current Instruction Register (CIR)

The Current Instruction Register (CIR) stores the instruction that is currently being decoded or executed.

After an instruction is fetched into the MDR, it is copied into the CIR. The CPU then works on that instruction.

This is useful because it keeps the current instruction separate from the next one being fetched.

Accumulator (ACC)

The Accumulator (ACC) stores intermediate results and final results from calculations done by the ALU.

For example, if the CPU adds two numbers, the answer may be placed in the ACC.

The ACC is often used in arithmetic operations because it provides a quick place to store working values.

Index Register (IX)

The Index Register (IX) stores a value that can be added to an address to create an effective address.

This is useful when the CPU is working through data in a list, table, or array. Instead of writing a completely new address every time, the CPU can use a base address and then add the value in the IX.

This makes access to ordered data more efficient.

Status Register

The Status Register stores flags that show the result of an operation or the current state of the CPU.

A flag is a single bit used as a true/false signal.

For example, the status register may show whether:

  • the result of a calculation was zero
  • the result was negative
  • an overflow happened
  • an error or condition has been detected

These flags help the CPU make decisions, especially when carrying out branch instructions.

Sign in to view full notes