クイズ

  • 問題1:FPGAのPは何の略?
  • 問題2:FFPGAのAはアルテラのAである。 ○か×か?

※答えはこのページの一番下にあります。

プロセッサコアの統合により、さらなる進化を遂げるFPGA

FPGAにプログラミングできるのはハードウェアロジックだけではない。プロセッサコアを内部に組み込むことでソフトウェアを動作させることもできる。いわゆるSoC(システム・オン・チップ)として高度な処理に効率よく対応できるのが、FPGAのもうひとつの姿なのである。連載の最終回となる今回は、プロセッサコアの統合から導かれるFPGAの可能性と、将来の進化について触れてみよう。

 前回の連載では、画像処理(前編)と通信システム(後編)を取り上げ、FPGAがさまざまな装置で中核的な処理を担っている事例を説明した。FPGAは、今やデジタル機器にとって、なくてはならないデバイスのひとつになっていることが、お分かりいただけたのではないだろうか。

 FPGAの応用が高度化かつ拡大している背景には、集積度の向上や回路動作の高速化などがあるが、もうひとつ忘れてはならない点として、プロセッサコアの統合が可能になったことを挙げなくてはならない。

 FPGAへのプロセッサコアの本格的な統合が始まったのは、2000年前後だ。FPGAの論理規模が十分に大きくなっていたことや、PCIバスなど周辺IP(ハードマクロまたはソフトIP)も整備され、さらに画像処理や通信システムなどの性能向上ニーズも高まりを見せていた時期に相当する。ちなみにアルテラは、ARM922コアをハードマクロ化したFPGA「Excalibur」を2000年に発表するとともに、ソフトコアによる16ビットプロセッサ「Nios」をやはり2000年にリリースした。他社もそれを追うように製品化を行っている。

 プロセッサコアの統合は、次のようなメリットをもたらす。

・外付けプロセッサの内蔵によって、ソリューションサイズの小型化が図れる

・プロセッサはソフトIPとして構成されるため、外付けプロセッサのようなディスコン(生産中止)の心配が、基本的にない

・アプリケーション回路(画像処理や通信システムなど)と一緒に組み込めるため、性能の最適化が図りやすい

・論理回路によるハードウェア処理と、プロセッサ+ソフトウェアによるソフトウェア処理とを、バランス良くチューニングできる

・ネットワークスタック処理など、負荷の高い処理をメインのプロセッサからオフロードできる(図1)

 アルテラでも、FPGAにプロセッサコアを統合するお客様は確実に増加しているのが現状だ。コア統合のメリットが広く認められてきたという証しともいえるだろう。エンベデッド・プロセッシングについての概要は、アルテラのウェブサイトで紹介しているので、参照してみて欲しい。

図1.FPGA(水色)にプロセッサコアを組み込むことで、ホストプロセッサ(赤)の負荷を軽減できる。画像処理や通信システムなど処理が複雑化しているアプリケーションでは、とくに有効だ。

図1.FPGA(水色)にプロセッサコアを組み込むことで、ホストプロセッサ(赤)の負荷を軽減できる。画像処理や通信システムなど処理が複雑化しているアプリケーションでは、とくに有効だ。

プロセッサ統合で社内の設計基盤を標準化

 FPGAにプロセッサを統合した医療機器メーカーの事例を簡単に紹介しよう。その医療機器メーカーでは内視鏡装置や電気メス装置などさまざまな医療機器を自社開発していて、業界での高いシェアと豊富な実績を誇っている。

 しかし、それぞれの機器は製品ごとの開発チームが個別に設計を進めていたため、設計資産を社内で共有できていないといった問題のほかに、プロセッサ部品の調達や在庫管理が煩雑になり、プロセッサのディスコン対策もそれぞれで必要になっていた。

 そのような課題を抱えた同社では、プロセッサの標準化を進めることにした。いくつかのオプションを検討した結果、最終的にFPGAの採用とプロセッサコアの統合を決定した。具体的にはアルテラのFPGA「Cyclone III」を使用し、内部にアルテラオリジナルのNios IIプロセッサを搭載することで、前述した課題を解決したという。

 現在、組み込み機器の開発の効率化(とくにソフトウェア開発の効率化)は、産業界全体の課題になっている。同社はFPGAの採用とプロセッサコアの統合によって、プラットフォームの共通化を図り、開発効率の向上や開発期間の短縮などの効果を得た。この考え方は、産業機器などにも十分適用できるだろう。

