本研究は、整数系プログラムに対して、命令レベルの並列性を効率良く引き出すための複数のプロセッサをチップ上に持つアーキテクチャと、それを最大限に利用するコンパイラ技術を開発することである。本年度の研究実績は以下の通りである。第一に、広域に存在する命令レベル並列を引き出すために必須である通信と同期のオーバヘッドを極めて小さくする機構を考案した。この機構は、通信と同期のオーバヘッドを、従来の数十サイクルから、2サイクルという極めて小さな値に抑えることができる。しかも、クロックサイクルに悪影響を与えることがないよう、十分に単純な機構である。第二の成果は、この機構を活かす簡易なコンパイラをおおよそ作成することができたことである。本コンパイラは、プロファイル情報と制御依存解析とデータ依存解析を元に、プログラムを性能利得のある複数のスレッドに分割する機能を有する。第三の成果は、以上を評価するためのシミュレータを作成したことである。このシミュレータは、実行トレースとコンパイラのスレッド分割情報を元に、複数プロセッサによる実行を模擬する。第四の成果は、命令レベルの並列性を引き出すために鍵となる基本的技術である分岐予測の精度を向上させる技術を提案したことである。この機構は過去の履歴を記録する表の上での競合を検出し、これを抑制するよう適応するものである。第五の成果は、複数のプロセッサで共有する命令キャッシュを有効に利用するためのコード配置アルゴリズムを考案したことである。このアルゴリズムはキャッシュライン上での競合を基本ブロック単位で回避する。
|