Files
2025-02-15 15:42:36 +03:00

15 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### Определение параллелизма уровня инструкций (ILP). Определение базового блока инструкций.
**Параллелизм уровня инструкций (ILP)** - возможность одновременного выполнения нескольких инструкций в конвейере ЦП.
ILP существует, когда инструкции в последовательности независимы и поэтому могут исполняться параллельно (с перекрытием). Конвейеры с большим ILP (меньшим числом зависимостей) показывают лучшую производительность на CPU с конвейером.
**Базовый блок инструкций** - линейная последовательность инструкций без переходов внутрь, за исключением точки входа, и без переходов наружу, за исключением точки выхода из последовательности. *Пример*: тело цикла.
- ILP в базовом блоке определяется имеющимися зависимостями между инструкциями и размером блока.
- В типичном целочисленном коде частота условных переходов около $15\%$, что дает средний размер базового блока - 7 инструкций.
- Любой статический метод, увеличивающий размер базового блока, расширяет блок инструкций для оптимального статического планирования конвейера компилятором и увеличивает ILP.
Один из таких методов - разворачивание цикла.
**Статический метод** - метод, который не имеет доступа к полям объекта, и для вызова такого метода не нужно создавать экземпляр класса, в котором он объявлен.