Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура ЭВМу авг курс лекций.doc
Скачиваний:
24
Добавлен:
16.08.2019
Размер:
1.3 Mб
Скачать

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

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

Тк = ТСМАХ + ТБР.

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

Тк = ТСМАХ + ТБР + Тпк.

Каждая ступень может содержать множество логических трактов обработки. Тк определяется наиболее длинными трактами во всех ступенях конвейера. При разработке конвейера необходимо учитывать, что для двух последовательных эле­ментов, обрабатываемых одной и той же ступенью, обработка первого элемента может проходить по тракту максимальной длины, а второго элемента — по мини­мальному тракту. В итоге результат обработки второго элемента может появиться на выходе ступени прежде, чем в выходном регистре ступени будет запомнен пре­дыдущий результат. Чтобы избежать подобной ситуации, сумма ТБР + ТПК должна быть меньше минимального времени обработки в ступени ТСIMN, откуда

ТБР = ТCMIN – TПК.

Выбор длительности тактового периода для конвейера должен осуществляться с соблюдением соотношения

ТСМАХ + ТБР + ТПК = Тк = ТСМАХ + ТCMINTПК.

Несмотря на очевидные преимущества выбора Тк равным нижнему пределу, проектировщики ВМ обычно ориентируются на среднее значение между нижним и верхним пределами.

Метрики эффективности конвейеров

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

Под ускорением понимается отношение времени обработки без конвейера и при его наличии. Теоретически наилучшее время обработки входного потока из N зна­чений TNK на конвейере с К ступенями и тактовым периодом Тк можно определить выражением

TNK = (K + (N – 1))TK.

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

В процессоре без конвейера общее время выполнения составляет NKTK. Таким образом, ускорение вычислений S за счет конвейеризации вычислений можно опи­сать формулой

При ускорение стремится к величине, равной количеству ступеней в конвейере.

Еще одной метрикой, характеризующей конвейерный процессор, является эффективность Едоля ускорения, приходящаяся на одну ступень конвейера:

В качестве третьей метрики часто выступает пропускная способность или произ­водительность Рэффективность, делённая на длительность тактового периода:

При эффективность стремится к единице, а производительность — к частоте тактирования конвейера:

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

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

Рис.51. Нелинейный конвейер

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

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