組込みメニーコアに向けた（ＯＳと）制御アプリ並列化
２０１３年８⽉２３⽇
名古屋⼤学⼤学院情報科学研究科
東京⼤学⼤学院情報理⼯学系研究科
早稲⽥⼤学グリーン・コンピューティング・システム研究開発センター
枝廣 正⼈
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

1

アウトライン• 背景– マルチ・メニーコアの動向（JEITA調査より）• MATLAB/Simulinkモデルからの並列化• ⾞載制御システムを例とした並列化と課題• まとめと今後の課題、取り組み

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

2

⾞載システムのマルチ・メニーコア実現の必要性
⾃動⾞業界のニーズ
演算量の増加とﾘｱﾙﾀｲﾑ処理の両⽴－⾼機能化、複合センサー処理
ECU統合によるコスト削減ニーズ など
周辺監視

リモート（集合知活⽤）

ｲﾝﾌﾗ協調

⾞内のあらゆるセンサー情報統合制御による安全⽀援、低燃費化等+ECU統合によるコスト削減

技術シーズ
CPUはマルチコアが主流へ－シングルコアでの性能向上の限界（熱、消費電⼒の課題など）

100

Picochip
TileraClearSpeed
NiagaraPower, etc.

10

ARM MPCore

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

プロセッサコア数

1000

ソフトウェアの並列化が必要不可欠⇒モデルベース設計
からの並列化

21世紀に⼊り、マルチコア化が急速に進展

シングルコアの時代
1
1970

1980

1990

2000

2010

2020

制御系マイコンでも2コア品が登場: ルネサスV850E2/MN4 など

3アウトライン• 背景• MATLAB/Simulinkモデルからの並列化• ⾞載制御システムを例とした並列化と課題• まとめと今後の課題、取り組み

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

4

モデルベース並列化: Simulinkモデルから並列コードを⽣成(NECとの共同研究)
Simulink▐ ブロック図で表記されたモデルから並列Cコードを⽣成
Simulinkモデル▐ 並列APIを明⽰的に使うことなく、 並列プログラムを開発可能に

タスク

モデル解析

通信中間モデル構築

最適化

Simulinkモデル

モデルに表現された構造的並列性を最⼤限抽出例）フラット化、ループ構造分解

通信オーバーヘッド低減のため、タスク粒度調整、タスク完了待合せ、などの最適化
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

Cコード解析

5

並列コード⽣成ツール

並列化⼿法：• モデルのブロックをタスクにマッピング。
• タスクの実⾏完了をメッセージで通知。

逐次処理
Cコード

並列コード⽣成
並列Cコード*1: The MathWorks社のモデルベース開発ツール。
*2: RealTime-Workshopが⽣成したCコード

CSP並列実⾏モデル¾ CSP(Communicating Sequential Processes)¾ 並⾏実⾏するプロセス(タスク)の相互作⽤を記述¾ ノード: プロセス
¾ エッジ: チャネル

¾ 制御処理と相性が良い¾ センサ⼊⼒値に対して制御値を出⼒する処理がCSPの動作に当てはまっている

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

6

モデルベース並列化ツールを⽤いたフロー
MATLAB/ Simulinkモデル
Real‐Time Workshop
Embedded Coder
逐次処理Cコード
モデルベース並列化ツール
CSPにもとづいたマルチスレッドCコード
参考文献:久村孝寛. Simulinkモデルにもとづいた並列Cコード生成.
電子情報通信学会技術研究報告, Vol.110, No. 473, pp. 303–308, 2011.

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

7

モデルベース並列化の特徴•

データフローにもとづいた並列処理– ブロック図で表現されたモデルの、ブロックをタスク、ブロック間の線をデータ依存関係、と⾒なして、タスク間のデータ依存関係を満たすような並列処理を実施。
– 共有メモリによるデータ共有• 通信によるデータ転送増加を防ぐために、共有メモリを使ってタスクはデータを共有。
– 1-1通信だけを使⽤• 仕様が複雑になりがちなN-1通信を使わず、デッドロックが発⽣しないように通信の順番を決めた上で、1-1通信だけを使う。
• ターゲット・デバイスがN-1通信を提供していれば、N-1通信を使うことも可能。

