This paper discusses how multicore designs are creating the need for a true multi-OS system. Within this discussion Symmetric Multi-Processing (SMP), Asymmetric Multi-Processing (AMP), multicore hardware and software, development tools, and actual use cases will be covered.
Multicore is becoming increasingly popular in today’s embedded systems. In order to circumvent the physical limitations of silicon design, stacking up multiple homogenous or heterogeneous processors is often a preferred approach. This is particularly true for many convergent devices that require media-rich graphics, always-on functionality, multi-band connectivity, or extensive processing requirements such as car “infotainment” systems or portable medical devices. In many cases, to facilitate the divergent requirements for subsystems, there is a need for an environment where heterogeneous operating systems can co-exist within multicore systems. For instance, a Real Time Operating System (RTOS) is required to support deterministic real-time behavior (on the data plane) for a communication subsystem, whereas a General Purpose OS (GPOS), such as embedded Linux, is used to run applications on the control plane where very little real-time requirements exist. Such heterogeneous operating system environments demand a system level approach in designing an application.