Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВТ_2 часть.doc
Скачиваний:
6
Добавлен:
16.09.2019
Размер:
439.81 Кб
Скачать

8.9. Конвейерная обработка команд и данных.

Принцип конвейерной обработки начнём рассматривать с конвейера команд.

Пусть рабочий цикл МП состоит из k этапов, причём i-й этап имеет продолжительность ti. Тогда при последовательном выполнении этапов длительность цикла определяется суммой ТПОСЛ = , а общая производительность процессора РПОСЛ = 1/ операций/с.

Скорость работы МП может быть увеличена, если для выполнения каждого этапа ввести отдельный аппаратурный блок:

1

2

k-1

k

. . .

. . .

i

Блоки соединить так, чтобы резуль-

Позиции конвейера

тат выполнения некоторого этапа в данном блоке передавался для реализа- ции очередного этапа на следующий блок и т.д.

Полученная таким образом обрабатывающая линия, и называется конвейером.

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

В этом случае разбиение цикла на этапы и выбор длительности такта производятся согласно условиям:

t Т = max{ti}, i = 1,…, k; (максимальная из длительностей этапов)

ti + ti+1 > tТ, i = 1,…, k.

Если для каких-либо смежных этапов второе условие не выполняется, то их следует объединить в один этап либо наиболее длинный этап разбить на несколько этапов. В последнем случае заново выбирается tТ и вновь проверяется первое условие.

После того как все позиции конвейера окажутся заполненными, параллельно во времени будет обрабатываться k команд.

Действительно, в момент заполнения конвейера в k-ой позиции обрабатывается k-й этап первой команды, в (k-1)-й позиции – (k-1)-й этап второй команды и т.д., в первой позиции – первый этап k-й команды.

Теоретически соотношение производительностей процессора при конвейерной обработке и при последовательном выполнении этапов рабочего циклаи имеет вид: k/2 < (PКОНВПОСЛ)  k.

В действительности рост производительности МП оказывается ниже из-за простоев конвейера.

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

Таким образом, если pm – вероятность выборки команды, вызывающей задержку конвейера на m тактов (m = 1, 2,…, k), то действительная производительность конвейера будет в (1 + ) меньше теоретической.

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

В асинхронном конвейере команд нет единого такта работы его блоков.

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

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

В целях повышения производительности МП принцип конвейерной обработки широко используется и в АЛУ, которые строятся в виде арифметического конвейера, причём таких арифметических конвейерных линий в процессоре может быть несколько.

Подобные операционные устройства часто называют магистральными.

Пусть операционное устройство должно вычислять некоторую функцию Ф от входных данных.

Эту функцию можно представить в виде последовательности более простых подфункций: 12. . . k.

Результаты преобразования, выполняемые подфункцией i, используются в качестве входных данных при вычислении подфункции i+1.

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

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

В ряде МП одновременно присутствуют конвейер команд и арифметический конвейер.