2024-12-20 12:10:10 +03:00
|
|
|
|
#### Алгоритм заполнения и использования ВТВ.
|
|
|
|
|
|
|
|
|
|
- **Адрес есть в ВТВ.**
|
2025-06-20 12:48:16 +03:00
|
|
|
|
Берем адрес перехода из буфера. На следующем такте проверяем, выполнился ли переход.
|
|
|
|
|
- **Угадали.**
|
|
|
|
|
Продолжаем выполнение, убираем запись из буфера.
|
|
|
|
|
- **Не угадали.**
|
|
|
|
|
Очищаем эту запись в ВТВ и отбрасываем результаты выполнения.
|
2024-12-20 12:10:10 +03:00
|
|
|
|
- **В таблице ВТВ не нашли наш адрес.**
|
2025-06-20 12:48:16 +03:00
|
|
|
|
Пытаемся спекулятивно выполнить со следующего адреса.
|
|
|
|
|
- **Перехода нет**
|
|
|
|
|
Продолжаем выполнение и результат сохраняется, запись из буфера убирается.
|
|
|
|
|
- **Переход есть.**
|
|
|
|
|
Результат отбрасывается, вычисляем новый адрес и на новом такте считываем новый адрес. Информацию о том, что переход состоялся записываем в ВТВ.
|
2024-12-20 12:10:10 +03:00
|
|
|
|
|
|
|
|
|
Получается конструкция с запоминанием последнего результата выполнения перехода. Штраф ветвления - 2 такта.
|