The address bus identifies the memory location or input/output device being accessed, the data bus transfers data and instructions, and the control bus carries signals that coordinate and manage the transfer.
Together, these communication pathways form the system bus, connecting the processor, memory, and peripheral devices.
| Bus | Function and typical direction |
|---|---|
| Address bus | Carries the address of the memory location or device that the processor wants to access. It is typically unidirectional, from the processor to memory or an input/output controller. |
| Data bus | Carries instructions and other data between the processor, memory, and devices. It is bidirectional because the processor both receives and sends data. |
| Control bus | Carries control and timing signals, such as memory read, memory write, clock, interrupt, and reset signals. Its lines can carry signals in either direction, depending on each signal's purpose. |
During the fetch-execute cycle, the processor places the address of the next instruction on the address bus. It sends a memory-read signal through the control bus, and memory returns the instruction through the data bus. When writing a value, the processor sends the destination address on the address bus, the value on the data bus, and a memory-write signal on the control bus.
Bus width also affects computer operation. An address bus with width can represent unique addresses, while a wider data bus can transfer more bits in one operation.
A common misconception is that every bus carries information in both directions. The data bus is bidirectional, but the address bus is normally unidirectional; individual control lines may operate in different directions.
Exam technique: If asked to distinguish the buses, state both the information carried and its direction. For an explain question, link all three buses to a read or write operation rather than listing isolated definitions.