Osaka NDS Embedded Cross Online Forum #12

Linux+RTOSによるリアルタイムアプリケーション対応

株式会社ユビキタスAIコーポレーションTOPPERS事業部
加藤 吉之介© 2021 Ubiquitous AI Corporation. All rights reserved.
This presentation is for informational purposes only. Ubiquitous AI Corporation
makes no warranties, express or implied, in this summary.

Osaka NDS Embedded Cross Online Forum #12

自己紹介

株式会社ユビキタスAIコーポレーション TOPPERS事業部

加藤 吉之介◼ 電機メーカーにて動作合成ツールや特殊プロセッサ向けコンパイラの研究開発を十年ほど経験◼ 2015年から現職◼ TOPPERSプロジェクトメンバーとしてRTOSや組込みハイパーバイザなどの開発に参加– TOPPERSプロジェクト
https://www.toppers.jp/index.html© 2021 Ubiquitous AI Corporation2

Osaka NDS Embedded Cross Online Forum #12

TOPPERSとは?
◼ TOPPERSプロジェクト– 以下を目的とするNPO法人• 次世代のリアルタイムOS技術の開発• 組込みシステム開発技術と開発支援ツールの開発• 組込みシステム技術者の育成への貢献– 弊社はプロジェクト立ち上げ時から参加◼ TOPPERSカーネル– プロジェクトの成果物としてOSSで公開されているリアルタイムOS◼ TOPPERS-Pro– OSSなTOPPERSカーネルに対し、弊社にて以下を追加した製品• ミドルウェア&ツール• 知財権保証• 品質保証– いわゆるディストリビューションの一つ© 2021 Ubiquitous AI Corporation

3

Osaka NDS Embedded Cross Online Forum #12

背景◼組込み機器機能の高度化– 高機能とリアルタイム性、セキュリティの両立が求められる高機能

リアルタイム性

印刷機器

無線通信対応

高速印刷

産業機器

高度なUI

モーションコントロール

高機能

セキュリティ

車載機器

ADAS、コネクティッドカー 外部からの侵入対策

インフラシステム

HEMS

メーター値の改ざん防止

複数OSを使用した機能分割で実現© 2021 Ubiquitous AI Corporation4

Osaka NDS Embedded Cross Online Forum #12

複数OS実行方法◼ホモマルチコア上で複数OS実行– 仮想化を利用して実現

TOPPERS-Pro SafeG、TOPPERS-Pro SafeG64、TOPPERS-Pro SafeG-M◼ヘテロマルチコア上で複数OS実行– ヘテロコア間の通信が必要

TOPPERS-Pro MDCOM© 2021 Ubiquitous AI Corporation

5

Osaka NDS Embedded Cross Online Forum #12

TOPPERS-Pro SafeG◼ARMプロセッサ上でLinux/AndroidとRTOSを並行に実行するハイパーバイザ(セキュアモニタ)– Non-Secure EL2(Hyp)で動作する一般的なハイパーバイザと異なり、Secure EL3(Mon)で動作◼RTOSを時間的・空間(メモリ)的に保護◼リアルタイム性/セキュリティ(RTOS)と高機能(Linux)の両立
RTOS(TOPPERS)Linux/Android
TOPPERS-Pro SafeG
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-Aシリーズ)© 2021 Ubiquitous AI Corporation

6

組込み向け仮想化に求められる要件

Osaka NDS Embedded Cross Online Forum #12◼リアルタイム性保証◼メモリ保護◼実行オーバーヘッド◼HWコスト◼SW開発コスト© 2021 Ubiquitous AI Corporation

7

Osaka NDS Embedded Cross Online Forum #12

SafeGの特長①:リアルタイム性保証◼ 割込みベースのOS切り替えでRTOSのリアルタイム性を保証◼ 実現方法– それぞれのOSで異なる種類の割込みを使用• RTOS用割込み• Linux用割込み◼ キーポイント：FIQ (高速割込み)：IRQ (通常割込み)

実行中のOS

RTOS用割込みLinux用割込み

RTOS

許可

禁止

Linux許可

許可

低– LinuxそのものがRTOSの最低優先度タスクとして動作• Linuxの実行中にRTOS用割込みが発生したら、即座にRTOSへ切り替わる• Linuxは決してプロセッサを占有できない© 2021 Ubiquitous AI Corporation

実行優先度タス
クタス
ク

高タス
ク

TOPPERS-Pro SafeG
8

Osaka NDS Embedded Cross Online Forum #12

SafeGの特長②:メモリ保護◼ TrustZoneによる支援– SecureワールドとNon-Secureワールド、2つの世界に分割• Secureワールド：RTOS• Non-Secureワールド ：Linux– SecureワールドのメモリとデバイスはNon-Secureからアクセス不可– アクセスポリシー違反はHWで自動的にチェック
SecureNon-Secure

RTOS

LinuxMemory
Secure用データ
Non-Secure用データ

I/O
Secure用デバイス

Non-Secure用デバイス

モニタモードTOPPERS-Pro SafeG
ARM with TrustZone

バス© 2021 Ubiquitous AI Corporation

9

Osaka NDS Embedded Cross Online Forum #12

SafeGの特長③:実行オーバーヘッド◼ OS切り替えに必要な処理– レジスタの保存/復帰– メモリの保存/復帰◼ TrustZoneによる支援– レジスタ

0xBenchmark Math(@Android2.2)• 大部分はHWで多重化• 数百サイクルでOS切り替え可能

1.00

0.900.80– メモリ
相対性能0.70• MMUもHWで多重化• OS切り替え時の配慮不要◼ 固定レイテンシ

