46
Graduate School of Informatics, Nagoya Univ. Embedded and Real-Time Systems Lab. ERTL HRMP3カーネル パーティショニング機能を持つマルチコア向け RTOSの紹介 本田 晋也 名古屋大学 大学院情報学研究科 TOPPERSプロジェクトシニアテクニカルエキスパート [email protected] Arm Tech Symposia 2018 2018/12/6 1

HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

HRMP3カーネルパーティショニング機能を持つマルチコア向け

RTOSの紹介

本田 晋也

名古屋大学 大学院情報学研究科

TOPPERSプロジェクトシニアテクニカルエキスパート

[email protected]

Arm Tech Symposia 2018

2018/12/6

1

Page 2: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERSプロジェクトの概要

2

Page 3: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERSプロジェクトとは?

−ITRON仕様の技術開発成果を出発点として,組込みシステム構築の基盤となる各種の高品質なオープンソースソフトウェアを開発するとともに,その利用技術を提供

組込みシステム分野において,Linuxのように広く使われるオープンソースOSの構築を目指す!

• プロジェクトの狙い

−決定版のITRON仕様OSの開発

−次世代のリアルタイムOS技術の開発

−組込みシステム開発技術と開発支援ツールの開発

−組込みシステム技術者の育成への貢献

• プロジェクトの推進主体

−産学官の団体と個人が参加する産学官民連携プロジェクト

−2003年9月にNPO法人として組織化

3

← ほぼ完了

Page 4: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 5: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 6: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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)

エスクード (スズキ)

Page 7: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERSライセンス

TOPPERSプロジェクトで独自に開発したソフトウェアには,

独自のライセンス条件を設定する

基本的な考え方

−組込みシステムの事情を考慮し,GNU GPLやBSDライセンスより自由に使えるライセンス条件とする

−成果をアピールすることが開発資金獲得に繋がることから,どこでどう使われているかをなるべく知りたい

ライセンス内容

−派生物をオープンする義務は課さない.派生物を販売するビジネスも可能

−機器に組み込んで使用する場合の実質的な義務は,利用したことを報告することのみ⋯ レポートウェア

7

Page 8: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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世代カーネル

スタンダード

Page 9: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

第3世代カーネルの必要性

• 求められている/求められつつある技術・機能

−機能安全からの要求に応えられるパーティショニング

−ティックレスの高分解能時間管理と外部時刻同期

−マルチコアにおける動的ロードバランシング

−メニーコアプロセッサへの対応 … 今後の課題

• 一方,廃止すべきと考えられる機能もある

−タスク例外処理機能,メールボックス

• TOPPERS第3世代カーネルへ

−第2世代のカーネルの次の世代と位置付けた方が,大胆な仕様変更が可能

−第3世代においても,2系列(ITRON系,車載系)のリアルタイムカーネル開発は,引き続き維持していく

9

Page 10: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

第3世代カーネル (ITRON系) の仕様策定方針

• 基本的な設計方針 … 第2世代を踏襲

−μITRON4.0仕様をベースに拡張・改良を加える

−ソフトウェアの再利用性を重視する

−高信頼・安全なシステム構築を支援する

−アプリケーションシステム構築に必要な機能は積極的に取り込む

• 特に留意した設計方針(これまでも暗黙に存在)

−システム/アプリケーションによって要求が異なる機能は,ミドルウェア等で実現することとし,カーネルにはその実現に必要な最低限の機能を導入する

• ポリシーとメカニズムの分離の考え方

−実装方法を合わせて検討し,オーバヘッドの大きい仕様を避ける

10

Page 11: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

第2世代から第3世代への主な仕様変更点

(1)時間パーティショニング機能の導入

−機能安全におけるソフトウェアパーティショニングの実現を容易にするための機能

(2)ティックレスの高分解能時間管理と外部時刻同期

−カーネルが管理する時間の分解能をミリ秒からマイクロ秒に変更

• タイムティックを使わない実装に変更

−外部時刻との同期のための機能を導入

