- •Конвейерная и суперскалярная обработка
- •Двух позиционный конвейер выполнения
- •Причины, которые не позволяют достичь увеличения скорости обработки вдвое на практике :
- •Временная диаграмма работы конвейера операций
- •Влияние команды условного перехода на работу конвейера операций
- •Алгоритм управления конвейером из шести рабочих позиций
- •ВЫВОДЫ
- •Сложность схем управления памятью и регистрами, оптимизации работы конвейера резко возрастает с увеличением
- •Производительность конвейера операций
- •Производительность конвейера операций
- •Производительность конвейера операций
- •Обработка команд перехода.
- •Предварительное извлечение команды в точке перехода
- •Организация буфера цикла
- •Предсказание переходов
- •Диаграмма состояний автомата предсказаний перехода
- •Схема обработки команд условного перехода по правилу " всегда предсказывать отсутствие перехода"
- •Конвейр операций в микропрцессоре Intel 80486
- •Диаграммы прохождения разных последовательностей команд через конвейер операций
- •Выполнение программы в суперскалярном процессоре
- •Требования к аппаратным средствам, реализующим суперскалярную концепцию:
- •Процесс выполнения программы в Pentium II протекает следующим образом.
- •Узлы извлечения и расшифровки команд
- •Узел диспетчирования/выполнения
Конвейерная и суперскалярная обработка
Двух позиционный конвейер выполнения
команд: а — упрощенное представление;
б — детализированное представление
Причины, которые не позволяют достичь увеличения скорости обработки вдвое на практике :
Время выполнения команды в общем случае больше времени извлечения. Следовательно, "позиция извлечения" конвейера будет вынуждена определенное время простаивать, дожидаясь, пока заполненный ею буфер не освободится.
Приступая к выполнению команды условного перехода, нельзя заранее предсказать, каков будет адрес следующей выполняемой команды. Следовательно, позиция извлечения должна дождаться завершения выполнения текущей команды, получить от нее адрес следующей выполняемой команды, и только после этого можно будет приступить к ее извлечению.
Временная диаграмма работы конвейера операций
Влияние команды условного перехода на работу конвейера операций
Алгоритм управления конвейером из шести рабочих позиций
ВЫВОДЫ
Чем большее количество "рабочих позиций" в конвейере (т.е. чем более детально разделен на этапы цикл обработки команды), тем выше будет быстродействие процессора. Однако это не совсем так. Еще при разработке семейства IBM S/360 в 60-х годах конструкторы фирмы указали на два фактора, которые сводят на нет, казалось бы, такую простую концепцию повышения эффективности
1 На каждой позиции конвейера существуют определенные накладные расходы, связанные с передачей данных из буфера в буфер и выполнением всевозможных подготовительных операций. Такие накладные расходы могут заметно увеличить время обработки отдельной команды, пока она пройдет все позиции конвейера. Это становится особенно существенным, когда последовательные команды логически очень тесно связаны то ли через часто встречающиеся команды условного перехода, то ли через данные, которые одной командой записываются в память, а другой — считываются.
Сложность схем управления памятью и регистрами, оптимизации работы конвейера резко возрастает с увеличением количества позиций. Это может привести к тому, что схема управления конвейером станет сложнее тех средств, которые реализуют "полезные" операции.
Из всего сказанного следует вывод — конвейерная организация может существенно повысить быстродействие процессора, но требует хорошо продуманных проектных решений, поддерживающих оптимальное соотношение между предполагаемым повышением производительности и сложностью средств реализации.
Производительность конвейера операций
Время такта конвейера - это время , необходимое для продвижения всех команд , на одну позицию вперед.
Длительность такта можно определить так:
=max[ i] + d= m +d
1<=i<=k, где m - максимальная задержка на позиции, т.е. задержка на той позиции конвейера , операция на которой выполняется дольше остальных
k - количество позиций конвейера
d- "паразитная" задержка на каждой позиции, связанная с распространением сигналов , выборкой из буфера и другими подобными служебными операциями.
Производительность конвейера операций
процессором с таким конвейером выполняется фрагмент программы из n команд, в котором отсутствуют команды переходов.
Суммарное время Tk , которое потребуется на выполнение всех n команд, можно оценить по формуле :
T k = [k +(n-1)]