Talk:Von Neumann architecture

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing / CompSci / Hardware (Rated Start-class, Top-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Top  This article has been rated as Top-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computer science (marked as High-importance).
Taskforce icon
This article is supported by Computer hardware task force (marked as Top-importance).

a link to the von neumann machine[edit]

A link to the article should be added. —Preceding unsigned comment added by (talkcontribs) 06:43, 10 June 2004

Actually, that article should be merged into this one. -- uberpenguin 16:35, 12 December 2005 (UTC)
Done. -- 07:22, 15 March 2007 (UTC)

an original work of Von Neumann[edit]

IMHO the book or article, where Von Neumann architecture was introduced should be mentioned (with a link, if possible) —Preceding unsigned comment added by (talkcontribs) 03:08, 18 April 2005

There it is... You could have done it yourself, it only took two quick Google searches (one on "von neumann architecture eniac" to find the title and one on the title to find a PDF of the paper itself). -- RTC 21:54, 18 Apr 2005 (UTC)

Earliest dates for stored program computers[edit]

If anyone has more information for the dates about the earlies stored program computers, please include it. --Bubba73 05:49, 4 Jun 2005 (UTC)

Merge Proposal[edit]

'No: Von Neumann machine has a wider implication than Von Neumann Arcitecture. The latter is a article on the computer arcitecture concepts. That article it'self points out the the term "Von Neumann Machine" means more than the computer arcitecture.

Von Neumann Machines also applies to concepts in molecular nanotechnology and theoretical starship desings (see: Von Neumann Probe).

The article on "Von Neumann Machines" is not about computer architectures. Trying to include it in a page about computer arcitecture is akin to putting an article about McDonalds in an article about Cows.

—Preceding unsigned comment added by Beowulf314159 (talkcontribs) 12:52, 12 December 2005

Ehh... Well about half of the article on Von Neumann Machines IS about computer architecture. Honestly I've never heard of self-replicating machines being called "von Neumann machines," so I guess this is just my ignorance combined with a terribly referenced article... -- uberpenguin 20:01, 12 December 2005 (UTC)
I guess that makes us even - I'd never heard of the term Von Neumann machine being used to refer to a Turing machine before, and only thought of them in terms of self-replicating systems. Beowulf314159 21:14, 12 December 2005 (UTC)
My take: (1) Von Neumann architecture should remain more-or-less as-is, about the computer architecture. (2) The nanotech content of the current Von Neumann machine article should either be (2a) merged into one of the other nanotech articles (e.g., Molecular nanotechnology), or (2b) used to create an entirely new article (e.g., Von Neumann machine (nanotechnology)). I don't know much about nanotech and/or the "Von Neumann machine" aspect thereof, so I can't say which is more appropriate. If there is significant stuff specific to the "Von Neumann meachine" term, then a separate article makes sense. If "Von Neumann machine" is just an alternate name for "molecular nanotechnology machine", then I'd say merge. (3) The final Von Neumann machine page should be a standard disambiguation page. One dab target should be Von Neumann architecture. The other should be the article resulting from Step 2 above. See also Quuxplusone's comments at Talk:Von Neumann machine#Is this a dab page?. --DragonHawk 04:26, 13 December 2005 (UTC)
With a little digging and comparing, it appeared that the Von Neumann machine arcticle really was nothing more than a DAB page with material rolled into it from the pages that it pointed to - save for the comment someone had made about the propriety of attaching John von Neumann's name to the "Von Neuman architecture". That was easily added by mentioning it, and adding a link to the article on John von Neumann - where the issue is discussed.
There appear to be no specific article about molecular nanotechnology as Von Neumann machines, and the article about macroscopic self-replicating machines is covered in Clanking replicators and Von Neumann probes.
With a little care, the Von Neumann machine article could be scaled back to a dab page, citing both, discrete, uses of the term, and providing links to the various pages (Von Neumann architecture, John von Neumann, Clanking replicator, Molecular Nanotechnology, and Von Neumann probes) with little loss in information in the article. What information was taken out of the article is replicated already verbatim in the Von Neumann architecture page.
Beowulf314159 13:37, 13 December 2005 (UTC)
For the record, I just finished moving content out of von Neumann machine, and into von Neumann architecture and Self-replicating machine. von Neumann machine is now a proper dab page. --DragonHawk 00:50, 17 August 2006 (UTC)

Good job. Thanks! -- 01:27, 22 August 2006 (UTC)

Princeton architecture[edit]

Wikipedia:Redirect#What_needs_to_be_done_on_pages_that_are_targets_of_redirects.3F suggests

"Normally, we try to make sure that all "inbound redirects" are mentioned in the first couple of paragraphs of the article."

Therefore, since Princeton architecture is a redirect to Von Neumann architecture, we should mention "Princeton architecture" in first couple of paragraphs of this article.

I say "von Neumann architecture" when I try to emphasize the fact that the program is stored in memory, as well as all kinds of other important-to-understand facts.

I think I would prefer to say that a "von Neumann architecture" is an entire category of things -- everything that suffers from the "von Neumann bottleneck". In particular, both the "Princeton architecture" and the "Harvard architecture" are included in that category. Then a "Princeton architecture" is "a von Neumann architecture with a single memory". Also a "Harvard architecture" is "a von Neumann architecture with 2 memories, where the program is stored in one memory, and most of the data is stored in the other memory".

(I've also seen DSPs that have 3 or 4 different memories that could be read simultaneously -- would you also call those Harvard architectures, or is there another name for that?).

So we could have a section "types of von Neumann architectures", listing the Princeton architecture, the Harvard architecture, the Turing machine, ... any others?

On the other hand, some people seem to think that a "von Neumann architecture" and a "Princeton architecture" are identically the same thing. Then "Harvard architecture" is something a little bit different from that one thing. If we decide to go this way, then the intro paragraph should have a little parenthetical "(also called the Princeton architecture)" statement.

-- 01:27, 22 August 2006 (UTC)

Re: "Also a "Harvard architecture" is "a von Neumann architecture with 2 memories..."
In my understanding this is definitely NOT correct. One of the points of the original "von Neumann draft paper" discribing the architecture was to point out the advantages of using the same memory (i.e. 1 memory) so that instructions could be treated exactly like data. This is not typical of standard Harvard architecture machines (although some "modified Harvard architecture" machines do provide for access to the instruction memory as data). -- RTC 22:46, 23 August 2006 (UTC)
Yes, well, definitions change with time. Do you have a better name for "computer architectures that suffer from the von Neumann bottleneck" ?
Do you think that a "von Neumann architecture" and a "Princeton architecture" are identically the same thing? -- 05:14, 24 September 2006 (UTC)
I would respond to your second question: Yes, that "Princeton" and "von Neumann" *are* identical (except for colloquial usage). And I would respond to your first question: A better name for "computer architectures that suffer from the von Neumann bottleneck" is a "stored-program architecture", of which von Neumann (Princeton) and Harvard architectures are two examples.
This article's own definition of "von Neumann Architecture", as stated in the very first sentence, is:
"The von Neumann architecture is a computer design model that uses a processing unit and a single separate storage structure to hold both instructions and data."
That is synonymous with my understanding, and it is in direct contradiction with the definition of the Harvard architecture. I think the contradiction could be resolved in several different ways:
1) Make a clear demarkation within this article in two broad sections: The first section would deal with the unique features of a computer architecture in which both data and instructions share a single address space. This section would state early on that such an architecture is also known as the "Princeton architecture".
The second section would explicitly state that it is shifting gears to adopt a *different* definition of "von Neumann architecture", to mean "stored-program architecture", of which both the Harvard and Princeton architectures are special cases.
2) Focus this article entirely on the usage of the term "von Neumann" in reference to all stored-program computers in general (both Priceton and Harvard).
Filter out every mention of a single address space for both instructions and data, and place it an a separate article entitled "Princeton architecture". Place a re-direct or some other reference in this article pointing to the new "Princeton" article, with a short explanation of the ambiguity in terminology.
3) Focus this article entirely on the usage of the term "von Neumann" in reference specifially to an architecture in which instructions and data share a single address space. Mention that another word for this is "Princeton architecture".
Move everything about the characteristics of stored-program architectures in general so a separate "Stored-program architecture" article.
I think it is very important in an encyclopedic article to make every possible effort to avoid unnecessary ambiguities, or where such ambiguities are unavoidable, to explain the contradiction as completely as possible. Goosnarrggh (talk) 14:58, 29 May 2008 (UTC)

