eMCOS(エムコス)は、マイコン、シングルコアからマルチ・メニーコアプロセッサ、マルチチップまでをスケーラブルにサポートした、商用では世界初の組込みシステム向けスケーラブルリアルタイムOSです。これまでのリアルタイムOSとはまったく異なるアーキテクチャを採用することで、コア数の違いに加え、オンチップフラッシュマイコンやGPU、FPGAなどアーキテクチャが異なるヘテロジニアスなハードウェア構成をサポートするスケーラビリティを実現しています。さらに、独自のスケジューリングアルゴリズムを搭載することで、メニーコアで期待される高いパフォーマンスとスケーラビリティに加えて、組込みシステムに不可欠なリアルタイム性を両立しています。また、シングルコアプロセッサやマルチコアプロセッサと同じプログラミングモデルとインターフェースを利用した、従来の方法でアプリケーションを開発できます。
・Linuxと比較して30%以上の高速化を実現
▼ ・従来と同じプログラミングモデルとAPIを使用可能
▼ ・専用の開発ツールおよび開発キット
▼ ・対応プロセッサ
▼
分散型マイクロカーネルアーキテクチャ
シングルコアからヘテロジニアスマルチコア、マルチチップに対応可能な新アーキテクチャとして「分散型マイクロカーネルアーキテクチャ」を採用しています。
マイクロカーネルは各コアに配置され、コア間通信を含むメッセージパッシング、コアローカルスケジューリング、スレッド管理、割込み管理などの基本サービスをそれぞれが提供します。マイクロカーネルは必要最小限の機能で構成されており、非常にコンパクトです。
一方、ファイルサービスやネットワークなどのミドルウェアやデバイスドライバなどのより高度なOSサービスは、マイクロカーネルとは独立したサーバスレッドとして同一または複数のコアに分散して配置され、サーバ・クライアントモデルで動作します。アプリケーションも同様にスレッドとして同一または複数のコアで分散して実行されます。これらのスレッド群は、スレッド優先度と、各コアの稼働状況に応じ、すべてのコアを効率的に利用する様にマイクロカーネルによりスケジューリングされて実行されます。このようにスレッドの実行コアはeMCOSのスケジューリングにより決定されるのが基本ですが、必要に応じ、コアアフィニティの機能を利用して動作コアを固定する機能もサポートしています。
スレッド間は、すべてマイクロカーネルのメッセージパッシングによって接続されます。ただしアプリケーションから見た場合、OSサービスやミドルウェアのAPIは、通常のC言語関数として利用できます。その際、メッセージパッシングなどの動作はそのインターフェース内部で実行されるため、APIの利用者は意識する必要がありません。また、コーデック、画像関連処理など、高度に並列化されたアプリケーションのために、低オーバヘッドで並列スレッド実行と同期・通信が可能なスレッドプールと高速メッセージ機能を提供しています。
△ページトップへ戻る
セミプライオリティベーススケジューリング
eMCOS独自のスケジューリングアルゴリズム「セミプライオリティベーススケジューリング」(特許第5734941号、5945617 取得)により、組込みシステムで重要なリアルタイム性の確保と、負荷分散による高いパフォーマンスを実現します。セミプライオリティスケジューリングでは、二種類のスケジューリングが同時に行われます。

一つ目のスケジューリングでは、優先度が高いほうから任意のプロセッサコア数分のスレッドが抽出され、指定された各プロセッサコアを専有して実行されます。プロセッサコアの移動や実行中断が発生せず、実行にかかる時間を計算できるため、リアルタイム性の保証ができます。もうひとつのスケジューリングでは、優先度の低いスレッド群が、処理量や優先度に応じて、残りのプロセッサコアで負荷分散して実行されます。
このセミプライオリティスケジューリングと、その他のスケジューリング方式をeMCOSプロトタイプで比較したところ、実際の組込みシステムに近い、各スレッドの処理量のばらつきが大きいスレッド構成で、非常に優れた性能を示します。
△ページトップへ戻る
高効率な真の並列処理を実現
コアごとにOSが独立して動作するため、リソースの競合が少なく、高いスループットを実現します。
例えば、TCB (Thread Control Block)が分かれているため、自コアのスレッドスイッチが他コアのスレッドスイッチにより影響されません。
※クリックすると拡大画像が表示されます。

△ページトップへ戻る
信頼性の異なるアプリケーションを完全に分離しつつ密に連携
コアごとに独立して動作するため、高信頼性アプリケーションと一般アプリケーションを完全に分離できます。しかも、アプリケーション同士はカーネルレベルの軽量メッセージにより密に結合して動作することができます。
※クリックすると拡大画像が表示されます。

システム結合の安全性をより高める時間保護機能
アプリケーションをPartition単位でスケジュールすることができます。あるPartitionがスケジューリングされている間は、他のPartitionに割り込まれることはありません。
別々に開発されたアプリケーション群を統合しても、Partition内の振る舞いは維持されるため、システム結合時に生じるタイミングのずれによる不整合等が発生しにくく、システムの統合を容易にすることができます。
各アプリケーションが実行可能な時間は、設定された時間(バジェット)に制限されます。そのため、アプリケーションの暴走が、他のアプリケーションやOSに影響することを防ぐことができます。
※クリックすると拡大画像が表示されます。

