概要

eMCOS(エムコス)は、シングルコアからマルチ・メニーコアプロセッサまでをサポートした商用では世界初の組込みシステム向けスケーラブルリアルタイムOSです。これまでのリアルタイムOSとはまったく異なるアーキテクチャを採用することで、コア数の違いに加え、オンチップフラッシュマイコンやGPU、FPGAなどアーキテクチャが異なるヘテロジニアスなハードウェア構成をサポートするスケーラビリティを実現しています。さらに、独自のスケジューリングアルゴリズムを搭載することで、メニーコアで期待される高いパフォーマンスとスケーラビリティに加えて、組込みシステムに不可欠なリアルタイム性を両立しています。また、シングルコアプロセッサやマルチコアプロセッサと同じプログラミングモデルとインターフェースを利用した、従来の方法でアプリケーションを開発できます。

eMCOS、ソフトウェア開発用プラグインツールと各種ミドルウェアをパッケージ化した「eMCOS SDK」を提供しています。

分散型マイクロカーネルアーキテクチャ

μITRONやT-Kernelを含む従来のシングルコアおよびマルチコアプロセッサ向けリアルタイムOSとまったく異なる、「分散型マイクロカーネルアーキテクチャ」を採用しています。


マイクロカーネルは各コアに配置され、コア間通信を含むメッセージパッシング、コアローカルスケジューリング、スレッド管理などの基本サービスをそれぞれが提供します。マイクロカーネルは最低限の機能で構成されているため、非常にコンパクトです。

一方、ファイルサービスやネットワークなどのミドルウェアやデバイスドライバなどのより高度なOSサービスは、マイクロカーネルとは独立したサーバスレッドとして複数のコアに分散して配置され、サーバ・クライアントモデルで動作します。アプリケーションも同様にスレッドとして複数のコアで分散して実行されます。これらのスレッド群は、スレッド優先度と、各コアの稼働状況に応じ、すべてのコアを効率的に利用する様にマイクロカーネルによりスケジューリングされて実行されます。このようにスレッドの実行コアはeMCOSのスケジューリングにより決定されるのが基本ですが、必要に応じ、コアアフィニティの機能を利用して動作コアを固定する機能もサポートしています。 

スレッド間は、すべてマイクロカーネルのメッセージパッシングによって接続されます。ただしアプリケーションから見た場合、OSサービスやミドルウェアのAPIは、通常のC言語関数として利用できます。その際、メッセージパッシングなどの動作はそのインターフェース内部で実行されるため、APIの利用者は意識する必要がありません。また、コーデック、画像関連処理など、高度に並列化されたアプリケーションの実行には、低オーバヘッドで並列スレッド実行と同期・通信が可能なスレッドプールライブラリとFast Messagingライブラリを提供しています。

複数のコアをクラスタとしてグループ化することができ、各種OS資源やサーバ、そしてアプリケーション群を分散管理する仕組みを提供しています。

高スループットとリアルタイム性を両立させる独自の「セミプライオリティベーススケジューリング」

eMCOS独自のスケジューリングアルゴリズム「セミプライオリティベーススケジューリング」(特許第5734941号、5945617 取得)により、組込みシステムで重要なリアルタイム性の確保と、負荷分散による高いパフォーマンスを実現します。セミプライオリティスケジューリングでは、二種類のスケジューリングが同時に行われます。



一つ目のスケジューリングでは、優先度が高いほうから任意のプロセッサコア数分のスレッドが抽出され、指定された各プロセッサコアを専有して実行されます。プロセッサコアの移動や実行中断が発生せず、実行にかかる時間を計算できるため、リアルタイム性の保証ができます。もうひとつのスケジューリングでは、優先度の低いスレッド群が、処理量や優先度に応じて、残りのプロセッサコアで負荷分散して実行されます。

このセミプライオリティスケジューリングと、その他のスケジューリング方式をeMCOSプロトタイプで比較したところ、実際の組込みシステムに近い、各スレッドの処理量のばらつきが大きいスレッド構成で、非常に優れた性能を示します。

AUTOSAR仕様準拠プロファイル eMCOS AUTOSAR

eMCOS AUTOSARは、AUTOSAR Release 4.2.1準拠、SC(Scalability Class)1(基本機能)およびSC3(メモリ保護に関する拡張)に適合したプロファイルです。AUTOSAR APIをマイクロカーネルの拡張モジュールとして実装することで、既存のAUTOSAR OSの同等以上の性能とメモリサイズをシングルコア環境でも実現しています。

シングルコアから数百個のメニーコアまでスケーラブルにサポート

eMCOSは、シングルコアプロセッサから、キャッシュコヒーレンシ機能を持たない、数百個のホモジニアスおよびヘテロジニアス両方のメニーコアプロセッサ、マルチチップ構成まで、コア数を問わずスケーラブルにサポートします。

Linuxと比較して30%以上の高速化を実現

Linuxと比較して、アプリケーションレベルで30%以上の高速化実績があります。

従来と同じプログラミングモデルとAPIを使用可能

eMCOSのアプリケーションプログラミングモデルは「eT-Kernel Multi-Core Edition」などのマルチコアOSと同様に、CPUコアを意識する必要はありません。APIは通常のC言語関数インターフェースを利用できます。POSIX、AUTOSAR、T-KernelのAPIをサポートしているので、AUTOSAR、Linux、μITRONおよびT-Kernelのソフトウェア資産を再利用できます。

専用の開発ツール

メニーコアプロセッサを開発する半導体ベンダから提供されるEclipseベースの統合開発環境にプラグインして利用するイーソルの「eMCOS IDE Plug-in」を利用できます。eMCOS IDE Plug-inには、eMCOSに特化した各種システム解析ツールやユーティリティが含まれています。

対応プロセッサ

  • MPPA®-256, Andey(Kalray社、256コア搭載)
  • RH850ベースシリーズ各種(ルネサス エレクトロニクス社)
  • ARM Cortex-R/Aシリーズ各種

eMCOSは、プロセッサのアーキテクチャや命令セットを限定しないため、今後これ以外のプロセッサもサポートしていく予定です。

  • メールフォームはこちら
  • お電話はこちらから

    03-5302-1360