MULCOS-Multilayer Kernel
RTOSの多層化でセキュリティの向上!
セキュリティレベルの異なる階層化したRTOS実行環境を管理する多層化カーネル
MULCOS-MK(Multilayer Kernel)でセキュリティを向上
Cortex-M対応では、セキュア層と非セキュア層の二層を実現

動作確認は終わってるのに、コードの取扱いに気を付けなければ・・・・

慎重に取扱うべきコードをセキュア層に実装して動作確認が終われば、非セキュア層の開発では必要ありません。
非セキュア層からはセキュア層の関数を呼び出すだけで、非セキュア層の実行ファイルにリンクする必要はなし!

ドライバをセキュアに配置したいけど、システムコールが使えないと・・・・

RTOS実行環境を持ったセキュア層なので、ドライバ内でシステムコールを使えます。
もちろん、タスク化されたドライバでも問題なくセキュア層に実装!

セキュアと非セキュアとを自由に行き来できないと・・・・

RTOSを意識することなく、セキュアゲートウェイやコールバックにより、タスクや例外ハンドラは自由にセキュア間を移行!

セキュアから非セキュアのRTOSオブジェクトに対して操作できたら・・・・

セキュア層から非セキュア層のオブジェクトに対して操作できる独自システムコールを用意!
非セキュア層の異常動作を検知した場合に、非セキュアに介入して問題を回避することも可能です。

セキュアと非セキュアとの分離を、今は考えていないけど・・・・

セキュア層のみのシステムで設計し、非セキュアが必要になった時点で非セキュア層を起動することができます。
非セキュア層の起動は、セキュア層から任意の時点でシステムコールを呼び出すだけ!

機能概要

MULCOS-MKのカーネルはセキュア層と非セキュア層のRTOSから構成され、独立したRTOS実行環境を前提に、 アプリケーションプログラムを設計することができます。(本製品では、RTOSの実行環境を層と表現します。)

MULCOS-MKのイメージ

カーネルは各層のRTOSのコードとRTOSの制御データから成り立ち、実際には上位のセキュア層にのみ配置されています。 そのため、制御データなどは下位の非セキュア層から保護され、セキュリティの面でも優れています。
(制御データとは、タスク制御ブロック(TCB)に代表される、RTOS以外はアクセスしないデータです。)

MULCOS-MKの実際のイメージ

MULCOS-MKの非セキュア層には、カーネル部はすべてセキュア層に配置されるため、タスクと例外ハンドラなどの アプリケーションプログラムとして記述されるコードとデータのみが配置されます。

機能詳細

・セキュア層⇔非セキュア層移行

セキュアゲートウェイやコールバックにも対応し、タスクや例外ハンドラは、関数呼び出しによるセキュア間の自由な相互移行を可能にします。

MULCOS-MKのセキュア間移行

セキュア層に移行した非セキュアタスクをセキュア移行タスクとし、非セキュア層に移行したセキュアタスクを非セキュア移行タスクとしますが、 移行しても所属が変わるわけではありません。つまり、セキュア移行タスクは、セキュア層を実行できますが、非セキュア層のタスクに変わりはなく、 非セキュアタスクのタスク優先度がそのまま使われます。そのため、移行タスクはシステムコールの呼出しで制約があります。

・セキュア層と非セキュア層との優先度の違い

セキュア層と非セキュア層、及びタスクと例外ハンドラの優先順位は以下のようになっています。

MULCOS-MKの優先度

割込みは、セキュア層が上位半分の割込み優先度を使用し、下位半分は非セキュア層が使用しています。 また、セキュアタスクのタスク優先度は、どの非セキュアタスクのタスク優先度よりも高い設定になっています。
これは、非セキュア層が全割込み禁止(ロック状態)にしても割込み優先度の下位優先度のみがマスクされ、 セキュア層の割込みには影響を与えないことを意味しています。例えば、タスク実行中に全割込み禁止にして長時間ループするなどした場合は、 通常は致命的な問題を引き起こします。しかし、非セキュアタスクがこのような状況を引き起こした場合でも、セキュア層に影響を及ぼしません。

・非セキュア層の生成と起動

セキュア層の初期化後の任意の時点で、システムコールにより、非セキュア層を生成し起動することができます。
例えば、初期の製品はセキュア層のみにして、開発ステージの途中から非セキュア層を追加するなどの柔軟な対応が可能です。

μITRON4.0仕様版のシステムコール対応状況

RTOSのシステムコールは、ITRON4.0仕様のサブセットを実装し、対応状況は以下のようになっています。

タスク管理機能
タスク付属同期機能
タスク例外処理機能 ×
同期・通信機能 セマフォ
同期・通信機能 イベントフラグ
同期・通信機能 データキュー
同期・通信機能 メールボックス
拡張同期・通信機能 ミューテックス
拡張同期・通信機能 メッセージバッファ
拡張同期・通信機能 ランデブ ×
メモリプール管理機能 固定長メモリプール
メモリプール管理機能 可変長メモリプール
時間管理機能 システム時刻管理
時間管理機能 周期ハンドラ
時間管理機能 アラームハンドラ ×
時間管理機能 オーバランハンドラ ×
システム状態管理機能
割込み管理機能
サービスコール管理機能 ×
システム構成管理機能

○:対応 ×:非対応

Cortex-M対応 MULCOS-MK μITRON4.0仕様版の対応プロセッサ状況

対応MPU Renesas RA8 , RA6シリーズ
STMicroelectronics STM32H5シリーズ
必要要件 TrustZoneが実装されたARMv8-Mメインラインアーキテクチャのプロセッサ
e2studio開発ツール(Renesas Electronicsのプロセッサ)
STM32CubeIDE開発ツール(STMicroelectronicsのプロセッサ)
その他 TrustZoneが未実装のARMv8-Mメインライン、或いはARMv7-Mアーキテクチャの
プロセッサでは、非セキュア層のみの一般的なRTOSとしての実行が可能
評価版のご案内

totop

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