Евгений Ерохин — Branch prediction, или Откуда процессор берет производительность (Часть 1)
                        
                        Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
 — — Скачать презентацию с сайта C++ Russia — https://jrg.su/ECLGTM
  Современные процессоры являются крайне сложными устройствами, заточенными на получение максимальной производительности из того кода, который мы запускаем на них. Понятия Out of Order (OoO), Super Scalar на слуху, и многие знают про Branch predictor, но мало кто представляет, как он устроен. А между тем, Branch prediction — это основа спекулятивного выполнения, которая является одним из самых важных компонентов производительности.  Конечно, это знание не требуется программисту в повседневной практике. Но понимание, до какой степени процессор способен предсказывать поведение вашей программы и как он это делает, может помочь оптимизировать код в критических местах.  В докладе рассматриваем: — Общее устройство процессора.  — Как работает OoO и где в нем место для Branch predictor. — Как работает спекулятивное исполнение. — Базовые алгоритмы предсказаний ветвлений. — Некоторые продвинутые методы предсказания ветвлений. — Как это влияет на исполение нашего кода.