メインコンテンツへ
コンピュータ構成要素

CPU のパイプライン処理に関する記述として、最も適切なものはどれか。

ア.1個の命令を複数のステージに分け、複数命令の各ステージを重ねて並行実行する。正解
イ.複数の独立した実行ユニットで複数命令を同時に実行する。
ウ.1サイクルで複数の命令を完全に並列に処理し、必ず性能を倍にする。
エ.命令の実行順序を固定し、依存関係を完全に排除する。

解説

パイプラインは流れ作業ライン。1人の作業者がパン1個を最後まで作るのではなく、フェッチ係・デコード係・実行係…と分業して命令を流していきます。

なぜ ア が正解か

アが正解。パイプライン処理は命令を「フェッチ→デコード→実行→メモリアクセス→書き戻し」などの段階に分け、ある命令の次段階と別命令の前段階を同時に走らせる手法。理想的にはステージ数倍のスループット向上が見込めますが、分岐やデータハザードで気泡が入ります。

なぜ イ は間違いか

これは「スーパースカラ」の説明。パイプラインを複数並べて同時に複数命令を実行するアーキテクチャで、パイプラインそのものとは別概念です。

なぜ ウ は間違いか

「必ず性能を倍にする」は誤り。パイプラインハザードやストールで理想スループットには届きません。「必ず」がついている時点で疑うべき選択肢です。

なぜ エ は間違いか

パイプラインは順序通り命令を投入しますが、依存関係を排除するわけではなく、むしろハザードへの対処(フォワーディング、ストール、分岐予測)が課題になります。

出典: AI生成問題(学習用)