エンベデッドシステムスペシャリスト 2009年 午前2 問01
問題文
MPUの高速化技術の一つであるスーパスカラの特徴として、適切なものはどれか。
選択肢
ア:同時に実行可能な複数の動作をまとめて一つの命令として実行する。
イ:独立した複数の命令ストリームを用意し、これらの実行を適宜切り換えながら行う。
ウ:パイプラインの深さを増すとともに、パイプラインピッチを短くして、平均命令実行時間を短縮する。
エ:パイプラインを複数用意し、同時に複数の命令を実行する。(正解)
🔒 解説は解答すると表示されます
スーパスカラ方式【午前2解説】
正解の理由
スーパスカラは、複数の命令を同時に実行できるよう、複数の実行パイプラインを備える方式です。プロセッサが命令どうしの依存関係を調べ、同時に実行できる命令を並行して処理します。
したがって、「パイプラインを複数用意し、同時に複数の命令を実行する」とするエが適切です。
解法ステップ
- 問題のキーワード「スーパスカラ」に注目します。
- スーパスカラの特徴を「複数のパイプラインで複数命令を並列実行する」と押さえます。
- パイプラインを増やす選択肢と、パイプラインを深くする選択肢を区別します。
- 複数のパイプラインを用意すると述べているエを選びます。
選択肢別の誤答解説
- ア:誤りです。 複数の動作を一つの命令にまとめて実行する考え方は、VLIW方式などに関連します。スーパスカラの特徴は、複数の動作を一つの命令にまとめることではなく、複数の命令を同時に処理することです。
- イ:誤りです。 独立した複数の命令ストリームを切り換えて実行するのは、マルチスレッディングなどに関係する説明です。スーパスカラは、基本的に一つの命令ストリームから複数の命令を並行実行します。
- ウ:誤りです。 パイプラインの段数を増やし、各段の処理時間を短くするのは、スーパパイプライン方式の説明です。スーパスカラはパイプラインを深くするのではなく、複数用意します。
- エ:正しいです。 複数のパイプラインを使って、複数の命令を同時に実行する方式がスーパスカラです。
よくある誤解
- 「パイプラインを高速化する方式」はすべて同じではありません。 スーパスカラはパイプラインを複数にし、スーパパイプラインはパイプラインを深くします。
- 命令を複数実行できるからといって、常に複数命令を実行できるわけではありません。 命令どうしにデータ依存関係があると、並行実行できない場合があります。
- 複数の命令ストリームを扱う方式と混同しないようにしましょう。 スーパスカラの基本は、一つの命令ストリームから命令レベルの並列性を活用することです。
補足コラム
スーパスカラでは、実行する命令の順序や依存関係を調べ、並行実行できる命令を複数の実行器に割り当てます。このため、性能向上の度合いは、プログラム内にどれだけ同時実行可能な命令があるかにも左右されます。
FAQ
Q. スーパスカラとスーパパイプラインの違いは何ですか?
A. スーパスカラは、複数のパイプラインで複数命令を同時に実行します。スーパパイプラインは、パイプラインを細分化して段数を増やし、各段の処理時間を短くします。
A. スーパスカラは、複数のパイプラインで複数命令を同時に実行します。スーパパイプラインは、パイプラインを細分化して段数を増やし、各段の処理時間を短くします。
Q. スーパスカラでは、どんな命令でも同時に実行できますか?
A. いいえ。命令どうしに依存関係がある場合などは、同時に実行できません。実行可能な命令を見つけて並列処理することが重要です。
A. いいえ。命令どうしに依存関係がある場合などは、同時に実行できません。実行可能な命令を見つけて並列処理することが重要です。
関連キーワード: スーパスカラ、スーパパイプライン、VLIW、命令レベル並列性、パイプライン処理

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

