Von Neumann Architecture: The History of the Term

The von Neumann machine architecture, also known as the von Neumann model, or Princeton architecture, is based on a technique described in 1945 by mathematician and physicist John von Neumann as part of the First Project report on the EDVAC computer.

Architecture von Neumann

Architecture scheme

The von Neumann report described an architecture diagram for an electronic digital computer with parts consisting of processing units, which contains:

  • arithmetic-logical device;
  • register processor;
  • a control unit comprising a command register and a command counter;
  • a storage device for storing data;
  • external storage device;
  • input and output mechanisms.

The meaning of the development was that any information stored on a computer could be used by a program in which the selected operation data cannot be reproduced at the same time because they share a common bus. This is mentioned in the First Project, which describes the scientist’s thoughts on what architecture should be. Von Neumann called this situation a “bottleneck” that often limits system performance.

Principles of von Neumann Architecture

A digital computer is a computer that stores a program that contains program instructions, data for reading, writing, and also includes random access memory (RAM). The principles of architecture of John von Neumann are also set forth in his work The First Project. According to him, computers with a stored program were an improvement over the management of computers such as ENIAC. The latter was programmed by setting switches and inserting a patch leading to data routing and control signals between various function blocks. In the vast majority of modern computers, memory is also used in a similar way. At the same time, the architecture of von Neumann computers differs, for example, from Harvard, in that it uses not the main but cache memory.

John von Neumann architecture

Background

The first computers had given fixed programs. Some very simple computers still use this design either for simplicity or for educational purposes. For example, a desktop calculator is also a computer with a fixed program. It can work with the basics of mathematics, but it cannot be used as a word processor or game console. Changing a fixed machine program requires reassembling, restructuring or reorganizing the machine. The earliest computers were not so narrowly focused, as they were developed for the first time and for scientific purposes. Reprogramming appeared much later, and it was a time-consuming process, starting with flowcharts and paper notes and ending with detailed technical projects. Particularly difficult was the process of physical modernization of the recovery channels of the machine. It may take three weeks to install the program on ENIAC and attempt to make it work.

New idea

With the suggestion of a computer that stores programs in memory, everything has changed. Stored in memory, they are a construction with a set of instructions. This means that the machine can immediately receive a set of commands to make calculations.

The design of such programs refers to self-modifying codes. One of the first settings for such an object was the need for an algorithm to increase or otherwise change the address part of the commands. It was made by hand in early designs. This became less important when index registers and indirect addressing became common characteristics that John von Neumann's computer architecture possessed. Another use is to insert frequently used data into the command stream with an immediate solution. But self-modifying code has been heavily criticized because it is usually difficult to understand and debug. In addition, it was also ineffective in terms of reproduction and caching of modern processor circuits.

By and large, the ability to treat instructions as data is what assemblers, compilers, assemblers, loaders, and other tools do with possible objects of automated programming. So to speak, write programs that write programs. On a smaller scale, repeated intensive input and output operations, such as BitBlt manipulations with the image of primitive or pixel and vertex shaders in modern 3D graphics, were found to be ineffective for working without user equipment.

Development of the concept of a program stored in memory

The mathematician Alan Turing, who was interested in the problem of mathematical logic after a lecture by Max Newman at Cambridge University, wrote an article in 1936, which was published in the publication of the London Mathematical Society. In it, he described a hypothetical machine, which he called the "universal computing machine", and which is now known as the universal Turing machine. It had an endless storage (in modern terminology - memory), which contained both instructions and data, for which this architecture was created. Von Neumann met Turing at the time when he was a visiting professor at Cambridge in 1935, and also during the defense of Turing's doctoral dissertation at the Institute for Advanced Study in Princeton (New Jersey) in 1936-1937.

Independently, Ji Presper Eckert and John Mauchly, who developed ENIAC at the School of Electrical Engineering at the University of Pennsylvania, wrote about the concept of a machine that stores a program in memory in December 1943. When planning a new machine, EDVAC, Eckert wrote in January 1944 that she would store data and programs in a new device with memory addressing by delaying metallic mercury. This was the first time that it was proposed to build in practice a machine that stores the program in memory. At the same time, he and Mauchly were not aware of Turing's work (photo below).

Von Neumann principle computer architecture

Computer architecture: von Neumann principle

Von Neumann was involved in the Manhattan Project at the Los Alamos National Laboratory, which required a huge amount of computation. This attracted him to the ENIAC project in the summer of 1944. There he entered into discussions on the development of an EDVAC computer. Within the framework of this group, he wrote a paper entitled “The First Draft Report on EDVAC,” based on the work of Eckert and Mauchly. It was incomplete when his colleague Goldstein distributed a project named von Neumann (by the way, Eckert and Mauchly were stunned by this news). This document has been read by dozens of von Neumann colleagues in America and Europe and has had a major impact on the next phase of computer development.

