CPU
上級

分岐予測 (TAGE / Perceptron)(ブランチプリディクタ)

条件分岐の結果を予測するCPU回路。TAGE (Tagged Geometric History Length) / Perceptron (神経網) ベースで95-99% 精度、投機実行効率を決定する核心技術。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
CPU
アーキ
分岐予測

概要

分岐予測 (Branch Prediction) は条件分岐 (if / switch / for / while ループ) の結果 (Taken / Not Taken / 分岐先アドレス) を分岐命令確定前に予測するCPU回路。OoO 実行で投機実行を成立させる前提技術、誤予測すると ROB Flush で15-25 cycles ペナルティ→ 性能直撃するため現代CPU の最重要要素の1つ。

分岐予測世代

世代年アルゴリズム
静的1985-コンパイラヒント
2bit Counter1991飽和カウンタ
2-level Adaptive1992BHT (Branch History Table)
GShare1993グローバルパターン
Hybrid / Tournament1996複数予測器選択
TAGE1999Tagged Geometric History
Perceptron2001神経網 (線形分類器)
TAGE-SC-L2014TAGE + Statistical Corrector
ITTAGE2014間接分岐用TAGE
Hashed Perceptron2016改良神経網

TAGE (Tagged Geometric History Length)

Andre Seznec (INRIA Rennes) が1999年提唱した分岐予測技術。複数の幾何級数的に異なる長さの履歴 (e.g. 4 / 16 / 64 / 256 bit) を持つテーブルを並列参照、最長一致 (longest match) をベース予測に使う設計。Champions of Branch Prediction (CBP) で2014-2024 連続優勝、現代CPU の主流アルゴリズム。

Perceptron Predictor

Daniel Jiménez (UC Santa Barbara) が2001年提唱した神経網ベース予測器。分岐履歴を入力ベクトル → Perceptron (重み付線形分類器) で予測。長い履歴 (256+ bit) を扱いやすく、特定パターンで TAGE より高精度。AMD Bulldozer (2011) で初商業実装、Zen 系列で発展。

主要CPU の分岐予測

CPU採用
Apple M3 / M4TAGE-SC-L 系・8 KB BTB
Intel Lion CoveHashed Perceptron + ITTAGE
Intel Skymont (E-core)TAGE-SC + BTB
AMD Zen 5Perceptron + TAGE Hybrid・改良版
AMD Zen 4Perceptron + TAGE
ARM Neoverse V2TAGE + Perceptron

予測対象 4要素

  1. 方向予測 (Direction): Taken / Not Taken
  2. 分岐先予測 (Target): Branch Target Buffer (BTB)
  3. 戻り先予測 (Return): Return Address Stack (RAS)
  4. 間接分岐 (Indirect): 関数ポインタ / vtable

誤予測ペナルティ

  • 投機実行されたROB エントリ全てFlush
  • フェッチパイプ Re-fill: 15-25 cycles
  • 分岐密度の高いコード (インタプリタ / 仮想関数 / switch) で性能差大
  • Spectre v2 緩和策 (Retpoline) は意図的 IBPB (Indirect Branch Prediction Barrier) 挿入で5-30%遅化

関連用語との違い

  • vs OoO: OoO は実行・分岐予測は前段
  • vs JIT: JIT は実行時最適化 / 分岐予測は HW
  • vs PGO: コンパイラ最適化 / HW 動的予測

FAQ

Q1: 何%精度? A: TAGE-SC-L で95-99%。SPEC2017 平均 約96-98%。エンタープライズアプリ (Java / .NET) は分岐パターン複雑で90-95%。

Q2: Spectre 攻撃との関係? A: 投機実行で分岐先のメモリ参照が L1 キャッシュに残るのを利用したサイドチャネル攻撃。分岐予測の信頼性が裏目に。

Q3: 性能向上はどれくらい? A: 分岐予測なしで実行すると現代CPU 性能の20-30%しか出ない。IPC 8 → 2 程度に低下。

この記事について
カテゴリーCPU
難易度上級
作成日2026/5/15