Significant research is underway in the industry and in academia to design tools that can help today's designers of embedded systems software (operating system and applications) benefit from the newly found computational power waiting to be tapped in the form of multiple cores. It is a significant challenge to provide a framework to deploy inherently parallel applications like digital signal processing functions on RISC processors to reduce the bill of materials. To this end, the embedded operating system is an essential piece of the overall solution, which in a perfect world, should be able to dispatch individual application tasks on multiple cores.
Transitioning from a single-core kernel to a multicore version is not a straightforward proposition as it involves introducing new features like protection primitives, inter-process communication (IPC) provisions, as well as enhancing old components like a task scheduler. This article focuses on one important feature--the startup sequence of traditional single-core kernel--which needs to be updated right now if multicore architectures are to be supported. This article discusses the process once an embedded system boots up; some of the problems/challenges of designing a startup sequence on symmetric multiprocessing (SMP) systems; and finally, a scalable and portable booting sequence is presented for embedded SMP systems.
To read the full article, click here.