マルチコアプロセッサ対応リアルタイムOS
概要
eT-Kernel Multi-Core Editionは、マルチコアプロセッサを使う組込みシステムのためのリアルタイムOSです。デジタル情報家電や車載機器、モバイル機器など次世代の高機能な組込みシステムに最適です。初めてマルチコアプロセッサを利用する場合でも、既存のソフトウェア資産の再利用や、柔軟なシステム設計を可能にする工夫など、マルチコアプロセッサ向けのソフトウェア開発を進めやすいテクノロジーが搭載されています。
SMP型プログラムとAMP型プログラムの混在が可能
eT-Kernel Multi-Core Editionは、ひとつのOSで、SMP型およびAMP型のソフトウェア構成を同時に実現できるリアルタイムOSです。

eT-Kernel Multi-Core Editionは、イーソル独自のユニークなスケジューリング機能を搭載しています。これにより、ひとつのシステム内で、SMP型/AMP型が混ざった複数個のプログラムを混在させることができるようになります。「Single Processor Mode (SPM) 」と「True SMP Mode (TSM) 」の基本のスケジューリングモードをベースに、合計4つのスケジューリングモードを用意しています。プログラムによって適切なモードを選択することで、高いスループットを実現できるSMP型プログラムのメリットと、高いリアルタイム性やソフトウェア資産の再利用性といったAMP型プログラムが持つメリットの両方を、ひとつのシステム内で実現できます。また、ひとつのOSですべてのCPUコア上のプログラムを制御しているため、コア間通信/同期のための特別なOSサービスは必要ありません。
このeT-Kernel Multi-Core Editionのスケジューリング方式により、次のようなメリットを同時に実現できます。
-
シングルコアプロセッサ利用時と同等の、リアルタイム性の保証
AMP型のプログラムは、シングルコアプロセッサ上で動作する場合と同じように、ひとつのCPUコアを専有し、プログラムが予測可能な順序で実行されるため、プログラム内の各処理のリアルタイム性が保証されます。 -
プログラム全体で、最高の平均スループットを確保
SMP型のプログラムは、全体の平均スループットを最高に引き上げることができます。個々の処理のリアルタイム性にこだわらない「ベストエフォート」型のプログラムに最適です。 -
異なるCPUコア上のプログラム間での通信・同期に、通常のAPIを利用可能
プログラム間で通信・同期をする場合には、実行されるCPUコアの違いを問わず、eT-Kernel Multi-Core Editionが提供する通信・同期APIを利用できます。このAPIは、通常タスク内で利用されるものと同じものですので、仕組みやAPIの使い方を新たに学習する必要がありません。また、ひとつのOSによりサービスが提供されるため、OS間通信にかかる時間を省くことができ、高速な通信・同期が可能です。
ソフトウェア資産の再利用が可能
シングルコアプロセッサ向けソフトウェア資産の再利用が容易
シングルコアプロセッサ向けの、マルチコアプロセッサを意識していないソフトウェア資産でも、eT-Kernel Multi-Core Editionのスケジューリング方式を採用することで、マルチコアプロセッサ上で容易に再利用できます。
オープン仕様のAPIを提供
T-KernelおよびT-Kernel/Standard Extensionが提供する標準APIと、POSIX をサポートしています。μITRONベースのソフトウェア資産に加え、UNIX、Linuxベースのソフトウェア資産が、eT-Kernel Multi-Core Edition上で動作します。
本格的なPOSIXをサポート
ほぼすべてのPOSIX APIをサポートしています。単なるラッパー (Wrapper) としてのサポートではなく、eT-Kernelコア内部に手を入れてチューニングすることで、性能を損なわずに、本格的なPOSIXの機能を実現しています。これにより、UNIX、Linuxベースのソフトウェア資産の再利用と、UNIXのエンジニアリソースの活用が容易にできます。
- The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2003 Editionをベースにし、「Base Definitions volume (XBD) 」と「System Interfaces volume (XSH) 」をサポート
- pthreadを完全サポート
- UNIXプログラムで多く使われている、シグナルをサポート
システム保護技術「メモリパーティショニング」でマルチコアシステムの信頼性・品質の確保を支援
オプションのeT-Kernel Multi-Core Edition Memory Partitioningで、マルチコアシステムの信頼性と品質の確保を支援します。Memory Management Unit(MMU)を利用する信頼性と品質へのニーズが高い大規模・高機能なシステムで、特に有効に機能します。
4つのプロファイルを活用し、スケーラブルな製品開発が可能
マルチコアプロセッサを利用したシステムにおいても、eT-Kernel/POSIX、eT-Kernel/Extended、eT-Kernel/Standard、eT-Kernel/Compactの4つのeT-Kernelプロファイルから、システムの規模と用途に応じて最適なものを選択できます。これらはコアとなるカーネルが同じなので、デバイスドライバやミドルウェアなどをカーネルアプリケーションとして、それぞれのプロファイル上で再利用することができます。プロダクトラインを利用して、製品のシリーズによって利用するOSのサービスを変えたいときなどに、プロファイルを変更するだけで、ソフトウェアを再利用しながら効率的に開発を進めることができます。
マルチコアプロセッサ対応開発環境としてeBinderを用意
eBinderを使うことで、シングルプロセッサを使用するときと同じ開発モデルを継承しながら、マルチコアプロセッサを使用時に特有の、複雑な問題を容易に解決できる機能・ツールを活用でき、マルチコアプロセッサ向けのソフトウェア開発が効率的にできます。それぞれのCPUコア上で実行されている個々のプログラムのデバッグのほか、協調動作するプログラム間やシステム全体の解析などを、PC1台で透過的に行うことができます。
スケジューリング方式
eT-Kernel Multi-Core Editionベースシステムでは、ひとつのマルチコアプロセッサ、ひとつのeT-Kernel Multi-Core Edition上に、1〜複数個 (マルチコアプロセッサに内蔵されている個数まで) のAMP型またはSMP型プログラムを混在させることができます。これにより、プログラムの性格に応じて、AMP型またはSMP型それぞれのメリットを取り入れながら、多様で柔軟なシステム構成をとることが可能です。
これを可能にするのが、eT-Kernel Multi-Core Editionが提供する、ユニークなスケジューリング方式です。タスク生成時に、そのプログラムがどのモードで動作するかを指定します。スケジューリング方式として、基本となる次の2つのモードをベースに、合計4つのスケジューリングモードを用意しています。どのモードにおいても、優先度ベースのスケジューリング方式をとっています。
| Single Processor Mode (SPM) |
|
プログラムが動作する単一のCPUコアを開発者が指定できるモードです。これにより、プログラムはAMP型システムのように、決められたコア上でのみ実行されます。 SPMのメリット
|
| True SMP Mode (TSM) |
|
プログラムが動作するCPUコアを、OSが選択するモードです。プログラム内のタスクはその優先順位に応じて、空いているコアにその都度動的に割り当てられて実行されます。 TSMのメリット
|

