Show understanding of how data are transferred between the various components of a computer system using the address bus, data bus and control bus.
The CPU is the “brain” of the computer. It contains three functional units and a set of special‑purpose registers that cooperate during every instruction cycle.
| Register | Purpose |
|---|---|
| Program Counter (PC) | Holds the address of the next instruction to be fetched. |
| Memory Address Register (MAR) | Holds the address of the memory location that is to be accessed (read or write). |
| Memory Data Register (MDR) | Temporarily stores data being transferred to or from memory. |
| Instruction Register (IR) | Holds the current instruction while it is being decoded and executed. |
| Accumulator (ACC) | Primary arithmetic register used by the ALU for most operations. |
| Status / Flag Register | Contains condition codes such as Zero (Z), Carry (C), Overflow (V) and Sign (S). Used by the CU to make branching decisions. |
Advanced note (A‑Level depth): Some processors also provide an Index Register (X), Stack Pointer (SP) and a Program Status Word (PSW). These are not required for AS but are useful when studying more complex instruction sets.
Both models use the same three‑bus concept, but they differ in how memory is organised.
| Feature | Von Neumann | Harvard |
|---|---|---|
| Memory organisation | Single memory space stores both instructions and data. | Separate instruction memory and data memory. |
| Number of physical buses | One address bus, one data bus, one control bus (shared by code & data). | Typically two sets of address/data buses – one for instructions, one for data. |
| Typical use | General‑purpose computers, most exam questions. | Digital signal processors, micro‑controllers where speed is critical. |
| Pros / Cons | Simpler, cheaper; possible “bus‑contention” when fetching an instruction and accessing data simultaneously. | Higher throughput; more complex and costly hardware. |
All communication between the CPU, main memory and I/O devices occurs via three parallel groups of wires collectively called buses.
WR, device → CPU for INT), but the whole bus is considered bidirectional.| Signal | Origin | Purpose |
|---|---|---|
RD | CPU | Request to read data from the addressed location. |
WR | CPU | Request to write data to the addressed location. |
BE (Bus Enable) | CPU | Activates the data bus for the current transfer. |
CLK | Clock generator | Synchronises all bus activity. |
INT | I/O device | Interrupt request – asks the CPU to suspend the current operation. |
INT‑ACK | CPU | Acknowledges the interrupt and begins the interrupt‑service routine. |
RST | External circuit | Forces the CPU into a known start‑up state. |
BUS‑REQ / BUS‑GRANT | Device ↔ CPU | Arbitration lines used when more than one component can act as a bus master. |
RD (or WR) together with BE on the control bus.CLK the operation is considered complete; the control lines are de‑asserted.When an external device needs CPU attention it raises the INT line. The sequence is:
INT goes high while the CPU is in the middle of a fetch‑execute cycle.INT‑ACK to acknowledge the request.RTI (return from interrupt) instruction restores the saved registers and the CPU resumes the interrupted program.All of the above signalling occurs on the control bus; the address and data buses are used only when the ISR fetches its own instructions.
In simple single‑processor systems the CPU is the only master. In more advanced designs (e.g., DMA controllers, multi‑core CPUs) other devices may need temporary control of the address and data buses.
A typical arbitration scheme works as follows:
BUS‑REQ.BUS‑GRANT to the requesting device.BUS‑REQ when finished.BUS‑GRANT.This mechanism prevents two masters from driving the same lines simultaneously, which would cause data corruption.
Assume a simple system where the keyboard status register is mapped to address 0xFF00 and the data register (the key code) to 0xFF01.
MAR ← 0xFF00.RD + BE.MDR.0xFF01 to obtain the actual key code.Notice that the same RD and WR signals are used as for ordinary RAM accesses; the only difference is the address value.
The table below shows the minimum sequence required to fetch one instruction. The notation follows the Cambridge specification: “←” denotes a transfer, “+” denotes arithmetic, and “+1” is a shorthand for “increment by one”.
| Step | Micro‑operation (RTN) | Bus activity |
|---|---|---|
| 1 | MAR ← PC | PC placed on address bus; RD and BE asserted. |
| 2 | MDR ← Memory[MAR] | Memory decodes address, drives data bus; CPU reads data into MDR. |
| 3 | IR ← MDR | No external bus activity – internal transfer. |
| 4 | PC ← PC + 1 | Internal increment; prepares address of next instruction. |
| 5 | Decode & Execute (varies with instruction) | Further address‑/data‑bus cycles may follow (e.g., load, store, ALU operation). |
A typical two‑clock‑cycle diagram shows:
RD/WR asserted.CLK rising edge marks the end of the cycle.| Symbol | Meaning |
|---|---|
← | Transfer the contents of the right‑hand operand to the left‑hand register. |
+ , – , × , ÷ | Arithmetic operation performed by the ALU. |
+1 | Increment by one (often used with the PC). |
‘ (prime) | Denotes the new value of a register after the operation (e.g., PC′ = PC + 1). |
[ ] | Memory indirection – contents of the addressed location. |
A computer has a 20‑bit address bus and a 16‑bit data bus. The CPU runs at 1.5 GHz.
A modern workstation uses a 64‑bit data bus and a 3 GHz clock. Assume the bus can transfer data on every clock edge (no wait states).
| Bus | Direction | Primary function | Typical width (bits) | Key signals (Cambridge symbols) |
|---|---|---|---|---|
| Address | Unidirectional (CPU → Memory/I‑O) | Selects the memory or I/O location to be accessed | 8, 16, 20, 32, 64 | None (pure address lines) |
| Data | Bidirectional | Transfers the actual data value | 8, 16, 32, 64 | RD, WR, BE |
| Control | Bidirectional (per line) | Coordinates timing, direction and status of transfers | Variable – usually a few lines | RD, WR, BE, CLK, INT, INT‑ACK, RST, BUS‑REQ, BUS‑GRANT |
RD, WR, BE, CLK, INT, etc.) that synchronise the address and data buses.RD + BE asserted.INT) and cause the CPU to suspend the normal fetch‑execute sequence, save the current state, execute an ISR, then resume.BUS‑REQ / BUS‑GRANT arbitration prevents bus contention.RD, WR, CLK, INT, RST, BE).
Your generous donation helps us continue providing free Cambridge IGCSE & A-Level resources, past papers, syllabus notes, revision questions, and high-quality online tutoring to students across Kenya.