Cortex-A9の可能性を広げる「SoC FPGA」ハードとソフトの融合に高まる期待

ワールドワイドでの年間出荷台数が300万台を超え、組み込み分野を代表するアプリケーションのひとつとなっているのが複合機だ。最近では高度なドキュメントマネージメント機能も搭載され、日々のオフィス業務の効率化を支えている。今回の「プレミアムトークセッション」では、20年以上に亘って複合機市場をリードしてきた富士ゼロックスでコントローラ開発を手掛けてきた柳澤克彦氏をお招きし、同社の取り組みと、ARM® Cortex®-A9 MPCore™プロセッサを搭載した新しいARMデバイスの可能性について伺った。

メインイメージ

FPGAをコンパニオンチップとして活用。モデルごとの機能をFPGAに搭載

まず始めに複合機の歴史を簡単に説明していただけますか?

柳澤:富士ゼロックスが最初にデジタル複合機を商品化したのは1989年です。それまでアナログ的に処理していたコピー機やレーザープリンタの内部がデジタル化されてきた時期で、コピー機、ファクシミリ、レーザープリンタ、あるいはスキャナ機能を一緒にしようというアイディアが自然に生まれ、複合機が誕生しました。その後、ネットワークなどのコネクティビティの強化、印字速度や解像度の向上、消費電力の削減、ユーザーインタフェースの工夫、セキュリティ機能の搭載、カラー化など、機能や性能のさまざまな面で進化を遂げてきました。

堀内:本当に便利になりましたよね。ネットワークで端末とつながっているので、最近ではコピーした書類をPDF化して自分のディスクスペースに保存する、といった使い方もしています。

柳澤様ご自身はどのような仕事をされてきたのでしょうか?

柳澤:入社当時はかつて存在したワークステーションの開発を手掛けていましたが、先ほども述べたようにデジタル化によってコピー機やプリンタにもネットワーク機能やコンピュータ的な要素が求められるようになり、ワークステーションを担当していた知見を生かそうということで、1980年の後半に複合機部門に移りました。現在は海外向けのローエンドモデルを中心に、「コントローラ」と呼んでいるハードウェア開発を担当しています。

その「コントローラ」について教えてください。

柳澤:「コントローラ」は複合機に内蔵されるメインコンピュータのような位置付けにあり、スキャンユニットが出力するデータを受けて、画像処理を行い、レーザーや感光ドラムを制御するエンジンユニットにデータを出力するのが主な役割です。また、ネットワークなどの制御、データの蓄積、ユーザーインタフェースの制御なども担当します。構成としては、マイコンコアに画像処理エンジンやネットワークインタフェースなどを統合した独自開発のSoC(システム・オン・チップ)と、モデル別の機能を搭載したFPGAとを組み合わせています。

堀内:柳澤さんには当社のFPGAを10年近く使っていただいています。ちなみに一般のハードウェア回路は一度設計すると変更ができませんが、「フィールド・プログラマブル・ゲート・アレイ」を略したFPGAデバイスには回路を自在に書き換えられるという特徴があり、コミュニケーション、インダストリアル、放送機器、コンシューマなどの分野で幅広く採用されています。アルテラでは現在、高性能と高集積を志向したハイエンドの「Stratix® V FPGA」シリーズ、ミッドレンジの「Arria® V FPGA」シリーズ、およびローコストかつローパワーを狙った「Cyclone® V FPGA」シリーズをラインアップしています。

先ほどSoC+FPGAでコントローラを構成しているとの説明がありましたが、FPGAを採用した理由をもう少し詳しく教えてください。

