Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Реферат АВС.doc
Скачиваний:
22
Добавлен:
05.09.2014
Размер:
333.82 Кб
Скачать

Отложенный переход. Его идея.

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

  • IF (Instruction Fetch) – считывание команды из памяти в процессор;

  • ID (Instruction Decoding) – декодирование команды (определение типа);

  • EX (Executing) – выполнение команды;

  • WB (Write Back) – запись результата в регистр.

IF

ID

EX

WB

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

1

F1

D1

E1

W1

2

F2

D2

E2

W2

3

F3

D3

E3

W3

4

F4

D4

E4

W4

На рисунке приведен конфликт по управлению, он возник при промахе при выборке команды из кэш-памяти.

Конфликт по управлению

  1. Безусловный переход

1

2

3

4

5

6

7

8

9

1

F1

D1

E1

W1

2

F2

D2

E2

3

F3

D3

X

4

F4

X

k

Fk

Dk

Ek

Wk

k+1

Fk+1

Dk+1

Ek+1

Wk+1

Предполагается, что адрес перехода вычисляется на шаге Е2. Затем требуется удаление команд 3 и 4, а также выборка команды К на такте 5. Из этого получается, что накладные расходы составляют 2 такта.

Для сокращения расходов безусловного перехода адрес нужно вычислять как можно раньше. Как правило в блоке выборки команд есть система, которая это делает. С ее помощью 2 задачи можно решить на шаге D и накладные расходы составят 1 такт.

1

2

3

4

5

6

7

8

9

1

F1

D1

E1

W1

2

F2

D2

Переход

3

F3

Х

k

Fk

Dk

Ek

Wk

k+1

Fk+1

Dk+1

Ek+1

Wk+1

  1. Условный переход

Команды условного перехода часто встречаются в программах - могут составлять 20% от всего количества команд. Т.к. условия перехода зависит от результата выполнения предыдущей команды, то могут возникать дополнительные конфликты.

  1. Отложенный переход

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

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

Пример использования:

LOOP Shift_left R1 Decrement R2 Branch=0 LOOP NEXT Add R1, R3

Реорганизуем программу:

LOOP Decrement R2 Branch=0 LOOP Shift_left R1 NEXT Add R1, R3

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

Логически программа выполняется так, как будто сам переход следует за командой сдвига. В сути переход происходит на одну команду позднее, отсюда и название - отложенный переход. Если проанализировать код программы, то, при использовании сложной компиляции один слот задержки можно заполнить в 85% случаев чем-то полезным.

Команда / Такты

1

2

3

4

5

6

7

8

Decrement

F

E

Branch

F

E

Shift (задержка)

F

E

Decrement

(переход выполняется)

F

E

Branch

F

E

Shift (задержка)

F

E

переход не выполняется

F

E