Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
HRMP3カーネルパーティショニング機能を持つマルチコア向け
RTOSの紹介
本田 晋也
名古屋大学 大学院情報学研究科
TOPPERSプロジェクトシニアテクニカルエキスパート
Arm Tech Symposia 2018
2018/12/6
1
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERSプロジェクトの概要
2
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERSプロジェクトとは?
−ITRON仕様の技術開発成果を出発点として,組込みシステム構築の基盤となる各種の高品質なオープンソースソフトウェアを開発するとともに,その利用技術を提供
組込みシステム分野において,Linuxのように広く使われるオープンソースOSの構築を目指す!
• プロジェクトの狙い
−決定版のITRON仕様OSの開発
−次世代のリアルタイムOS技術の開発
−組込みシステム開発技術と開発支援ツールの開発
−組込みシステム技術者の育成への貢献
• プロジェクトの推進主体
−産学官の団体と個人が参加する産学官民連携プロジェクト
−2003年9月にNPO法人として組織化
3
← ほぼ完了
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
主な開発成果物
• 第1世代カーネル
−TOPPERS/JSPカーネル,TOPPERS/FI4カーネル
−TOPPERS/ATK1(Automotiveカーネル バージョン1)
−TOPPERS/FDMPカーネル,TOPPERS/HRPカーネル
• 第2世代カーネル
−TOPPERS/ASPカーネル,TOPPERS/SSPカーネル
−TOPPERS/FMPカーネル,TOPPERS/HRP2カーネル
−TOPPERSテストスイートパッケージ(TTSP)
• 第3世代カーネル
−TOPPERS/ASP3カーネル
• AUTOSAR関連
−TOPPERS/ATK2(Automotiveカーネル バージョン2)
−TOPPERS/A-COMSTACK,TOPPERS/A-WDGSTACK
−TOPPERS/A-RTEGEN
4
一般公開しているもの
ARM7/ARM11
Cortex-A/Cortex-M
Cortex-M/Cortex-R
Cortex-A/Cortex-M
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
主な開発成果物
• ミドルウェア
−TINET(TCP/IPプロトコルスタック),FatFs for TOPPERS
−TOPPERS/ECNL(ECHONET Lite通信ミドルウェア)
−RLL(Remote Link Loader),DLM(Dynamic Loading Manager)
−CAN/LINミドルウェアパッケージ
• ツール,その他
−TECS(TOPPERS組込みコンポーネントシステム)
−SafeG(高信頼組込みシステム向けデュアルOSモニタ)
−EV3RT(LEGO Mindstorms EV3向けSPF)
−TLV(TraceLogVisualizer),TOPPERS Builder
• 教育コンテンツ
−初級・中級実装セミナー教材
−基礎1・基礎2・基礎3実装セミナー教材
−ETロボコン向けTOPPERS活用セミナー教材
5
ARM9
Cortex-A9
ARM7
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
OSP-P300(オークマ)
ASTRO-H (JAXA)
<開発中>
提供:JAXA,イラスト:池下章裕
スカイラインハイブリッド (日産)
開発成果物の主な利用事例
6
SoftBank945SH(シャープ) PM-A970(エプソン)
IPSiO GX e3300 (リコー)
UA-101 (Roland)
H-IIB(JAXA)
エスクード (スズキ)
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERSライセンス
TOPPERSプロジェクトで独自に開発したソフトウェアには,
独自のライセンス条件を設定する
基本的な考え方
−組込みシステムの事情を考慮し,GNU GPLやBSDライセンスより自由に使えるライセンス条件とする
−成果をアピールすることが開発資金獲得に繋がることから,どこでどう使われているかをなるべく知りたい
ライセンス内容
−派生物をオープンする義務は課さない.派生物を販売するビジネスも可能
−機器に組み込んで使用する場合の実質的な義務は,利用したことを報告することのみ⋯ レポートウェア
7
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERSカーネル開発ロードマップ
8
TECSコンポーネントシステム対応
TECSコンポーネントシステム対応
2007 20132000 20202004 2010 2015 2018
第1世代カーネル 第2世代カーネル 第3世代カーネル
ATK1OSEK/VDX仕様
FI4μITRON4.0フルセット
SSP3最小セット
ATK2AUTOSAR仕様
ATK3?
車載系
ITRON系
JSPμITRON4.0スタンダードプロファイル
FMP3マルチコア
動的オブジェクト生成
HRP3パーティショニング
HRMP3マルチコア&保護機能
HRPメモリ保護
FDMPマルチコア対応
動的オブジェクト生成
ASP新世代カーネル
スタンダードプロファイル
HRP2メモリ保護
FMPマルチコア拡張
SSP最小セット
ASP3第3世代カーネル
スタンダード
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネルの必要性
• 求められている/求められつつある技術・機能
−機能安全からの要求に応えられるパーティショニング
−ティックレスの高分解能時間管理と外部時刻同期
−マルチコアにおける動的ロードバランシング
−メニーコアプロセッサへの対応 … 今後の課題
• 一方,廃止すべきと考えられる機能もある
−タスク例外処理機能,メールボックス
• TOPPERS第3世代カーネルへ
−第2世代のカーネルの次の世代と位置付けた方が,大胆な仕様変更が可能
−第3世代においても,2系列(ITRON系,車載系)のリアルタイムカーネル開発は,引き続き維持していく
9
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネル (ITRON系) の仕様策定方針
• 基本的な設計方針 … 第2世代を踏襲
−μITRON4.0仕様をベースに拡張・改良を加える
−ソフトウェアの再利用性を重視する
−高信頼・安全なシステム構築を支援する
−アプリケーションシステム構築に必要な機能は積極的に取り込む
• 特に留意した設計方針(これまでも暗黙に存在)
−システム/アプリケーションによって要求が異なる機能は,ミドルウェア等で実現することとし,カーネルにはその実現に必要な最低限の機能を導入する
• ポリシーとメカニズムの分離の考え方
−実装方法を合わせて検討し,オーバヘッドの大きい仕様を避ける
10
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第2世代から第3世代への主な仕様変更点
(1)時間パーティショニング機能の導入
−機能安全におけるソフトウェアパーティショニングの実現を容易にするための機能
(2)ティックレスの高分解能時間管理と外部時刻同期
−カーネルが管理する時間の分解能をミリ秒からマイクロ秒に変更
• タイムティックを使わない実装に変更
−外部時刻との同期のための機能を導入
(3)マルチコアにおける動的負荷分散機能への対応
−マルチコアプロセッサにおけるロードバランシングを実現するために以下の機能を導入
• タスクとスケジューリング状態の参照機能
• サブ優先度機能
11
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第2世代から第3世代への主な仕様変更点
(4)仕様のスリム化・シンプル化(主なもの)
−タスク例外処理機能の廃止とタスク終了要求機能の導入
• 必要性が低いにもかかわらず,ターゲット依存部(特に保護機能対応の場合)の実装負担が大きいタスク例外処理機能と待ち禁止状態を廃止
−非タスクコンテキスト専用のサービスコールの廃止
−メールボックス機能の廃止
• 保護機能対応では不適切な機能(サポートしていない)
(5)ミューテックスの標準機能化
(6)その他の改良(主なもの)
−タイムイベント処理機能の見直し
−起動要求をキューイングしないタスクの追加
−保護ドメインに対するアクセス許可ベクタの新設
−保護ドメイン毎の標準メモリリージョン
12
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネル (ITRON系) の実装
! カーネルのバージョン番号を「3」に統一
• TOPPERS/ASP3カーネル
−TOPPERS第3世代カーネルの出発点
• TOPPERS/HRP3カーネル
−ASP3カーネルに以下の機能を追加し,さらに高い信頼性・安全性を要求される組込みシステムに対応
• メモリ保護機能,オブジェクトアクセス保護機能
• 時間パーティショニング機能
• 拡張サービスコール機能
• TOPPERS/FMP3カーネル
−ASP3カーネルをマルチ/メニーコアプロセッサ向けに拡張
• TOPPERS/HRMP3カーネル
−HRP3カーネルをマルチプロセッサ向けに拡張
• TOPPERS/SSP3カーネル
−ASP3カーネルをベースに可能な限り機能を絞り込む
13
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネル (ITRON系) の実装
14
Task1 Task2 Task3
CPU
ASP3
基本
HRP3
パーティショニング
CPU
Task4 Task5 Task6 Task7Task1 Task2 Task3
Domain1 Domain2 Idle
メモリ・アクセス保護
時間保護
Task1 Task2 Task3
CPU
FMP3
マルチコア
Task4 Task5 Task2
CPU
マイグレート
HRMP3
パーティショニング+マルチコア
CPU1
Task4 Task5 Task6 Task7Task1 Task2 Task3
Domain1 Domain2 Idle
CPU2
Task10 Task11 Task12 Task13Task8 Task9 Task2
Domain3
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネル (ITRON系) の実装 : 開発状況
• リリース済み
−ASP3,HRP3
• 開発中
−FMP3, HRMP3
15
2018 201920172016
ASP3
3.0.0 3.1.0 3.2.0 3.3.0
HRP3
3.0.0
FMP3
開発開始 3.0.0リリース予定
2020
開発開始 3.0.0リリース予定
HRMP3
3.1.0リリース予定
3.4.0リリース予定
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネル (ITRON系) の実装 : 開発状況
• TOPPERS/ASP3カーネル : リリース済み
−TOPPERS第3世代カーネルの出発点
• TOPPERS/HRP3カーネル : リリース済み
−ASP3カーネルに以下の機能を追加し,さらに高い信頼性・安全性を要求される組込みシステムに対応
• メモリ保護機能,オブジェクトアクセス保護機能
• 時間パーティショニング機能
• 拡張サービスコール機能
• TOPPERS/FMP3カーネル : 今年度中にリリース予定
−ASP3カーネルをマルチ/メニーコアプロセッサ向けに拡張
• TOPPERs/HRMP3カーネル : 今年度中(合宿中)に動作させる
−HRP3カーネルをマルチコアに拡張
• TOPPERS/SSP3カーネル : 開発中
−ASP3カーネルをベースに機能を絞り込む
16
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
第3世代カーネル (ITRON系) の実装 : ターゲット
• 全OS共通
−ARMv7-A
• Cortex-A9 (Xilinx Zynq-7000)
• シミュレーション環境
−QEMU(要パッチ)
−Windows(WSL)/Linux/Mac OS で動作
• 今後の開発予定
−設計書の完成後にリリース予定
−テストスイートの開発
−HRMP3カーネルの開発
17
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/ASP3カーネル
18
Task1 Task2 Task3
CPU
ASP3
ベーシック
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/ASP3カーネルの概要
• ASP3カーネルの位置付け
−TOPPERS第3世代カーネルの出発点
−TOPPERS/ASPカーネルを拡張・改良したもの
• ASPカーネルに追加した機能(基本パッケージでサポート)
−タスク終了要求機能
−ティックレスの高分解能時間管理,システム時刻の調整機能,システム時刻の参照/設定機能
−ミューテックス機能 … 基本機能に格上げ
−周期通知/アラーム通知機能 … 周期ハンドラ/アラームハンドラ機能を拡張
• ASPカーネルから削除した機能
−タスク例外処理機能
−メールボックス機能
19
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/ASP3カーネルの概要
• 周辺ツールの活用・変更
−TECSの活用
• システムサービス(システムログ機能など)とデバイスドライバの構築にTECSを活用
• カーネルを利用するだけであれば,TECSを勉強する必要はない
−Ruby版コンフィギュレータの適用
• 拡張パッケージでサポート
−ドリフト調整機能
−メッセージバッファ機能
−オーバランハンドラ機能
−タスク優先度拡張
−制約タスク
−サブ優先度機能
−動的生成機能
20
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/FMP3カーネル
21
Task1 Task2 Task3
CPU
FMP3
マルチコア
Task4 Task5 Task2
CPU
マイグレート
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/FMP3カーネル
リアルタイム性と動的なタスク移動との両立を目指す
• プロセッサ毎のタスクスケジューリング
−リアルタイム性の確保が(比較的)容易
• タスクを移動させるAPI
−負荷変動への対応が可能
• 動的負荷分散機能
− サブ優先度
− 実行できるタスク数の取得
− 指定した優先順位のタスクIDを取得
22
Task11 Task12 Task13
CPU1
Task21 Task22
CPU2
Task11 Task21
TOPPERS/FMP3 Kernel
Running
Ready
QueueTask13
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
FMP3カーネル : 外部仕様(FMPカーネルからの更点)
時間管理
• FMPカーネル : 1ms周期のシステムティック(システム時刻)
−グローバルタイマ方式(1コアのみでティックを管理)とローカルタイマ方式(各コアでティックを管理)から選択可能
• ティックを管理するプロセッサではタイムイベント処理を実行
−各コアでシステム時刻を同期したい場合は実装依存で実現
• FMP3カーネル : ティックレスの高分解能時間管理
−システム時刻はシステム全体で1個
• 高分解能タイマはすべてのプロセッサから読み出すことができ,少なくとも1つのプロセッサ(タイムマスタプロセッサ)に対して割込みを発生させることができること.
−タイムイベント処理プロセッサ
• タイムイベント処理を行うプロセッサ
• 任意のプロセッサを指定可能(仕様上は)
タイムイベント処理プロセッサ毎にタイマが必要
23
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
FMP3カーネル : 外部仕様(FMPカーネルからの更点)
動的負荷分散機能
• 動的負荷分散を実現するための基本機能を提供
• 動的負荷分散機構そのものはアプリケーションレベルで実現
• サブ優先度機能
−優先度が同一のタスクの間の優先順位を決定する機構
• 標準では優先順位は到着順
• サブ優先度が同じタスクは到着順に優先順位が設定される
−優先度毎にサブ優先度をサポートするか指定可能
• chg_spr(ID tskid, uint_t subpri)
タスクのサブ優先度の変更
• ENA_SPR(tskpri)
サブ優先度を使用するタスク優先度の設定
24
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
FMP3カーネル : 外部仕様(FMPカーネルからの更点)
• システム状態管理機能(追加)
−実行できるタスク数の取得
• 各プロッサの負荷を取得するために用意
• get_lod(PRI tskpri, uint_t *p_load)
• mget_lod(ID schedid, PRI tskpri, uint_t *p_load)
schedid : 対象プロセッサを指定
−指定した優先順位のタスクIDを取得
• マイグレーション対象のタスクIDを取得するために使用
• get_nth(PRI tskpri, uint_t nth, ID *p_tskid)
• mget_nth(ID schedid, PRI tskpri, uint_t nth, ID *p_tskid)
schedid : 対象プロセッサを指定
25
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
FMP3カーネル : 実装(FMPカーネルからの更点)
• カーネルのロック単位
−FMPカーネル : 3種類のロックをサポート
• メニーコア向けに細粒度ロックをサポート
−FMP3カーネル : ジャイアントロックのみサポート
• Mutexやタスク終了要求機能がサポートされたため,ジャイアントロック以外のロック方式を実現すると,コードの複雑化や割込み応答時間の悪化を招く
• 現状の組込み向けマルチコアは最大4コアが主流
• メリット
コード中の#ifdefの多くが排除された
デットロック回避の検討や対応の必要性がなくなった
• デメリット
メニーコアでは性能の低下の可能性
メニーコア向けには別のOSを用意する
26
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/HRP3カーネル
27
HRP3
パーティショニング
CPU
Task4 Task5 Task6 Task7Task1 Task2 Task3
Domain1 Domain2 Idle
メモリ・アクセス保護
時間保護
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/HRP3カーネル
• 高い信頼性・安全性を要求される組込みシステムに対応するために,ASP3カーネルに保護機能/パーティショニング機能を追加
−メモリ保護機能
−時間パーティショニング機能
−オブジェクトアクセス保護機能
28
CPU1
Task21 Task22 Task23 Task31 Task23 Task33Task11 Task12 Task13
Domain1 Domain2 Idle
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
HRP3のメモリ保護 : システム構成
29
カーネルドメイン
保護ドメイン1
周期通知
カーネルデータ カーネルスタック 割込みハンドラ
アプリレベルデータ
タスクレベルデータ
スタックコード
カーネルコード
保護ドメイン2
周期通知
メモリオブジェクト
スタックコード共有
ライブラリ
アプリレベルデータ
タスクレベルデータ 共有データ
タスク タスク
無所属
タスク タスク 周期通知アラーム
通知
セマフォ データキュー
セマフォ データキュー
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
HRP3のメモリ保護 : メモリ保護
• タスクは他保護ドメインやカーネルドメインのメモリにアクセスできない
−MPU/MMUにより実現
30
カーネルドメイン
保護ドメイン1
周期通知
カーネルデータ カーネルスタック 割込みハンドラ
アプリレベルデータ
タスクレベルデータ
スタックコード
カーネルコード
保護ドメイン2
周期通知
メモリオブジェクト
スタックコード共有
ライブラリ
アプリレベルデータ
タスクレベルデータ 共有データ
タスク タスク
無所属
タスク タスク 周期通知アラーム
通知
セマフォ データキュー
セマフォ データキュー
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
HRP3のメモリ保護 : アクセス保護
• タスクは他の保護ドメインPのオブジェクトに対してAPIを発行できない
−OSによりAPI発行元と発行先をチェック
31
カーネルドメイン
保護ドメイン1
周期通知
カーネルデータ カーネルスタック 割込みハンドラ
アプリレベルデータ
タスクレベルデータ
スタックコード
カーネルコード
保護ドメイン2
周期通知
メモリオブジェクト
スタックコード共有
ライブラリ
アプリレベルデータ
タスクレベルデータ 共有データ
タスク タスク
無所属
タスク タスク 周期通知アラーム
通知
セマフォ データキュー
セマフォ データキュー
sta_cycsta_cyc
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
HRP3の時間パーティショニング
• システム周期を定め,複数のタイムウィンドウに分割
• タイムウィンドウにドメインを割り付け
• 航空機向けのOS仕様であるARIN653の仕様を拡張
−割込みを受け付け可能に
• “CPU利用率保護”,“実行順序保護”,“実行タイミング保護“ を実現
−割込みをサポートした場合は“実行タイミング保護“ 実現できない
32
Domain 2 Domain 3
System cycle
Task 11 Task 12
Task 21 Task 22
Task 31 Task 32
Domain 1
IDLE
Windows
Domain 2 Domain 3
System cycle
Task 12
Task 21 Task 22
Task 31 Task 32
Domain 1
IDLE
WindowTimwWindow1 TimwWindow2 TimwWindow3 TimwWindow1 TimwWindow2 TimwWindow3
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/HRMP3カーネル
33
HRMP3
パーティショニング+マルチコア
CPU1
Task4 Task5 Task6 Task7Task1 Task2 Task3
Domain1 Domain2 Idle
CPU2
Task10 Task11 Task12 Task13Task8 Task9 Task2
Domain3
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/HRMP3カーネル : 概要
• 高信頼マルチコアシステム向けRTOS
−HRP3カーネルとFMP3カーネルの機能を持つ
• HRMP3/FMP3からのAPIの追加はなし
−ドメインとクラスの両方をサポート
• 保護単位の指定 : ドメイン
• プロセッサの指定 : クラス
34
CPU1
Task1 Task2 Task3 Task1 Task2 Task3Task1 Task2 Task3
Domain1 Domain2 Idle
CPU2
Task1 Task2 Task3 Task1 Task2 Task3Task1 Task2 Task3
PRC1 Class
PRC2 Class
Domain3
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/HRMP3カーネル : メモリ保護
• メモリ保護の単位(ドメイン)と処理単位のプロセッサへの割り付けは独立
−例)同ドメインに所属するタスクを別々のプロセッサで実行可能
35
CPU1 CPU2
カーネルドメイン
保護ドメイン1
周期通知
カーネルデータ カーネルスタック 割込みハンドラ
アプリレベルデータ
タスクレベルデータ
スタックコード
カーネルコード
保護ドメイン2
メモリオブジェクト
スタックコード共有
ライブラリ
アプリレベルデータ
タスクレベルデータ 共有データ
タスク1 タスク2
無所属
タスク タスク 周期通知アラーム
通知
セマフォ データキュー
セマフォ データキュー
タスク3
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
TOPPERS/HRMP3カーネル : 時間パーティショニング
• システムサイクルはプロセッサ間で同じとなる.
−実行時にはシステム周期切り替えは同期する
• タイムウィンドウ割り付けはコア毎に独立して割り当て可能
−同じタイムウィンドウ(の設定)を複数のコア割り当てることも可能
36
Domain 2 Domain 3
System cycle
Task 11 Task 12
Task 21 Task 22
Task 31 Task 32
Domain 1
IDLE Window
Domain 2 Domain 3
Task 12
Task 21 Task 22
Task 31 Task 32
Domain 1
Domain 2
Task 41 Task 42
Task 51 Task 52
Domain 1
Task 53
Domain 2
Task 41 Task 42
Task 51 Task 52
Domain 1
Task 53
System cycle
Task 11
TimwWindow1
TimwWindow1
TimwWindow2 TimwWindow3 TimwWindow1 TimwWindow2 TimwWindow3
TimwWindow2 TimwWindow1 TimwWindow2IDLE Window
IDLE Window
IDLE Window
PRC1
PRC2
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
タスク割り付け例
• タスクは必ずドメインとクラスに属する必要がある
• 1つのタイムウィンドウには1つのドメインを割り当て可能
−タイムウィンドウが割り当てられていないドメイン → アイドルウィンドウで実行
37
Domain1
タスク11
タスク12
Domain2
タスク21
タスク22
Domain3
タスク31
タスク32
PRC1 Class
PRC2 Class
Domain2 Domain1
System cycle
Domain1
IDLE Window
Domain2Domain1
TimwWindow1
TimwWindow1
TimwWindow2 TimwWindow3
TimwWindow4IDLE
Window
PRC1
PRC2
Domain2 Domain1
System cycle
Domain1
IDLE Window
Domain2Domain1
TimwWindow1
TimwWindow1
TimwWindow2 TimwWindow3
TimwWindow4IDLE
Window
タスクのドメインとクラスへの割り付け
タイムウィンドウのドメインとクラスへの割り付け
タスクのタイムウィンドウのドメインへの割り付け
タスク11
タスク12
タスク11タスク21
タスク22
タスク31
タスク32
PRC1
PRC2
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
SafeG64
38
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
ADAS/自動運転 ECU
対象システム例 : ADAS/自動運転 ECUの構成
• 高機能と信頼性を実現するため2種類の系の組み合わせが有力
−通常系 : 認知・判断・操作を行う
−安全系 : 外部ECUとの通信,操作内容のチェック
・環境理解
・判断
・目標走行指示
・センサ情報の更新
・修正指示のチェック
・制御系ECUへの送信
センサ情報
地図情報指示
車載ネットワーク
制御系ECUセンサECU
通常系
安全系
39
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
ソフトウェアアーキテクチャ
単一のOSによる実現は困難であるため系毎に独立したOSで実現
−POSIX系OS + AUTOSAR OS
−それぞれのOSが動作する系をドメインと呼ぶ
• POSIX系OSのみで実現
−信頼性の実現が課題(安全系と同じレベル)
• 規模が大きく信頼性の確保が困難
• バージョンを固定すると最新のライブラリが使用出来ない
• AUTOSAR 関連のミドルウェアの作り直しが必要
• AUTOSAR OSのみで実現
−POSIX系OS向けライブラリの作り直しが必要
• 最新のライブラリを使用出来ない
ADAS/自動運転 ECU
・環境理解
・判断
・目標走行指示
・センサ情報の更新
・修正指示のチェック
・制御系ECUへの送信
センサ情報
地図情報指示
通常系
安全系
POSIX系OS(Linux等)
AUTOSAR OS
40
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
パーティショニング
パーティショニング(分離機構)の必要性
−分離機構がないと,最も高い安全度が要求されるモジュールの安全度水準(SIL/ASIL)でシステム全体を開発する必要がある.
• 汎用OSをRTOSと同じ検証レベルで開発可能か?
−分離機構があると,モジュール毎に独立した安全度水準で開発可能
• ただし分離機構は最高の安全度水準で開発
Processor
RTOS
(ASIL-X)
汎用OS
(ASIL-X)
Processor
RTOS
(ASIL-X)
汎用OS
(QM)
分離機構無し 分離機構有り
41
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
SafeG64
• ATFをベースにARMv8-A上で汎用OSとTOPPERS OS を動作させる環境
−TOPPERS OS として FMPカーネルをサポート
−FMPカーネル対応のSPDを開発
−MDCOMによるOS間通信
−マルチコア拡張
EL0 EL0
EL1 EL1
EL2
EL3
Non-Secure Secure
APPAPPAPP
Linux TOPPERS/FMP Kernel
Trusted Firmware A
APPAPPAPP
SPD for FMP
AArch64 Core
MDCOM driverMDCOM driver
MDCOM Service
42
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
SafeG64 : 設計方針
SafeGとの互換性を実現する
• SecureからNon-Secureへの切り替え
−ATFのシステムコールによる明示的なWorld切り替え
− Secure OSのアイドル処理(BTASK)で呼び出すことを想定
• Non-SecureからSecureへの切り替え
−割込み発生による自動的なWorld切り替え
−Non-Secure実行時にFIQが発生するとSecureに切り替える
EL0 EL0
EL1 EL1
EL2
EL3
Non-Secure Secure
APPAPPAPP
Linux TOPPERS/FMP Kernel
Trusted Firmware A
APPAPPAPP
SPD for FMP
AArch64 Core
MDCOM driverMDCOM driver
MDCOM ServiceFIQ
IRQFIQ
IRQ
43
システムコール(SMC)
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
マルチコア対応 : ATFとSafeGの違い
• ATF
−Secure OSは,Non-Secure OSをサポートするための機構であり,Non-Secure OSが実行されていないコアではSecure OSは動作する必要がない
• SafeG
−Secure OSは,リアルタイム処理を実行するため,Non-Secure OSが実行されていないコアでも動作する
ATFのマルチコアブートシーケンスを変更
SafeG 64
APU Core 0
GPOSRTOS
APU Core 1
GPOSRTOS
APU Core 3
RTOS
APU Core 2
GPOSRTOS
存在するが通常時は動作しない存在するが通常時は動作しない存在するが通常時は動作しない
コアを占有してリアルタイム処理を実行
44
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
MDCOMによるOS間通信
MDCOMと互換の通信機構によりOS間の通信が可能
• 共有メモリと割込みにより通信
−共有メモリは事前に共有メモリエリアを定義
−SPDサービスによりNon-SecureからSecureに割込みを発生させる
−Secureは直接割込みコントローラを操作
EL0 EL0
EL1 EL1
EL2
EL3
Non-Secure Secure
APPAPPAPP
Linux TOPPERS/FMP Kernel
Trusted Firmware A
APPAPPAPP
SPD for FMP
AArch64 Core
MDCOM driverMDCOM driver
MDCOM Service
45
Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.
ERTL
まとめ
• TOPPERS第3世代カーネル
−TOPPERS/ASP3カーネル
• TOPPERS第3世代カーネルの出発点
−TOPPERS/HRP3カーネル
• 高い信頼性・安全性を要求される組込みシステムに対応
−TOPPERS/FMP3カーネル
• マルチプロセッサ向けに拡張
−TOPPERS/HRMP3カーネル
• HRP3カーネル + FMP3カーネル
• SafeG64
−ATFをベースにTOPPERS OSが動作するよう拡張
• マルチコア対応とOS間通信機構(MDCOM)
46