柳澤:マイコンコアや画像処理エンジンなどで構成したSoCにモデルごとの機能もすべて統合しようとすると、SoCの規模が大きくなるばかりか、個々のモデルで見たときに使わない機能も搭載することになり、コスト的にも冗長になってしまいます。そこで、フレキシブルなモデル展開を実現するために、SoCで構成されるベース部分は共通化を図りシンプルにして、一方でモデルごとの個別機能は回路を変更できるFPGAに統合した、「SoC+FPGA」というアーキテクチャをプラットフォームとして採用しています。2年から3年おきに訪れるSoCの世代交代時の機能ギャップをFPGAで吸収するという目的もあります。

堀内:FPGAはしばしばASIC(カスタムLSI)との対比で論じられることが多く、開発費、量産コスト、開発期間といった観点で、それぞれの優劣が比較されることが少なくありません。しかし柳澤さんのチームはそういった「FPGA vs ASIC」という対立軸ではなく、FPGAを「コンパニオンチップ」として使うフレキシブルなアプローチを早くから採用されています。きわめて合理的で、しかも先進的な使い方だと思います。

FPGAを「コンパニオンチップ」として使う方法は一般的なのでしょうか?

堀内:たとえばネットワーク機器で同様の使い方をしているお客様もいらっしゃいます。ひとつのASICで全部のプロトコルに対応しようとすると大変なので、ラインカードごとに必要なプロトコルだけをFPGAに組み込んでサポートする、といった方法です。当社としてもコンパニオンチップという使い方はFPGAの訴求ポイントのひとつと考えていて、さまざまな機会で提案しています。

FPGAベンダーとしてアルテラを選んだ理由についてお聞かせください。

柳澤:コンパニオンチップとしてのFPGAにモデルごとの機能を作り込むには、各回路モジュールを簡単に取捨選択できる開発ツールが不可欠でした。アルテラは当時、必要なモジュールだけを指定してFPGAを構成する「SOPC Builder」(現「Qsys」システム統合ツール)という開発ツールと、「Avalon」という内部バスを唯一提供していて、それが採用の決め手になりました。こういったツールや内部バスの考え方は今では当たり前になっていますが、私たちがFPGAを採用し始めた2000年前半にそういった環境を提供しているのはアルテラだけでした。

堀内:当社が定めた内部バス「Avalon」に基づいてお客様の機能ブロックをIPとして設計しておいていただければ、「SOPC Builder」というツールを使って、この機能はFPGAに入れる、この機能は入れない、といった指定が簡単にできるのが特徴です。当社やサードパーティが提供する標準IPも同じように選択可能です。IP同士を結ぶロジックを設計する必要がないので、お客様は製品価値に直結する本来の設計に注力できるといったメリットがあります。

Cortex-A9 MPCoreをFPGAに統合。高いレベルのフレキシビリティを実現

アルテラは2011年10月に、ARM Cortex-A9 MPCoreプロセッサを搭載した「SoC FPGA」を発表しました。概要を紹介してください。

小山:アルテラの「SoC FPGA」は、800MHz動作のデュアルコアのARM Cortex-A9 MPCoreプロセッサをハードIPとして内部に搭載した最新のFPGAデバイスです。アルテラでは「Nios® II」というソフトIPのプロセッサコアを10年以上に亘って提供してきましたが、今回のARM Cortex-A9 MPCoreプロセッサは、より高速なシステム性能を求めるお客様のニーズに応えるものとなります。ラインアップとしては、ミッドレンジの「Arria V SoC FPGA」と、ローエンドの「Cyclone V SoC FPGA」の2シリーズでまずは製品化します。なお、システムに必要なUSBインタフェース、イーサネットコントローラ、ブートROMインタフェース、DDRメモリコントローラなども内蔵していますので、高度な機能統合が可能です。

プロセッサコアとしてARMアーキテクチャを選んだ理由を教えてください。

小山:さまざまなアーキテクチャのサーベイを行った結果、ARMに対するお客様のニーズがもっとも高かったことや、最新の28nmプロセスノードに最適と判断して、採用を決定しています。

