Multi-core processors
Processor development till
2004
Out-of-order
Instruction
scheduling
2
Why multi-core ?
Difficult to make single-core
clock frequencies even higher heat
problems
Deeply pipelined circuits:
heat problems, needs special cooling
arrangements
Intels NetBurst architecture was not continued
Many new applications are multithreaded
General trend in computer architecture
(shift towards more parallelism)
3
Why multi-core ?
Single-core computer
Single-core CPU chip
the single core
Multi-core architectures
Replicate multiple processor cores on a
single die.
Core 1
Multi-core CPU chip
Core 2
Core 3
Core 4
Multi-core processor
Multi-core CPU chip
The cores fit on a single processor
socket
Also called CMP (Chip MultiProcessor)
c
o
r
e
c
o
r
e
c
o
r
e
c
o
r
e
The cores run in parallel
thread 1
thread 2
thread 3
thread 4
c
o
r
e
c
o
r
e
c
o
r
e
c
o
r
e
10
Within each core, threads are timesliced (just like on a uniprocessor)
several
threads
several
threads
several
threads
several
threads
c
o
r
e
c
o
r
e
c
o
r
e
c
o
r
e
11
Interaction with the
Operating System
OS perceives each core as a separate
processor
OS scheduler maps threads/processes
to different cores
Most major OS support multi-core today:
Windows, Linux, Mac OS X,
12
Instruction-level parallelism
Parallelism at the machineinstruction level
The processor can re-order, pipeline
instructions, split them into
microinstructions, do aggressive
branch prediction, etc.
Instruction-level parallelism enabled
rapid increases in processor speeds
over the last 15 years
13
Thread-level parallelism
(TLP)
This is parallelism on a more coarser scale
Server can serve each client in a separate
thread (Web server, database server)
A computer game can do AI, graphics, and a
physics-related computation in three separate
threads
Single-core superscalar processors cannot fully
exploit TLP
Multi-core architectures are the next step in
processor evolution: explicitly exploiting TLP
14
General context:
Multiprocessors
Multiprocessor is any
computer with several
processors
SIMD
cluster,
Single instruction, multiple dataLemieux
Pittsburgh
supercomputing
Modern graphics cards
MIMD
center
Multiple instructions, multiple data
15
Multiprocessor memory
types
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
16
Multi-core processor is a special kind of a multiprocessor:
All processors are on the same chip
Multi-core processors are MIMD:
Different cores execute different threads
(Multiple Instructions), operating on
different parts of memory (Multiple Data).
Multi-core is a shared memory
multiprocessor:
All cores share the same memory
17
What applications benefit
from multi-core?
Database servers
Web servers (Web
commerce)
Multimedia applications
Scientific applications,
CAD/CAM
In general, applications
with
Thread-level parallelism
(as opposed to instructionlevel parallelism) are
better supported
Each can
run on its
own core
18
More examples
Editing a photo while recording a TV
show through a digital video recorder
Downloading software while running
an anti-virus program
Anything that can be threaded
today will map efficiently to multicore
BUT: some applications difficult to
parallelize
19