さらに、この基本のスケジューリングモードをベースにした、2つのスケジューリングモードがあります。
| Single Processor Mode on TSM cores (SPM on TSM) |
|
TSMプログラムを実行する複数のコア (TSMコア) の中から、プログラムが動作する単一のCPUコアを開発者が指定できるモードです。これにより、プログラムは、決められたコア上でしか実行されませんが、そのコア上ではその他のTSMプログラムやSRL-on-TSMプログラムも実行されます。 SPM on TSMのメリット
|
| Serialize threads on TSM cores (SRL on TSM) |
|
指定したタスクセット (通常はあるプロセスに属する全てのタスク) を直列化して実行するモードです。直列化とは、これらのタスクが複数のコアで同時に実行されない、ということを意味します。SPM及びSPM on TSMとその点においては同じですが、異なるのは、実行されるコアが固定ではなく、複数のTSMコアにまたがる点です。直列化は、あるプロセスに属するタスクセットを対象に行われ、他のプロセスに属するタスクに対しては行われません。これにより、複数プロセスを本モードで動作させると、プロセス内のタスク群にとってはシングルプロセッサと同じ直列化された動きが実現される一方、プロセスの単位では他のプロセスに対しロードバランシングが行われSMPの自動負荷分散のメリットを得ることができます。 SRL on TSMのメリット
|
SPM on TSM、SRL on TSMのシステム構成イメージ

