Wednesday, April 21, 2010

Multi-core processor

A multi-core processor is a
processing system composed
of two or more independent
cores. The cores are typically
integrated onto a single
integrated circuit die (known
as a chip multiprocessor or
CMP), or they may be
integrated onto multiple dies
in a single chip package. A
many-core processor is one
in which the number of cores
is large enough that
traditional multi-processor
techniques are no longer
efficient — this threshold is
somewhere in the range of
several tens of cores — and
likely requires a network on
chip.
A dual-core processor
contains two cores, and a
quad-core processor contains
four cores. A multi-core
processor implements
multiprocessing in a single
physical package. Cores in a
multi-core device may be
coupled together tightly or
loosely. For example, cores
may or may not share caches,
and they may implement
message passing or shared
memory inter-core
communication methods.
Common network topologies
to interconnect cores
include: bus, ring, 2-
dimensional mesh, and
crossbar. All cores are
identical in homogeneous
multi-core systems and they
are not identical in
heterogeneous multi-core
systems. Just as with single-
processor systems, cores in
multi-core systems may
implement architectures
such as superscalar, VLIW,
vector processing, SIMD, or
multithreading.
Multi-core processors are
widely used across many
application domains
including: general-purpose,
embedded, network, digital
signal processing, and
graphics.
The amount of performance
gained by the use of a multi-
core processor is strongly
dependent on the software
algorithms and
implementation. In
particular, the possible gains
are limited by the fraction of
the software that can be
parallelized to run on
multiple cores
simultaneously; this effect is
described by Amdahl's law.
In the best case, so-called
embarrassingly parallel
problems may realize
speedup factors near the
number of cores. Many
typical applications,
however, do not realize such
large speedup factors and
thus, the parallelization of
software is a significant on-
going topic of research.

No comments:

Post a Comment