Xilinxの新たなツール。SWエンジニアのためのSDSoC開発環境。

FPGAベンダーとして知られるXilinxが量産中の「Zynq®-7000 All Programmable SoC」が絶好調だ。デュアルコアのARM® Cortex®-A9プロセッサにFPGA ファブリックを組み合わせたSoCで、画像処理用途を中心に採用が広がっている。さらに同社では、最先端の16nmプロセスを使ったクワッドコアのARM Cortex-A53プロセッサなどを搭載した「Zynq Ultrascale+™ MPSoC」も発表した。開発ツールの状況を含めて、SoCへの取り組みを訊いた。

メインイメージ

画像処理を中心にXilinxのZynq-7000の採用が増加

今日は大崎にあるXilinx本社にお邪魔しています。APSに登場されるのは、単独では今回が初めてということで、お話を伺えることを楽しみにしてきました。よろしくお願いします。

Xilinx全員:こちらこそよろしくお願いします。

さて、XilinxといえばFPGA(フィールドプラグラマブルゲートアレイ)を1985年に世界で初めて実用化した半導体ベンダーとして知られていますが、最近では、ARMプロセッサコアとFPGAを統合した「Zynq-7000」も手がけています。まずは「Zynq-7000」についてあらためて紹介してください。

査:2010年春に発表し、2012年から出荷を開始した「Zynq-7000 All Programmable SoC」は、正式名称だと長いので「Zynq-7000」(ジンク7000)としてお話しますが、デュアルコアのARM Cortex-A9プロセッサとFPGAファブリックをひとつのデバイスに統合した製品で、当社のSoCの第一世代にあたります。まず、なぜこういったSoCを開発したかという理由ですが、さまざまな製品やシステムの機能が高度化するにつれ、メーカーの開発現場では、より効率的な実現手段が求められるようになってきた背景が挙げられます。特に競争が激しく差別化が求められる分野や、成長が著しい分野でそうした傾向が顕著ですが、ASICでは膨大な開発費や開発期間が必要になります。一方、市販のASSPでは差別化が難しいといった課題があります。そこで、ソフトウェアで機能をプログラムできるプロセッサと、ハードウェアで機能をプログラムできるFPGAをひとつにまとめてしまおうということで、「Zynq-7000」を開発し製品化しました。半導体プロセスについては、当社はファブレスなので、台湾のTSMC社とパートナーシップを組み、性能と消費電力をきわめて高いレベルでバランスさせた28nmの「HPL(High-Performance, Low-power)」プロセスを共同で開発しています。

「Zynq-7000」の発売からおよそ3年が経過しましたが、ユーザーの反応や採用状況はいかがですか?

丸山:発売以来、お客様からはとても高い評価をいただいています。採用事例として多いのは、RRH(リモートラジオヘッド)のような通信系のほか、ADAS(先進運転支援システム)やマシンビジョンやプリンタのような画像処理系ですね。たとえばADASを例に挙げると、「Zynq-7000」であれば要求仕様や処理アルゴリズムの変化を吸収して速やかに対応できるところがメリットとして受け入れられたと考えています。性能が必要になればARM Cortex-A9プロセッサで処理している機能をFPGAに落としてハード的に処理させることも可能ですから、とてもフレキシブルにアーキテクチャを構成できます。

査:具体的な数字は申し上げられないのですが、採用に至った案件数や今後見込まれる採用機会などは、当初の予想を上回る勢いで伸びており、社内では「Xilinxの歴史のなかで最も立ち上がりの早い製品」と言われています。また、エコシステムは200社以上がパートナーとして、ツールなどの関連ソリューションを提供してくれています。そうした意味でも自信をもってお客様にお勧めできるソリューションです。

採用案件が順調に増えているというお話ですが、「Zynq-7000」のどういったところがメリットとして捉えられているとお考えでしょう。

査:いくつもの理由があると思いますが、ひとつは「Zynq-7000」の正式名称にもあるように「All Programmable」という点が挙げられると思います。ARM側もFPGA側もいずれもプログラマブルですし、それぞれの機能の切り分けもお客様が自由に設定できます。また、動作中にFPGAロジックの一部を書き換えるパーシャル・リコンフィギュレーション(部分的再構成)という機能を活用して、処理アルゴリズムを動的に切り替える使い方を試みている先進的なお客様もいらっしゃいます。このほか、システム性能の大幅な向上の実現、部品コストの削減、消費電力の抑制、設計生産性の向上といったメリットをご評価いただいていますし、その結果として、スマートな機器やシステムを実現できるところが最大の特長になります。

