【前へ】

3.2 ハードウェア/アーキテクチャ関連

 3.2.1 実用化が進むリコンフィギャブルコンピューティング

天野英晴委員

1.はじめに
 
リコンフィギャブルコンピューティング(Reconfigurable Computing)とは、解法アルゴリズムを、書き換え可能なIC(FPGA,CPLD)上で直接ハードウェア化して実行する方式である[1][2][3]。専用システムの高速性と書き換え可能な柔軟性を併せ持つ方式として、1990年代はじめから研究が続けられてきた。しかし、数値演算、データアクセスの高速性、規模の限界、プログラミング環境等様々な面で問題があり、商用システムとして一般的に使われるに至らなかった。しかし、最近、CPUとFPGAの混載が可能になったことと、通信処理というキラーアプリケーションの開拓に成功したことにより、一気に実用化が進んでいる。
 リコンフィギャブルマシンについては、平成10年度の報告書[4]で、その概観と将来予測について述べたが、ここでは、主にその後の進展を紹介し、最近の情勢を分析すると共に、未解決の課題と研究の方向性についてまとめる。

2.Reconfigurable Systemとは
 PLD(Programmable Logic Device)とは、74シリーズなどのディジタルICがあらかじめ機能が定まっているのに対して、ユーザが手元でプログラミングするデバイスであり、1970年代から小規模の書き換え不能なものが一部の組合せ回路に用いられていた。80年代にCMOS技術の導入により、再書き込み可能で、順序回路も含む広い範囲の回路を実装することができるようになり、ディジタル回路の実装用デバイスとしての地位を確立した。さらに、90年代に入って、大規模なFPGA(Field Progarmmable Gate Array)あるいはCPLD(Complex Programmable Logic Device)が登場するに至って、システムをまるごと実装可能なデバイスとして進化を遂げた。最近は、100MHz近い周波数で動作する高速性、100万ゲートに迫る実装密度、内蔵RAMを持つものものも出現し、ASICに代わってシステムインテグレーションの主役になりつつある。
 このうち、内部の配線データ(Configuration Data)をSRAMに格納するタイプは、配線データを入れ換えることにより、電源を入れたままでハードウェア構成を変えることができる。この性質を利用し、状況に応じてハードウェア構成を変化させたり、解法アルゴリズムを直接ハードウェア化させることのできるシステムをReconfigurable System(可変構造システム)あるいはCustom Computing Machine:CCM(直接解法マシン)と呼ぶ。
 Reconfigurable Systemが実現可能になったのは、数千ゲート以上の規模で10MHz以上の動作が可能なSRAM型FPGAが安価に利用可能になった1990年代に入ってからである。図1にReconfigurable Systemの発展の歴史を簡単にまとめる。開発例の登場、学会の立ち上げは、ほとんど90年代の前半に行われており、非常に若い分野であることがわかる。また、2000年代に突入して、急激に新しいシステムの開発例が増加していることがわかる。
 図1に示すようにReconfigurable Systemについてのアクティビティは次の3種類に分類することができる。

・スタンドアローン型:かなり多数のFPGAを用いて、大規模な問題を処理する。
・コプロセッサ型       :CPUと密結合し、一部の処理を高速化する。
・新デバイス               :FPGA自体にReconfigurable Systemに特化した機能を持つデバイスの研究

以下、それぞれの代表的なシステムとアクティビティを紹介する。なお、詳細なサーベイは文献[1]を参照されたい。

図1 Reconfigurable Systemの発達

 

 3.スタンドアローン型の動向
 