堀内:ARMには強固なエコシステムが確立されているという点も挙げられます。また、ユーザーベースが将来ハイエンドに広がっていく可能性を踏まえると、現在Cortex-Mシリーズで構築している組み込みシステムを、より高性能なCortex-Aシリーズにマイグレーションする機会も増えてくるはずで、そういった応用に「SoC FPGA」を活用していただきたいという狙いもあります。

このアルテラの「SoC FPGA」に興味はありますか?

柳澤:もちろんです。ARMアーキテクチャということもあり、評価ボードなどがリリースされたらぜひ導入してみたいと考えています。最近ではARMマイコンの評価ボードが雑誌の付録として手に入るほどですが、そういったお手軽な感じで評価できたらいろいろなアイディアも沸いてきて面白いかもしれません。とにかく期待と興味があるのは確かです。

複合機ではどのような使い方が想定されますか? 現在のSoC+FPGAをワンチップ化できるようにも思えるのですが。

柳澤:新規開発のシステムであれば「SoC FPGA」でワンチップ化するという使い方はたしかにあると思います。本格的なSoCを開発するよりもはるかにお手軽ですよね。いわば「お手軽SoC」が実現できると。ただ、すでに存在するシステムを「SoC FPGA」で置き換えたほうがいいかというと、ソフトウェア資産をどう継承するか、あるいは再検証や再評価をどうするか、といった問題が出てきます。さらに「SoC FPGA」はFPGAのこれまでの変遷の中ではかなり大きなトランジションになるので、エンジニアにとっては、文化的かつ技術的なギャップを飛び越えなければなりません。ですから、最初から全部を置き換えようとするのではなくて、もう少し現実的な導入戦略を立てたほうがいいのかなという考えです。

具体的な構想はありますか?

柳澤:ひとつは、モデルごとの差異化の部分を組み込んでいる現在のFPGAの置き換えを考えています。今後要求されるであろう複雑な機能を、FPGAのロジックとARM Cortex-A MPCoreプロセッサを使ったソフトウェアで実装すれば、FPGA単体を使う場合に比べて、きわめてフレキシブルかつ高性能な機能拡張が実現できるでしょう。しかもFPGAなので、SoCやASICに比べて開発期間が短くて済み、タイムリーな市場投入が図れます。そういった方法が最初の落としどころで、その次に既存のSoCを含めた統合という話が出てくるのだろうと考えています。

堀内:先ほどFPGAをコンパニオンチップとして活用されているというお話がありましたが、「SoC FPGA」によってソフトウェアを含めたコンパニオン化を実現しようという考え方ですね。

小山:お客様の既存のシステムを「SoC FPGA」を使ってワンチップ化していただきたいというのが私どもの願いのひとつではあるのですが、柳澤さんがおっしゃるように、既存システムの構成や制約を踏まえたうえで、お客様にどういう提案をしていくかが、私どもの課題といえそうですね。

柳澤:ローパワーかつ高性能なARM Cortex-A9 MPCoreプロセッサがデュアルで載っていて、しかも高速なFPGAロジックも使えるので、かなり複雑な処理を実現できるだろうというのが今の期待値ですね。具体的な検討はこれからで、どのような差異化をしていくかは富士ゼロックス側の宿題ですが、さらにいえば「SoC FPGA」という入れ物を与えられたときに、組み込み業界としてどういう付加価値を創造していけばいいかが問われているのかもしれません。

ハードとソフトの設計を効率化するシームレスな開発環境を提供

「SoC FPGA」は、ハードウェア設計者とソフトウェア設計者の協調設計が鍵になるように思います。アルテラではどのような設計環境を提供する予定ですか?

小山:FPGA部分の設計にはこれまでどおり「Quartus® II」という統合環境を提供する一方で、ARM Cortex-A9 MPCoreプロセッサ向けのソフトウェアの開発にはARMコミュニティのエコシステムをご紹介することになります。「SoC FPGA」にはARMの標準デバッグポートが装備されていますので、デバッグ方法は他のARMプロセッサとなんら変わりありません。このほか、ハードウェアとソフトウェアの機能をハイレベルかつシームレスで扱えるように、並列コンピュータの開発環境として注目を集めている「OpenCL™」にも対応する予定です。

