[POV: Point Of View]
Multicore Processors Revolutionize Real-Time Embedded Systems
Paul Fischer
ED Online ID #17672
December 13, 2007
Copyright © 2006 Penton Media, Inc., All rights reserved. Printing of this document is for personal use only.
Reprints
The proliferation of multicore processors has done more than provide a boost in
processing power to server applications. Multicore chips also pose the opportunity
to revolutionize how embedded systems are constructed. Developers now
can host real-time operating systems (RTOSs) and general-purpose operating
systems (GPOSs) on separate cores of a single
multicore processor to create systems
that once required multiple hardware
platforms. The benefit is a reduction in
cost, size, and complexity.
A typical embedded system comprises dedicated
subsystems performing functions such
as real-time control, data acquisition, and a
human-machine interface (HMI). Frequently, a
mix of processor architectures is used to construct
such a system: DSPs, microcontrollers,
and general-purpose microprocessors.
The inefficiencies of working with multiple support
environments and programming models
impacts time-to-market and long-term support
costs. Building systems with multiple circuit cards,
power supplies, memories, and I/O interfaces to support
the different processors adversely impacts system
component and manufacturing costs.
If time and money are important, it makes much more
sense to implement multiprocessing systems on a single
computing platform, where the different operating environments
are given their own dedicated processor cores.
Getting the most processing efficiency from a multicore platform
is not trivial, however, because access to some hardware resources
must be shared between the operating environments. The key to
supporting a diverse mix of real-time and general-purpose OSs on
the individual cores of a multicore processor is to use a real-time
operating environment that supports virtualization.
THE ROLE OF VIRTUALIZATION
Virtualization removes
contention for resources in a multi-OS platform, providing the
needed isolation between multiple operating environments. Not
only does virtualization allow real-time and general-purpose OSs
to coexist on neighboring cores, it also enables legacy real-time
systems to be integrated with new functionality while incurring a
minimal impact on legacy software.
Multicore processors enable system designers to maintain the
integrity of their real-time environments. By running on a dedicated
core, real-time applications are ensured 100% of the CPU
instruction cycles. There is no performance penalty for sharing
the platform with a GPOS such as Windows.
DSP code typically is written in C, or a C-like
language. It can be easily converted to run on a
high-performance general-purpose processor,
such as an Intel architecture CPU, which
includes specialized single-instruction multiple-data (SIMD) instructions to facilitate
the implementation of DSP algorithms.
Integrated development environments (IDEs)
like Microsoft Visual Studio make possible the
development of real-time and general-purpose
applications using a single set of tools.
The result is systems that are easier to maintain
and enhance. Also, the performance of these systems
can be extended in many cases by simply moving
to platforms with additional processor cores. Newer
and cheaper I/O subsystems can be constructed—a
benefit of PC market economies of scale (for example,
USB, PCI Express, and Ethernet).
Combining multiple operating environments on a
multicore processor has a dramatic impact on realtime
performance metrics, such as interrupt latency,
when compared to multi-OS platforms that must share a
single CPU.
Interrupt latencies that measure in the 10- to 30-µs range
on single-core systems are reduced to 1 to 3 µs on equivalent-
speed dual-core systems. With such low latencies, real-time
control loops can execute in the 50- to 200-µs range with very high
precision while simultaneously supporting a GPOS, such as Windows,
on the same hardware platform.
REAL-TIME AND VIRTUALIZATION
The net gains from
the application of real-time virtual-machine technology on multicore
processor platforms include the elimination of redundant
computer and communication hardware, faster communication
and coordination between RTOS and GPOS subsystems, improved
reliability and robustness, reuse of proven legacy applications, and
simplified development and debugging. The result is a bright future
for embedded system developers.
|