Call me dumb[edit]

...but doesn't this architecture describe the general structure of all computers used today? If so, could somebody put this rather significant observation in the intro? Thanks. ---Ransom (-- 18:44, 6 August 2007 (UTC))

Most computers these days DO present a von Neumann architecture model at the machine language level, although almost all are a hybrid of von Neumann and Harvard in the hardware level (e.g., separate Instruction and Data caches). Pure Harvard architectures are still common in microcontrollers and Digital Signal Processors because of their specialized purposes. Highly parallel computers can get hard to classify. -- RTC 22:11, 6 August 2007 (UTC)

Capitalization of "von" in "von Neumann architecture"[edit]

There seems to be continued confusion as to how to deal with the pesky "von" in this article. It is, of course, proper to lowercase the "V" in "von" when the word is used inter-sentence. However, various editors have taken their zeal a step too far by adding the {{lowercase}} template, making the title of the article "von Neumann architecture", or decapitalizing the "V" in "von" when it begins a section title or a sentence. This is no more proper than referring to the Steinbeck novel as of Mice and Men. Robert K S 13:40, 4 September 2007 (UTC)

"Von Neumann" is a proper name, used to signify the architecture. In engineering textbooks going back to 1982, "Von" is usually capitalized. In English writing style, when a person's name is assigned to the proper name of a thing, all words are capitalized, as in "The Da Vinci Project" and not the awkward "The da Vinci Project". The test is, does the usage aid or hinder understanding? Practically, when 'Von' is not capitalized as in "this machine is a von Neumann architecture", it raises questions to new readers as to the relevance of the word 'von' and whether or not 'von' is a typo. It is not useful that way and hinders understanding. Corwin8 (talk) 19:52, 15 August 2011 (UTC)
Let's say you're right; I also came to the page to fix this.. again commenting years later. Von Neumann (disambiguation) has other examples that use lower case.. comp.arch (talk) 01:10, 18 June 2014 (UTC)