0.60
0.50
0.40
0.30

– OSの負荷状況に依存せず、
オーバーヘッド一定

0.20

実機

0.10

理論性能値

0.000%© 2021 Ubiquitous AI Corporation

10%

20%

30%

40%

50%

60%

リアルタムOS負荷率10

Osaka NDS Embedded Cross Online Forum #12

SafeGの特長④:HWコスト◼シングルコアから複数OS共存可能– マルチコアに対するスケーラビリティ

RTOS RTOS

LinuxRTOS

Core1 Core2

Core1 Core2RTOSLinux• 動的にRTOSとLinuxの実行を切り替え可能‣例)2コアプロセッサの場合LinuxCore1 Core2Linux

Core1 Core2– 2コアAMPの場合、Linux側コアが性能不足となっても、RTOS側のコアを利用することは不可能• 4コアプロセッサが必要となり、HWコスト増© 2021 Ubiquitous AI Corporation

11

Osaka NDS Embedded Cross Online Forum #12

SafeGの特長⑤:SW開発コスト◼SafeG対応済みのRTOSを提供可能– シングルコア用：TOPPERS-Pro/ASP3, TOPPERS-Pro/ASP– マルチコア用 ：TOPPERS-Pro/FMP3, TOPPERS-Pro/FMP◼Linuxの変更量も少ない– 例) i.MX6用のパッチファイル行数• Linux• u-boot：121行： 38行◼アプリケーションは変更なしでOK© 2021 Ubiquitous AI Corporation

12

Osaka NDS Embedded Cross Online Forum #12

OS間のデータ通信方法◼ 同一システムで動作するため、様々な理由でOS間のデータ通信が必要

TOPPERS-Pro MDCOM
利用例– RTOS側の状態表示• データ送信：RTOS→Linux• Linuxで画面表示‣Linuxが持つリッチなGUIフレームワークを利用– データの暗号化・復号化• データ送信：RTOS↔Linux• 暗号キーはRTOS側が保持‣Linux側からデータを送付し、RTOS側で復号‣復号結果をRTOSからLinuxへ戻す© 2021 Ubiquitous AI Corporation

RTOSLinuxキー
データ復号化データTOPPERS-Pro SafeG
13

Osaka NDS Embedded Cross Online Forum #12

TOPPERS-Pro MDCOM◼異なるOS間で通信や同期を行うためのライブラリ◼RTOSのリアルタイム性を保証する設計◼OSやコアの差異を隠蔽
Task
MDCOMドライバ

TOPPERS

共有メモリ
コア間
割込み

Process
MDCOMドライバ

LinuxCortex-A

Cortex-A/R/M© 2021 Ubiquitous AI Corporation

14

Osaka NDS Embedded Cross Online Forum #12

TOPPERS-Pro MDCOMの特徴◼RTOSがマスタ– RTOSから通信開始可能◼2種類の通信チャネル– 共有メモリ：多対多用– FIFO：一対一用• イベント待ち/通知が可能◼OSレベルの通信機構– コア間割込みを使い専用ドライバとして実装© 2021 Ubiquitous AI Corporation

15

Osaka NDS Embedded Cross Online Forum #12

OS間通信のバリエーション(1)◼ハイパーバイザ上のOS間
TOPPERS-Pro
MDCOM
TOPPERS-Pro/FMP3

Linux/Android

TOPPERS-Pro SafeG
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-Aシリーズ)© 2021 Ubiquitous AI Corporation16

Osaka NDS Embedded Cross Online Forum #12

OS間通信のバリエーション(2)◼ヘテロマルチコアのヘテロコア間– RTOS間• OSに依存しない同一APIで通信可能

TOPPERS-Pro
MDCOM
TOPPERS-Pro/FMP3TOPPERS-Pro/ASP3

ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-Aシリーズ)

ARM(Cortex-A/R/Mシリーズ)© 2021 Ubiquitous AI Corporation17

Osaka NDS Embedded Cross Online Forum #12

OS間通信のバリエーション(3)◼ヘテロマルチコアのヘテロコア間– RTOS↔Linux間• OSに依存しない同一APIで通信可能

TOPPERS-Pro
MDCOM
Linux

TOPPERS-Pro/ASP3

ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-Aシリーズ)

ARM(Cortex-A/R/Mシリーズ)© 2021 Ubiquitous AI Corporation18

Osaka NDS Embedded Cross Online Forum #12

OS間通信のバリエーション(4)◼ホモ/ヘテロマルチコアの共存– どのOS間でも共通APIでプログラミング可能
TOPPERS-Pro
MDCOM
TOPPERS-Pro/FMP3

Linux/Android

TOPPERS-Pro
MDCOM

TOPPERS-Pro SafeG

TOPPERS-Pro/ASP3

ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-A9)
ARM(Cortex-Aシリーズ)

ARM(Cortex-A/R/Mシリーズ)© 2021 Ubiquitous AI Corporation

19

Osaka NDS Embedded Cross Online Forum #12

まとめ◼ TOPPERS-Pro SafeGのご紹介– 1チップ上でRTOSによるリアルタイム性の確保と、Linuxによる高機能の実装を実現可能◼ 組込みに適した仮想化を実現するSafeGの特徴– リアルタイム性保証– メモリ保護– 低実行オーバーヘッド– 低HWコスト– 低SW開発コスト◼ TOPPERS-Pro MDCOMのご紹介– OSに依存せず同一APIでOS間通信を実現可能© 2021 Ubiquitous AI Corporation20

Osaka NDS Embedded Cross Online Forum #12

お問い合わせは

TOPPPERS事業部
https://www.ubiquitous-ai.com/