The Von Neumann architecture
The Von Neumann’s architecture, or Von Neumann’s machine, refers to the generic computer architecture illustrated in the picture on the right. This architecture is based on the stored-program computer concept, where instructions and data are stored in the same (primary or main) memory. This design, first published by the Hungarian mathematician John Von Neumann in 1945, is still used in most computers produced today, with minor variations.
This model has 5 essential components, as illustrated in the
equivalent schema on the right:​​
​
-
The Central Processing Unit (CPU);
-
The (primary or main) memory;
-
Input and Output devices;
-
The data, address, and control buses.
​
Central Processing Unit (CPU)
The Central Processing Unit (or processor), illustrated in the picture on the right, is the core element of this model. It is the hearth of a computer and is responsible for the execution of every computer instruction. It is constituted by the following main elements:
.
-
The Arithmetic Logic Unit (ALU) performs all the arithmetic (such as additions, multiplications, and comparisons) and logic (such as AND, OR, NOT) operations.
-
The Control Unit and Decoder decode every single instruction, and provide the timing and control signals required by the other components (within as well as externally to the CPU), to orchestrate the necessary operations.
-
A variety of specialized Registers, which are very high-speed temporary storage areas within the CPU:
-
The Accumulator (Acc) is used to store the results produced by the ALU.
-
The Program Counter (PC) contains the address of the instruction in memory that will have to be executed next. It is automatically incremented in order to implement a sequential execution of the instructions contained in the memory.
-
The Instruction Register (IR) contains the instruction that the CPU is currently executing, fetched from the memory.
-
The Status Word (SW) contains a set of flags (boolean values) reflecting properties of the results of the ALU calculations. For example, the Z flag is true if the result is zero, the N flag is true if the result is negative. These flags are exploited by the control instructions, that can alter the otherwise sequential execution of the instructions in memory.
-
-
The Multiplexer (MUX) ​is a multi-way switch that determines the input for the ALU.
I/O devices
The Input/Output devices, controlled and coordinated by the processor, enable the interaction between the computer and its external environment, including the users.
​
-
Input devices: allow the introduction of data (including instructions) to the system. For example, a keyboard, a mouse, or a temperature sensor.
-
Output devices are necessary to communicate the processed data to the external world. For example, a monitor, or the controller of a water pump to irrigate a garden.
Some peripheral units can act as both input and output devices; for example a modem, a touch screen, or an SSD device.
Bus
The bus is a shared communication channel interconnecting the different components of the architecture, permitting the transfer of the necessary information, according to the operation to be performed.
The bus can be subdivided in three components:
​
-
Data Bus: transfers the data to be read or written, from/to memory or I/O devices. For example the content of a memory cell.
-
Address Bus: transfers the addresses of the memory (or I/O devices) involved in an operation. For example the address of the memory cell involved in a Read operation.
-
Control Bus: transfers the control signals to coordinate the operations of the subcomponents involved in an operation. For example signalling a Read versus a Write operation in memory.
Memory
Another fundamental component in the Von Neumann model is the memory, where both data and instructions are stored. This type of memory is called Primary or Main Memory.
This memory can be conceptually considered as a set of locations (cells), each of them being able to memorize some information, such as an instruction (or part of it) or elementary data. These cell are depicted in gray in the picture on the right, and in this case they all contain the code corresponding to the computer instruction NOP (No Operation). A unique address is associated with each location (the yellow column in the same picture), so that the CPU can address them.
In modern computers, most of this main memory is usually implemented as Random Access Memory (RAM). This is a fast but volatile memory used by the CPU to read and store data and instructions. Part of this memory can also be implemented as Read Only Memory (ROM), which is a permanent memory as fast as the RAM. The ROM usually contains a relatively few instructions to test the proper functioning of the hardware and "boot" the computer.
​​
Most computers make also use of an additional type of memory, called secondary memory. This may be implemented as an hard disk or an SSD device - which are considered in the Von Neumann architecture as I/O devices. This is a much slower memory but it is persistent and usually has a larger storage capacity. Because of its insufficient speed, it is not used directly by the CPU, but it is used to permanently store data and programs which are loaded in the main memory as needed.
References & Helpful Links:
​
-
Von Neumann architecture https://en.wikipedia.org/wiki/Von_Neumann_architecture
-
Computer architecture https://en.wikipedia.org/wiki/Computer_architecture
CC BY-NC-SA 4.0 Credits