非数値計算系のプログラムでは連結リストによる線形リスト構造や木構造を処理する場合が多いにもかかわらず、連結リストの性質上の問題から、これまで並列処理の対象とはなり得なかった。本研究では、まず、連結リストのポインタ値の予測やプリフェッチ、およびこれらを用いた命令の投機実行方式を提案し、その詳細な評価を行った。この評価によって方式そのものの有効性を確認した上で、さらにこれを命令流レベルの並列処理に適用した場合の有効性について検討し、その確証を得た。 以上の評価検討を基礎とし、ループの終了条件となっている式に対してポインタの参照関係を予測することにより、連結リストを用いたループを並列実行可能とする方式の検討および提案を行った。具体的には、複数の命令処理によって実現されるひとまとまりの機能を単位として、その機能で生成される値を予測する「マクロデータ値予測」の可能性を示すとともに、これを可能とするための制約条件を詳細に分析し、また、マクロデータ値予測を用いた命令流の投機実行方式とその実現方式についての検討を行った。 また、本方式の検討・提案と平行して、本方式の評価を行うためのツールの開発も行い、基本的な部分はほぼ完了済みの状態にある。
|