ВУЗ:
Составители:
63
дов. Конфликт проявляется в том, что адрес условного перехода определяется только в
конце выполнения команды, в то время, как конвейер уже должен быть заполнен коман-
дами из какой-то одной ветви. Если не обрабатывать конфликт, то производительность
конвейера может снижаться в 2 и большее число раз. Способы борьбы с конфликтами по
управлению можно разделить на 2 группы: статические и динамические.
К статическим методам можно отнести:
1) Возврат, т.е. статическое прогнозирование перехода как всегда выполняе-
мого, либо - всегда не выполняемого с последующей очисткой конвейера в слу-
чае неправильного прогноза и возвратом к нужной команде.
2) Разворачивание циклов. Поскольку многие условные переходы связаны с определе-
нием условия выхода из цикла, то в случае, когда число шагов цикла заранее известно и
невелико, можно «развернуть» цикл, то есть продублировать тело цикла столько раз,
сколько необходимо, отказавшись от проверки условия вообще. Это приведет к увеличе-
нию кода программы, но избавит от конфликта по управлению.
3) Задержанные переходы (использование «слотов задержки»).
Под слотами задержки понимают участки программы, которые будут занесены в кон-
вейер и успеют выполниться до выяснения адреса перехода в условной команде. Идея их
использования состоит в том, чтобы заполнять слоты задержки «полезными» или «не-
вредными» командами, то есть такими, которые либо не зависят от условия, либо - не
приведут к нарушению логики программы, даже если их выполнение окажется лишним.
(Рис. 4.9)
4) Предсказание переходов на основе профиля программы. Профилирова-
ние (profiling) предусматривает составление прогноза о выполнении тех или иных перехо-
дов на основе статистических наблюдений за программой по результатам ее многократно-
го прогона.
К динамическим методам можно отнести:
1) Приостановку конвейера до выяснения адреса перехода.
2) Реализацию команд условного перехода в процессоре таким образом,
чтобы адрес перехода выяснялся на начальных этапах выполнения
команды.
3) Динамическое предсказание ветвлений в процессоре (branching predict).
Динамическое предсказание ветвлений в процессорах осуществляется с помощью
буферов предсказания перехода (БПП - Branch Predicting Buffer -BPB). Чаще всего в
них используется счетчик прогнозов, который представляет собой обычный n-
дов. Конфликт проявляется в том, что адрес условного перехода определяется только в конце выполнения команды, в то время, как конвейер уже должен быть заполнен коман- дами из какой-то одной ветви. Если не обрабатывать конфликт, то производительность конвейера может снижаться в 2 и большее число раз. Способы борьбы с конфликтами по управлению можно разделить на 2 группы: статические и динамические. К статическим методам можно отнести: 1) Возврат, т.е. статическое прогнозирование перехода как всегда выполняе- мого, либо - всегда не выполняемого с последующей очисткой конвейера в слу- чае неправильного прогноза и возвратом к нужной команде. 2) Разворачивание циклов. Поскольку многие условные переходы связаны с определе- нием условия выхода из цикла, то в случае, когда число шагов цикла заранее известно и невелико, можно «развернуть» цикл, то есть продублировать тело цикла столько раз, сколько необходимо, отказавшись от проверки условия вообще. Это приведет к увеличе- нию кода программы, но избавит от конфликта по управлению. 3) Задержанные переходы (использование «слотов задержки»). Под слотами задержки понимают участки программы, которые будут занесены в кон- вейер и успеют выполниться до выяснения адреса перехода в условной команде. Идея их использования состоит в том, чтобы заполнять слоты задержки «полезными» или «не- вредными» командами, то есть такими, которые либо не зависят от условия, либо - не приведут к нарушению логики программы, даже если их выполнение окажется лишним. (Рис. 4.9) 4) Предсказание переходов на основе профиля программы. Профилирова- ние (profiling) предусматривает составление прогноза о выполнении тех или иных перехо- дов на основе статистических наблюдений за программой по результатам ее многократно- го прогона. К динамическим методам можно отнести: 1) Приостановку конвейера до выяснения адреса перехода. 2) Реализацию команд условного перехода в процессоре таким образом, чтобы адрес перехода выяснялся на начальных этапах выполнения команды. 3) Динамическое предсказание ветвлений в процессоре (branching predict). Динамическое предсказание ветвлений в процессорах осуществляется с помощью буферов предсказания перехода (БПП - Branch Predicting Buffer -BPB). Чаще всего в них используется счетчик прогнозов, который представляет собой обычный n- 63
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »