Основы конвейерной работы МП. Тактирование и управление временными задержками. Время прохождения автомата с памятью, страница 3

Для сравнения таких архитектур с базовой  (скалярной) и между собой полезно свести основные параметры в таблицу. Базовый конвейерный цикл скалярной ЭВМ принят за единицу.

Табл.   Сравнение производительности процессоров.

Тип архитектуры

Скалярная с  К-ступенчат. Конвейером

Суперскалярная  со степенью

«m»

Суперконвейерная

со степенью

«n»

Сеперскалярная,

Суперконвейерная

со степенью «m,n»

Машинный цикл конвейера

1

базовый цикл

1

1/n

1/n

Количество считанных команд

1

m

1

m

Задержка считывания

Команды

1

1

1/n

1/n

Задержка простой операции

1

1

1   (n 1/n)

1   (n 1/n)

Степень  параллелизмаКоманд (ILP)

1

m

n

mхn


В таблице ILP- степень параллелизма команд- максимальное количество команд, которые могут быть выполнены одновременно в конвейере.

Лекция 3.             Конвейеры суперскалярных  МП.

Производительность суперскалярного МП.

Производительность суперскалярного МП. определяется  в сравнении с базовым скалярным МП. Производительности определяется идеальным временем Т при выполнении N независимых команд, выполняемых на конвейере.

T(1,1)= K+N-1  (базовый цикл скалярного МП)

Идеальное время для суперскалярного МП с одновременным считыванием «m» команд:

   , (базовый цикл) где К- время необходимое для выполнения первых «m» команд на «m» конвейерах одновременно, а второе слагаемое определяет время, необходимое для выполнения остальных «N-m» команд, m каждый цикл на m конвейерах.

Идеальное ускорение суперскалярного МП определяется отношением:

S(m,1)=

При N®¥ , производительности стремится S(m,1) ®m

Т.О. производительность растет за счет пространственного параллелизма , обеспечиваемого несколькими конвейерами и обуживающими их исполнительными устройствами.

FDEW

1

МП со степенью парал.

m=3

Для суперскалярных МП со степенью «m» , команды должны быть считаны за один цикл и ILP должна быть равна «m» для полной занятости конвейеров МП и максимальной эффективности работы. Т.О. в «m» скалярном МП появляется несколько параллельно работающих исполнительных  устройств, которые в режиме конкуренции разделяют множественные конвейеры.

На рис.     в качестве примера представлена структура процессора с m=2 (т.е. с двумя конвейерами и четырьмя функциональными устройствами в исполнительной части и просмотровое окно, производящее предварительный просмотр и считывание неупорядочных (независимых) команд.

В данной архитектуре процессор считывает 2 команды за цикл, если нет конфликта по ресурсам исполнительных устройств и взаимозависимости по данным. Существует два конвейера, каждый из которых имеет 4 исполнительных устройства: выборки, декодирования, выполнения и загрузки/ сохранения.

Команды считываются из из КЗУ команд, данные из КЗУ данных.

Для упрощения, допустим, что каждая ступень конвейера требует для своей обработки один цикл, за исключением исполнительной ступени , которая может потребовать изменяемое число циклов. В процессоре находится четыре функциональных устройства (умножитель, сумматор, логическое устройство и устройство загрузки / сохранения. Эти устройства разделяются между 2-мя конвейерами на динамической основе. Умножитель-3-х ступенчатый, сумматор 2-х  ступенчатый, остальные  устройства- одноступенчатые.

Два устройства сохранения (S1,S2) используются динамично двумя конвейерами в соответствии с возможностями в данном цикле.

Просмотровое окно используется динамически для лучшей организации (выравнивания) конвейеров при выборочной чтении команд из общей очереди.

Основные проблемы организации конвейеров связаны с ограничениями задержек (stallig) отдельных ступеней и управлением подачей данных. Корректное управление работой конвейеров тесно связано с зависимостью по данным, т.к. параллельно могут быть выполнены только не зависимые от данных команды.

Зависимость по данным.

Поясним взаимозависимость на примере фрагмента программы.

Для фрагмента программы показаны графы зависимости по данным между командами.

1.       Содержимое регистра R1  загружается командой I1 и затем используется командой I2. В этом случае мы имеем зависимость от потока данных между I1®  I2  (flowdependence).