スーパースカラ 【superscalar】
概要
スーパースカラ(superscalar)とは、マイクロプロセッサ(CPU/MPU)の高速化手法の一つで、命令を解釈・実行する回路を複数備え、依存関係にない複数の命令を同時に実行できるようにしたもの。単純な構造のCPUはコンピュータプログラムを構成する命令の列から度に一つずつ読み込んで順番に処理していくが、スーパースカラ型のCPUは内部に実行ユニットを複数持ち、一度に複数の命令を読み込んで同時に実行することができる。
ただし、読み込んだ複数の命令の間に、「前の命令の結果を後の命令が利用する」といった依存関係がある場合や、「前の命令で別の番地に分岐してしまい後続命令の実行が不要になる」場合もあるため、すべての命令を並列に実行できるわけではない。依存関係をチェックする回路は並列度が増すと急激に複雑化するため実行ユニットの数はあまり多くは増やせず、実用上は2~4並列程度の構成が多い。
CPUで並列処理を行なう方式にはマルチコアやマルチプロセッサなどもあるが、これらは複数のプログラム(命令の流れ)を並列に実行できるもので、単一のプログラム内で前後に並んだ命令を並列に実行するスーパースカラとは異なる。また、ベクトルプロセッサは一つの命令で複数のデータを同時に処理できる方式で、命令自体を複数実行できるわけではない。
(2023.1.31更新)