丸山: 産業機器のお客様からはプラットフォーム展開がしやすいという声を聞きます。産業機器は、機能は同じでも出荷先の仕様に応じてインタフェースを一品一葉的に設計しなければならない場合が多く、「All Programmable」な「Zynq-7000」を使えばFPGA部分でそういった差異を簡単に吸収できます。画像処理においても、画像の規格が変わったときにも柔軟に対応できます。

開発ツールの整備に積極的に投資

「Zynq-7000」の開発環境はどのようなツールが用意されているのですか?

黒田:ARM Cortex-A9プロセッサ用ソフトウェアの開発環境として、Xilinxではソフトウェア開発キット「SDK」を提供しています。ソフトウェアエンジニアの皆さんが使い慣れているEclipse上で動作するツールで、「Zynq-7000」に内蔵されるARM Cortex-A9プロセッサのほか、当社がソフトウェアIPとして提供している独自の「MicroBlaze™(マイクロブレイズ)」プロセッサにも対応しており、ヘテロジニアスなマルチプロセッサ設計が可能です。FPGA部分の開発ツールが「Vivado® Design Suite(ビバド)」です。これまでXilinxでは「ISE Design Suite」という開発環境を提供してきましたが、今後のさらなる大規模化にも対応できるツールが必要と考え、「ISE」とは別に新規に開発されたものです。これによりタイミングの制約だけではなく配線混雑や配線長をも考慮した三次元解析によって配置配線を行なえるようになり、配線チャネルや使用ゲートが集中する「ホットスポット」問題を解消しています。

査:「Vivado」は、Xilinxの経営陣が今の体制になってから、積極的に投資を行っている新しい開発ツールです。従来の「ISE」を改良していくだけでは将来的なスケーラビリティの確保が難しいと考えました。

黒田:「Vivado」には、論理合成や配置配線だけでなく、高位合成ツールの「Vivado HLS」や、IP資産をIP-XACT準拠のリポジトリとして管理してデザイン全体の結線作業を自動化する「Vivado IP Integrator」なども含まれています。このうち「Vivado HLS」は2011年に当社が買収したAutoESL社の技術をベースにしたツールで、C/C++/System Cを使ってコーディングした機能を、人手で書いたRTLと遜色のないRTLに落とし込むことが出来ます。

Xilinxが「Zynq UltraScale+ MPSoC」を発表

さて、Xilinxは米国時間の2015年2月23日に、16nmの「Zynq UltraScale+ MPSoC」を発表しました。ついにこの世界も20nmを切るプロセスノードに突入するのかと驚いてしまうのですが、概要を紹介してください。

査:「Zynq UltraScale+ MPSoC」はヘテロジニアス・アーキテクチャによって現行の「Zynq-7000」の5倍以上の価値を提供することを目的に開発を進めているSoCで、サンプル出荷は2015年第4四半期を見込んでいます。目的に応じたコアそれぞれに得意な仕事を割り振って全体最適化を図ろうとの考えのもと、メインとなるクワッドコアのARM Cortex-A53プロセッサをはじめ、リアルタイム処理用のデュアルコアARM Cortex-R5プロセッサ、2Dおよび3Dのグラフィクス処理用のARM Mali™-400MP、パワーマネージメントプロセッサ、セキュリティエンジンなどを搭載しています。また、品種展開では、H.265対応のハードウェアCODECも搭載されます。そのほか、DDR4コントローラ、288Kbitの「UltraRAM」メモリブロック、ARM Cortex-A53プロセッサ用のL1キャッシュとL2キャッシュ、DisplayPort、PCIe Gen2、USB3.0、SATA3、IEEE 1588、6Gbps SerDesなどの高速インタフェース、ミックスドシグナルを実現するA/Dコンバータなども搭載されます。

これでもか、というぐらいの「全部入り」ですね。どういった用途を想定しているのでしょうか?

査: 基本的なアプリケーションは現行の「Zynq-7000」の延長にあると思っています。LTE Advancedのさらに次の規格となる5Gの基盤や、ADASであれば複数のセンサーからの情報をより高速に処理し、精度の高い認識が可能になります。また、医療機器の画像処理やビッグデータ解析のアクセラレータなどにも応用できると考えています。

丸山:「Zynq UltraScale+ MPSoC」はおっしゃるように多くのブロックを統合しますので、そんなに入れて何に使うの?という疑問は当然あると思うのですが、産業系のお客様にご紹介すると「これこそが欲しかったデバイスなんだよね」という反応をいただくこともあって、より高速に、より小型に、という飽くなきニーズにお応えできるソリューションではないかと考えています。