Bottleneck section[edit]

The last paragraph of the section on the von Neumann bottleneck has some things that I find kind of confusing.


Backus's proposed solution has not had a major influence.
It doesn't say what his "proposed solution" is.


Modern functional programming and object-oriented programming are much less geared towards "pushing vast numbers of words back and forth" than earlier languages like Fortran, but internally, that is still what computers spend much of their time doing.
I'm not sure how the programming paradigm at all changes the "pushing words back and forth" situation. The programming language seems pretty peripheral to this. The "internally, ..." part recognizes this. But I think it should be stronger. Pretty much all the computer does is move words around.
But the introduction of more indirection and higher level code actually makes part of the problem as stated a lot worse, as the original quote says (emphasis added):
Thus programming is basically planning and detailing the enormous traffic of words through the von Neumann bottleneck, and much of that traffic concerns not significant data itself, but where to find it.
The part that I've bolded seems to be about indirection. I'd say that functional and object oriented languages make this a lot more true now, when everything ends up being a pointer to something on the heap... (talk) 16:45, 25 April 2008 (UTC)

"The performance problem is reduced by a cache between the CPU and the main memory . . . ." There's also Direct Memory Access (DMA), which takes those pointers and does large transfers quickly without involving the CPU or its cache at all. – (talk) 20:23, 27 April 2009 (UTC)

I think that, in this section, the sentence about overcoming the bottleneck with 'branch prediction' is questionable. Branch prediction was invented for overcoming stalls due to long processing pipelines. When a branch is detected late in the pipe it causes the subsequent instructions to be canceled. I see no connection with the Von Neumann bottleneck. Zack73 (talk) 16:50, 15 September 2008 (UTC)

