Arch: chore
This commit is contained in:
@ -1,19 +1,18 @@
|
||||
#### Структура РНТ. Алгоритм изменения и использования. Интерференция адресов. Структура ВНТ.
|
||||
#### Структура BНТ. Алгоритм изменения и использования. Интерференция адресов. Структура ВНТ.
|
||||
|
||||
**ВНТ:** Таблица признаков, происходил переход или нет. Хранится выполнение/невыполнение перехода. Берём какое-то число младших бит адреса инструкции, они являются номером записи в ВНТ. Каждая запись ВНТ содержит бит валидности (выполнялось ли ветвление или нет в прошлый раз). Когда мы проверим, выполняется/не выполняется переход, при необходимости обновим запись в ВНТ.
|
||||
|
||||
**ВНТ:** Таблица признаков, происходил переход или нет. Хранится выполнение/невыполнение перехода. Берем какое-то число младших бит адреса инструкции, они являются номером записи в ВНТ. Каждая запись ВНТ содержит бит, индицирующий, выполнялось ли ветвление или нет в прошлый раз. Когда мы проверим, выполняется/не выполняется переход, при необходимости обновим запись в ВНТ.
|
||||
**Простейший метод (одноуровневый):**
|
||||
|
||||
- ВНТ индексируется младшими битами адреса инструкции ветвления.
|
||||
- Каждая запись ВНТ содержит бит индицирующий выполнялось ли ветвление или нет в прошлый раз. 0 - не выполнялось. 1 - выполнялось.
|
||||
- Используемый счетчик (предсказатель) обновляется после обработки инструкции перехода. Увеличить счетчик, если есть переход, уменьшить - если нет перехода.
|
||||
- Каждая запись ВНТ содержит бит валидности выполнялось ли ветвление или нет в прошлый раз. 0 - не выполнялось. 1 - выполнялось.
|
||||
- Используемый счётчик (предсказатель) обновляется после обработки инструкции перехода. Увеличить счётчик, если есть переход, уменьшить - если нет перехода.
|
||||
- Всегда ошибается на первой и последней итерациях цикла.
|
||||
|
||||
**Интерференция** - возникает, когда разные переходы отображаются на один и тот же счетчик (одни и те же младшие биты адреса).
|
||||
Для улучшения точности предсказания используется 2-битовое предсказание:
|
||||
|
||||
- Прогноз должен промахнуться дважды, прежде чем он изменится.
|
||||
Прогноз должен промахнуться дважды, прежде чем он изменится. Поэтому переход в цикле будет предсказан неверно только 1 раз при повторной встрече, вместо 2 раз при 1-битной схеме.
|
||||
|
||||
Поэтому переход в цикле будет предсказан неверно только 1 раз при повторной встрече, вместо 2 раз при 1-битной схеме.
|
||||
**2-битовое предсказание** - частный случай n-битного счетчика с насыщением наращиваемого при выполнении ветвления и уменьшаемого, когда ветвление не выполняется.
|
||||
|
||||
- 2-битовое предсказание - частный случай n-битного счетчика с насыщением наращиваемого при выполнении ветвления и уменьшаемого, когда ветвление не выполняется.
|
||||
- В большинстве случаев используется 2-битный счетчик предсказаний, поскольку наблюдения показывают, что эффективность предсказания 2-битной ВНТ сравнима с эффективностью n-битной.
|
||||
В большинстве случаев используется 2-битный счетчик предсказаний, поскольку наблюдения показывают, что эффективность предсказания 2-битной ВНТ сравнима с эффективностью n-битной.
|
||||
|
Reference in New Issue
Block a user