17
1 Automotive Electronics に対するNetwork On Chipへの 期待と課題 NEC システムIPコア研究所 中村祐一

NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

1

Automotive Electronicsに対するNetwork On Chipへの

期待と課題

NECシステムIPコア研究所

中村祐一

Page 2: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

2

講演者の現在のポジション• CREST米田チーム研究協力者(NEC業務とは無関係)

– 製品開発の立場からの設計手法の助言など• 計算機、通信用、デジタル家電LSIの設計法・設計技術開発の経験

• ネットワークオンチップのアーキテクチャ評価、プログラミング環境の経験

– 新研究動向などの紹介

• 現在は自動車用を含め半導体ベンダのチップを使いながら社会・事業価値を生み出していく立場– 2010年春(NECグループから半導体事業分離前)まで

• (車載関係業務)車載制御向けDual-coreプロセッサの評価環境、ソフト開発環境の研究開発に従事

– 現在• マルチコア組込みシステム開発環境、アクセラレータの研究開発、研究マネジメントに従事

• 米国・欧州をはじめとした設計学会における自動車向けLSIのチュートリアルなどに参加

Page 3: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

3

講演者のNECでの関連研究開発マルチコア向け組込みソフトウェア開発プラットフォーム

Page 3

通信

開発環境依存解析

タスク配置

配置結果

コア1

コア0

元のタスクセット

時間デッドライン

マルチコアタスク配置マルチコアタスク配置

実行時間制約を保証するタスク配置最適化ツールにより、手間のかかるチューニング作業工数を劇的に削減

CPU CPU CPU

FPGAFPGAによるハイブリッド検証環境によるハイブリッド検証環境

モデリングマルチコア

Simulink

逐次処理Cコード

並列化Cコード

並列

コード生

成ツール

Simulinkモデル

モデルからのタスク並列化モデルからのタスク並列化

複数タスクに並列化 実行時間を短縮

Simulinkモデルから構造的並列性を自動抽出し、ソフトの並列化を支援

モデル解析モデル解析

並列コード生成並列コード生成

適化

タスク粒度調整

適化

タスク粒度調整

中間モデル構築

フラット化、ループ分解

中間モデル構築

フラット化、ループ分解

Cコード解析Cコード解析

※ 白線検知モデルの並列化を紹介

タスク

連携連

シングルコア向けリアルタイムシステムのマルチコア化を支援

FPGA/ソフトシミュレータを連携させ、マルチコアソフトウェアの検証を支援

時間デッドライン

コア0

コア1 デ バ ッ グ/ 検 証デ バ ッ グ/ 検 証

通信

マルチコアリアルモデル

マルチコア並列同期デバッグ

Page 4: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

4

リアルタイムシステム向けタスク実行 適化

• 従来資産やモデルから抽出されたマルチタスクシステムのマルチコア化を容易に実現

– リアルタイム制約や実行順序関係を満足するコア配置を自動生成

▐ マルチコア化による機能統合を支援します

マルチタスク組込みソフトウェアをマルチコア上に静的配置 実行時間、負荷分散、デッドライン保証など組込み制御の様々な要望に対応 LSI配置手法(組合せ 適化技術※)を応用、数百タスクを数秒で自動配置

-従来法( 適解探索手法)では20タスクで数十分

時間デッドライン

コア0コア1

コア1

時間

依存解析

タスク配置

配置結果

元のタスクセット

コア0

時間デッドライン

デッドライン

時間デッドライン

時間デッドライン

コア0

コア1時間

デッドライン

3つのリアルタイムシステムをデュアルコア上に自動配置。それぞれのシステムにおけるデッドライン制約、タスクの順序関係は保持

LSIの配置問題を使って数百タスクのデッドラインスケジュールを実現

Page 5: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

5

メニコアプロセッサ向けプログラム開発環境

PCIe

FPGA Card0

OpenRISC0

RAM

data bus

FPGA Card1

OpenRISC1

RAM

data bus

FPGA Card0アドレス空間

