У BitLemonSw как раз вышло новое видео о том, как работает предсказание ветвлений в современных процессорах.
Суть простая. В коде постоянно встречаются ветвления: циклы,
if, switch/case, вызовы функций и возвраты.Проблема в том, что процессоры работают конвейерно и не могут каждый раз ждать, пока станет известно, по какой ветке пойдёт выполнение. Иначе это сильно тормозило бы процессор.
Поэтому процессор заранее угадывает результат ветвления и продолжает загружать инструкции по предполагаемому пути. Если прогноз оказался верным — всё быстро. Если нет — часть работы приходится выбросить и начать заново.
https://youtu.be/UbDIoNY9E0w

