【すーぱーすから】

スーパースカラ とは?

💡 レジが1台から複数台に!命令を並列処理するCPUの進化形
📌 このページのポイント
スカラ vs スーパースカラ スカラ(従来) T1 F D E W T2 F D E W 1クロック = 1命令 スーパースカラ T1 F D E W F D E W T2 F D E W F D E W 1クロック = 2命令! スーパースカラCPUの内部 命令スケジューラ 整数演算ユニット 整数演算ユニット 浮動小数点ユニット 結果を統合 F=フェッチ D=デコード E=実行 W=ライトバック
スーパースカラのイメージ
ひよこ ひよこ

スーパースカラって何なの?パイプラインとは違うの?

ペンギン先生 ペンギン先生

パイプラインは1本の流れ作業ラインで命令を処理する仕組みだけど、スーパースカラはその流れ作業ラインを複数本持っている感じだよ。スーパーのレジが1台から3台に増えたら、同時にお客さんをさばけるよね。CPUも同じ発想で高速化しているんだ

ひよこ ひよこ

じゃあレーンが多ければ多いほど速くなるの?

ペンギン先生 ペンギン先生

理論上はそうだけど、実際にはそう簡単にいかないんだ。命令には依存関係があって、前の命令の結果がないと実行できない命令もある。レジが10台あっても、お客さんが1列しかいなかったら意味がないのと同じだね

ひよこ ひよこ

依存関係ってどうやって見つけるの?

ペンギン先生 ペンギン先生

CPUの中に「命令スケジューラ」という仕組みがあって、命令同士の依存関係をリアルタイムで分析するんだ。同時に実行しても問題ない命令を見つけて、空いている実行ユニットに割り当てる。これを「命令レベル並列性(ILP)」の活用と呼ぶよ

ひよこ ひよこ

今のCPUはみんなスーパースカラなの?

ペンギン先生 ペンギン先生

パソコンやスマホに使われるCPUはほぼすべてスーパースカラだよ。たとえばAppleのM4チップは1クロックで最大8命令を同時実行できる。ただし組み込み用のマイコンなど、消費電力を優先する場面ではスカラ(1命令ずつ)のCPUも使われるよ

ひよこ ひよこ

スーパースカラの限界ってあるの?

ペンギン先生 ペンギン先生

実行ユニットを増やしても、プログラムから並列実行できる命令を見つけるのが難しくなるんだ。これを「ILPの壁」と呼ぶよ。だから現代のCPUはスーパースカラに加えて、マルチコア化で並列性を稼ぐ方向にシフトしているんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「スーパースカラ」って出てきたら「複数の命令を同時に実行してCPUを高速化する技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「Superscalar」 = 超スカラ
💬 scalar(スカラー、1つの値)を超える=1つ以上の命令を同時処理できるという意味で名付けられたんだよ
← 用語集にもどる