スーパースカラプロセッサーの命令実行時間を10%以上高速化
電子情報学専攻の五島准教授ら、ツインテール方式を新提案

 電子情報学専攻の五島正裕 准教授らは、スーパースカラプロセッサーの命令実行時間を高速化する、2つの命令実行系を持つツインテール・アーキテクチャーを開発した。スーパースカラプロセッサーの命令実行系に使われているアウトオブオーダーに、インオーダーの実行系を連結した構造で、シミュレーションの結果、通常のアウトオブオーダーだけの場合と比べて、1サイクル当たりの命令処理時間(IPC)を10%以上も高速化できることを確かめた。この成果を8月1日から3日まで、北海道の旭川で開催されるコンピューターインフラ系の国内ワークショップHOKKE-2007(第13回「ハイパフォーマンスコンピューティングとアーキテクチャの評価」に関する北海道ワークショップ)で発表する。

 PCなどに使われているプロセッサーは、メモリーから命令を読み込み、解釈し、実行し、結果を書き戻すなどの一連の手順で処理を行っている。1サイクルに2命令以上を実行するスーパースカラ方式が一般的で、命令実行系として、プログラムに記述したとおりではなく、実行できる命令から実行するアウトオブオーダーを使っている。このアウトオブオーダーの命令実行系に、プログラムに記述した順番どおりに実行していくインオーダーを組み合わせて2つの命令実行系を構成した(図1)。ハードウェアとしては、2つの命令実行系にそれぞれ専用の演算器を用いたのが特徴。メモリーから命令の読み出し、レジスターファイルの読み出しまでは同じ流れで、そのあと、インオーダーテール、アウトオブオーダーテールに分かれ、並行して命令が実行される(図2)。


ツインテール・アーキテクチャーのブロック図
図1:ツインテール・アーキテクチャーのブロック図

アウトオブオーダーテールの命令が即座に発行される
図2:アウトオブオーダーテールの命令が即座に発行される
(命令i1はインオーダーテールで実行され、命令i2はアウトオブオーダーテールで実行される例。命令i1が実行されて早期に結果が得られたことで、命令i2はただちに発行されている。通常のスーパースカラプロセッサーでは、命令i1の実行終了とともに、ジャストインタイムでその結果を利用でき、命令i2は1サイクル遅れてウエイクアップされている。このように、通常のスーパースカラプロセッサーでは命令が即座に発行できない状況でも、ツインテール・アーキテクチャーは、命令全体の実行を1サイクル短縮しているのがわかる)
(IF:読み出し、RF:レジスターの読み出し、disp(ディスパッチ):リザベーション・ステーションへの格納、sched:スケジューリング、issue:発行、exec:実行、WB:書き戻し)

 アウトオブオーダーテールは、通常のスーパースカラプロセッサーで用いられているのと同様の実行系である。アウトオブオーダーの場合、すべての命令はいったん「待合室」(リザベーション・ステーション)に格納され、実行可能の呼び出しがかかるまで待機する。しかし、データがそろっている命令では待ち合わせる必要がなく、すぐに実行できる場合もある。インオーダーテールには、アウトオブオーダーテールのような「待合室」はなく、必要なデータがそろっていればすぐに実行できる。

 五島准教授は「一部の命令を早く実行できるようになったからといって全体が高速化されるとは限らない。しかし、シミュレーションの結果、スループットが向上し、平均10%以上のIPCの向上が見込めることを確認した」としている。命令実行系で10%を超えるのは極めて大きな成果で、全体の命令実行プロセスを精査するとさらに高速化できる期待があり、今後、その可能性を探っていく考えだ。

ISTyくん