アルテラSoCって本当にあるんですか?動くんですか?

長年にわたってFPGA業界をリードしてきたアルテラは、デュアルコアのARM®Cortex™-A9 MPCore™プロセッサとFPGAとをワンチップに統合した「アルテラSoC」の開発を進めてきた。当初のスケジュールどおり2012年12月にサンプルチップを公開し、開発が順調に進んでいることを窺わせている。今回、APS編集チームは、読者を代表して日本アルテラの本社に突撃取材を敢行。「アルテラSoC」の実物を見せてもらうとともに、その特徴について話を聞いてきた。

メインイメージ

「アルテラSoC」のサンプルが遂に完成

さて、今日は読者を代表して西新宿にあるアルテラ本社にお邪魔しています。アルテラから、デュアルコアのARM Cortex-A9 MPCoreプロセッサを搭載した「アルテラSoC」のサンプルデバイスが完成したと2012年12月にプレス発表があったので、ぜひ本物を見せてもらおうと思って伺いました。ということで、アルテラの皆さんよろしくお願いします。

アルテラ:お待ちしておりました。こちらこそよろしくお願いします。

さっそくなんですが、先日プレス発表があった「アルテラSoC」のサンプルデバイスを見せてもらえますか?

萩原:はい、用意してありますので、ぜひご覧になってください。これが最初の「アルテラSoC」にあたる「Cyclone® V SoC」の「5CSXC6」というデバイスです。

このチップは実物ですか?

萩原:そうです。お客様に届くものとまったく同じです。

この中にデュアルコアのARM Cortex-A9 MPCoreプロセッサが入っているんですか?

小山:11万ロジックエレメントのFPGAと、デュアルコアのARM Cortex-A9 MPCoreプロセッサがワンチップに入っています。

せっかくなのでなにかデモをお願いします。実際に動いているところを見ないと信用できないもので(笑)。

小山:そんなに疑わないでください(笑)。

萩原:今日は画像処理のデモを用意しました。最初にお見せするのは、ARMプロセッサが静止画をメモリに展開すると、FPGA上に組んだロジックでそのビットマップデータをLCDパネルに表示する、というきわめて単純な動作を示したデモです。もうひとつのデモは、ARMプロセッサ上で「MPlayer」というH.264コーデックを動かして画像データを伸張処理し、伸張後のビットマップデータをFPGA上のロジックでLCDパネルに動画で表示する、という動作を示しています。ちなみにいずれのデモも、ARM Cortex-A9 MPCoreプロセッサの動作周波数は800MHzで、Linux 3.7を載せています。

なるほど、本当に動いているんですね。

萩原:あと、デモとしては派手さはありませんが、現時点でネットワーク系はひととおり動いています。ARM Cortex-A9 MPCoreプロセッサのペリフェラルとして用意してあるネットワークIPと、FPGA側に実装したネットワークIPの両方が動いていて、ウェブサーバーも立ち上がりますし、SSHでのログインも可能です。

小山:どういったデモを用意すれば「アルテラSoC」の特徴や魅力を的確にお伝えできるか、という検討は社内で進めていて、たとえばデュアルコアをAMP(非対称型マルチプロセッシング)として動作させるデモや、FPGA側にコーデックを実装してARM Cortex-A9 MPCoreプロセッサ側の処理をオフロードするようなデモも、いずれはお見せできるかと思っています。

ARMとFPGAの組み合わせから生まれるメリット

デモありがとうございました。まずはちゃんと動いていることが確認できました。取材班としてはこれで「ミッション・コンプリート」ですが、せっかくの機会なのでいろいろと教えてください。この「アルテラSoC」はFPGAとデュアルコアのARM Cortex-A9 MPCoreプロセッサとをワンチップに統合した点が特徴と伺っていますが、そもそもFPGAってなんなのかなっていう…ハードウェアなのにプログラミングできるという話を聞くのですが、その点をあらためて教えてください。

