upvote
As I point out occasionally, the bottleneck in early computing was memory. There were no good memory devices for quite a while. IBM had electronic arithmetic in test before WWII, and that eventually emerged as the IBM 603 Electronic Multiplier (1946). That was the first mass-produced electronic calculation device. From IBM's perspective, they needed something reliable enough to install at customer sites that would run without repair techs on site. IBM's electromechanical machines already worked that well, and businesses could get work done. So there was a lot of work that had to be done on tubes, sockets, wiring, soldering, and packaging before they could ship.

Eckert and Mauchley came from a background of trying to get compute done with modified IBM hardware. They were painfully familiar with the lack-of-memory problem. Everybody involved with that era of machinery was. (I've used IBM plugboard wired tabulators, like the one at the Computer Museum in Mountain View. My high school had one.) The ENIAC had a workaround for lack of memory, huge rolling cabinets of manually set rotary switches. If something better had been available, it would have been used. You have to appreciate how much early architecture was restricted by available components.

The first real hardware breakthrough was acoustic delay-line memory. First mercury tanks, then long coils of steel wire. Once that was available, it was clear that was the place to put the program. But it took a while to make that work reliably. Then there was Williams tube electrostatic storage, and high speed drums, which got things going. Sort of. Memory cost was an issue well into the 1980s. In the early 1970s, a megabyte cost a million dollars. Cheap memory didn't appear until the 1990s.

The big lack in Von Neumann's architecture was index registers. He was into storing into the address part of instructions. The Manchester Mark I had the first index register (the "B box"), at which point programs could be read-only and still be able to index arrays. That completed the basic CPU architecture.

reply
> I've used IBM plugboard wired tabulators

This is a genuinely rare experience. Was it like old hardware on a shelf that no one knew what to do with and you tried it out? Or this was how lessons/clubs/assignments got things done, using an antique IBM tabulator?

When I started public high school near Boston in the early 80s we didn't have Apples or TRS 80s or PCs, it was terminals that used printed output ... can't remember the details, maybe DECwriter to PDP 11.

reply
Von Neumann's architecture (i.e. report on the EDVAC) didn't focus on random-access memory, and in fact his whole discussion on memory is rather rambling. The EDVAC itself, which the report is nominally describing, used serial-access mercury delay line memory. What really matters from an architectural POV is memory address-ability, not speed of access (random vs serial).

The whole document is, as the title promises, really more of an engineering one - a report on the EDVAC - rather than some clean abstract treatise on computer architecture.

https://web.archive.org/web/20130314123032/http://qss.stanfo...

reply
When the report was written there wasn't any random access memory. The only memory suited to computers in 1946 was the ultrasonic delay line as implemented by Eckert. What makes it not-random access is that all the bits in the store are being constantly shifted and counted in a loop (about 1Mhz?), so you have to wait for the word you want to read/write to fly past and the controller grabs it then.
reply
Perhaps, and thanks for contributing that; and I'm not taking a position currently on this. But I've long been uncomfortable with the term 'random access' for random access memory (RAM) as it implies that the concept of 'randomness' is somehow a required and fundamental property of the memory technology described, when it's not. 'Arbitrary access' is a much more appropriately encapsulating description of the function of the memory at hand. Alas, the incumbency of terminology.
reply
I agree with you about terminology.

Nonetheless, the programs whose performance is limited by the speed of the main memory can be divided in programs whose performance is limited by the throughput of the memory interface and programs whose performance is limited by the latency of the memory accesses.

The programs from the first class will have the same performance when using a serial memory or a RAM, if they are equally fast for sequential access, but for programs from the second class, it is important to have a RAM as the main memory, otherwise they would be very slow.

In order to measure the performance achievable by programs from the second class on a given computer, it is necessary to run a benchmark where the addresses of the memory accesses are generated by a good random-number generator.

The reason is that modern CPUs have a variety of hardware prefetchers that attempt to predict the next memory address, so for meaningful results that reflect the true performance of the memory you need truly random addresses that are impossible to guess by the hardware.

Thus nowadays the latency of the memory accesses of a RAM cannot be measured otherwise than with really random accesses and a memory chip must be designed to have a low latency even when successive accesses happen at unpredictable random addresses, not only when the accesses are at arbitrary addresses, but those can be predicted in advance of the actual accesses.

So there is an argument in favor of the term RAM, because random access is the worst possible case and the memory must still be able to handle it.

reply
No, von Neumann does not deserve credit for stealing Eckerts and Mauchleys life work.

von Neumann deserves credit for many things, but not this.

He famously brought a lawyer with him to a meeting after they wanted to discuss the report and the rights of their invention. The whole ENIAC saga has made me reconsider von Neumann as a person. He was a talented mathematician, sure, but he seems to have also been a greedy scumbag.

Eckert and Mauchley did not try to conceal their inspiration from Atanasoff, although I believe there was a court case on this topic.

And it is completely ridiculous to claim that von Neumann would have been able to describe the computer better than its inventors.

It's eaually ridiculous to consider that they would not have published themselves. They were collaborating with von Neumann on the report after all.

Goldstine and von Neumann stole the credit from Eckert and Mauchley, that is documented history.

reply