【前へ】

第3章 ハイエンドコンピューティング研究開発の動向

3.2 アーキテクチャ&新計算モデル

3.2.1 粗粒度 Reconfigurable Deviceの挑戦

天野 英晴 委員

1. はじめに
 
リコンフィギャブルコンピューティング(Reconfigurable Computing)とは、解法アルゴリズムを、書き換え可能なIC(FPGA,CPLD)上で直接ハードウェア化して実行する方式である[1][2]。専用システムの高速性と書き換え可能な柔軟性を併せ持つ方式として、1990年代はじめから研究が続けられてきた。しかし、数値演算、データアクセスの高速性、規模の限界、プログラミング環境等様々な面で問題があり、商用システムとして一般的に使われるに至らなかった。
 しかし、2000年代に入ってから、FPGA、CPLDの大容量化、高性能化が進むと共にChameleon[3]などの専用チップが登場したことにより、通信処理をはじめとする一部のアプリケーションで一定の地位を確立するに至った。そして2002年には、NECのDRP[4]、QuicksilverのACM[5]、IPFlexのDNAチップ[6]など新しいリコンフィギャブルコンピューティング専用チップが発表され、話題になっている。これらのチップは、動作中に高速に構成を変更する動的再構成機能(Dynamic Reconfigurable)を持つ他、粗粒度構成、C言語ベースの設計環境などの共通の特徴を持つ。
 Reconfigurable Systemについては、1998年度の報告書[7]、2001年度の報告書[8]に、その概観と将来予測について述べたが、今回はこれらの新しいデバイスを紹介し、その特徴と将来予測を述べる。

2. Reconfigurable Systemの概観
 
書き換え可能なデバイスは、ユーザが手元でプログラミングするデバイスであり、90年代に入って、システムをまるごと実装可能な規模のFPGA(Field Programmable Gate Array)あるいはCPLD(Complex Programmable Logic Device)が登場するに至った。このうち、内部の配線データ(Configuration Data)をSRAMに格納するタイプが特に発展し、100MHz近い周波数で動作する高速性、100万ゲートを越える実装密度、RAMや演算器、コアCPUを内蔵するものも登場し、ASICに代わってシステムインテグレーションの主役の座についている。
 これらのFPGAやCPLDは、配線データを入れ換えることにより、電源を入れたままでハードウェア構成を変えることができる。この性質を利用し、状況に応じてハードウェア構成を変化させたり、解法アルゴリズムを直接ハードウェア化させることのできるシステムをReconfigurable System(可変構造システム)あるいはCustom Computing Machine:CCM(直接解法マシン)と呼ぶ。
 初期のReconfigurable Systemは、汎用のFPGAやCPLDを用いて構成され、独立動作を行なうスタンドアローン型と、汎用CPUとの分散協調動作を目的とするコプロセッサ型に分けられる。これらの比較的古典的なシステムについてのサーベイは、2000年度の報告書[9]を参照されたい。しかし、これらの古典的なシステムには、以下の問題点があった。

a) FPGAによる演算処理は、IEEE浮動小数点演算を実行する場合、専用の高速プロセッサやDSPに比べて10倍程度遅い。また、チップ面積は専用チップの10倍必要である。

b) FPGAは、メモリとの接続が脆弱で、大量のデータを扱うアプリケーションでは汎用プロセッサに比べ不利である。

c) 構成の変更に時間がかかる。このため、解ける問題のサイズがFPGAで実現できるサイズを越えるとお手上げになってしまう。

d) プログラミングが困難である。またプログラム=構成情報の生成に時間がかかる。

2002年に登場した新しいデバイスは、これらの問題点の本質的な解決を目指している。以下、個々のデバイスを簡単に紹介する。

3. 新しいReconfigurable Device
 
表1に今回紹介する新しいデバイスを一覧する。このうちNECのDRPは、筆者らが実際に研究で用いているため、詳細まで記述してあるが、他は文献やwebに基づくもので、対象によっては情報が多くない。

表1 最近の粗粒度Reconfigurable Device

名称

製造

構成要素

接続

再構成

プログラム

DRP

NEC

8bit FF/DMU

/ALU

格子状バス

16セットのMulticontext

1clockで切り替え

Cyber-C

DNA Matrix

IP Flex

32bit ALU

格子状バス

Configuration RAMより1clockでセット

C

Matlab

Xpp

PACT Informations technologie

32bit ALU

階層型格子状バス

Partial Configuration

Xpp C

NML

ACM

Quicksilver

異種類PE

H-Tree

Configuration RAMより1clockでセット

C

PipeRench

CMU

8bit PE

直線構造

ストライプを1クロックで切り替え

C他

 これらのデバイスは、いずれも数十ゲート相当の基本構成要素から成る細粒度のFPGA、CPLDに比べ、8bit-32bitの演算器レベルが基本構成要素である。すなわち、粗粒度のReconfigurable Deviceである。粗粒度にすることにより、専用の高速プロセッサやDSPに迫る演算性能を得ることができ、a)の問題を解決する。
 また、分散した内蔵RAMとの結合を密にすること、もっぱらストリームデータ処理に特化することで、b)の問題を解決する。さらに粗粒度にすることで、構成情報の量を減らすことができることから、構成の変更に要する時間を削減できる。このことで、1クロックあるいは数マイクロ秒の時間で動的に再構成を行なうことを可能としている。動作中に短時間で再構成を行なうことにより、c)のサイズの制約を突破し、新しい応用分野を広げることができる。また、プログラムは粗粒度の演算器間のデータフローに帰着されるため、比較的容易にCなどの高級言語からの生成が可能であり、このことによりd)の問題点を解決する。最後に、これらのデバイスで最もポイントになるのは、並列処理による性能向上である。以下、それぞれのデバイスを簡単に紹介する。

【次へ】