Скачиваний:
33
Добавлен:
01.05.2014
Размер:
257.54 Кб
Скачать

Диспетчеризация в конвейерных структурах

1.1. Общие сведения.

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

1) система выполняет повторяющуюся операцию;

2) эта операция может быть разделена на независимые части;

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

1.1.1. Принципы разбиения вычислительного процесса на ступени

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

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

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

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

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

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

Цифровой конвейер воспринимает данные, как непрерывный поток. На его вход поступают дискретные данные, которые перемещаются от ступени к ступени по сигналам датчика синхроимпульсов.

1.1.2. Таблицы занятости.

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

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

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

Каждый столбец представляет собой диаграмму внутреннего использования конвейера в определенные моменты времени. Для упрощения анализа временные сегменты нумеруются целыми числами; первый сегмент, во время которого совершается какое-либо действие конвейера, обозначается как 0-я единица времени, или как 0-1 цикл синхронизации. Общее число единиц времени от момента 0 до последнего сегмента, в котором все еще имеются действия конвейера, называется временем вычислениядля данной таблицы занятости. Каждая таблица занятости представляет в точности одно вычисление данной функции.

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

Время

0

1

2

3

4

5

6

Ступень 1

А

А

Ступень 2

А

А

А

Ступень 3

А

А

А

Время

0

1

2

3

4

5

6

7

Ступень 1

В

В

В

В

Ступень 2

В

В

Ступень 3

В

В

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

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

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

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

Вход Рис. А. Вход

Фиксатор Фиксатор

Фиксатор