FPGAの応用領域が拡大,ビッグ・データや金融取引,Webデータ処理のインフラ技術に
●特定用途のための特別なLSIから汎用コンポーネントへ
ここまで,IT系システムの中心的な処理をFPGA上のハードウェア・ロジックとして構成する事例を紹介しました.従来,FPGAは特定の処理を高速化する演算コンポーネントとして利用されることが多かったのですが,このような従来の使い方とは明らかに異なります.
FPGAのシリコン上の回路構成は,非常に規則正しい構造になっています.そのためFPGAには,製造プロセスの進化の恩恵を比較的享受しやすい,というメリットがあります.例えば2013年2月25日には,FPGA大手の米国Altera社が次世代FPGAの製造について,米国Intel社の14nmプロセスを利用するという発表がありました.今後もFPGAは最先端の微細化と低消費電力化という方向で進化を続け,応用領域が広がっていくと考えられます.
ただし,FPGAがより多くの応用領域で利用可能となるためには,設計手法のパラダイムシフトが必要になると考えています.一般にFPGAの開発には,VHDLやVerilog HDLといったハードウェア記述言語のRTL(Register Transfer Level)記述が用いられるのですが,複雑なアルゴリズム処理をRTLの抽象度で記述することには問題があります.設計者にハードウェアの知識が必要であり,かつ繁雑で手間がかかります.時にはバグの温床となることもあります.そのため,複雑なアルゴリズム処理をFPGAで実現するためには,RTLの回路構造を記述するのではなく,一般のソフトウェア・プログラムと同じようにアルゴリズムやデータ構造を記述することが必要になると考えられます.
こうした背景から,C/C++言語などの高級言語を用いてハードウェア設計を可能にする高位合成(ビヘイビア合成)ツールの研究開発が進められてきました.例えば,FPGA大手の米国Xilinx社は「AutoESL」という高位合成ツールの提供を開始しています.
新しい動きとして,よりモダンな言語をベースとした高位合成ツールの研究開発も進んでいます.例えばIBM社のLimeプロジェクトでは,Javaを拡張した言語によってCPUやGPU(Graphics Processing Unit),FPGAを統合的に取り扱える処理系を開発しています.また筆者らも,Javaで記述したプログラムをFPGA上の回路に変換する「JavaRock」という設計環境を開発しています.うまくいけば,コンピュータ上のソフトウェアとして動作確認したプログラムを,そのままFPGA上に展開できる時代が来るかもしれません(図4).
図4 FPGA開発フローの現在と将来
(a) 現在のフロー(論理機能の検証が中心)
(b) 将来のフロー(ソフトウェア検証が必要に)
このような開発環境が実現されたとき,システム設計者から見ると,FPGAはプロセッサと同類の「ソフトウェアを実行する環境」と見なされるようになることでしょう.そして,FPGAは特定用途のための特別なLSIではなく,どこでもだれでも使える,高性能なコンピュータ・システムを実現する汎用コンポーネントに変わっていく,と考えています.
●参考URL
(1) IBM社;IBN Netezzaデータウェアハウス・アプライアンス.
(2) Maxeler Technologies社のWebサイト.
(3) イーツリーズ・ジャパンのWebサイト.
ふなだ・さとし
(株)イーツリーズ・ジャパン