eMCOS®の特長
先進のマルチカーネル設計
eMCOSは、先進のマルチカーネルアーキテクチャ(別名、分散型マイクロカーネル) をベースとして、マイコン、シングルコアからマルチ・メニーコアプロセッサ、マルチチップまでをスケーラブルにサポートした、商用では世界初の組込みシステム向けスケーラブルリアルタイムOSです。この新しいオペレーティングシステムアーキテクチャは、他のすべての従来型リアルタイムOSアーキテクチャと異なり、コア数の増加だけでなく、ヘテロジニアスハードウェア構成にも対応するスケーラビリティを提供します。これには、オンチップフラッシュ、マイクロコントローラ、SoC、DSP、FPGAなど、さまざまなアーキテクチャが含まれます。プラットフォームがさまざまなハードウェアアーキテクチャにすでに移植されているだけでなく、移植性の高いソースコードと設計により、新しいプラットフォームへの移行も容易です。
シングルコアの時代に設計された従来のシングルマイクロカーネルOSアーキテクチャでは、異なるプロセッサアーキテクチャを統合的に処理できないため、最適なパフォーマンスを実現することはできません。ヘテロジニアスマルチ/メニーコアコンピューティングを用いた高効率的なHPCを実現するには、先進のマルチカーネルアーキテクチャから成るOSが必要です。こうしたOSは、それ自体が高い並列性能を持ち、各プロセッサがヘテロジニアスコンピューティングに最適化された独立型のマイクロカーネルを備えています。
また、eMCOS独自の特許取得済みスケジューリングアルゴリズムにより、マルチ・メニーコアプロセッサに期待されるハイパフォーマンスを実現しながら、組込みシステムに不可欠なリアルタイム機能を提供します。
eMCOSは、これらの優れた独自機能を備えていると同時に、広く利用されているシングル/マルチコアプロセッサ向けリアルタイムOSと同じプログラミングモデルとインターフェイスを提供しているため、アプリケーション開発者は使い慣れた開発スタイルを用いることができます。
信頼性の異なるアプリケーションを完全に分離しつつ密に連携
アプリケーションはコアごとに独立して処理されるため、アプリケーション間の完全な分離が実現されます。
別々のコアにあるアプリケーション同士は、軽量で非常に高速なメッセージ機能で通信できます。
先進のマルチカーネル(分散型マイクロカーネル )
マルチカーネルにおいては、独立したマイクロカーネルが各コア内で動作し(システムに内包されたシステム)、それぞれがコア間のメッセージのやり取り、コアローカルのスケジューリング、スレッド管理といった基本サービスを提供します。マイクロカーネルは軽量かつ高速な機能のみで構成されており、非常にコンパクトです。
ファイルサービスやネットワークサービスなどの上位のOSサービスに加え、他のミドルウェアやデバイスドライバも、マイクロカーネルとは独立したスレッドサーバとして複数のコアに分散され、サービス指向アーキテクチャ(SOA)のクライアントサーバモデルに基づいて動作します。
アプリケーションはプロセスに分割され、プロセスはスレッドに分割されます。これらのスレッドは、異なるコア上で並列に処理できます。すべてのコアを効率的に活用するため、これらのスレッドグループは、スレッドの優先度と個々のコアの稼働状態に基づいてスケジュールされ、実行されます。
ハイパフォーマンスな真の並列処理
スレッドは、すべてマイクロカーネルのメッセージ伝送によって相互接続されています。ただしアプリケーションから見た場合、OSサービスやミドルウェアのAPIは、通常のC/C++言語の関数のように利用できます。メッセージパッシング機能の統合により、ユーザAPIはこうした基本的メカニズムをさらに意識する必要はありません。
コアごとにマイクロカーネルが独立して動作するため、リソースの競合が少なく、高いスループットを実現します。各コアのスレッドデータベース(TDB) を常に分離することで、これを可能にしています。よって、あるコアのスレッドの切り替えが、他のコアに影響を与えることはありません。
従来の(シングル)マイクロカーネルリアルタイムOSの場合、 シングルスレッドデータベースのみに基づいているため、異なるカーネル間で通信があると常にすべてのカーネルが停止します。つまり、ユーザーアプリケーションはグローバルカーネルロックに対処する必要があり、それによりアプリケーションの動作が複雑になるということです。
先進のマルチカーネルの場合、コアごとにカーネルとそのスレッドデータベースが割り当てられています。この結果、カーネル間の通信中は、通信するカーネルのローカル同期ロックは短時間で済みます。つまり、一方ではアプリケーションの通信によるリアルタイムOSのボトルネックが減り、他方では優れた無干渉(FFI)性能の向上により機能安全が高まるということです。
次に示すのは、コアの数によってタスク切り替え時間がどれくらい増えるかについて、従来のマイクロカーネルリアルタイムOSと先進のマルチカーネルリアルタイムOSとを比較したものです。後者はコアの数に全く影響されていないことが分かります。
コーディングや画像処理など、高度に並列化されたアプリケーションを実行するために、スレッドプールと高速メッセージングライブラリも提供されており、最小限の労力で並列スレッド実行のための通信と同期を行うことができます。
ページトップへ戻る
特許取得済みのセミプライオリティベーススケジューラー
セミプライオリティベーススケジューリング
eMCOSの特許取得済みスケジューリングアルゴリズム「セミプライオリティベーススケジューリング」(日本特許第5734941号、5945617号)は、ロードバランシングを通じて最大限のパフォーマンスを提供しながら、組込みシステムにおいて鍵となるリアルタイム性を保証します。
セミプライオリティベーススケジューリングでは、2種類のスケジューラが並列的に動作します。個々のスレッドは、ハードリアルタイム(コアアフィニティ機能) またはソフトリアルタイム(ロードバランシング対応)として構成できます。
リアルタイムなパフォーマンスを維持しながらスループットを向上
1つ目のスケジューラは、各コアで独立して動作し、従来の優先度ベースのアルゴリズムを使用して実行するスレッドを選択します。各カーネルは独立的に動作するため、スケジューリングとコンテキストの切り替えはシングルコアシステムと同様です(コア間の同期なし)。
2つ目のスケジューラは、負荷を分散するために各スレッドのCPU使用率を定期的に測定します。ここでは、優先度の低いスレッドグループ(ソフトリアルタイムスレッド)、プロセッサコアの相対スループット、そしてもちろん、個々のスレッドの優先度が考慮されます。マルチ・メニーコアプロセッサの全体的なパフォーマンスを最大化するため、優先度の低いスレッドをより負荷の低いコアにシフトすることもあります。
システム結合の安全性をさらに高める時間保護機能
2つ目のスケジューラは、優先度の高いスレッド(ハードリアルタイムスレッド、コア親和性機能)を変更することがないため、システムの決定性が担保されます。ここでは、プロセッサコアの移転や実行の中断は起こりません。これにより、開発者はこれらのスレッドにおいてリアルタイム制限内で処理を完了させるために必要な処理時間を正確に計算できます。
こうしたセミプライオリティスケジューリングは、特にスレッド間の負荷の変動が大きいスレッド構成の場合、他のスケジューリング手法に比べて効率性を大幅に高めます。
時間パーティショニングによるシステム統合の改善
アプリケーションには、ソフトウェアの空間分離(メモリー、I/Oアクセス)だけでなく、時間的分離(時間分離)も必要です。eMCOS POSIXアプリケーションを、「優先度パーティションスケジューリング」に基づく優れた時間パーティショニング機能により、スケジュール設定することができます。
ソフトウェアインテグレータは、優先度パーティションスケジューリングにより、ミックスド・クリティカルなアプリケーションに対して、多数の優先度を管理し、高度なFFI(Freedom From Interference)を維持するための強力なツールを有することができます。
ほとんどのソフトウェアモジュールは、単独で開発、テストされるため、他のソフトウェアとCPUを共有する必要がありませんでした。eMCOSを使用すれば、時間パーティショニングにより、ス レッドの優先度を管理し、同じCPU上でより多くのソフトウェアを統合する際にアプリケーションの動作が複雑に変化するのを回避することができます。
ソフトウェアインテグレータは、スケジューリングクラスタ・ウィンドウでアプリケーションを管理することにより、アプリケーションを継続的にアップデートし、突発的で複雑な影響を回避するための便利なツールを有することができます。
時間パーティションは、スレッドを持つプロセスで構成されます。
これらのパーティションは、CPUコア群によって構成される「スケジューリングクラスタ」に割り当てられます。
スケジューリングクラスタ「ウィンドウ」内で、時間パーティションが順次構成されます。各時間パーティションにおいて、各アクティブパーティションのアプリケーション(プロセスやスレッド)の優先度が最も高くなります。ただし、アクティブパーティションがアイドル状態の場合、他のパーティションはこのアイドル時間を優先度に従って使用できます。
スケジューリングクラスタ・ウィンドウは絶えず繰り返されます。
他の時間パーティショニング方式と比較して、優先度パーティションスケジューリングは、スレッドの優先度を「アプリケーションタイムスロット」から分離することにより、アプリケーションレベルの優先度を管理できる非常に便利な仕組みを提供すると同時に、すべてのCPUアイドル時間を効率的に利用できるようにします。
ページトップへ戻る
ハードウェアとソフトウェアの極めて高いスケーラビリティ
シングルコアからヘテロジニアスマルチ・メニーコアまでのハードウェアスケーラビリティ
先進のeMCOSマルチカーネルアーキテクチャ(分散型マルチカーネル)は、シングルコアマイクロコントローラからヘテロジニアスマルチ・メニーコアプロセッサやマルチチップシステムにまで拡張可能です。
eMCOSは、キャッシュコヒーレンシ(一貫性)機能を持たないホモジニアスマルチ・メニーコアプロセッサとも、アーキテクチャの異なるヘテロジニアスマルチ・メニーコアプロセッサとも互換性があります。
加えて、マルチチップシステムアーキテクチャに基づいて開発をシンプル化します。
既存のAPIとプログラミングモデルによるソフトウェアスケーラビリティ
eMCOSのアプリケーションプログラミングモデルは、基盤のCPU命令セットから独立しています。eMCOS APIは、CまたはC++などの一般的な言語で利用できます。必要に応じて、Rustなどのインタプリタ言語も利用可能です。
eMCOSは、マルチプロセスPOSIXやAUTOSAR(SC1やSC3)といったさまざまなプロファイルで提供されています。さらに、ミックスド・クリティカルアプリケーション向けにHypervisorオプションも用意しています。POSIXやAUTOSAR APIに対応しているということは、既存のLinuxおよびAUTOSAR資産を容易に再利用できることを意味します。
POSIX準拠のプロファイル:eMCOS POSIX
eMCOS POSIXは、eMCOSプロファイルの1つで、POSIX 1003.13 PSE 53に準拠しており、マルチプロセスプログラミングに対応しています。
eMCOSのスケーラビリティとリアルタイム性能を損なうことなく、POSIX API仕様に対応しています。
移植性の高いPOSIXアプリケーションインターフェイスを用いることで、LinuxやAndroidなどの汎用OSのさまざまな既存ライブラリで提供されている関数を、簡単にシステムに実装できます。これにより、eMCOS POSIXは、スレッド、シグナル、プロセス間通信などの機能をプロセスおよびシステムレベルでサポートできます。マルチスレッド制御付きシングルPOSIXプロセス用プロファイルの場合、POSIX 1003.13 PRE53に準拠し、PSE 51に対応しています。マルチPOSIXプロセス用の場合、PSE 53に対応しています。そのため、ROSやAUTOSAR Adaptive Platformなど、POSIX規格に準拠しているさまざまなライブラリを簡単に統合できます。
したがってeMCOSは、高度に革新的なアーキテクチャをベースとしながら、従来のPOSIXユーザーインターフェイスを提供します。
詳細
タイプ1.5ハイパーバイザ :eMCOS Hypervisor®
eMCOS Hypervisorは、POSIX準拠のeMCOS POSIXの拡張オプションとして実装されています。
これにより、eMCOS POSIX向けのリアルタイムでセーフティクリティカルなアプリケーションを、LinuxやAndroidゲストOSと同じハードウェアプラットフォーム上にデプロイできます。
詳細
開発のスケーラビリティ
イーソルの柔軟で使い易いIDEにより、ユーザは優れたデバッグやパフォーマンス最適化ツールを簡単に利用することができます。EclipseやVisual Studio Codeといったエディタは、組込み開発者が使い慣れており、CMakeをベースとしたビルドプロセスは、特に利用可能なLinuxアプリケーションの移植を簡素化します。イーソルのビルド済みのツールチェーンは安全認証を取得しており、エミュレーション、シミュレータ、およびモデルベース開発をサポートしています。
さらにeMCOSには、eMCOS SDKとして、ランタイムソフトウェアや Reference BSP( Board Support Package )などの開発ツール、さまざまなミドルウェア、およびデバイスドライバが提供されており、ハイパフォーマンスなアプリケーションを効率的に開発することを可能にします。
イーソルは、COTS( Commercial Off-The-Shelf )製品にとどまらず、製品サポート、トレーニング、カスタマイズ、ポーティングなどに関するプロフェッショナルサービスやワンストップサービスを提供しています。
詳細
ページトップへ戻る
安全性
ISO 26262 ASIL D認証取得
イーソルは、セーフティ関連ドキュメントとして、セーフティ・マニュアルとセーフティ・レポートを提供します。セーフティ・マニュアルには、eMCOSの安全コンセプトや、その達成方策と妥当性確認方法、ならびにシステムの安全性への影響を考慮したeMCOSの使用方法が記載されています。セーフティ・レポートには、セーフティ・マニュアルに記載されている妥当性確認方法を用いた妥当性確認結果が記載されています。このセーフティ関連ドキュメントを活用することにより、非認証OSを採用する場合と比べて、テストユースケースの作成、テスト、テストに基づくエビデンスの作成や、OSに関わる安全性の説明作業を省力化でき、ユーザの最終製品の規格適合にかかるコストを低減できます。
eMCOSは、機能安全基準に関して、以下の第三者認証を取得しています。
|
ページトップへ戻る
eMCOS Hypervisor
eMCOS Hypervisorは、単一ハードウェアプラットフォーム上に安全なリアルタイムアプリケーションと汎用OS用の機能豊富なアプリケーションを統合することを可能にします。これにより、ミックスド・クリティカルシステムを開発し、該当する業界標準に基づく認証を受けることができます。
eMCOS Hypervisorは、eMCOS POSIXの拡張オプションとして実装されています。
ミックスド・クリティカリティ(重要度の異なるアプリケーションの共存)
eMCOS Hypervisorは、eMCOS POSIX向けのリアルタイムでセーフティクリティカルなアプリケーションを、LinuxやAndroidゲストOSと同じハードウェア上にデプロイできます。これにより、eMCOSのスケーラビリティがさらに向上し、ユーザはシステムに統合できる多種多様な機能を選べるとともに、最小限の変更で既存のLinuxまたはAndroidベースのプラットフォームを引き続き使用できます。LinuxおよびAndroidゲストOSは、必要なPOSIX準拠のAPIを提供し、幅広いオープンな通信プロトコルまたはグラフィック表示ソリューションに対応しています。
この組み合わせにより、高度でオープンな、そして 異なるクリティカリティを持つシステムが混在する多様なシステムを実装する柔軟性が得られます。
ハイパーバイザとコンテナの比較
安全関連のコネクテッドアプリケーションの共同ソフトウェア開発の現場では、クラウド開発者と組込み開発者の間で誤解が生じることがよくあります。問題の1つとして、ハードウェア上で実行するアプリケーションの分離方法が異なるという点が挙げられます。クラウド開発ではよくコンテナを使用しますが、高い機能安全が求められる組込みシステムでは、ハイパーバイザが使用されます。
ハイパーバイザは、コンテナよりはるかに高いアプリケーション分離性を実現します。一方、ハイパーバイザのゲストOS上でコンテナを使用することで、CI思想に基づいた開発などでコンテナのメリットを生かすことができます。
カテゴリ | ハイパーバイザ | コンテナ |
一般 | ハイパーバイザは「強い」仮想化技術です。各環境は個別の仮想マシン(VM)、仮想ハードウェア内で動作します 。各VM内にアプリケーションとOS (ゲストOS)のセットが配置されます。 | コンテナは「弱い」仮想化技術です。1つのOS上に、複数のアプリケーショングループが生成されます。それぞれのグループ内にOSの実行環境 (環境変数、ディレクトリその他)が個別に設定されます。 従って、1つのグループ内には、同じグループに所属するアプリケーション群が配置されます。 |
粒度 | アプリのグループ + ゲストOS | アプリのグループ |
使用されるMMU | ハイパーバイザがレベル2MMUを使用し、ゲストOSがレベル1MMUを使用する | レベル1MMUを使用する |
性能 | コンテナに比べ、グループ間の切り替えコストが高い | グループ間の切り替えコストは、OS上のアプリケーションの切り替えコストと同じ |
統合プロセス | VMを増やしていくインクリメンタルな統合 | 同じOS上にアプリケーショングループが設定されるため、すべてのアプリケーションを一緒に検証する必要がある |
ソフトウェア更新 | 1つのゲストOSに影響 | プラットフォーム全体に影響 |
セキュリティ違反 | 1つのゲストOSに影響 | プラットフォーム全体に影響 |
安全性 | VM単位でデコンポジションできる | すべてのアプリケーションを考慮する必要あり(デコンポジションは困難) |
タイプ1.5ハイパーバイザ
eMCOSハイパーバイザは、タイプ1.5のハイパーバイザ機能を提供します。これは通常のタイプ1ハイパーバイザとは異なり、POSIX APIを通じてダイレクトなリアルタイム機能も提供します。
つまり、仮想マシンマネージャによってゲストOSを制御できると同時に、ネイティブなPOSIXプロセスアプリケーションをリアルタイムに処理できます。virtioのようにデファクトスタンダード も使用されているため、ソースコードの再利用が容易になっています。
eMCOS Hypervisorデバイスの管理
eMCOSは、共有デバイスに対して4つのアクセスタイプを提供します。
eMCOS Hypervisorのメリット
eMCOS Hypervisorは、 ミックスド・クリティカルでハイパフォーマンスなアプリケーションの迅速な開発に向け、ハイパーバイザのあらゆるメリットを提供します。
ページトップへ戻る
CPU対応実績
関連資料
関連動画
|
さらに詳しい情報をお求めの際は、
お気軽にお問い合わせください。
お問い合わせ
オンライン無料相談会もご利用ください。
Zoomなどのオンライン会議ツールで行える無料相談会を実施しています。
弊社社員と時間を設けて会話しながら相談したい、という場合は
ぜひこちらをご活用ください。