MULCOS-2

MULCOS-2 MULti Core Operating Sub System
組み込みOSをシングルコア専用からマルチコア/マルチOSへ!
MULCOS-2を使って、マルチコア・プロセッサに搭載された複数のOS間で協調した通信や同期が行えます。
これからの組み込みシステムでは、LinuxかRTOSで悩まずにマルチOSで使いませんか?
評価版申込 製品情報(PDF版)

本格的にマルチコアを使ってみたい

MULCOS-2のサービスコールは、μITRONライクのAPIでOS間を意識することなくプログラミングが可能です。

せめて・・・だけでも早く起動させたい

早く起動させたい処理はRTOS側で行ってください。RTOSのタスクはLinuxよりも早く立ち上がり起動します。

高機能な周辺機能を使いこなしたい

RTOSで用意するミドルウェアやドライバを必要最小限にして、USBやSDカード、ネットワーク等の周辺デバイスを制御するエージェントプロセスをLinuxに作り、RTOSとの間でデータを送受信されてはいかがでしょうか?

オープンソース採用の懸念

各OS(またはOSレス)の実行モジュールは完全に分離しています。バージョンアップの追従や使用するライセンスの制約を避けたいソフトウェアをRTOS側で実現してください。

何と言っても組み込みには応答性が必要でしょ

Linuxのスケジューリング、多重割込みや長い割り込み禁止時間に、苦心していませんか?
Linuxの割込みよりも高優先度なRTOSならば・・・・
同一のコアにRTOSとLinuxを実装した状態で、例えLinuxが割込みを禁止にしても、RTOSのリアルタイム性は変わらずアプリケーションに影響を与えません。

大切なデータをLinuxから保護したい

ARM® TrustZone® テクノロジを実装したプロセッサでは、セキュア空間の領域にデータを配置すれば、Linuxなどノンセキュア空間のゲストOSのいかなるアクセスからもデータを保護することができます。
Virtualization Extensionsを実装したプロセッサでは、ノンセキュア空間のゲストOSが使用する空間を仮想化することにより、仮想空間の外へのアクセスを抑止することができます。

機能概要

MULCOS-2は、ARM TrustZone テクノロジ、またはVirtualization Extensions、或いはその両方を使用したベアメタル型ハイパーバイザとしてマルチOSの動作環境と、実装した全てのOS間の同期通信機能を併せ持っています。
例えばクアッドコア(コアが4つ)の場合では、セキュア空間に最大4つのRTOSとノンセキュア空間にも最大4つのゲストOSを実装でき、ゲストOSにはLinuxを実装することができます。また、1つのコアにRTOSとLinuxの両方を実装できるため、マルチコアだけではなくシングルコアにも対応しています。RTOSの代わりに、OSレスを実装することができます。
同期通信機能として、メッセージキュー、セマフォ、イベントフラグ、共有メモリの4つの機能があります。

実装例

・Linuxを超インテリジェントなデバイスドライバに!

コアを独占したRTOSはより多くの仕事をこなすことができます。Linuxで用意された機能やデバイスの制御を利用することで、より高機能なシステムを実現できます。

QuadCore:LinuxとITRONのマルチOS環境

・RTOSを超軽量のリアルタイム制御用ソフト部品に!

1つのコアのCPUパワーを少しRTOSに割り当てるだけでLinuxでは困難だった高精度なリアルタイムが容易に実現できます。ただし、 このRTOSの実行中はLinuxの処理が中断する可能性があるため、RTOSでの処理は極軽い処理に限られます。

QuadCore:LinuxとITRONでコアを共有する

・シングルコア用のRTOSをマルチコアで使用したい!

要求仕様によりRTOSだけを実装することもできます。
例えば、デュアルコア(コアが2つ)にそれぞれRTOSを実装する場合、3つの実装方法が考えられます。
Type-A:仕事量が多いため1つのコアでは賄いきれない、或いは異なる仕事をするためコアを分けた方がメンテナンス性で良い場合などは、セキュア空間に実装します。
Type-B:取り扱うデータにセキュリティが必要な場合などは、セキュリティレベルを分けて、セキュア空間とノンセキュア空間とに実装します。
Type-C:メモリ管理機能などを持ちMMUを操作するRTOSの場合、専用のMMUを操作することができるノンセキュア空間に実装します。

ITRONのマルチコア対応

 

注意)セキュア空間に実装できるRTOS
セキュア空間のRTOSは、MULCOS-2とMMUを共有する(同じメモリ空間を持つ)ため、MMUを操作するメモリ管理機能を持たないRTOSに限られます。

 

自由な実装と柔軟な設計が可能

MULCOS-2では、それぞれのコアにLinuxとRTOSをどのようにも割り当てることができます。
つまり、Linuxだけ、RTOSだけ、あるいはLinuxとRTOSの両方とも、この3つから選ぶことができます。

Linuxだけ、RTOSだけ、あるいはLinuxとRTOSの両方とも、この3つから選ぶことができます

MULCOS-2は、導入後の変更も柔軟に対応できます。
例えば、シングルコアにLinuxとRTOSを実装している状態で、能力不足を補うためデュアルコアへのアップグレードを考えます。

・Linuxに重い処理を追加する必要が出た場合

新たにLinuxだけのコアを追加します。この際、LinuxとRTOSの両方を割り当てるコアを、プライマリコアとセカンダリコアのどちらにするのか選択することができます。

Linuxに重い処理を追加する必要が出た場合

・RTOSに重い処理を追加する必要が出た場合

プライマリコアにLinuxだけを、セカンダリコアにRTOSだけを割り当てます

RTOSに重い処理を追加する必要が出た場合

MULCOS-2は、このようなアップグレードもコンフィグレーションとスタートアップルーチンの簡単な変更だけで、RTOS本体やアプリケーションの変更は必要ありません。

MULCOS-2のサービスコール

◆メッセージキュー : 可変長データの送信と受信
mulcos_cre_msgメッセージキューの生成/ID取得
mulcos_del_msgメッセージキューの削除
mulcos_snd_msgメッセージキューの送信
mulcos_rcv_msgメッセージキューの受信(時間監視付き)
mulcos_ref_msgメッセージキューの状態参照
◆セマフォ : 資源の獲得と返却
mulcos_cre_semセマフォの生成/ID取得
mulcos_del_semセマフォの削除
mulcos_sig_semセマフォ資源の返却
mulcos_wai_semセマフォ資源の獲得(時間監視付き)
mulcos_ref_semセマフォの状態参照
◆イベントフラグ : フラグのセットと待ち
mulcos_cre_eflgイベントフラグの生成/ID取得
mulcos_del_eflgイベントフラグの削除
mulcos_set_eflgイベントフラグのセット
mulcos_wai_eflgイベントフラグの待ち(時間監視付き)
mulcos_clr_eflgイベントフラグのクリア
mulcos_ref_eflgイベントフラグの状態参照
◆共有メモリ : 全てのOSで共有できるメモリ空間
mulcos_cre_shm共有メモリの生成/ID取得
mulcos_del_shm共有メモリの削除
mulcos_rdy_shm共有メモリのアクセス許可
mulcos_ref_shm共有メモリの状態参照
対応CPU NXP i.MX6シリーズ , i.MX7シリーズ(対応予定)
Renesas RZ/G1シリーズ
ALTERA SoC
Xilinx Zynq®(対応予定)
必要要件 TrustZoneテクノロジ、またはVirtualization Extensions、
或いはその両方が実装されたARM Cortex®-Aシリーズのプロセッサ
評価版申込 製品情報(PDF版)

totop

Copyright © SPIRAL-TECH Co.,Ltd. All Rights Reserved.