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