CPU
上級

Out-of-Order 実行 (ROB / RS)(アウトオブオーダ)

命令を並べ替えて並列実行するCPU技法。Reorder Buffer (ROB) / Reservation Station (RS) で命令を一時保持、依存解決後に並列発行する現代CPU の心臓部。

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

概要

Out-of-Order (OoO) Execution は命令を並べ替えて並列実行するCPU技法。命令を取得 (In-order Fetch) → 復号 → リネーム → ディスパッチ (Out-of-order・並列発行) → Retirement (In-order Retire) の流れで、データ依存のない命令を並列実行することでスループットを大幅向上する現代CPU の心臓部。Robert Tomasulo が1967年IBM System/360 Model 91 で初実装した「Tomasulo Algorithm」が起源。

主要コンポーネント

構造機能
RAT (Register Alias Table)レジスタリネーミング
ROB (Reorder Buffer)投機実行・順序付Retire
RS (Reservation Station) / Scheduler依存解決・発行管理
Execution UnitsALU / FPU / Load-Store 等
Physical Register Fileリネーム後の実レジスタ
Retirement Unit順序付完了

ROB / RS 仕様 (主要CPU・2024)

CPUROBRS / Scheduler
Apple M3 (P-core)670432
Apple M3 (E-core)174112
Intel Lion Cove (Core Ultra 200)576240
Intel Skymont (E-core)416220
AMD Zen 5 (Ryzen 9000)448192
AMD Zen 4 (Ryzen 7000)320140
Apple Firestorm (M1 P)630360

ROB / RS サイズが大きいほど多数の命令を「飛び越えて」実行可能、Memory レイテンシ隠蔽効果が大きい。Apple Silicon のROB サイズが業界最大級である理由は、メモリ帯域とアクセスレイテンシをカバーする設計選択。

投機実行とMeltdown / Spectre

OoO の必須機能「投機実行」(Speculative Execution) は2018年Meltdown / Spectre 脆弱性として露呈。分岐予測結果を信じて先行実行する仕組みが、サイドチャネル攻撃でカーネルメモリ読出を可能にした。後にKPTI (Kernel Page Table Isolation) / Retpoline 等の緩和策が必須化、性能5-30%低下を招いた。

Tomasulo Algorithm

Robert Tomasulo (IBM・1967) が System/360 Model 91 で実装した、CDB (Common Data Bus) ベースの動的命令スケジューリング:

  1. Issue: ROB / RS にエントリ確保・オペランド Read
  2. Execute: 依存解決後にExecution Unit へ発行
  3. Write Back: CDB で結果を待機命令に broadcast
  4. Commit: ROB head の命令をin-order Retire

関連用語との違い

  • vs In-Order: 命令順序通り (Intel Atom 初期 / ARM Cortex-A53)
  • vs SMT: SMT は 2 thread 並列・OoO は 1 thread 内並列
  • vs VLIW: ハードウェアOoO / コンパイラ静的スケジューリング (Itanium)

FAQ

Q1: なぜROB / RS のサイズ重要? A: メモリレイテンシ (100ns+) を隠蔽するため、ROB が大きいほど多数の独立命令を並列実行可能。Apple M シリーズの圧倒的シングルスレッド性能の理由。

Q2: 分岐予測との関係? A: 投機実行は分岐予測なしには成立しない。分岐先を予測→投機実行→分岐確定で正しければRetire・誤りで ROB Flush。

Q3: 1 cycle に何命令発行? A: 「IPC (Instructions Per Cycle)」と呼ぶ。Apple M3 P-core 8-10 IPC・Intel Lion Cove 6-8 IPC・AMD Zen 5 5-6 IPC が典型。

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