マルチOSを実現するOpenAMP仕様 のメリットと開...

35
イー・フォース株式会社 日憲(チョウ イルホン) 野田 周作(ノダ シュウサク) [email protected] マルチOSを実現するOpenAMP仕様 のメリットと開発手法について

Transcript of マルチOSを実現するOpenAMP仕様 のメリットと開...

Page 1: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

イー・フォース株式会社

趙 日憲(チョウ イルホン)野田 周作(ノダ シュウサク)

[email protected]

マルチOSを実現するOpenAMP仕様

のメリットと開発手法について

Page 2: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

プレスリリース -2018年12月4日-

2

Page 3: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

Agenda

• なぜマルチOSの共存が必要?

• Linuxのメリット・デメリットは?

• マルチOS共存の実現方法

– ハイパーバイザー方式

– AMP方式

• OpenAMP方式を採用した「μC3+Linux」とは?

• 導入手順や開発手法

• 今後の予定

3

Page 4: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

イー・フォースとは

4

東京都本社

開発拠点 東京 & マドュライ

事業内容 RTOSおよびTCP/IPスタックの開発・販売

2つの主力製品 ・μC3(RTOS)・μC3/Compact for MCU

・μC3/Standard for MPU

・μNet3(Network stack)沿革

2006 :国内のOSベンダとしてCortex-M/Aコアに最速対応「μC3/Compact」および「μC3/Standard」をリリース

2013 : マルチコア製品に対応した 「μC3/Standard+M」をリリース

2015 : 産業用イーサネットへの対応(EtherCAT, PROFINET, EtherNet/IP等)

2016 : ARMv8-Aへの対応

2017 : OpenAMPを採用した「uC3+Linux」共存ソリューションをリリース

2018 : サイバートラスト社と「μC3+Linux」に関する協業をスタート

・μC3/Standard+M (Homo)・μC3/Standard+H (Hetero)・μC3+Linux

Page 5: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

なぜマルチOSの共存が必要?

Page 6: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

なぜマルチOSの共存が必要?(1/2)

6

ホモジニアス・・・同一プロセッサ・コアによる構成

A7 A7

A9 A9

A9 A9

A7 M4

Xilinx Zynq-7000INTEL SoCNXP i.MX6 Renesas RZ/G1x, RZ/N1D

NXP i.MX7, 6SoloXilinx Zynq UltraScale+ MPSoCRenesas RZ/N1S, RZ/G1H

ヘテロジニアス・・・異なるプロセッサ・コアによる構成

【ユーザ視点】マルチコア・ヘテロコアを簡単に活用できるソリューションはないの??

【半導体ベンダ視点】増えるバリエーションをどうやって

活用して頂こう??

Page 7: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

なぜマルチOSの共存が必要?(2/2)

7

お客様A

お客様B

お客様D

お客様C

リアルタイム性能を維持したまま、GUIを高機

能化したい

既存のRTOSのSW資産

を活かしながら、ミドルウェアをLinux側に集約

したい

Linuxの豊富なライブラリを

活用したい。ただし、リアルタイム処理が必要な機能も

ある。

PC(Linux)で開発していたもの

を、高性能化・低価格化してきたプロセッサで実現したい。

LinuxとRTOSの共存

Page 8: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

Linuxのメリット・デメリットは?

8

Merit

Demerit

・オープンソース・無償・ミドルウェアが豊富・デバイスドライバが豊富・開発環境が揃っている・豊富な情報が公開

・リアルタイム性能・起動時間が遅い・無保証・Linuxでないと使用困難なデバイスやソフトがある

(GPU, VPU, Codec, etc.)

Page 9: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

ユースケース

• GUIの高機能化に活用

(お客様Aのケース)

9

Linux μC3

Graphicx Realtime proc

• 機能配分の研究・開発に活用

(お客様Dのケース)

Linux μC3

高負荷演算 Realtime proc

• 機器のIoT化に活用

(お客様Bのケース)

Linux μC3

Ethernet EtherCAT

IoT

Page 10: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

マルチOS共存の実現方法

ハイパーバイザ方式 vs AMP方式

Page 11: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

ハイパーバイザ方式(1/3)

11

仮想化…コンピューティングシステム内を構成する資源を、物理的構成によらずに分割または統合して、隠蔽・抽象化する技術。

仮想マシン(VM)…仮想化ソフトウェアによって構築されたコンピュータハイパーバイザ…仮想マシンを実現するための制御プログラム

*仮想化ソフトウェア…仮想化を実現するソフトウェア

Host System

Hypervisor

VM1 VM2

2台の仮想マシン(VM)を持つハイパーバイザの例

Page 12: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

ハイパーバイザ方式(2/3)