FPGA Card1アドレス空間

PCI-Expressアドレス空間

IB HCAアドレス空間

Xeon

RD/WT API

NIC

ブレイクポイント

FPGAボードに実装されたメニコアプロセッサのソフト開発

C言語開発環境

クロック制御

Page 6: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

6

これらの経験から米田チームのプロジェクトに関してコメント

• 内容

– 外部環境

• 学会における車メーカー発表の関連の強い部分の紹介

• 車メーカーヒアリングのサーベイ紹介

– これまでの研究成果の評価

• 研究目的の評価

• 研究成果をPositiveな点とNegativeな点に分類

– 今後の研究成果に期待する点

• 成果を事業に使ってもらうという観点から

• 研究を効率よく、かつ有効に進める観点から

Page 7: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

7

国際会議などから得られる車載LSIの動向Part I FIAT

• DATE2011 Tutorial– Design Verification Challenges for Automotive

Electronics • リアルタイム性の保持が 重要課題• マルチコア化

– Low 25-30 プロセッサ、Highend 70プロセッサ– これらを低電力とロバスト性の観点から統合– 多重故障への対応

• 温度耐性• ただし、もともと壊れない車載LSIで故障の定義、モデル、原因解析はとても難しい– どういう故障にどう対応するかは手探りの状態

Page 8: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

8

マルチコアとリアルタイム性

•電力の観点からマルチコアが必須•しかし、安全への対応が必要•ソフトの開発が難しい

•エンジン制御の5-50ms•姿勢制御 2-1ms•ハイブリッド車 100-50us

Page 9: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

9

国際会議などから得られる車載LSIの動向Part II KIT

• DAC2011 Workshop– MPSoC for Cyber Physical Systems Workshop– Karlsruher Institut fur Technologie

• BMW,ダイムラーと共同研究中• 欧州のMORPHEUSプロジェクトの中心

– Multi-purpose dynamically Reconfigurable Platform for intensive Heterogeneous processing

• アプリケーションを時間制約に終わらせる必要性• 車の中、外との通信が膨大に増えるという前提• 個々の処理を分担するプロセッサも必要だが、通信の処理もリアルタイム性

から重要となる• スタンダードメニコアプロセッサ+FPGA(コプロ)をチップ内に入れてReconfig

性を確保• 仮想化によりアプリケーションの書き換え不要• CPU+いろんな処理を行う多数小さいプロセッサの組み合わせもある• メモリの壁をどう越えるかが未検討

– 通信に伴う情報量をどう保持するか?

Page 10: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

10

KITの成果

仮想化でアプリケーションをフレキシブルに実行

ダイムラーと共同でメニコア試作

Page 11: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

11

車メーカ(制御系ECU関連開発者)と議論のサーベイ(米田チームによるヒアリング)

• ECUとセンサー・アクチュエータとの対応を固定ではなく,フレキシブルにできるのは好ましい

• マルチコアで動作させるとき,タスクの切り分けに苦労している部署がある

• 小型車用と大型車用のLSIを別に作るのはコスト高なので,同種のLSIを並べることにより,大型車に対応できるのはいい

• ディペンダビリティ向上のために,チップのなかでコア等冗長化するのは,これからは必要だろう

• ただし,エンジンECUとモータECUなど従来別に,ディペンダビリティ保証をしてきたものを,同一チップに載せるのは,ディペンダビリティ保証のやり直しになるので難しいだろう

Page 12: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

12

米田グループプロジェクトの目的と現状• 目的

– 車の中で実行すべき多種多様なタスクを、オンチップネットワークで接続された多数のコアを持つLSIで実行

– 複数のコアは故障や負荷増大などの状況に応じて 適に協調動作

– これらの特徴のプラットフォーム化

• これまでの成果– 初のLSI

• オンチップネットワークの実証

• 4ノードNoC(2CPU+FPU+I/O)、HILSを繋いでエンジン制御のデモ

• CPUの故障に対応– 切り替えの対応がバス接続よりOn-Chip-Networkの優位性を実証

