Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Von Neumann Architecture

1
Table of Contents

1.1 Introduction ............................................................................................................................ 3

1.2 History ..................................................................................................................................... 3

1.2.1 Von Neumann Architecture ................................................................................................... 4

1.2.2 Features of Von Neumann Architecture ................................................................................. 4

1.2.2.1 Problems of Von Neumann Architecture .............................................................................. 5

1.2.2.2 Evolution ................................................................................................................................ 7

1.2.2.3 Reference ............................................................................................................................... 7

2
3

1.0 Introduction
Any discussion of computer architectures, of
how computers and computer systems are organized,
designed, and implemented, inevitably makes
reference to the "von Neumann architecture" as a
basis for comparison. And of course this is so, since
virtual y every electronic computer ever built has been
rooted in this architecture. The name applied to it
comes from John von Neumann, who as author of two
papers in 1945 and coauthor of a third paper in 1946
was the first to spell out the requirements for a
general purpose electronic computer. The 1946 paper
was titled "Preliminary Discussion of the Logical Design
of an Electronic Computing Instrument," and the ideas
in it were to have a profound impact on the
subsequent development of such machines.

2.0 History
The earliest computing machines had fixed programs. Some very simple computers still use this
design, either for simplicity or training purposes. For example, a desk calculator (in principle) is a fixed
program computer. It can do basic mathematics, but it cannot be used as a word processor or a
gaming console. Changing the program of a fixed-program machine requires rewiring, restructuring, or
redesigning the machine. The earliest computers were not so much "programmed" as they were
"designed". "Reprogramming", when it was possible at al , was a laborious process, starting with
flowcharts and paper notes, fol owed by detailed engineering designs, and then the often- arduous
process of physical y rewiring and rebuilding the machine. It could take three weeks to set up a program
on ENIAC and get it working.

Von Neumann's design led eventual y to the construction of the EDVAC computer in 1952. However,
the first computer of this type to be actual y constructed and operated was the Manchester Mark I,
designed and built at Manchester University in England .It ran its first program in 1948, executing it
out of its 96 word memory. It executed an instruction in 1.2 mil iseconds, which must have seemed
phenomenal at the time. Using today's popular "MIPS" terminology (mil ions of instructions per
second), it would be rated at .00083 MIPS. By contrast, some current supercomputers are rated
at in excess of 1000 MIPS. And yet, these computers, such as the Cray systems and the Control
Data Cyber 200 models, are still tied to the von Neumann architecture to a large extent.
Von Neumann begins his "Preliminary Discussion" with a broad description of the general-purpose
computing machine containing four main "organs." These are identified as relating to arithmetic,
memory, control, and connection with the human operator. In other words, the arithmetic logic unit,
the control unit, the memory, and the input-output devices that we see in the classical model of
what a computer "looks like."

3
4

3.0 Von Neumann architecture


The Von Neumann architecture is a computer architecture based on that described in 1945 by
the mathematician and physicist John von Neumann and others in the First Draft of a Report on the
EDVAC. This describes a design architecture for an electronic digital computer with parts consisting of a
processing unit containing an arithmetic logic unit and processor registers, a control unit containing an
instruction register and program counter, a memory to store both data and instructions, external mass
storage, and input and output mechanisms. The meaning has evolved to be any stored-program
computer in which an instruction fetch and a data operation cannot occur at the same time because
they share a common bus. This is referred to as the Von Neumann bottleneck and often limits the
performance of the system.
The design of a Von Neumann architecture is simpler than the more modern Harvard architecture
which is also a stored-program system but has one dedicated set of address and data buses for
reading data from and writing data to memory, and another set of address and data buses for fetching
instructions.

A stored-program digital computer is one that keeps its program instructions, as well as its data, in
read- write, random-access memory (RAM). Stored- program computers were an advancement over
the program-controlled computers of the 1940s, such as the Colossus and the ENIAC, which were
programmed by setting switches and inserting patch leads to route data and to control signals
between various functional units. In the vast majority of modern computers, the same memory is used
for both data and program instructions, and the Von Neumann vs. Harvard distinction applies to the
cache architecture, not the main memory

4.0 Features of a Von Neumann architecture

The illustration above shows the essential features of the Von Neumann or stored-program
architecture. There are four sub-components in von Neumann architecture:

– Memory
– Input/Output (called “IO”)
– Arithmetic-Logic Unit
– Control Unit

While only 4 sub-components are called out, there is a 5th, key player in this operation: a bus, or
wire, that connects the components together and over which data flows from one sub-component
to another

4
5

4.1 Memory

The computer will have memory that can hold both data and also the program processing that
data. Types of memory are RAM,ROM and Registers.

