Skip to content

Von Neumann and Harvard Architecture

1.1.1 Structure and function of the processor · Paper 1 · 3 flashcards · 4 questions

Von Neumann Architecture

Definition
A computer architecture where both data and instructions are stored in the same memory and travel along the same bus.
Key Point
Von Neumann Bottleneck: Since data and instructions share the same bus, they cannot be fetched simultaneously. This creates a bottleneck that limits performance.

Harvard Architecture

Definition
A computer architecture with separate memory and buses for data and instructions, allowing both to be fetched simultaneously.

Von Neumann vs Harvard Comparison

FeatureVon NeumannHarvard
MemorySingle memory for data & instructionsSeparate memory for data & instructions
BusesShared data/instruction busSeparate data and instruction buses
FetchCannot fetch data & instruction simultaneouslyCan fetch data & instruction simultaneously
SpeedSlower (bottleneck)Faster (parallel fetching)
ComplexitySimpler, cheaperMore complex, expensive
UseGeneral-purpose computersDSPs, microcontrollers, embedded systems
Key Point
Modern CPUs use a hybrid approach: Harvard architecture for cache (separate L1 instruction and data caches) but Von Neumann for main memory.
Exam Tip
A common exam question asks you to compare Von Neumann and Harvard architectures. Always mention: separate/shared memory, the bottleneck, and simultaneous fetching.

Contemporary Processor Architecture

Definition
A contemporary processor keeps the Von Neumann stored-program model but adds features that are not part of the standard design, so that more instructions are completed in a given time.
FeatureHow it improves on the standard Von Neumann design
Harvard-style memorySeparate areas of memory for instructions and data, such as separate instruction and data caches, let an instruction and its data be fetched at the same time
PipeliningOne instruction is fetched while the previous one is decoded and the one before that is executed
CacheA small amount of very fast memory holds frequently used instructions and data, so the processor spends less time waiting for RAM
Multiple coresEach core is a separate processing unit that can fetch, decode and execute its own instructions
Exam Tip
A question on contemporary processors usually wants a feature and a description of it. Name the feature (pipelining), then say what it does (the next instruction is fetched while the current one is being decoded).