リターンスタックバッファ(RSB)
関数呼び出しからの戻りアドレスだけを予測する、CPU内の小さなハードウェアスタック。汎用の分岐予測器より速く、正確に当てる。
別個に設けられている理由は、関数からの戻りが特殊な間接ジャンプだからだ。飛び先(戻りアドレス)は後入れ先出しという厳密な規則に従い、まさにスタックそのものである。RSBはcallとretの対応をなぞる。callのたびに戻りアドレスを積み、retのたびにそれを取り出して、CPUはそこから投機的に命令を取ってくる。戻りの予測では、汎用のBTBに任せるよりはるかに正確だ。
弱点は容量で、典型的には16〜32エントリしかない。深い再帰や対応の崩れたcall/retはRSBをあふれさせ、予測ミスを招く。BTBと同様、RSBの挙動もサイドチャネル攻撃(Spectre-RSB、Retbleed)に悪用されてきた。地味だが重要な予測機構である。