Выработка

команд

Декодирование

команды

Исполнение

команды

Слова

памяти

1 2 3 4 5

1 2 3

Ступень 1

1 2 3 4

Ступень 2

Ступень 3

Время

Число i соответствует i-й команде

Рис. 1. Цифровой конвейер ЭВМ

для повторяющегося выполнения той же функции, может выполнять ее за С/N наносекунд, что дает N-кратное увеличение производительности. Разуме­ется, на практике ограничения, накладываемые на достижимые скорости, связаны как с аппаратными средствами, так и с самой конвейеризуемой функцией. Однако даже при этих ограничениях резкое повышение про­изводительности все же возможно, и оно регулярно достигалось в реальных системах.

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

2. Функциональное разбиение и разбиение на ступени

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

• вычисление базовой функции эквивалентно некоторой последователь­ности вычислений подфункций;

• величины, являющиеся входными для данной подфункции, являются выходными величинами той подфункции, которая предшествует данной в цепочке вычисления;

• никаких других взаимосвязей, кроме обмена входными и выходными данными, между подфункциями нет;

• каждая подфункция может быть выполнена аппаратными блоками;

• времена, необходимые для реализации этими аппаратными блоками своих действий, приблизительно равны.

Аппаратные средства, необходимые для выполнения любой из этих под­функций, образуют ступень. В отличие от физического конвейера — трубо­провода, проводящего жидкость, — типичный цифровой конвейер не вос­принимает данные как непрерывный поток. На его вход поступают дискретные данные, которые перемещаются от ступени к ступени по сигналам датчика синхроимпульсов. (Хорошей физической аналогией здесь являет­ся наполнение бутылок на разливочной линии.)

Поскольку логические схемы, фактически выполняющие обработку на каждой ступени, обычно не имеют собственной памяти, указанная диск­ретность представления данных на каждой ступени требует, чтобы тот или иной элемент памяти был подключен к входу или выходу каждой ступени. Этот элемент препятствует перескоку данных, обрабатываемых на одной ступени, на следующую ступень, что привело бы к ошибочному воздейст­вию на эту ступень до истечения установленного периода обработки на сту­пенях. Такие перескоки могли бы возникать из-за различий в объеме логи­ческих операций на отдельных ступенях или изменений временных задер­жек на логических элементах. Эти межступенные элементы памяти пре­дотвращают перескоки, обеспечивая синхронизацию всех ступеней хотя бы один раз на каждом шаге обработки. Поступление синхроимпульса в конце каждого периода времени, соответствующего шагу обработки, инициирует выборку каждым элементом памяти выходных данных предыдущей ступе­ни и сохранение данных на своем выходе до поступления очередного синхро­импульса. В течение следующего периода эти выходные данные поступают на вход логики следующей ступени и с ее выхода будут выбраны следую­щим элементом памяти с приходом очередного синхроимпульса. В литера­туре эти устройства памяти называются по-разному: фиксатор ступени (staging latch) , платформа ступени (staging platform) или устройство заня­тости (reservation station).