Multicore processing is old hat among the desktop computing crowd, with
all of the major computer vendors offering multicore consumer desktop
systems. More recently multicore processing has been making waves in
embedded computing. Many of the well known embedded software tools
providers have been touting solutions designed to simplify multicore
software development.
On the hardware front Venture Development Corporation predicts that
multicore AdvancedTCA blades will increase
market share from 1 percent in 2005 to somewhere around 15 percent in
2007. Clearly the embedded world is catching on to the multicore
revolution.
What's motivating the growth in
multi-core?
The embedded marketplace is not immune to the demands of increased
computing power. In the telecommunications market triple and quadruple
play networks are stressing existing architectures, while advances in
signal and image processing are driving performance demands in the
military and medical markets.
In addition to the increase in absolute computational power, more
stress is being put at the edge of networks, driving reduced power
consumption and performance density. Traditional single core and even
traditional discrete multiprocessor approaches simply cannot scale in
the face of all of these demands.
Performance density
With new integrated multicore solutions, board designers can achieve
densities that were not possible with discrete multiprocessor
solutions. In the AdvancedMC and MicroTCA market, discrete
multiprocessor architectures are likely physically impossible to
implement on a single-width card.
The AdvancedMC standard specifies a board size of approximately 180
mm x 74 mm, however only about 55 percent to 65 percent of that space
is available for processing and memory system layout (Figure 1 below) after considerations
for front panel I/O and AdvancedMC power supply requirements.
 |
| Figure
1: Typical AMC Layout Constraints |
With a discrete multiprocessor system two processing cores and a
bridge chip would consume roughly twice as much space as an integrated
System-on-Chip (SoC) multicore processor. The table in Figure 2 below gives a rough
comparison of the space requirements for similar processing
configurations using dual MPC7448s and a single MPC8641D. In addition
the discrete multiprocessor system would introduce additional layout
difficulties that would cause this solution to use more space.
 |
| Figure
2: Dual Core Layout Comparison |
While discrete multiprocessor systems have been and continue to be
successful in AdvancedTCA and CompactPCI blade designs, the multicore
SoCs such as the MPC8641D from Freescale offer much higher performance
densities and make multicore mezzanine cards a reality.
Configurability
In addition to the high performance densities that can be achieved
using a multicore SoC in an AdvancedMC form factor, the end user gains
system flexibility and cost savings that are otherwise unachievable.
At the most basic level a multicore processor can operate in Asymmetric Multiprocessing (AMP) mode
or Symmetric Multiprocessing (SMP)
mode. In AMP mode both cores will be running independent copies of an
operating system (or the same operating system) and certain system
resources are either partitioned ahead of time, or a method for sharing
must be designed.
A multicore board that can operate in AMP mode offers the system
designer several different configurations for balancing system
performance. Figure 3 below shows
some possible system configurations for an AMP multicore card.
 |
| Figure
3: AMP Configurations |
In SMP mode a single instance of an SMP-capable operating system is
running across both cores. Resource sharing and load balancing are
dynamically handled by the operating system. The SMP configuration will
achieve the highest utilization of both processors because it can
respond dynamically to load in the system.
However, the system designer must decide if dynamic load balancing
is acceptable and whether or not the system software is architected to
take advantage of an SMP configuration. A multicore board operating in
SMP mode will typically be used in higher-end systems that require very
high performance control systems. If there is enough computing
overhead, however, it can be used to help future proof an application
and remove an extra control card from the system.
A carefully designed multicore AdvancedMC card can be configured to
operate in several different configurations depending on performance,
reliability, and cost requirements. For example, the EP8641A includes independent
banks of DDRII RAM connected to the MPC8641D's dual memory controllers.
Configured in this manner the processors' cores can easily be
configured to operate in either AMP or SMP mode with simple software
changes. When evaluating a multi-processor card it is important to
consider how the I/O resources such as memory controllers, interrupt
controllers, and bus interconnects are shared among the cores and how
the computing resources can be most efficiently and effectively
deployed.