BY YUROU L.W.
Von Neumann’s Visualisation of a Concept: His Architecture
The Von Neumann architecture is a computer model, proposed by John von Neumann – a
Hungarian American mathematician and physicist – that functioned based on the stored
program concept. The stored program concept is the idea that instructions and data (that may
be used to execute an instruction) are stored in the same memory.
John Von Neumann next to a computer, 1952
Hitches with Switches: Problems with Early Computing
The Von Neumann architecture was revolutionary for its time. Before the creation of this
model, all computers were specialised machines, meaning that they only performed one
specific task. In general, they used separate systems for storing data and for storing
instructions. This meant that circuitry was complex, and maintaining and altering the
computer was complicated.
For the computer to perform a different task, it had to be manually reprogrammed, data had to
be fed into the machine through punch cards or switches.
These issues with the previous computer model in general, meant that computers had little to
no potential for the general public’s use. Up until then, computers were only used by
professionals such as mathematicians or cryptographers, only professionals that had sufficient
technical backgrounds to understand how to operate these intricate machines.
Of course, the idea of the computer itself was very new at the time, and it was unlikely for
such a new invention with military purposes to be on the market already. However, the
prospects of computers becoming how we know them today seemed far-fetched. The fact that
each machine was specialised for a particular task meant that – in an alternate universe,
where the case is so – the evolution of computers be sluggish, in comparison to our reality.
Each specialised machine had to be developed in its separate classification as each had its
own designs and operational principles.
Well-known computers before the Von Neumann architecture included the Colossus, a machine
designed for codebreaking during World War 2; the Harvard Mark I, a machine designed for
performing complex calculations for scientific and military purposes; and the ENIAC, a
machine designed for performing complex calculations for scientific and military purposes. (Von Neumann would later improve the latter two machines, adapting them to the stored
program concept).
The Colossus, the punched paper tray can be seen next to it
The Difference and The Significance
In 1945 came the foundation of how we know computers today. The Von Neumann
architecture gave way to the spread of general-purpose computers, that can perform a wide
variety of tasks, different from the typical computer models up until then. The stored program
concept meant that the computer could simply change the data stored in memory to perform
another task, without needing to change hardware. This is because all data are stored in the
same place, where the computer can easily modify or replace data.
As such, debugging also became much easier. Debugging a program on the older computers
would have taken weeks and was labour-intensive as the machine would have to be rewired
and rebuilt. Whereas for computers using the stored program concept, the program data could
be simply changed electronically.
Despite its remarkable capabilities, the Von Neumann architecture has a relatively simple
design, which makes it easy to implement into all kinds of devices.
The use of a central processing unit (CPU) provided centralised control, unlike previous
models, this allowed for better resource management as only the CPU distributes tasks, more
consistent results as the whole system functions under the same rules, and more efficient
communication as the CPU is responsible for all communications so there were no
unnecessary communication lines.
Additionally, the Von Neumann architecture advanced standardisation in computer science
by popularising the idea of a conceptual model, each component being a modular
(independent-created) system. His work does not specify specific components, but rather a
collection of pieces that work to perform the function of the abstract component: a
framework. Standardisation allowed for greater flexibility – a system could easily adapt to
new technologies – and for innovation at a faster rate as organisations can collaborate on
research based on a standard.
Some of the first computers based on the Von Neumann architecture include the APEXC
computer series, the Manchester baby, and even the ENIAC.
The Manchester Baby, built 1948
A Simple Explanation of the “Simple” Architecture
A diagram of the Von Neumann architecture
The basic archetype of the Von Neumann architecture consists of:
–Central processing unit contains the control unit and the ALU (Arithmetic/Logic
Unit), responsible for running the fetch-decode-execute cycle
–Memory: stores data of the currently running program and process
–External storage: for long-term storage of data
–Input and output devices receives data from external sources and returns results
–System buses: they connect the different components and transfer data around the
system.
The Von Neumann architecture follows a process called the fetch-decode-execute cycle.
Essentially, instructions are processed sequentially: instructions are fetched from memory;
instructions are decoded by the control unit; instructions are executed by different
components depending on the content of the instruction, managed by the control unit.
Not a Perfect Model
The Von Neumann architecture had many flaws. One was the Von Neumann bottleneck. It
was the problem caused by a shared bus between the program and data memory. The bus
could only fetch from one of them at once, which limited the rate of data transfer which in
turn meant that the system would struggle with processing instructions simultaneously.
Another flaw was that code could be accidentally or maliciously modified, which would
damage or destroy the program, leading to a crash. This is attributed to ease of access to the
unified memory. Moreover, a unified memory complicates memory management as two
classes of data are stored together.
To this Day: Its Influence
In essence, the Von Neumann architecture brought about the modernisation of computers,
with the shift to using electronic memory rather than physical switches. To this day, most CPUs still follow the Von Neumann architecture, though with some alterations and combinations with other computer architectures as there were imperfections in the model, as well as the ever-increasing demand for better-performing machines. The fundamentals remain, nevertheless, the same.
An example of alterations to the functioning of computers is the use of out-of-order execution (dynamic execution). The computer executes instructions (such as operations) in a
more efficient order as resources free up. However, the results of the executions are still
committed (e.g. written to registers or memory) in the original order, thus appearing as if
the program was executed in order. The fundamentals remained the same: instructions still
appear to have been executed in sequential order.
Another example is the modified Harvard architecture, which is the product of merging the
Harvard architecture and the Von Neumann architecture. It follows most principles of the
Von Neumann model but uses separate spaces in the memory for instruction and data, as well
as separate buses. However, it still uses a CPU and the fetch-decode-execute cycle.
With time, computers are bound to continually change to adapt to the public’s demand. The
capabilities of these high-performance machines seem limitless. Having superhuman
mathematical processing powers that enabled our society to transform into its present state, it
is incredible how they are still fundamentally based on a model that is approaching its
centenary.
Modern general-purpose computer systems
Sources:
Wikipedia Contributors (2019). Von Neumann architecture. [online] Wikipedia. Available at:
https://en.wikipedia.org/wiki/Von_Neumann_architecture.
Wikipedia Contributors (2019). Instruction cycle. [online] Wikipedia. Available at:
https://en.wikipedia.org/wiki/Instruction_cycle.
Wikipedia Contributors (2019). Colossus computer. [online] Wikipedia. Available at:
https://en.wikipedia.org/wiki/Colossus_computer.
Wikipedia Contributors (2019). ENIAC. [online] Wikipedia. Available at:
https://en.wikipedia.org/wiki/ENIAC.
Wikipedia. (2023). Stored-program computer. [online] Available at:
https://en.wikipedia.org/wiki/Stored-program_computer.
Wikipedia. (2021). Out-of-order execution. [online] Available at:
https://en.wikipedia.org/wiki/Out-of-order_execution.
StudySmarter UK. (n.d.). Von Neumann Architecture: Meaning, Examples & Features.
[online] Available at: https://www.studysmarter.co.uk/explanations/computerscience/computer-organisation-and-architecture/von-neumann-architecture/.
Www.tme.eu. (2023). The Von Neumann architecture and the Harvard architecture. [online]
Available at: https://www.tme.eu/en/news/library-articles/page/56104/the-von-neumannarchitecture-and-the-harvard-architecture/ [Accessed 10 Aug. 2024].
Quora. (2019). How did von Neumann architecture change computing? [online] Available at:
https://www.quora.com/How-did-von-Neumann-architecture-change-computing [Accessed
10 Aug. 2024].
iannuttall (2018). Von Neumann Architecture. [online] Teach Computer Science. Available
at: https://teachcomputerscience.com/von-neumann-architecture/.
Super User. (n.d.). Are Modern Computers based on Von Neumann Model? [online]
Available at: https://superuser.com/questions/816567/are-modern-computers-based-on-vonneumann-model.
No Bugs” Hare (2015). Modified Harvard Architecture: Clarifying Confusion – IT Hare on
Soft.ware. [online] IT Hare on Soft.ware. Available at: http://ithare.com/modified-harvardarchitecture-clarifying-confusion/ [Accessed 10 Aug. 2024].
courses.cs.washington.edu. (n.d.). CSE 490H History Exhibit. [online] Available at:
https://courses.cs.washington.edu/courses/cse490h1/19wi/exhibit/john-von-neumann-1.html.
Computer Science Stack Exchange. (n.d.). memory hardware – Why do we still use a Von
Neumann Architecture in modern computers? [online] Available at:
https://cs.stackexchange.com/questions/107277/why-do-we-still-use-a-von-neumannarchitecture-in-modern-computers.