– 並列化⽅法を選択可能• ターゲットプロセッサの特性に合わせて並列実⾏⽅法を変更可能。

•モデルから並列性を抽出するための処理– フラット化• モデルの階層構造を無くして、ブロックの接続関係を管理し易くする。
– ループ構造除去• 遅延要素ブロックに着⽬し、並列処理に適すように、並列化を困難にするループ構造をモデルから除去する。
– グループ化• タスクやチャネルの増加によるオーバーヘッド増加を防ぐために、計算量が⼩さなタスクをグループ化し、タスクやチャネルの数を減らす。

School of Information Science, Nagoya Univ.
ERTL GraduateEmbedded and Real-Time Systems Lab.

8

フラット化• Simulinkモデルは階層的な構造をもつ。
• 並列化しやすいよう、階層構造を分解。
階層構造をもつモデル

フラット化されたモデル

対応するCコードが存在するブロック全てのブロックの依存関係をひとつのグラフ構造で表現し、ここから並列性を抽出

定数や⼊出⼒端⼦等に対応するCコードは、定数や変数として埋め込まれ、逐次Cコードの中に陽に現れないことがある。

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

9

ループ構造除去• ループ構造は並列化を阻害するため、遅延要素ブロックを出⼒と更新に分割し、ループ構造を除去。
ループ構造をもつモデル

ループ構造除去後のモデル

KK
Output

Yn

z-1

Xn

遅延要素の出⼒:
Yn= f (Sn)
遅延要素の状態更新: Sn+1= g (Xn,Sn)
出⼒Ynは⼊⼒Xnに依存しないので、Xnの到着を待たずにYnをすぐに計算可能。
Ynを計算した後で、状態Sn+1を計算すればよい。

Yn
開始Update

z-1 イタレーションを z-1
またぐ依存関係Xn

遅延要素をOutput(出⼒)とUpdate(更新)に分割。
開始ノードからOutputへのエッジを追加。
Updateの結果(Sn+1)を次のイタレーションにおいてOutputが使⽤するので、イタレーションをまたぐ依存関係を表すエッジをUpdateからOutputへ追加。
イタレーションをまたぐエッジ(破線)を無視すると、ループ構造はなくなっている。

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

10

モデルベース並列化による並列化実験
⼀般に公開されているSimulinkモデルから並列コードを⽣成し、効果を確認
⽩線検知

⾳響処理

道路画像から⽩線を検出し、追尾し、⽩線を逸脱したら警告メッセージを出⼒する。
MATLAB の Video and Image processing toolbox に付属するサンプルモデル: vipldw_all.mdlモデル

ブロック数

タスク数

様々なエフェクトをかけて、オーディオ信号(ステレオ)の振幅特性や周波数特性を変化させる。
http://www.mathworks.com/matlabcentral/fileexch
ange/18317-professional-simulink-audio-equalizer

実⾏時間(並列化前を100%とする)
Windows Xeon 4コア@1.8GHz
Intelコンパイラ
⾃動並列化

⾳響処理 252

57

eSOL eT-Kernel SMP
NaviEngine (4コア@400MHz)

モデルベース並列化(パイプライン的並列処理、未グループ化)

85.8%

38.3%

26.3% •• フィードバックループがない。
各タスクの計算量がそれなり。

⽩線検知 302
6494.9%44.3%
39.0% • タスクの計算量ばらつきが⼤きい。
T. Kumura, et al., "Model Based Parallelization from the Simulink Models and Their Sequential
C Code," Proceedings of SASIMI 2012, R2‐8, pp. 186‐191, March 2012.

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

11

アウトライン• 背景• MATLAB/Simulinkモデルからの並列化• ⾞載制御システムを例とした並列化と課題– MATLAB/SimulinkモデルからCSPモデルへ– V850マルチコアアーキテクチャでの実現– XMOSメニーコアアーキテクチャでの実現• まとめと今後の課題、取り組み

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

12

サンプル⾞載制御モデル
連続系と離散系を含む
マルチレート ハイブリッドシステム