スタンドアローン型Reconfigurable Machineで最も早い時期に登場したのは、米国計算センターで開発されたSplash-1/2である。Splashは、FPGAの計算セルを直線状およびクロスバを用いて接続したシステムである。各ボード上ではXilinx社のFPGAであるXC4010が計算用に16個(X1--X16)、制御用に1個(X0)使用され、これらがクロスバを介して結合されている。また、各FPGAは256K×16ビットのローカルメモリを持っている。計算用の16個のFPGAはリニアシストリックアレイを構成しており、その結合の幅は36ビットである。X0のFPGAはクロスバの制御にも用いられる。この構成は、流れてきたデータに対して計算を行なうシストリックアルゴリズムあるいは、全体で単一の命令を実行するSIMD(Single Instruction stream and Multiple Data stream)的な動作に特化している。このため、パターンマッチングや画像処理などのアプリケーションでは大幅な性能向上を示している。Splash 1は、DNAの塩基配列間の距離を求める計算で、当時のスーパーコンピュータCRAY-2の330倍の性能を記録して大きな注目を集め、Recongigrable SystemのFlagship的な役割を果たした。一方で、FPGA間の結合の自由度が低い点や任意のメモリへのアクセスが困難な点などから、適用分野はある程度限定されている。現在、Annapolis Micro Systems社よりWILDFIREとして商用化されている。
 日本でも、神戸大学の沼らが、かなり早い時期にスタンドアローン型のReconfigurable Machine、RM-I,II,III,IVを次々と開発してフロンティア的な役割を果たした。RM-IVは、FPGAとメモリを組み合わせたモジュールをFPICと呼ばれるプログラマブルなスイッチで接続した構成を持つ。この構成は、Splashに比べると汎用性が高く、沼らは、このシステムに論理シミュレーションエンジンを搭載し、当時のワークステーションの10-100倍の性能を記録した。さらに故障シミュレーション、Wavelet変換への応用を行った。我々慶應大学でもスタンドアローン型のReconfigurable Testbed FLEMING上で、ニューラルネットワークエミュレーション、待ち行列解析、マルコフ解析、電力潮流計算等のアプリケーションの開発を行った。
 最近、この型での最大規模の商用マシンは、三菱電機によるRASHである。RASHは、図2に示すように、Compact PCIバス上に、Altera社FLEX10Kシリーズ8個、SRAM, PCI interfaceから成るReconfigurable Boardを最大6枚搭載し、1つのUNITを構成する。さらに複数UNITをEthernetで接続してコンソールを共有することによって、大型システムの実現が可能である。RASHは、様々な分野に用いることが可能だが、暗号解読のアプリケーションが発表されており、並列探索の利用により、汎用ワークステーションの100倍以上の性能を達成している。
 後に紹介するコプロセッサ型同様、スタンドアローン型も通信処理に応用されている。NTTで開発されたYARDS、ATTRACTERはIPパケットをATM上で交換するために、プロトコル変換処理と蓄積、交換を1つのシステムで行う。また、RWCPと慶應大学が共同に開発したRHiNET/NIでは、ネットワークインタフェースの構成を変化させて、状況に応じて様々な通信プリミティブを実行する。
 通信制御、ネットワーク制御等、ある程度専用目的のスタンドアローン型は、それぞれの分野で利用されているが、RASH等の汎用目的のスタンドアローン型は、商用化はされてはいるものの、大きな成功を収めているとは言い難い状況で、最近元気なのは小規模システムであるコプロセッサ型である。

図2 RASH(三菱)のReconfigurable Board

 4.コプロセッサ型の動向
 
コプロセッサ型のReconfigurable Machineは、一般的なプロセッサと密結合し、その機能の一部を高速化するのが目的である。この型の元祖といえるのはBrown大学によって90年代の前半に研究されたPlism I/IIである。Plismは、CPUとFPGAを共有メモリで接続したシンプルな構成を持ち、プログラムの大部分を占めるループを検出して、その部分をFPGAで実行することにより、高速化を図った。研究の主眼はソフトウェア技術に置かれていた。実際にPlismの単純な構成ではCPUとFPGAの転送容量が制限されたため、多様なプログラムへの適用が困難だった。
 90年代の終りから2000年代に入って、CPUとFPGAを同一チップ上に混載することが可能になり、様々な接続形態が可能になり、様々な提案がなされた。MIPSコアとReconfigurable Arrayを強結合したGarp、汎用PCのメモリを直接Configuration用メモリとして使うことで、動的書き換え機能を利用できるDISC、スーパスカラプロセッサのデータパスを可変構造化したCHIMAERAなどが大学の研究レベルで提案された。
 この中で最近注目されているのは、Chameleon社から商用化されたChameleon CS2112[6]である。このチップは、図3に示すように、CPU、PCIインタフェース、DRAMインタフェース、メモリおよびReconfigurable部を混載した構成を持つ。このReconfigurable部は、図4に示すように、3つのTileから構成されたSliceを4つ持つ粗粒度のFPGAである。各Tileは108のDPUを持つ。このDPUは、図5に示すようにマルチプレクサ、ALU、シフタから構成され、これらのユニット内の構成と接続形態を変化させることによって、積和の並列演算、パイプライン処理が実現できる。構成データは、それぞれのユニットのメモリから1クロックでロードされるので、高速な動的変更も可能である。Chameleonは、アプリケーションの対象を通信処理、信号処理に絞っている。この分野は高性能なDSPと競合するが、DSPが専ら演算の高速化に特化しているのに対して、Chameleonは、Reconfigurable部を利用することで、プロトコル変換、パターンマッチング等の処理も併せて高速化可能である。演算処理自体も、並列処理とパイプライン処理をうまく利用すればDSPよりも数倍から数十倍の高速化を果たすことができる。

 