Classical von Neumann architecture

The basic principles of von Neumann's architecture, set forth in The First Project, were gaining wide popularity, while Turing covered his lecture on an electronic calculator, which was described in detail in technology and programming. It presented the author’s view of a machine called the Automatic Computing Engine (ACE). He introduced it to the executive committee of the British National Physical Laboratory in 1946. After some time, various successful implementations of the ACE design were even made.

Project start

Both von Neumann's project and Turing's documents described computers storing a specific program, but von Neumann's article achieved more circulation in society, and computer architecture became known as John von Neumann's architecture.

In 1945, Professor Neumann, who was then working at an engineering school in Philadelphia, where the first ENIAC was built, issued a report on the logical design of digital computers on behalf of a group of his colleagues. The report contains a fairly detailed proposal for the design of the machine, which has since become known as EDVAC. It was then only recently created in America, but the report inspired von Neumann to create EDSAC.

Computer Architecture by John von Neumann

Maniacs and Joniacs

In 1947, Burks, Goldstein, and von Neumann published another report, which highlighted the construction of another type of machine (this time parallel), which was supposed to be extremely fast, capable, possibly, to carry out up to 20,000 operations per second. They noted that the development of a suitable memory, the entire contents of which should be instantly accessible, was an unsolved problem in building it. At first, they suggested using a special vacuum tube called Selectron, which was invented at the Princeton Laboratory. Such tubes were expensive, and it is very difficult to make them, especially if this architecture is used. Von Neumann subsequently decided to build a machine based on the memory of Williams. This machine, which was completed in June 1952 at Princeton, became widely known as MANIAC (or simply Maniacs). Its design inspired the creators to design half a dozen or more similar devices, which are now being built in America and are comically called Johniacs.

Principles of Creation

One of the most modern digital computers embodying developments and improvements in automatic electronic computing technology was demonstrated at the National Physical Laboratory in Teddington, where it was designed and built by a small group of mathematicians, electronic engineers and research engineers, with the assistance of a number of production engineers from the English Electric Company Ltd. The equipment is still in the laboratory, but only as a prototype of a much larger installation, which is known as the Automatic Computing Engine. But, despite the relatively small mass and content of only 800 thermionic valves, it is an extremely fast and versatile calculating machine.

The basic concepts and abstract principles of calculation using a machine were formulated by Dr. Turing on the basis of the same London Mathematical Society back in 1936, but work on such machines in the UK was delayed by the war. In 1945, consideration of the problems of creating such devices was continued at the National Physical Laboratory by Dr. Wormsley, superintendent of the laboratory of the Department of Mathematics. He joined Turing with his small staff of specialists, and by 1947 the preliminary planning was advanced enough to justify the creation of a special group.

The first computers on von Neumann architecture

The first project describes a circuit that has been used by many universities and corporations to build their computers. Among them, only ILLIAC and ORDVAC had compatible instruction sets.

Von Neumann's classic architecture was embodied in the Manchester Small Experimental Machine (SSEM), nicknamed Baby from the University of Manchester, which made its first successful launch as a device that stores the program in memory, on June 21, 1948.

Von Neumann machine architecture

The EDSAC of Cambridge University, the first practical electronic computer of its kind, was launched for the first time successfully in May 1949.

Development of the created models

The IBM SSEC was able to view instructions as data and was publicly demonstrated on January 27, 1948. This ability is claimed in a US patent. However, it was partly an electromechanical machine, not a fully electronic one. In practice, the instructions were read from paper tape due to its limited memory.

Baby was the first fully electronic computer to run saved programs. He ran the factoring program for 52 minutes on June 21, 1948 after starting a simple division calculation and calculation, which shows that the two numbers are coprime.

ENIAC was modified to operate as a primitive read-only computer, but using the same architecture, and was demonstrated on September 16, 1948, and Adele Goldstein organized the launch of the program with the help of von Neumann.

Principles of von Neumann Architecture

BINAC conducted several test programs in February, March and April 1949, although it was not completed until September 1949. In addition, test launches (some successful) of other electronic computers, for which this architecture is characteristic, were carried out. Von Neumann, by the way, continued to work on the Manhattan project. Here is such a universal person.

The evolution of the bus system architecture

After decades, already in the 60s and 70s, computers as a whole became smaller and faster, which led to some evolutions that computer architecture according to von Neumann underwent. For example, the display of input and output in the memory allows the corresponding devices, the data and instructions for the integration into the system of which will be processed, to remain in memory. One bus system can be used to provide a modular system with smaller ones. This is sometimes called the "rationalization" of architecture. In the following decades, simple microcontrollers sometimes do not use some of the features of a typical model to reduce cost and size. But large computers follow the established architecture, as they have added features to increase productivity.

Source: https://habr.com/ru/post/A4319/


All Articles