4つのスケジューリングモードの比較
| スケジューリングモード | 実行コア | スレッドの コア移動 |
動的負荷分散 | 他の コアによる 干渉 |
|---|---|---|---|---|
| Single Processor Mode (SPM) | SPMコア | No | タスク生成時に固定 | なし、または限定的 |
| True SMP Mode (TSM) | TSMコア | Yes | OSが自動調整 | あり |
| Single Processor Mode on True SMP (SPM on TSM) | TSMコア | No | タスク生成時に固定 | あり |
| Serial on True SMP (SRL on TSM) | TSMコア | Yes | タスクセット (プロセス) 毎に自動調整 | あり |
システム構成の例
4つのCPUコアをもつマルチコアプロセッサを使用する際の、システム構成例です。SPM on TSM、SRL on TSMを使う場合、さらにバターンが増加します。
システム構成のパターン例

ソフトウェア資産の移行イメージ
Single Processor Mode (SPM) やSingle Processor Mode on TSM (SPM on TSM) 、Serial on TSM (SRL on TSM) を指定することで、シングルプロセッサ上の既存のソフトウェア資産を、素早く、容易にマルチコアプロセッサ上で再利用できます。既存のAMP型プログラムの移行も同様です。
以下は、AMP型システムを移行する際のイメージ図です。

| SMPとは?AMPとは? |
|---|
|
マルチコアプロセッサ上に構築するソフトウェア構成には、対称型マルチプロセッシング (Symmetrical multi-processing : SMP) と、非対称型マルチプロセッシング (Asymmetrical multi-processing : AMP) の2つがあります。 AMPとは、複数のCPUコアを持つシステムにおいて、それぞれのコアの役割を固定化し、それぞれのコア上で別々のプログラムを処理させる機能分散型のソフトウェア構成です。 一方SMPとは、それぞれのCPUコアの役割を決めず、単一のプログラムを複数のコアで処理する負荷分散型のソフトウェア構成です。 |
| SMP型プログラム構築時の注意点 |
|---|
|
SMP型のプログラムは、全体の平均スループットを最大限にできるメリットがありますが、そのコンセプトから、いくつか注意するべき点があります。 SMP型プログラムは、プログラムが複数のCPUコアに動的に分割して実行されるため、個々の処理の実行順序や割り当てられるCPUコアの予測が不可能になり、処理によってはリアルタイム性を確実に保証できない場合があります。また、従来のシングルプロセッサ向け既存プログラムでは、優先度ベースにスケジューリング方式に頼った排他を行っている場合、低優先度プログラムが、CPUコアが空いているときに実行されてしまうなど、同期・排他のやり方に起因する問題が発生する場合があります。 |
| T-Engineフォーラムのマルチプロセッサ対応MP T-Kernelとの関係 |
|---|
|
T-Engineフォーラムでは、マルチプロセッサ対応のMP T-Kernelの開発を進めています。イーソルは、T-Engineフォーラムの幹事会員として、eT-Kernel Multi-Core EditionのノウハウやテクノロジーをT-Engineフォーラムに還元し、MP T-Kernelの標準仕様作成に積極的に貢献していきます。 |
動作環境
| 項目 | 概要 |
|---|---|
| CPU |
eT-Kernel Multi-Core Editionは以下のCPUで動作実績があります。
|


