FPGAとは?マイコン・CPUとの違いやできること・使用例をわかりやすく説明
身の回りのあらゆる製品がデジタル化され、やり取りされるデータ量も増加の一途をたどっている近年、高速処理を実現する汎用性の高い半導体集積回路(IC)である、「FPGA」が注目されています。現代における新製品やソリューション開発の品質向上に貢献する、FPGAとはどのようなICなのでしょうか?
本記事では、製品設計や機電エンジニアリングにも深くかかわっているFPGAが注目されている背景や、具体的な用途や特徴などについて解説します。
POINT
- FPGAは、使用用途に合わせ回路を自由に組み合わせられる、汎用性の高い集積回路である
- CPUやGPUと比較しても高速処理が可能で、自動運転技術などに活用されている
- 活用には高度な知見が求められることから、FPGAに対応できる人材のニーズは今後高まっていくと予測される
Contents
FPGAとは
FPGA(Field-Programmable Gate Array)とは、わかりやすく説明すると設計者が現場でプログラムできる集積回路(IC)です。
FPGAにはあらかじめ回路が用意されています。使用用途に合わせ、回路を自由に組み合わせられることが特徴です。つまりFPGAとは、ハードウェアでありながらも、ソフトウェアのように内部の回路構成を自由にプログラムできるICということです。
なお、FPGAが注目されている背景には、「限界を迎えた」ともささやかれる「ムーアの法則」も関連しています。
ムーアの法則とは、「半導体集積回路の集積率は18ヶ月(または24ヶ月)で2倍になる」という、インテル社を創業したメンバーの一人であるゴードン・ムーア氏が1965年に提唱したものです。
それから約50年の長きにわたり、半導体業界の指針となってきたムーアの法則ですが、集積回路の微細化に限界が見えてきた現在において、コンピューターの性能向上を実現する次なる方法のひとつとして、FPGAに注目が集まっているのです。
マイコンとの違い
マイコン(マイクロコントローラーユニット:MCU/マイクロプロセッサユニット:MPU)とは、電気機器を制御するための演算用LSIです。機器の制御やセンサー信号の処理、通信、画面表示などの処理を実行できます。
メモリ内のプログラムを「順番に」読み込み、処理を実行するマイコンは汎用性が高く、一般的な家電製品から自動車まで、さまざまな電気製品に用いられています。並列処理を実行できるFPGAと比較すると、処理を終えるまでの時間が長くなることが特徴です。
CPUとの違い
CPU(Central Processing Unit)とは、パソコンなどにおける「頭脳」の役割を担う、周辺機器やソフトウェアからの指示の処理や、メモリの制御などを実行するプロセッサです。日本語では「中央演算処理装置」と訳されます。
CPUとFPGAは、さまざまな種類の回路がはじめから組み込まれている点においては類似しています。ただしCPUは回路構成が定められており、FPGAのように自由に組み替えることはできません。
また、CPUでは必要な機器に必要な回路を搭載するため、FPGAと比較して柔軟性は低くなります。
GPUとの違い
GPU(Graphics Processing Unit)とは、主に画像処理を行うための装置です。
GPUは画像や映像をできるだけ迅速かつ美しくモニターに映し出すために必要な計算を処理しています。また、並列処理能力に優れており、ビッグデータのような大量のデータを計算する処理にも用いられています。
GPUが画像処理を主な目的として使用されるのに対し、FPGAはどのような用途にも利用できます。
ASICとの違い
ASIC(Application Specific Integrated Circuit)とは、特定のアプリケーションに最適化され設計・製造されたICのことです。特定の機器や用途に対して、必要な機能を組み合わせて設計・製造されるため、個別のタスクにおいては高速処理がなされる特徴があります。
ただしFPGAとは異なり、一度設計されたASICはその後に処理内容を変更できません。
FPGAの用途やできること
FPGAは、液晶パネルや通信機器、メモリカード、パソコンなど、さまざまな電子機器に採用されています。音声や映像、振動などの入力データの低遅延処理が可能であることから、スイッチや音、映像を制御するために各種機器に組み込まれているのです。
たとえば、自動車の先進運転支援システム(ADAS)においては、情報とエンターテインメントを一体化させる「インフォテインメント」の分野や、自動ブレーキシステムに活用されています。
従来、自動ブレーキシステムにはASICが用いられていました。しかし、ADASの開発スピードの速さから、設計・製造に数年単位を要するASICでは対応しきれない状況となり、FPGAが活用されるようになった経緯があります。
そのほか、液晶テレビや低遅延の高性能通信ソリューションなどにもFPGAが用いられています。
液晶テレビにおいては、製品の高機能化や開発期間の短縮を目的にFPGAが導入されています。表示する映像の画質にかかわる画像処理性能は、競合優位性を高めるためにも重要な部分です。FPGAを用いることで、画像処理能力の向上やデータ伝送の高速化を図れます。
FPGAが注目される背景
FPGAが注目される背景には、ビッグデータ活用への需要が高まっていること、そしてAIの発展や通信量の増大が関係しています。
ビッグデータの領域では、大量のデータを収集して並べ替え、解析して、必要なときに必要な情報を引き出す処理を高速に実行することが求められます。FPGAは、この一連の処理を高速化できることから、ビッグデータ処理においてFPGAが新たなソリューションの開発に役立つと着目されているのです。
AI開発においては、開発時に回路を自由に書き換えられること、開発コストを抑えられること、そしてCPUよりも効率的にディープラーニングの並列計算を実行できることからFPGAが注目されています。ディープラーニングに活用されているGPUと比較しても、低遅延かつ省スペースでシステムを構築できることもFPGAの特徴です。
通信に関する機器においては、通信量が増加するなかでも低遅延でデータの送受信が可能であることからFPGAが活用されるケースが増えています。
FPGAのメリット
FPGAには、主に次のようなメリットがあります。
- 汎用性が高い
- 効率性が高い
- 開発・設計期間が短い
- コストが比較的安い
FPGAは回路の書き換えが可能であることから汎用性が高く、さまざまな機器に利用できます。また並列計算による高効率な処理や、開発・設計期間が比較的短期であること、コストが比較的抑えられるなどのメリットもあります。
汎用性が高い
FPGAは、あらかじめ組み込まれた数多くの回路を組み合わせることで、さまざまな用途に利用できるICです。特定の用途に最適化されたASICとは異なり、開発後に回路の組み合わせを変更して別の用途に使用することもできます。
たとえば、データセンターで通信処理を行わせるためにFPGAを導入したあと、蓄積したデータを分析するための構成に変更することも可能です。
このように、導入後もさまざまな用途に応じた構成に順応できるFPGAは、用途ごとに機器を切り替えるコストの低減にも貢献します。
効率性が高い
FPGAは、必要な処理だけをプログラムすることで無駄のない並列処理を可能とします。たとえばCPUの場合、マルチコアによる並列処理自体はできるものの、コア全体を使用するために不要な部分でも並列化処理が行われることから、FPGAと比較して効率が悪くなってしまうことがあります。
このFPGAの効率性の高さは、ビッグデータ分析にも役立てられています。FPGAの活用で、ビッグデータの高速分析を多数のサーバを使わずに実現することも可能です。
開発・設計期間が短い
FPGAは現場でプログラムできるICのため、特にASICと比較して開発・設計にかかる期間を大幅に短縮できます。
また、製品開発においては、ひとつのFPGAをテスト用に用意し、プログラムを書き換えながら試作できることも利点です。工場試験場においても、電子モノづくり支援のために、FPGAが搭載されたツールが利用されています。
近年、市場ニーズは多様化し、その移り変わりも激しい傾向にあります。FPGAを用いて開発・設計期間を短縮できれば、状況に応じながら各種製品を提供できるようになるでしょう。
コストが比較的安い
FPGAそのものの単価は高い傾向にあります。しかし、導入から活用までにかかる大枠のコストを圧縮できることから、他ICよりもトータルでかかる費用が比較的安くなることは利点です。
また、少量多品種の製品を開発するケースや、のちに機能を追加する場合、あるいは用途の変更があった場合でもコストをかけずに対応できるメリットもあります。
FPGAのデメリット
一方で、FPGAには次のような課題も指摘されています。
- プログラミングの難易度が高い
- 消費電力が大きい
プログラミングの難易度が高い
FPGAのプログラミングにはハードウェア記述言語(HDL)を用いることから、CPUやGPUと比較しても難易度は高いです。
また、プログラミングの難易度の高さは、対応する人材の確保の難しさにも発展します。FPGAを用いた開発ニーズの高まりにより、必要な機能に対して最適な回路を設計できる高度人材の不足も懸念されるでしょう。
消費電力が大きい
FPGAは、他ICと比較して消費電力が大きくなるものが多くあります。加えて、回路構成によって消費電力が大きく異なることも注意点です。消費電力が大きくなれば、機器使用時のコストが増すだけでなく、熱対策も必要になります。
また、複数のパストランジスタを用いる場合、接続経路に抵抗成分が生じてしまい、従来型の設計の回路よりも低速になる可能性があることもデメリットとして指摘されています。
- FPGAは設計者が現場でプログラムできる集積回路(IC)
- 汎用性が高く、CPUやGPUと比較しても高速処理が可能
- 自動運転技術やAI技術など、最新テクノロジーに活用されている
- 活用には高度な知見が求められることから、FPGAに対応できる人材の不足が懸念される
- FPGAに対応できる人材のニーズは今後高まっていくと予測される