FPGAの解説(基本情報技術者シラバス用語)

目次

FPGAとは

FPGA(Field Programmable Gate Array)とは、製造後に購入者や開発者が、内部の論理回路の構成を自由に書き換える(再構成する)ことができる半導体集積回路(LSIチップ)のことです。「Field Programmable(現場で書き換え可能)」の名の通り、設計ミスがあっても後から配線を修正でき、新しい機能を追加することも可能です。一般的なCPUのようにプログラムを順番に実行するのではないため、特定の処理を極めて高速かつ省電力で実行できる強みがあります。

具体例

  • 画像処理やAIの加速(アクセラレータ):データセンターや工場検査用カメラにおいて、複雑な画像認識アルゴリズムを実行するための専用回路をFPGA上に作成します。これにより、汎用的なCPUでプログラムを走らせるよりも何倍も高速に画像を処理できます。
  • 試作品の開発:新しい家電製品や通信機器を開発する際、いきなり修正の効かない専用のICチップ(ASIC)を製造すると莫大なコストがかかるため、まずはFPGAを使って回路を組み立てて動作確認(プロトタイピング)を行います。

もう少し詳しく

一般的な半導体チップ(例えばインテルやAMDのCPU)は、製造工場で回路が焼き付けられた後は、物理的な回路構成を変更することは一切できません。ソフトウェア(プログラム)を入れ替えることで様々な用途に使うことはできますが、どんな処理をするにも「メモリから命令を読み出して順番に実行する」という汎用的な仕組みを通るため、特定の重い処理(AIの計算や動画の暗号化など)を行わせると非効率になることがあります。

一方、FPGAは「何にでもなれる白紙のキャンバス」のようなチップです。チップの中には無数の細かい「論理ブロック(論理回路の小さな塊)」と、それらを結ぶ「配線スイッチ」が敷き詰められています。開発者はハードウェア記述言語(HDL)という特殊な言語を使って「どのような回路を作りたいか」を設計し、その設計データをFPGAに流し込みます。すると、チップ内部の配線スイッチが物理的に切り替わり、目的の機能を持った専用のハードウェア回路が瞬時に出来上がります。

特定の用途に完全に特化した専用ICを「ASIC(エーシック)」と呼びます。ASICは極めて高速で大量生産に向いていますが、一度作ると修正できず、初期開発費が数億円かかることもあります。FPGAは、ASICの「処理が高速である」というハードウェア的メリットと、CPUの「後から機能を変更できる」というソフトウェア的メリットの中間に位置する存在です。近年では、クラウドサーバーの中にFPGAを大量に配置し、通信の暗号化処理やAIのディープラーニングなどの重い処理を、CPUの代わりに高速に実行させる「ハードウェアアクセラレーション」用途で大活躍しています。

試験でのポイント

ITパスポートや基本情報技術者試験では、FPGAの「現場で書き換え可能」という最大の特徴と、他のIC(ASICなど)との違いが問われます。

以下のポイントを押さえておくと得点源になります。

  • 名称の意味:「Field(現場で)」「Programmable(プログラム・書き換え可能な)」「Gate Array(論理回路の配列)」の略であることを理解しておけば、機能の推測が容易になります。
  • 再構成可能であること:「製造後に、ユーザーの側で内部の論理回路を自由に書き換えることができる集積回路」という説明文が出たら、答えはFPGAです。
  • ASICとの違い:特定用途向けに製造時から回路が固定されており書き換えができない専用チップ「ASIC(特定用途向け集積回路)」との対比がよく出題されます。プロトタイプ(試作)開発にはFPGAを使い、大量生産フェーズに入るとコストの安いASICに切り替える、という開発の流れも重要です。
  • 用途:ソフトウェアで処理すると遅いものを、ハードウェア回路化して高速化する(アクセラレータ)用途で使われる点も覚えておきましょう。

関連する用語

関連する用語として、FPGAの内部に構成される基本要素である論理回路、FPGAと対比される書き換え不可の専用回路ASIC、特定の機能を実現するために機器に組み込まれる組込みシステムなどがあります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