Computer Architecture and Organization
Computer Architecture and Organization
Computer Architecture and Organization
AND ORGANIZATION
CPE0037
Module 8
Multi-Core and
Distributed System
A multi-core microprocessor is one that combines two or
more independent processors into a single package, often
a single integrated circuit (IC).
A dual-core device contains two independent
microprocessors.
In general, multi-core microprocessors allow a computing
device to exhibit some form of thread-level parallelism
(TLP) without including multiple microprocessors in
separate physical packages.
Replicate multiple processor cores on a single die.
The cores fit on a single processor socket
Also called CMP (Chip Multi-Processor)
c c c c
o o o o
r r r r
e e e e
1 2 3 4
thread 1 thread 2 thread 3 thread 4
c c c c
o o o o
r r r r
e e e e
1 2 3 4
several several several several
threads threads threads threads
c c c c
o o o o
r r r r
e e e e
1 2 3 4
OS perceives each core as a separate processor.
SIMD
• Single instruction, multiple data.
• Modern graphics cards.
MIMD
• Multiple instructions, multiple data.
Shared Memory:
In this model, there is one (large) common shared memory
for all processors.
Distributed memory:
In this model, each processor has its own (small) local
memory, and its content is not replicated anywhere else.
Multi-core processor is a special kind of a multiprocessor.
All processors are on the same chip.
c) Situation if page 10 is
read only and replication
is used
False sharing of a page between 2 independent processes.
Basic idea is simple:
organize components in
layers.
Component at layer N can
call those at underlying
layer N − 1 (but not vice
versa).
This so-called application
layering is shown in the
diagram.
A key observation is that
control generally flows
from layer to layer.
e.g. requests go down the
hierarchy whereas the
results flow upward.
This model has been
widely adopted by the
networking community.
A far looser organization is
followed in object-based
architectures.
Each object corresponds
to what we have defined
as a component.
These components are
connected through a
(remote) procedure call
mechanism.
This software architecture
matches the client-server
system architecture.