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

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

42

 

 

Золоторевич

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

43

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

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

Процессор начинает выбирать из памяти и выполнять команды по предсказанной ветви программы (так называемое исполнение по

предположению, или "спекулятивное" исполнение).

Однако так как направление перехода может быть предсказано неверно, то получаемые результаты с целью обеспечения возможности их аннулирования не записываются в память или регистры (то есть для них не выполняется этап WB), а накапливаются в специальном буфере результатов.

Физика компьютеров 2011 Л.А. Золоторевич

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

44

Если после формирования анализируемых признаков оказалось, что

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

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

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

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

Физика компьютеров 2011 Л.А. Золоторевич

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

45

 

 

Методы предсказания переходов делятся на статические и

 

динамические.

 

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

 

программы для каждой команды условного перехода указывается

 

направление наиболее вероятного ветвления.

 

Это указание делается или программистом с помощью

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

Физика компьютеров 2011 Л.А. Золоторевич

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

46

Статическое предсказание переходов осуществляется перед выполнением программы на этапе дешифрации стратегии:

1.Предсказание определяется по коду операции команды перехода. На основе кода операции команды перехода делается вывод, что для

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

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

адрес перехода меньше чем в счётчике команд, это означает что происходит переход назад.

3Переход имеет место всегда при первом выполнении команды.

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

4!!! Статическое предсказание ветвлений не обеспечивает требуемой точности прогнозов.

Физика компьютеров 2011 Л.А. Золоторевич

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

47

Методы динамического прогнозирования учитывают направления переходов, реализовывавшиеся этой командой при выполнении программы. Например, подсчитывается количество переходов, выполненных ранее по тому или иному направлению, и на основании этого определяется направление перехода при следующем выполнении данной команды.

Динамическое предсказание ветвлений – адаптивное, изменяется и приспосабливается.

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

В современных микропроцессорах вероятность правильного предсказания направления переходов достигает 90-95 %.

История переходов фиксируется в памяти перехода. Память перехода может состоять из 1 бита и отображать предыдущее состояние перехода.Если команда выполнилась и произошёл переход, в элемент памяти

заносится 1 (иначе 0). Тогда при очередном выполнении этой команды будет предсказан переход 1. Очередное предсказание совпадает с итогом предыдущего выполнения команды.

Физика компьютеров 2011 Л.А. Золоторевич

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

48

Использование таблицы истории переходов (BHT -Branch History Table).

История переходов заносится в BHT. Состояние элемента BHT определяет, произошёл ли переход в ходе выполнения команды K. Каждой команде условного перехода в BHT выделена отдельная строка, обращение к которой происходит с памяти младших разрядов счётчика.

Физика компьютеров 2011 Л.А. Золоторевич

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

49

Свойство таблицы BHT

Бимодальность:

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

содержат и сохраняют 1, другие 0. Две модальности 1 и 0. Благодаря этому свойству такая простая стратегия оказывается достаточно эффективной. Объём BHT 256 строк, не используемые строки оказываются пустыми.

Для длинных переходов таблица не годится. Для адресов большей разрядности используется буфер адресов ветвления, который реализуется в виде ассоциативной памяти (BTB). Эти адреса команд условного перехода уже содержатся в ассоциативной КЭШ – памяти.

Физика компьютеров 2011 Л.А. Золоторевич

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

50

Углубление истории переходов

Как показали исследования, исход команд переходов зависит от поведения предшествующих команд УП, т.е. между командами УП существует

определённая зависимость, анализ которой позволяет более точно выполнить предсказание.

Эта идея реализуется с помощью регистра глобальной истории.

Регистр глобальной истории

GHR – регистр глобальной истории представляет собой многоразрядный сдвиговый регистр. После выполнения очередного УП содержимое GHR сдвигается на 1 разряд влево, на освободившуюся позицию - 1, если переход был, 0 – если перехода не было. Отсюда следует что кодовая

комбинация GHR отображает историю выполнения команд УП.

Физика компьютеров 2011 Л.А. Золоторевич

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

51

Регистр глобальной истории

Объём таблицы ВТВ ограничен до 4000 строк. В каждой строке указывается значение числа битов предсказания переходов для каждого шаблона предыдущих переходов.

Если шаблоны повторяются и для них БПП=11, 10 – предсказывается переход в команде УП.

Физика компьютеров 2011 Л.А. Золоторевич