堀内:FPGAは「フィールド・プログラマブル・ゲート・アレイ」の略ですが、簡潔に言うと、ロジック回路の設計者が自分が欲しいと思ったロジック(デジタル回路)を自在に実現できるデバイス、と考えていただいていいかと思います。一般にロジック回路は、「ハード・ワイヤード」とも呼ばれることからも判るように固定的な配線で結ばれていますが、FPGAは電源オンのたびにコンフィギュレーションという動作によって結線情報などをダウンロードする仕組みになっているので、コンフィギュレーション情報を書き換えるだけでロジックを自由に構成したり変更できるという特徴があります。FPGAでプログラマブルとかプログラミングというのはそういう意味で使われています。

そのFPGAとデュアルコアのARM Cortex-A9 MPCoreプロセッサとを組み合わせると、どんなメリットがあるんですか?

堀内:マイコンを選定するときに、UARTやUSBがもう1チャネルあったらいいのにな、とか、この機能がもう少しこうだったらいいのにな、といったことがよくあるかと思います。いろいろなマイコンベンダーが数多くの品種を展開していますが、機能や性能の面で「帯に短し襷に長し」といったことは意外に多いと思うんですね。仮に「帯に短し」なときはどうすればいいかというと、マイコンの外側にカスタムロジックなり単品のFPGAを置いて、不足の機能をカバーしなければなりません。ところがARMマイコンとFPGAがワンチップになっていれば、そうした外部ロジックは不要になりますから、単純に部品点数が減りますし、基板面積も小さくできますし、消費電力も下がり、トータルのシステムコストも下げられるはずです。そういったメリットが「アルテラSoC」によって得られます。いわば自分専用の「マイARM」ができあがるというわけです。

単体のARMマイコンとしても利用可能

FPGAはロジック設計者が使うものなのに対して、ARM Cortex-A9 MPCoreプロセッサのプログラム開発はソフト開発者の担当ですよね。ひとつのデバイスをハード屋とソフト屋が使い分けるとなると、開発が面倒そうですが。

小山:基本的には、単品のARMマイコンと単品のFPGAとで構成したような従来のシステムの開発と変わりません。

堀内:「アルテラSoC」は難しそうだと思うかもしれませんが、実はすでに必要とされる機能は予め組み込まれていて一般的なARMマイコンと同じように動作し、Linuxもブートしますから、FPGA部分は別のものとして考えてもらってかまわないんです。

でも、先ほど説明があったコンフィギュレーション情報とかいうものを作らないといけないとなると、ソフト屋さんには荷が重いようにも感じられるのですが…

小山:2013年5月にこの評価ボードを一般向けにリリースするのと同時に、専用のポータルサイトを開設してLinuxのBSP(ボード・サポート・パッケージ)なども提供していきます。BSPをダウンロードしてSDカードなどにバイナリをコピーすることで、評価ボード上でLinuxがブートしますので、まずはARMマイコンとして動かすのであれば、コンフィギュレーションは意識しなくても大丈夫です。ソフトウェアエンジニアの方から見て、できるだけ負担のないような仕組みや環境を整えていく予定です。

センティル:ソフトウェアのエンジニアにとっておなじみの「Eclipse IDE」でも開発を進められますし、GCCやARMコンパイラも動きます。LinuxのBSPも提供されるので、ARMマイコンを扱った経験があれば、慣れ親しんだ環境で開発を進められると思います。

萩原:ARMマイコンの増加によってARM向けLinuxの派生バージョンが増えすぎてしまい、Linuxの生みの親であるLinus Torvaldsさんがカーネルの統一化を進めています。2012年12月にLinusさんが発表したLinux 3.7が最初の統合バージョンですが、サポートされる5品種のARMマイコンの中に「アルテラSoC」も含まれていますので、Linuxの標準プラットフォームとして開発を進めてもらえるのかなと。

堀内:知らなかった(笑)。それってめちゃめちゃ重要な情報ですね。もっと宣伝しないと(笑)。

とはいうものの、今日見せてもらったこの評価ボードは、見た目がごついというか大きいというか、ソフト屋さんからすると、ちょっと遊んでみようという感覚にはならないような気もするんです。

小山:このボードはペリフェラルを含めて「アルテラSoC」をフルスペックとして評価できることをコンセプトに開発したものですが、ソフトウェア開発者向けのコンパクトな評価ボードをパートナーさんが提供してくれる予定になっています。

萩原:チーム内にFPGAを触れる人がいないとか、ハードウェア部分の設計が重荷になるということなら、外部の設計会社にFPGAロジック設計を依頼してソフトウェア開発だけに注力するという方法もあるかもしれません。