Citation on article title[edit]

An editor has added a citation to the First Draft report after the words "von Neumann architecture" in the first sentence of the lead. The citation did not provide any explanation of what was being cited. I've reverted this change. In general citations should follow complete sentences (i.e. subject-verb combinations), as only complete sentences present facts that are verifiable ("He did this" deserves sourcing but putting a citation on "he" alone doesn't make sense). A citation attached to an instance of a term (in this case "von Neumann architecture") should preferably only be used as a citation for the usage or origin of the term itself. (For instance, in the ENIAC article, some edits repeatedly altered the expansion of the acronym, so the meaning of the word "ENIAC" itself deserved sourcing to an authority.) The First Draft does not use the term "von Neumann architecture" so it's rather inappropriate here. I have no problem with the First Draft being mentioned somewhere in the lead. I just have a problem with it being stuffed into the first sentence sans explanation. That's not good article writing. Robert K S (talk) 18:37, 31 July 2008 (UTC)

I would support what Robert K S has done, although there can be a case for citations mid-sentance. It seems to me that it is important to distinguish between the First Draft document and the phrase Von Neumann architecture which subsequently arose from it. Alan Turing's 1945 design of the ACE (Automatic Computing Engine) in his paper Proposed Electronic Calculator (delivered to the Executive Committee of the UK National Physical Laboratory in February 1946) conforms, in all important respects, to what later became known as the von Neumann Architecture. As Jack Copeland has pointed out, Turing's was a relatively complete specification of a stored-program digital computer, whereas the First Draft was much more abstract and was said by Harry Huskey, who drew up the first designs of EDVAC, to be of no help to him.[1] TedColes (talk) 16:10, 2 August 2008 (UTC)


  1. ^ Copeland, Jack (2006), "Colossus and the Rise of the Modern Computer", in Copeland, B. Jack, Colossus: The Secrets of Bletchley Park's Codebreaking Computers, Oxford: Oxford University Press, p. 108, ISBN 978-0-19-284055-4 

"implements a Turing machine"[edit]

It implements a register machine, not a Turing machine, which is Turing-equivalent. (Where's the tape? Where's the alphabet and states?) —Preceding unsigned comment added by (talk) 04:59, 8 October 2008 (UTC)


This article reads like this was a one off architecture only used in the 40s. Their should be mention (though with improvements) is still the basis base for most most modern computer architecture since then. —Preceding unsigned comment added by (talk) 20:53, 28 January 2009 (UTC)

please correct the diagram[edit]

Colleagues, I'd like to point out that in the von Neuman's scheme, Control Unit never writes to memory! It can only read (commands). The only way to change a memory slot's contents is to copy the accumulator to the slot, so it is ALU, not CU, who actually writes the memory. Please correct the diagram, I've got no time now to do so. Thanks! DrCroco (talk) 10:57, 20 April 2009 (UTC)

I'ld fix it but I don't know how. It is wrong and it bothers me too. (talk) 05:05, 28 November 2009 (UTC)

I think this is confusing, too. The only explanation that occurs to me is that the author of the diagram wanted the arrow from Memory to Control Unit to represent the transfer of instructions, with the arrow in the opposite direction representing "orders for CC to transfer its own connection with M to a different point in M, with the purpose of getting its next order from there;" as von Neumann puts it.

Right, in modern terms this would be the address bus, not the data bus that comes from the control, to specify the next instruction. At least explain in text, but the diagram needs to not get too busy. Actually the diagram was taken out now; see comments below. W Nowicki (talk) 17:08, 26 May 2011 (UTC)

Early von Neumann-architecture computers[edit]

This article says that 'The terms "von Neumann architecture" and "stored-program computer" are generally used interchangeably, and that usage is followed in this article'. Yet we have two headings of 'Early von Neumann-architecture computers' and 'Early stored-program computers'. Would it not be more sensible to merge these two, and perhaps limit the list to machines brought into use before 1955? --TedColes (talk) 17:12, 10 June 2009 (UTC)