コントローラーモデルの各ブロックは、入力のサンプル時間を継承しているため、プラントモデル上のシミュレーションでは、マルチレート ハイブリッド サブシステムとなっている（協力）トヨタ自動車、名古屋大学道木研究室
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

13

変換フロー
Simulinkモデル（入力）

課題：①連続系、②マルチレート、③S‐Function

Mathworks殿ツール対応 Simulinkモデル
RTW‐EC (Real‐Time Workshop Embedded Coder)

Simulinkモデル / Cコード
並列化 (モデル解析 & Cコード解析）
課題：④アーキテクチャ依存

マルチ・メニーコア実行
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

14

①連続系プラント部分の離散化• Mathworksツール上で離散化可能なブロックは離散化• 連続系のS-Functionを離散化アルゴリズムを⽤いて、離散系のS-Functionで書き換え– その後、同様の⽅法で、Cに変換– 制御周期はControllerの10倍に設定

離散化
C変換

– MATLABとCの差分は、6×10-14のオーダー
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

15②マルチレート対応
低速→高速
Unit Delay を分割
Unit Delayの出力を2回送信

状態変数もチャネル通信
共有メモリの使用無し
シミュレータに実装
Simulinkモデル上の遷移と一致を確認
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

16

高速→低速
Zero‐Order Holdの出力を2回に1回送信

③S-Function からのコード⽣成フロー(現在のMathworks殿ツール体系に強く依存)C
S‐Funciton

M‐ファイル
S‐Function
レベル1
M‐ファイル

M.C.+IDE

S‐Function 人手
Builder 自動

M.C.+人手人手M.C.+IDE

レベル2
M‐ファイル完全
RTW‐EC
完全
インライン
インライン
TLC

IDE

人手+(M.C.)
人手+(M.C.)

ラッパー
TLC

人手

RTW‐EC

ラッパー関数人手
RTW‐EC

C‐MEX
M.C.+人手M.C.：MATLAB CoderSchool of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

生成コード

TLCファイル17

非インライン③フローにもとづく変換結果 1

誤差0

誤差0

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

18

③フローにもとづく変換結果 2

誤差0

C言語の場合、10‐16のオーダーで誤差が生じる
MATLAB言語の場合、‐4～4の値を取る
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

19

変換結果

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

20

④アーキテクチャ依存（１）• マルチ・メニーコアには様々なアーキテクチャが存在– 共有メモリ型マルチコア– メニーコアになると分散メモリ化？
CPU

CPU

CPU

CPU

共有メモリ型

CPU

CPU

メモリ

分散メモリ型
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

CPU

CPU

メモリ

CPU

CPU

CPU

メモリ

21

CPU

④アーキテクチャ依存（２）• ＯＳモデル、その上の並列モデルに依存– 従来のマルチプロセッサの場合• 共有メモリならば、OSスレッド (pthread, Windows API)、スレッドライブラリ (OpenMPなど）が主流• 分散メモリならば、通信ライブラリ (MPIなど)を利⽤• ライブラリのオーバーヘッドが⼤きく、それなりの粒度（分割されたプログラム単位の⼤きさ）が必要

例: 並列オーバーヘッド = 1000 Cycles（粒度=10000 Cycles）×４（粒度＝100 Cycles）×４
100 Cycle

10000

1000

1000

10000

1000

1000

10000

1000

1000

10000

1000

1000

10000

１CPU4CPU

SlowerthanBefore

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

2210000

10000

1000 Cycles

×3.310000

④アーキテクチャ依存（３）• ⾞載制御システムの場合、細かく割り込みが⼊り、その単位での処理になるため粒度が細かい• 今後の⾼精度化に向けて、さらに細かくなっていく傾向にある• 現在のオーバーヘッドは、軽量OSでも数μsecであり、⾞載制御に適しているとは⾔えない• ⾞載制御システムに適したＯＳ、基本ソフトウェアが必要→今後の⼤きな研究課題• マルチコアの例としてV850アーキテクチャ、メニーコアの例としてXMOSアーキテクチャ上で評価した例を⽰す
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

23

アウトライン• 背景• MATLAB/Simulinkモデルからの並列化• ⾞載制御システムを例とした並列化と課題– MATLAB/SimulinkモデルからCSPモデルへ– V850マルチコアアーキテクチャでの実現– XMOSメニーコアアーキテクチャでの実現• まとめと今後の課題、取り組み

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

24

V850マルチコアアーキテクチャ¾ 各CPUコア¾ フラッシュメモリ⽤ノンコヒーレ
ント・キャッシュ¾ ローカルメモリ¾ コア間通信¾ 共有メモリ通信¾ 異なるプロセッサ間では通信コストが発⽣

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

25

CSPのマルチタスク並列実⾏¾ 各コアで複数のタスクを優先度順に実⾏¾ ⼊⼒モデル全体に制御周期の制約があり、個々のタスクにはデッドライン制約はないと仮定¾ 優先度設計は、⼊⼒待ちでのストールが発⽣しない
ように、⼊⼒側タスクから順に⾼い優先度を与える¾例¾ タスクフローグラフから⾃動的に決定
２

４１

５

３コア１１コア２
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

２３４５26

モデルベース並列化ツール
MATLAB/ Simulinkモデル
Real‐Time Workshop
Embedded Coder
逐次処理Cコード

実行時間最小となる
タスク割当て最適化

モデルベース並列化ツール
CSPにもとづいた
マルチスレッドCコード

CSPにもとづいた
並列処理Cコード

SMP型(従来)

AMP型(組込み制御向け)
静的なタスク配置が必要

OSが動的に負荷分散
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

参考文献:久村孝寛. Simulinkモデルにもとづいた並列Cコード生成.
電子情報通信学会技術研究報告, Vol.110, No. 473, pp. 303–308, 2011.

27

⼿順
MATLAB Simulinkモデル
タスク依存関係グラフ
逐次処理Cコード
モデルベース並列化ツール
並列化
並列化Cコードコンパイルターゲットコード並列化オプション
タスク割当てパターン
２．最適解を算出
プロファイル(各タスク実行時間)
１．プロファイル

３．提案手法性能評価
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

28

実⾏時間定式化 (1/4)¾ 変数¾ 各タスクの割当てプロセサ Xi (1 ≦ i ≦ N)
¾ 定数
¾ システムのタスク数 N¾ プロセッサ数 M¾ 各タスクの実⾏時間 Ci (1 ≦ i ≦ N)
¾ タスク間依存関係(隣接⾏列) A¾ タスク間通信時間 t

C1tt
C2C3t
C4

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

ttt

C5tt

C7C629実⾏時間定式化 (2/4)¾ タスク間通信時間: t
1. 共有メモリの読み書き: Ciに含まれる
2. 計算完了のシグナル送信: T (⼀定)¾

同プロセッサであれば0¾ タスクi - タスクj間の通信時間
依存関係

t={T ( aij = 1 and Xi ≠ Xj )0 ( otherwise )School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

異なるプロセッサ間30

実⾏時間定式化 (3/4)¾ 先頭タスクの開始を0とし各タスクの完了時間Eiを計算

0

E2

E1
C1tt
C2C3t
C4E3t

E5t

E4 t

C5E7t
E6t

C7

C6¾ モデル実⾏時間 = 各タスクの完了時間の最⼤値¾ Max{E0, E1, … E7} = E7

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

31

実⾏時間定式化 (4/4)¾ ⽬的関数¾ Minimize Max{Ei | 0 ≦ i ≦ N}
¾ 制約条件¾ 1 ≦ Xi ≦ M¾ Ei: iの直前に実⾏されるタスクjの完了時間 + 通信時間
¾ iに依存している、または、iより優先度が⾼いかつiと同じプロセッサで動作するタスク¾ Ei = max{Ej + t | aji = 1 or (j < i and Xi = Xj)} +Cit=School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

{T ( aij = 1 and Xi ≠ Xj )0 ( otherwise )32

並列化実験 (1/2)¾ モーター制御モデルに対し並列化を⾏った1. コントローラのみ (タスク数 N = 38)
2. プラント+コントローラ (タスク数 N = 41)¾ 評価環境¾ Renesas V850 コアシミュレータ(4コア)¾ プロセッサ数 M = 4¾ 各タスクの実⾏時間 Ci : プロファイルから取得¾ タスク間依存関係 A : CSPモデルから取得¾ 異プロセッサ間の計算完了のシグナル送信コスト¾ T = 100(サイクル)

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

33

並列化実験 (2/2)¾ 1stepの実⾏時間を計測¾ hMETISを⽤いたグラフ分割⼿法 (従来⼿法)¾ ⾮線形計画問題による最適化 (提案⼿法)¾ １〜４コアそれぞれの実⾏時間⽐から並列化における性能を評価¾ ソルバーが算出した理論上の実⾏時間⽐と⽐較

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

34

従来⼿法による割当て¾ 同⾊のタスクは同じコアに割り当てられる¾ ⾚⾊で⽰すエッジはクリティカルパスを⽰す¾ CSPを無向グラフとみなし領域分割¾ ⽬的関数: 各コアでの実⾏時間を均等にして実⾏時間最⼩化¾ タスク実⾏順は考慮されない
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

35

提案⼿法による割当て¾ 同⾊のタスクは同じコアに割り当てられる¾ ⾚⾊で⽰すエッジはクリティカルパスを⽰す¾ モデル全体の実⾏時間を定式化¾ プロセッサ空き時間を含むオーバーヘッドを最⼩化

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

36

コントローラ並列化実験結果¾ 各コア数における1ステップの実⾏時間⽐¾ 逐次実⾏時の実⾏時間を1とする
1.1

実行時間比

10.96%短縮

0.80.714%短縮

理論上2コアで性能向上に限界

0.60.5HMETIS
提案手法
理論値

1コア
111

2コア
0.86
0.820.71

3コア0.87
0.810.71

4コア
0.82
0.75
0.70
逐次実行部分: 67%

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

37

プラント・コントローラ並列化実験結果¾ 各コア数における1ステップの実⾏時間⽐¾ 逐次実⾏時の実⾏時間を1とする
1.1

実行時間比

115%短縮0.90.80.7

21%短縮

0.60.5HMETIS
提案手法
理論値

理論上4コアで性能向上に限界
1コア
111

2コア
1.00
0.870.72

3コア
0.91
0.790.64

4コア
0.92
0.78
0.60
逐次実行部分: 59%

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

38

アウトライン• 背景• MATLAB/Simulinkモデルからの並列化• ⾞載制御システムを例とした並列化と課題– MATLAB/SimulinkモデルからCSPモデルへ– V850マルチコアアーキテクチャでの実現– XMOSメニーコアアーキテクチャでの実現• まとめと今後の課題、取り組み

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

39

何故メニーコア？
• マルチコアでもなかなかスケーラビリティが出ていないのに、どうしてメニーコア実⾏なのか？
• マルチコア実⾏の問題点– ここでいうマルチコア実⾏は、「コアあたりのスレッド数が多く、それなりのスレッド管理やスケジューリングが必要なもの」– 優先度設計、タイミング設計が必要– スレッドライブラリのオーバーヘッドが⼤きい• マルチコア化して、余裕ができたところに新しい制御を⼊れたいと思ったら余裕はなかった、という話も…
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

40

何故メニーコア？
• ＣＳＰモデルのメニーコア実⾏– 優先度設計の必要はない– スケジューリングの必要はない– 本当に優先度設計、スケジューリングの必要がない
ことが仮定できるならば、様々なオーバーヘッドを⼤幅に⼩さくできる– さまざまな可能性が⽣まれる• より複雑な制御を⼊れる• （神経ネットワークのように？）低電⼒化する• メニーコア実⾏結果を使ってマルチコアに詰め込む⽅法を考える
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

41

XMOSアーキテクチャ• EDP (Event-driven multi-threaded processor)– イベント駆動型プロセッサ(XCORE)によって、イベントドリブンな実⾏を可能とする。
– タスクの並列実⾏をハードウェアレベルで実装• １コア８スレッドの同時実⾏が可能• "Software Defined Silicon"– HDLではなくXCで動作を記述• CにOccamの拡張(Occam: 並列プログラミング⾔語)• CSPモデルの実装に適したメニーコアプロセッサ（XMOS社資料より）
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

42

CSPモデル→EDP (XMOS)EDP （Event-Driven Processor）

CSPモデルの実装が可能なメニーコア（スレッド）プロセッサ
EDP

実装

CSPモデルコア(スレッド)

各プロセスを、EDPの各コア（スレッド）に割り当て、実機動作を評価する

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

43XMOSアーキテクチャ• CSPの「プロセス」をXMOSの「スレッド」に固定的に割付、かつ「プロセス」は「スレッド」を専有• XMOS：コアあたり８スレッド、ハードウェア実装で、時分割処理• 通信はスレッド間 nsecオーダー⇒固定＆専有割付のため、スレッドのスケジューリングは不要、通信も⾼速でオーバーヘッドが⼩さい⇒⾞載制御系でも性能向上が⾒込める
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

44

XK-XMP64• 1チップ4コア16チップ– 計64コア• チップのトポロジーはHypercube構造– コア間距離は0〜3ホップ– コア間距離に応じて通信時間が線形的に増加

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

45

モデル実⾏時間計測• 1ステップの実⾏時間評価– 10回の計測の平均値手法
スレッド並列(Intel Core i7 6コア 3.33GHz )XMOS実行(64コア 400MHz、シミュレータでの測定）

実行時間(μsec)
90.8
92.7

– （参考）XMOSの電⼒ 450μW/MHz・コア (*)• フル稼働としても約1W ← (450*10-6)*400*64(*) XMOS社 2009年6⽉24⽇プレスリリースより
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

46

アウトライン• 背景• MATLAB/Simulinkモデルからの並列化• ⾞載制御システムを例とした並列化と課題• まとめと今後の課題、取り組み

School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

47

まとめと今後の課題、取り組み• ⾞載制御システムの⾼性能化• それを⽀えるマイコンの省電⼒実⾏のためにはマルチ・メニーコア化が必須• たくさんのコアを有効に使うため、ソフトウェアの並列化が必要不可⽋• モデルベースからの並列化と、⾞載制御システムを⽤いた評価を紹介• 今後の課題– モデルベースからの並列化のみでは解決しない– 制御、実装の協調、歩み寄りが必要– 開発・実⾏環境全体のプラットフォーム構築が必要
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

48

制御・実装の協調、歩み寄り• 制御からの歩み寄り– 並列化容易な制御系アルゴリズム– 早い段階からの離散系への変換– 依存の少ない制御モデル• 例：次の周期に間に合えばよいデータの明記• 実装からの歩み寄り– オーバーヘッドの少ない基本ソフト• メニーコアＯＳ– メニーコアを利⽤したハードウェア⽀援並列化• 例：分岐両実⾏、投機的実⾏– アーキテクチャ依存の解消– マルチ・メニーコア向けツール体系、プラット
フォーム化
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

49

メニーコアチップ/ツール/OSフレームワーク• OSを始め、各種開発⽀援ツール、異なるメニーコアチップを利⽤できるフレームワークが必要、メニーコアチップ標準モデルはその基盤となる
メニーコアチップ標準モデルを策定 (実装並びに拡張は各ベンダの競争領域)

Manycore対応ツール群
並列設計 システム
デバッグ
支援
解析

SCD (SystemConfigurationDescription)

並列化コン
パイラ

Etc..

…

Application
汎用組込み

医療 Printer 車載

拡張OS API Legacy API 応用特化API

Many-core OS

CPS…

(LegacyOS)

高いリアルタイム性と、へテロなメニーコアを透過的に扱えるスケーラブルなメニーコ
アOS（メニーコアチップ標準モデルに適合させる）
既存ソフトウェアの再利用性確保
高性能な新規ソフトのための開発環境

メニーコアチップ 標準モデル
安心・安全のための高信頼性
School of Information Science, Nagoya Univ.
ERTL Graduate
Embedded and Real-Time Systems Lab.

50