マルチコアプロセッサ対応リアルタイムOS

eT-Kernel™ MCE(Multi-Core Edition)は、マルチコアプロセッサを使う組込みシステムのためのリアルタイムOSです。デジタル情報家電や車載機器、モバイル機器など高機能な組込みシステムに最適です。初めてマルチコアプロセッサを利用する場合でも、既存のソフトウェア資産の再利用や、柔軟なシステム設計を可能にする工夫など、マルチコアプロセッサ向けのソフトウェア開発を進めやすいテクノロジが搭載されています。

SMP型プログラムとAMP型プログラムの混在が可能

eT-Kernel MCEは、ひとつのOSで、SMP型およびAMP型のソフトウェア構成を同時に実現できるリアルタイムOSです。


eT-Kernel MCEは、イーソル独自のユニークなスケジューリング機能を搭載しています。これにより、ひとつのシステム内で、SMP型/AMP型が混ざった複数個のプログラムを混在させることができるようになります。「Single Processor Mode (SPM) 」と「True SMP Mode (TSM) 」の基本のスケジューリングモードをベースに、合計4つのスケジューリングモードを用意しています。プログラムによって適切なモードを選択することで、高いスループットを実現できるSMP型プログラムのメリットと、高いリアルタイム性やソフトウェア資産の再利用性といったAMP型プログラムが持つメリットの両方を、ひとつのシステム内で実現できます。また、ひとつのOSですべてのCPUコア上のプログラムを制御しているため、コア間通信/同期のための特別なOSサービスは必要ありません。

このeT-Kernel MCEのスケジューリング方式により、次のようなメリットを同時に実現できます。

シングルコアプロセッサ利用時と同等のリアルタイム性の保証

AMP型のプログラムは、シングルコアプロセッサ上で動作する場合と同じように、ひとつのCPUコアを専有し、プログラムが予測可能な順序で実行されるため、プログラム内の各処理のリアルタイム性が保証されます。

プログラム全体で、最高の平均スループットを確保

SMP型のプログラムは、全体の平均スループットを最高レベルに引き上げることができます。個々の処理のリアルタイム性にこだわらない「ベストエフォート」型のプログラムに最適です。

異なるCPUコア上のプログラム間での通信・同期に、通常のAPIを利用可能

プログラム間で通信・同期をする場合には、実行されるCPUコアの違いを問わず、eT-Kernel MCEが提供する通信・同期APIを利用できます。このAPIは、通常タスク内で利用されるものと同じものですので、仕組みやAPIの使い方を新たに学習する必要がありません。また、ひとつのOSによりサービスが提供されるため、OS間通信にかかる時間を省くことができ、高速な通信・同期が可能です。

ソフトウェア資産の再利用が可能


シングルコアプロセッサ向けソフトウェア資産の再利用が容易

マルチコアプロセッサを意識していないシングルコアプロセッサ向けのソフトウェア資産でも、eT-Kernel MCEのスケジューリング方式を採用することで、マルチコアプロセッサ上で容易に再利用できます。


マルチコアプロセッサ対応開発環境としてeBinderを用意

eBinderを使うことで、シングルプロセッサを使用するときと同じ開発モデルを継承しながら、マルチコアプロセッサを使用時に特有の、複雑な問題を容易に解決できる機能・ツールを活用でき、マルチコアプロセッサ向けのソフトウェア開発が効率的にできます。それぞれのCPUコア上で実行されている個々のプログラムのデバッグのほか、協調動作するプログラム間やシステム全体の解析などを、PC1台で透過的に行うことができます。

ページトップへ戻る

スケジューリング方式

eT-Kernel MCEベースシステムでは、ひとつのマルチコアプロセッサ、ひとつのeT-Kernel MCE上に、1~複数個 (マルチコアプロセッサに内蔵されている個数まで) のAMP型またはSMP型プログラムを混在させることができます。これにより、プログラムの性格に応じて、AMP型またはSMP型それぞれのメリットを取り入れながら、多様で柔軟なシステム構成をとることが可能です。

これを可能にするのが、eT-Kernel MCEが提供する、ユニークなスケジューリング方式です。タスク生成時に、そのプログラムがどのモードで動作するかを指定します。スケジューリング方式として、基本となる次の2つのモードをベースに、合計4つのスケジューリングモードを用意しています。どのモードにおいても、優先度ベースのスケジューリング方式をとっています。


Single Processor Mode (SPM)

プログラムが動作する単一のCPUコアを開発者が指定できるモードです。これにより、プログラムはAMP型システムのように、決められたコア上でのみ実行されます。

SPMのメリット
シングルコアプロセッサ向けの、マルチコアプロセッサを意識していないソフトウェア資産の再利用が容易。
デバイスドライバの再利用にも有効。割込み処理ルーチンとドライバタスクでSPMを選択して特定のコアを指定すれば、シングルコアのドライバをそのまま動かせます。
シングルプロセッサや通常のAMP型システムと同様に、専用のCPUコアで動作し、SPM型プログラム以外のプログラムは実行されないため、従来通りのリアルタイム性の確保が可能。


