Indirect Branch Predictor (IBP) – это компонент современных процессоров, который предсказывает направление выполнения непрямых переходов в программном коде. Непрямые переходы возникают, когда целевой адрес перехода неизвестен на этапе компиляции и определяется динамически во время выполнения программы (например, при вызове функций через указатели или виртуальные функции в объектно-ориентированных языках).
Основная задача IBP – уменьшить задержки в конвейере процессора, связанные с ожиданием вычисления адреса перехода. Точные предсказания позволяют процессору предварительно загрузить нужные инструкции и продолжать выполнение без ожиданий.
IBP использует различные алгоритмы и таблицы, чтобы запомнить и предсказать, какой адрес использовался при предыдущих выполнениях аналогичных непрямых переходов. Если предсказание оказывается точным, производительность системы значительно улучшается, так как снижается количество «промахов» в конвейере.