Von Neumann architectures are computer architectures that use the same storage device for both instructions and data (in contrast to the Harvard architecture). The term originated from First Draft of a Report on the EDVAC (1945), a paper written by the famous mathematician John von Neumann, that proposed the stored program concept. The paper was written in connection with plans for a successor machine to the ENIAC and its concepts were discussed by J. Presper Eckert, John Mauchly, Arthur Burks, and others over a period of several months prior to Von Neumann writing the draft report.

A von Neumann Architecture computer has five parts: an arithmetic-logic unit, a control unit, a memory, some form of input/output and a bus that provides a data path between these parts.

A von Neumann architecture computer performs or emulates the following sequence of steps:

  1. Fetch the next instruction from memory at the address in the program counter.
  2. Add the length of the instruction to the program counter.
  3. Decode the instruction using the control unit. The control unit commands the rest of the computer to perform some operation. The instruction may change the address in the program counter, permitting repetitive operations. The instruction may also change the program counter only if some arithmetic condition is true, giving the effect of a decision, which can be calculated to any degree of complexity by the preceding arithmetic and logic.
  4. Go back to step 1.

Very few computers have a pure von Neumann architecture. Most computers add another step to check for interrupts, electronic events that could occur at any time. An interrupt resembles the ring of a telephone, calling a person away from some lengthy task. Interrupts let a computer do other things while it waits for events.

Von Neumann computers spend a lot of time moving data to and from the memory, and this slows the computer (this problem is called von Neumann bottleneck ) So, engineers often separate the bus into two or more busses, usually one for instructions, and the other for data.

Stored-program computer

Stored-program computer is term similar to but not synonymous to with the term Von-Neumann Architecture. In a computer of this type programs are stored and executed in main memory -- often but not always after having been loaded in from some storage mechanism.

Although this term was often used in computing literature until the 1960s and 1970s it is now rare as it is assumed that all computers are of this type unless stated otherwise.