Influence that the von Neumann Architecture may have had historically[edit]

I lecture in Computer Science and particularly Operating Systems -- while updating a tutorial on security, this thought ocurred.

Adding what I believe may be a relevant observation. When considering the problem of buffer overflow exploits, it is precisely the shared instructions and data from the von Neumann model that contributes to the viability of this exploit. I submit that the vision of computer memory as shared between code and data may have been a factor in why the Multix architecture with an execute permission bit took so long to be accepted. OK, it's obvious now that memory can be shared between data and instructions wilst being dedicated to either one or the other at any moment in time, but did the perceived requirements of the model blind people to the possibility?

WRT to Multix, the papers are Karger and Schell [1974] and Karger and Schell [2002] one of the points that they made was that, had the Multix design been adopted generally, the buffer overflow attacks that characterised the late 1990s would not have been possible. (talk) 04:49, 15 October 2009 (UTC)

Obvious question is what is Multix? There was an important operating system named Multics and one called Unix. Do you mean one of these or both? Page protect bits seem an aspect of the hardware, although in Multics' case it was intertwined since it was before the idea of a portable operating system. But you do have a point that the security downside of treating instructions as data should be discussed. W Nowicki (talk) 17:08, 26 May 2011 (UTC)

How is sequential architecture related to SingleInstructionSingleData[edit]

What does the amount of data an instruction processes or the number of operands have to do with sequential architecture in the opening paragraph? DGerman (talk) 20:38, 15 October 2009 (UTC)

Vast majority of computers?[edit]

In the vast majority of modern computers, the same memory is used for both data and program instructions.

Is this really true? The vast majority of modern computers are probably some kind of embedded computers. Embedded quite often uses Flash or (E)EPROM for program storage, and a separate very small RAM for data. (talk) 05:49, 23 May 2010 (UTC)

Many microcontrollers indeed have a Harvard architecture [1]. I don't know if that invalidates the statement though. Tijfo098 (talk) 13:15, 18 May 2011 (UTC)
Maybe qualify by saying "most general-purpose computers", since indeed more and more embedded electronics devices include one more multiple simple programmed controllers. W Nowicki (talk) 17:08, 26 May 2011 (UTC)

Stored-program computer[edit]

For information, Stored-program computer, which was formerly redirected to this article, has been (re-)created. Maybe an expert could determine whether there is sufficient distinction to warrant a separate article. Dave.Dunford (talk) 15:32, 10 November 2010 (UTC)

Yes, seems to be enough material to support two, but then the statement that this article uses the two terms interchangeably seems very out of place and should be removed. Instead try to summarize the distinction. W Nowicki (talk) 17:08, 26 May 2011 (UTC)


Schematic of the von Neumann architecture. The Control Unit and Arithmetic Logic Unit form the main components of the Central Processing Unit (CPU)

Von Neumann architecture can mean two related, although different things. I can mean (broadly) mead "stored-program computer" with a unified store for programs and data as this article defines it (as opposed to Harvard architecture), see [2] [3] for RS, but it can also more narrowly refer to some specific way to interconnect the CPU/memory/IO as was done in the EDVAC and IAS [4] [5]. The IBM 7094 for instance has a Von Neumann architecture in the first sense, but not in the 2nd one, having a multiplexer and I/O channels. [6]. The picture to the right is suitable illustration for the 2nd sense, but not the first, which can have pretty much any interconnect. Finally VN architecture can have third sense, derived from the 2nd: a certain primitive instruction set architecture, e.g. having no index registers [7]. Tijfo098 (talk) 13:04, 18 May 2011 (UTC)

Yes good points, and the article needs to clarify and distinguish between related articles. There already is a disambig page Von Neumann machine, to which I would add IAS machine to the list, since that was often called the "von Neuman machine" too. Actually the IAS machine article has a list of similar machines, so perhaps we could point to that as the article on roughly your third case: the series of machines in that era having a similar architecture. We definitely need to have at least one diagram in the article; perhaps say "example of a von Neuman architecture" or something like that? Another idea would be to add one or more additional diagrams of related organizations. How about system bus for example? W Nowicki (talk) 17:08, 26 May 2011 (UTC)

