プログラムを構成する命令区間を多入力多出力の複合命令と捉え, 動的に検出した複数の複合命令を並列実行し, 主スレッドの実行結果も含む複数の実行結果を out-of-orderに再利用することにより, 主スレッドが実行する命令を大幅に削減する実行モデルを提案した. 既存研究との違いは,区間再利用と投機的マルチスレッディング(SpMT)を 1つの実行モデルに統合した点にある.
区間再利用とは,実行時に命令区間における入出力セットを再利用表に 記憶しておき,再び同じ入力により命令区間を実行する場合に, 記憶しておいた出力を利用して命令区間の実行を省略する高速化手法である.
本機構のシミュレーションの結果,以下のことがわかった.一方,評価に要する膨大なシミュレーション時間を短縮するため,汎用CAMを 搭載したハードウェアアクセラレータGP600Mの設計を行った. ソフトウェアシミュレータに対し最大約70倍の高速化を達成し, 多くのプログラムの挙動を調査することが可能となった.
本SpMT機構における再利用状況をリアルタイムに把握するため, 再利用表における木構造をRadial Layoutにより可視化するソフトウェアを開発した. これにより,従来わからなかった現象を観察できるようになり, 再利用の効果が命令区間により大きく変わる原因の解明などに役立った.
大語彙連続音声認識システムJuliusにおいて,入力音声データの特徴量と候補となる 音素の音響モデルを比較して各音素の出力確率を求める出力確立計算が 処理時間全体の4割を消費しており,マルチメディア命令や区間再利用を 適用することにより高速化を図った.
曖昧再利用により対象とした命令区間における実行サイクル数は50%削減できたものの, 全体では2%の高速化にとどまった.一方,マルチメディア命令(SSE)を用いて単精度浮動小数点数演算を 並列処理することにより,対象とした命令区間では38%,全体で5%の高速化が実現できた. さらに元のプログラムが高速化のために厳密な計算を行っていない部分について, あえて厳密に計算するよう変更した場合,対象区間はSSE化により30%, 全体で15%高速化できた.