#### Структура ВТВ.

Эффективное предсказание переходов требует наличие цели перехода на ранней стадии конвейера, можно использовать доп. сумматоры на стадии ID, чтобы цель могла быть выбрана, но будет 1 такт простоя. Проблему решает буфер целей перехода (Branch Target Buffer - ВТВ).

**ВТВ** - аппаратный механизм, снижающий число тактов простоя при корректно предсказанном переходе до 0.
**ВТВ** - буфер целей перехода, доп. набор логики, который располагается на стадии IF и который помогает предсказывать переходы.
Цель: переходы без простоев.
Если мы угадали с помощью ВТВ, значит после выполнения IF мы знаем адрес следующей инструкции.

**Простейший вариант** - когда в ВТВ хранится целевой адрес. Вид ВТВ:

| Адрес перехода | Цель перехода, если он предсказан выполняющимся. | Бит валидности |
| :-- | :-- | :-- |
| ... | ... | ... |

Бит валидности - признак актуальности строки.
Кэш полностью ассоциативный. Адрес текущей инструкции ищется в первом столбце. Если он там есть, тогда текущая инструкция - условный переход, причем выполняющийся. Тогда считываем адрес из второго столбца.
