Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конвейризация, суперскалярные процессоры.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
580 Кб
Скачать
☆

Синхронные линейные конвейеры

Эффективность синхронного конвейера во многом зависит от правильного выбора длительности трактового периода Tк. Минимально допустимую Тк можно определить как сумму наибольшего времени обработки на отдельной ступени конвейера Тcmax и времени записи результатов обработки в буферные регистры между ступенями конвейера Тбр:

Из-за вероятного вероятного «перекоса» в поступлении тактирующего сигнала в разные ступени конвейера предыдущую формулу следует дополнить еще одним элементом – максимальной величиной «перекоса» Тпк:

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

Из формулы следует, что для того, чтобы избежать подобной ситуации сумма Тбр +Тпк должна быть меньше минимального времени обработки ступени.

Нелинейные конвейеры

Конвейер всегда представляет собой линейную цепочку этапов. В ряде ситуаций оказывается выгодным, когда функциональные блоки соединены между собой не последовательно, а в соответствии с логикой обработки, при этом одни блоки в цепочке могут пропускаться, а другие – образовывать циклические структуры. Это позволяет с помощью одного и того же конвейера одновременно вычислять более одной функции. Структура нелинейного конвейера, одновременно вычисляющего две функции X и Y представлена на рисунке:

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

Так, в ходе реализации функции X запуск очередного ее вычисления возможен после 1, 3 и 6 тактов. Запуск функции Y возможен после 2 и 4 тактов. При запуске функции Y очередной ее запуск позволен после тактов 1, 3 и 5, а параллельный запуск функции X допустим после 2 и 4 тактов.

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

Идея конвейера команд была предложена в 1956 году академиком С. А. Лебедевым. Как известно, цикл команды представляет собой последовательность этапов. Возложив реализацию каждого из них на самостоятельное устройство и последовательно соединив такие устройства, мы получим классическую схему конвейера команд. Для иллюстрации выделим в цикле команды 6 этапов:

  1. Выбор команды (Чтение очередной команды, занесение ее в регистр команды)(ВК)

  2. Декодирование команды (Определение кода операции и способа адресации операндов)(ДК)

  3. Вычисление адреса операндов (Вычисление исполнительных адресов каждого из операндов в соответствии с указанным в команде способом их адресации)(ВА)

  4. Выработка операндов (Извлечение операндов из памяти)(ВО)

  5. Исполнение команды(ИК)

  6. Запись результата(ЗР)

Предполагается, что каждая команда обязательно проходит все 6 ступеней, хотя этот случай не совсем типичен. Так, команда загрузки регистра не требует этапа ЗР. Кроме того, здесь принято, что все этапы могут выполняться одновременно. Без конвейеризации выполнение 9 команд заняло бы 54(9*6) единицы времени. Использование конвейера сокращает это число до 14.

Конфликты в конвейере команд

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

  • Попыткой нескольких команд одновременно обратиться к одному и тому же ресурсу ВМ(структурный риск);

  • Взаимосвязью команд по данным(риск по данным);

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

Наиболее частый вид конфликтов по данным – ЧПЗ, поскольку операция чтения в цикле команды предшествует операции записи. ПО той же причине конфликты типа ЗПЧ большой проблемы не представляют.

В борьбе с конфликтами по данным выделяют два аспекта: своевременное обнаружение потенциального конфликта и его устранение. Признаком возникновения конфликта по данным между двумя командами i и j служит невыполнение хотя бы одного из трех условий Бернстейна:

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

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

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

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

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

  • Предсказание перехода

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

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

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