スーパスケーラ・プロセッサは,動的スケジューリングのために,命令 の実行に必要なデータの有効性を追跡する wakeup と呼ばれるロジックを持 つ.このロジックは,将来クロック速度を制限すると考えられている. このwakeup を高速化する手法として,我々は命令間の依存関係を表す行列を用いる スケジューリング方式を提案している.この方式では,単に RAM を1度読み出すことで wakeup を実現することができる.
この方式に関して,本年度は以下2項目の研究を行った.
1. 類似方式との比較
DEC Alpha 21264 では行列を用いた類似の方法が既に採用されているが,依存関係の表現が我々の提案する方式とは異なる.
我々の方式では命令間の依存関係を直接的に表す単一の行列を用いる.
一方21264では2つの行列が用いられる.1つは命令とこれが書き込む物理レジスタの対応を表し,もう1つは物理レジスタとこれを参照する命令
の対応を表す.wakeup は物理レジスタの利用可能性を示すベクトルを介して間接的に行われる.
両方式の,wakeup の遅延の定量的比較を行った.結果,21264の方式の遅延は従来方式に対してわずかに改善された程度であったが,
我々の方式の遅延は従来方式の半分程度に短縮できることがわかった.
2. クラスタ化プロセッサへの適用
やはりサイクル速度を制限すると考えられているものにオペランド・バイパスがある.
この問題に対してプロセッサをクラスタリングする研究が行われている.
このクラスタ化プロセッサに対して,我々の命令スケジューリング方式を
適用した場合の検証を行った.
クラスタ化プロセッサの構成は,命令ウィンドウの集中/分散の2つに分類できる.
分散型では依存行列も分散でき, wakeup の遅延が減少するメリットがある.
一方IPC の点で比較すると,クラスタへの命令割り付けをディスパッチ時に決定する分散型に比べ,
発行時に決定する集中型の方が命令割り付けの効率が良く有利である.
そこで両者の利点を併せ持つと考える仮想分散型と呼ぶ構成を提案した.
仮想分散型では命令ウィンドウを仮想的に分散し,分散型と同様に依存行列も分割する.
またクラスタへの命令割り付けは集中型と同様に発行時に決定される.
評価によってIPC の比較を行うと,予想に反して仮想分散型が集中型と比較して悪化す
る結果となった.これは評価に用いたベンチマークのIPC が元々低かったためであると考えられる.
今後,より厳密な検証を行うために,メモリアクセスの投機的実行を実装するなどIPC を向上させ評価を行う予定である.