DEFINITION
The term computer architectures refer to a set of rules
stating how computer software and hardware are
combined together and how they interact to make a
computer functional, furthermore, the computer
architecture also specifies which technologies the
computer is able to handle.
DEFINITION CONTINUED
• Computer architecture is a specification,
which describes how software and
hardware interact together to produce a
functioning platform.
THERE ARE THREE MAIN CATEGORIES IN COMPUTER
ARCHITECTURE:
1. System Design: The system design is the hardware
parts, which includes multiprocessors, memory
controllers, CPU, data processors, and direct memory
access. The system design can be considered to be the
actual computer system
2. Instruction set architecture:
This revolves around the CPU. It includes the CPU
capabilities and functions, furthermore it also
includes the CPU’s data formats, programming
language and processor register types and
instructions, which are used by the computer
programmers
The CPU is the part in a computer, which
makes a program run, whether it was the
operating system or an application like
Photoshop
3 Microarchitecture:
The microarchitecture in a system will define
the storage element/data paths and how they
will be implemented into the instruction set
architecture, the microarchitecture also is
responsible for data processing.
Von- Neumann Architecture
Advantages and Disadvantages of von Neumann Architecture
Advantages Disadvantages
The control unit retrieves
instruction and data in the
Parallel executions of
same way from one memory
programs are not allowed due
unit. This simplifies the
to serial instruction processing
development and design of
the control unit
VON NEUMANN CONT.
Only one “bus” can
The above advantage accessed at a time. This be
would also mean that results in the CPU being
data from memory and idle (as it’s faster than a
from devices are data bus) This is
accessed the same way. considered to be
Therefore increasing the von Neumann
efficiency Bottleneck
Although both instructions and data
being stored in the same place can
An advantageous characteristic is be viewed as an advantage as a
that programmers have control of whole. This can however result in
memory organisation re-writing over it, which results in
data loss, due to an error in a
program
If a defective program fails to
release memory when they don’t
require it (or finish with it), it may
cause the computer to crash, as a
result of insufficient memory
available
Von Neumann bottleneck
As processors, and computers over the years have had an
increase in processing speed, and memory improvements have
increased in capacity, rather than speed, this had resulted in the
term “von Neumann bottleneck”. This is because the CPU spends
a great amount of time being idle (doing nothing), while waiting
for data to be fetched from the memory. No matter how fast the
processor is, this ultimately depends on the rate of transfer, as a
matter of fact, if the processor is faster, this just means that it’ll
have a greater “idle” time
Approaches to overcome this bottleneck
include:
•Caching:
• Data which is more easily accessible in RAM, rather than stored in
the main memory. The type of data stored here will be the type of
data, which is frequently used.
•Prefetching:
• The transport of some data into cache before it is requested. This
will speed access in the event of a request of the data.
•Multithreading:
• Managing many requests at the same time in separate threads.
Approaches to overcome this bottleneck include
•New types of RAM:
• Such as DDR SDRAM (Double Data Rate Synchronous Dynamic
Random Access Memory).
• This type of RAM activates output on both the falling edge and the
rising edge of the system clock, instead of just the rising edge.
• This can potentially double the output.
•RAMBUS:
• A subsystem connecting RAM controller, RAM, and the bus (path)
connecting RAM to the microprocessor and devices within the
computer that utilise it.
•Processing in Memory (PIM):
• PIM’s integrate a processor and memory in single microchip.
Harvard architecture
Harvard architecture is a type of architecture, which
stores the data and instructions separately, therefore
splitting the memory unit.
The CPU in a Harvard architecture system is enabled to
fetch data and instructions simultaneously, due to the
architecture having separate buses for data transfers and
instruction fetches.
Characteristics of Harvard Architecture
in a Harvard architecture the instruction fetches
and data transfers can be preformed at the same
time (simultaneously) (as the system has two
buses, one for data transfers and one for
instruction fetches).
Harvard architecture
Advantages and disadvantages of Harvard Architecture
Advantages Disadvantages
The memory dedicated to
Due to instructions and data each (data and instructions)
being transferred in different must be balanced from the
buses, this means there is a manufacturer. Because if
smaller chances of data there is free memory data
corruption memory, it cannot be used for
instructions and vice versa
Advantages and disadvantages of Harvard
Architecture
However this advantage (to
the left) results in a more
complex architecture, as it
Instructions and data can requires two buses. Which
be accessed the same way means it take more time to
manufacture and it makes
these systems more
expensive
Advantages and disadvantages of Harvard Architecture
Harvard architecture offers a
high performance, as this This architecture however,
architecture allows despite the high performance,
simultaneous flow of data and is very complex, especially for
instructions. These are kept in main board manufacturers to
separate memory and travel implement
via separate buses