CPUとGPUが主流のハードウェア市場を席巻しているため、より特殊なアプリケーションで使用されている他のコンピューティングパラダイムがあることを忘れがちです。例えば、フィールドプログラマブルゲートアレイ(FPGA)を例に挙げてみましょう。

FPGAとASIC
CPUとASIC(特定用途向け集積回路)は、コンピューティング分野において正反対の2つの存在です。その名の通り、ASICは特定のアルゴリズムを実行するためにハードワイヤードされたシリコンチップです。特定の用途に特化しているため、ASICは最高速かつ最も効率的なチップと言えるでしょう。しかし、その一方で、他のアルゴリズムを実行する柔軟性には欠けています。一方、CPUはあらゆるソフトウェアを実行できるように自由にプログラムできます。
FPGAはこれら2つの極端な例の中間に位置します。FPGAの中核は、数百万個のいわゆるロジックエレメント(LE)またはゲートアレイで構成されており、FPGAの名前の最後の部分はゲートアレイを指しています。ロジックエレメントとは、あらゆる入力の組み合わせに対する出力を格納するルックアップテーブル(LUTまたは真理値表とも呼ばれます)です。例えば、2ビットのLUTは、00、01、10、11という4つの異なる入力を持つことができます。ルックアップテーブルは、それぞれの入力に対してブール関数がどのように評価されるか(真または偽)を示します。簡単に言えば、FPGAは汎用CPUのように命令をフェッチ、デコード、実行する代わりに、答えを検索します。
これらのロジックエレメント(ゲートアレイとも呼ばれる)は、フィールドでいつでもプログラム(再構成)できます。これが「フィールドプログラマブル」という名称の由来です。つまり、アルゴリズムを更新したり、FPGAを全く異なるアプリケーション向けに迅速に再利用したりすることが可能になります。このプログラマビリティにより、ハードワイヤードASICと比較して、市場投入までの時間も大幅に短縮されます。
まとめると、FPGAはアルゴリズムに合わせて最適化できるため、高速かつ効率的であり、プログラマビリティにより高い柔軟性を備えています。ハイエンドFPGAには、前述の論理素子が数百万個搭載されています。
FPGA は何に使用されますか?

FPGAはあらゆる用途に使用されています。スマートフォン、自動運転車、カメラやディスプレイ、ビデオ・画像処理、セキュリティシステムといった民生用電子機器をはじめ、サーバーなどの商用用途や、航空宇宙・防衛、医療用電子機器、分散型金融システムといった様々な垂直市場にも利用されています。
FPGA内のその他のIP
FPGAには、LEとレジスタ(メモリ)以外にも、多数のハードウェアブロックが搭載されています。多くのアプリケーションで数値演算能力が求められるため、ハイエンドFPGAは数千個のDSP(デジタル信号プロセッサ)を搭載することで、高い浮動小数点演算性能と整数演算性能を実現し、FLOPS(フロップス)においてGPUに匹敵、あるいは凌駕する性能を実現しています。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
FPGAはデータを処理するだけでなく、大量のデータを転送する役割も担っており、そのためにトランシーバーを内蔵しています。Intelの最高性能のFPGAは、EMIB(Embedded Multi-Die Interconnect Bridge)パッケージング技術を介して接続された144個の58Gトランシーバーから8Tbpsの帯域幅を提供します。
最後に、FPGAにはハードIP(知的財産)も含まれています。例えば、PCIe インターフェースや Arm CPUの演算コアなどを搭載できます。
この記事はTom's Hardware 用語集の一部です。
さらに詳しく読む:
- CPU購入ガイド
- デスクトップアプリケーションに最適なCPU
- 最高のゲーミングCPU
- 最も安価なCPUをテストしてランキング
- CPU階層:IntelとAMDのプロセッサの順位