図3  Chameleon CS2112の構成

 

図4 Reconfigurable ProcessingFabricの構造

図5 DPUの構成

 

 5.Reconfigurable Machineの問題点と新しいチップの動向
Reconfigurable Machineの問題点として当初から挙げられていたのは、以下の点である。
a)  FPGAによる演算処理は、IEEE浮動小数点演算を実行する場合、専用の高速プロセッサやDSPに比べて10倍程度遅い。
 また、チップ面積は専用チップの10倍必要である。
b) FPGAは、メモリとの接続が脆弱で、大量のデータを扱うアプリケーションでは汎用プロセッサに比べ不利である。
c)  キラーアプリケーションがない。
d)解ける問題のサイズがFPGAで実現できるサイズを越えるとお手上げになってしまう。
e)  プログラミングが困難である。また、プログラムのロードに手間と時間がかかる。

2000年代になって、半導体技術の発達とReconfigurable Machineの研究の進展と共に、これらの問題は解決の道筋が付けられつつある。

a) 浮動小数点演算の性能の問題
 
10倍遅く、10倍面積を必要とする、というのは、FPGAが汎用CPUより劣ったプロセスを用いていた90年代中ごろまでの話である。現在は、最新のプロセスを用いた汎用CPUが市場に登場するよりも早く、最新のプロセスを用いたFPGAが市場に登場する。したがって、この差は縮まりつつある。とはいえ、GHzオーダのクロックを用いる高性能プロセッサやDSPに浮動小数点演算で勝てないのは明らかである。しかし、以下のような逃げ道はある。

a-1:  並列処理と問題にあった構成の利用:パイプライン化された浮動小数点演算器は、かなりのゲート数を要するため、FPGA上に複数実装するのは、困難であったが、最近の大規模FPGAを用いれば、ある程度は可能になっている。複数の演算器間をチップ上でアプリケーションに合わせて無駄なく接続し、並列処理することにより性能向上を図る。
a-2: 
粗粒度のFPGAの利用:FPGAの再構成のユニットをALU等特殊化された大きなものにすれば、専用プロセッサとの間の性能差は縮まる。このようなFPGAを粗粒度FPGAと呼ぶ。Chameleonの再構成ユニットを始め、広島市立大、RWCPなどでも粗粒度FPGAが開発されている。粗粒度にすることにより、ユニット間の配線を決めるCADも簡単化することができる。一方で、目的が特化されてしまい、例えばALUでユニットを構成してしまうと、演算以外の処理ができにくくなる。
a-3:
  逃げるが勝ち: IEEE標準にこだわると勝ち目がないが、画像処理や信号処理のアプリケーションでは、IEEE標準の浮動小数を使う必要がなく、より短い構成の数や固定小数点でも十分な場合も多い。このような場合は、Reconfigurable Machineは目的に応じた長さの数を用いて高速計算を図ることができる。逆にIEEE標準よりも精度を大きく取る必要がある場合も、Reconfigurable Machineは有利である。

b) メモリとの接続の問題
 
浮動小数点演算と共にReconfigurable Machineの苦手とする処理が大規模なデータを扱う処理である。汎用プロセッサは、その誕生時にフォンノイマンが指摘して以来、CPUとメモリ間の通信路が性能のボトルネックになると言われており、逆にこの高速化と洗練には60年の歴史がある。その間、キャッシュ、仮想記憶、データ配置最適化、プリフェッチ、当機的アクセス発行など膨大な技術が開発されている。FPGAにメモリをつないだだけのReconfigurable Machineが勝てるわけはない。
 しかし、基本的にReconfigurable Machineはフォンノイマンボトルネックからは免れているため、演算回路とメモリを接続する大容量の接続路さえ確保できれば、大規模データを並列に扱うことによって汎用CPUに対抗できる可能性を持つ。このために注目されるのはDRAM混載型FPGAである。図6にNECの開発したDRAM混載型FPGAを示す。この構成では、DRAMのColumn Bufferを直接FPGAで扱うメモリとして扱うことができるため、大容量のデータ転送を実現することが可能である。大容量のSRAM型メモリと、高速データ転送機構を併せ持つFPGAでも同様の機構は実現可能である。

