11 lines
1.4 KiB
Markdown
11 lines
1.4 KiB
Markdown
#### Статическое предсказание переходов.
|
||
- Выполняется компилятором.
|
||
- Кодируется в инструкциях условного перехода, используя один бит предсказания.
|
||
Например: 0 - переход обычно не происходит, 1 - происходит.
|
||
- Требует поддержки на уровне ISA.
|
||
|
||
**Два основных метода статического предсказания переходов на этапе компиляции:**
|
||
- Сбор информации о поведении программы при её запусках и её использование при перекомпиляции (**профилирование**).
|
||
*Например*: профиль программы может показать, что большинство условных переходов вперед и назад (часто вызвано циклами) происходят. В данном случае нужно всегда предсказывать, что переход происходит.
|
||
- Эвристическое предсказание переходов на основе направления перехода.
|
||
*Например*: помечая переходы назад как происходящие и переходы вперед как не происходящие. |