Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

01 23*56789 Время

(номер такта)

Рис. 9.36. Синхронный конвейер команд

Номинальная производительность синхронного конвейера при его полной загрузке

РТонв = 1/'т- (9-9)

Найдем соотношение производительностей процессора при

конвейерной обработке и при последовательном выполнении

этапов рабочего цикла.

Из (9.5) и (9.7) имеем

= (9.10)

1=1

а из (9.5) и (9.8) получаем

4<£(W+ 1) = 2*„осл- (9.11)

<=1

Из (9.10) и (9.11) получаем

к/2 <Р?о:впосл<к. (9.12)

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

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

Если рт — вероятность выборки команды, вызывающей за-

держку конвейера на т тактов (т = 1, 2, k)> то действи­

тельная производительность конвейера

(9.13)

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

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

В качестве примера применения асинхронного конвейера ко­манд может служить процессор ЭВМ ЕС-1050, в котором реали­зован конвейер, выполняющий одновременно три команды [18]. Рабочий цикл выполнения команды разбит на три этапа: I — выборка очередной команды; II — формирование исполнитель­ных адресов и выборка операндов; III — операция в АЛУ, фор­мирование признака результата и запись результата в память.

Для каждого из указанных этапов выполнения команды име­ется соответствующая аппаратура. Например, кроме сумматора АЛУ есть отдельный сумматор для формирования исполнитель­ного адреса на этапе II. На рис. 9.37 представлена структура управляющего устройства с «жесткой» логикой процессора ЭВМ ЕС-1050, на которой показаны блоки, управляющие процедура­ми отдельных этапов выполнения команды.

На рис. 9.38 показана временная диаграмма совмещения выполнения трех команд в ЭВМ ЕС-1050. Временная диаграмма построена для случая, когда выбираемый за одно обращение к памяти «участок программы» содержит четыре команды фор­мата RR.

Этап I содержит две процедуры: выборку из ОП участка программы (8 байт) и распаковку участка — выделение из него очередной команды и размещение ее в регистре команды.

Этап II в общем случае включает в себя формирование

■1

От ОП

г!~

БСА

1 'В АЛБ


Рис. 9.37. Структура управляю­щего устройства процессора: БВК — блок выборки команд;

БМП — блок местной памяти;

БВД — блок выборки данных;

БЦУ — блок центрального управ­ления; БСА — блок сумматора

адреса; БАР—блок адреса ре­зультата; АЛБ — арифметическо- логический блок; ПУ — пульт управления; УП — управляющие

сигналы

'т ПУ

| БВК

*

В ОП

1 w 1

УС ,

4

БВД

| ^Z7j

БМП

В ОП

БАР if В О П, каналы