12

ベアメタル型(Type-1)

ハイパーバイザには、ベアメタル型(Type-1)とホスト型(Type-2)の2種類があります。

ホスト型(Type-2)ハイパーバイザは、ハードウェア上で直接動作し、ゲストOSはハイパーバイザ上で動作します。ホスト型と比較してオーバーヘッドが小さく、高い隔離性が期待できます。

ハイパーバイザは、ホストOSのアプリケーションとしてホストOS上で動作し、さらにそのハイパーバイザ上で別のOSを動作させます。そのため、実行時のオーバーヘッドが大きく、仮想マシンの動作速度が遅くなってしまうデメリットがあります。

Host System

Hypervisor

OS 1(Linux)

OS 2(RTOS)

Hardware

Host System

VM 1 VM 2

Hardware

Host OS

Hypervisor App

Page 13: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

ハイパーバイザ方式 – VOSySmonitor by VOS -(3/3)

13

Linux

Arm multi-core hardware(Renesas RZ/N1D)

μC3(RTOS)

VOSySmonitor

Normal world Secure world

Real time taskUser apps

Serial console

HertbeatMessageを出力

①意図的にコンソールからLinuxクラッシュコマンドを実行echo c > /proc/sysrq-trigger

②カーネルパニックとなりLinuxはダウンする

③μC3はLinuxの影響を受けることなく、正常に動作を継続

Page 14: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

AMP方式

14

Core 0 Core 1

Linux

App

OpenAMP

Core 2 Core 3

App

・OSを直接割当・ハイパーバイザ方式と比較してシンプルな実装

RTOS

コア間通信はどうするの?

Page 15: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

マルチOS共存方法の比較

Core 0 Core 1

LinuxRTOS

Core 2

Core 0 Core 1

LinuxRTOS

Core 2

Hypervisor

ハイパーバイザ方式

AMP方式

• リソースをハイパーバイザが管理• OS間のメモリ保護が可能• シングルコアのデバイスで実現する

事によりBOMコスト減• OS切り替えコストが発生• ホモジニアスコアが前提

• コアに対してOSを直接割当• ハイパーバイザを用いるよりも軽量

かつシンプルな実装が可能• OS間の切り替えが発生しない• ヘテロジニアスコアにも対応• OS間のメモリ保護は自己責任

Page 16: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

OpenAMP方式を採用した「μC3+Linux」とは?

Page 17: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?(1/9)

17

Core 0 Core 1

LinuxOpenAMP

Core 2 Core 3

Linuxの豊富な資産を活用 x RTOSのリアルタイム性能・信頼性担保

RTOS

オープンソース・無償ミドルウェアが豊富デバイスドライバが豊富豊富な情報が公開

リアルタイム性能信頼性の担保高速起動

OpenAMP

Page 18: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?-OpenAMP-(2/9)

18

OpenAMP :正式名称「OPEN ASYMMETRIC MULTI PROCESSING」

マルチコア・デバイスで各コアが連携できるように、

MCAで規定したコア間の通信やリソースの管理を行うための標準規格。

*MCA(Multicore Association)

マスタ・プロセッサに、リモート・プロセッサのライフサイクル管理機能を提供します(ブート・シャットダウン・プログラムのロード等)

remoteproc

RPMsg

AMPシステム内に存在する同種または異種のコア上で動作する、独立したソフトウェアコンテキスト間のプロセッサ間通信(IPC)機能を提供します

OpenAMPフレームワークの主要なコンポーネント

Page 19: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?-OpenAMP-(3/9)

19

https://www.multicore-association.org/workgroup/oamp.php

ソースコードはgithubで公開。https://github.com/OpenAMP/open-amp

Page 20: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?-OpenAMP-(4/9)

20

① マスタ・アプリケーションがリモート・ファームウェア・イメージをメモリ内の適切な場所にロード

② リセットからリモートプロセッサを解放して、リモート・ファームウェアの実行を開始(※場合によっては依存部の実装が必要)

③ リモート・コンテキストとのランタイム通信用にRPMsg通信チャネルを確立

④ リモート・プロセッサをシャットダウン

⑤ リモート・アプリケーションがリモート側のリモート・システムをシームレスに初期化し、マスタコンテキストとの通信チャネルを確立

remoteprocの重要な機能

Page 21: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?-OpenAMP-(5/9)

21

remoteprocの概要

※OpenAMP Framework User Referenceから抜粋

Page 22: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?-OpenAMP-(6/9)

22

① RPMsgチャンネル・マスタ・デバイスとリモート・デバイス間の通信チャンネル・テキスト名とローカル(送信元)及び送信先アドレスで識別

