Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на печать11.doc
Скачиваний:
43
Добавлен:
11.06.2015
Размер:
1.04 Mб
Скачать

48. Конфликты по управлению; способы минимизации потерь в результате конфликтов по управлению, прогнозирование ветвлений.

If (a==0)k=1; else k=2;

Ld r0, a

Cmp a,0

Jne else

Mov r1,1

St k,r1

Jmp exit

Else: mov r1,2

St k,r1

Exit:

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

Решение 2: статическое предсказание переходов. Условный переход назад считается выполняемым, а условный вперед невыполняемый.

Решение 3: Задержанный переход. Между условным переходом и след за ней командой разместить действие, которое не зависит от условного перехода

Решение 4: Динамическое предсказание переходов. В процессе работы команды накапливаются Статистическая информация, на основе которой делается вывод, будет совершаться переход, или нет.

Конструкторы используют для этого Breach Target Buffer

address

target

history

Address –адрес команды

Target – целевой адрес

History – история

Счетчик переходов исп. В качестве history. Если переход выполнился то счетчик ++, иначе --

Счетчик имеет 2n состояний. Счетчик < 2n-1 - не будет выполняться переход. Обычно используется 2 битный счетчик. Некоторые процессоры используют многоуровневую схему предсказания переходов, в которой применяются сразу несколько из описанных методик. Точность предсказаний превышает 90%

49. Суперскалярные процессоры и процессоры с длинным командным словом.

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

Для загрузки сущ. 2 подхода:

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

Код оп1

Операнды1

Код оп2

Операнды2

Код оп3

Операнды3

Код оп4

Операнды4

Процессор с длинным командным словом(пдкс). В пдкс задача планирования загрузки возложена на программиста. Или компилятора

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

ПДКС имеет преимущество в том, что процессор может рассмотреть больший объем кода, более тщательно, чем его спланировать с учетом конфликта по данным. ССП имеет преимущество в том, что он может более гибко обрабатывать конфликты по управлению, которые возникают динамически, в процессе работы программы. С другой стороны ссп может выбирать и использовать команды с учетом предсказаний переходов, поэтому реальный размер порции кода которые можно анализировать и выполнять ограничивается расстояниям между 2-мя условными переходами => ссп практически не способен проанализировать более 6-8 команд

  1. Обобщенная структура и функционирование суперскалярного процессора.

Структура ссп должна быть следующей

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

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

  1. Параллелизм в вычислительной системе, уровни параллельности.

Блок1:

Addsum = 0;

Evensum=0;

K=1;

Блок2:

While(k<limit)

Блок3:

{ l=k*k*k;

If(((k/2)*2)==k)

Блок4:

evensum+=l;

else

блок5:

addsum+=l;k++}

фрагмент можно разбить на блока, которые мы будем называть базовами элементами. ССП позволяет распараллелить вычисления в пределах одного базового блока. Ускорить выполнение данного фрагмента можно, если заранее попытаться выполнить некие длинные операции. Пусть все переменные (кроме sum), находятся в регистрах. Прием состоит в том, что действие выполняется до того, когда оно фактически нужно. В данном случае команду загрузки переменной из памяти совместить с вычислениями в выполняемыми в пределах одного блока. Такое выполнение команд из предположения что их результат в будущем понадобиться называется спекулятивными выполнением. Со спекулятивным выполнением связана она существенная проблема. Спекулятивная команда может вызвать исключительную ситуацию. Поэтому в процессорах, допускающих спекулятивную выполнение есть средства позволяющие отложить возбуждение исключений до того как результаты команды действительно понадобятся.

В пентиум 4 появилась команда speculative load . при такой загрузке прерывания, которые возбуждает команда, запрещаются. Перед тем, как переменная фактически используется производиться опрос спекулятивной загрузки, если исключение было, то возбуждается прерывания.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]