教えて!本田先生。ARM SoCをどう使うか?そのヒントを探る。

組み込みシステム向けの各種ソフトウェアの研究・開発で知られる名古屋大学の組み込みリアルタイムシステム研究室は、各種の研究開発に、デュアルコアのARM® Cortex®-A9 MPCore™プロセッサに、プログラマブルなロジック領域を組み合わせた「アルテラSoC」の採用を決定した。アルテラSoCは、ハード設計者だけのものではなく、ソフト設計者の新しい発想や設計自由度を高める新しいコンセプトを持ったデバイスと言える。今号ではソフト設計者の意見として、同研究室の本田晋也准教授と生徒たちにユーザーとしての率直な意見を聞いてみた。

メインイメージ

10年前からプロセッサとしてアルテラ「Nios® II」を選択

本田先生は組み込み向けオープンソースプロジェクトである「TOPPERS」をはじめとするリアルタイムOSの研究でご活躍中ですが、現在の活動内容を教えてください。

本田先生:私が所属する組み込みリアルタイムシステム研究室では、TOPPERSプロジェクトの会長でもある高田広章教授のもと、20名ぐらいの学生とともに主に組み込み向けのリアルタイムシステムに関する研究開発をしています。たとえば、ARMの「TrustZone®」を活用して、ひとつのARMプロセッサ上にリアルタイムOSとLinuxとを共存させるデュアルOSモニタ「SafeG」の研究や、ARMのメモリ保護機能を使った「TOPPERS/HRP2カーネル」の開発などがテーマです。また、大学内にある「名古屋大学大学院情報科学研究科 附属組み込みシステム研究センター」(Nagoya University, Center for Embedded Computing Systems:NCES)も担当していまして、そちらにも、20名程度の企業からの共同研究員と数名の専属研究員が所属しています。こちらでは主に車載向けのソフトウェアプラットホームやデータ管理システムなどの技術研究を進めています。次世代のハードウェア環境(4コア以上のマルチコアや特殊なハードウェア)を想定して研究を進めているという事情もあって、アルテラのソフトコア・プロセッサである「Nios II」を基本的に使っています。

以前からアルテラのプロセッサを活用してきたと伺っています。

本田先生: ソフトウェア・ハードウェアのコデザインツールの対象プラットホームとして、プロセッサにプログラマブルなロジック領域(ユーザーロジック)を組み合わせたいと考えていました。2004年にアルテラから32ビットアーキテクチャ「Nios II」が出たときに、すぐに評価・採用したという経緯があります。

アルテラ小山:先生のお話に補足すると、「Nios II」は、命令用のアドレス空間およびバスとデータ用のアドレス空間およびバスとを独立させたハーバードアーキテクチャを採用したアルテラ独自の32ビットプロセッサで、使うデバイスファミリにもよりますが、ソフトコア・プロセッサとはいえかなり高い性能が得られるのが特徴です。ところで、「Nios II」を採用してみてどうでしたか?

本田先生:「Nios II」と独自ロジックをつなごうとしたときに、アルテラのシステム統合ツールがとても安定していて、かつ、使いやすかったのが印象的です。

アルテラ小山:ありがとうございます。当社は開発ツールを重要視していますので、とても嬉しいです。初代システム統合ツールは「SOPC Builder」、現在は「Qsys(キューシス)」ですが、このツールに対して、ユーザー視点から率直な感想を聞かせてください。

本田先生:時代はメニーコアに向かっていますが、ソフトコア・プロセッサという利点を生かし、「Qsys」を使うことでマウスのクリック操作だけで「Nios II」を8個とか16個とか並べていけるんですよ。16コアは動いていますので、このようなシステムを、ハードウェアの知識があまり深くない学生でも自分でできてしまうというのがポイントですね。

アルテラ小山:「Qsys」はFPGA初級者の学生さんでも使えるぐらいに、視覚的に判りやすいユーザーインタフェースを追求しています。実際には、グルーロジックやバスアービター(調停回路)などをドラッグ&ドロップ操作だけで設計できてしまいます。

挙動監視や性能プロファイリングに「アルテラSoC」を活用予定

アルテラは、ARM Cortex-A9 MPCoreプロセッサをハードコアとして統合した「アルテラSoC」をリリースしています。本田先生のところではすでに使われているのですか?

本田先生:これまでARM関連の研究は市販されている通常のSoCを搭載したARMボードを使って進めてきましたが、それだと独自ロジックを組込むことができません。一方で、独自のハードウェアを追加することによって,OSの処理負荷を下げたり、挙動の監視を低オーバヘッド実現できるので、ARMプロセッサと独自ロジックが組み込める「アルテラSoC」は出た直後に入手して評価を始めています。

