Overview

eMCOS is the world’s first commercially available, ultra-scalable Real-Time Operating System using the distributed micro-kernel approach. eMCOS’s new OS architecture—unlike any existing RTOS architecture—enables scalability to support not only increasing core counts, but also heterogeneous hardware configurations, include different architectures such as on-chip flash microcontrollers, GPUs, and FPGAs. The platform is not only already ported to several hardware architectures, but can also be easily ported to new platforms with its highly-portable source code and design. 


In addition, eSOL's unique scheduling algorithm provides the real-time capabilities essential to embedded systems as well as the high performance and scalability expected from many-core processors. Application developers can use familiar development styles with eMCOS since it uses the same programming model and interface as other widely used RTOSes for single- and multi-core processors.

8 Benefits of using eMCOS 

  1. The world's first Real-Time OS supporting heterogeneous multi-core configurations  
  2. Improved throughput while maintaining real-time performance  
  3. High performance, true parallel processing  
  4. Completely separate apps with different reliability but work closely together  
  5. Time protection for more secured system integration  
  6. Support for any core configuration without application modification  
  7. Straight forward and immediate support for platforms such as ROS and AUTOSAR  
  8. Rich functions of general-purpose OSes (Linux, Android etc.) easy to add to the system.  

Other features

・ISO 26262 ASIL D certification   
・Faster than Linux by 30% or more    
・Enables use of existing programming models and APIs  
・Dedicated development tools

Distributed microkernel architecture


A Distributed Microkernel Architecture is used as a new architecture for enabling support from single-core controllers to heterogeneous multi-core and multi-chip processor configurations.


An independent microkernel is running in each core and provides basic services such as inter-core message passing, core local scheduling, thread management and interrupt management.The microkernel has an extremely compact design and consists of only minimal functions.

On the other hand, more advanced OS services, such as file services and network services as well as other middleware and device drivers are located in the same core or distributed on multiple cores as thread servers independent from the microkernel, operating under a client-server model. In the same way, applications are also
distributed and executed in a set of cores as threads. To ensure that all cores are used efficiently, these thread groups are scheduled and executed using the microkernel based on the thread priority and the operating status of each core.

Typically, the core executing the thread is determined by eMCOS scheduling including automatic
load balancing, but when required, a core affinity function can be used to fix the core running the function.
Threads are all connected by microkernel message-passing. However, when viewed from the application, the OS services and middleware APIs can be used as normal C/C++ language functions. Thanks to the integration of the message-passing functionality, user APIs do not need to be aware of this underlying mechanism. Also, to execute highly-parallelized applications such as coding and image processing, thread-pool and fast messaging libraries are provided to enable low-overhead communication and synchronization with parallel thread execution.

Back to top of the page


Semi-priority-based Scheduling

eMCOS's unique scheduling algorithm "Semi-priority-based Scheduling" (Japanese Patent No. 5734941, 5945617) ensures the real-time determinism important to many embedded systems, while achieving higher performance through load balancing. In Semi-priority-based Scheduling, two types of schedulers work concurrently.




The first scheduler runs independently on each core, and uses a classic priority-based algorithm to select the thread to run. Because each kernel is running independently, scheduling and context-switching happens in an optimized way, comparable to a single-core system, and without need for inter-core synchronization.

The second scheduler distributes the load by periodically measuring the CPU usage of each thread, and executes thread groups with low priority using the remaining processor cores based on the threads' relative throughput and priority. When appropriate, this second scheduler can relocate low-priority threads to other, less busy cores, both best performance.
 
High-priority threads are left untouched, to improve the system determinism.

Because processor core migration and execution interruptions do not occur, developers can calculate the time each thread takes to complete processing within the required real-time boundaries. 

A comparison using an eMCOS prototype shows that semi-priority-based scheduling significantly outperforms other scheduling methods in thread configurations with high variation between thread workloads.

Back to top of the page


High efficiency through parallel processing

Micro kernel operates independently on each core, reducing resource contention and providing high throughput.
This is made possible as the thread control blocks (TCBs) for each core are separated from one another, resulting thread switching on their own cores to be interference-free from other cores.


 
Back to top of the page 


Completely isolated and tightly coupled applications with different reliability 

As applications operate independently on each core, it provides a complete isolation between general and safety-critical applications. Moreover, applications are tightly coupled with one other through kernel-level lightweight messages.



