プロセッサアーキテクチャにおいて、プログラムに内在するスレッドレベル並列性と命令レベル並列性の2つのレベルの並列性を利用してプログラムの高速実行を行うための新しい命令実行方式について研究を行った。具体的には、プログラムカウンタの制御機構、レジスタ構成方式、命令流の管理機構、命令流間同期機構、割り込み処理機構、キャッシュ構成方式などについて検討を行った。 新しいアーキテクチャのための自動並列化コンパイラについては、並列性検出を重視した中間言語の検討を行った。また、本研究で開発するアーキテクチャの有効性を評価・検証するためのツールとして、命令トレースプログラムとプロセッサシミュレータの開発を行い、これを完成した。 本シミュレータを用いて、本研究におけるアーキテクチャの命令フェッチ方式および命令キャッシュ構成方式について特に詳細な検討を行った。その結果、命令キャッシュをバンク単位で分割し、それらをスレッド間で共有する場合の命令フェッチ方式において新たな提案を行った。ここで提案した方式の特徴は、キャッシュミスが生じた場合にも命令フェッチユニットはブロックせずに他のスレッドのための命令フェッチを続行する点、および、複数のスレッドが命令の同一領域にアクセスする場合には命令キャッシュから読み出した命令をそれらのスレッドの命令キューに同時転送する点、の2点にある。スレッドごとに独立の命令キャッシュを設ける方式やスレッド間で命令キャッシュを共有する種々の方式についてもシミュレーションによる評価・比較を行い、本研究で提案した方式の有効性を確認した。
|