Nラボ備忘録

TAKE IT EASY

MENU

CPUの投機実行って何??【備忘録-基本情報技術者試験対策 #13】

※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。





はじめに

今回は、CPUの投機実行についてまとめます。

字面だけでは分かりにくいと思いますので、しっかりと図でイメージして覚えるようにしましょう!



ちなみに私はこの参考書を使って勉強してました。

漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。

過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!

投機実行とは・・・

CPUの投機実行とは、分岐処理において、分岐先を予測し、前もって分岐先の処理を実行していく方式です。

言葉だけでは分かりにくいと思いますので、例を考えましょう。


例として、ある処理Aと、ある処理Aの結果を受けて動作する分岐処理B・分岐処理Cを考えましょう。

簡単に、

  • 処理Aの結果が0 → 分岐処理Bを実行
  • 処理Aの結果が1 → 分岐処理Cを実行

とします。

基本的な動作としては、処理Aの結果を待ち、その結果を受けて分岐処理B or 分岐処理Cを実行するのが一般的ですよね。

しかしここで、あらかじめ処理Aの結果が0になる可能性が高いと分かっていたらどうでしょうか。すなわち、分岐処理Bが実行される可能性が高いと分かっていた場合です。


その場合、処理Aと並行して分岐処理Bを実行しておきます。

仮にこの予想が当たっていた場合、処理Aの結果を待って、分岐処理Bを実行するという無駄な処理時間を削減することができます
そう、いちいち結果を待たなくていい分、処理を早く終わらせることが可能になるわけです。

この予測精度が高ければ高いほど、先読み先読みで処理を実行できるので、全体の処理スピードはどんどん早くなります

このように、分岐先を予測して前もって実行していく方式が投機実行になります。

ただしこれは、あくまでも予測です。外れることもあります。

そのような場合でも、特に問題はありません。

その結果を受けて予測が外れていたら、正しい処理を行えばいいだけなのです。

本来実行すべき処理をただ行うだけなので、外した場合はより長い時間がかかってしまうなんてリスクは全くありません。

本来実行にかかる時間が早くなるか、そのままか、たったこれだけなのです。

これだけは覚えよう!

さて、今回はCPUの投機実行とは何なのかという説明をしました。

覚えることはたった1つだけです。

Point

CPUの投機実行とは・・・
分岐先の結果を予測し、あらかじめ実行しておく方式



しっかりと図もイメージして知識を定着させましょう。目指せ試験合格!

前回まとめた記事も読んでもらえると嬉しいです!

nlab-notebook.com