Multicore
Multicore
To execute the tasks faster you must increase the clock time.
Increasing clock times too high drastically increases power consumption and heat dissipation to
extremely high levels, making the processor inefficient.
Solution:
Creating two cores or more on the same Die increases processing power while keeping clock speeds at
an efficient level.
A processor with 2 cores running at efficient clock speeds can process instructions with similar speed to
a single core processor running at twice the clock speed, yet the dual core processor would still consume
less energy.
A multi-core processor is a single computing component with two or more independent actual
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.
Diagram:-
General issues:-
• Difficult to make single-core
clock frequencies even higher – heat problems
• Deeply pipelined circuits:
– heat problems, needs special cooling arrangements
– Intel’s NetBurst architecture was not continued
• Many new applications are multithreaded
• General trend in computer architecture (shift towards more parallelism)
Multi-Core Advantages:
• While working with many threads, a Multi Core processor with n cores can execute n threads
simultaneously by assigning a core to each thread. If it must process more than n threads , say
x, it can apply multithreading procedures with each core working with an average of x/n
threads.
• A Single core processor must multithread with every single thread.
• Creating multi core processors is convenient in that: The name “core dual” and similar names
are good for marketing.
• It has lower manufacturing costs.
• Uses proven processor designs.
Purpose:-
1- To save the time & memory.
2- To solve complex problem
3- To prove concurrency
4- Better use of hardware
-----------------------------------------------------------------------
Most multiprocessor systems today use SMP architecture. In the case of multi-core processors,
the SMP architecture applies to the cores, treating them as separate processors.
SMP systems are tightly coupled multiprocessor systems with a pool of homogeneous processors
running independently, each processor executing different programs and working on different
data and with capability of sharing common resources (memory, I/O device, interrupt system and
so on) and connected using a system bus or a crossbar.
The central concept of symmetric multiprocessing is that the “Main Memory(MM)” is shared across all
discrete processing modules in the system. The multiple cores in the processor shares the same
memory, I/O controllers, Operating system and board.
Asymmetric Multiprocessing:
In a different context, an asymmetric multiprocessor system can also have two separate
operating systems for different computational units or cores. These operating systems work
separately using discrete support peripherals, memory units and other components. In both
scenarios, it is the system designer’s responsibility to ensure a perfect resource sharing
mechanism because, neither the operating systems nor the processors own the entire hardware.
So resource sharing is not “under the hood” as it is in the case of Symmetric multiprocessors.
AMP has its own advantages. For example, AMP is the only architecture that can handle or
work with two different operating systems working in the same environment. AMP has the
required design prerequisites which allow the OSes to communicate with each other and share
the resources accordingly. Also, AMP proves to be faster than symmetric architecture as there is
no delay due to “handshaking”.
The final decision to chose SMP or AMP is mostly based on the ease with which it can be
implemented. Applications or architectures that already run on an SMP-aware OS, such as
Linux, can easily be scaled by adding more cores in SMP. In such cases, AMP is not entertained
as it would require a complete restructuring.
AMP, on the other hand, is a good choice if the application has unavoidable parallelism at the
user level. Generally, Networked multiprocessing uses asymmetric implementation and is mostly
found in embedded architectures where the system has a network connection, shared memory or
processor bus or shared mailbox for communication between processing components.
Multiprocessing is indeed vast and has many branches that would demand an in depth study,
which would unravel the benefits and disadvantages of the two architectures.
An AMP system:
multiple CPUs
each of which may be a different architecture [but can be the same]
each has its own address space
each may or may not run an OS [and the OSes need not be the same]
some kind of communication facility between the CPUs is provided
An SMP system:
multiple CPUs
each of which has the same architecture
CPUs share memory space [or, at least, some of it]
normally an OS is used and this is a single instance that runs on all the CPUs, dividing
work between them
some kind of communication facility between the CPUs is provided [and this is normally
shared memory]