アルテラ小山:これまで「Nios II」+独自ロジックの組み合せを、「アルテラSoC」でやろうという試みですね。

本田先生:「SafeG」で、デュアルOSモニタでLinuxの動きをリアルタイムOSから監視したいと考えたときに、Linuxの実行トレースをメモリに保存して、そのトレースデータをリアルタイムOSがチェックするのでは、オーバーヘッドがとても大きくなってしまいます。ではどうすればいいかというと、たとえばLinuxの正常な動作パターンを「アルテラSoC」の独自ロジック部に覚えさせておいてハードウェア的に常に比較し、動作パターンが違ってどうもおかしいとなったとき、リアルタイムOSにアラームを上げる、といったアイディアも考えられるわけです。

「アルテラSoC」を実際に評価してみていかがですか?

本田先生:今まで「Nios II」をベースに、開発してきた独自ロジックを「アルテラSoC」用に新たに作り直さないといけないのかなと思っていたところ、開発ツールの「Qsys」がバスコンバータを自動的に作ってくれることが判り、従来の資産がARM Cortex-A9 MPCoreプロセッサでも使えたので、とても助かりました。

アルテラ小山:「Nios II」では「Avalon®」という独自バスを採用していますが、「アルテラSoC」に内蔵されるARM Cortex-A9 MPCoreプロセッサは標準のAXIバスを採用しています。両方のバスを使えるようにしようというコンセプトで作ったのが開発ツールの「Qsys」なんです。

本田先生:たしか「アルテラSoC」が出るしばらく前に「Qsys」がリリースされましたよね。なので「アルテラSoC」が出た時点では、「Qsys」の品質が十分なレベルにまで高められていたというのが良かったのかなと。

アルテラ小山:「Qsys」のほうが「アルテラSoC」の一年半ぐらい前に出たのですが、その間に3回はバージョンアップしていますから、お客様の声も盛り込みながら、品質面でもかなりブラッシュアップされているはずです。

「アルテラSoC」で修論に取り組む。いろいろなアイディアを手軽に実装

後半では研究室の学生さんお二人にも加わってもらいたいと思います。それぞれ簡単に自己紹介をお願いします。

三浦君:三浦です。学年はM1(修士1年)です。ソフトウェアが専門です。SoCの経験はほとんどないので、「アルテラSoC」を勉強しているところです。

本田先生:三浦君にはリアルタイムOSとLinuxとを同時に動かす「SaveG」の研究をやってもらっています。アルテラSoCだと独自ロジックを組み込めますから、いろいろなアイディアを考えて実装してもらおうと思い、まずは一から「アルテラSoC」に取り組んでもらっています。じゃあ次は繆(みゃお)君かな。

繆君:台湾から留学している繆です。同じく学年はM1で、ハードウェアが専門です。アルテラ製品は台湾の大学にいた頃から使っていました。今の研究室では「Nios II」を扱った経験がありますが、ARMプロセッサはこれからです。

本田先生:繆君にはハードウェア開発とソフトウェア開発を一体化した「コデザイン」に取り組んでもらっていて、高位合成ツールを使って、システムのここはハード側ですよ、ここはソフト側ですよと機能を振り分けながら、高位合成ツールで生成したハードウェアやソフトウェアから期待どおりの性能が得られているか、という性能プロファイリングを進めてもらおうとしています。そのプラットフォームとして「アルテラSoC」を使っていこうという考えです。

三浦君はソフトウェアが専門とのことなので、ハードウェアには馴染みがなかったかと思うのですが、「アルテラSoC」に触れてみていかがですか?

三浦君:「アルテラSoC」が載った評価ボードを本田先生から渡されて、まずはLinuxをブートさせようと思ってやってみたんですけど、なかなか上手くいかなくて。アルテラのウェブサイトを覗いてみたり、ネットでいろいろと検索してみて、何とかブートまでは漕ぎ着けた感じですね。

アルテラ小山:そうだったんですね。「アルテラSoC」に対応したLinuxの情報はすべてRocketBoards.orgという専用のウェブサイトで提供していたり、日本アルテラのウェブサイトでも多くのトレーニング・コースを提供しているんですが、「初めて動かす人はここですよ」といった判りやすいナビゲーションなど、まだまだ取り組まなくてはならない課題がありますね。貴重なご意見をありがとうございます。

本田先生:私もそうですが、学生は何も考えずにとりあえず「ググり」ますからね(笑)。

繆君は台湾の大学に在学中からアルテラ製品を触っていたのですか?

繆君:はい。卒業論文ではVerilogで画像処理ハードウェアをアルテラ製品に実装しました。名古屋大学に来てからは、国際的な設計コンテストである「ICFPT2013」にアルテラ製品を搭載して参加したこともあります。

アルテラ小山:「アルテラSoC」は使ってみましたか?

