研究概要 |
本研究では,コンパイル時に静的に解析したクリティカルパス情報を用いて,実行時の命令ステアリングを効率化しようとしている.本年度の研究では,静的クリティカルパス情報を用いて動的にステアリングを行なう方式について,通信回数および演算器待ちサイクル数の観点から考察を行なった。 静的方式でも,クリティカルパスを指標とすることで,通信回数と演算器の負荷均衡のトレードオフ点をかなりの精度で見つけられることが示された.昨年度までの研究で,クリティカルパスに含まれない命令の取り扱いが問題となっていたが,クリティカルパス内の命令と同一演算器を使う場合を除く戦略と組み合わせることで,限定的ながら,性能を改善できる場合があることが分かった.また,動的情報を全く使用せず,コンパイル時にステアリングまで行なってしまう完全静的方式についての評価を行なった.基本的に動的方式に劣るものの,アプリケーションによっては,動的方式に迫るIPCを達成できる場合や,静的+動的方式に勝る性能を発揮する場合も見出された.コンパイル時に判断できる材料のうち,ごく限られた部分だけを用いていることから,うまく材料を組み合わせていけば,完全静的ステアリング方式でも,動的方式に匹敵する性能を発揮できる可能性があり,スーパースカラ方式に代わる新しいプロセッサ構成方式への道が見えてきている.マルチコアプロセッサ向けのシミュレーション環境として,SimpleScalarの替わりにValgrindを使用することを検討した.Valgrindは,SimpleScalarよりも100倍以上高速なシミュレーションを可能にする一方で,パラメタ可変範囲が狭く,これ以上の評価には,他の方式が必要となることが判明した.
|