Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
99
Добавлен:
10.05.2015
Размер:
1.62 Mб
Скачать

1.2.2. Структура синхронного конвейера

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

Рис.4

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

Например, пусть функция Ф разбивается на 3 подфункции: ПФ1, ПФ2, ПФ3.(рис.5). Время работы логики при вычислении ПФ2 является наибольшим (рис. 6, а) и составляет 3t. С учетом времени работы фиксатора такт работы конвейера составит Т=4t. Тогда для приведения остальных ступеней ко времени Т в первую ступень требуется добавить 2 фиксатора, а в третью – 1 фиксатор. В результате получим следующую структуру конвейера (рис. 6, б).

Рис.5

Р

ис.6

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

1.2.3. Структура асинхронного конвейера.

Каждая ступень имеет 2 фиксатора: Фвх–входной фиксатор, и Фвых – выходной фиксатор. Поскольку ступени требует своего времени для вычисления подфункций, то могут сложиться следующие ситуации. i – ступень свою работу закончила, а i+1 ступень еще продолжает вычисления. Или i+1 ступень вычисления закончила, i – ступень еще продолжает работать. В первом случае i–ступень сбрасывает результат на Фвых, (рис.7), освобождая входной фиксатор, и может принять информацию с предыдущей ступени.

'

'

Рис.7

Ti – триггер флага готовности ступени к передаче информации.

T’i+1 – триггер флага готовности ступени к приему информации.

Во втором случае i+1 ступень фиксирует результат на выходном фиксаторе и переходит в режим ожидания завершения работы i-ступени.

Для организации связи между ступенями должны формироваться осведомительные сигналы готовности по приему и передаче данных, совпадение которых обеспечит открытие управляемой шины для передачи результатов с Фвыхi-й ступени на Фвх (i+1) ступени.

1.2.4. Многофункциональные конвейеры.

Основные понятия.

Латентность– интервал времени между соседними инициализациями конвейера. Если в каждом следующем такте осуществляется загрузка конвейера очередной функцией, то латентность такого конвейера равна 1. При этом для однофункциональных конвейеров достигается наивысшая производительность. Для многофункциональных конвейеров латентность меняется от 0 и выше. В реальных конвейерах, когда обрабатывается множество функций, могут возникать конфликты между различными функциями, которые в одном и том же такте могут потребовать одной и той же ступени конвейера [л 1].

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

Таблица занятости – предназначена для ликвидации вышеуказанных конфликтов. Представляет собой временные диаграммы работы конвейера для каждой функции с указанием времени занятости каждой ступени. Предположим, что в многофункциональном конвейере вычисляются следующие функции: Ф1 и Ф2.

Функции Ф1 соответствует таблица занятости, изображенная на рис.8, а функции Ф2

'

– таблица занятости – на рис. 9.

Т

ступ

1

2

3

4

5

6

Т

ступ

1

2

3

4

1

Ф1

1

Ф2

2

Ф1

2

3

Ф1

3

4

Ф1

4

Ф2

5

Ф1

5

Ф2

6

Ф1

6

Ф2

Рис.8

Рис.9

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

Рис.10

В результате имеем: в 4 и 5 тактах обе функции требуют аппаратные ресурсы соответственно 4 и 5 ступеней конвейера. Возникает конфликт по разделению ресурсов ступеней между вычисляемыми функциями.

Ликвидировать конфликт можно, увеличив латентность (рис.11).

Рис.11

При данной латентности конфликт ликвидирован но при этом в конвейере появляется «пузырь» на входе (в такте 2 1-я ступень простаивает) и производительность конвейера уменьшается.