Back to top of the page


Enhancement on system integration with Time Protection features 

Applications can be scheduled in partition basis. While a partition is being executed, it will not be affected by another partitions.
As the behavior within the partitions are preserved, inconsistencies due to timing discrepancies caused by integrating separately developed applications into a single system are less likely to occur, thus making system integration much easier. 
The time which each application can run in a partition is confined to an allocated set time (budget). This prevents abnormal application behaviors from impacting other applications
and operating system.




Back to top of the page


Support from Single-core to Heterogeneous Multi/Many-core 

eMCOS supports scalability for a variety of processor structures, from single-core microcontrollers to multi/many-core microcomputers and multi-chip system architectures. As for multi-/many-core processors, the RTOS is also compatible with homogeneous multi-core processors without a cache coherency function and with heterogeneous multi-core processors of different architectures.




Back to top of the page


POSIX-compliant profile “eMCOS POSIX”  

eMCOS POSIX is a profile compliant with POSIX 1003.13 PSE 53, making multi-process programming possible. POSIX specifications
at API settings are supported while keeping the scalability and real-time performance capabilities of eMCOS unchanged.
Various libraries that use POSIX as an OS, such as ROS and AUTOSAR Adaptive Platform, can be easily added to the system.

Back to top of the page


Rich functions of general-purpose OSes (Linux, Android etc.) easy to add to the system   



Integration of both robust real-time applications on RTOS and feature-rich applications on general-purpose OS running concurrently in a single hardware platform.




eMCOS Hypervisor is implemented as an extension to the POSIX-compatible eMCOS POSIX RTOS. This means that real-time and safety-critical applications for eMCOS POSIX can be deployed next to Linux and Android guest OSes on the same hardware platform. This opens up a new dimension of scalability for eMCOS, providing users with greater scope for integrating related functions within a system while continuing to use their existing Linux- or Android-based platforms on eMCOS Hypervisor with minimal changes. Linux and Android guest-OSes provide the necessary POSIX-compliant API for an easy existing code reuse, as well as they support a large number of graphics display solutions and open communication protocols. The combination brings greater flexibility for implementing more advanced, open and diverse "mixed-criticality" systems.  

Back to top of the page


ISO 26262 ASIL D certification

In March 2018, eMCOS was certified for the highest safety level (ASIL D) of the functional safety standard ISO 26262 (Automotive) by SGS-TÜV Saar GmbH, a German third-party organization that certifies product to relevant Functional Safety standards.
eSOL provides a Safety Manual and Safety Report as safety related documents. The Safety Manual describes the safety concepts for eMCOS , measures for achieving these concepts, and validation methods, as well as methods for using eMCOS that take effects on system safety into account. The Safety Report describes the results of validation performed by using the validation methods described in the Safety Manual. Compared to the use of a non-certified operating system, usage of these safety-related documents reduces the work required for creating test use cases, testing, creating evidence based on tests, and explaining safety related to the operating system. This reduces the cost of compliance with standards for your product. 


eMCOS  has received the following third-party certification for functional safety standards. 
・ISO 26262 Automotive Safety Integrity Level D (ASIL D) for automotive products

Back to top of the page



Enables speeds of up to 30% faster compared to Linux

Speed improvement of 30% and more has been obtained at the application level compared to Linux on selected benchmarks.
Video: High-Performance with eMCOS POSIX scheduling

Back to top of the page


Enables use of existing programming models and APIs

In the same way as multi-core operating systems like the eT-Kernel MCE, the eMCOS application programming model is independent of the underlying CPU instruction set.The APIs can use the regular C or C++ languages, with additional language interpreters available on demand. Support for POSIX and AUTOSAR APIs means that AUTOSAR and Linux software assets can also be reused.

Back to top of the page

Customized development tools and kits

For application development, you can take advantage of eBinder, an eclipse-based integrated development environment that supports plug-in. Our Professional Services provide one stop services for product support, customization, and porting. In addition, runtime software and development tools such as the Board Support Package (BSP) includes eMCOS, various middleware, and device drivers will be provided as part of the eMCOS SDK to support efficient development of high-performance applications.

Back to top of the page



Related materials

Catalog: Embedded Software Platform Products and Services Leaflet: Embedded Platform Solutions with RTOS Panel: Advantages of eMCOS scheduling

Materials available for Download!


Back to top of the page