With so many ARM based multicore boards coming to market we are hearing more about systems running multiple operating systems on similar cores (SMP, symmetric multi-processing) or differing cores (AMP, asymmetric multiprocessing). So why would you want to run multiple operating systems anyway? I spoke to Bill Lamie, CEO of ARM partner Express Logic who has a storied history with both ARM and real time operating systems (RTOS). Bill remembers porting the Nucleus RTOS to the first commercial ARM processor even before he wrote ThreadX (Nucleus is now owned by Mentor Graphics) so has seen the evolution of embedded computing up close.
Any good embedded software developer has to think about the classic tradeoff of system performance versus reliability/up time which if you are running a single OS it can be challenging and limiting. With ARM multicore boards being available for under $100 now SMP and AMP are within reach of every embedded developer. The other trend that comes into play here is that increasingly embedded systems (and their IoT progeny) need graphical user interfaces (GUI) and access to multiple communications networks. So in many embedded designs running separate operating systems to handle different system functions solves many of the classic tradeoff problems and now it’s never been easier. An RTOS like ThreadX might run networking on one core and Linux or Android running on another core might drive the user interface and graphics. A great example of this is Express Logic’s customer Ambarella who produces IC’s for the action HD camera market. Pictured below is the Ambarella 4K SoC development kit:
Ambarella’s products are in camera’s that sit on dashboards, are strapped to bike helmets, on police officers uniforms and generally exist in extreme conditions but need to weather it all. These devices need an RTOS to manage the system but also have user interfaces, networking and battery management that may not need to be real time. Using multiple ARM cores gives Ambarella the opportunity to spread the diverse workloads their SoC needs to handle over dual Cortex-A9 cores and a companion ARM11 core:
By taking the multi-OS approach on a multicore SoC means Ambarella can sell chips into new video applications that need to be “always on” but consume very little power and work in extreme conditions. Not all applications will have such strenuous processing needs but the concept of taking the best OS and the best ARM core for the job and combining them is a major trend in systems design you need to think about. Check out Express Logic and the ThreadX RTOS if you aren't familiar with it here.
If you are you planning on running more than one OS in your next design (or current) please tell us what you are doing and you can read more articles about Exploring the world of ARM based Embedded Computing Boards (ECB).
if i use ARM cortex M4, can we change the OS at any time ?
I like everything about the virtualization on ARM . I think this is the purpose of this process. Under the operation to Xen already been a success on many boards . I had try it on the TI Omap 5432-uEvm, thanks to the Cortex A15 . But not that, one can note this can be do on the ODROID XU.