コンピュータの高速化技術のうち,一つの命令をn個の独立な処理段階に分割し,各処理段階を並行に実行できるようにして,複数の命令をオーバラップさせて実行する方式はどれか。
正答3
解説
正解は3です。
プロセッサの高速化技術の名称を問う問題です。
問題文の「1命令を複数の処理段階に分け、段階ごとに並行して動かし、複数の命令を重ねて実行する」という説明がポイントです。
【選択肢別解説】
1:× out-of-order実行は、データの依存関係がない命令を、プログラムの順序にかかわらず実行できるものから先に実行する方式です。
命令を段階に分割する技術そのものではありません。
2:× キャッシュメモリは、CPUと主記憶の間に置く高速な記憶装置です。
主記憶へのアクセス時間を短縮する技術で、命令の重ね合わせとは別物です。
3:○ パイプライン処理は、命令の取出し、解読、実行などの段階を流れ作業のように重ねて実行します。
各段階が同時に別の命令を処理するので、全体の処理量が増えます。
4:× 分岐予測は、分岐命令の結果を予測して、先の命令を前もって取り込む技術です。
パイプラインの乱れを減らすための補助技術であり、問題文の説明そのものではありません。
【ポイント】
パイプライン処理では、分岐やデータ依存によって流れが止まるハザードが起こります。
分岐予測やout-of-order実行は、このハザードを減らすための技術として整理しておきましょう。