The Von Neumann Architecture (VNA) is a computer reference model in which a shared memory contains program instructions and data. Unlike parallel processing, Von Neumann systems belong to the class of SISD (Single Instruction, Single Data) architectures.
Pioneer computers were monstrous devices. The Electronic Digital Integrator and Computer (ENIAC) of 1942 was the first complete electronic universal computer of Turing. It consisted of about 18,000 vacuum tubes and 1,500 relays, consuming 30 tons on the scale and about 140 kilowatts of electricity.
The revolutionary concept
Two years later, former ENIAC project employee John von Neumann presented an architectural concept for a universal computer with programmed memory. He noticed that programming computers with this large number of switches and cables was far too slow and inflexible.
Von Neumann discovered that programs containing the respective data in computer memory in digital form can be better represented. He replaced the heavy decimal arithmetic in series of ENIAC with parallel binary arithmetic. It was revolutionary at the time, because all previously developed computers were linked to a fixed program, wired in hardware or to be read via punch cards.
Based on this Von Neumann architecture, it was now possible to modify programs very easily, quickly and without changing hardware. That is, it was now possible to run various programs in quick succession.
However, some of these ideas were developed in 1936 by Konrad Zuse, documented in two patents in 1937 and mainly introduced in 1938 in the "Z1" machine used. In collaboration with Helmut, Schreyer Zuse built the Zuse "Z3", which went into history as the world's first digital computer. It is true that von Neumann did not know the work of Zuse when he presented his architectural concept to the experts in 1945.
Requirements for the concept of architecture
In a von Neumann architecture, the computer is clearly divided into different areas and spatially disassembled. It includes an arithmetic unit, a storage unit, a control or command unit and an input and output unit. Thus, such a computer does not consist of a single card.
The calculator performs arithmetic and logical operations, the memory works on the storage of programs and data, and the queue controls the programs. The unit of entry or exit is responsible for the input and output of the data.
However, a von Neumann architecture must also fulfill additional characteristics: in order for the computer to remain universal, its structure must not be modified. In addition, the data as well as the program code must be entered "externally" via peripherals (for example a mouse, a keyboard or networks such as the Internet).
All programs and data are stored in a memory. Thus, no spatial separation is provided for this purpose. This memory is in turn divided into different units with their own address. The cells in these addresses must always be reachable immediately.
Differentiation to Harvard Architecture
The so-called Harvard architecture is one of the most important architectures of the competition. It is characterized by a physical separation of the control and the data memory. Both are accessible via separate buses.
In other words, in the Harvard architecture, commands and data can be loaded or written simultaneously. Thus, Von Neumann's bottleneck can be avoided. In addition, the physical separation of data and programs also ensures a separation of access rights. The memory can be protected very easily.
If a read-only memory has been used for program code, its replacement is excluded by malicious code. On the other hand, the unused data memory can not be used as program memory – and vice versa. The result: increased fragmentation of memory.