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

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

Для завершения выполнения первой команды потребуется k тактов конвейера, а для завершения n-1 команд - еще n-1

тактов. Коэффициент повышения скорости Sk использования конвейера оценивается по формуле:

Sk = Ti / Tk = nk / [k+(n-1)] =nk/[k+(n-1)]

Чем больше позиций в конвейере , тем потенциально больший выигрыш в скорости можно получить !!!!!!

Обработка команд перехода.

Организация множества потоков

В простейшем варианте конвейера приходится платить штраф

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

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

2. В поток может попасть еще одна команда перехода до того , как первая будет окончательно обработана. Каждая такая команда потребует своего потока.

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

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

Организация буфера цикла

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

Применение буфера цикла имеет три достоинства:

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

2. Если адрес перехода недалеко отстоит от команды перехода, то команда, на которую задан переход, уже окажется в буфере. Это происходит при выполнении часто встречающихся программных конструкций вроде IF- THEN и IF- THEN-ELSE.

3. Этот подход очень хорошо сочетается с организацией в программе итерационных циклов (откуда и произошло название loop buffer - буфер цикла). Если буфер будет достаточно большим, чтобы включить все команды цикла, это избавит процессор от необходимости повторно извлекать их из памяти при обработке всех последующих циклов в программе.

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

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

Среди них наибольшую популярность приобрели следующие:

Переход не предполагается никогда

Всегда предполагается , что произойдет переход

Переход предполагается на основе анализа кода операции перехода

Использование переключателя "принято/не принято"

Анализ таблицы предыстории переходов

Диаграмма состояний автомата предсказаний перехода

переход

Предсказать

переход

перехо д

Предсказать

отсутствие

перехода

Нет перехода

переход

Нет перехода

переход

Предсказать

переход

Нет пере хода

 

Предсказать

Нет перехода

отсутствие

 

перехода

 

Рисунок 11.16. Диаграмма состояний автомата предсказаний перехода.

Схема обработки команд условного перехода по правилу " всегда предсказывать отсутствие перехода"

Следующий адрес в

 

 

 

 

 

 

 

 

 

 

 

программе

 

 

 

 

 

 

Схема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

управления

 

 

Память

 

 

 

 

 

 

 

 

 

 

выборкой из

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

памяти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема обработки

УУ неверного предсказания

перехода

Схема обработки команд условного перехода по правилу " всегда предсказывать отсутствие перехода"

Конвейр операций в микропрцессоре Intel 80486

ИК

 

Д1

 

 

Д2

 

 

ВК

 

 

ЗР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИК

 

Д1

 

 

Д2

 

 

ВК

 

ЗР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИК

 

 

Д1

 

 

Д2

ВК

 

ЗР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MOV R1, M1

MOV R1, R2

MOV M2, R1

Диаграммы прохождения разных последовательностей команд через конвейер операций

ИК

Д1

Д2

ВК

ЗР

 

MOV R1, M1

 

 

 

 

 

 

 

ИК

Д1

 

Д2

ВК

MOV R1, (R2)

 

 

 

 

 

 

 

ИК

Д1

Д2

ВК

ЗР

 

 

 

CMP R1, #I

 

 

 

 

 

 

 

 

 

ИК

Д1

Д2

ВК

 

 

 

 

 

 

 

JCC T

 

 

 

 

 

 

 

 

КОМАНДА ПО

 

 

 

 

ИК

Д1

Д2

ВК

 

 

 

 

АДРЕСУ T

 

 

 

 

 

 

 

 

 

Выполнение программы в суперскалярном процессоре