忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【コンピュータシステム】過去に学び未来を当てる!「動的分岐予測」|情報処理問題1000本ノック

プログラムの実行パターンは常に一定ではありません。CPUが「前回の結果」を学習し、その時々の状況に応じて賢く予測を変化させる仕組みを攻略しましょう。

1. 問題:実行状態に応じた予測技術

【 問題 】 CPUの分岐予測技術のうち、プログラム実行時の分岐履歴(過去にどちらに分岐したか)を記録しておき、その統計情報に基づいて次に実行される分岐先を動的に決定する方式を何と呼ぶでしょうか?

ア、静的分岐予測   イ、動的分岐予測   ウ、固定分岐予測   エ、遅延分岐

2. 正解:プロセッサアーキテクチャに関する正解

正解: イ、動的分岐予測(Dynamic Branch Prediction)

3. 解説:履歴を活用する「学習型」の予測

分岐の傾向は、実行されているデータの種類やループの回数によって変化します。これをリアルタイムで追いかけるのが動的予測の強みです。

【図解:動的予測と静的予測の違い】

■ 動的分岐予測 ★今回の正解
仕組み:CPU内部の「分岐履歴テーブル」に過去の結果を保存します。
特徴:「前回が『分岐する』だったから、今回も『分岐する』だろう」と、実行中に予測を更新します。ループ処理などで非常に高い的中率を誇ります。

■ 静的分岐予測
仕組み:実行時の履歴は見ず、命令の種類やコードの構造からあらかじめ予測を固定します。
特徴:「ループの戻り方向は常に『分岐する』とみなす」といった単純なルールに基づきます。
[ 2ビット予測器(飽和カウンタ) ]
★ 動的予測でよく使われる手法です。「1回外れただけでは予測を変えず、2回連続で外れたら予測を切り替える」といった仕組みで、一時的なイレギュラーによる予測ミスを防いでいます。

1. 理解のコツ: 静的予測が「マニュアル通りに動く新人」なら、動的予測は「経験から傾向を読み取るベテラン」です。何度も通る道(ループ)であれば、ベテランはほぼ100%の確率で次を当てることができます。
2. 試験対策の視点: 「実行時の履歴を利用する」というフレーズがあれば「動的」です。逆に「コンパイル時」や「命令の種類で決める」といった言葉があれば「静的」を選びましょう。現代のプロセッサでは、この動的な仕組みが主流となっています。


4. まとめ

「前回の結果を予測に活かす」。これが動的分岐予測です。コンピュータが自らの過去の動きから学習し、パイプラインのストールを最小限に抑えることで、圧倒的な処理速度を実現しています。

PR