What is the primary role of system bus? Why is data bus is bidirectional while address bus is unidirectional?
The primary role of system bus is to transfer data, addresses and control signals between components of the computer system. It consists of three buses collectively: data bus, address bus, and control bus.
The data bus is bidirectional because the CPU may need to read data from or write data to main memory. During write operations, the CPU places data on the data bus. During read operations, the memory controller places data on the data bus for the CPU to receive.
The address bus is unidirectional because it only carries the address of the memory location from the CPU to main memory. The CPU specifies which location to read from or write to, so the address always flows from CPU to memory.
Explanation
This question tests understanding of the system bus architecture. The textbook clearly states that the system bus transfers data, addresses, and control signals between components. The data bus is bidirectional because data must flow both ways - from CPU to memory during write operations, and from memory to CPU during read operations. The address bus is unidirectional because addresses are always specified by the CPU to indicate the memory location for read/write operations; the memory does not send addresses back to the CPU.