The architecture of von Neumann: the history of the origin of the term
The architecture of the von Neumann machine, also knownas a 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 outline
The von Neumann report described an architecture scheme for an electronic digital computer with parts consisting of processing units that contains:
- arithmetic logic unit;
- processor registers;
- a control unit containing 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 anyThe information stored on the computer could be used by the program in which the selected operation data can not be played back at the same time, because they share the common bus. This is mentioned in the "First Project", which describes the scientist's thoughts about what architecture should be. Von Neumann called this situation a "bottleneck," which often limits system performance.
Principles of von Neumann architecture
A digital computer is a computer that stores a program,which contains program instructions, data for reading, writing, and also includes random access memory (RAM). The principles of the architecture of John von Neumann are also set forth in his work The First Project. According to him, computers with a program stored in memory were an improvement over the management of computers, such as ENIAC. The latter was programmed by setting switches and inserting a patch that leads to data routing and control signals between the 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's computer differs, for example, from Harvard, in that it uses not the main, but the cache memory.
Prehistory
The first computers had predeterminedfixed 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 can not be used as a word processor or game console. Changing the fixed program of the machine requires re-installation, restructuring or reorganization of 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, beginning with block diagrams and paper bills and ending with detailed technical projects. Especially difficult was the process of physical modernization of the channels of the recovery of the machine. It may take three weeks to install the program on ENIAC and try to get it to work.
New idea
With the offer of a computer storing programs inmemory, everything has changed. Stored in memory, they are a design with a set of instructions. So, the machine can immediately get a set of commands to perform calculations.
The design of such programs refers toself-modifying codes. One of the first installations for such an object was the need for an algorithm to increase or otherwise change the address part of the commands. It was done manually in early designs. This became less important when index registers and indirect addressing became the usual characteristics that the computer architecture of John von Neumann's computer possesses. Another use is to insert frequently used data in the team thread using an immediate solution. But self-modifying code has been heavily criticized, as it is usually difficult to understand and debug. In addition, it was also inefficient in terms of playback and caching schemes of modern processors.
By and large, the ability to relate toinstructions as to data is what assemblers, compilers, builders, loaders and other tools with possible objects of automated programming do. So to say, write programs that write programs. On a smaller scale, repeated intensive input and output operations, such as BitBlt manipulations with images of primitive or pixel and vertex shaders in modern 3D graphics, have been found ineffective for working without user equipment.
Development of the concept of a program stored in memory
Mathematician Alan Turing, who was interestedto the problem of mathematical logic after the lecture of Max Newman at the University of Cambridge, wrote an article in 1936, it was published in the edition of the London Mathematical Society. In it, he described a hypothetical machine, which he called a "universal computing machine", and which is now known as a universal Turing machine. It had an infinite storehouse (in modern terminology - memory), which contained both instructions and data, for which the given 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 his doctoral dissertation Turing at the Institute for Advanced Study in Princeton (NJ) in 1936-1937.
Regardless of each other, Ji Presper Eckert andJohn Mauchly, who developed ENIAC at the School of Electrical Engineering at the University of Pennsylvania, wrote about the concept of a machine that stored the 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 the construction of a machine storing a program in memory was proposed. At the same time he and Mauchly were not aware of the work of Turing (photo below).
Computer architecture: the von Neumann principle
Von Neumann was involved in the Manhattan Project inThe National Laboratory in Los Alamos, which required a huge amount of calculations. This attracted him to the ENIAC project in the summer of 1944. There he joined discussions on the development of the EDVAC computer. Within the framework of this group, he wrote a paper titled "The First Draft Report on EDVAC," based on the work of Eckert and Mauchly. It was incomplete when his colleague Goldstein circulated a project with the name von Neumann (by the way, Eckert and Mauchly were dumbfounded by such news). This document was read by dozens of von Neumann colleagues in America and Europe and had a major impact on the next stage of computer development.
The basic principles of the von Neumann architecture,described in the "First Project", gained wide popularity, while Turing covered his report on the electronic calculator, which was described in detail in engineering and programming. It contained the author's presentation of the machine, which was called the Automatic Computing Engine (ACE). He presented it to the Executive Committee of the British National Physical Laboratory in 1946. After a while, even various successful implementations of the ACE design were made.
Beginning of project implementation
Both the von Neumann draft and the Turing documentsdescribed computers that store a particular program in memory, but von Neumann's article reached greater circulation in society, and computer architecture became known as John von Neumann's architecture.
In 1945, Professor Neumann, who thenworked at an engineering school in Philadelphia, where the first ENIAC was built, released on behalf of a group of his colleagues a report on the logical design of digital computers. The report contains a rather detailed proposal for the design of the machine, which has since become known as EDVAC. It was only recently established in America, but the report inspired von Neumann to create EDSAC.
Maniacs and Joniacs
In 1947 Burks, Goldstein and von Neumannpublished another report, which covered the design of another type of machine (this time parallel), which was supposed to be extremely fast, capable of carrying out up to 20,000 operations per second. They noted that an unresolved problem in constructing it was the development of suitable memory, all the contents of which should be instantly available. First they suggested using a special vacuum tube called Selectron, which was invented at Princeton Laboratory. Such pipes were expensive, and making them very difficult, 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 in Princeton, became widely known MANIAC (or simply Maniacs). Its design inspired the creators to design half a dozen or more similar devices that are now being built in America and are called comically Johniacs.
Principles of creation
One of the most modern digital computers,which embodied the developments and improvements in the technique of automatic electronic computing, 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 the content of only 800 thermionic valves, it is an extremely fast and universal counting machine.
Basic concepts and abstract principles of calculation withThe machines 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, the consideration of the problems of creating such devices continued in the National Physical Laboratory by Dr. Vormsley, the 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 the von Neumann architecture
The first project describes a scheme that has been used by many universities and corporations to build their computers. Among them, only ILLIAC and ORDVAC had compatible instruction sets.
The classical von Neumann architecture wasis embodied in the Manchester Small Experimental Machine (SSEM), nicknamed Baby from the University of Manchester, which made its first successful launch as a device storing the program in memory on June 21, 1948.
EDSAC from Cambridge University, the first practical electronic computer of this type, was launched for the first time successfully in May 1949.
Development of created models
IBM SSEC was able to considerinstructions as data and was publicly demonstrated on January 27, 1948. This ability was approved in the US patent. However, it was partly an electromechanical machine, and not completely electronic. In practice, instructions were read from the paper tape because of its limited memory.
Baby was the first fully electronic computerto start stored programs. He ran the factoring program for 52 minutes on June 21, 1948 after starting a simple calculation of division and calculation, which shows that two numbers are relatively prime.
ENIAC has been modified to work as aprimitive computer only for reading, but for the same architecture, and was demonstrated on September 16, 1948, and the launch of the program Adel Goldstein organized with the help of von Neumann.
BINAC conducted several test programs inFebruary, March and April 1949, although it was not completed until September 1949. In addition, there were test launches (some successful ones) of other electronic computers for which this architecture is inherent. Von Neumann, by the way, continued to work on the Manhattan project. This is such a universal person.
Evolution of the bus architecture system
Through the decades, already in the 60s and 70s,computers in general became smaller and faster, which led to some of the evolution that the computer architecture under von Neumann underwent. For example, the display in the input and output memory allows the corresponding devices, data and instructions for integration into the system to be processed, to remain in memory. One bus system can be used to provide a modular system with fewer. This is sometimes called the "rationalization" of architecture. In subsequent decades, simple microcontrollers sometimes do not use some features of a typical model to reduce cost and size. But large computers follow the established architecture, because they added features to improve performance.