Параллелизм на уровне выполнения
В предыдущем разделе мы рассмотрели средства конвейеризации, которые обеспечивают совмещенный режим выполнения команд, когда они являются независимыми друг от друга. Это потенциальное совмещение выполнения команд называется параллелизмом на уровне команд. В данном разделе мы рассмотрим ряд методов развития идей конвейеризации, основанных на увеличении степени параллелизма, используемой при выполнении команд. Мы начнем с рассмотрения методов, позволяющих снизить влияние конфликтов по данным и по управлению, а затем вернемся к теме расширения возможностей процессора по использованию параллелизма, заложенного в программах.
Для начала запишем выражение, определяющее среднее количество тактов для выполнения команды в конвейере:
CPI конвейера = CPI идеального конвейера +
+ Приостановки из-за структурных конфликтов +
+ Приостановки из-за конфликтов типа RAW +
+ Приостановки из-за конфликтов типа WAR +
+ Приостановки из-за конфликтов типа WAW +
+ Приостановки из-за конфликтов по управлению
CPI идеального конвейера есть не что иное, как максимальная пропускная способность, достижимая при реализации. Уменьшая каждое из слагаемых в правой части выражения, мы минимизируем общий CPI конвейера и таким образом увеличиваем пропускную способность команд. Это выражение позволяет также охарактеризовать различные методы, которые будут рассмотрены в этой главе, по тому компоненту общего CPI, который соответствующий метод уменьшает. На рисунке 3.11 показаны некоторые методы, которые будут рассмотрены, и их воздействие на величину CPI.
Метод | Снижает |
Разворачивание циклов | Приостановки по управлению |
Базовое планирование конвейера | Приостановки RAW |
Динамической планирование с централизованной схемой управления | Приостановки RAW |
Динамическое планирование с переименованием регистров | Приостановки WAR и WAW |
Динамическое прогнозирование переходов | Приостановки по управлению |
Выдача нескольких команд в одном такте | Идеальный CPI |
Анализ зависимостей компилятором | Идеальный CPI и приостановки по данным |
Программная конвейеризация и планирование трасс | Идеальный CPI и приостановки по данным |
Выполнение по предположению | Все приостановки по данным и управлению |
Динамическое устранение неоднозначности памяти | Приостановки RAW, связанные с памятью |