Аппаратно программные платформы корпоративных информационных систем

Параллелизм уровня команд: зависимости и конфликты по данным



Параллелизм уровня команд: зависимости и конфликты по данным

Все рассматриваемые в этой главе методы используют параллелизм, заложенный в последовательности команд. Как мы установили выше этот тип параллелизма называется параллелизмом уровня команд или ILP. Степень параллелизма, доступная внутри базового блока (линейной последовательности команд, переходы из вне которой разрешены только на ее вход, а переходы внутри которой разрешены только на ее выход) достаточно мала. Например, средняя частота переходов в целочисленных программах составляет около 16%. Это означает, что в среднем между двумя переходами выполняются примерно пять команд. Поскольку эти пять команд возможно взаимозависимые, то степень перекрытия, которую мы можем использовать внутри базового блока, возможно будет меньше чем пять. Чтобы получить существенное улучшение производительности, мы должны использовать параллелизм уровня команд одновременно для нескольких базовых блоков.



Метод Снижает
Разворачивание циклов Приостановки по управлению
Базовое планирование конвейера Приостановки RAW
Динамической планирование с централизованной схемой управления Приостановки RAW
Динамическое планирование с переименованием регистров Приостановки WAR и WAW
Динамическое прогнозирование переходов Приостановки по управлению
Выдача нескольких команд в одном такте Идеальный CPI
Анализ зависимостей компилятором Идеальный CPI и приостановки по данным
Программная конвейеризация и планирование трасс Идеальный CPI и приостановки по данным
Выполнение по предположению Все приостановки по данным и управлению
Динамическое устранение неоднозначности памяти Приостановки RAW, связанные с памятью



Содержание раздела