Compatible software for humans and processors.

Japanese
eSOLEmbedded,Engineering and Enabling Solution

Home > Embedded Systems Solution > Multi-Core Support > RTOS and Tools

Embedded Products Solution Contact us

T-Kernel for multicore processors

eT-Kernel Multi-Core Edition
T-Engine logo T-Engine appliance logo

Overview

The eT-Kernel Multi-Core Edition is a real-time operating system (OS) for next-generation embedded systems with multi-core. It is ideal for high performance embedded systems such as digital home appliances, automobile devices, and mobile devices. This real-time OS is loaded with features specific to multicore software development making the technology accessible even for first-time users.

Coexistence of SMP and AMP programs

The eT-Kernel Multi-Core Edition allows SMP and AMP software to coexist in a single real-time OS.

The eT-Kernel Multi-Core Edition has a unique scheduling feature called Blended Scheduling® for the coexistence of a variety of programs, both SMP and AMP, in a single system. There are two scheduling modes: "single processor mode (SPM)" and "true SMP mode (TSM)". To take advantage of both SMP and AMP programs, you can select an appropriate mode for each program, and achieve high throughput, real-time performance, and software reuse, all in a single system. Because one OS controls programs on all CPU cores, no special OS service is required for inter-core communication and synchronization.

The scheduling method (Blended Scheduling) of the eT-Kernel Multi-Core Edition has these advantages:

  • Guarantees real-time behavior equivalent to a single processor
    An AMP program occupies one CPU core, just as in a single processor environment, and a program is executed in a predictable order. Thus, real-time behavior of each process in a program can be guaranteed.
  • Provides the highest throughput for the entire system
    A SMP program can maximize the throughput of an entire system. It is optimal for a "best effort" type program in which the real-time behavior of each process is not very important.
  • Uses regular APIs for communication and synchronization between programs on different CPU cores
    Use the communication and synchronization APIs available from eT-Kernel Multi-Core Edition for interprocess communication and synchronization regardless of the process's CPU core. The APIs are the same as the ones used in regular tasks. A single OS reduces potential inter-OS communication difficulty.

Reusing existing software assets

Reuse of software assets for a single processor is easy

You can easily use existing single-processor software that was not necessarily intended for a multi-core environment by using the AMP scheduling method with a multi-core processor.


Open-spec APIs
The eT-Kernel Multi-Core Edition supports standard APIs available from T-Kernel, T-Kernel/Standard Extension, and POSIX. Software developed for UNIX or Linux, as well as µITRON-based software, can operate on the eT-Kernel Multi-Core Edition.

Strong support for POSIX

The eT-Kernel Multi-Core Edition supports most POSIX APIs. It goes beyond supporting a mere wrapper layer and ensures features and performance equivalent to any other POSIX OS by tuning the inside of the eT-Kernel core. It is easy for UNIX engineers to work with, and you can reuse UNIX or Linux based software.

  • Supports "Base Definitions volume (XBD)" and "System Interfaces volume (XSH)" based on The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2003 Edition
  • Provides full support of pthreads
  • Supports signals widely used in UNIX programs

Memory Partitioning - System protection for multi-core systems

The eT-Kernel Multi-Core Edition Memory Partitioning optional feature provides the highest level of reliability and security to multi-core systems. The option is best suited for large-scaled, multifunctional systems such as automotive applications, aerospace instruments, high-end consumer electronics, and office automation products with memory management units (MMUs) to attain high reliability and high quality within the system.

Four profiles for scalable product development

You can choose from four eT-Kernel profiles to fit the size and purpose of your multiprocessor-based system: eT-Kernel/POSIX, eT-Kernel/Extended, eT-Kernel/Standard, and eT-Kernel/Compact. Because these eT-Kernel profiles have the same core kernel, you can reuse device drivers and middleware with any of the profiles. This makes it easy to improve development efficiency when offering a product series by reusing application software but switching the OS.

eBinder: development environment for multi-core processor

eBinder improves software development efficiency in a multi-core environment by using the same development model as for a single processor while taking advantage of features and tools designed for the complex problems unique to multi-core. A single PC can debug individual programs running on separate CPU cores and analyze collaborating programs or the entire system transparently.

Back to top

Scheduling method - Blended Scheduling®

