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.
Distributed microkernel architecture
eMCOS employs a distributed microkernel architecture that is very different from other single-core or multi-core RTOS architecture, including μITRON and T-Kernel.
An independent microkernel runs in each core to provide basic services such as inter-core message passing, core local scheduling, and thread management. The microkernel is equipped with only minimal functions and is very compact, but most importantly is using its core resources independently from instances on other cores.
Advanced operating system services, such as file services, network and other middleware, and device drivers, are distributed on multiple cores as thread servers independent from the microkernel, operating under a client-server model. Applications are also distributed and executed as threads on multiple cores.
Where MMU and the notion of user-mode is available, threads can run either in kernel, privileged mode, or in non-privileged, user processes. Threads running in user processes can only share data with other threads in the same process (except when memory is explicitly shared between multiple processes).
Threads can communicate using message-passing, without caring where the thread is physically running: the kernels running on each core interact to keep the inter-thread communication transparent, location-independent. This is especially useful when application threads use the POSIX API, and can naturally interact with threads running in the same or other contexts (processes and cores).
Separately, to execute highly parallelized applications such as coding and image processing, a thread pool library and fast messaging library are provided to enable communication and synchronization with parallel thread execution using low overhead.
eMCOS can also group cores into clusters to enable distributed management of operating system resources, servers, and applications, creating islands of computing that can still communicate in a natural, location-independent way using the eMCOS API.
Semi-priority-based Scheduling™ ensures both high throughput and real-time capability
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.
eMCOS AUTOSAR, a profile compliant with AUTOSAR Classic Platform
eMCOS AUTOSAR is a profile compliant with AUTOSAR Classic Platform Release 4.2.1, SC1 (Scalability Class 1, Basic functions) and SC3 (Extension for memory protection), with multicore support. The AUTOSAR Os API is implemented as an extension module of the microkernel. Because eMCOS is by design made of core-specific instances, performance and memory size are comparable other single-core AUTOSAR Classic Platform Os products .
ISO 26262 ASIL D certification
In March 2018, eMCOS AUTOSAR 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
eSOL provides a Safety Manual and Safety Report as safety related documents.
The Safety Manual describes the safety concepts for eMCOS AUTOSAR, measures for
achieving these concepts, and validation methods, as well as methods for using
eMCOS AUTOSAR 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 AUTOSAR has received the following third-party certification for
functional safety standards. |
・ISO 26262 Automotive Safety Integrity Level D (ASIL D) for automotive products
| || |
|SGS-TÜV Saar Certification, Compliance Certificate |
* Click to enlarge
Supports scalability from single-core processors to many-core processors with hundreds of cores
eMCOS can offer scalable system performance regardless of the number of
cores, from single-core processors to homogeneous and heterogeneous many-core
processors with hundreds of cores, as well as multi-chip configurations,
without a cache coherency mechanism.
Faster than Linux by 30% or more
eMCOS has a track record of speeding up application performance by 30% or more compared to Linux on selected applications.
Enables use of existing programming models and APIs
In the same way as multi-core operating systems like the eT-Kernel Multi-Core Edition, 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.
Dedicated development tools
eSOL's eMCOS IDE plug-in can be used as a plug-in for Eclipse-based integrated
development environments offered by some semiconductor vendors. The eMCOS IDE Plug-in includes analysis tools and
utilities for various systems designed specifically for eMCOS.
On other platforms, this plugin is integrated as part of the eBinder development suite.