コンピュータ

スーパースカラとは

スーパースカラ

スーパースカラ(英:superscalar)とは、パイプライン処理を行う回路を複数持つことで複数の命令を同時に実行する仕組みです。

パイプライン処理とは

パイプライン処理は、CPUなどのプロセッサの性能を向上させるための技術のひとつであり、複数の命令を並行して実行するための方式です。

次の図のように命令を1つずつ順番に処理(逐次制御方式)していく方式だと、1つの命令が終わるまで次の命令を処理できず効率がよくありません。

逐次制御方式のイメージ例

 

そこで、次の図のように1つの命令を複数の段階に分割(次の例では F:命令の取り出し、D:命令の解読、O:対象データの読み出し、E:命令実行、W:結果の書き込み)し、複数の命令を並行して実行していきます。これがパイプライン処理です。

パイプライン処理

(パイプライン処理は段階ごとに制御できるため、命令1の「F」が終わったら、命令1の「D」「O」「E」「W」が終わるのを待たずに、命令2の「F」を実行することができる)

 

このようにパイプライン処理で複数の命令を並行して実行することで、待ち時間の無駄をなくし全体の処理効率を高めることができます。

スーパースカラとは

スーパースカラとは、パイプライン処理を行う回路を複数持つことで複数の命令を同時に実行する仕組みです。

通常はパイプライン処理を行う回路が1つしかないが、スーパースカラの場合は、パイプライン処理を行う回路が複数あります。その結果、複数の回路を用いて同時に複数の命令を実行できます。

スーパーパイプライン

上記はスーパースカラのイメージ図です。パイプライン処理の実行ユニットを2つ持っています。(※今回の例では回路2つ)

パイプライン処理の実行ユニットを複数持つことで、通常はパイプライン処理を行う回路が1つしかないため、同じ工程(段階)を同時に実行できないが(異なる工程(段階)は並行して実行できるが、同じ工程(段階)は同時に処理できない)、スーパースカラでは、パイプライン処理を行う回路が複数あるため同じ工程(段階)を同時に処理できます。

スーパースカラは、パイプライン処理を行う回路が複数あるので、パイプライン処理よりさらに処理効率を高めることができます。