– 2回目のLSI• 16ノードNoC(8CPU+4FPU+4I/O) に拡張

• ディペンダビリティの拡張

• CPU故障のみから、オンチップネットワークの故障までに拡張

– 確立されたコア技術• オンチップネットワークの設計検証手法

• 遅延・温度・電源変動に強いオンチップネットワークの技術確立

Page 13: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

13

米田チームの成果• V850の実プログラムの動作• HILSを使ったハイブリッド車のモデルを動作実証

Page 14: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

14

車メーカー、研究動向の観点からの評価

• (Positive)世界的な動向からすると方向性は誤ってない

• (Positive) 研究よりも実用性の方向で努力してきたことは評価に値する– 出てきたものが波形とチップ写真だけではなかった

– HILS繋げてハイブリッド車用のプログラムで実証実験を行った

• (Positive) デペンダビリティの観点からの技術確立– 故障時の故障回避の観点

• (Negative) On Chip Networkのオーバーヘッドを評価し、所望の性能が出ているかどうか不明– 評価システムからのフィードバックが不明

• (Negative) リアルタイム性への評価が不十分

• (Neutral) 車メーカーのニーズに本当に合致しているか– 提案する方向性自体が現状の延長と異なるので、車メーカーが本気に

なるまでは、まだ多数の解決すべき問題がある

– 技術的特色が故障回避だけでよいか?

Page 15: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

15

今後必要な研究 Challenge(1)• On Chip Networkの圧倒的優位性の実証

– 世の中にはNoCはオーバーヘッドが大きく、有用性がないとする人もいる– 何が車ユーザメリットで、何が車製造業者向け、何がOEM向けメリットなのかを明

確にする必要性– 仮にディペンダビリティだとしても、その圧倒的優位性が説明できればよい

• Off Chip接続への拡張– NoCは、チップ内よりも3D、あるいはOff Chipのほうが有用性ありという人も多い– 4コア程度LSIのOff Chip接続(On Chip Networkと見かけ上同じ接続方式)のほ

うが有望ではないか? ただしく評価して頂きたい

• フレキシビリティ– NRE(チップ開発初期コスト)の関係で開発品種数は少ないほうがよい– 大型車から小型車までの共用化

• 上記のOff Chip接続への拡張の観点からも有効

• チップコスト– コストセンシティブな車屋さんが導入したくなる価格

• 複数タスクでの実証と、複数タスクへのアロケーション– 故障の際のタスク回避の方法論確立– できれば多重故障への対応が望ましい

Page 16: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

16

今後必要な研究 Challenge(2)• ある程度大きいコア数のNoCを評価、見積もりできる環境の必要性– 4個、8個のコアのみでは判らないことを見積もり

• ソフト共用性– 故障回避時も同じソフトでよいかどうか確認

• ヘテロ構成、アクセラレータの活用– 現状、浮動小数点のテーブル補完機能のみ– KIT: 小さなプロセッサのコアの集合体、FPGA– GPGPU: NvideaのTegra(現在はエンターテイメント向けだが、将来複雑な計算が必要なエンジン制御でも?)

• メモリアクセス– コア間のメモリアクセス、大規模なメモリ– コアインテグレーションした際のメモリの形状– 大規模なメモリ+DDR I/F, SRAMメモリをノードとする

Network On Chipなどの利用

Page 17: NEC3 講演者のNECでの関連研究開発 マルチコア向け組込みソフトウェア開発プラットフォーム Page 3 通信 開発環境 依存解析 タスク配置

17

お願いしたいこと

• 車メーカーと、適用仮説(どの領域のどの処理にどういう形で成果を取り込むか、取り組める可能性があるか?)を議論していただきたい

• その適用仮説から仮説シナリオを組み立て、課題の列挙とその優先度決めをしながら取り組んで欲しい

• 議論の場に車メーカーを引き出すために、車メーカーに魅力的な研究成果を創出、アピールして欲しい

– アピールの方法に関しては微力ながらお手伝いします