Стопочный буфер предсказания адреса возврата против сохраненного в стеке адреса возврата?

Читал «Микроархитектуру процессоров Intel, AMD и VIA» Агнера Фога, а на странице 34 он описывает «предсказание обратного адреса»:

http://www.agner.org/optimize/microarchitecture.pdf

3.15 Возврат (все процессоры, кроме P1)

Лучший метод используется для возврата. Буфер Last-In-First-Out, называемый буфером стека возврата, запоминает адрес возврата каждый раз, когда выполняется инструкция вызова, и использует его для прогнозирования, куда пойдет соответствующий возврат. Этот механизм обеспечивает правильное предсказание инструкций возврата при вызове одной и той же подпрограммы из нескольких разных мест.

Мне немного непонятно, зачем это нужно, учитывая, что адреса возврата все равно хранятся в стеке?

Итак, какова цель хранения адресов возврата в стеке, если есть и этот метод? Используется ли сохраненное в стеке значение, только если этот метод прогнозирования не работает?

Ответы на вопрос(2)

Ваш ответ на вопрос