• ビジネス
  • xTECH
  • 医療
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • 日経BP
日経テクノロジーonline SPECIAL

組み込みシステム開発のジレンマを 「All Programmable」 が解消

自動運転支援システムなど、今後も一層の高性能化が求められる組み込みシステムは多い。一方で、高性能化の追求が、システムの高度化やニーズの変化に柔軟に対応できるソフト開発のメリットを損なうようになった。こうした組み込みシステム開発に顕在化したジレンマを解消できる手法が、ザイリンクスが打ち出す「All Programmable」である。システムの機能を、ソフトとハードに最適分配し、それぞれをカスタム開発する。同社の FPGA と ARM コアを統合したデバイス「Zynq」と、その開発環境「Vivado」を使えば、カスタム仕様のアクセラレータや専用回路などを自由自在に構成し、ソフト開発だけでは実現困難な高性能システムを、柔軟性を損なうことなく実現できる。組み込みシステムの未来は、All Programmable と共にある。

丸山利広氏
ザイリンクス株式会社
エンジニアリング本部
シニア スペシャリスト
フィールド アプリケーション エンジニア

組み込みシステムの開発者の中に占めるソフト開発者の割合はとても多い。応用分野の違いによる差異はあるものの、システムに搭載する機能の多くをソフトで実現した方が、設計変更や仕様変更に対する柔軟性に優れているからだ。一方ハードは、汎用マイコンや ASSP など、なるべく標準仕様の半導体を中心に構成する傾向がある。

組み込みシステムの進化には、柔軟性の維持と高性能化の継続が欠かせない。この二つは、様々な処理を実行可能な高い汎用性を持ったマイクロプロセッサ・コアが、いわゆる「Moore の法則」に沿って高性能化し続けたからこそ、両立できていたと言える。多くのソフト開発者は、Moore の法則の恩恵をユーザーのニーズに合った機能開発に転化することに注力していればよかった。

柔軟性の維持と高性能化の継続が両立できない

ところが近年、柔軟性の維持と高性能化の継続の両立が、困難になってきた。より高性能なシステムを実現するには、マルチコア構成のプロセッサやグラフィックス・プロセッサなど特定の処理に特化したプロセッサなどを使い、ハードの仕様、構成を考慮に入れたソフト開発が必須になってきている。今では、ハード上で動作するプログラムを開発するファームウェア開発者はもとより、アプリケーション開発者やアルゴリズム開発者など、ソフト開発の初期工程を担当している開発者にも、ハード開発に関する高いリテラシーが求められるようになった。

組み込みシステムは、用途に特化した構成のハードを開発しないと高性能化できない時代が訪れようとしている。処理の並列化やパイプライン化を推し進めるためのカスタム・アクセラレータや、特定の処理に特化した専用回路を、ソフト処理と併用が必須になってきている。ただし、ASIC のようなレガシーなハード化手法を使ったのでは、これまで実現していたシステムの柔軟性を維持できなくなる。しかも、莫大な開発費用と開発期間を費やすことにもなる。そして、組み込みシステム開発者の多数派であるソフト開発者が手出しできない部分に開発のボトルネックが生まれてしまう。組み込みシステムの開発では、柔軟性の維持と高性能化の継続の両立に重大なジレンマを抱えている。

「All Programmable」 がジレンマを打破する

組み込みシステムを継続的に高性能化するためには、これまでソフトで実現してきた機能の一部を、カスタム化しなければならない。しかし、ハード化によってシステム開発の柔軟性を損なうことは避けたい。こうした、一見、両立不可能な要求を、同時に満たすことができるのが、ザイリンクスが打ち出すシステム開発プラットフォームのコンセプト 「All Programmable」 である。ソフトで実現する機能とハードで実現する機能の両方を、プログラム可能にできるようにしようとするものだ。

図1 ザイリンクスの FPGA と ARM コアを統合したデバイス 「Zynq-7000 All Programmable SoC」 の内部構成
[画像のクリックで拡大表示]

All Programmable は、主に、電子回路の設計データをプログラミングすることで、思い通りの専用回路を自由に実現できるデバイスである FPGA と、その潜在能力を引き出すための FPGA 向けプログラム開発環境 「Vivado」 という二つの技術で構成されている。これまで FPGA は、元々、ASIC などカスタム LSI の開発において、自由に仕様変更できる試作用デバイスとして使われてきた。最近では、試作用としてだけではなく、携帯電話基地局のプロトコル処理や、放送機器などのデジタル信号処理を実行する、ユーザーが使う機器やシステムにも搭載されるようになった。組み込みシステムを構成するデバイスとして、その重要性は年々高まっている。さらにザイリンクスでは、同社の FPGA とデュアルコア ARM® Cortex-A9 プロセッサ・コアを統合したデバイス 「Zynq®-7000 All Programmable SoC(以下、Zynq SoC )」を提供している(図1)。アクセラレータの内部構成や特定の処理を効率よく実行する専用回路を自由にカスタム化できる、究極の汎用マイコンと呼べるデバイスだ。

システムに組み込む機能を、ARM コアで実行するソフトと FPGA で実現するハードに最適分割することによって、高い柔軟性と最高のシステム性能を実現できる。しかし、現在の組み込みシステム開発者の多数派であるソフト開発者の多くは、機能をハード化することで飛躍的に高性能なシステムを構築できることに気付いていない。「これまでの汎用マイコンでは実現できない高いレベルの柔軟性と高性能を両立できる、Zynq SoC ならではのメリットを、ソフト開発者にも知ってもらいたい」とザイリンクス株式会社 エンジニアリング本部 シニア スペシャリスト フィールドアプリケーションエンジニアの丸山利広氏は言う。

