Multiple processor systems have been around for decades. System architects have designed single computers with thousands of processors, and multicore processors have continually showed up in various niche applications like DSPs.
Today, though, it is different. Multicore processors are the mainstream method for processor development. Given that high-performance processor designers have hit the wall on power consumption, moving to multiple core processors is the most practical way to continue improving processor performance while maintaining a manageable power budget. Multicore is a way past the performance plateau. Embedded platform designers have no choice but to learn to use these multicore processors, and they will need to modify their applications to take full advantage of multiple cores.
One resource that can help engineers is the Multicore Association. I recently attended the group‚Äôs Multicore Expo, an event that showcased a mix of sponsors from both the high-performance and embedded computing segments. While the high-performance segment has years of experience using multiprocessors, it is a new frontier for many in the embedded segment.
During a panel session on the future of multicore, Jon Peddie of Jon Peddie Research (www.jonpeddie.com) commented that not much has changed in the past 30 years and predicted that not much more will change in the next 5 years. Most of the presenters supported this position in their sessions.
The high-performance segment has implemented Symmetrical Multiprocessing (SMP) solutions where the multicore architecture is a natural fit. In that segment, everyone agrees that the best way to get the most out of every clock cycle in a multiprocessor or multicore system is to structure the application and data set to run in parallel so that every processor or core is busy all the time. Unfortunately, only certain applications lend themselves to a parallel structure, most notably image processing and simulation modeling. This has not changed since the conception of parallel computing. What has changed is that the size of processing elements has expanded and GFLOP numbers have increased two or three orders of magnitude higher.
Despite these challenges, designers are making progress in two areas: Asymmetrical Multiprocessing (AMP) and virtualization. In these environments, multiple cores are running multiple operating systems or multiple threads within an application. This is the hot spot for typical embedded applications that have many dependent and independent tasks running at the same time on a single platform.
AMP embedded applications often use combinations of homogeneous and heterogeneous cores. Many Systems-on-Chip (SoCs) are multicore but have heterogeneous cores for specific functions. One core may be the general-purpose processing core and other cores may be optimized to process I/O or provide DSP functionality. Some newer parts are even introducing dual or quad homogeneous multicore for general-purpose processing with an extra heterogeneous core for specialized functions.
As more players enter the multicore processor market, we will observe more divergence with no convergence in sight despite efforts like the Multicore Association‚Äôs Multicore Communications API (MCAPI) announced at the Multicore Expo. This will pose a challenge for system developers because their choices will not be compatible, complicating design changes and forcing developers to make decisions that will prevent platforms from being as portable between iterations as they desire.
Numerous similar but distinct topics are covered under the word "multicore." Designers shouldn‚Äôt be frightened off by the term. It is forecasted that by 2010 nearly 100 percent of processors shipped will be multicore. Kerry Johnson of QNX summed up this trend as he pointed out the variety of options available to embedded systems designers. Most applications will work well with multicore processors, requiring no changes to the software and enabling designers to start moving applications now. Later, they can work out more optimized changes to their system architectures to truly gain from multicore processors.
Feel free to share your comments via e-mail or visit our blog at www.embedded-computing.com to add your comments.
Jerry Gipper, Editorial Director
Check out the recent E-cast, "Maximizing Performance on Intel Multicore Processors," cosponsored by QNX and Intel. Download it now at www.embedded-computing.com