Embedded design needs to move to multicore processor-based systems and the sooner the better.
But the softly, softly approach of the last year or so is no longer an option for semiconductor, software and systems companies facing the threat of a downturn across the industry.
Which is why a cross-industry initiative like the Multicore Programming Practices working group of the Multicore Association should be recognised for what it is: a lifeline for embedded multicore design.
Multicores bring crucial performance and efficiency benefits, but the issue is the problem of partitioning the application software between the cores to ensure there are performance gains rather than unwanted software overheads.
So it is necessary for the operating system to provide threading, or partitioning of the API so it can run multiple cores. Even real-time performance can be achieved if you get it right, theoretically.
Many OS companies have, or expect to have, some form of symmetric multiprocessing support. But without any consensus toward a standard approach this will confuse and worry the design community.
There are conflicts such as symmetric vs. asymmetric multiprocessing, for example.
The Multicore Programming Practices working group looks like the best attempt right now to avoid conflict and delay in implementing multicore design.
There are signs that the process is moving forward. In September VirtualLogix showed real-time virtualization software support for the Multicore Association’s specification for Multicore Communications API (MCAPI).
Then this month, real-time operating systems supplier Express Logic joined with multicore specialist PolyCore Software in what is seen as the first commercial RTOS integration of the MCAPI specification.
The key is that the MCAPI-supported RTOS will allow for applications to be developed on a single processor before being ported to the multicore target hardware.
This means that development can start before the multicore hardware is available. It also raises the possibility of reusing legacy code, so that previously written single-processor multithreaded code can be distributed across multiple cores.
That is likely to be the main factor determining whether multicore design can become vital to the embedded market before 2012.