T-Kernel for multicore processors
- Read our whitepaper:
Blending asymmetric and symmetric multiprocessing with a single OS on ARM11 MPCore
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.
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
- Reuse existing software from a single-processor system, that was not originally intended for a multi-core processor
- Guarantees real-time behavior for individual processes just like with a single processor
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
- Maximizes the performance of an entire 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
- SMP and AMP programs can coexist even on a multi-core processor that has only two cores.
- Reuse of Device Drivers;
Using SPM on TSM, there is no need to spin-lock a driver task by assigning ISR and the driver task to a specific core. - Because of the SPM characteristics, you can utilize CPU resources better by reducing CPU idle time.
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
- You can use SMP scheduling for your legacy software designed for single-core environments.
Conceptual Image of SPM on TSM and SRL on TSM
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 |
Applied System Configurations
Here is an example of possible configurations on a multi-core processor with four cores (such as ARM11 MPCore).
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.
| 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. |
| 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. |
| 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. |
Operating environment
| Item | Summary |
|---|---|
| CPU | eT-Kernel Multi-Core Edition operates on these CPUs:
|
* Blended Scheduling is a registered trademark of eSOL Co., Ltd.
Contact us
- Click here for more information.
- Click here for information on customization or contract development.