繆君:これからです。システムの高位合成で生成されたハードウェアやソフトウェアの性能を検証するプロファイラの実装に「アルテラSoC」を使う予定なので、ARMプロセッサやLinuxを勉強しているところです。

ADASやLDMなどの高度な応用を検討。学生教材としても可能性が広がる

さて、今後のお話を伺いたいのですが、「アルテラSoC」にはどのようなところを期待していますか?

本田先生:車載関連技術でいうと、やはりADAS(先進運転支援システム)への応用が考えられるかと思っています。「アルテラSoC」にはデュアルコアのARM Cortex-A9 MPCoreプロセッサが載っているので、Cortex-M系では処理しきれない、それなりに性能を求められる用途が候補に上がるでしょうね。

アルテラ小山:それは当社も感じていて、「アルテラSoC」のターゲットアプリケーションとしてADASを挙げられるお客様は確かに多いですね。

本田先生:ADASで使われるOSがこの先どうなるかまだ判りませんが、仮にAUTOSARベースということになれば、われわれのところではAUTOSARに対応した「TOPPERS/ATK2」や要素技術を開発済みですから、比較的早く対応できるかなと思っています。

アルテラ小山:そのほかの応用はいかがですか?

本田先生:もうひとつがLDM(ローカル・ダイナミック・マップ)への応用です。クルマの周囲の地理情報や道路状況、天気情報などを統合的に管理していこうとなると、オーバーヘッドの大きい通常のデータベースではダメで、リアルタイムに処理できるストリーム・データベース技術が必要になってきます。そうしたデータベースでなんらかの情報がある値を超えたらアラームを出すように独自ロジックを入れるとか、いろいろなアイディアは考えられると思うんですね。あとは三浦君が担当している「SafeG」でのLinuxの挙動モニタリングや繆君が担当している性能プロファイラなど、ソフトウェアの動作をハードウェアでカバーして機能を高めるようなところに活用していきたいと思っています。ソフトウェアエンジニアとしても大きなメリットだと感じられるのではないでしょうか。そうした研究開発を通じて、学生がハードとソフトの両方に詳しくなってくれれば本人の価値も上がりますし、彼らが将来メシを食べていくという意味では教材としても面白いかもしれません。

アルテラ小山:ADASをはじめとする先進的な研究を含めて、今後も是非「アルテラSoC」を活用していただければと思っています。

デバイス、ツールともに環境が整ってきた

アルテラSoCの出荷状況はいかがですか?

アルテラ小山:アルテラではソフトコア・プロセッサとして「Nios II」を10年以上にわたって提供してきましたが、より高速なシステム性能を求めるユーザー向けにアルテラSoCを製品化しています。ローエンドの「Cyclone® V SoC」とミッドレンジの「Arria® V SoC」は、すでに出荷を始めています。「Cyclone V SoC」ではARM Cortex-A9プロセッサ性能が925MHz、「Arria V SoC」では1.05GHzまで対応します。システムに必要なUSBインタフェース、イーサネットコントローラ、ブートROMインタフェース、DDRメモリコントローラなども内蔵していますので、高度な機能統合が可能です。加えて、2014年後半には1.5GHz動作のデュアルコアARM Cortex-A9 MPCoreプロセッサを搭載した「Arria 10 SoC」もリリースする予定です。64ビット・クアッドコアのARM Cortex-A53プロセッサを採用した「Stratix® 10 SoC」も鋭意開発中です。

最後に、アルテラからの最新情報はありますか?

アルテラ小山:今年の2月に『DesignCon 2014』で、ARM Development Studio 5(DS-5™)Altera Editionツールキットが最優秀デザイン検証ツールに選出されました。DS-5は、Linuxアプリケーション開発をはじめ、ドライバ開発、OSの移植なども可能ですし、アプリケーション・ビルドにも対応しています。アルテラSoC開発キットや互換ボードにUSB-Blaster™ケーブルで接続できるので、搭載されているフラッシュROMにプログラムすることもできます。

本田先生:高位合成の対応はいかがですか?

アルテラ小山:当社では高位合成環境としてロイヤリティフリーなオープン標準として公開されているOpenCL™のサポートを表明しています。2014年中には「アルテラSoC」への対応を図ったOpenCLツールをリリースする予定で、多くのお客様に使ってもらえるような手ごろな価格を検討していますので、こちらも是非ご期待ください。

本田先生:NVIDIA社のGPU(グラフィックプロセッサユニット)も「CUDA™」という開発環境が出てから汎用的なコンピューティングにも広く利用されるようになりましたから、OpenCLのような環境が整備されれば「アルテラSoC」のハードルがさらに下がりますね。

小山:はい、そう感じていただけるよう頑張ります。

本日は貴重なお話をありがとうございました。