In the latest in his computer history series, Dan shows how a hand-written document composed on a train ride drove computer architecture for half a century.
In May 1945, John von Neumann was traveling by train from Aberdeen, Maryland to Los Alamos, New Mexico. Von Neumann was involved with the Manhattan project and that May, with the first atomic explosion still two months in the future and its success in some doubt, von Neumann had been summoned to provide a bit of last-minute advice.
At Aberdeen, von Neumann was involved in another huge and important project, working with the scientists and engineers who were building the ENIAC computer, in connection with which Johnny (as his friends called him) had been asked to write a memorandum about their effort. The memorandum was to discuss the deficiencies already seen in the ENIAC and to define a new machine that would overcome the problems. The summary that von Neumann finished in long hand, titled, “The First Draft of a Report on the EDVAC” was finished by the time he arrived in Los Alamos. He mailed it to his colleague Herman Goldstine, who typed it up, got it reviewed, and published it the next month.
The EDVAC was to become the world’s first electronic digital computer and von Neumann’s memo defined the architecture for it and for stored-program computers generally. The von Neumann architecture was essentially the only design model used by computer scientists for 50 years.
Who was this Johnny von Neumann and how did he find himself at the center of the 20th century’s two most enduring technological advances: the splitting of the atom and the creation of the electronic digital computer?
Almost from the time he was born in Budapest in December 1903, Janos Neumann, the son of the banker Max Neumann, was called Jancsi. In 1913, Emperor Franz Joseph ennobled Max Neumann and the family changed the name to von Neumann. Jancsi was one of three boys born to Max and Margaret, and he was recognized as a genius from the time he was six years old. Jancsi graduated from high school at the age of 11 and he received his PhD from the university in Budapest at the age of 22. For five years, from 1925 to 1929, von Neumann taught at the University of Berlin.
When Max von Neumann died in 1929, Johnny accepted a teaching position at Princeton and he, his mother, and his two brothers emigrated in 1930. In 1933, von Neumann joined Albert Einstein and six others as the initial faculty members of Princeton’s Institute for Advanced Study. At the Institute, von Neumann came to know and work with Einstein, Godel, Church, Veblen, Ulam, Dirac, and Pauli. But it was reported by those who were there that in any gathering, it was Johnny who seemed to be the brightest light.
It is not surprising, then, that von Neumann became a trusted advisor to Robert Oppenheimer and a consultant with the Manhattan Project to build the first atomic bomb. When a problem was too sticky or when the scientists involved in a disagreement were too reluctant to budge, Oppenheimer often called Johnny to provide a solution or to convince the others of the right approach. Such was von Neumann’s reputation that even in the company of Nobel laureates, his recommendations were rarely questioned.
ENIAC and EDVAC
In the spring of 1944, von Neumann was working on the hydrodynamics of the implosion of the atomic bomb. Von Neumann was also involved with work on ballistics at the Aberdeen Proving Ground, and since there was a war to be won and a bomb to be built, Johnny went looking for machines to help with the effort.
During March and April of 1945, a series of meetings were held in Philadelphia at the Moore School, where the ENIAC had been created. The purpose of the meetings was to discuss the deficiencies already seen in the ENIAC and to define a new machine that would overcome the problems. Attending the meetings were Eckert and Mauchly (the ENIAC’s creators), von Neumann, Goldstine, and a few others. The result of those meetings is still felt today through that summary that von Neumann wrote. The EDVAC, built in accordance with that document, was to become the world’s first von Neumann machine.
Along with the von Neumann architecture came what has been called the von Neumann bottleneck. To understand the bottleneck, we must first understand the problem that von Neumann observed with the ENIAC.
The ENIAC was the last of the great electro-mechanical calculators. In other words, it was a grotesque monster. It weighed over thirty tons and it had 19,000 vacuum tubes, 1,500 relays, and hundreds of thousands of resistors, capacitors, and inductors. Although the ENIAC was intended to be as electronic as possible, there remained those 1,500 mechanical relays. Von Neumann’s memo compared processing with vacuum tubes and processing with relays. He showed that in order to accelerate arithmetic operations, the designers of calculators with mechanical relays had to build into the machine the ability for simultaneous calculations, which required multiple adders and accumulators. Von Neumann saw simplicity as the secret to increasing both the reliability and the speed of computation. He wrote:
“Thus it seems worthwhile to consider the following viewpoint: The device should be as simple as possible, that is, contain as few elements as possible. This can be achieved by never performing two operations simultaneously, if this would cause a significant increase in the number of elements required. The result will be that the device will work more reliably and the vacuum tubes can be driven to shorter reaction times than otherwise.”
In other words, computers would process data serially, one fetch, one instruction, and one put at a time. The basic von Neumann machine cycle has the following steps: fetch the instruction from memory, decode the instruction, determine the address for each operand, fetch the data at the operand’s address, execute the operation, and put the result into memory.
And right there was the bottleneck: the serial execution of instructions. Despite the fact that multiple programs were resident in memory, no matter the number of active threads, despite the long-standing ability to have more than one processor in a single machine; the von Neumann bottleneck set limits to computing power for generations.
John von Neumann was brilliant but he wasn't a prophet.
In May 2005, sixty years after von Neumann’s train ride, the United States Postal Service issued a stamp with von Neumann’s likeness. The citation read: “One of the preeminent mathematicians of the 20th century, John von Neumann made numerous scientific contributions in both pure and applied mathematics. Among them was a machine that became a model for virtually all modern computers.”
“A First Draft of a Report on the EDVAC” described a design based on the stored-program concept, meaning that operating instructions could be entered into a computer via punched cards and then stored internally. The new machine, completed in 1952, became a prototype for almost every computer built since then. For his part in its development, von Neumann received the Enrico Fermi Award in 1956, the most prestigious science and technology award of the United States of America.
It all started in May 1945—and that’s when it happened.
Dan Wohlbruck has over 30 years of experience with computers, with over 25 years of business and project management experience in the life and health insurance industry. He has written articles for a variety of trade magazines and websites. He is currently hard at work on a book on the history of data processing.