Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВС ( лекции) (2).docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.63 Mб
Скачать

Способы ускорения традиционных архитектур

Рисунок 10 Конвейеризация

Исходные данные помещаются во входной регистр, обрабатываются в функциональном блоке, а результат обработки фиксируется в выходном регистре. Если максимальное время обработки в ФБ=Tmax, то результат может быть занесен в Ргвых не ранее, чем через Tmax.

Распределим функции, выполняемые в ФБ, между тремя независимыми блоками так, чтобы максимальное время обработки в них была одинаковыми. Между блоками разместим буферные регистры, предназначенные для хранения результатов на случай, если следующий за ней ФБ не готов использовать этот результат.

В рассмотренной схеме данные на вход конвейера могут подаваться с интервалом . На практике редко удается добиться того, чтобы задержки в каждом ФБ были одинаковыми. Для устранения этого недостатка каждый буферный регистр заменяется буферной памятью, способной хранить множество данных и организованной по принципу FIFO.

Конвейер команд.

ВК – выборка команды

ДК – декодирование команды

ВА – вычисление адресов

ВО – выборка операндов

ИК – исполнение команды

ЗР – запись результата.

Рисунок 11 Конвейер команд

Конфликтные ситуации в конвейере принято обозначить термином риск. Они могут быть обусловлены:

  1. Попыткой нескольких команд одновременно обратиться к одному и тому же ресурсу вычислительной машины;

  2. Взаимосвязью команд по данным;

  3. Неоднозначностью при выборе следующей команды в случае команд перехода – риск по управлению;

Структурного риска можно избежать за счет модульного построения памяти и использования кэш-памяти.

Риск по данным возникает, когда две команды в конвейере i иj предусматривают обращение к одной и той же переменной x, причем i предшествует j. Возможные риски:

  1. Чтение после записи. Команда j читает x до того, как команда i успела записать новое значение x;

  2. Запись после чтения. Команда j записывает новое значение x до того, как команда i успела прочитать это x;

  3. Запись после записи. Команда j записывает новое значение x прежде, чем команда i успела записать в качестве x своё значение;

Наиболее частный вид конфликтов по данным - чтение после записи. Данный вид конфликта появляется в том случае, если командам в конвейере разрешается догонять предшествующие им команды, приостановленные из-за конфликтов.

Для борьбы с конфликтами по данным применяются программирование аппаратные методы. Программные методы ориентируются на устройстве конфликтов еще на стадии компиляции. Оптимизирующий компилятор пытается создать такой объектный код, чтобы между командами, склонными к конфликтам, находилось достаточное количество нейтральных команд. Если это не удается, то между конфликтующими командами вставляется необходимое количество NOP-ов.

01.10.2011

Фактическое разрешение конфликтов возлагается на аппаратные методы. Для этого осуществляется остановка команды на несколько тактов с тем, чтобы команда i успела завершиться или, по крайней мере, миновать ступень, вызвавшую конфликт.

При остановке конвейера задерживаются и следующие за j команды. Данную ситуацию называют пузырьком в конвейере.

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

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

  1. Буферы предвыборки;

  2. Множественные потоки;

  3. Задержанный переход;

  4. Предсказание перехода;