5.1 Stored-program computing

Dorothy Fuldheim: Tell me, Walter, what are you going to do to report this very historic election?

Walter Cronkite: Well, this year [1952] we’ve got the same basic formula that we had before, which is, of course, straight reporting of how the returns are coming in. However, we do have a little gimmickry this year which I think is most interesting, and may turn out to be something more than gimmickry. We’re using an electronic brain which a division of Remington Rand has in Philadelphia.

Fuldheim: What does it do?

Cronkite: It’s going to predict the outcome of the election, hour by hour, based on returns at the same time periods on the election nights in 1944 and 1948. Scientists, whom we used to call long hairs, have been working on correlating the facts for the past two or three months…. Actually, we’re not depending too much on this machine. It may be just a sideshow… and then again it may turn out to be of great value to some people.

Interview on WEWS-TV, Cleveland, Ohio


Even before ENIAC’s design was completed in June 1944, Eckert and Mauchly were eager to climb the next rung of the technological ladder and build a stored-program computer, one with a central processor and a memory for both data and programs. Such a machine would be a true computer, with all the characteristics now associated with the term. Herman Goldstine, who had championed ENIAC from the day it was no more than an idea in a forgotten memo, once again carried the torch – although ENIAC’s construction had just begun and its success was hardly a foregone conclusion in the summer of 1944. He urged the BRL to sponsor the development of another computer, and the BRL agreed. In October, the Ordnance Department issued a $105,600 contract for the design of the Electronic Discrete Variable Computer, or EDVAC.

At first glance, the notion of storing instructions in a computer doesn’t seem particularly clever, but it flies in the face of mechanical tradition. Machines have always been controlled from the outside; you turned some knobs and set some switches and the gadgets did your bidding. Even if the devices were controlled by punched tape or cards, like the Jacquard loom or the Analytical Engine, the best modus operandi seemed to be to stash the cards outside the machine and insert them when you needed them. Indeed, you couldn’t very well hope to do more, since the practical shortcomings of gears and axles made it difficult if not impossible to build a large memory – although relays made the job much easier. As a result, no one, with the possible exception of Zuse, conceived of the stored program before the invention of ENIAC.

Harry J. Gray, a graduate student at the Moore School and one of the EDVAC engineers, pauses for some fun in the oscilloscope panel, which was part of the operator's console and which he helped build. Gray is now a professor at the Moore School.

But electronic technology made large and fast memories, and therefore stored programs, possible – in fact, necessary. A high-speed calculator like ENIAC, operating at the unprecedented pace of 100,000 pulses a second, cries out for an internal memory that can store all the data and programs it needs for a given task and supply them instantly; otherwise, it has to depend on much slower external storage units, like card and tape readers, which are best employed for bulk storage. The more internal memory, the better. And there was another reason ENIAC demanded the capacity to store programs: the machine, with its thousands of cables and switches, was excruciatingly difficult to program. It would be a lot easier, for example, to feed your instructions directly into the machine.

Admitting the wisdom of storing both programs and data, a crucial question arises. Should they be kept in the same memory or stored in separate units? Since data and programs are two different things, like oil and water, shouldn’t they be treated as such and given their own compartments? The answer is no – they should be lumped together. From a machine’s point of view, data and programs are both symbols that are manipulated according to the same rules – the rules of Boolean algebra. As long as the two of them are encoded in such a way that the computer can always tell them apart, they can be stashed in the same memory spaces, inside and outside the computer, without any disadvantages – but with many advantages.

The innards of EDVAC's control unit.

And what are those advantages? First, a computer’s wiring doesn’t have to be altered whenever a change of program is called for. In fact, there’s no reason to touch the hardware. Second, a computer can modify its instructions. Third, a computer can store a library of programs, providing an easily accessible array of instructions to meet various contingencies. Operating at electronic speed, it can call up and carry out one program after another. Fourth, it can apportion its memory space between data and programs according to need, thus deploying its memory capacity to the best advantage. Some computer problems have short programs and reams of data; others have long programs and a few lines of data. And, finally, it can carry out instructions written in everyday human language (or in terms close to human language). A computer really understands only the 1s and 0s of binary math, and the first computers were programmed with binary instructions, which took a devil of a time to write. Once computers possessed sizable memories, however, they could store programs telling them how to break down ordinary words, like “run” or “stop,” into binary numbers. In short, the advent of stored-program computers led to the birth of easy-to-use programming languages.

Engineers John Broomall and Simon Gluck (standing) testing part of EDVAC's central control unit.

Eckert and Mauchly probably conceived of the idea of the stored program in late 1943. In the 31 December 1943 progress report on ENIAC, they make an oblique reference to the idea: “No attempt has been made to make provision for setting up a problem automatically. This is for the sake of simplicity and because it is anticipated that the ENIAC will be used primarily for problems of a type in which one setup will be used many times before another problem is placed on the machine.” By late 1943, then, Eckert and Mauchly had considered some form of automatic internal programming. And in the first few months of 1944, in the course of their many discussions about EDVAC- late at night, after putting in their double shifts supervising the construction and testing of ENIAC – they arrived at the idea of the stored program. But, until quite recently, that is not how historians described the origin of the stored program.

Back to Chapter Four                                                                                                 Continue

EDVAC, ENIAC's direct descendant, was a stored-program computer. It contained a central processor and central control unit, and was based on binary math and Boolean logic. This is a photo of the machine's front panel under construction at the Moore School in 1948 or 1949.