Until recently, steady increases in processor operating frequency helped embedded software developers maintain a straightforward approach to coding. Developers could write serially executed, single-threaded applications knowing that performance would scale with operating frequency. Software test and debug strategies for these applications were equally straightforward.

Today multi-core processors double or even quadruple compute performance while keeping operating frequencies—and power consumption—in check. Similarly, hyper-threading lets a single core do the work of two processors in a much smaller power envelope. Hardware architects are also innovating at the micro-architecture level, adding features like Intel Streaming SIMD Extensions (Intel SSE) that perform many operations with a single command. As a result, power consumption has dropped considerably.

This is good news for software designers, who once more have the performance they need for next-generation embedded systems. However, the changes in hardware call for a corresponding change in software. This paper considers what this means.