Von Neumann Architecture

The expression Von Neumann architecture or Von Neumann machine refers to the design scheme conceived by the Hungarian mathematician John Von Neumann around the mid-twentieth century. The computer, as we know it today, was created thanks to this scheme. The basic concepts of the von Neumann architecture are also included in modern microprocessors, such as the Pentium i7.

cpu_von_neumann

The scheme is based on 4 fundamental components:

  • CPU
  • RAM
  • I/O (Input/Output) Interface
  • System Bus

CPU

The CPU (Central Processing Unit) is the central processing unit and can be The CPU can be defined as the "brain" of the computer. The CPU executes calculation and control instructions, coordinating the other components in the execution of these instructions. The CPU, also called the processor, is divided into:

  • ALU (Arithmetic Logic Unit), which performs arithmetic and logical calculations;
  • CU (Control Unit), which is the control unit, which supervises the operation of the other components.

The CPU coordinates the other components of the system using a timing circuit, called the system clock or simply the clock. Using a metaphor, we can say that the clock dictates the time in the execution of the instructions, thus How the beat dictates the tempo within a song.

Memory

Regarding computer memory, a first distinction can be made between main memory and secondary memory. RAM (Random Access Memory) is the main memory and can be considered one of the main memories along with registers and the cache. RAM plays a fundamental role in the Von Neumann architecture: all instructions and data must reside in RAM in order to be used by the CPU. However, RAM is volatile, so the information it contains is lost when the computer is turned off. Registers are also volatile memories, including the MAR, MDR, PC, IR, and PSW registers, which play a fundamental role in the machine instruction cycle, discussed in this post.

ROM (Read Only Memory), which is persistent read-only memory, can also be classified as main memory. ROM contains the bootstrap program, which is the program that allows the system to start up and load the main software, which is typically the operating system.

Regarding secondary memory, we can mention the hard disk (hard drive) and solid-state drives (SSD), which store data and programs persistently. Being persistent, data on these drives is retained even after the computer is turned off.

Input/Output

Hard drives, along with CD/DVD drives, keyboards, mice, and webcams, can also be considered input devices. Output devices, on the other hand, are printers and screens. Therefore, input devices are used to enter data and/or give commands to the system, while output devices are used to communicate the data processed by the machine to the user. The various devices (also called peripherals) are different from each other and therefore require a common interface to communicate with the other components of the architecture. This interface is precisely the I/O interface.

Bus

Finally, the bus is the communication channel that connects the architecture's components to each other, allowing the flow of information. In particular, in the Von Neumann architecture, we can distinguish different lines in the system bus:

  • control bus, to enable memory reading or writing
  • address bus, to identify memory addresses
  • data bus, to contain data to be read or written

A peculiarity of the Von Neumann architecture is that instructions and data travel without distinction within the single system bus. This is not the case in the Harvard architecture, on which most processors are based. famous modern microcontrollers, such as Arduino. Arduino is certainly one of the most widely used microcontrollers in education.