Von Neumann CPU
The von Neumann architecture stores program instructions and data in the same memory, fetched and executed in a repeating cycle.
The stored-program idea
The defining feature of the von Neumann architecture is that instructions and data live in one shared memory. A program is just data that the processor interprets as instructions. This lets programs be loaded, modified, and treated uniformly, and is the basis of nearly all general-purpose computers.
The main parts
A von Neumann machine has a memory, a processing unit containing the ALU and registers, a control unit, and connections to input and output. The processing unit and control unit together form the CPU, linked to memory by a bus.
The fetch-decode-execute cycle
The CPU repeats a cycle: fetch the instruction at the program counter's address, decode it to determine the operation and operands, execute it in the datapath, and update the program counter. This loop runs continuously while the machine is powered.
The von Neumann bottleneck
Because instructions and data share one memory and one path to it, the CPU cannot fetch an instruction and a data word at the same time over that path. This shared channel limits throughput, a limitation known as the von Neumann bottleneck. Caches and separate instruction and data paths mitigate it.
Contrast with Harvard
The Harvard architecture uses separate memories for instructions and data, allowing simultaneous access. Many modern chips are von Neumann at the system level but Harvard-like inside, with split instruction and data caches.