Arch: edit
This commit is contained in:
@ -1,16 +1,11 @@
|
||||
#### Статическое предсказание переходов.
|
||||
|
||||
- Выполняется компилятором.
|
||||
- Кодируется в инструкциях условного перехода, используя один бит предсказания.
|
||||
|
||||
Например: 0 - переход обычно не происходит, 1 - происходит.
|
||||
|
||||
Например: 0 - переход обычно не происходит, 1 - происходит.
|
||||
- Требует поддержки на уровне ISA.
|
||||
|
||||
**Два основных метода статич. предсказания переходов на этапе компиляции:**
|
||||
|
||||
- **Сбор информации о поведении программы при ее запусках и ее использование при перекомпиляции (профилирование).**
|
||||
Например: профиль программы может показать, что большинство условных переходов вперед и назад (часто вызвано циклами) происходят. В данном случае нужно всегда предсказывать, что переход происходит.
|
||||
- **Эвристическое предсказания переходов на основе направления перехода.**
|
||||
|
||||
Например: помечая переходы назад как происходящие и переходы вперед как не происходящие.
|
||||
**Два основных метода статического предсказания переходов на этапе компиляции:**
|
||||
- Сбор информации о поведении программы при её запусках и её использование при перекомпиляции (**профилирование**).
|
||||
*Например*: профиль программы может показать, что большинство условных переходов вперед и назад (часто вызвано циклами) происходят. В данном случае нужно всегда предсказывать, что переход происходит.
|
||||
- Эвристическое предсказание переходов на основе направления перехода.
|
||||
*Например*: помечая переходы назад как происходящие и переходы вперед как не происходящие.
|
Reference in New Issue
Block a user