平成27年度 春期 午前 問10
コンピュータ構成要素
CPUにおける投機実行の説明
CPU における投機実行の説明はどれか。
- ア依存関係にない複数の命令を,プログラム中での出現順序に関係なく実行する。
- イパイプラインの空き時間を利用して二つのスレッドを実行し,あたかも二つのプロセッサであるかのように見せる。
- ウ二つ以上の CPU コアによって複数のスレッドを同時実行する。
- エ分岐命令の分岐先が決まる前に,あらかじめ予測した分岐先の命令の実行を開始する。
答えと解説を見る
✓ これが正解エ分岐命令の分岐先が決まる前に,あらかじめ予測した分岐先の命令の実行を開始する。
解説
分岐先が決まる前に、予測した側を先に走らせます。
設問は、CPU における投機実行の説明を選ばせています。投機とは、当たるかどうか分からないうちに先へ賭けることです。パイプラインは次の命令を先に取り込んで流していきますが、分岐命令に当たると、行き先が決まるまで先へ流せず空きが生まれます。そこで、決まる前に予測した側の命令を走らせてしまえば、予測が当たったときには空きがなくなります。外れたときは、走らせた結果を全部捨ててやり直すので損をします。だからこそ、予測がどれだけ当たるかが性能を左右し、予測が外れ続ける処理では、かえって遅くなることさえあります。四つの肢はどれも命令を並行させる工夫ですが、この方式だけが、結果の確定していない先へ踏み込みます。予測、あらかじめ、決まる前に。こうした言葉が出てきたら、この技法だと見てください。
ほかの選択肢はなぜ違うのか
- ア依存関係にない複数の命令を,プログラム中…:順序を入れ替えて空きを埋める工夫で、入れ替える相手は依存関係のないものに限られます。したがって結果は必ず正しくなり、あとから捨ててやり直す場面が生じません。
- イパイプラインの空き時間を利用して二つのス…:一つのプロセッサを二つに見せかけて動かすマルチスレッディングの説明です。空いた時間を別の仕事で埋める工夫であって、行き先を当てにいく話ではありません。
- ウ二つ以上の CPU コアによって複数のス…:コアそのものを増やして同時に動かすマルチコアの説明です。数を増やしたぶんだけ仕事を並べるという考え方なので、未確定の先へ進むという性格を持ちません。
出典:平成27年度 春期 応用情報技術者試験 午前 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)