eSOL Debuts MCOS Real-time Operating System for Embedded Many-core Processors

eSOL has completed prototype development of a real-time OS (RTOS) for many-core processors, tentatively called Many-Core real-time OS (MCOS). According to eSOL, MCOS will be the world’s first commercial RTOS for embedded many-core processors. eSOL’s MCOS is currently in use on the Renesas Electronics RH850-based MPU implemented on FPGAs with 16 hardware threads in four CPU cores (the virtual equivalent of 16 CPUs).

MCOS’s unique scheduling algorithm brings real-time processing capability and high throughput to the management of advanced many-core embedded systems. Many-core processors can achieve optimal energy efficiency and performance scalability by increasing or decreasing the number of cores in use according to processing requirements. MCOS brings out the best performance from many-core processors used in real-time embedded applications such as cyber-physical systems, image recognition systems, networking, automotive, transportation, energy systems, and robots.

Experimental results show that eSOL’s unique MCOS semi-priority-based algorithm significantly outperforms other scheduling methods when many-core systems are processing multiple threads with different workloads. The algorithm uses two types of schedulers that work concurrently to ensure both real-time response and high throughput.

MCOS is designed to support any of the various many-core processor architectures or instruction sets. eSOL will refine MCOS to support additional processors, improve operating system functions, and add development tools. eSOL plans to distribute the evaluation version of MCOS in the fourth quarter of 2013.

MCOS employs a distributed microkernel architecture that is unlike any existing single-core or multi-core RTOS architecture. It can support any processor no matter how many cores are implemented — from single-core processors to homogeneous and heterogeneous many-core processors with hundreds of cores. With MCOS, cache coherency mechanisms are not necessary.

Each MCOS microkernel consists of only minimal functions, including inter-core message passing, local thread scheduling, and thread management. A microkernel is allocated to every core. Other services such as device drivers, middleware components, and applications are distributed as thread servers and run on multiple cores. Threads running on different kinds of cores can communicate with each other through the microkernel’s message-passing function. Client-server model APIs are also used by middleware components and applications other than OS services. MCOS can also group cores into clusters and divide resources and server functions.

One scheduler ensures real-time reliability by allocating threads to specific cores according to the importance of the threads’ priorities: a withdrawn thread occupies a certain core and is executed on it until processing is completed. Real-time performance is assured: because core migration and execution interruption from other threads do not occur, developers can calculate the time each thread takes to complete its processing. The second load-sharing scheduler executes threads with lower priorities on rest cores according to the threads’ relative throughput and priorities.

MCOS uses the Symmetric Multi-Processing (SMP) programming method for applications that do not depend on particular cores to be executed. Because of this, developers can easily reuse software on processors with different numbers of cores. MCOS will be implemented with POSIX, ITRON, and AUTOSAR APIs so that developers can reuse software assets with those APIs.

More info: eSOL