XilinxのSDSoC使えば、ソフトウェアエンジニアが自分でHW/SWシステムを実装できる世界へ

果たしてどのぐらいの処理性能が実現されるのか、実チップの登場が楽しみですが、一方で、ここまで規模が大きくなると開発が相当難しくなることが予想されます。先ほど開発環境について伺いましたが、「Zynq UltraScale+ MPSoC」に向けて新たなツールの予定はありますか?

黒田:「SDSoC」というツールを米国時間の2015年3月9日に発表しました。「SDSoC」は、フルシステム(HWとSW)の最適化をソフトウェアエンジニアがC/C++のみで実現できるコンパイラを備えた、非常にシンプルなASSPと同様のC/C++プログラミング環境のような画期的なツールです。このツールは、FPGAの設計経験のないソフトウェア・エンジニアが、「Zynq-7000」や「Zynq UltraScale+ MPSoC」をターゲットにしたアプリケーションを一人で設計することを可能にします。従来「Zynq-7000」を使用したシステムの開発のためには、ハードウェア・エンジニアが「Vivado」を、ソフトウェア・エンジニアが「SDK」を用いて、それぞれ別チームで設計を行っていました。弊社には「Vivado HLS」というC/C++で記述された関数をハードウェアIP化できる高位合成ツールがありますが、HLSを使って作成したIPをシステムに組み込むためには、設計チームをまたぐ多くの手作業とハードウェアの知識や経験が必要でした。たとえば、IPをどのような方法でプロセッサと接続すればパフォーマンスを最適化できるのかという検討や、プロセッサからこのIPを呼び出す為のAPIをどうするのか、といった作業です。これらのシステム統合のための作業には多くの設計リソースと時間が必要でした。「SDSoC」は、その問題を解決する為に、C/C++のコードからハード化したIPを生成できるだけでなく、そのIPをシステムに組み込むために必要な作業の効率化が可能になります。しかも、ハードウェアの知識は必要ないので、ソフトウェアエンジニアが自分一人だけでHW/SWシステムを実装できるようになります。

先ほど説明のあった「SDK」や「Vivado」との関係はどうなるのでしょう?

黒田:「SDSoC」は、「SDK」や「Vivado HLS」、「Vivado IP Integrator」などを含む「Vivado System Edition」のツール群を統括的に連携させるという関係です。C/C++ソースコードの中からハードウェアでアクセラレートしたい関数を「SDSoC」のGUI上で指定すると、HW/SWコンパイラがソースコードを解析し、「Vivado HLS」が必要なアクセラレータを生成します。そして、「SDSoC」が生成されたアクセラレータのインタフェースとコネクティビティを最適な構成にし、「Vivado IP Integrator」がプラットフォームとアクセラレータを統合します。さらに、アクセラレータとコネクティビティを制御するドライバー・コードが生成され、アクセラレーションの対象としていた関数(API)のランタイムをハードウェア・ベースの内容と差替えるまでの作業が自動で行われます。

そうした機能は、他ではまだ実現されていないのでしょうか?

黒田:EDAベンダーも高位合成に取り組んでいますが、「SDSoC」はデバイス・ベンダーが開発するツールであり、自社のデバイスおよび組み込みのプラットフォームをターゲットにして、品質のすり合わせも含めた一気通貫の垂直統合フローを実現できる状況にあると言えますので、そもそもの立ち位置が違います。その意味でもこのようなツールは、ほかでは実現が難しいのだろうと考えます。

Xilinxでは、ARMコア+FPGAから生まれる新たな可能性を追求

今日は、現行の「Zynq-7000」、16nmで作られる「全部入り」ともいえる「Zynq UltraScale+ MPSoC」、そして高位合成を支援する「SDSoC」のお話をそれぞれ伺って、SoCに対するXilinxの「本気度」を感じました。

丸山:ありがとうございます。なかでもMali-400 GPUやH.265コーデックを内蔵した「Zynq UltraScale+ MPSoC」は、「Zynq-7000」を超える領域を目指したきわめてエキサイティングなデバイスです。既存の開発環境に加え、新たに「SDSoC」もリリースされます。現在の「Zynq-7000」ユーザーにとどまらず、「Zynq-7000」では物足りないとお考えの設計者の皆様のご期待に応えられるものと確信しています。

査:Cortex-A53とCortex-R5のヘテロジニアス・アーキテクチャによって「Zynq-7000」の5倍以上の価値を目指して開発を進めている「Zynq UltraScale+ MPSoC」は、社内の私たちも完成を心待ちにしているほどで、さらに新しい可能性をもたらしてくれると考えています。Xilinxの今後の取り組みに期待してください。

本日はありがとうございました。