suggest split: von Neumann bottleneck[edit]

The von Neumann bottleneck article is currently a redirect to von Neumann architecture. I suggest that we WP:SPLIT out the "Von Neumann bottleneck" section of this article into a full article of its own, leaving behind a WP:SUMMARY. (Later, we could move bottleneck-related text in the random-access memory article to that "Von Neumann bottleneck" article). Should the new article discussing this bottleneck be titled "Von Neumann bottleneck", or would some other title ("memory bottleneck", etc.) be better? --DavidCary (talk) 11:52, 3 August 2011 (UTC)

I second this proposal. I feel the name should remain "Von Neumann Bottleneck" to honour John Backus's original article where he says,

"I propose to call this tube the von Neumann bottleneck." doi:10.1145/359576.359579

p.r.newman (talk) 14:29, 16 April 2012 (UTC)
Such a split would be an excellent idea. They really are different things with similar names. It needs to be titled Von Neumann bottleneck because that's the name most people use when referring to it. We should also add a "not to be confused with Von Neumann architecture" note to is and a "not to be confused with Von Neumann bottleneck" note to this article. --Guy Macon (talk) 15:48, 16 April 2012 (UTC)

'Early von Neumann-architecture computers' and 'Early stored-program computers'[edit]

Why are there these two different sections? Also the section 'Non-von Neumann processors' says the fist of these dates from 1986. This is confusing as earlier in the article, von Neumann architecture is contrasted with Harvard architecture, implying that Harvard architecture is a non-von Neumann architecture. Clarification is needed. --TedColes (talk) 17:48, 25 August 2011 (UTC)

Book: "Nucleus of the Digital Age"[edit]

Here's a very good review of the book Turing's Cathedral by George Dyson (Pantheon), describing the history of the von Neumann architecture: 

 |title=The Nucleus of the Digital Age
 |author=Konstantin Kakeas
 |publisher=[[The Wall Street Journal]]

At some point, I'd like to find one or two places to work it into the article. — Loadmaster (talk) 16:23, 8 March 2012 (UTC)

Article problem[edit]

The discussion of what exactly a Von Neumann computer does seems to not have much to do with the title of this article, Von Neumann architecture -- that is, a CPU with Harvard architecture does exactly the same things. Tempshill 19:57, 15 Nov 2003 (UTC)