△ページトップへ戻る
シングルコアからヘテロジニアスマルチコア・メニーコアまで対応
eMCOSは、シングルコアのマイコンから、マルチコア、メニ―コア、マルチチップ構成まで、様々な構成のプロセッサをスケーラブルにサポートします。また、マルチ・メニ―コアプロセッサでは、キャッシュコヒーレンシ機能を持たないホモジニアスマルチコアや、異なるアーキテクチャで構成されるヘテロジニアスマルチコアプロセッサにも対応可能です。
※クリックすると拡大画像が表示されます。

POSIX仕様準拠プロファイル「eMCOS POSIX」
eMCOS POSIXはPOSIX 1003.13 PSE 53に準拠したプロファイルであり、マルチプロセスプログラミングが可能です。eMCOSが持つスケーラビリティやリアルタイム性、パフォーマンスなどの特長をそのままに、POSIX仕様のAPIセットをサポートします。ROSやAUTOSAR Adaptive Platformなど、OSとしてPOSIXを利用する様々な既存ライブラリを取り込めるので、容易にシステムに機能を追加できます。
△ページトップへ戻る
汎用OSの豊富な機能も、容易にシステムに追加

リアルタイム動作を保証しながら、汎用OSも実行します。
リアルタイムアプリケーションとリッチな機能を組み合わせたシステムを構築できます。
eMCOS HypervisorはPOSIX互換のリアルタイムOSであるeMCOS POSIX上に拡張機能として実現されています。そのためeMCOS POSIX上のアプリケーションのリアルタイム性はそのままに、LinuxやAndroidを組み込んだシステムを追加することができます。これはeMCOSのスケーラビリティをより一層高めるものです。最小限の変更で既存のLinuxやAndroidベースのプラットフォームを活用できるので、ユーザはシステム内の関連機能の統合をより一層進めることができます。これにより更に高機能で多彩な"ミックスド・クリティカル"システムを容易に構築することが可能になります。
△ページトップへ戻る
ISO 26262 ASIL D認証実績を有す
eMCOSは、2018年3月に機能安全規格の第三者認証機関であるドイツのSGS-TUV Saar GmbH社より、機能安全規格ISO 26262(自動車)の最高の安全度水準(ASIL D)の認証を受けた実績を有します。
イーソルは、セーフティ関連ドキュメントとして、セーフティ・マニュアルとセーフティ・レポートを提供します。セーフティ・マニュアルには、eMCOSの安全コンセプトや、その達成方策と妥当性確認方法、ならびにシステムの安全性への影響を考慮したeMCOSの使用方法が記載されています。セーフティ・レポートには、セーフティ・マニュアルに記載されている妥当性確認方法を用いた妥当性確認結果が記載されています。このセーフティ関連ドキュメントを活用することにより、非認証OSを採用する場合と比べて、テストユースケースの作成、テスト、テストに基づくエビデンスの作成や、OSに関わる安全性の説明作業を省力化でき、ユーザの最終製品の規格適合にかかるコストを低減できます。
 |
eMCOS は、以下の機能安全規格の第三者認証を取得しています。
・自動車向け ISO 26262 ASIL D
|
|
|
△ページトップへ戻る
Linuxと比較して30%以上の高速化を実現
Linuxと比較して、アプリケーションレベルで30%以上の高速化実績があります。
△ページトップへ戻る
従来と同じプログラミングモデルとAPIを使用可能
eMCOSのアプリケーションプログラミングモデルは「eT-Kernel MCE」などのマルチコアOSと同様に、CPUコアを意識する必要はありません。APIは通常のC言語関数インターフェースを利用できます。POSIX、AUTOSARのAPIをサポートしているので、AUTOSAR、Linuxのソフトウェア資産を再利用できます。
△ページトップへ戻る
専用の開発ツールおよび開発キット
アプリケーション開発には、プラグイン拡張が容易な統合開発環境「eBinder」を利用できます。製品サポートやカスタマイズ、ポーティングを含むプロフェッショナルサービスが一元化して提供されます。加えて、eMCOSと各種ミドルウェアおよびデバイスドライバを含むBoard Support Package(BSP)を含むランタイムソフトウェアと開発ツールで構成される「eMCOS SDK」を提供しているため、高パフォーマンスなアプリケーションを効率的に開発することが可能です。
△ページトップへ戻る
対応プロセッサ
- MPPA®-256, Bostan(Kalray社、256コア搭載)
MPPA® Coolidge™(Kalray社、80コア搭載)
- RH850ベースシリーズ各種(ルネサス エレクトロニクス社)
- ARM Cortex-R/Aシリーズ各種
・Renesas R-Car H3
・Xilinx Zynq UltraScale + MPSoC
eMCOSは、プロセッサのアーキテクチャや命令セットを限定しないため、今後これ以外のプロセッサもサポートしていく予定です。
△ページトップへ戻る
関連資料
以下より、総合カタログをダウンロードいただけます。