研究概要 |
本研究の目的は,HDLで記述された回路中の部分回路間の疎な関係性を抽出し活用する手法を明らかにし,それらの並列性を活用可能な言語の拡張および処理系について研究すること,および,その疎な関係性を利用した複数FPGAへの論理回路のマッピング手法や並列シミュレーションへの応用を行うことである. まず,モジュール間の疎な関係性はどのように定義できるかという基礎的な項目を,ストリームデータベース処理,コンピュータゲームプレーヤを事例に検討した.その結果,これらのアルゴリズム的な処理をハードウェア化する場合には,関数呼び出し処理のパイプライン化およびデータ並列性を活用する分割が効率の良い回路の設計に有用であり,また,ソフトウェア記述としてプログラマが明確に記述することが容易であることが確認できた. 次に,これらの並列性を実際にハードウェア記述言語として記述できるように,その有効性とコンパイル技法について,Javaを入力言語として独自に開発した高位合成器であるJavaRockを活用して実装と評価を行った.その結果,JavaのThreadを利用したデータ並列性およびwait-notifyを活用してパイプライン並列性が記述されたソフトウェアプログラムから並列して動作する独立したハードウェアモジュール群を生成し,それらの連携によって所望の処理が実現できることを示した. また,分割したハードウェアとして並列化した回路を複数のFPGAに分割して実装した場合でもこれが正しく動作することを確認した.分割に際しては,分割するモジュール群およびそれらの通信方式をプログラマが明示的に記述する他,Javaのアノテーションを活用することで,コンパイラで自動的に分割を決定し分割したモジュール群の通信機構を埋め込む手法を検討し,評価した.
|