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

=>

 

Вторая шина

 

Add Р1, Р2:

1. РN = R1;

2. Р1=RN+Р1;

ð  Параллельное выполнение операций

           Повышение производительности

 
3. РгАК=РгАК+1;

4. READ РгАК.

Add Р1, Р2:

0.  РгАК=РгАК+1;  (выполняется на INC)

 
1.  Р1=Р1+Р2, READ РгАК, РгАК=РгАК+1;

Идея метода заключается в использовании нескольких исполнительных устройств, которые одновременно выполняют несколько операций. Здесь ускорение работы тракта данных происходит путем добавления к нему дополнительной шины и дополнительного упрощенного АЛУ – инкрементора. Улучшенный тракт данных может одновременно подать значения двух регистров на вход АЛУ и одновременно посчитать адрес следующей команды.

Суперскалярные процессоры – процессоры, которые содержат несколько АЛУ и могут выполнять несколько арифметических операций одновременно.

КОНВЕЙЕРИЗАЦИЯ

                                   III стадия                                                                                                 I стадия

                                                                                       II стадия

I стадия: запись данных в регистры В и С и передача их в АЛУ (выборка операндов)

II стадия: выполнение операций в АЛУ, запись результата в регистр А

III стадия: сохранение результатов в регистр 1.

Такты

Add Р1, Р2

Add Р3, Р4

Add Р5, Р6

1

B=Р1, C=Р2

2

A=B+C

B=Р3, C=Р4

3

Р1=A

A=B+C

B=Р5, C=Р6

4

Р3=A

A=B+C

5

Р5=A

Стадии – это различные части тракта данных, которые при конвейеризации работают параллельно. Таким образом, основная идея конвейеризации заключается в разделении тракта данных на стадии. Повышение производительности достигается за счет того, что на нескольких стадиях могут выполняться параллельно несколько команд.

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

Недостаток: конвейер может сбиваться.

Регистры А, В, С не вносят задержку в работу тракта данных, т.к. не имеют управляющих сигналов и их значения всегда выставлены на шине.

По примеру программы можно судить о том, что на данном тракте данных может выполняться одновременно 3 команды.

Процессоры, использующие конвейеризацию тракта данных, – конвейеризованные процессоры.

ИЗМЕНЕНИЕ ПОСЛЕДОВАТЕЛЬНОСТИ ВЫПОЛНЕНИЯ КОМАНД И ПОДМЕНА РЕГИСТРОВ

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

1. Изменение последовательности выполнения команд

Программа (ПРОБЛЕМА)

Реальный порядок команд

(РЕШЕНИЕ ПРОБЛЕМЫ)

Р1=Р2+Р3

Р1=Р2+Р3

Р4=Р1+Р5 (используется регистр, значение кот. подсчитывается на предыдущей операции; т.е. конвейер в данном случае может сбиться, ему необходимо ждать окончания 1-й операции)

Р6=Р7+Р8

Р6=Р7+Р8

Р4=Р1+Р5 (здесь остановки конвейера для ожидания значения Р1 не потребуется)

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