The advantage for computers of thinking in binary code is that their language consists of identical electrical pulses. At any point in a circuit, either there is a pulse, or there is not. On or off. 1 or 0. While a message written out in binary code might look extraordinarily cumbersome, it is in fact much quicker for a computer to work with instructions in this form than to incorporate some more complicated method of representing all the numbers and letters that human brains cope with quite happily.
In ENIAC, Eckert and Mauchly represented numbers in their conventional decimal notation. They used ten valves to represent a single digit: the fifth valve in a row of ten indicated the number five, and so on. Using binary code, just five valves would have been enough to represent all the numbers up to 31. To be fair to the Moore School designers, the theory of information processing based on binary digits, or ‘bits’ for short, was still being developed by Claude Shannon at Bell Labs when they began work on ENIAC. It has since been fundamental to the design of all modern computers.
Another major shortcoming of ENIAC was that it could not store programs. Mauchly had not taken the logical step that as programs consisted of information that could be represented digitally, they could be treated in the same way as data and stored in the computer itself. Each time ENIAC’s engineers wanted to run a new calculation they had to set up the program afresh by plugging wires into sockets, a process that could take a whole day.
The machine’s own builders realised that by the time they had it working, it was already obsolete. It deserves credit, however, for being the first to demonstrate publicly the power of electronic computing. It did work for the purpose for which it had been designed, and the army went on using it until 1955. Meanwhile, the publicity it attracted stimulated others to develop new avenues in the history of computing that would lead directly to the computers of today.
Among those who watched the building of ENIAC with interest was the Hungarian émigré mathematician John von Neumann. Von Neumann was by then an international star of mathematics, having established the mathematical foundations of quantum theory as well as developing the principles of game theory, which were to have a huge impact in economics, international relations, population biology and many other areas of modern experience. He was a founder member of the Institute for Advanced Study in Princeton, and had become an adviser to the army in 1940 when he joined the scientific advisory committee of its Ballistics Research Laboratory. Since 1943 he had also been attached to the Los Alamos atomic bomb project. At that time he was trying to model the explosion of the bomb mathematically and to predict the ensuing fireball, but had not been able to find any machine capable of crunching the numbers fast enough.
According to Herman Goldstine’s widely circulated account, it was his own chance meeting with von Neumann that first brought ENIAC to the renowned mathematician’s attention. One day in 1944 Goldstine looked up while waiting on a station platform for a train from Aberdeen to Philadelphia and saw von Neumann just a few feet away. Conscious of his lowly academic status but never one to miss an opportunity, he introduced himself and they fell into conversation. When the topic turned to ENIAC and what it would be able to do, Goldstine remembered, ‘the whole atmosphere changed from one of relaxed good humor to one more like the oral examination for the doctor’s degree in mathematics’.
A few months later von Neumann became a consultant to the Moore School team on the design of a successor machine that would avoid the serious shortcomings that had become apparent as ENIAC came into operation. Called the Electronic Discrete Variable Automatic Computer (EDVAC), it would handle data more economically by using binary rather than decimal digits and, most important of all, it would incorporate the means to store programs along with data.
In June 1945 von Neumann summarised these discussions in a memo, ‘A First Draft of a Report on the EDVAC’, formalising the logical design of such a machine. The report described the principles of an automatic, digital machine, consisting of five basic components: a memory, which stores both program and data; a control unit, which interprets the program; an arithmetic unit, which adds and subtracts data as directed by the program; and input and output units, which read in the program and data and deliver the final results. Computers with this design – and that includes the vast majority of modern computers – have ever since been said to have ‘von Neumann architecture’.
As in the case of Atanasoff and Mauchly, much ink and hot air has been expended over the injustice done to Eckert and Mauchly in denying them credit, especially for the stored program concept. Eckert had not only thought about this before John von Neumann joined the project; he had begun to design and build a prototype store. There was undoubtedly a conflict of interest between the academics von Neumann and Goldstine, who wanted to see the ideas in the EDVAC design incorporated as widely as possibly, and the engineers Eckert and Mauchly, who were thinking about capitalising on its commercial possibilities. The academics won hands down when Goldstine, apparently on his own initiative, distributed the report with von Neumann’s sole name on it to a couple of dozen carefully selected recipients. That was all it took to ensure that von Neumann’s name was permanently cemented to the concept of a stored program. Although EDVAC itself, eventually delivered to the Aberdeen Proving Ground in 1949, was not an especially significant machine, every subsequent computer designer was influenced by the contents of von Neumann’s report.
When Oliver Standingford and Raymond Thompson came to see him in 1947, Goldstine was back in academic life. His boldness in accosting John von Neumann on that station platform had paid off, and he was now working as his assistant on a new computer project at the Institute for Advanced Study. The two men found him in his office on the elegant, tree-shaded campus. His mood was relaxed and expansive. If he was surprised at being approached by representatives of a commercial company, far from the world of theoretical physics and higher mathematics that he inhabited, he gave no sign of it. He listened closely as the two men explained that they were exploring the possibility of using electronic calculators in the office. ‘That’s not a problem I’ve thought about before,’ began Goldstine. Thompson eagerly explained how much of the work of the Lyons clerks amounted to routine calculation, and how their whole approach to office systems was based on distilling useful information from the mass of data.
Goldstine instantly saw the point, and became tremendously enthusiastic. Sketching furiously on a yellow pad, he launched into a description of possible approaches to the problem given the technology that had been developed so far. At the same time he explained the advantages of electronic calculators of the type he was now working on over previous types of calculating machine. The most obvious was their speed of operation. While an IBM punched card tabulator could carry out the same processes of addition and subtraction, its speed was limited by the speed of its mechanical moving parts. The electronic calculator, in contrast, operated at the speed of an electron moving in space – in principle, each step in a calculation could be completed in less than a millionth of a second.
The real source of an electronic calculator’s power, said Goldstine, was its potential to store its own program along with interim and final results. It would operate automatically – there was little or no need for human intervention in the course of a run. While punched card machines could carry out as many parallel operations as there were columns on the card (the standard had increased from 40 to 80 since Hollerith’s time), most electronic computers operated serially, taking one instruction or piece of data from the store at a time. However, the gain in speed and the possibility of running a large number of different operations in a single program gave the electronic computer overwhelming superiority.
Читать дальше