CSS Optional β Paper-II, Section-A Β· Chapter 7 Β· π Explicitly flagged in your textbook as asked in CSS 2017
The distinction is about one design decision: should instructions and data share the same memory and the same pathway to the CPU, or should they be kept separate?
β οΈ A note on the topic title. Your textbook prints "Non-Neumann," but the correct term is Von Neumann, named after mathematician John von Neumann, who described the stored-program architecture in his 1945 First Draft of a Report on the EDVAC. Use "Von Neumann" in the exam.
graph TD
subgraph VN["Von Neumann"]
VNC["CPU"] <--> VNB["Single Shared Bus"]
VNB <--> VNM["Unified Memory<br>Instructions + Data"]
end
subgraph HV["Harvard"]
HVC["CPU"] <--> HIB["Instruction Bus"]
HVC <--> HDB["Data Bus"]
HIB <--> HIM["Instruction Memory"]
HDB <--> HDM["Data Memory"]
end
Core idea β the stored-program concept: instructions and data are both stored in the same memory, in the same format, reachable over the same bus.
This was revolutionary. Earlier machines like ENIAC were rewired physically to change their program, taking days. Storing the program as data meant a machine could be reprogrammed in seconds β and, crucially, a program could treat another program as data, which makes compilers, assemblers, and operating systems possible.
Five classical components:
(Control Unit + ALU + registers together form the CPU.)
Because there is only one bus between CPU and memory, the processor cannot fetch an instruction and read/write data in the same cycle β the two operations must be serialised.
As CPU speeds grew far faster than memory speeds, this shared pathway became the dominant limit on performance. The term was coined by John Backus in his 1977 Turing Award lecture. The entire memory-hierarchy apparatus β see Cache Memory β exists largely to mitigate this bottleneck.
A second consequence worth mentioning: because instructions and data are indistinguishable in memory, a bug or attack that overwrites data can also overwrite executable code. This is the architectural root of buffer-overflow exploits β a good security-flavoured point for an essay-style answer.