ICDロゴ

スーパースケーラ (superscalar)

別名
スーパースカラー (superscalar)

最終更新日: 2001/10/10

 単一プロセッサのコンピュータアーキテクチャにおいて、1クロックサイクルで同時に複数の命令を実行する技術。コンピュータシステムの高速化のための一手法。

 コンピュータプロセッサは、CPUクロック信号に同期して命令をフェッチ、デコード、実行しているが、性能を向上させるためには、クロック周波数を向上させるだけでなく、単位クロック時間あたりに実行できる命令の数を増やす必要がある。パイプライン方式のコンピュータでは、フェッチ、デコード、実行などの各ステージをオーバーラップすることによって見かけ上の命令実行時間を短縮しているが、この方式では、最速でも1クロック当たり1命令までしか高速化できない。そこでさらに性能を向上させるために、フェッチやデコード、実行するためのユニットをそれぞれ複数用意して、複数の命令を同時に実行するという方法がいくつか考案された。このうちのひとつがスーパースケーラアーキテクチャ(スーパースカラーともいう)である。

 スーパースケーラでは、複数の命令コードを同時にフェッチ、デコードし、そのオペランド(演算対象となるメモリやレジスタ)に依存関係がなければ(前の命令の計算結果を直後の命令で使用するなどということがなければ)、それらの命令を同時に複数の命令実行ユニットに送り、処理をする。命令間の依存関係は、命令実行時にプロセッサ内部で動的に判断され、空いている実行ユニットがあれば自動的にそれを使うようにスケジューリングが行われる(これに対して、あらかじめプログラムのコンパイル時に使用する実行ユニットを静的に決めておく方式は、VLIW方式という)。

 最新のスーパースケーラプロセッサでは、命令のフェッチ・デコードユニット、データのロードユニット、ストアユニット、整数演算ユニット、浮動小数点演算ユニット、分岐計算ユニット、マルチメディア演算ユニットなどをそれぞれ複数用意して高速化を図っている。ただし一般的なプログラムでは、依存関係なしに同時に並行して実行できる命令の数は最大でも4〜5命令程度といわれており、実行ユニットの数をあまり多くしても効果は頭打ちとなることが多い。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