Скачиваний:
62
Добавлен:
16.04.2013
Размер:
430.08 Кб
Скачать

4.5.2. Подсказки предсказаний переходов.

Для улучшения предсказания перехода, процессору может быть дана информация о поведении перехода. Эта информация может быть закодирована двумя способами: в виде подсказок перехода являющихся частью инструкции перехода (далее упоминаются как подсказки), либо отдельными инструкциями предсказания переходов (brp), где вся инструкция является подсказывающей информацией. Подсказки и инструкцииbrpне затрагивают функциональное поведение программы и могут игнорироваться процессором.

Инструкции перехода могут обеспечивать три типа подсказок:

  • Сомнительная (whether) стратегия предсказания. Она описывает (для переходов типаcond, call, ret) как процессор должен предсказать условия перехода. (Для циклических переходов предсказание основывается наLCиEC). В табл. 4.26 показаны предложенные стратегии, которые могут быть подсказаны.

Табл.4.26. Подсказки Сомнительного предсказания в переходах.

Окончание

Стратегия

Действие

spnt

Статическое не принятие

Игнорировать этот переход, не выделять ресурсы предсказания для этого перехода

sptk

Статическое принятие

Всегда предсказывать принятым, не выделять ресурсы предсказания для этого перехода

dpnt

Динамическое не принятие

Использовать динамическое аппаратное предсказание. Если для этого перехода не существует информации о динамической истории, то переход не принимается

dptk

Динамическое принятие

Использовать динамическое аппаратное предсказание. Если для этого перехода не существует информации о динамической истории, то переход принимается

  • Последовательная предварительная выборка(prefetch). Она показывает, как много кода процессор должен выбрать предварительно из точки перехода (показана в табл.4.27). Для дальнейшей информации посмотрите документацию, определяющую процессор.

Табл. 4.27. Подсказки последовательной предварительной выборки в переходах

Окон­чание

Подсказка типа prefetch

Действие

few

Предварительная выборка нескольких строк

При предварительной выборке кода из точки перехода, предвыборка останавливается после нескольких строк (их число зависит от реализации)

many

Предварительная выборка многих строк

При предварительной выборке кода из точки перехода, выбирается много строк (также, их число зависит от реализации)

  • Освобождение предсказателя(predictor). Она обеспечивает повторное использование информации, чтобы позволить аппаратным средствам лучше управлять ресурсами предсказания перехода. Обычно ресурсы предсказания хранят следы большинства только что выполненных переходов. Однако иногда большинство только что выполненных переходов бесполезно запоминать, либо потому, что они не будут посещаться в обозримое время, либо потому, что инструкция подсказки будет предварительно пополнять информацию о повторном посещении этого перехода. В таких случаях эта подсказка может использоваться для освобождения ресурсов предсказания.

Табл.4.28. Подсказка для освобождения предсказателя.

Окончание

Действие

нет

Не делать освобождения

clr

Освободить информацию перехода

Соседние файлы в папке M9