True SMP Mode (TSM)

プログラムが動作するCPUコアを、OSが選択するモードです。プログラム内のタスクはその優先順位に応じて、空いているコアにその都度動的に割り当てられて実行されます。

TSMのメリット

  • OSによる動的な負荷分散
  • プログラム全体の平均スループットを最大限に引き上げることが可能

さらに、この基本のスケジューリングモードをベースにした、2つのスケジューリングモードがあります。

Single Processor Mode on TSM cores (SPM on TSM)

TSMプログラムを実行する複数のコア (TSMコア) の中から、プログラムが動作する単一のCPUコアを開発者が指定できるモードです。これにより、プログラムは、決められたコア上でしか実行されませんが、そのコア上ではその他のTSMプログラムやSRL-on-TSMプログラムも実行されます。

SPM on TSMのメリット

  • 2つのCPUコアしか持たないマルチコアプロセッサでも、SMP型/AMP型プログラムを混在できる
  • デバイスドライバの再利用に有効
  • 割り込み処理ルーチンとドライバタスクをSPM on TSMを選択して特定のコアを指定すれば、ドライバタスクのスピンロック処理が不要
  • SPMの場合に発生しやすいCPUコアのアイドル時間を減らし、CPUコア資源を有効活用できる


Serialized threads on TSM cores (SRL on TSM)

指定したタスクセット (通常はあるプロセスに属する全てのタスク) を直列化して実行するモードです。直列化とは、これらのタスクが複数のコアで同時に実行されない、ということを意味します。SPM及びSPM on TSMとその点においては同じですが、異なるのは、実行されるコアが固定ではなく、複数のTSMコアにまたがる点です。直列化は、あるプロセスに属するタスクセットを対象に行われ、他のプロセスに属するタスクに対しては行われません。これにより、複数プロセスを本モードで動作させると、プロセス内のタスク群にとってはシングルプロセッサと同じ直列化された動きが実現される一方、プロセスの単位では他のプロセスに対しロードバランシングが行われSMPの自動負荷分散のメリットを得ることができます。

SRL on TSMのメリット

  • シングルコアプロセッサ向けの、マルチコアプロセッサを意識していないソフトウェア資産でも、SMPスケジューリングで実行できる


SPM on TSM、SRL on TSMのシステム構成イメージ


 

4つのスケジューリングモードの比較

スケジューリングモード 実行コア スレッドのコア移動 動的負荷分散 他のコアによる干渉
Single Processor Mode
(SPM)
SPMコア No タスク生成時に固定 なし、または限定的
True SMP Mode (TSM) TSMコア Yes OSが自動調整 Yes
Single Processor Mode on
True SMP (SPM on TSM)
TSMコア No タスク生成時に固定 Yes
Serial on True SMP
(SRL on TSM)
TSMコア Yes タスクセット (プロセス) 毎に自動調整 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コアが空いているときに実行されてしまうなど、同期・排他のやり方に起因する問題が発生する場合があります。

ページトップへ戻る

トロンフォーラムのマルチプロセッサ対応MP T-Kernelとの関係
トロンフォーラムでは、マルチプロセッサ対応のMP T-Kernelの開発を進めています。イーソルは、これまでトロンフォーラムの幹事会員として、eT-Kernel MCEのノウハウやテクノロジをトロンフォーラムに還元し、MP T-Kernelの標準仕様作成に積極的に貢献してきました。(現在は一般会員)

ページトップへ戻る


採用事例


関連資料

新規CTA 新規CTA


関連動画


新規CTA ウェビナー「ここから始める T-Kernel ~基礎知識から導入メリットまで詳しく解説~」
[視聴所要時間:約50分]
2021年に配信したウェビナーをオンデマンド公開しています。
本ウェビナーでは、長年組込み業界およびT-Kernelに携わってきたイーソルが、T-Kernelの概要や、イーソルが提供するマイコンからマルチ・メニーコアまでサポートするリアルタイムOSなどについて解説します。

新規CTA ウェビナー「複雑化する組込みシステム開発を強力にサポートする組込みシステム開発向け統合開発環境eBinderのご紹介」
[視聴所要時間:約15分]
2020年に配信したウェビナーをオンデマンド公開しています。
本ウェビナーでは、多種多様なシステム開発の要求を強力にサポートするeT-Kernel向けの統合開発環境「eBinder」について、デモを交えて紹介します。



新規CTA

さらに詳しい情報をお求めの際は、
お気軽にお問い合わせください。

お問い合わせ

オンライン無料相談会もご利用ください。

Zoomなどのオンライン会議ツールで行える無料相談会を実施しています。
弊社社員と時間を設けて会話しながら相談したい、という場合は
ぜひこちらをご活用ください。

希望日時を指定して申し込む