組み込みシステムは、まだまだ高性能化できる

画像処理のように、処理の並列化が高性能化の有効な手段となる処理では、機能のハード化によって、まだまだ性能を向上できる。画像処理を駆使して自動車の安全な運転を支援する、自動運転制御システムを例に、Zynq SoC と Vivado ツールを利用したシステム開発がどのような効果をもたらすのか見てみよう。

カメラで取り込んだ画像データから車線を検出し、車線からはみ出さないように運転するための支援機能を想定する。このとき、車線を検出するためには、カラーからモノクロへの変換、画像のコントラストの強調、エッジ検出など様々な画像処理を施す必要がある。こうした処理機能の開発には、リアルタイム画像処理に向けたプログラミング関数のオープンソースライブラリである「OpenCV」を利用できる。ただし、取り込んだ画像データのすべてのフレーム、すべての画素が処置対象になる。このため、ソフト処理だけでリアルタイム処理するには、かなり高性能で、消費電力の高いプロセッサの採用が必須になる。実際には、機能のハード化しか実現手段はないだろう。ザイリンクスが提供する高位合成ツール「Vivado HLS」は合成可能な OpenCV ライブラリをもち C 言語で記述された機能を、Zynq SoC 内の FPGA で実現できる設計データへと変換する(図2)。また、同社ではより高性能で高効率なハードを実現するための独自ライブラリも用意している。これらを使えば、簡単にカスタム化したハードを開発できる。

図2 Vivado HLS(高位合成)
[画像のクリックで拡大表示]
図3 運転支援システムへの Zynq SoC の応用
[画像のクリックで拡大表示]

さらに Zynq SoC には、ソフトとハードを組み合せてシステム内のほとんどの機能を集積するために必要な要素が1チップに凝縮されている。運転支援システムへの応用を想定すると、デュアルコア ARM Cortex-A9 プロセッサで主要アプリケーション・ソフトを、FPGA で歩行者検出、衝突防止、死角検出、後方車線逸脱警報などの演算が集中する高性能機能を実行できる。その他、高度な画像処理での利用に耐える内部メモリー、メモリー・コントローラ、各種入出力インタフェース回路も搭載している。ザイリンクスによると、同様のシステムをマイクロプロセッサ、DSP、FPGA の3チップで構成する場合と比較すると、Zynq SoC を使ったシステムでは、BOM コストを 25%、システム全体の消費電力を 50% それぞれ削減できるという(図3)。また、アーキテクチャの柔軟性が高まるためシステム性能も 2 倍以上に向上する可能性がある。

ソフト開発者目線のハード開発環境

ソフト開発者の中には、機能のハード化による高性能化の効果は十分わかっているが、畑違いのハード開発に関与することに躊躇(ちゅうちょ)する人もいるだろう。しかし、その心配は、杞憂だ。ソフト開発者がハード開発に関する最小限の知識を取得するだけで、Zynq SoC の潜在能力を生かした組み込みシステムを開発できる開発環境が整備されているからだ。「少なくともファーム開発者ならば、FPGA 上で高度なハードを自力で実現できる開発環境はそろっています」と自らファーム開発者だった丸山氏はいう。

ザイリンクスは、前述した Vivado HLS だけではなく、Zynq SoC の一部である ARM コアやFPGA 上で効率よく動作する検証済みの開発資産 (IP) を組み合わせてシステムの機能を開発するためのツール「Vivado IP インテグレーター(IPI) 」も用意している(図4)。ARM コア上で動作するソフトと FPGA で実現するハードを識別し、再利用、統合を迅速に行うことができる。Vivado IPI では、ユーザーが開発した IP はもちろん、ザイリンクスが用意する「LogiCORE™  / SmartCORE™ IP」、サードパーティ製の IP、MathWorks®社の「Simulink®」で開発したIP、Vivado HLSでC/C++ やSystemC から合成した IP など多種多様な出自の IP を集積できる。

図4 Vivado IP インテグレーター(IPI)
[画像のクリックで拡大表示]

またザイリンクスは、より高位の言語で Zynq SoC や自社製 FPGA で実現するハードを開発できる環境を整えることで、ソフト開発者やシステム開発者による活用を支援する 「All Programmable Abstraction」 を推し進めている。システム開発において、ハードやソフトの動作をモデリングする際、C/C++ やSystemC、OpenCL、MathWorks 社のモデル・ベース開発環境「MATLAB® / Simulink」、米National Instruments 社のグラフィカル・プログラミング環境「NI LabVIEW™」といった様々な言語や開発環境が使われている。 All Programmable Abstraction では、ソフト開発者の意図やスキルに合わせて機能開発の手段を選択できるように、 IP プロバイダ、EDA ベンダー、エンベデッドソフトウェアプロバイダ、システムインテグレータ、およびハードウェアサプライヤで構成される「ザイリンクス エコシステム アライアンス」のメンバー企業が、ソフト、モデル、プラットフォーム、および IP ベースのデザイン環境を総合的にサポートする体制を整える。

さらに、OpenCL (Open Computing Language) を用いて開発したコードから、FPGA に書き込めるプログラムを自動的に作り出すコンパイラも用意する予定である。これによって、アプリケーション開発者やアルゴリズム開発者は、ハード開発のより深い部分まで関与できるようになるだろう。

ソフト開発だけに頼って組み込みシステムを開発する時代は終わろうとしている。柔軟性の維持と高性能化の継続の両立に道を拓いたザイリンクスの All Programmable は、より高度な将来の組み込みシステムを生み出し続けることだろう。

お問い合わせ