That is because most people use "von Neumann architecture" to refer to a wider class of architectures which includes the Harvard architecture and other similar CPU+RAM architectures.
Random examples:
The von Neumann Architecture of Computer Systems
Non von Neumann Architectures
The article is currently mistakenly focusing on a very narrow definition of von Neumann architecture, which is typically only used when explicitly contrasting with the Harvard architecture.
Similarly, the term "von Neumann bottleneck" usually has nothing to do with the bus, and everything to do with the inefficiency of the overall CPU+RAM organization. For example, cellular automata can sort N numbers in O(N) time, but a machine with a von Neumann bottleneck will require O(N log N) time. Matt Cook (talk) 02:17, 16 April 2012 (UTC)
Those are two poorly written articles. They encourage (as here) a fallacy of the excluded middle because they set up a false dichotomy between Von Neumann machines and massively parallel non-CPU machines. This is wrong on two counts.
Simply, there are three architectures at question here, not two. Von Neumann, Harvard (and Modified), then non-CPU architectures where the processing isn't carried out by any "central" processor. The two articles cited set up a contrast between the first and third, but they don't mention the second at all. Their implied comparison is between the CPU and non-CPU groups, which (as you rightly note) places the Harvard group alongside the Von Neumann group. Yet this isn't a claim that Harvard is Von Neumann, it's simply failing to identify or describe Harvard as a group at all.
Secondly, the Von Neumann / Harvard distinction is a matter of bus, not processor, and is orthogonal to the single CPU / massively multiple CPU distinction. Choosing single/multiple/massively multiple processors is a separate decision to how to interconnect them. In particular, high multiple processor architectures also tend towards the Harvard approach of separated buses (because it's just easier) rather than shared Von Neumann buses. So in contrast to your assumption here, the Harvards in these two refs are closer to the multiple CPUs than they are to the Von Neumanns.
Finally there's the issue that Von Neumann is well-defined (and as the narrow interpretation, contra to Harvard) and has been so for decades before these two quite minor papers. Andy Dingley (talk) 09:41, 16 April 2012 (UTC)


Babbage's work isn't mentioned anywhere in the article, his name only comes up "accidentally" in a quote about Neumann "He might well be called the midwife, perhaps, but he firmly emphasized to me, and to others I am sure, that the fundamental conception is owing to Turing— in so far as not anticipated by Babbage ... "
A bit ironic that a section detailing "who knew what and published when" between 1935 to 1937 fails to mention that Babbage described his analytical engine 100 years earlier. Ssscienccce (talk) 09:18, 1 September 2012 (UTC)

The "fundamental conception" is the notion of storing instructions in the same memory as data, so that a program can load or create new code to then execute (which, admittedly, is also possible if you have a (modified?) Harvard architecture machine that includes instructions to write to the instruction memory). The analytical engine as described by Babbage, as far as I know, would not have supported that, so, unless there's a paper in which Babbage did discuss that concept, the fundamental concept of a von Neumann architecture machine was, in fact, not anticipated by Babbage. Guy Harris (talk) 18:06, 1 September 2012 (UTC)
From [ ]:
"Charles Babbage's 1840s Analytical Engine ... didn't incorporate the vital idea which is now exploited by the computer in the modern sense, the idea of storing programs in the same form as data and intermediate working. His machine was designed to store programs on cards, while the working was to be done by mechanical cogs and wheels. There were other differences — he did not have electronics or even electricity, and he still thought in base-10 arithmetic. But more fundamental is the rigid separation of instructions and data in Babbage's thought."
An interesting side note: being able to move information between code and data is so useful (and it is so easy to add) that pretty much every modern Harvard architecture machine incorporates some way to do it, thus making them modified Harvard architecture machines. That being said, none of them have the main disadvantage of a pure Von Neumann architecture, which is that you cannot access code and data simultaneously. Of course you really can if your system has separate code and data cache, so the differences are pretty much irrelevant for CPUs other than microcontrollers and antiques. --Guy Macon (talk) 20:10, 1 September 2012 (UTC)


This new paragraph does not state what the "misnomer" is, presumably the claim that von Neumann was "the father of the computer". It is also rather abrupt in tone an not in line with the later quotation in which Stanley Frankel said "I am sure that he would never have made that mistake himself. He might well be called the midwife, perhaps, but he firmly emphasized to me, and to others I am sure, that the fundamental conception is owing to Turing— in so far as not anticipated by Babbage ... " --TedColes (talk) 17:26, 22 December 2013 (UTC)

Eckert-Mauchly-Von Neumann architecture?[edit]

Regarding this edit, I would like to discuss the proposed change from "Von Neumann architecture" to "Eckert-Mauchly-Von Neumann architecture". as I wrote in my edit comment, I am not going to reject the idea out of hand, but we need more than one paper by Mark Burgess before we make such a controversial change, so I am opening up a discussion about it per WP:BRD. --Guy Macon (talk) 04:52, 20 January 2014 (UTC)

"This edit" was an attempt to 1) clean up the previous edits by User:Computernerd354 and 2) at least provide a reference for the use of "Eckert" with the architecture. If we need more than one paper by Burgess before we make said change, we need to back out all the "Eckert architecture"/"Eckert-Mauchly architecture" stuff, which I just did. Guy Harris (talk) 06:52, 20 January 2014 (UTC)
No need for angry-sounding edit summaries. I saw an edit, determined that the source wasn't good enough to support the edit, and reverted it. There is no requirement that I fix any other problems in the article. I would have fixed those edits had I noticed them, but they slipped by me. Your new version is a big improvement, BTW. --Guy Macon (talk) 07:39, 21 January 2014 (UTC)

Harvard architecture "more modern" than von Neumann architecture?[edit]

