研究概要 |
Cプログラムを入力としてソフトウェアとハードウェアからなるシステムを効率的に設計するための技術や方法論について研究を行い,下記の成果を得た. 1. ハードウェア合成アルゴリズムの研究 Cプログラム中の関数を,効率的なハードウェアに合成するための,演算スケジューリング,資源バインディングのアルゴリズムについて研究を行った.特に,メモリアクセスのようなサイクル数が不定の演算を効率よくスケジューリングする新しいアルゴリズムを開発した. 2. ソフトウェアの記憶モデルのハードウェア化の研究 Cプログラム中の様々な記憶クラスの変数をハードウェアとして実現する方法に関する研究を行った.特に,定数配列についてはROMとして実現し,自動変数と静的変数は初期化可能なレジスタファイルとして実現する方式を考案し,これを実現するための高位合成処理系の実装を行った. 3. 高位合成システムのプロトタイプ試作とテスト 試作中の高位合成システムのプロトタイプにおいて,合成可能なCプログラムの範囲を拡張した.また,フルセットのANSI-Cを合成するための試みとして,MIPSアセンブリ言語からハードウェアを合成する処理系を試作した. 4. ハードウェア構成の研究 プロセッサと専用ハードウェアの効率的なシステム構成方式について研究を行い,4個のプロセッサ/ハードウェアを搭載するシステムをFPGA上に合成し,その動作を外部から観測する枠組みを完成した. 5. ソフトウェア関数とハードウェア関数の連携のメカニズム プラグマを用いることより,個々の関数をハードウェアとソフトウェアのどちらで実装するかの指定,非同期関数呼び出しによるハードウェアとソフトウェアの並列実行を可能にする枠組みを構築した.
|