Abstract
Multi-core;
this is not a new nomenclature, even to common people now. According to
studies, the future of embedded system mainly plays with Multi-core due to the
upcoming demands and complexity. Multi-core can provide great potential
benefits for embedded systems only when we utilize it. Parallel programming is
one of them, which can squeeze-out the total power of Multi-core.
Let’s
have a look into SMP (Symmetric Multiprocessing) and ESMP (Extended Symmetric
Multiprocessing), the two different approaches to Multiprocessing, which changes
the way we writing programs.
Introduction
Since from the
emerging, Multi-core mark its presence in a wide range of mainstream computational
devices such as, servers, desktops and even Smartphone. The beauty of
Multi-Core technology is that, it can offer advantage in both performance and
overall system efficiency. But how we can utilize it up to the maximum? Well,
the simple answer is so called parallel programming. Parallel programming is
different from the usual sequence programming method in which, it can drive
more than one driven thread simultaneously.
So, if you have
a Multi-core system and you written some nice parallel program, does it works
as you desired straightway? The answer is a big NO. This is because,
ultimately, you need a Multiprocessing mode (i.e., an approach to deal with Multi-core
- Multiprocessing communication in a system) for telling to your OS (operating
system) that you going to do something amazing!
SMP and ESMP are two fantastic Multiprocessing modes which
actually do the OS even better.
Before start digging into these modes, let’s have a look
into the advantage of using SMP and ESMP as following
1.
Provide greater scalability and
parallelism when compared to AMP (Asymmetric Multiprocessing), along with
simpler shared resource management.
2.
Suitable for application
development in which, applications not known at design time.
3.
Efficient for applications that
may suspend (e.g., due to memory access) and need to restart on any core.
4.
Allow protocol processing in
parallel.
5.
For multi-threaded applications.
6.
Suitable for large server
applications.
7.
Easy for HW designers to step
and repeat.
How SMP and ESMP work?
Symmetric Multiprocessing (SMP): In SMP, a single OS can manage the entire processor cores
simultaneously. Since, the OS have better insight into the core elements
throughout its life, it can allocate and mange the resource on multiple cores
with little or no input from the developer.
The
power of SMP actually lies with how it manages the resources. With single copy
of OS, SMP can dynamically allocate the resources to a specific thread, rather
than to CPU cores. This ultimately uplifts the utilization of available processor
power.
Extended Symmetric Multiprocessing (ESMP): In the real world, just a SMP or
AMP classification does not meet the actual requirement always. Suppose we want
to use SMP system (with all homogeneous CPU cores), but not entirely for
general purpose, then we must have to go with ESMP mode. ESMP is an extended
version of SMP mode in which all CPU cores are homogeneous, yet they are not
entirely “general purpose” with respect to use. ESMP CPU cores have same set of
instruction architecture extensions. The configuration parameters are same for
all CPU cores too. This makes ESMP to perform specific class of applications.
SMP and ESMP are
two multiprocessor models, which makes efficient utilization of resources across
Multi- Cores in a system. SMP and ESMP play a vital role in the advance
parallelism, which can make wonders in the embedded technology in near future.
If you have a multi-core system and know how to make parallelism, then SMP is
the key to unlock your future.
Reference: