#### Структура ВТВ. Эффективное предсказание переходов требует наличие цели перехода на ранней стадии конвейера, можно использовать доп. сумматоры на стадии ID, чтобы цель могла быть выбрана, но будет 1 такт простоя. Проблему решает буфер целей перехода (Branch Target Buffer - ВТВ). **ВТВ** - аппаратный механизм, снижающий число тактов простоя при корректно предсказанном переходе до 0. **ВТВ** - буфер целей перехода, доп. набор логики, который располагается на стадии IF и который помогает предсказывать переходы. Цель: переходы без простоев. Если мы угадали с помощью ВТВ, значит после выполнения IF мы знаем адрес следующей инструкции. **Простейший вариант** - когда в ВТВ хранится целевой адрес. Вид ВТВ: | Адрес перехода | Цель перехода, если он предсказан выполняющимся. | Бит валидности | | :-- | :-- | :-- | | ... | ... | ... | Бит валидности - признак актуальности строки. Кэш полностью ассоциативный. Адрес текущей инструкции ищется в первом столбце. Если он там есть, тогда текущая инструкция - условный переход, причем выполняющийся. Тогда считываем адрес из второго столбца.