FPGAでLinuxやμITRONが動く

 プロセッサコアの搭載で気になるのが、開発環境やオペレーティングシステムだが、単体のプロセッサと同等といえるレベルまで整備されている。

 IPとして用意されているプロセッサ・アーキテクチャの種類は豊富だ。8051、Z80、6809といった歴史ある8ビットプロセッサのほか、16ビットプロセッサやARM社のARM Cortexのような最新の32ビットプロセッサが、IPベンダーあるいはプロセッサベンダーから提供されている。また、FPGAベンダーも独自のコアを提供している(アルテラの場合は図3の「Nios II」)。たとえば、アルテラではFPGA用 プロセッサ IPとして、このような製品群を取り揃えているので、参照してほしい。

 オペレテーティングシステムは、それぞれのコアに用意されるμITRON系やLinux系を利用できる。たとえばアルテラのNios II プロセッサの場合、μITRON系ではミスポ社が提供する「NORTi Professional」、TOPPERS Project の無償オープンソースやエーアイコーポレーション社による有償ディストリビューション「TOPPERS-Pro」などがある。また Linuxにおいては、Nios II用カーネルのオープンソースが入手可能であり、また組み込み用Linuxの最大手であるWind Liver社が提供する「Wind River Linux」(図4)を選択することもできる。 その他にも様々なOSやベンダーの選択肢がある。いずれもNios II 統合開発環境(IDE)に組み込んで利用できる点も特徴だ。

 ただし、プロセッサコアの場合はFPGAのロジック・エリアに実装するため、ユーザー・ロジックと組み合わせた場合、コアを統合しない場合に比べて論理容量の大きなFPGA製品が必要になる可能性もある。コストと要求性能のバランスによっては、外付けプロセッサの方が適している場合もあるだろう。また、FPGA用のプロセッサコアでサポートされていないOSの使用が必須の場合も同様である。

 性能においては、ソフトウェアの性能ボトルネックとなるサブルーティンをFPGAのハードウェアで高速化する(ハードウェア・アクセラレーション)という手法もある。Nios II の場合は、この設計を自動化するツール C-to-Hardware を利用できる。OSにおいては、リアルタイム性の有無、開発環境の比較、設計資産の再利用方法などについて本来の必要条件を見直すことで、実はFPGAのソフトコア・プロセッサ採用の障壁ではないことが判明することもある。先入観を捨てて、システム要件に応じた判断をすることが重要だ。

図3.アルテラが提供するNios IIプロセッサの歴史。出荷数はすでに20,000ライセンスを超えた。

図3.アルテラが提供するNios IIプロセッサの歴史。出荷数はすでに20,000ライセンスを超えた。

図4.Nios IIプロセッサでは統合環境としてWind River Linuxがサポートされる。Linuxの豊富なリソースを活用できる。

図4.Nios IIプロセッサでは統合環境としてWind River Linuxがサポートされる。Linuxの豊富なリソースを活用できる。

SoCを具現化したFPGAの進化は続く

さて、ほぼ一年間にわたる連載も今回で最後になった。回路を自由にプログラミングできるFPGAの仕組みや、その特性を生かした使い方などを、余すところなく述べてきたつもりである。また、長所だけではなく短所についても触れるとともに、過去のFPGAに起因するいくつかの誤解についても解消に努めてきた。

 連載の前半で繰り返し述べてきたように、FPGAは「攻めの設計」を可能にするデバイスのひとつである(第3回「守りの設計から攻めの設計へ)。さまざまな機器のデジタル化が進むなかで、開発期間の短縮ニーズや市場投入後の柔軟なアップデートに対応できるのはFPGAしかないといっても過言ではないだろう。

 また、開発期間や開発コストの圧縮を常に求められている開発現場のストレスを、わずかでも緩和する働きもある(第4回「時は金なり」)。設計エンジニアだけではなく、プロジェクトをマネージメントするミドルマネージャや、収益や会社の方向性に責任を持つトップマネージャにとっても、FPGAがもたらす価値は大きいはずだ。

 デジタル処理の高度化・複雑化が進むなかで、FPGAの応用分野はさらに拡大を続けている(図5)。デバイス面では、微細化による論理規模の拡大や動作スピードの向上に加えて、超高速トランシーバの搭載、プロセッサコアを含む設計ライブラリ(IP)の拡大、開発ツールの機能向上や設計自動化の推進が今後も図られていくだろう。

 そしてプロセッサとアプリケーション・ロジックを、ひとつのチップに統合できるFPGAは、まさにSoC(システムオンチップ)そのものであり、さらに言えばSoPC(システムオン・プログラマブル・チップ)とも言えるのである。

 ぜひFPGAが持つさまざまな特徴を、強い製品作りに役立てていただければと思う。

図5.プロセッサコアの統合もひとつの要因になって、FPGAの応用分野は拡大の一途を見せている。

図5.プロセッサコアの統合もひとつの要因になって、FPGAの応用分野は拡大の一途を見せている。

  • 解答1:FPGAのPはProgrammableの頭文字のPです。その「プログラマブル」の名の通り、FPGAは、「後からでも回路の書き換えが可能」である点が大きな利点になっています。詳しくはアルテラの「FPGA入門」をご覧ください。
  • 解答2:1983 年に世界で初めて書き換え可能なロジック・デバイス (PLD : Programmable Logic Device) を開発して以来、アルテラはプログラマブル・ロジックにおけるイノベーションをリードし続けていますので、FPGA の A はアルテラの A だとお思いの方もいらっしゃるかもしれません。しかし、FPGA は、Field Programmable Gate Array の頭文字をとったものです。よって、A は 「Array」 の略になります。アルテラについて詳しくは「アルテラについて」をご覧ください。