【ぶんきよそく】
分岐予測 とは?
💡 信号が青か赤か、結果を見る前に走り出すCPUの先読み術
📌 このページのポイント
分岐予測って何を予測してるの?
なんで結果を待ってから進めないの?
パイプラインは工場のベルトコンベアみたいなもので、複数の命令を同時に処理してるんだ。分岐の結果を待つと、コンベア上の次の命令がすべてストップしちゃう。だから「たぶんこっちだろう」と予測して先に命令を流し始めるんだよ
予測が外れたらどうなるの?
パイプラインフラッシュといって、先読みで処理していた命令を全部捨てて、正しい方向からやり直すんだ。数十クロックサイクルのロスになるよ。だから予測精度がCPUの性能に直結するんだ
どうやって予測してるの?
最近のCPUだとどのくらい当たるの?
高速化の仕組みがセキュリティの問題になるなんて意外だね!
まとめ:ざっくりこれだけ覚えればOK!
「分岐予測」って出てきたら「if文の結果を先読みして、パイプラインを止めない高速化テクニック」と思えればだいたいOK!
📖 おまけ:英語の意味
「Branch Prediction」 = 分岐の予測
💬 branchは「枝」のことで、プログラムの実行経路が枝分かれするのを予測するから「分岐予測」と呼ばれるんだよ