開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

  • 会員限定
  • 2020/03/03

「FPGA」をわかりやすく解説、CPUやASICとどう違うのか

FPGAは、通信機器やデータセンター、産業機器から家電にまで搭載される集積回路(IC)の一種です。約40年前から存在する技術ですが、通信量の肥大化、ビッグデータの活用、AIの登場、さらにFPGA自体の性能向上に伴い需要が高まり近年市場が拡大しています。ほかの集積回路と比較しつつ、わかりやすく解説していきます。

フリーライター 三津村直貴

フリーライター 三津村直貴

合同会社Noteip代表。ライター。米国の大学でコンピューターサイエンスを専攻し、卒業後は国内の一部上場企業でIT関連製品の企画・マーケティングなどに従事。退職後はライターとして書籍や記事の執筆、WEBコンテンツの制作に関わっている。人工知能の他に科学・IT・軍事・医療関連のトピックを扱っており、研究機関・大学における研究支援活動も行っている。著書『近未来のコア・テクノロジー(翔泳社)』『図解これだけは知っておきたいAIビジネス入門(成美堂)』、執筆協力『マンガでわかる人工知能(池田書店)』など。

画像
最新技術に活用されるFPGA、その特徴を明らかにする
(Photo/Getty Images)


FPGAとは何か、“ビュッフェスタイル”のIC?

 FPGAは「Field-Programmable Gate Array」の略です。一言で言うなら「現場でプログラムできる集積回路(IC)」といったところでしょうか。集積回路なのでモノとしてはハードウェアなのですが、内部の回路構成を自由にプログラムできるのでソフトウェア的な性質もあるのが特徴です。

 回路をプログラムできると聞くと不思議に思われるかもしれませんが、厳密に言えば「あらかじめ回路が用意してあり、その組み合わせを自由に設定できる」という表現が正確かもしれません。タスクに合わせて使用する回路を選び、使わない回路を省くことで、用途にあったむだのないICを用意できます。

 たとえるなら、並んでいる料理から好きなものを皿にとる「ビュッフェスタイル」の集積回路とでも言うべきでしょうか。欲しいものが欲しいときに使えるようになる。そんな集積回路なのです。

FPGAはCPUやASICとどう違うのか

 ではこのFPGA、ほかのタイプの集積回路とどう違うのでしょうか?たとえば私たちになじみ深い集積回路と言えば「CPU+メモリ」を搭載したモデルです。さまざまな種類の回路が最初から詰め込んである点では、CPUとFPGAは似ています。

 ただし、CPUの回路の構成は最初から決まっていて変更はできません。代わりにメモリ内に実行プログラムを入れておいて、CPUの回路を使って自由に計算を行います。CPUの回路は汎用(はんよう)性に特化した作りになっているのでメモリに入れたプログラム通りに何でもやってくれます。

 一方で、回路の作りが決まっているので苦手な作業だと時間がかかったり、簡単な作業だと使われない回路が大量に発生したりするのでむだが多くなります。

 いわば、豪華なコース料理のようなもの。次から次へと料理の載った皿がテーブルへ運ばれきますが、本当に食べたい料理がなかなか出てこなかったり、食べきれなかったり……といったイメージをしてもらうと良いと思います。パワフルですが、非効率なのです。

 他方、最初に注文を決めてシェフに欲しい料理を作ってもらう方式の集積回路もあります。これは「ASIC(Application Specific Integrated Circuit)」と呼ばれる、ユーザーのニーズに合わせて回路を構成する特注型の集積回路です。最初から必要な回路が必要な形でピッタリ作られるのでむだがありません。

 オーダーメードなのでFPGAに比べて柔軟性に欠けるものの、必要な回路構成に合わせて無駄なく回路が作られるので量産する場合にはコストが下がりますし、FPGAに比べて高速です。

 しかし、最初から回路が作られているので、実際に料理が来てから「これじゃなかった」となった場合には注文し直さなければなりません。必要な設計が決まっていない場合には、コストがかかってしまうことがあります。何が欲しいのかはっきりしていて、大量注文することが決まってる場合に使う方式です。

FPGAのニーズが高まっている理由

 FPGAとASICは特定のタスクに合わせて回路を構成できるカスタム型の集積回路で、CPUはどんなタスクでもこなせる汎用型の集積回路ということはご説明したとおりです。ただ、CPUで何でもできるというのであれば、CPUで良いのではないかと思われるかもしれません。

 実際、製造時点でどんな作業をさせられるかわからないコンピュータやスマホはすべて汎用型であるCPUが使われていますし、汎用性の必要ない一部の産業製品や家電製品でもCPUで事足りる場合はCPUが使われることも多々あります。汎用性の高い集積回路は明らかに使い勝手が良いのです。

 しかし、高い性能が要求されたり、消費電力や発熱を抑えたかったり、コストパフォーマンスを高めたいという場合には専用モデルの集積回路が使われます。特に通信に関わるネットワーク接続やデータ処理に関する機器の集積回路にはFPGAやASICが使われるのが一般的です。通信では少しの遅延も許されませんし、通信量も年々増加しているため処理するデータ量も膨大です。より高性能なCPUを用意することもできますが、カスタム型の集積回路を活用する方が効果的でしょう。

 また、IoT機器のような小型の通信機器に搭載する場合には発熱やバッテリー消費も最小化しなければならないため、汎用型の集積回路では力不足となります。

 CPUが苦手とする「並列計算」にもカスタム型は有用です。カスタム可能な回路構成を並列向けに組み替えればCPU以上の並列計算が可能になりますし、並列計算を得意とするGPUと違って複雑な処理を行う場合にも最適な回路構成を選択できるため、さまざまな要求に対して最高のパフォーマンスで応えることができます。

 こうした特性から、近年ではビッグデータのデータ処理やディープラーニング向けの並列計算等にFPGAやASICが使われるようになりました。FPGAのニーズが高まってきた背景から、FPGAにCPUの特性を組み合わせたような汎用性の高い製品も登場しています。

 こうした高性能なFPGAを使えば、導入当初はデータセンターとして通信処理を任せつつ、データがたまってきたら分析に特化した構成に変更し、分析が終わったら人工知能のサポートをさせるといった柔軟な使い方もできるようになります。パフォーマンス不足のCPUでゴリ押しする必要もなく、作業に合わせて機器をその都度レンタルする必要もありません。

【次ページ】FPGA、CPU、ASICを表1枚で比較、FPGAaaSも登場

お勧め記事

ビッグデータ ジャンルのトピックス

ビッグデータ ジャンルのIT導入支援情報

PR

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!