1996 Fiscal Year Annual Research Report
汎用言語プログラムの計算順序最適化とDSPコード自動生成
Project/Area Number |
07650414
|
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)であるTMS320C30(TI)及びμPD77230(NEC)として,C言語用コンパイラを作成した.例題としては,信号処理アルゴリズムの中で条件分岐を含む適応ディジタルフィルタを用い,実際にコード生成を行って,提案した方法の有効性を確認した.ユーザはプログラミングスタイルを気にせずにプログラムを作成でき、コンパイラは与えられたプログラム中のユーザの意志は尊重しながら,ある程度のコード化効率を満たすことができる.一方,DSPにおいては高コード化効率のためには計算順序だけでなくメモリアクセスも重要となる.本研究では,高速演算を可能とする間接メモリアドレッシングについてのメモリアクセスの最適化についても考察を行っている.
|
Research Products
(6 results)
-
[Publications] N.Sugino,S.Iimuro,and A.Nishihara: "DSP Code Optimization utilizing Memory Addressing Operation" IEICE Trans.Fundamentals. E79-A,8. 1217-1224 (1996)
-
[Publications] N.Sugino,H.Miyazaki,S.Iimuro,and A.Nishihara: "Improved Code Optimization Mcthod Utilizing Memory Addressing Operation and its Application to DSP Compiler" Proceedings 1996 International Symposium on Circuits and Systems. 2. 249-252 (1996)
-
[Publications] N.Sugino,J.Vilasdechanon,K.Likit-Anurucks and A.Nishihara: "Computational Ordering of Adaptive Digital Networks under Pipeline Constraints and its Application to DSP Compilers" Proc.Asia-Pacific Conference on Circuit and Systems. 101-104 (1996)
-
[Publications] N.Sugino,S.Yoshida,and A.Nishihara: "Code Optimization Method for DSPs with Multiple Memory Addressing Registers and its Application to Compilers" Proc.of the 1996 IEEE Region 10 Conference. 619-624 (1996)
-
[Publications] 杉野 暢彦,西原 明法: "メモリアドレッシング最適化によるDSPコードの改善とそのコンパイラへの応用" 第11回ディジタル信号処理シンポジウム講演論文集. 693-698 (1996)
-
[Publications] 杉野 暢彦,吉田 征一郎,西原 明法: "複数アドレスレジスタについてのメモリアドレッシングの最適化-手法" 電子情報通信学会技術研究報告. CAS96-24. 59-66 (1996)