Multicore

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

What is Multicore:-

Problems with Single Core

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
-----------------------------------------------------------------------

Symmetric multiprocessing (SMP) involves a symmetric multiprocessor system hardware and


software architecture where two or more identical processors connect to a single, shared main
memory, have full access to all I/O devices, and are controlled by a single operating system
instance that treats all processors equally, reserving none for special purposes.

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:

Asymmetric multiprocessing architecture is a primitive architecture that is implemented in


clusters of computation units having more than one processor. During the initial phase of the
“computer-era” when a single computer was big enough to fill up an entire room or corridor, the
only way to increase computational power was to add in more processing units to the same
computer. This was cheaper than setting up a new computer that requires dedicated hardware and
peripherals.
In this scenario, engineers came up with an architecture wherein a processor would be attached
as a “slave” to the main processing unit and this slave processor would share the load and add to
the performance of the main computer. In this case, the slave computer or processor would only
be sharing limited resources, information or load, and would not be acting in a transparent
environment. In simple terms, the separate processors or cores are unaware of each other’s
existence and work as individual units. They may or may not share the same memory. Normally,
the secondary processors will not be having connection with the I/O units and other peripherals.

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]

You might also like