Page 2 of 2
ENIAC and EDVAC
Meanwhile back at the Moore school of Electrical Engineering in Pennsylvania Eckert and Mauchly were finishing work on ENIAC, the world's first programmable general purpose computer. Only the system that they were using made it very difficult to actually re-program it.
Programming ENIAC was still more of an exercise in hardware than software and involved re-wiring part of the machine using plug boards and jumper cables. After all you have to remember that the people building the machine were hardware engineers and this seemed a natural way for them to work. The whole subject of programming and software was yet to be invented.
Computers might have stayed at this primitive level for quite some time but for one of those chance encounters that change history. Johnny Von Neumann bumped into one of the ENIAC team, Herman Goldstine,while waiting for a train.
As both were working on top secret projects and had security clearance they chatted about their work and so Von Neumann got to know all about ENIAC. It was too late to use the machine for the calculations needed for the bomb, it was exploded two years before ENIAC finally worked, but the power of an electronic computer had been seeded in Von Neumann's mind and he became increasingly interested in the new subject.
At one level this was motivated by the need to complete the calculations for the soon to be built H-bomb but judging by the amazing range of non-defence related ideas that poured out of Von Neumann this probably wasn't his main preoccupation.
The practical outcome of the chance meeting was that Von Neumann became a special consultant to the Moore team who were just starting work on their next machine, EDVAC. Von Neumann realised that the main problem with ENIAC was that it took too long to reprogram.
It didn't matter how much effort you put into its software, there was no way to build up a system of inter-related programs. Today the idea that the software, the operating system and the applications programs that run on a machine are what make it is obvious but then there was only hardware.
Von Neumann Architecture
Then the light dawned on Von Neumann that the programs were no different from the data. The same memory that held the data to be operated on could be used to hold the programs that controlled the calculations. He published the influential First Draft of a Report on the EDVAC where the stored program idea was explained to the world. If you read the report then you might be surprised to learn that he thought of the circuits more like simulations of biological neurons similar to the McCulloch-Pitts Neuron.
A logic circuit from the report
From this one insight the stored program computer was born and the term "Von Neumann architecture" was set to become jargon years later. Instead of storing the programs as connections that could be made or broken using plugs and cables, programs could be stored in memory and could control the processor by making it look in the memory for its instructions as well as its data.
Von Neumann with Edvac
Of course it wasn't that easy to put Von Neumann's idea into practice because storing the program as well as the data in the same memory means that the amount of memory needed is greatly increased. For this reason the first stored computer to work wasn't EDVAC but the Mark I built at Manchester because they invented an ingenious way of implementing memory that didn't use valves.
Von Neumann was involved in the design of at least two more large scale machines - usually called Johnniac and Maniac - but his key contribution was the idea of storing the program with the data.
It isn't 100% certain that Von Neumann had the idea first - he certainly talked to Turing, for example, as part of high level meetings during the war - but it is very typical of the sort of idea that he came up with. Of course today we are struggling to find some way to go beyond the simple but elegant Von Neumann architecture.
The reason is that if a computer has to get both its data and its instructions from the same memory this slows things down. The only possible alternative is to design parallel computers that can execute more than one stream of instructions and process more than one stream of data at the same time. So far no general purpose parallel architecture has ousted the Von Neumann design. And even if they did you could point out that they were still stored program computers and so just a minor variant on his original design.
At the moment Von Neumann sounds like a technician with a gift for good ideas but his passion for computing machinery as a vehicle for some thinking deep about the nature of thought, life the universe and everything grew and grew.
The sad part is that his life was so short. It is tempting to draw a parallel with Turing, but there are some important differences. Von Neumann looked towards the biological model of computation provided by the human and other brains.
He put together a theory of artificial neurons that showed how reliable computations could be performed by networks of unreliable components. Strangely this theory has links to the ideas of Shannon on how data could be transmitted with arbitrary accuracy no matter how noisy the communications channel. He also more or less invented the subject of cellular automata and designed the first self reproducing machine.
I can't help but think that Von Neumann had a much more to contribute to the new subject when he died in 1957. His work was severely affected in 1955 when he was diagnosed as having bone cancer. Making a connection between his illness and his work on the Manhattan project is irresistible but I know of no proof that this was the case.
According to the brief account written by his wife Klara he worked "feverishly" on scientific papers and things that he had postponed. By 1956 he was confined to a wheelchair but still continued to work until February 1957. He worked on his last published but unfinished work The Computer and the Brain while in hospital and reading it gives you some idea of what he was thinking about.
The interests of Von Neumann are similar to those of Turing and both were mathematicians who had the potential to change the way people thought about computers. It is tragic that work of both was curtailed so early.