Multi-core Processor Technology | Electronics Seminar Topic
Multi-core Processor Technology
A multi-core processor is a single computing component with
two or more independent actual central processing units (called
"cores"), which are the units that read and execute program
instructions.
The instructions are ordinary CPU instructions such as add,
move data, and branch, but the multiple cores can run multiple instructions at
the same time, increasing overall speed for programs amenable to parallel
computing.
Manufacturers typically integrate the cores onto a single
integrated circuit die (known as a chip multiprocessor or CMP), or onto
multiple dies in a single chip package.
Processors were originally developed with only one core. A
dual-core processor has two cores (e.g. AMD Phenom II X2, Intel Core Duo), a
quad-core processor contains four cores (e.g. AMD Phenom II X4, Intel's
quad-core processors, see i3, i5, and i7 at Intel Core), a hexa-core processor
contains six cores (e.g. AMD Phenom II X6, Intel Core i7 Extreme Edition 980X),
an octo-core processor or octa-core processor contains eight cores (e.g. Intel
Xeon E7-2820, AMD FX-8350), a deca-core processor contains ten cores (e.g.
Intel Xeon E7-2850).
A multi-core processor implements multiprocessing in a
single physical package. Designers may couple cores in a multi-core device
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,
two-dimensional mesh, and crossbar. Homogeneous multi-core systems include only
identical cores, heterogeneous multi-core systems have cores that are not
identical. 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 (DSP), and graphics.
The improvement in performance gained by the use of a
multi-core processor depends very much on the software algorithms used and
their implementation. In particular, possible gains are limited by the fraction
of the software that can be run in parallel simultaneously on multiple cores;
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, or even more if the problem is split up enough to fit within each core's
cache(s), avoiding use of much slower main system memory. Most applications,
however, are not accelerated so much unless programmers invest a prohibitive
amount of effort in re-factoring the whole problem.[3] The parallelization of
software is a significant ongoing topic of research.