Оценка производительности идеального конвейера
Поскольку в каждом такте могут выполняться различные стадии обработки команд, длительность такта выбирается исходя из максимального времени выполнения всех стадий. Кроме того, следует учитывать, что для передачи команды с одной стадии обработки на другую требуется дополнительное время (t), связанное с записью промежуточных результатов обработки в буферные регистры.
Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):
TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.
Тогда, предполагая, что дополнительные расходы времени составляют t = 5 единиц, получим время такта:

Оценим время выполнения одной команды и некоторой группы команд при последовательной и конвейерной обработке.
При последовательной обработке время выполнения N команд составит:

Анализ таблицы 14.1 показывает, что при конвейерной обработке после того, как получен результат выполнения первой команды, результат очередной команды появляется в следующем такте работы процессора. Следовательно:

Примеры длительности выполнения некоторого количества команд при последовательной и конвейерной обработке приведены в таблице 14.2
Очевидно, что при достаточно длительной работе конвейера его быстродействие будет существенно превышать быстродействие, достигаемое при последовательной обработке команд. Это увеличение будет тем больше, чем меньше длительность такта конвейера и чем больше количество выполненных за рассматриваемый период команд. Сокращение длительности такта может достигаться разбиением выполнения команды на большое число этапов, каждый из которых включает в себя относительно простые операции и поэтому будет выполняться за более короткий промежуток времени. Так, если в микропроцессоре Pentium длина конвейера составляла 5 ступеней (при максимальной тактовой частоте 200 МГц), то в процессорах Pentium 4 на ядре Northwood длина конвейера составляла 20 ступеней, а на ядре Prescott она увеличена до 31 ступени при максимальной тактовой частоте 3,8 ГГц.
Таблица 14.2 - Оценка эффективности конвейерной обработки
| Количество команд
| Время
| | при последовательном выполнении
| при конвейерном выполнении
| | 1
| 100
| 150
| | 2
| 200
| 180
| | 10
| 1000
| 420
| | 100
| 10000
| 3120
|
Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом в установившемся режиме, то есть без перезагрузки конвейера. Наличие конфликтов в конвейере и его перезагрузки снижают реальную производительность конвейера по сравнению с идеальным случаем.
|