(3)マルチコアにおける動的負荷分散機能への対応

−マルチコアプロセッサにおけるロードバランシングを実現するために以下の機能を導入

• タスクとスケジューリング状態の参照機能

• サブ優先度機能

11

Page 12: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

第2世代から第3世代への主な仕様変更点

(4)仕様のスリム化・シンプル化(主なもの)

−タスク例外処理機能の廃止とタスク終了要求機能の導入

• 必要性が低いにもかかわらず,ターゲット依存部(特に保護機能対応の場合)の実装負担が大きいタスク例外処理機能と待ち禁止状態を廃止

−非タスクコンテキスト専用のサービスコールの廃止

−メールボックス機能の廃止

• 保護機能対応では不適切な機能(サポートしていない)

(5)ミューテックスの標準機能化

(6)その他の改良(主なもの)

−タイムイベント処理機能の見直し

−起動要求をキューイングしないタスクの追加

−保護ドメインに対するアクセス許可ベクタの新設

−保護ドメイン毎の標準メモリリージョン

12

Page 13: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 14: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 15: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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リリース予定

Page 16: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 17: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 18: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERS/ASP3カーネル

18

Task1 Task2 Task3

CPU

ASP3

ベーシック

Page 19: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERS/ASP3カーネルの概要

• ASP3カーネルの位置付け

−TOPPERS第3世代カーネルの出発点

−TOPPERS/ASPカーネルを拡張・改良したもの

• ASPカーネルに追加した機能(基本パッケージでサポート)

−タスク終了要求機能

−ティックレスの高分解能時間管理,システム時刻の調整機能,システム時刻の参照/設定機能

−ミューテックス機能 … 基本機能に格上げ

−周期通知/アラーム通知機能 … 周期ハンドラ/アラームハンドラ機能を拡張

• ASPカーネルから削除した機能

−タスク例外処理機能

−メールボックス機能

19

Page 20: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERS/ASP3カーネルの概要

• 周辺ツールの活用・変更

−TECSの活用

• システムサービス(システムログ機能など)とデバイスドライバの構築にTECSを活用

• カーネルを利用するだけであれば,TECSを勉強する必要はない

−Ruby版コンフィギュレータの適用

• 拡張パッケージでサポート

−ドリフト調整機能

−メッセージバッファ機能

−オーバランハンドラ機能

−タスク優先度拡張

−制約タスク

−サブ優先度機能

−動的生成機能

20

Page 21: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

マイグレート

Page 22: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 23: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

FMP3カーネル : 外部仕様(FMPカーネルからの更点)

時間管理

• FMPカーネル : 1ms周期のシステムティック(システム時刻)

−グローバルタイマ方式(1コアのみでティックを管理)とローカルタイマ方式(各コアでティックを管理)から選択可能

• ティックを管理するプロセッサではタイムイベント処理を実行

−各コアでシステム時刻を同期したい場合は実装依存で実現

• FMP3カーネル : ティックレスの高分解能時間管理

−システム時刻はシステム全体で1個

• 高分解能タイマはすべてのプロセッサから読み出すことができ,少なくとも1つのプロセッサ(タイムマスタプロセッサ)に対して割込みを発生させることができること.

−タイムイベント処理プロセッサ

• タイムイベント処理を行うプロセッサ

• 任意のプロセッサを指定可能(仕様上は)

タイムイベント処理プロセッサ毎にタイマが必要

23

Page 24: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 25: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 26: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

FMP3カーネル : 実装(FMPカーネルからの更点)

• カーネルのロック単位

−FMPカーネル : 3種類のロックをサポート

• メニーコア向けに細粒度ロックをサポート

−FMP3カーネル : ジャイアントロックのみサポート

• Mutexやタスク終了要求機能がサポートされたため,ジャイアントロック以外のロック方式を実現すると,コードの複雑化や割込み応答時間の悪化を招く

• 現状の組込み向けマルチコアは最大4コアが主流

• メリット

コード中の#ifdefの多くが排除された

