本年度は並列投機実行の検証を行うシミュレータの作成と並列投機実行最適化を行うバイナリトランスレーション方式の基本方式の検討および実装を行った シミュレータはSolaris8マルチプロセッサ上で複数のプロセッサのシミュレーションを行うことが可能なマルチスレッドシミュレータとなっており、マルチプロセッサシステムと同様に共有メモリ上にデータ空間をもち、通信はマルチスレッドライブラリを用いて実現されている。また、プログラム生成は移植したクロスコンパイラシステムによって生成され、実験が容易にできるようになっている。また、バイナリトランスレーションの最適化においては、実行時再構成方式が生成するプログラムの事前生成を行い実行の最適化手法について(1)並列実行するに対応したレジスタ割付方式および命令再構成を行うことにより命令実行数を減少できること、(2)要素プロセッサに投機実行用命令を追加することにより、メモリアクセスのハードウエアを減少できること、また、実行時再構成方式での重複実行において分岐命令の実行を可能にすることによって投機実行の精度を上昇させることが可能であることを示し、バイナリトランスレータに実装した。バイナリトランスレータは最適化のために実行時と同様にプログラムをバイナリプログラムフォーマットにしたがって制御構造を読み取り並列実行可能部分を検索する。昨年度の研究成果を用いて、検索時に並列実行回数のサイズを特定しループ構造であれば適切な繰り返しサイズになるようにアンローリングして解析を行い、上記の最適化を行うようになっている。 実行時の分岐予測によるコントロールフロー生成が困難な場合には本方式による、最適化が有効であり、特にgccなどの基本ブロックサイズが小さいプログラムでは、速度向上に貢献することが分かった。
|