The "Von Neumann Architecture" Most computers use the stored-program concept designed by Hungarian mathematician John Von Neumann. In it, you store programs and data in a slowto-access storage medium (such as a hard disk) and work on them in a fastaccess, volatile storage medium (RAM). This concept, however, has an attendant bottleneck: it was designed to process instructions one after the other instead of using faster parallel processing. 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 1 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. So, engineers often separate the bus into two or more busses, usually one for instructions, and the other for data.