Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации / Конвейер команд.ppt
Скачиваний:
40
Добавлен:
11.04.2015
Размер:
1.18 Mб
Скачать

Предположим, 1 – команда условной передачи управления. После неё или 2, или N.

В конвейер загружаются и начинают выполняться команды 2, 3, 4. После 4 выясняется надо ли 5, 6 или N, N+1. Если переход не произойдёт, - конвейер не потеряет такты, произойдёт – потеряет 3 такта. Уже начавшиеся выполнятся команды 2, 3, 4 из ковейера удаляются.

В более простых вариантах процессора используется технология «отложенного перехода». 2,3,4 – не удаляются (слоты задержки перехода), и за правильность отвечает компилятор. Далее как и в случае конфликтов по данным.

В длинных конвейерах слотов задержки больше.

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

Передача адреса перехода в указатель команд

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

Устройство Е определяет, нужен ли переход, но сам адрес перехода вычисляется в D. В случае безусловного перехода целевой адрес

передаётся уже из D, вследствие чего теряется только один такт.

Конвейер при безусловном переходе

Branch Target Buffer

Ещё более дорогой вариант процессора имеет в своём составе буфер адресов перехода (Branch Target Buffer, BTB). Это небольшая кэш-память, хранящая таблицу последних переходов вида:

Устройство F, прежде чем выбрать команду, ищет её адрес в левой части таблицы и, если находит, выбирает команду по адресу из правой части таблицы. Это позволяет для 4-х ступенчатого контейнера вообще не терять ни одного такта.

В (Branch Target Instruction Cache) –BTIC хранятся хранятся и команды из этих адресов.

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

Существуют две группы методов борьбы с задержками.

1.Параллельное исполнение обеих ветвей алгоритма.

Для этого дублируется часть устройств конвейера.

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

конвейера

 

 

 

 

Окончание

 

 

 

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

Память

 

 

 

 

 

 

 

 

 

 

конвейера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ветвь 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ветвь 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ковейер с параллельными ветвями

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

F- вызов команды

D- декодирование команды Общая часть:

O- вызов операндов

E- вычисление

W- запись результата

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

Недостатки

Дорого

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

2 группа методов снижения потерь

Предсказание переходов:

Статические

Динамические