② RPMsgエンドポイント・チャンネルに対して論理的な接続を提供・アプリケーションはエンドポイントを宛先として通信する

RPMsgの概要

・RPMsgは、AMP環境でプロセッサ間通信(OS間通信)を実現・通信はRPMsgチャンネルとRPMsgエンドポイントを利用

Page 23: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?-OpenAMP-(7/9)

23

RPMsgの概要

※OpenAMP Framework User Referenceから抜粋

Page 24: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?(8/9)

24

Linuxとコア間連携できるように、μC3にOpenAMPコンポーネントを実装し提供

Core 0 Core 1

Linux

μC3

App

RPMsg

OpenAMP

Core 2 Core 3

App

RPMsg

OpenAMP同士であればLinux以外のOSやベアメタルでも通信可能

ヘテロコアプロセッサにも対応可能

remoteproc

MasterRemote

μC3+LinuxではμC3が基本マスタ

Page 25: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxとは?(9/9)

25

Core 0 Core 1

Linux

Core 2 Core 3

OpenAMP

libmetal

OpenAMP

libmetal

RPMsgRPMsg

OpenAMPを利用したOS間通信

AppApp

VRING/IPI

uio

Page 26: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

導入手順や開発手法

Page 27: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxの開発・導入手段(1/4)

27

● メモリ割当の決定

● デバイス割当の決定

● ブート設定

● Linux & μC3のビルド

●U-Bootで設定●μC3起動後にLinux起動

● コア割当の決定●(例)Linux 3コア,μC3 1コア

「μC3 + Linux」パッケージには、ドライバだけでなくOS共存の動作サンプルも同梱

●μC3アプリケーション●Linux OpenAMPライブラリ、Linuxアプリケーション

Page 28: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxの開発・導入手段-メモリレイアウトの決定-(2/4)

28

Linux

μC3

VRING

0x00000000

0x1FFE0000

0x20000000

0x3FFFFFFF

● メモリレイアウトの決定

● 使用デバイスの決定

●Linux動作領域●μC3動作領域●通信用リングバッファ(VRING)領域

●割込み●ドライバ (例)UART1:μC3

使用するリソースが競合しないように配分する必要があります

Page 29: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxの開発・導入手段-OSのブート設定およびブートシーケンス-(3/4)

29

U-Boot起動

μC3ロード μC3起動

Linux起動

コア0

U-Boot起動

μC3ロード

μC3起動

Linux起動

Linuxロード・デバイスツリー

ロード

Linuxロードデバイスツリーロード

コア1 コア2 コア3

例)Linux for3コア,μC3 for 1コア

Page 30: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

μC3+Linuxの開発・導入手段-デバッグ手法-(4/4)

30

Linux - コア 0~2

μC3 - コア3

SMP構成で接続

DTSインサイト社製adviceLUNAⅡ利用可能

Page 31: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

「μC3 + Linux」はさらに進化

Page 32: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

OpenAMPのTrustZone対応

Core 0 Core 1

LinuxRTOS

Core 2 Core 3

RPMsgRPMsg

Monitor

• OSの切り替えは発生しない

• Monitorからセキュア起動

– モニタがU-Boot(ノンセキュア)→Linuxを立ち上げ

Secure

Non-Secure

Page 33: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

共有データ(大きいデータ)の扱い

Core 0

Linux

Core 1

共有データ

App App

●共有メモリの取得・排他制御(スピンロック)が可能に(libmetalを使用)

uio

Libmetal Libmetal

●共有メモリ専用のAPIを提供

OpenAMPでな独自機能!!

Page 34: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

まとめ

• 現在、増加するコア数、そしてお客様の複雑化する課題に対して、マルチOSの共存が一つの解決策になっています

• eForceが提供できるマルチOSの共存方法(ご要求仕様に対して柔軟に対応出来ます)

– AMP方式・・・「μC3 + Linux」

• 対応プロセッサ

– Xilinx Zynq-7000

– Xilinx Zynq UltraScale MPSoC “デモ実施中”

– Intel SoC

– Renesas RZ/G1E

– NXP i.MX6

– ハイパーバイザ方式(仏Virtual Open Systemと協力)

• 対応プロセッサ

– Renesas RZ/N1

• プレゼン資料をご希望の方は、お手元のアンケートのコメント欄にその旨、ご記入をお願い致します。

• 評価をご希望の方は、[email protected]までお問合せ下さい。

34

Page 35: マルチOSを実現するOpenAMP仕様 のメリットと開 …Linuxのメリット・デメリットは? 8 Merit Demerit ・オープンソース・無償 ・ミドルウェアが豊富

ご清聴ありがとうございました。お手数をお掛け致しますが、

アンケートへのご協力をお願い致します。