In an eT-Kernel Multi-Core Edition-based system, one or more AMP and SMP programs can coexist on a multi-core processor with a unified eT-Kernel Multi-Core Edition. The system structure is versatile and flexible with advantages from both AMP and SMP types, depending on the program's intended purpose.

This is achieved by Blended Scheduling, the unique scheduling method of the eT-Kernel Multi-Core Edition. There are two scheduling modes available, as described below. Select a mode when generating a task. Either mode works with priority-based scheduling.

Single-Processor Mode (SPM)

In this mode, a developer can specify a single CPU core to run a program. A program is executed only on a selected core, just as in an AMP system.

Advantages of SPM

True SMP Mode (TSM)

The OS selects a CPU core on which to run a program. Tasks in the program are dynamically allocated to an available core for execution, depending on their priority.

Advantages of TSM

Example of eT-Kernel Multi-Core Edition-based system

Based on the two basic scheduling modes of SPM and TSM, we offer two more scheduling modes.

Single Processor Mode on TSM cores (SPM on TSM)

SPM on TSM is the mode in which you can set a particular core among TSM cores to run your program. The program only runs on a specific core, but at the same time, other TSM programs and SRL on TSM programs can run on the same core.

Advantages of SPM on TSM

Serialized threads on TSM cores (SRL on TSM)

SRL on TSM serialize the execution of a task set (ususally tasks belonging to the same process). This 'serialize' means to never execute the multiple tasks on the multiple cores concurrently. This is simillar to SPM and SPM on TSM, however, it differs in the fact the executed core is not single, and the serialization is performed over multiple TSM cores. The serialization is performed against the tasks belonging to the same process, but not for tasks belonging to the other processes. This means if multiple processes are run in this mode, the tasks belonging to the same process are serialized, while load-balancing is performed at the scope of process to process level, allowing to benefit from the automatic load-balancing characteristic of SMP scheduling.

Advantages of SRL on TSM

Conceptual Image of SPM on TSM and SRL on TSM

SRL&SPM

Scheduling Mode Comparisons

Scheduling Mode Executed Core Thread migration Load balance Interference from other cores
Single Processor Mode (SPM) SPM Core No Fixed upon thread creation None or minimal
True SMP Mode (TSM) TSM Core Yes Auto balancing by OS Yes
Single Processor Mode on True SMP (SPM on TSM) TSM Core No Fixed upon thread creation Yes
Serial on True SMP (SRL on TSM) TSM Core Yes Fixed upon thread creation Yes

Back to top

Applied System Configurations

Here is an example of possible configurations on a multi-core processor with four cores (such as ARM11 MPCore).

System configuration patterns
System configuration pattern

Back to top

Image of existing software migration

You can quickly and easily reuse existing software from a single-processor environment on a multi-core processor by specifying Single Processor Mode (SPM). This is also true for transitioning an existing AMP program.

The following is a diagram for transitioning an AMP system.

Transition image of an AMP system
What is SMP? What is AMP?

There are two types of software structures on a multi-core processor: Symmetrical Multiprocessing (SMP) and Asymmetrical Multiprocessing (AMP).

AMP is a function-distribution software architecture that assigns fixed roles to each core.

On the other hand, SMP is a load-distribution software architecture that determines the roles of CPU cores dynamically.

Back to top

Notes for SMP program structuring

Although an SMP program will maximize the throughput for an entire program, there are a few precautions to be taken.

Because a program is dynamically divided and executed on multiple CPU cores, it is impossible to predict the execution order of individual processes or which CPU core executes what process. Real-time behavior may not be guaranteed for some processes. Also, if mutual exclusion is based on an existing program for a conventional single processor, a problem with synchronization or exclusion may arise, such as when a program with a low priority is executed whenever a CPU core is available.

Back to top

Relationship with MP T-Kernel for multiprocessor from T-Engine forum

The T-Engine forum is working on the development of an MP T-Kernel that is compatible with multi-core processors. eSOL, as a board member of the T-Engine forum, provides its knowledge and technology gained from the eT-Kernel Multi-Core Edition to the T-Engine forum to actively contribute to creating the standard specification of MP T-Kernel.

Back to top

Operating environment

Item Summary
CPU eT-Kernel Multi-Core Edition operates on these CPUs:
  • MPCore (ARM11 core)
  • Other multi-core processors will be supported soon.

* Blended Scheduling is a registered trademark of eSOL Co., Ltd.

Back to top

Contact us

Back to top

Contact us