• 会員限定
  • 2020/03/03 掲載

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

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
  • icon-close-snsbtns
会員になると、いいね!でマイページに保存できます。
FPGAは、通信機器やデータセンター、産業機器から家電にまで搭載される集積回路(IC)の一種です。約40年前から存在する技術ですが、通信量の肥大化、ビッグデータの活用、AIの登場、さらにFPGA自体の性能向上に伴い需要が高まり近年市場が拡大しています。ほかの集積回路と比較しつつ、わかりやすく解説していきます。
画像
最新技術に活用される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も登場
関連タグ タグをフォローすると最新情報が表示されます

関連コンテンツ

あなたの投稿

    PR

    PR

    PR

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます