The System Bus in the Von Neumann Architecture
In the Von Neumann machine model, information flows through physical connections referred to as the system bus. In fact, as already highlighted in this post, the CPU must be connected to the other components of the computer, to which it sends control signals. In particular, there is a continuous exchange of signals and data between the CPU and RAM, corresponding to memory addresses, the contents (data or instructions) of the memory cells, and the contents of the CPU registers.
This requires The system bus, which in the von Neumann machine, is traditionally divided into three different bus lines:
-
The control bus, which carries the control signals needed to select the units involved in a data transfer and define the type of operation (for example, whether it is a read or write operation);
-
The address bus, which identifies the location of the memory cells to which the CPU must read or write;
-
The data bus, which contains the data to be read or written to memory and is generally activated by the CPU for transfers to/from memory or I/O interfaces;
The unique feature of the Von Neumann architecture is that the data bus can contain both the instructions and the operands on which those instructions operate, without any distinction. This is not true in other computer architectures, such as the Harvard architecture, which was designed in a diametrically opposed way in this respect, since in it the instructions and operands travel on two different bus lines. Generally, modern PCs follow the Von Neumann architecture, while microcontrollers such as Arduino and Raspberry follow the Harvard architecture.