Stored Programs in ENIAC
Amending the ENIAC Story, viagra John W. Mauchly, Datamation, Vol. 25, No. 11, 1979.
(JWM’s working title: STORED PROGRAMS IN THE ENIAC, BINAC AND EDVAC)
A Letter to the Editor of DATAMATION, from John W. Mauchly
[address] , Ambler PA, 19002
In the May 1979 DATAMATION, you published some highlights from Nancy Stern’s doctoral dissertation, in part relating to the “stored program”. I would like to add further material which may interest some of your readers.
The EDVAC was the outcome of lengthy planning in which Eckert and I deliberately tried to overcome many problems of storage and control which were evident in the hasty “state-of-the-art” ENIAC System. Much of this planning took place in the early months of 1944, when most of the ENIAC design had been frozen. (See, e.g. “Disclosure of a Magnetic Drum Calculator”, Jan. 1944, U. Penna. Archives).
The principle which guided these “POST-ENIAC” efforts was that of trying, in the next computer, to use the same device for all situations requiring the same function (such as storage). What had been out of the question with ring-counter storage suddenly appeared within reach because of the economies estimated as possible with the acoustic delay line storage. It was not until October, 1944, that an Army Ordnance contract authorized work on EDVAC (without any specification as to just what an EDVAC might be). We were still building ENIAC, and had to be sure that it was properly completed. That took over a year more.
But all through 1944, and in 1945 as well, we were leading a “double life”. For much of two shifts, 8 AM to Midnight, both ENIAC construction and testing needed supervision. Then as hourly workers went home and project engineers “thinned out”, Eckert and I were left time to consider that “next machine”. Naturally, “architecture” or “logical organization” was the first thing to attend to. Eckert and I spent a great deal of thought on that, combining a serial delay line storage with the idea of a single storage for data and program. From January, 1944, (the Magnetic Calculator Disclosure), followed by the delay line ideas of a month or so later, on through the Summer, Eckert and I were very busy in these dual roles — switching from ENIAC jobs to thinking of what that new machine might be like.
During part of this time, Goldstine was hospitalized and did not have direct knowledge of the plans which were being generated so late at night. But Harry Huskey, who came to the ENIAC project about April, 1944 (his estimate) confirmed that soon after he arrived he became aware that the “next computer plans” involved having programs and data in the very same “store”. This was long before Goldstine met von Neumann in August, 1944.
September 7, 1944 was the first day when von Neumann had security clearance to see the ENIAC and talk with Eckert and me about the classified digital computer projects on which we worked. When von Neumann arrived, Eckert and I were asked to tell “Johnny” what our plans were, and we did. We started with our simple basic ideas: There would be only ONE storage device (with addressable locations) for the ENTIRE EDVAC, and this would hold both data and instructions. All needed arithmetic operations would be performed in just ONE arithmetic unit (unlike the ENIAC). All control functions would be centralized (in contrast to the ENIAC). Of course there would be devices to handle input and output, and these would be subject to the control module just as the other modules were.
Johnny learned instantly, of course, as was his nature. But he chose to refer to the modules we had described as “organs” and to substitute hypothetical “neurons” for hypothetical vacuum tubes or other devices which could perform logical functions. It was clear that Johnny was rephrasing our logic, but it was still the SAME logic. Also, he was introducing different but equivalent symbols; nevertheless the devices still did the same things. Johnny did NOT alter the fundamental concepts which we had already formulated for the EDVAC.
Everyone could see how fascinated Johnny was with a subject which had somehow escaped his amazingly wide interests until Goldstine told him of the Moore School project. Like a child with a new toy, he could not put it aside. When his consulting duties required him to visit the Manhattan Project, he took off for New Mexico, hut his mind was on our EDVAC architecture.
He must have spent considerable time at los Alamos writing up a report on our design for an EDVAC. This MSS he sent to Goldstine, with a letter stating that he had done this as an accommodation for the Moore School group who had met with him. But Goldstine mimeographed it with a title page naming only one author — von Neumann. There was nothing to suggest that ANY of the major ideas had come from the Moore School Project!
Without our knowledge, Goldstine then distributed the “design for the EDVAC” outside the project and even to persons in other countries.
Small wonder, then, that computer history gave von Neumann the credit. Eckert and I, who left the Univ. of Penna. In 1946, no longer had access to the documents which might have helped to show “who did what, when.” But after many years, litigation has unearthed some of those documents, and historians can read what was once classified. But, even after declassification, those reports are not accessible to most people, since they were reproduced in such small quantities. Nevertheless, we hope that more historians will refer to them.
Of those who did check our ENIAC and EDVAC reports, Metropolis and Worlton published “A Trilogy of Errors in the History of Computing” (USA – Japan Computer Conf. 1972 AFIPS). Metropolis of los Alamos was in an excellent position to notice such errors, for he knew von Neumann and Eckert and me and the history recounted above. But on “historians” who merely copy from popular sources, that paper had no influence.
Before moving on to the BINAC, it is important to note that the ENIAC really did have a stored program, but not in the sense in which that word is currently used. The ENIAC was much more than an analog of a mechanical desk computer. Control of the calculations was more important than “just doing arithmetic fast”. And that control had to be fast enough so that it did not lose all the time gained by doing the arithmetic fast. That meant that any element of the program which changed fast had to be “in fast storage”. Each of the 20 “accumulators” had a ring counter for “repeat operations”, but more important were the electronic counters and stepping switches in the Master Programmer. These made possible immediate change from one program sequence to another, enabling the use of nested subroutines and other program variations.
Altogether, about 25% of the ENAIC “fast electronic storage” was devoted to such internal storage of those parts of the program which varied rapidly. That is one of the important features which made the ENIAC a far more powerful instrument than an “electronic speed-up of a mechanical computing device”.
Now for a few words about the BINAC, which was not only the first stored program computer built by Eckert-Mauchly, but the fastest with delay line storage. Its clock rate was 4 megacycles, or 8 times that of the first machine at Cambridge, England — the EDSAC. The BINAC was really two identical machines, checking each other each clock cycle, and these “Siamese twins” were completed and amply demonstrated for an entire week to many scores of guests in Philadelphia. These demonstrations were reported in the Journal of the Franklin Institute for October, 1949, but not much carried by the popular press. They were very carefully noted by observers from the National Bureau of Standards, and the Bureau of the Census, because these agencies were expecting Eckert-Mauchly to build and deliver UNIVACs to the government. Apparently these highly interested groups were satisfied that Eckert-Mauchly would indeed be able to produce UNIVACs.
Then what happened? It would be more than a year before any computer of similar capacity and speed would be available in North America. ENIAC, for three years the ONLY electronic computer in the whole world, now had a real rival with 512 “words” of storage any of which could be used for data or program. Northrop, the BINAC contractor, did not see or realize the potential of what it had. While ENIAC was kept busy on many scientific problems until 1955, this pioneer BINAC of 1949 was cast aside.
Northrop Aircraft required immediate delivery in Philadelphia. Northrop then “took charge”. The various modules of the BINAC were roughly crated, shipped to California, and apparently ignored.
But, for the sake of “stored program” history, the following should be recorded: The first of the two computers which became the BINAC was under test early in 1949, and ran non-stop without error in April, 1949, for 44 hours. The test was then interrupted so that the engineers could get on with other work. The Cambridge EDSAC, we are told, made its debut in May, 1949.
Having covered some of the main points, I shall conclude with a few minor comments.
One common misconception which Eckert and I have repeatedly tried to correct is that ENIAC technology was based on previous radar work. There is not a shred of truth in that. It was, to a large extent, based on the “scaling” circuits of nuclear and cosmic ray laboratories. The acoustic delay line storage device, used in EDVAC, BINAC, and UNIVAC came from Eckert’s previous projects for radar.
There is a confusion of p.233 of Dr. Stern’s article between fixed function tables used in the multiplier unit to produce “partial products”, and the three large “portable function tables” which could be manually set up for arbitrary function values for 104 arguments.
Also, I should answer Fred Gruenberger’s remarks about my August 1942 memo. It was never intended to explain or propose a CONTROL method for electronic computation, but merely to “sell” the reason for developing electronic devices to overcome the limitations of mechanical devices, including relays. Fortunately it did that. But IT DID NOT DESCRIBE even a calculator, still less a computer.
Any one who wants to read what we proposed for the ENIAC should consult the April 1943 proposal which Eckert and I and Dr. Brainerd put together and presented to the Ballistic Research Laboratory at a meeting which approved the “starting project”. In that document was a “program chart” which I drew up to show how the iterations for a trajectory might be calculated. Such may be the first program ever attempted for an electronic digital device. Perhaps Brian Randall will reprint that proposal in a revision of his book on “Origin of Digital Computers”.