The machine that inspired the use of the term "Harvard architecture", the Harvard Mark I, first ran in 1944; the First Draft of a Report on the EDVAC by von Neumann, which inspired the use of the term "von Neumann architecture", was published in 1945.

In what fashion is the Harvard architecture "more modern than" the von Neumann architecture? Processors in which there are separate level 1 instruction and data caches, and separate data and address lines to those caches, are a relatively modern development, but that's, at best, a modified Harvard architecture, and arguably is better called a "split cache architecture", with the only difference between it and a von Neumann architecture being, at most, a requirement to flush the instruction cache following a store operation that modifies an in-memory instruction (and split-cache x86 processors, due to backwards-compatibility requirements, don't even need that). Guy Harris (talk) 08:03, 9 November 2014 (UTC)

And Turing's report on the Automatic Computing Engine also dates to 1945. Guy Harris (talk) 09:38, 9 November 2014 (UTC)

Was ENIAC a von Neumann-architecture computer?[edit]

At least two IP addresses have added ENIAC to the list of von Neumann architecture computers. According to the article for ENIAC, it was originally programmed with switches and cables (not von Neumann. Then the ability to put programs into the function table, which was a set of switches (read-only by the machine) was added; that would make it a Harvard architecture machine, not a von Neumann architecture machine. That was described in A Logical Coding System Applied to the ENIAC (Electronic Numerical Integrator and Computer) from 1948. Then a core memory was added in 1953; I don't know whether words from that memory could control the operation of the machine or not, but, even if it did, that wouldn't make ENIAC a von Neumann architecture machine until 1953. Guy Harris (talk) 05:45, 10 April 2015 (UTC)

I believe that you are correct. The 1945 ENIAC wasn't a stored program computer of any kind.; it was programmed with knobs and plugboards.[8][9] The 1948 ENIAC was a stored-program computer using read-only memory -- a Harvard architecture.[10]
(Unrelated but interesting:[11][12][13])
As for the 1953 ENIAC, does anyone have access to A static magnetic memory system for the ENIAC (ACM '52 Proceedings of the 1952 ACM national meeting (Pittsburgh) Pages 213-222 ACM New York, NY, USA ©1952 doi 10.1145/609784.609813)?[14] --Guy Macon (talk) 10:48, 10 April 2015 (UTC)
Yes, I just bought it. The article says "At present the ENIAC has only 20 words of internal memory, in the form of electronic accumulators. This small memory capacity limits the size of the problem that can be programmed without repeated reference to the external punched-card memory." (which is in the summary that you can get for free), which seems to suggest that it's additional data memory. In section IV "The Memory System for the ENIAC" it says that one of the requirements is "that the control signals used in the memory be derived from the standard control pulses in the ENIAC", which suggests that it didn't itself generate control signals, i.e. it couldn't contain code.
Article such as this one from 1961 seem don't speak of the core memory as a particularly significant change, unlike the description of the function table read-only code memory:
Programming new problems meant weeks of checking and set-up time, for the ENIAC was designed as a general-purpose computer with logical changes provided by plug-and-socket connections between accumulators, function tables, and input-output units. However, the ENIAC's primary area of application was ballistics--mainly the differential equations of motion.
In view of this, the ENIAC was converted into an internally stored fixed-program computer when the late Dr. John von Neumann of the Institute for Advanced Study at Princeton suggested that code selection be made by means of switches so that cable connections could remain fixed for most standard trajectory problems. After that, considerable time was saved when problems were changed.
The ENIAC performed arithmetic and transfer operations simultaneously. Concurrent operation caused programming difficulties. A converter code was devised to enable serial operation. Each function table, as a result of these changes, became available for the storage of 600 two-decimal digit instructions.
Those revolutionary modifications, installed early in 1948, converted ENIAC into a serial instruction execution machine with internal parallel transfer of decimal information. The original pluggable connections came to be regarded as permanent wiring by most BRL personnel.
so I suspect the machine remained a Harvard architecture machine after the core memory was added. Guy Harris (talk) 18:29, 10 April 2015 (UTC)