Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
презентации акс / Выполнение программы в суперскалярном процессоре.ppt
Скачиваний:
59
Добавлен:
26.02.2016
Размер:
5.22 Mб
Скачать

Конвейерная и суперскалярная обработка

Двух позиционный конвейер выполнения

команд: а — упрощенное представление;

б — детализированное представление

Причины, которые не позволяют достичь увеличения скорости обработки вдвое на практике :

Время выполнения команды в общем случае больше времени извлечения. Следовательно, "позиция извлечения" конвейера будет вынуждена определенное время простаивать, дожидаясь, пока заполненный ею буфер не освободится.

Приступая к выполнению команды условного перехода, нельзя заранее предсказать, каков будет адрес следующей выполняемой команды. Следовательно, позиция извлечения должна дождаться завершения выполнения текущей команды, получить от нее адрес следующей выполняемой команды, и только после этого можно будет приступить к ее извлечению.

Временная диаграмма работы конвейера операций

Влияние команды условного перехода на работу конвейера операций

Алгоритм управления конвейером из шести рабочих позиций

ВЫВОДЫ

Чем большее количество "рабочих позиций" в конвейере (т.е. чем более детально разделен на этапы цикл обработки команды), тем выше будет быстродействие процессора. Однако это не совсем так. Еще при разработке семейства IBM S/360 в 60-х годах конструкторы фирмы указали на два фактора, которые сводят на нет, казалось бы, такую простую концепцию повышения эффективности

1 На каждой позиции конвейера существуют определенные накладные расходы, связанные с передачей данных из буфера в буфер и выполнением всевозможных подготовительных операций. Такие накладные расходы могут заметно увеличить время обработки отдельной команды, пока она пройдет все позиции конвейера. Это становится особенно существенным, когда последовательные команды логически очень тесно связаны то ли через часто встречающиеся команды условного перехода, то ли через данные, которые одной командой записываются в память, а другой — считываются.

Сложность схем управления памятью и регистрами, оптимизации работы конвейера резко возрастает с увеличением количества позиций. Это может привести к тому, что схема управления конвейером станет сложнее тех средств, которые реализуют "полезные" операции.

Из всего сказанного следует вывод — конвейерная организация может существенно повысить быстродействие процессора, но требует хорошо продуманных проектных решений, поддерживающих оптимальное соотношение между предполагаемым повышением производительности и сложностью средств реализации.

Производительность конвейера операций

Время такта конвейера - это время , необходимое для продвижения всех команд , на одну позицию вперед.

Длительность такта можно определить так:

=max[ i] + d= m +d

1<=i<=k, где m - максимальная задержка на позиции, т.е. задержка на той позиции конвейера , операция на которой выполняется дольше остальных

k - количество позиций конвейера

d- "паразитная" задержка на каждой позиции, связанная с распространением сигналов , выборкой из буфера и другими подобными служебными операциями.

Производительность конвейера операций

процессором с таким конвейером выполняется фрагмент программы из n команд, в котором отсутствуют команды переходов.

Суммарное время Tk , которое потребуется на выполнение всех n команд, можно оценить по формуле :

T k = [k +(n-1)]