図6 マルチコンテキストFPGAの基本構造

 

c) キラーアプリケーションがない。
 
キラーアプリケーションがない、ないと言われて10年間、様々な試みがなされた結果、最近ようやくネットワークプロセッサ、ネットワークインタフェース、ソフトウェア無線等の通信処理、プロトコル処理、信号処理がReconfigurable Machineのキラーアプリケーションなのではないか、と言われるようになった。このアプリケーションは、次々に到着するデータを処理すること、処理の種類が多様であり、変更の機会が多いこと、演算を伴うが必ずしもIEEE標準データの必要がないこと、などReconfigurable Machineに適した点が大きい。基地局用に大規模なシステムが必要な場合はスタンドアローン型が、その他は、プロセッサを混載したコプロセッサ型が主に用いられると考えられる。Chameleonもこの分野をターゲットとしており、NTTでもProteus 3など通信処理に特化したチップの開発が行なわれている。しかしDSP、専用システムLSIチップ等ライバルも強力であり、この分野を制覇できるかは疑問である。

d) サイズの問題
 
FPGAのサイズの問題は、仮想ハードウェアの研究と特殊なFPGAチップの登場により、解決の見通しは付いている。この問題の解決のための最も簡単な方法は、マルチコンテキストFPGAの利用である。マルチコンテキストFPGAとは図6に示すように、チップ内に複数の配置配線データ用メモリを持ち、これを高速に切替えることで、チップの構成を一気に変えることのできるFPGAである。NECはマルチコンテキストでかつ部分的な再構成可能なチップであるDRLを開発した。このチップは、利用していないデータ用メモリに新たな構成データを外部からロードして、適切な時期に切替えることにより、仮想的に大規模なハードウェアを実現することができる。我々慶應大学は90年代の前半から、データ駆動型制御により、仮想ハードウェアを実現する方法を研究しており、この方法をDRL上で用いることによって、小規模ながらある程度実用的な問題を解くことのできる仮想ハードウェアシステムを実現した。
 より大規模で実用的な仮想ハードウェアシステムの実現のためには、チップ内で大量のデータが格納可能なDRAM混載型や、チップ外とのデータの高速転送機能を持つFPGAが必要である。
 CMUで開発中のPiPERenchは、パイプラインの構成を動的に変更することにより、仮想ハードウェアと同様に小規模な実回路で大規模なハードウェアを実現することができる。さらに、NTTで開発されたPCA(Plastic Cell Architecture)は、より柔軟な構成を持っている。このチップは、図7に示すように通信を制御してコマンドを実行する部分と再構成可能な部分を持つ。処理が進んで、あるハードウェアが新しいハードウェアを必要とすると、ちょうどソフトウェアのプロセスが子供のプロセスをForkするように、非同期メッセージを送ってハードウェアを新たに生成することができる。

図7 PCA(Plastic Cell Architecture:NTT)

 

e) プログラミングが困難である。また、プログラムのロードに手間と時間がかかる。
 
Reconfigurable Machineのプログラミングは、最も性能を出すためには、ユーザがVHDLやVerilog-HDLなどのハードウェア記述言語でハードウェア構成をじかに記述しなければならない。これは流石にしんどい。われわれの慶應大学のプロジェクトでは、DFCなどのデータフロー言語からグラフを生成して、自動的に分割する方法を開発した。しかし、データフロー言語は記述上の制約が多く、決してプログラム開発がしやすいとは言えない。この問題の解決は、System-C, Spec-CなどのCAD用高位記述言語の発達を待つよりない。幸いにしてこの分野の研究は最近活発であり、現状よりは、はるかにましなプログラム環境が実現されると思われる。
 また、Reconfigurable Machineは、開発したプログラムを実行するにはReconfigurable部の配置、配線が必須なので、場合によっては、数時間を要する処理になってしまう。これもプログラム開発時のシミュレーション環境等CADの整備によりある程度解決は可能である。ただ、Reconfigurable Machineは、コンパイル時間という点では普通のCPUには絶対にかなわないので、ユーザが非常に頻繁にプログラムをし直さなければならない分野には向いていない。しかし、大部分のユーザは、実際にはそうそう頻繁にプログラムを開発したりしないので、この点はさほど問題にはならないのではないかと思う。

