Learning Objectives
- Describe the functions of the arithmetic logic unit and control unit.
- Explain why registers are used inside the processor.
- State the functions of the program counter, memory address register, memory data register, current instruction register and accumulator.
- Trace the changing contents of registers during simple processor operations.
- Distinguish clearly between a register, cache and main memory.
Key Terms
- Arithmetic logic unit (ALU)
- The CPU component that performs arithmetic calculations, logical operations and comparisons.
- Control unit (CU)
- The CPU component that decodes instructions and sends control signals to coordinate hardware operations.
- Register
- A very small, fast storage location inside the CPU.
- Program counter (PC)
- The register that stores the address of the next instruction to be fetched.
- Memory address register (MAR)
- The register that stores the address of the memory location currently being accessed.
- Memory data register (MDR)
- The register that stores data or an instruction being transferred to or from memory.
- Current instruction register (CIR)
- The register that stores the current instruction while it is decoded and executed.
- Accumulator (ACC)
- A register that stores intermediate arithmetic and logical results.
- Intermediate result
- A temporary value produced during a calculation before the final result is obtained.
- Control signal
- An electronic signal that directs a component to perform an action, such as read, write or execute.

The Arithmetic Logic Unit
The arithmetic logic unit performs the calculations and logical processing required by instructions. Arithmetic operations include addition and subtraction. Logical operations include AND, OR and NOT. The ALU can also compare values, for example to determine whether one value is equal to, greater than or less than another.
The ALU does not decide independently which operation to perform. The current instruction is decoded by the control unit, which then causes the ALU to carry out the specified operation. Input values may be taken from registers, and the result may be placed in the accumulator or another register.
Comparisons carried out by the ALU are essential for selection and repetition. A program may compare a password attempt with a stored password, check whether a counter has reached a limit, or decide which of two values is larger.
The Control Unit
The control unit manages the sequence of operations inside the processor. It decodes the instruction held in the current instruction register and sends control signals to the ALU, registers, memory and input/output components. These signals determine when data is copied, when memory is read or written and which operation is performed.
The control unit also coordinates the fetch-decode-execute cycle. It causes the next instruction address to be copied to the MAR, requests a memory read, moves the fetched instruction into the CIR and arranges for the program counter to be updated. During execution it controls any additional transfers required by the instruction.
A good explanation distinguishes control from processing. The control unit directs and coordinates. The ALU performs arithmetic and logical operations.
Why Registers Are Needed
Registers are small storage locations built into the CPU. They are used because the processor needs immediate access to addresses, instructions, data and intermediate results. Accessing a register is much faster than accessing main memory, although registers hold only a tiny amount of information.
Different registers have specific roles. This makes the movement of information during instruction processing organised and predictable. The PC identifies what should be fetched next, the MAR identifies which memory address is being accessed, the MDR carries the transferred value, the CIR holds the instruction being worked on, and the ACC holds results.
Registers are not the same as RAM. RAM is main memory and normally stores many instructions and data values for running programs. Registers are inside the CPU, are much smaller and are used for immediate processing. Cache is also fast memory near or inside the processor, but it stores copies of frequently used instructions and data rather than having one fixed control role like the named registers.
Functions Of The Named Registers
The program counter contains the memory address of the next instruction. During a normal fetch, that address is copied to the MAR and the PC is incremented so that it points to the following instruction. If a branch is taken, the PC is changed to the branch destination instead.
The memory address register holds the address for the current memory access. The memory data register holds the item being transferred. On a read, information travels from memory into the MDR. On a write, the value to be stored is placed in the MDR before being sent to memory.
The current instruction register holds the fetched instruction while the control unit decodes it. The accumulator is commonly used to hold the result of a calculation and may also supply an operand for the next ALU operation.
Functions Of CPU Components
| Component | Main Function | Typical Action |
|---|---|---|
| ALU | Performs arithmetic, logic and comparisons. | Adds two numbers or compares a counter with a limit. |
| Control unit | Decodes instructions and coordinates operations using control signals. | Causes memory to be read and selects an ALU operation. |
| Registers | Hold small items needed immediately by the CPU. | Hold an address, instruction, transferred value or result. |
Named Registers
| Register | What It Stores | How It Is Used |
|---|---|---|
| PC | Address of the next instruction. | Copied to the MAR during fetch and then updated. |
| MAR | Address currently being accessed. | Places the address on the address bus. |
| MDR | Data or instruction being transferred. | Receives a value from memory or holds a value before a write. |
| CIR | Current instruction. | Holds the instruction while the control unit decodes and executes it. |
| ACC | Intermediate arithmetic or logical result. | Receives an ALU result and may supply a later operand. |
Worked Examples
Following A Memory Read
Question: A processor needs to read the value stored at memory address 520. State how the MAR and MDR are used.
- The address 520 is copied into the MAR.
- The control unit sends a memory-read signal.
- Memory locates address 520 using the address supplied by the MAR.
- The value stored there is transferred into the MDR.
Answer: The MAR holds 520, while the MDR receives and temporarily holds the value read from that address.
Following An Addition
Question: The accumulator contains 17 and an instruction requires the CPU to add 9. Describe what happens.
- The control unit decodes the addition instruction.
- The ALU receives 17 from the accumulator and the second operand 9.
- The ALU performs the addition.
- The result 26 is stored in the accumulator.
Answer: The ALU calculates 17 + 9 and the accumulator is updated to 26.
Examination Guidance
- Learn the exact function of every named register; questions often award one mark per correct function.
- Use the word address for the PC and MAR, not the instruction or data itself.
- Use the word transfer for the MDR because it carries both instructions and data to or from memory.
- State that the CIR holds the current instruction during decoding and execution.
- Separate the role of the control unit from the arithmetic and logic work of the ALU.
Common Mistakes
- Saying the PC stores the current instruction rather than its next address.
- Saying the MAR stores data from memory.
- Claiming the MDR can contain only data and never an instruction.
- Confusing the accumulator with permanent secondary storage.
- Saying the control unit performs all arithmetic calculations.
Knowledge Check
1. What does the ALU do?
2. What does the control unit do?
3. Which register stores the address of the next instruction?
4. Which register holds the item transferred to or from memory?
5. Why are registers used?