並列コンピュータのプロセッサ基板。プロセッサを搭載スーパースカラー(superscalar,スーパースケーラ)とは、プロセッサのマイクロアーキテクチャにおける用語で、複数の命令を同時にフェッチし、複数の同種のあるいは異種の実行ユニットを並列に動作させ、プログラムの持つ命令レベルの並列性を利用して性能の向上を図るアーキテクチャである。6600が、最初のスーパースカラー設計のマシンと言われている。(1990年)が最初である。RISC型CPUの設計ではコアが単純であったため、当時の設計ルールの細かさでもワンチップに複数の実行ユニット(ALUなど)を搭載でき、スーパースカラーを実現できたのである。対して性能的に優位に立った。一部の低消費電力の組み込み向けプロセッサを除いて、1998年以降に開発された汎用プロセッサは基本的に全てスーパースカラーである。II)以降で3実行ユニットのアウトオブオーダ実行型スーパースカラーに発展した。2008年現在のIA-32アーキテクチャは単一コア当り5実行ユニットのアウトオブオーダ実行型スーパースカラーで、平均IPCは3以上を達成している。スカラーからスーパースカラーへ[編集]最も単純なプロセッサアーキテクチャをスカラープロセッサと呼ぶ。スカラープロセッサでは、各命令で1つか2つのデータを一度に扱う。ベクタープロセッサでは同時に多数のデータを扱う。これは数学におけるスカラーとベクトルの違いに似ている。スーパースカラープロセッサはこれらの中間と言える。各命令は1つのデータを扱うが、CPU内に複数の実行ユニットがあるため、それぞれ別のデータを扱う複数の命令を同時並行的に実行可能となる。スーパースカラーCPUの設計では、複数存在する実行ユニットを常に働かせておくために、命令の分配機構が重要である。実装される実行ユニット数が増えるにつれ、その重要性は増している。4つのALUと2つのFPUと2つのSIMDユニットが搭載されている。分配機構が効率的でない場合、これらの実行ユニットに連続して命令を供給することができず、システムの性能は全体として低くなる。スーパースカラープロセッサの実行効率はサイクル当たりの実行命令数で表される。サイクル当たりの実行命令数が大きいからといって、常にスーパースカラーだとは限らない。パイプライン型CPUやマルチコアCPUも同様の性能を示すが、方式は異なる。スーパースカラー型CPUでは、分配機構がメモリから命令群を読み込み、そこから並列に実行できる命令を選択し、実行ユニット群にそれらを供給する。従って、スーパースカラープロセッサはパイプラインが複数あって、各パイプラインが1つの命令スレッドを実行していると見なすこともできる。限界[編集]スーパースカラー技法による性能向上は、以下の2つによって制限される。命令列の本質的な並列性の度合い。命令レベルの並列性の制約。命令間の依存関係チェックロジックと分配機構が命令選択にかけられる時間の制約と機構自体の複雑さ。既存のバイナリの実行プログラムの持つ並列性にはばらつきがある。ものによっては命令間の依存が全く無く、常に並列に実行可能なこともある。逆に依存関係が多く、並列性がほとんどない場合もある。いう命令列は依存関係がないため、並列に実行可能である。いう命令列は依存関係があるため、並列に実行することはできない。同時に実行可能な命令数が増えると、依存関係をチェックするコストも急激に増大する。そのチェックをCPUのクロックに合わせて実行時に行わなければならないという事実が事態をさらに悪化させる。n}かかるとされている。数学的には、この問題は順列における組合せ数学の問題である。命令列に依存関係がないとしても、スーパースカラー型CPUは常に依存関係のチェックを行う。なくば、依存関係の検出に失敗し、不正な結果を得ることになる。半導体プロセス技術がどれだけ進化して、スイッチ速度が高速化しても、以上のような問題によって同時に実行可能な実際の命令数には限界が生じる。プロセス技術の進化によって実行ユニット(ALUなど)の数が増えても、依存関係チェックのための論理回路の規模の増大が急激であるため、実現可能な規模は制限される。依存関係チェックを無限に素早く実行できたとしても、命令列の本質的な並列性によって性能向上に限界が生じる。類似技法[編集]このような限界があることから、他の性能向上技法の探求が行われた。(SMT)、マルチコアなどである。依存関係チェックを実行時にハードウェアで行うのではなく、コンパイラで行う。スーパースカラー設計では数ナノ秒で行わなければならないが、コンパイラではその制限はない。マルチコアとマルチスレッド・コンパイラの組合せでも同様である。スーパースカラー型CPUの全体効率を向上させる技法である。複数の独立したスレッドを同時に実行することで、実行ユニットの稼働効率を向上させる。マルチコアCPUは、個々のコアが1つのスレッドを実行する独立したプロセッサとなっている(通常、キャッシュを共有している)。これらの技法は排他的なものではない。従って、マルチコアCPUの各コアがスーパースカラーであっても構わない。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。開発者Cookieに関する声明モバイルビュ。