Предиктор цели ветки
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В компьютерной архитектуре предсказатель цели перехода — это часть процессора, которая предсказывает цель, т. е. адрес команды, которая будет выполнена следующей, принятого условного перехода или инструкции безусловного перехода до того, как цель инструкции перехода будет вычислена с помощью исполнительный блок процессора.
Предсказание целевой ветки — это не то же самое, что предсказание ветвления , которое пытается угадать, будет ли условная ветвь выбрана или нет (т. е. двоичная).
В более параллельных конструкциях процессоров, когда задержка кэша инструкций увеличивается, а ширина выборки увеличивается, извлечение целевой ветки становится узким местом. Рецидив – это:
- Кэш инструкций извлекает блок инструкций
- Инструкции в блоке сканируются для выявления ветвей.
- Идентифицирована первая предсказанная взятая ветвь
- Цель этой ветки вычисляется
- Выборка инструкций перезапускается в целевой ветке
В машинах, где это повторение занимает два цикла, машина теряет один полный цикл выборки после каждой предсказанной взятой ветки. Поскольку прогнозируемые ветвления происходят примерно каждые 10 инструкций, это может привести к существенному снижению пропускной способности выборки. Некоторые машины с более длительными задержками кэша инструкций понесут еще большие потери. Чтобы уменьшить потери, некоторые машины реализуют прогнозирование цели ветки: по адресу ветки они прогнозируют цель этой ветки. Уточнение идеи предсказывает начало последовательного выполнения инструкций по адресу начала предыдущего последовательного выполнения инструкций.
Этот предиктор уменьшает повторение, указанное выше, до:
- Хешировать адрес первой инструкции в запуске
- Получите прогноз для адресов целей ветвей в этом выполнении инструкций.
- Выберите адрес, соответствующий предсказанному ответвлению.
Поскольку ОЗУ предиктора может составлять 5–10% от размера кэша инструкций, выборка происходит намного быстрее, чем выборка из кэша инструкций, и поэтому повторение происходит намного быстрее. Если бы он был недостаточно быстрым, его можно было бы распараллелить, предсказав целевые адреса целевых ветвей.
См. также
[ редактировать ]- Косвенный контроль филиалов (IBC)
- Барьер косвенного прогнозирования ветвей (IBPB)
- Спекуляции с косвенным ограничением филиалов (IBRS)
- Однопоточный косвенный предсказатель ветвления (STIBP)
Дальнейшее чтение
[ редактировать ]- Дрисен; Хёльцле (1992), Точное предсказание косвенного ветвления
- Эртл; Грегг (2001), Поведение эффективных интерпретаторов виртуальных машин в современных архитектурах
Внешние ссылки
[ редактировать ]- «Ветвление целевых буферов» . (EE461)
- Туман, Агнер . «Микроархитектура процессоров Intel, AMD и VIA» (PDF) . Проверено 9 августа 2017 г.