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