RAM(Random Access Memory) is typically volatile memory .RAM is an array of cells, each with a
unique address. A cell is the minimum unit of access. Originally, this was 8 bits taken together as a
byte. In today’s computer, word-sized cells are more typical .RAM gets its name from its access
performance. In RAM memory, theoretically, it would take the same amount of time to access any
memory cell, regardless of its location with the memory bank (“random” access).

ROM(Read Only Memory) gets its name from its cell-protection feature. This type of memory cell
can be read from, but not written to. Unlike RAM, ROM is non-volatile; it retains its settings after
power is removed. ROM is more expensive than RAM, and to protect this investment, only store
critical information in ROM
Registers are the discrete memory location within the CPU designed to hold temporary data and
instructions .A modern CPU will hold a number of registers. There are a number of general purpose
registers that the programmer can use to hold intermediate results whilst working through a
calculation or algorithm.

4.2 Control Unit

The control unit will manage the process of moving data and program into and out of memory and
also deal with carrying out (executing) program instructions - one at a time. This includes the idea
of a 'register' to hold intermediate values. In the illustration above, the 'accumulator' is one such
register. The 'one-at-a-time' phrase means that the von neumann architecture is a sequential
processing machine.

4.3 Input – Output


This architecture allows for the idea that a person needs to interact with the machine. Whatever
values that are passed to and forth are stored once again in some internal registers.

4.4 Arithmetic Logic Unit


This part of the architecture is solely involved with carrying out calculations upon the data. All the
usual Add, Multiply, Divide and Subtract calculations will be available but also data comparisons
such as 'Greater Than', 'Less Than', 'Equal To' will be available.

4.5 Bus
arrows between components flow between various parts of the computer. In a modern computer
built to the Von Neumann architecture, information passes back and forth along a 'bus'. There are
buses to identify locations in memory - an 'address bus' and there are buses to allow the flow of
data and program instructions - a 'data bus'.

5
6

5.0 Problems with Von Neumann

The illustration below shows the Von Neumann architecture is a very successful architecture, but it
has its problems.

Problem 1

Every piece of data and instruction has to pass across the data bus in order to move from main
memory into the CPU (and back again). This is a problem because the data bus is a lot slower than
the rate at which the CPU can carry out instructions. This is called the 'Von Neumann bottleneck'.

If nothing were done, the CPU would spend most of its time waiting around for instructions.
Because program memory and data memory cannot be accessed at the same time, throughput is much
smaller than the rate at which the CPU can work. This seriously limits the effective processing speed
when the CPU is required to perform minimal processing on large amounts of data. The CPU is continual
y forced to wait for needed data to be transferred to or from memory. Since CPU speed and memory
size have increased much faster than the throughput between them, the bottleneck has become more
of a problem, a problem whose severity increases with every newer generation of CPU

Partial answer:

A special kind of memory called a 'Cache'. imagine the data bus as a bridge that can only carry so
many instructions at a time. But what if we designed a 'holding area' on the CPU side of the bridge?
Then we could store the most often-used instructions in the holding area instead of having to cross
the bridge every time. This holding area is called a 'cache' (pronounced 'cash'). If the software
programmer is clever enough, they will make it easier for the CPU to store the most-often used
part of the code in the 'cache'. This activity is called 'code optimization'.

Problem 2

Both data and programs share the same memory space. This is a problem because it is quite easy
for a poorly written or faulty piece of code to write data into an area holding other instructions, so
trashing that program.

Problem 3

Another issue is that the rate at which data needs to be fetched and the rate at which instructions
need to be fetched are often very different. And yet they share the same bottlenecked data bus.

Partial answer: The Harvard Architecture

The idea of the Harvard Architecture is to split the memory into two parts. One part for data and
another part for programs. Each part is accessed with a different bus. This means the CPU can be
fetching both data and instructions at the same time. There is also less chance of program
corruption.

6
7

6.0 Evolution
Through the decades of the 1960s and 1970s computers general y became both smaller and
faster, which led to some evolutions in their architecture. For example, memory-mapped I/O allows
input and output devices to be treated the same as memory. A single system bus could be used to
provide a modular system with lower cost. This is sometimes call ed a "streamlining" of the architecture.
In subsequent decades, simple microcontrollers would sometimes omit features of the model to lower
cost and size. Larger computers added features for higher performance

7.0 References

1. en.wikipedia.org/wiki/Von_Neumann_architecture

2. www.teach-ict.com/as_as_computing/ocr/.../vonn_neuman/.../pg3.htm

3. https://www.csupomona.edu/~hnriley/www/VonN.html

4. www.computerhope.com/jargon/v/vonneuma.htm

5. www.math.ualberta.ca/~isaac/cmput101/s02/cmput101.ch5.1.ppt

6. www.karbosguide.com/books/pcarchitecture/chapter02.htm

7. whatis.techtarget.com › ... › Application Development › Programming

7
8

You might also like