※2024/5/14更新
※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。
はじめに
さて今回は、基本情報対策として、CPUの投機実行についてまとめます。
投機??機械を投げる??字面だけでは分かりにくいですよね・・・。
実はこの処理、基本情報でとても大切なパイプライン処理や分岐予測と関係しているワードになります。
どんなことをしているのか、しっかりと図をイメージして覚えるようにしましょう!
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
最新版はこちらです。
少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。
投機実行とは
CPUの投機実行とは、分岐処理において、分岐先を予測し、前もって分岐先の処理を実行していく方式です。
前もって実行しておくことが投機実行です。予め分岐を予測して“機”械(CPU)にタスクを“投”げるということですね。
言葉だけでは分かりにくいと思いますので、例を考えましょう。
例として、ある処理Aと、ある処理Aの結果を受けて動作する分岐処理B・分岐処理Cを考えましょう。
簡単に、
- 処理Aの結果が0 → 分岐処理Bを実行
- 処理Aの結果が1 → 分岐処理Cを実行
とします。
基本的な動作としては、処理Aの結果を待ち、その結果を受けて分岐処理B or 分岐処理Cを実行するのが一般的ですよね。
しかしここで、あらかじめ処理Aの結果が0になる可能性が高いと分かっていたらどうでしょうか。すなわち、分岐処理Bが実行される可能性が高いと分かっていた場合です。
その場合、処理Aと並行して分岐処理Bを実行しておきます。
仮にこの予想が当たっていた場合、処理Aの結果を待って、分岐処理Bを実行するという無駄な処理時間を削減することができます。
そう、いちいち結果を待たなくていい分、処理を早く終わらせることが可能になるわけです。
この予測精度が高ければ高いほど、先読み先読みで処理を実行できるので、全体の処理スピードはどんどん早くなります。
このように、分岐先を予測して前もって実行していく方式が投機実行になります。
ただしこれは、あくまでも予測です。外れることもあります。
そのような場合でも、特に問題はありません。
その結果を受けて予測が外れていたら、正しい処理を行えばいいだけなのです。
本来実行すべき処理をただ行うだけなので、外した場合はより長い時間がかかってしまうなんてリスクは全くありません。
本来実行にかかる時間が早くなるか、そのままか、たったこれだけなのです。
※2023/9/3更新・・・
よくよく調べてみると、どうやら「あらかじめ実行すること」が投機実行みたいです。
分岐先を予測していくことは、その名の通り分岐予測という技術です。
記事でもまとめていますのでそちらをご覧ください!
また、これら投機実行や分岐予測は、パイプライン処理において非常に重要な要素です。
パイプライン処理に関する記事も合わせてご覧いただければ、どうして必要なのかもご理解いただけると思います。
パイプライン処理の進化形??であるスーパーパイプラインやスーパースカラに関する記事も是非!
これだけは覚えよう!
さて、今回はCPUの投機実行とは何なのかという説明をしました。
覚えることはたった1つだけです。
★投機実行
分岐先の結果を予測し(これは分岐予測)、あらかじめ実行しておく方式
しっかりと図もイメージして知識を定着させましょう。目指せ試験合格!
前回まとめた記事も読んでもらえると嬉しいです!
基本情報以外の勉強記事も是非!
オススメ参考書 & Udemy講座
過去問編
兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!
特に以下の参考書は問題数が多いのでオススメです。
この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!
科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・
知識網羅編
以下は知識網羅編として、講義系の参考書、動画をピックアップしています。
1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。
過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~
私が勉強する際に使用していたオススメ参考書は以下です。
上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)
私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。
誰かに解説してもらった方が分かりやすい場合もありますからね~
画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!
コメント