サイト内の現在位置
FPGAとは?メリットや注目される理由もわかりやすく解説
組込みシステム幅広い産業機器に搭載されているFPGAは、製造現場が抱えるさまざまな課題を解消に導くデバイスです。本記事では、FPGAの概要と注目される理由、FPGAと混同されやすい他の集積回路(IC)との違い、メリット・デメリットを解説します。ユースケースや活用の注意点も参考にしながら、自社のビジネス躍進に向けた一歩を踏み出しましょう。
目次
- 4)
- 5)
- 6)
- 7)
FPGAとは?
FPGAとはField Programmable Gate Arrayの略称であり、実際に使用するフィールド(現場)で、デバイスの外部から設計情報を書き込むことが可能な論理回路(ゲート)が集積されたデバイスを指します。通常の集積回路(IC)では、論理回路を製造後に変更できません。
一方、FPGAは、エンジニアが任意のプログラムを構成することで、内部の回路構造を何度も再構成できるのが特長です。このように、ハードウェアでありながらソフトウェア的な性質を有するため、目的に応じて使用する回路を増やしたり、不要な回路を減らしたりするなど、用途にあわせた仕様変更が容易に実行できます。
FPGAが注目される理由
FPGAの技術は、ディープラーニングが注目されるようになった2015年頃に多くのエンジニアから関心を集めるようになりました。FPGAは、プログラミングによって、必要な処理のみを実行させることが可能なため、CPUでは効率よく計算できないディープラーニングの並列計算に適しています。
FPGA上でディープラーニングを実装した場合、GPUと比較して消費電力が低く発熱が少ないことに加え、低遅延かつ省スペースでシステムを構築できます。そのため、低コストで高い性能が得られると多くのエンジニアから注目を集めるようになりました。また、製造後に回路を書き換えられるFPGAは、仕様変更に強い点でも高く評価されています。製品のライフサイクルを考慮した場合、部品の生産が終了しても新しいデバイスへ移植できるなど、多様なメリットを享受できると期待されています。
例えば、スマホやパソコンには汎用型CPUが使用されていますが、汎用型CPUは発熱やバッテリー消費が大きいため、これらを抑えなければならない小型IoT機器への搭載は困難です。一方、FPGAは、発熱や消費電力の面で優れており、低遅延でAIとの相性もよいことからエッジコンピューティングに適しています。このような利点から、多くの小型IoT機器にエッジデバイスとして組み込まれています。
将来的にIoTやAIの利用が増加すれば、FPGAの需要はますます高くなると考えられます。
FPGAと同一視されやすいICとの違い
CPU
CPUはCentral Processing Unitの略称であり、中央処理装置と訳されます。マイクロプロセッサ(MPU)と呼ばれることもあり、プログラムで内部の回路を動かして演算や制御、記録を実行する際に、行うべき処理を命令するICです。論理回路の組合せを変更するFPGAとは異なり、処理を行う命令の組合せ(プログラム)を変更して仕様変更に対応します。
並列処理を基本とし、CPUの核となるコア全体を使って処理を進めていくため、無駄な処理を実行しなければならず、処理速度は低下します。これに対してFPGAは、プログラムによって無駄のない並列処理を実行できるため、高速な処理が可能です。また、FPGAとCPUを比較した場合、FPGAのほうが低遅延かつ低消費電力です。
GPU
GPUとは、Graphics Processing Unitの頭文字をとったものであり、画像処理装置などと訳されます。GPUは高画質の画像描写に活用される半導体チップであり、これまで機械学習の分野で重要なICとして注目されてきました。
大量の並列計算を高速に実行できる優れた処理能力を有するため、ディープラーニングやビッグデータの処理に適しています。費用対効果の面では、FPGAよりもGPUが勝っていますが、低遅延かつ低消費電力といった点ではFPGAのほうが勝っています。
CPLD
CPLDは、Complex Programmable Logic Deviceの略称です。製品内のプログラムをあとから書き換えることが可能なICです。CPLDには、FPGAよりも安価というメリットがあります。CPLDとFPGAは仕様が似ているものの規模に大きな違いがあり、CPLDよりもFPGAのほうが10倍以上もの高い集積度を有しているため、より複雑な処理であったり、同じ処理であれば並列度を上げてより高速に処理を行うことを可能にします。
また、プログラミングしたデザインの保存先が、CPLDでは不揮発性メモリであるのに対し、FPGAでは揮発性メモリを基本とするのも異なる点です。
マイコン
マイコンは、家電など身近な電化製品に組み込まれることが多い汎用的な大規模集積回路(LSI)です。マイクロコントローラユニット(MCU)やマイクロプロセッサユニット(MPU)とも呼ばれています。動作周波数はFPGAとほぼ同等です。
しかし、マイコンでは順番にメモリ内のプログラムを読んで処理を実行し、1クロックサイクルごとに結果が出力されます。そのため、並列処理が可能なFPGAと比較した場合、すべての処理を終えるまでの時間は多くかかります。
DSP
DSPは、Digital Signal Processorの略称であり、デジタル信号処理専用のマイコンを指します。データ用と命令用でバスが分かれるDSPは、普通のマイコンと比べてメモリからのデータ転送を高速に行えます。ただし、あくまでもマイコンとなるため、逐次処理を基本とします。
ASIC
ASICは、Application Specific Integrated Circuitの略称です。製品やデバイスの用途などを考慮し、個別に設計される専用のICを指します。回路の論理設計、レイアウト・パターン設計、マスク制作などを行うため、開発に多くの製造コストを要します。開発後の回路の修正には対応していません。
ASSP
ASSPとは、Application Specific Standard Productの略称であり、特定の用途または分野のために設計された汎用的なICです。広義ではASICの一種とされるものの、狭義では若干の違いが生じます。ASICは、特定の顧客に向けてカスタムされたICです。一方、ASSPは、顧客ではなく特定された用途に対して汎用的に使用できるICです。
FPGAのメリットとデメリット
FPGAは、その汎用性の高さから多様な製品に活用できると注目を浴びています。代表的なメリットとして、演算性能の高さや消費電力が比較的少ないことが挙げられます。また、発熱のおそれが少ないことや、低遅延、高速転送が可能な点にも注目したいところです。一方で、プログラミングや構成の難易度をハードルに感じる技術者も少なくないようです。
以下に、FPGAと他のICを比較した際のメリットとデメリットの詳しい内容をまとめました。
SW処理系デバイスとの比較 CPU/GPU/マイコン/DSP
CPU、GPU、マイコン、DSPといったソフトウェア(SW)処理系デバイスとFPGAを比較したとき、もっとも大きなメリットとされるのが低遅延です。ダイレクトにデータソースを扱えるFPGAは、汎用バスを経由する必要がありません。また、ソフトウェア処理系デバイスでは、割込みなど他の処理の影響を受けて不測の遅延が生じて"最悪実行時間"の見積もりが難しいのに対し、あらかじめ組み込まれたロジックによって、処理速度が一定であり、最悪実行時間を設計可能であることもFPGAの特徴です。
そのため、ソフトウェア系デバイスで処理の遅延にお困りの場合には、対象となる処理をFPGAで実行するようにシステム設計を変更して対策を行うことが可能です。
さらにFPGAは、並列処理が多いアルゴリズムに適正していることから、ディープラーニングを用いたファクトリー・オートメーション(FA)における表面状態の高速検査など、高速な処理が求められるシーンでの活用に適しています。
一方で、プログラミング難易度の高さがデメリットとして挙げられます。FPGAの開発には、ハードウェア記述言語(HDL)もしくはハードウェアロジックを自動生成する高位合成の知識が求められるため、他のSW処理系デバイスと比較した場合、開発にはより高度な知識と技術が必要です。
同じHW系デバイスとの比較 CPLD/ASIC/ASSP
CPLD、ASIC、ASSPなどのハードウェア(HW)系デバイスとFPGAを比べると、FPGAとCPLDは出荷後にフィールドで回路を書き換えられますが、その他のデバイスは出荷後の仕様に対応していません。FPGAとCPLDの違いは規模と価格です。FPGAのほうが高価格であり、より複雑な論理回路を構成できます。
ASIC、ASSP、FPGAからデバイスを選定する際のポイントも押さえておきましょう。出荷量が多い製品であれば大量生産でコストが下げられるASIC、それほど多くの出荷量は見込めないものの、用途が限定されているのならASSP、それ以外のケースではFPGAが適しています。
柔軟性に優れたFPGAは、自由に回路を書き換えられるため、特にアルゴリズムや処理内容が確定していない試作段階での利用に最適です。ディープラーニングで使用されるニューラルネットワークは、並列処理の塊で構成されているためHW実装が適しています。
それぞれの特徴を活かしてAIの高速演算処理を行うAIチップをFPGAで開発し、それをASICに置き換えて出荷する方法もあります。ただし、チップのASIC化はコストと消費電力の低減が期待できますが、膨大な開発コストが必要となるためどちらがよいとは言い切れません。
FPGAのユースケース
FPGAは、比較的高額で製品としての出荷量は少ない製品ですが、非常に有用なデバイスです。FPGAは、画像、音声、振動といった入力データを100ms未満の低遅延で処理し、制御対象となり得るモータ、スイッチ、映像、音を制御するため、さまざまな機器に組み込んで利用できます。
FPGAは、ハードウェアを並列化するハードウェアパイプラインという手法を用いて、TCP/IP関連処理の大部分をCPUの代わりに実行することが可能です。また、自動車関連では、先進運転支援システム(ADAS)や情報と娯楽を一体化させるインフォテインメントの分野でFPGAが活用されています。
さらに、インダストリアルオートメーションシステムの構築、高速画像処理、低遅延の高性能通信ソリューション、暗号化による情報保護にもFPGAが活用されています。
FPGA活用の注意点
上述したように、FPGAには設計と開発が難しいというデメリットがあるため、企業内で扱うには相応の技術レベルを有した人材が必要です。自社でFPGAの活用を検討するのであれば、まずは社外の有識者に相談するのも有効な手段です。
「NECソリューションイノベータ」では、LSI設計に関するノウハウと技術を豊富に有しています。これまでの経験で得た知識をもとに、企業が抱える課題を解決に導くため、FPGAの設計と開発サポートを提供しています。遅延が大きいため処理が間に合わないなど、既存製品または新製品の性能に関する課題を抱えている方は、ぜひ検討してみてください。
まとめ
FPGAには、汎用性や演算性能に優れ、消費電力が比較的少ないなどの特性があります。また、低発熱、低遅延、製造後も再構成できるなどさまざまなメリットがあり、注目度の高いLSIです。ただし、FPGAのプログラミングは難易度が高いため、相応の技術力がなければ扱いきれません。自社製品にFPGAの組込みを検討しているのであれば、有識者に相談するのが得策です。
ビジネスの発展に向けて、ぜひ実績の豊富な「NECソリューションイノベータ」へ相談してみてください。