研究概要 |
本件では,DSP(degital signal porcessor)用のリターゲッタブルコンパイラ開発を目標に,プログラムのデータフローをDSPのデータパスにマッピングするための問題の定式化とそれを解くアルゴリズムについて研究を行った. 1.コード生成アルゴリズムの開発 コード生成のための処理は,1)命令・演算器選択2)バインディング,3)スケジューリングからなるが,それぞれについて,アルゴリズムを考案した.1)については,ルールベースでデータフローグラフを書き換える方式を採用した.2)については,演算の演算器への割当てに伴って必要となるデータ転送命令を極力押えるとともに,同じ演算を行う演算器が複数ある場合になるべくそれが並列に使われるようなバインディングを求めるアルゴリズムを考案した.3)については,処理をレジスタ制約解析とリストスケジューリングに分割する方法を考案した.また,非直交なデータパス上でスピルコードを挿入する新しいアルゴリズムを考案した. 2.リターゲッタブルコンパイラの試作 構文解析と中間コード生成部にSUIFとValen-Cを用い,perl言語にてコード生成処理を行うコンパイラを試作した.C言語で書かれたG.723.1音声処理のプログラムを,MAC(multiply-and-accumulate)を2つ持つ専用DSPのデータパスにコンパイルし,その評価を行った.レジスタ制約解析において,その計算量と,spillコードを減らすための制約枝出力の方法が課題となることが判明した.
|