「OpenCL」についてもう少し説明してください。

小山:OpenCLは、C言語に並列プログラミングの拡張を加えたC言語ベースのオープンな規格でKhronos Group(クロノス・グループ)という業界団体が開発しています。メインプロセッサで実行する「ホストコード」と、他のプロセッサコアまたは外部のプロセッサやアクセラレータが実行する「カーネルコード」とで構成され、並列処理を実行する仕組みです。このOpenCLの手法を「SoC FPGA」のソフトウェアプログラミングに適用すると、上位のC/C++レベルからはARM Cortex-A9 MPCoreプロセッサとFPGAロジックとがシームレスになり、ソフトウェア・エンジニアはFPGAを意識することなく、お互いの機能分担を柔軟に変更することも可能です。現在アルテラでは、カーネルコードをFPGAに実装する為の研究開発プログラムを精力的に進めているところです。

堀内:もうひとつ、アルテラではソフトウェアエンジニア向けに「SoC FPGA Virtual Target」という仮想プロトタイピングの仕組みも提供します。パソコン上に再現した仮想的な「SoC FPGA」を使ってARM Cortex-A9 MPCoreプロセッサや各ペリフェラルの挙動をシミュレーションできるツールで、ソフトウェアエンジニアの皆さんに充実した開発環境をお届けしたいという取り組みの一環となります。FPGAロジック部分をハードウェア的に連動させることも可能で、ソフトウェアとハードウェアの協調検証が実現されます。

柳澤:高度な集積化が進むとハードウェアとソフトウェアにどのように機能を振り分けるかが難しくなってきます。また、ソフトウェアで処理しているところをハードウェアに移したいとき、あるいはその逆のときに、お互いに断層があっては設計は上手く進みません。「OpenCL」のお話がありましたが、デザインエントリーの段階からハードウェアとソフトウェアをシームレスに結ぶ設計インフラの整備はぜひお願いしたいところです。

小山:「SoC FPGA」は、FPGAのエンジニアの方々から見るとARM Cortex-A9 MPCoreプロセッサが追加され、一方でARMソフトウェアのエンジニアの方々から見るとFPGAというテクノロジが追加されることになるので、もしかしたらハードルがすごく高いものに感じられる可能性があるわけです。そのハードルを下げていかないと、お客様にとってもアルテラにとってもハッピーになりませんので、デバイスの提案だけではなく、開発環境、応用方法、さらには、「文化」も含めた提案をしていかないといけないなと感じています。

柳澤:しばらくはアルテラと当社のようなユーザーとがキャッチボールをしながら、事例や応用範囲を広げていく必要があるでしょうね。

これまでARM Cortex-Aシリーズプロセッサを利用するには、既製のマイコン製品を利用するか、費用と時間をかけて独自SoCを開発するしかありませんでした。「SoC FPGA」の登場によって、自社製品に最適な「マイSoC」あるいは「マイARM」を比較的簡単に実現できるようになりますね。

堀内:もちろんそう願っています。「FPGA」や「SoC」というキーワードから難しそうといったイメージを抱くエンジニアのかたも多いと思うのですが、アーキテクトやエンジニアの皆さんにとって自分たちの味方になる選択肢が増えると考えていただければと思います。たとえばソフトウェアでは性能が出なかったときに、機能をハードウェア化してFPGA側にオフロードする、といった使い方も簡単にできるようになります。柳澤さんからいただいたいろいろなご意見も参考にしながら、組み込み機器の付加価値を上げる手段のひとつとして、さまざまな分野に価値や使い方を提案する活動を進めていきたいと考えています。

いろいろな可能性が拓けそうで楽しみですね。本日はありがとうございました。