The conclusion is that von Neumann deserves the credit for the "von Neumann architecture", despite any contrary claims of Eckert or Mauchly.
Herman Goldstine, who distributed the document and John von Neumann, who wrote it, are the reason for the explosive growth of the computer industry during the following decades.
The paper written by von Neumann was an exemplary model of clarity and good logical thinking. Nothing ever written by Eckert or Mauchly was at a comparable level.
Everyone who read that paper understood immediately how to design and build an electronic automatic computer, and a great number of teams in many countries all over the world did precisely this, so a decade later there already existed experimental electronic computers in many countries and also commercial electronic computers in the UK and in USA.
Some of the details from the paper must have been learned by von Neumann from discussions with the ENIAC team, but others were obviously von Neumann's own ideas, e.g. the use for the main memory of an iconoscope tube with fast random access, i.e. a DRAM like today, instead of the slow serial delay lines chosen by Eckert and Mauchly for their following computers.
Whatever von Neumann has learned from the ENIAC team, he obviously understood better than the people who taught him, allowing him to formulate general principles for the organization of an automatic computer.
The publication of the von Neumann paper allowed the concurrent development of many computers in many places, and each of those projects found various improvements that were essential in making the electronic computers successful commercial products.
If Eckert and Mauchly had succeeded to block any competitors, then the evolution of computers might have been delayed by up to 2 decades, until any patents would have expired, because Eckert and Mauchly have never done later any significant innovations and they would have never succeeded to develop better computers at the pace that happened due to the von Neumann paper.
Moreover, Eckert and Mauchly had a history themselves of failing to mention their sources of inspiration, so they were not the people entitled to complain about someone "stealing" ideas from them.
Before ENIAC, the first electronic computer in USA was the Atanasoff-Berry computer. That computer was a special-purpose computer, designed for solving systems of linear algebraic equations. However, ENIAC was a special-purpose computer too, unlike the relay-based computers that were older than it, like the Harvard Mark I computer, as even its name implies (Numerical Integrator and Computer).
ENIAC was conceived as a replacement for the older mechanical "differential analyzers", which were used to solve ordinary differential equations, e.g. for computing artillery tables, so its architecture mimicked the architecture of the mechanical differential analyzers, and it was reconfigured for new problems in a similar manner with those, by rewiring.
John Vincent Atanasoff had written in 1940 a very high-quality document about the design of his computer: “Computing Machine for the Solution of Large Systems of Linear Algebraic Equations”. It is unknown if anyone of the ENIAC team had read it, but it is known that one of them had visited the designers of the Atanasoff-Berry computer, inquiring about the electronic circuits used by them to implement arithmetic operations and data storage. Later, during the design of ENIAC and after that, they never mentioned any connection with the earlier electronic computer.
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.
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.
ricksunny · · focus · HN ↗
<a href="https://news.ycombinator.com/item?id=49870485">https://news.ycombinator.com/item?id=49870485
adrian_b · · focus · HN ↗
Herman Goldstine, who distributed the document and John von Neumann, who wrote it, are the reason for the explosive growth of the computer industry during the following decades.
The paper written by von Neumann was an exemplary model of clarity and good logical thinking. Nothing ever written by Eckert or Mauchly was at a comparable level.
Everyone who read that paper understood immediately how to design and build an electronic automatic computer, and a great number of teams in many countries all over the world did precisely this, so a decade later there already existed experimental electronic computers in many countries and also commercial electronic computers in the UK and in USA.
Some of the details from the paper must have been learned by von Neumann from discussions with the ENIAC team, but others were obviously von Neumann's own ideas, e.g. the use for the main memory of an iconoscope tube with fast random access, i.e. a DRAM like today, instead of the slow serial delay lines chosen by Eckert and Mauchly for their following computers.
Whatever von Neumann has learned from the ENIAC team, he obviously understood better than the people who taught him, allowing him to formulate general principles for the organization of an automatic computer.
The publication of the von Neumann paper allowed the concurrent development of many computers in many places, and each of those projects found various improvements that were essential in making the electronic computers successful commercial products.
If Eckert and Mauchly had succeeded to block any competitors, then the evolution of computers might have been delayed by up to 2 decades, until any patents would have expired, because Eckert and Mauchly have never done later any significant innovations and they would have never succeeded to develop better computers at the pace that happened due to the von Neumann paper.
Moreover, Eckert and Mauchly had a history themselves of failing to mention their sources of inspiration, so they were not the people entitled to complain about someone "stealing" ideas from them.
Before ENIAC, the first electronic computer in USA was the Atanasoff-Berry computer. That computer was a special-purpose computer, designed for solving systems of linear algebraic equations. However, ENIAC was a special-purpose computer too, unlike the relay-based computers that were older than it, like the Harvard Mark I computer, as even its name implies (Numerical Integrator and Computer).
ENIAC was conceived as a replacement for the older mechanical "differential analyzers", which were used to solve ordinary differential equations, e.g. for computing artillery tables, so its architecture mimicked the architecture of the mechanical differential analyzers, and it was reconfigured for new problems in a similar manner with those, by rewiring.
John Vincent Atanasoff had written in 1940 a very high-quality document about the design of his computer: “Computing Machine for the Solution of Large Systems of Linear Algebraic Equations”. It is unknown if anyone of the ENIAC team had read it, but it is known that one of them had visited the designers of the Atanasoff-Berry computer, inquiring about the electronic circuits used by them to implement arithmetic operations and data storage. Later, during the design of ENIAC and after that, they never mentioned any connection with the earlier electronic computer.
ricksunny · · focus · HN ↗
adrian_b · · focus · HN ↗
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.