Files
2025-06-20 12:48:16 +03:00

1.3 KiB
Raw Blame History

Алгоритм заполнения и использования ВТВ.

  • Адрес есть в ВТВ. Берем адрес перехода из буфера. На следующем такте проверяем, выполнился ли переход.
    • Угадали. Продолжаем выполнение, убираем запись из буфера.
    • Не угадали. Очищаем эту запись в ВТВ и отбрасываем результаты выполнения.
  • В таблице ВТВ не нашли наш адрес. Пытаемся спекулятивно выполнить со следующего адреса.
    • Перехода нет Продолжаем выполнение и результат сохраняется, запись из буфера убирается.
    • Переход есть. Результат отбрасывается, вычисляем новый адрес и на новом такте считываем новый адрес. Информацию о том, что переход состоялся записываем в ВТВ.

Получается конструкция с запоминанием последнего результата выполнения перехода. Штраф ветвления - 2 такта.