応用情報技術者 2012年 秋期 午前2 問09
問題文
命令を並列実行するためのアーキテクチャであって、複数の命令を同時に実行するとき、命令を実行する演算器をハードウェアによって動的に割り当てる方式はどれか。
選択肢
ア:SMP
イ:スーパスカラ
ウ:VLIW(正解)
エ:スーパパイプライン
命令を並列実行するためのアーキテクチャ +【午前2 解説】
要点まとめ
- 結論:複数命令を同時に実行する際、演算器の割り当てをハードウェアが動的に行う方式は「スーパスカラ」です。
- 根拠:スーパスカラは命令の依存関係をハードウェアが解析し、実行ユニットに動的に割り当てるため高効率な並列実行が可能です。
- 差がつくポイント:VLIWはコンパイラが命令の並列性を静的に決定し、ハードウェアは割り当てを動的に行わない点でスーパスカラと異なります。
正解の理由
ウ: VLIWは「Very Long Instruction Word」の略で、複数の命令を1つの長い命令語にまとめてコンパイラが静的に並列実行を決定します。
問題文の「ハードウェアによって動的に割り当てる方式」とは異なり、VLIWは動的割り当てではなく静的割り当て方式です。
したがって、正解は「イ: スーパスカラ」となります。
問題文の「ハードウェアによって動的に割り当てる方式」とは異なり、VLIWは動的割り当てではなく静的割り当て方式です。
したがって、正解は「イ: スーパスカラ」となります。
よくある誤解
VLIWとスーパスカラはどちらも複数命令の並列実行を行いますが、割り当ての主体がコンパイラかハードウェアかで大きく異なります。
問題文の「動的に割り当てる」はスーパスカラの特徴であり、VLIWの説明と混同しやすい点に注意が必要です。
問題文の「動的に割り当てる」はスーパスカラの特徴であり、VLIWの説明と混同しやすい点に注意が必要です。
解法ステップ
- 問題文の「命令を並列実行」「演算器をハードウェアが動的に割り当てる」を確認する。
- 各選択肢の特徴を整理する。
- SMPは複数CPUの対称型マルチプロセッサ、動的割り当てとは異なる。
- スーパスカラはハードウェアが命令を動的に割り当てる方式。
- VLIWはコンパイラが静的に割り当てる方式。
- スーパパイプラインはパイプラインの段数を増やす技術で割り当て方式とは異なる。
- よって正解は「イ: スーパスカラ」。
選択肢別の誤答解説
- ア: SMP
複数CPUが対称的に動作する方式で、命令の動的割り当てとは無関係。 - イ: スーパスカラ
正解。複数命令を同時に実行し、ハードウェアが動的に演算器を割り当てる。 - ウ: VLIW
コンパイラが命令の並列性を静的に決定し、ハードウェアは単純に実行するだけ。動的割り当てではない。 - エ: スーパパイプライン
パイプラインの段数を増やして高速化する技術で、命令の動的割り当てとは異なる。
補足コラム
スーパスカラはCPU内部で複数の実行ユニットを持ち、命令の依存関係を解析しながら同時に複数命令を実行します。
一方、VLIWはコンパイラが命令を束ねて長い命令語としてCPUに渡し、CPUはそのまま実行するためハードウェアの複雑さを軽減します。
スーパパイプラインはパイプラインの段数を増やしてクロック周波数を上げる技術で、並列実行の方式とは異なります。
一方、VLIWはコンパイラが命令を束ねて長い命令語としてCPUに渡し、CPUはそのまま実行するためハードウェアの複雑さを軽減します。
スーパパイプラインはパイプラインの段数を増やしてクロック周波数を上げる技術で、並列実行の方式とは異なります。
FAQ
Q: スーパスカラとVLIWの違いは何ですか?
A: スーパスカラはハードウェアが命令の並列性を動的に判断し実行ユニットに割り当てますが、VLIWはコンパイラが静的に命令を束ねてCPUに渡します。
A: スーパスカラはハードウェアが命令の並列性を動的に判断し実行ユニットに割り当てますが、VLIWはコンパイラが静的に命令を束ねてCPUに渡します。
Q: SMPは命令の並列実行と関係ありますか?
A: SMPは複数CPUによる並列処理を指し、単一CPU内での命令の動的割り当てとは異なります。
A: SMPは複数CPUによる並列処理を指し、単一CPU内での命令の動的割り当てとは異なります。
関連キーワード: スーパスカラ、VLIW, 命令並列実行、動的割り当て、スーパパイプライン、SMP

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

