Many-core processors achieve optimal energy efficiency and performance scalability by increasing or decreasing the number of cores in use according to processing requirements. Because of these features, many-core processors are ideal for advanced embedded applications requiring minimal power consumption in cyber-physical, image recognition, and energy systems as well as networking, automotive, transportation, and robotics.
The eMCOS—designed specifically for many-core processors—is the world’s first commercially available many-core RTOS for embedded use. eMCOS’s new OS architecture—unlike any existing RTOS architecture—can make the best use of many-core processors with dozens or hundreds of cores because it no longer depends on the cache coherency mechanism required by most existing RTOSes. eSOL's unique, patented scheduling algorithm ensures the real-time capability required in embedded systems as well as the high throughput and scalability expected from many-core processors. Application developers can use familiar development styles with eMCOS since it uses the same programming model and APIs as widely used RTOSes for single- and multi-core processors.
Distributed microkernel architecture
The eMCOS employs a distributed microkernel architecture that is different from any existing single-core or multi-core RTOS architecture.
A microkernel is allocated to every core to offer basic services, including inter-core message passing, local thread scheduling, and thread management. The microkernel is equipped with only minimal functions and is very compact.
Advanced OS services such as middleware components including file services and network protocols, and device drivers are provided by server threads. Server threads that run on the same microkernel are allocated to multiple cores.
Applications are also executed as threads on multiple cores. To efficiently use every core, the eMCOS microkernel schedules the execution order and core of each thread depending on the thread priority and core availability.The eMCOS also offers a core affinity function so developers can specify the core where a thread is executed.
Threads running on different cores communicate with each other through the microkernel’s message-passing function. Because the microkernel’s message-passing is hidden and automatic, application developers can use the OS services and middleware APIs like C functions without worrying about internal message-passing behavior. The eMCOS provides the thread pool library and Fast Messaging library that allow concurrent thread execution, synchronization, and communication with low overhead for highly parallelized applications, including codecs and image processing. It can also group cores into clusters to enable distributed management of OS resources, servers, and applications.
The eMCOS Semi-priority-based Scheduling™ algorithm ensures both high throughput and real-time capability
eSOL's unique scheduling algorithm (Japanese Patent No.5734941) ensures the real-time capability which is always required in embedded systems while achieving high throughput by balancing loads to leverage many-core performance. The algorithm uses two types of schedulers that work concurrently.
One scheduler ensures real-time processing by allocating higher priority threads to each core. Since these threads become the highest priority threads on each core, they are always executed when they are ready, assuring the real-time processing. For the remaining lower priority threads, another scheduler distributes and load-balances them over all the cores, using their thread priorities as the primary source of thread load calculation. The load balancing achieves high throughput.
Experimental results show that eSOL’s unique eMCOS semi-priority-based algorithm significantly outperforms other scheduling methods when many-core systems are processing multiple threads with different workloads.
Scalable support for processors from single core to many-core, and even in multi-chip structure
eMCOS can support any processors, no matter how many cores are implemented—from single-core processors to homogeneous and heterogeneous multi-core/many-core processors with hundreds of cores—, and even in multi-chip structure because eMCOS does not depend on cache coherency mechanisms.
30 percent faster than Linux
eMCOS has a track record of speeding up application performance by 30 percent compared to Linux.
Offers the same programming model and APIs as RTOSes for single- and multi-core processors
With the eMCOS, developers can apply the same programming methods they use with conventional multi-core RTOSes such as the eT-Kernel Multi-Core Edition—without having to worry about which cores will execute their applications. Thanks to this feature, they can reuse software on processors with different numbers of cores. The eMCOS provides normal C function APIs. Because the eMCOS supports POSIX and T-Kernel APIs, developers can reuse Linux, uITRON, and T-Kernel software assets. eMCOS is expected tosupport AUTOSAR in the future.
Dedicated development tools
The eMCOS IDE plug-in tools—including eMCOS-specific system analysis tools and utility software—are designed for use alongside the Eclipse-based IDE offered by many-core processor vendors when developing the eMCOS-based applications.
- MPPA®-256, Andey（Kalray, 256 cores）
- TILE-Gx8036（EZchip, 36 cores）
- RH850-based MCU emulator
- RH850-based MCU (Renesas Electronics, implemented on FPGAs with 16 hardware threads in 4 CPU cores—the virtual equivalent of 16 CPUs)
The eMCOS is designed to support every known many-core processor architecture and instruction set. The eMCOS will soon support additional many-core processors.