堀内:そういったカスタムメイド開発を請け負うビジネスモデルは十分にアリですよね。設計パートナーになっていただけるところがあれば大歓迎です。

包括的なエコシステムでユーザーを支援

従来のARM用の開発ツールが使えるのか、それとも専用の開発ツールが必要になるのか、といった点を含めて、開発環境について教えてください。

堀内:ARMプロセッサ部分の開発については、いわゆるARMエコシステムが使えます。アルテラはARMと共同で「ARM Development Studio 5(DS-5)」の「Altera® Edition」を開発しましたが、決してそれしか使えないということではありません。OSについては、Linuxのほかに、ウインドリバーの「VxWorks」とMicriumの「MicroC/OS-II」のサポートが決定しているほか、国内で定評のあるイーソルの「eT-Kernel」もサポートされる予定です。またJTAGツールに関しては、横河ディジタルコンピュータ、京都マイクロコンピュータ、ローターバッハとそれぞれ話を進めています。FPGA部分の開発に関しては、電子ブロックを並べていくようにロジック回路を構成できる当社の「Qsys」ツールなどが使えます。

センティル:先ほどLinuxのBSPの話をしましたが、お客様がLinux以外のOSを使いたい場合は、それぞれのOSベンダーが提供するBSPやツールを利用してもらうことになります。アルテラ自体はLinuxのサポートに注力していく予定ですが、お客様の要求に応じてさまざまなOSが選べるように、エコシステムパートナーとも連携を図っていきます。

「ARM DS-5」の「Alter Edition」にはどういった機能があるのですか?

萩原:FPGAの開発ツールである「Qsys」で定義したレジスタの内容を「DS-5」から覗けるとか、FPGAの信号で「DS-5」側にブレークを設定できる、といった連携機能が搭載されています。いわばハードウェア設計者とソフトウェア設計者とをつなぐツールと言えますね。なお「Qsys」はレジスタマップをARMが定めるCMSISという形式で出力しますし、「アルテラSoC」内部もARMが定める「CoreSight」アーキテクチャに基づいて設計していますので、今後は他のツールでも同様の連携機能がサポートされる可能性があります。

小山:開発環境についてひとつ補足をしておくと、「OpenCL™」という並列コンピューティング用フレームワークの研究をアルテラでは進めています。「アルテラSoC」への対応はもう少しお待ちいただく必要があるのですが、FPGA側の処理とARM Cortex-A9プロセッサ側の処理をC言語ベースで統一的に記述できるようになります。ぜひ期待してください。

システムに最適な「マイARM」を実現

「アルテラSoC」についていろいろ教えてもらった印象では、喩えが適切かどうか判りませんが、ロジックを変更できないASICやマイコンが「ガラケー」だとすると、「アルテラSoC」はアプリを自由に組み込んで自分ならではの機能を作りこめる「スマホ」なのかなと。そんなイメージで合ってますか?

小山:すばらしい! 僕らにはそういう発想はありません(笑)。

最後の質問ですが、「アルテラSoC」はどういうお客さんに、どんな用途で活用してもらいたいと考えていますか?

小山:量産でたくさん使っていただけるのならどんなお客様でも!(笑)

堀内:(笑)まぁそれは半分冗談としても、産業機器、オートモーティブ、ワイヤレスやモバイルなどのインフラ系のコミュニケーション、メディカル、業務用複合機などでしょうか。とくに画像処理が伴うアプリケーションは、FPGA側にオフロードするメリットが生かせますので、そうした提案にも努めたいと考えています。

萩原:先ほども説明したようにアルテラはLinuxのBSPを提供しますが、ビルドについてはオープンソースの「Yocto Project」に則っていますので、研究機関や大学研究室などでも使いやすいはずです。画像処理や制御系など、教育や最先端研究での活用も期待しています。

今日は日本アルテラの本社にお邪魔して「アルテラSoC」の実物を見せてもらうとともに、開発ツールの話なども聞けて、「アルテラSoC」の全体像がなんとなく理解できたように思います。2013年5月から評価キットの一般リリースが始まるということなので楽しみですね。今日はありがとうございました。

アルテラ:こちらこそ、ありがとうございました!