エンベデッドシステムスペシャリスト 2017年 午前2 問01
問題文
スーパスカラの説明として、適切なものはどれか。
選択肢
ア:処理すべきベクトルの長さがベクトルレジスタよりも長い場合、ベクトルレジスタ長の組みに分割して処理を繰り返す方式である。
イ:パイプラインを更に細分化することによって、高速化を図る方式である。
ウ:複数のパイプラインを用い、同時に複数の命令を実行可能にすることによって、高速化を図る方式である。(正解)
エ:命令語を長く取り、一つの命令で複数の機能ユニットを同時に制御することによって、高速化を図る方式である。
🔒 解説は解答すると表示されます
スーパスカラ方式【午前2解説】
正解の理由
スーパスカラは、複数のパイプラインを備え、複数の命令を同時に実行することで処理を高速化する方式です。したがって、複数のパイプラインで複数の命令を並行して実行すると説明するウが適切です。
ただし、命令を同時に実行できるかどうかは、命令どうしに依存関係がないことなどが条件になります。
解法ステップ
- 「スーパスカラ」という用語から、CPUの命令実行方式についての問題だと捉えます。
- パイプライン処理を土台に、複数の命令を並行して実行する方式を選びます。
- 複数のパイプラインを使うと説明しているウを選びます。
選択肢別の誤答解説
- ア:ベクトルの長さがベクトルレジスタの容量を超えるとき、分割して処理を繰り返す方式の説明です。スーパスカラではありません。
- イ:パイプラインの処理段数をさらに細分化して高速化する方式の説明です。これはスーパパイプラインに当たります。
- ウ:複数のパイプラインを用いて複数の命令を同時に実行する方式です。スーパスカラの説明として適切です。
- エ:一つの長い命令語で複数の機能ユニットを制御する方式の説明です。VLIW(超長命令語)に当たります。
よくある誤解
- 「パイプラインを細分化する方式」と混同する:スーパパイプラインは段数を増やす方式であり、スーパスカラは複数の命令実行経路を使う方式です。
- 「一命令で複数の処理を指示する方式」と混同する:これはVLIWの考え方です。スーパスカラでは、複数の命令を同時に実行します。
- 「常に複数命令を実行できる」と考える:命令間に依存関係がある場合などは、並行実行できないことがあります。
補足コラム
スーパスカラとスーパパイプラインは、どちらも処理の高速化を狙いますが、着目点が異なります。
- スーパスカラ:複数のパイプラインで、複数の命令を並行して実行します。
- スーパパイプライン:一つのパイプラインをより細かい段階に分け、動作を高速化します。
「複数の命令を同時に実行」はスーパスカラ、「パイプラインの段数を増やす」はスーパパイプライン、と整理すると覚えやすいです。
FAQ
Q. スーパスカラでは、どの命令でも同時に実行できますか?
A. いいえ。命令間にデータ依存などがある場合、同時に実行できないことがあります。
A. いいえ。命令間にデータ依存などがある場合、同時に実行できないことがあります。
Q. スーパスカラとVLIWの違いは何ですか?
A. スーパスカラは、CPU側が複数命令の並行実行を判断します。VLIWは、複数の機能ユニットを制御する情報を一つの長い命令語に含めます。
A. スーパスカラは、CPU側が複数命令の並行実行を判断します。VLIWは、複数の機能ユニットを制御する情報を一つの長い命令語に含めます。
関連キーワード: スーパスカラ、スーパパイプライン、パイプライン処理、VLIW、命令レベル並列性

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

