Where’s The Multicore Software?

By David Lammers
Multicore processors are being readied for embedded applications but software developers will need to get prepared if they expect to wring the maximum benefits from them.

Rob Oshana, director of software R&D at Freescale Semiconductor’s networking and multimedia group, said software developers increasingly are asking if their code will easily port to multicore CPUs. “We as an industry are coming out of the trough of disillusionment after a period of hype” regarding multicore solutions, Oshana said at the Real-time and Embedded Computer Conference in Austin, Texas. “While many development teams have learned how to code heterogeneous multicore SoCs—most often a DSP and ARM combination—relatively few have braved the homogenous multicore and many-core products, which are expected to have from 8 to 32 cores on board eventually.

These multi-core platforms offer real cost advantages, providing the programming challenges can be met. “How to get the maximum performance out of multicore devices is challenging, and varies by application,” he said. Some applications can be met by symmetric solutions, in which a single operating system is implemented on multiple cores. But often, asymmetric solutions are required, in which a Linux OS is used on the cores dedicated to control functions, while a real-time operating system (RTOS) or library executes on other cores. Many customers seek to run a legacy operating system, such as VxWorks, on one or more cores—all without an onerous porting overhead.

“These days, the operating system really is the platform” that programmers target, Oshana said in the keynote speech. While the backend tools are fairly good now, developers need better tools to divide up tasks on the different cores. And while the Multicore Association is working the problem, Oshana said standardization is needed for creation of the virtualization layers that sits inside the operating system. “We are trying to catch up” with the standards needed to manage partitioning of a system, including the partitioning rules.

Debug, needless to say, is a major challenge with multicore CPUs. “We can put a debugger on a core, but that doesn’t look at the code from a system perspective. Multicore requires tools that can do system-level visualization. It is worth the effort, as these multicore processors can really reduce costs,” said Oshana, who joined Freescale several years ago after working at Texas Instruments.