Конфликты по управлению



Наибольшие проблемы при создании эффективного конвейера обусловлены появлением в программном коде команд перехода, которые изменяют естественный порядок вычисления. Команда перехода занимают 10-20% программного кода. Команды перехода приводят к остановке конвейера и снижению производительности всей системы.

Основные факторы приостановки конвейера: 1) характерен для любой команды перехода и связан с выборкой команды из точки перехода, т.е. спустя 2 такта постановки команды на конвейер необходимо определить адрес следующей команды. 2) характерно для команд условного перехода. Из точки перехода необходимо определить адрес следующей команды, которая чаще всего зависит от результата предыдущей команды.

Для эффективности конвейера и сокращения задержек, обусловленных выборкой команд из точки перехода, применяют несколько подходов: 1) вычисление Аисп перехода на ступенях декодирования команды; 2) использование буфера адресов переходов; 3) использование кэш-памяти для хранения команд; 4) использование буфера цикла.

1) В результате декодирования определяется принадлежность текущей команды к командам условного перехода, способ адресации и адресный код из точки перехода. Знание данной информации на первой ступени рабочего цикла процессора позволяет приступить к вычислению Аисп, не дожидаясь передачи команды далее на 3-ью ступень конвейера. Задержка сокращается с 2-х тактов до одного. В структуру вводятся дополнительные сумматоры для вычисления Аисп из точки перехода.

2) буфер адресов перехода. В структуру вводится небольшой объем кэш-памяти, в которой хранится Аисп из точек перехода нескольких команд. Перед выборкой очередной команды условного перехода ее адрес (СчК) сравнивается с адресами представленными в кэш-памяти для определения Аисп данной команды. Т.е. выборка команды может быть начат на 1 такт раньше. Если ссылка на данную команду в кэш-памяти отсутствует, то обработка осуществляется следующим образом: кэш-память формируется для команд условного перехода, в которых переход состоится.

3) использование кэш-памяти для хранения команд. Используют кэш-память для хранения команд, которые помимо Аисп для команды условного перехода хранят и код команды. Т.е. выигрыш достигается за счет того, что не вычисляется Аисп и исключается этап выборки команды. Данное решение эффективно при многократном повторе одних и тех же команд, т.е. при реализации циклов.

4) использование буфера циклов. В этом случае кэш-память входит в состав 1-ой ступени конвейера. В буфере содержится n последовательных команд в той последовательности, в которой они выбирались. При поступлении новой команды обращение производится к буферу. Если удача, то она выбирается из буфера. Обычно буфер достаточно большой, чтобы охватить все тело цикла. Такое решение было использовано при построении суперЭВМ.


 

13. Решение проблемы условного перехода: статические, динамические.

При решении проблемы условного перехода существует следующие способы построения конвейерной обработки: 1) использование буфера в предвыборке; 2) использование множественных потоков; 3) задержанный переход; 4)предсказание переходов.

1) Равномерное поступление команд на вход конвейера нарушается из-за: занятости ресурса или выборки «длинной» команды. Для ритмичности подачи команд между ступенью выборки команд и остальной частью конвейера размещают буфер предвыборки, т.е. дополнительная память FIFO. Такая память не удлиняет конвейер с точки зрения его производительности, а чаще приводит к ускорению прохождения команд из конвейера. Каждая команда, извлеченная из памяти, помещается в основной буфер. При появлении команды УП блок вычисления Аисп из точки перехода, дополнительный буфер производит выборку следующей команды. Блок перехода определяет исход команды УП в зависимости от которой подключается к конвейеру основной или дополнительный буфер. При этом содержимое другого буфера сбрасывается. Упрощенный вариант такого решения был применен в IBM 360, дополнительный буфер рассчитан на одну команду. Т.е. выигрыш достигается за счет исключения выборки команд на точку перехода.

Недостатки: 1) дублируются части оборудования; 2) если команды УП в программном коде находятся достаточно близко, то количество возможных ветвлений возрастает и должно быть увеличено количество буферов предвыборки.

2) конвейер с множественными потоками.

Рисунок!

На ступени выборки команд определяется наличие команд УП. Один конвейер определяет Аисп из точки перехода. Второй конвейер вычисляет Аисп при условии невыполненного перехода. Оба потока сходятся в точке, где тог проверки условия становится очевидным. В остаток конвейера «загружается» правильная ветвь. Такое решение было использовано в IBM 360.

Недостатки: 1)если команды УП располагаются близко, то это потребует увеличения количества делений, т.е. дополнительного потока.

3) задержанный переход. Такая стратегия предполагает продолжение выполнения команд, следующих за командой УП. Такое решение имеет смысл, если полезные? команды должны быть выполнены. Для реализации этой стратегии на этапе компиляции после каждой команды добавляется команда «нет операций». Затем на стадии оптимизации программы производится попытка перемешать команды так, чтобы команды «нет операций» заменялись на полезные команды. Это позволит заместить 20% команд «нет операций» на полезные команды.

4) предсказание переходов – эффективный способ борьбы с конфликтами по управлению. Точность предсказания – процентное отношение числа правильных предсказаний к их общему количеству. Используют 2 подхода: статический и динамический.

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

Используются следующие стратегии: 1) переход происходит всегда (ПВ); 2)переход не происходит никогда (ПН); 3)предсказание определяется по результатам профилирования; 4) предсказание определяется кодом операции команды перехода; 5) предсказание зависит от направления перехода; 6) при первом выполнении команды переход имеет место всегда.

ПВ. зависит от характеристик программы и алгоритма. Достоинства: простота реализации

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

Предсказание зависит от направления команды. Если указан в команде адрес перехода меньше содержимого СчК, то переход осуществляется «Назад» и для такой команды назначена стратегия ПВ. Если Аисп>СчК, то переход «вперед» и стратегия ПН. Обычно такая стратегия используется для реализации циклов.

При первом выполнении команды переход имеет место всегда. Стратегия однозначно определяет исход команды только при первом ее выполнении.


Дата добавления: 2015-12-17; просмотров: 122; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!