6.おわりに
 
Reconfigurable Machineの現状を紹介し、問題点と解決の道筋を示した。このようにReconfigurable Machineをめぐる情勢は1998年に報告した時点に比べはるかに明るくなっていると言える。また、図1などを見ると、日本の大学、企業が特に新しいチップの開発に関してかなり健闘していることがわかる。しかし、問題点も抱えている。

a) 配置配線用のCADが弱い。
 
DRLなど日本企業の開発するチップの最大の弱点は配置配線用のCADである。新しいチップを開発しても利用可能なCADがなければ利用者は非常に制限される。これが日本企業が優れた機能を持つ新しいFPGAチップを開発しても一般的に商用化できない最大の原因である。CAD開発を支援する何らかの枠組が必要であろう。

b) Chameleonタイプは成功の確率が最も高いが、今から乗り出しても既に遅い。
 
Core CPU、PCI, DRAM等の標準インタフェースと粗粒度FPGAを組み合わせる方式は現状で成功の可能性が最も高い。しかし、この分野にはReconfigurable Machine以外のライバルも多く、またChameleonがある程度の成功を収めれば米国ベンチャーがよってたかって開発に乗り出す可能性がある。今から開発を始めるには、ソフトウェア無線等やや違った所を狙い、アナログ混載等の独自技術が必要になる。

c) DRAM技術、大規模SRAM混載技術で勝負
 
先に述べたように、DRAMの混載、あるいは思い切って大きなSRAMの混載と、配置配線データの外部との高速な転送能力を持ったチップは有望である。また、この分野のデバイスは比較的、日本が強いので希望が持てる。

d) プラスαを
 
Reconfigrable Machineは性能と柔軟性だけで勝負すると、どうしても専用チップとの競争がしんどい。ここで、もう一つプラスαがあれば競争で優位に立つのが楽になる。

@)  同一性能を達成するのに消費電力がうんと小さければメリットになる。現状でもGHzオーダのクロックで動く高性能プロセッサと同程度の性能が数十MHzで実現可能な場合がある(というより、FPGAの動作速度が数十MHzを越えられないのだが)。消費電力は周波数に比例するため、本質的にReconfigurable Systemは優位に立てる可能性はあると思う。ただし、現在のFPGAは省電力という点があまり考慮されていないので、問題は残る。また、仮想ハードウェアは、実際に動いている部分が小さいので、消費電力という点でも注目される。

A)  マルチコンテキストFPGAやPCAなど、新しい構成を持つFPGAは、ハードウェアのコンテキストを切替えることができる点で、いわばOSの機能の一部を持っているのと同様である。これをさらに改良することで、専用チップの開発に比べ、はるかにスマートに信頼性の高いシステムの設計を短期間で可能にすることが考えられる。すなわち、複雑なシステムを簡単に実現することができるという点で、専用チップに優位に立てる可能性がある。これにはCADとチップの両方を視野に入れた研究が必要になる。

参考文献
 
今、最も完全なサーベイは文献[1]であり、ここに登場したシステムは全てサーベイされているが入手性が悪いので、webにて公開を依頼中。入門用には文献[2]があり、国内のアクティビティは文献[3]がある。

[1]   柴田裕一郎: "データ駆動型仮想ハードウェアに関する研究",慶應義塾大学理工学博士論文 2001年(http://www.am.ics.keio.ac.jp/ にて公開予定).

[2]   "Special Issue on Configurable System," IEEE Computer, April 2000.

[3]   H.Amano, Y.Shiata: “Reconfigurable Systems: New activities in Asia," Proc. on FPL2000 (LNCS1896), pp.585-595.

[4]   天野英晴: "直接解法マシン(Custom Computing Machines): 打倒プログラム格納型計算機への最後の希望," ペタフロップスマシン技術に関する調査研究II(日本情報処理開発協会先端情報技術研究所編), pp.35-43,(平成10年3月).

[5]   http://www.chameleonsystems.com/

 

【次へ】