1995 Fiscal Year Annual Research Report
汎用言語プログラムの計算順序最適化とDSPコード自動生成
Project/Area Number |
07650414
|
Research Category |
Grant-in-Aid for General Scientific Research (C)
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
西原 明法 東京工業大学, 工学部・電子物理工学科, 助教授 (90114884)
|
Co-Investigator(Kenkyū-buntansha) |
杉野 暢彦 東京工業大学, 工学部, 助手 (60242286)
|
Keywords | 汎用言語 / コンパイラ / 先行制約スケジューリング / コード生成 / コード最適化 / メモリアドレッシング最適化 |
Research Abstract |
現在,大部分のプログラムは汎用言語を利用して作成されている.これらの汎用言語用コンパイラでは,ユーザがプログラムで記述した計算順番に忠実に従ってコードを生成している.これにより,大型計算機やマイクロプロセッサ用には高いコード化効率を得ることができるが,DSPなどをはじめとする最近の高速プロセッサに対してはその内部処理が並列化・パイプライン化されているためコード化効率が劣化してしまう.そこで,本研究ではプログラム中において必ずしも記述された計算順序に従う必要がない部分の計算順序を適当に入れ替えるてコード生成することにより,高いコード化効率を実現できるコンパイラの実現を目指している. 本研究では汎用言語として,現在最もよく使われているC言語を用いることとし,まず,C言語で記述されたプログラムをコンピュータ上に読み込み,コンパイラで処理しやすいデータ(中間コード)に変換する部分(パーザー部分)を作成した.この結果,与えられたプログラム全体は各処理部分間に変数などを介した先行制約関係だけにより制御付フローグラフの形で表現できる.ここで,変数間の先行制約関係に対して適切なスケジューリング方法を適用し全体の計算順序を定める.このとき,全試行を行えば最適解を求めることができるが,処理対象の規模が大きくなると実用時間内にスケジューリングできなくなる.そこで,実用時間内にスケジューリングを完了させるために,ASAP(As Soon As Possible)とALAP(As Latest As Possible)を組み合わせた単純なアルゴリズムを考案した.本アルゴリズムによって与えられた計算順序に従ってコード生成を行えば,ユーザはプログラミングスタイルを気にせずにプログラムを作成でき,コンパイラは与えられたプログラム中のユーザの意志は尊重しながら,ある程度のコード化効率を満たすことが見込める.ターゲットプロセッサとしては信号処理用プロセッサ(DSP)であるTMS320シリーズを選び,コード生成部分を現在作成中である. 一方,コード化効率を高めるためには計算順序だけでなくメモリアクセスの重要である.高速演算が可能となる間接メモリアドレッシングについてメモリアクセスを効率化するための諸方法についても考察を行った.
|
-
[Publications] N.Sugino,S.Ohbi and A.Nishihara: "DSP Compiler for Matrix and Vector Expressions with Automatic Computational Ordering" IEICE trans Fundamentals. E78-A. 989-995 (1995)
-
[Publications] 杉野暢彦,宮崎裕信,西原明法: "メモリアクセスのないコードも考慮したメモリアドレッシング最適化とDSPコード自動生成" 電子情報通信学会技術研究報告. DSP95. 51-58 (1995)
-
[Publications] 杉野暢彦,西原明法: "DSPコード自動生成におけるメモリアドレシング最適化" 第10回ディジタル信号処理シンポジウム講演論文集. 325-330 (1995)