Embedded software provider eSol has just completed prototype development of a real-time OS for many-core processors, tentatively called the Many-Core real-time OS (MCOS).
According to Masaki Gondo, Software Chief Technology Officer and General Manager of Technology Headquarters at eSOL, MCOS will be the world’s first commercial RTOS for embedded many-core processors.
Starting with its proven eT-Kernel Multi-Core Edition real-time OS, he said, eSol has developed in MCOS a completely new OS architecture different from any previous multi-core real-time OSes. For example, 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, said Gondo, 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.
eSOL's MCOS is currently in use on the Renesas Electronics RH850-based MPU implemented on FPGAs with 16 hardware threads in 4 CPU cores—the virtual equivalent of 16 CPUs. eSOL is continuing its proactive RTOS research and development for many-core processors as they begin to enter the market.
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, said Gondo,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.
“The number of cores on a processor continues to increase in both enterprise and embedded systems,” said Gondo. “Currently, popular OS architectures are based on the premise that a processor should have a cache coherency mechanism, and therefore only cover about four cores at most. Many previous studies pointed out that a new and different OS architecture could support more cores.”
Experimental results, he said, 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.
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.
“We believe that many-core technology is one of the most promising future technologies for embedded systems, which have more stringent power consumption and cost constraints than enterprise systems,” said Gondo.