デットロック回避の検討や対応の必要性がなくなった

• デメリット

メニーコアでは性能の低下の可能性

メニーコア向けには別のOSを用意する

26

Page 27: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

メモリ・アクセス保護

時間保護

Page 28: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 29: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

HRP3のメモリ保護 : システム構成

29

カーネルドメイン

保護ドメイン1

周期通知

カーネルデータ カーネルスタック 割込みハンドラ

アプリレベルデータ

タスクレベルデータ

スタックコード

カーネルコード

保護ドメイン2

周期通知

メモリオブジェクト

スタックコード共有

ライブラリ

アプリレベルデータ

タスクレベルデータ 共有データ

タスク タスク

無所属

タスク タスク 周期通知アラーム

通知

セマフォ データキュー

セマフォ データキュー

Page 30: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

HRP3のメモリ保護 : メモリ保護

• タスクは他保護ドメインやカーネルドメインのメモリにアクセスできない

−MPU/MMUにより実現

30

カーネルドメイン

保護ドメイン1

周期通知

カーネルデータ カーネルスタック 割込みハンドラ

アプリレベルデータ

タスクレベルデータ

スタックコード

カーネルコード

保護ドメイン2

周期通知

メモリオブジェクト

スタックコード共有

ライブラリ

アプリレベルデータ

タスクレベルデータ 共有データ

タスク タスク

無所属

タスク タスク 周期通知アラーム

通知

セマフォ データキュー

セマフォ データキュー

Page 31: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

HRP3のメモリ保護 : アクセス保護

• タスクは他の保護ドメインPのオブジェクトに対してAPIを発行できない

−OSによりAPI発行元と発行先をチェック

31

カーネルドメイン

保護ドメイン1

周期通知

カーネルデータ カーネルスタック 割込みハンドラ

アプリレベルデータ

タスクレベルデータ

スタックコード

カーネルコード

保護ドメイン2

周期通知

メモリオブジェクト

スタックコード共有

ライブラリ

アプリレベルデータ

タスクレベルデータ 共有データ

タスク タスク

無所属

タスク タスク 周期通知アラーム

通知

セマフォ データキュー

セマフォ データキュー

sta_cycsta_cyc

Page 32: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 33: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 34: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 35: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

TOPPERS/HRMP3カーネル : メモリ保護

• メモリ保護の単位(ドメイン)と処理単位のプロセッサへの割り付けは独立

−例)同ドメインに所属するタスクを別々のプロセッサで実行可能

35

CPU1 CPU2

カーネルドメイン

保護ドメイン1

周期通知

カーネルデータ カーネルスタック 割込みハンドラ

アプリレベルデータ

タスクレベルデータ

スタックコード

カーネルコード

保護ドメイン2

メモリオブジェクト

スタックコード共有

ライブラリ

アプリレベルデータ

タスクレベルデータ 共有データ

タスク1 タスク2

無所属

タスク タスク 周期通知アラーム

通知

セマフォ データキュー

セマフォ データキュー

タスク3

Page 36: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 37: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 38: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

SafeG64

38

Page 39: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

Graduate School of Informatics, Nagoya Univ.Embedded and Real-Time Systems Lab.

ERTL

ADAS/自動運転 ECU

対象システム例 : ADAS/自動運転 ECUの構成

• 高機能と信頼性を実現するため2種類の系の組み合わせが有力

−通常系 : 認知・判断・操作を行う

−安全系 : 外部ECUとの通信,操作内容のチェック

・環境理解

・判断

・目標走行指示

・センサ情報の更新

・修正指示のチェック

・制御系ECUへの送信

センサ情報

地図情報指示

車載ネットワーク

制御系ECUセンサECU

通常系

安全系

39

Page 40: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 41: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 42: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 43: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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)

Page 44: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 45: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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

Page 46: HRMP3カーネル パーティショニング機能を持つマルチコア向け · −tecs(toppers組込みコンポーネントシステム) ... •教育コンテンツ −初級・中級実装セミナー教材

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