Исследование характеристик динамического...

26
Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB (Branch Target Buffer) Чёрная команда Санкт-Петербургский политехнический университет Петра Великого Антон Абрамов <[email protected]> Владислав Бусаров <[email protected]> Сергей Дедков <[email protected]> Семён Мартынов <[email protected]> Николай Патраков <[email protected]> 8 марта 2016 г. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 1 / 26

Transcript of Исследование характеристик динамического...

Page 1: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

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

использованием BTB (Branch Target Buffer)

Чёрная команда

Санкт-Петербургский политехнический университет Петра Великого

Антон Абрамов <[email protected]>Владислав Бусаров <[email protected]>

Сергей Дедков <[email protected]>Семён Мартынов <[email protected]>

Николай Патраков <[email protected]>

8 марта 2016 г.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 1 / 26

Page 2: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Содержание

1 Принципы конвейеризации

2 Конфликты в конвейере

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

4 Статическое предсказание переходов

5 Динамическое предсказание переходов

6 Branch Target Buffer

7 Эксперимент

8 Вопросы

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 2 / 26

Page 3: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Принципы конвейеризации

Существует два подхода к увеличению быстродействия системы:

Параллелизм — при параллельной обработке происходитсовмещение во времени однотипных операций, выполняемых надразными блоками данных.

Конвейеризация — при конвейерной обработке происходитсовмещение разнородных вычислительных операций.

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

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 3 / 26

Page 4: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

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

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

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 4 / 26

Page 5: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Принципы конвейеризации

В различных процессорах количество и суть этапов различаются.

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

IF ( INsTRuction Fetch ) - считывание команды в процессор;

ID ( INsTRuction DecodINg ) - декодирование команды;

OR ( Operand ReadINg ) - считывание операндов;

EX ( ExecutINg ) - выполнение команды;

WB ( Write Back ) - запись результата.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 5 / 26

Page 6: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Принципы конвейеризации

Рис. 1: Порядок выполнения команд в 5-ступенчатом конвейре

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 6 / 26

Page 7: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Конфликты в конвейере

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

Конфликты —это такие ситуации в конвейерной обработке, которые препятствуютвыполнению очередной команды в предназначенном для нее такте.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 7 / 26

Page 8: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Конфликты в конвейере

Конфликты делятся на три группы:

структурные;

по данным;

по управлению.

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

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

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 8 / 26

Page 9: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

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

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

В процессоре присутствует модуль предсказания переходов (BranchPrediction Unit).

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 9 / 26

Page 10: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

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

Модуль предсказания условных переходов(BranchPredictionUnit, BPU)–модуль процессора,определяющий будет ли выполнен переход и куда.

Предсказывает условные переходы, вызовы/возвраты из функций;

Вероятность предсказания переходов в современных процессорахпревышает 0.9;

Альтернативный подход (без BPU) - выполнять обе ветвиветвления, пока не будет вычислено управляющее выражение(условие).

Типы предсказания переходов:

Статическое предсказание переходов

Динамическое предсказание переходов

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 10 / 26

Page 11: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Статическое предсказание переходов

Статическое предсказание (Static prediction) –фиксированное правило работы предсказателя – условный переход либовыполняются всегда, либо не выполняются никогда.

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

К статическим методам можно отнести:

Возврат. Статическое прогнозирование перехода как: всегдавыполняемого, либо – всегда не выполняемого.

Разворачивание циклов.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 11 / 26

Page 12: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Динамические предсказание переходов

Динамическое предсказание (Dynamic prediction) –осуществляет предсказание направления переходов на основаниирезультатов предыдущих выполнений данной команды.

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

Информация о предыдущих ветвленияххранится в буфере предсказанияпереходов (Branch Target Buffer – BTB).

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 12 / 26

Page 13: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Branch Target Buffer

Branch Target Buffer (BTB) –это ассоциативный массив (хештаблица) сопоставляющий адресуинструкции ветвления историю переходов и адрес перехода.

На этапе Fetch по адресу инструкции (по IP–Instr. Pointer) происходитобращение в BTB,если запись для IP есть, значит загруженнаяинструкция –это ветвлениеи в BTB имеется адрес перехода (targetaddress).

Рис. 2: Branch Target BufferЧёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 13 / 26

Page 14: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Branch History (1 bit)

0–ветвление не состоялось, не осуществлять переход;

1–ветвление состоялось, осуществлять переход.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 14 / 26

Page 15: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Branch History (1 bit)

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 15 / 26

Page 16: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Диаграмма состояний автомата схемы Смита

Для описания процесса выполнения условных переходов исполь-зуетсяавтомат Мура с 4-мя и более состояниями. Рассмотрим широкоприменяемый алгоритм Смита с двухразрядными счетчиками. Всо-ответствии с ним ведется таблица истории переходов для каждойус-ловной команды, содержащая по 2 бита на команду.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 16 / 26

Page 17: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Эксперимент

Задание 3. Исследование характеристик динамического предсказанияветвлений в конвейере с использованием BTB = Branch Target Bufferпри разных размерах ВТВ, от 8 до 128 строк. На той жевычислительной нагрузке.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 17 / 26

Page 18: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Ливерморские циклы

"Ливерморские циклы"появился в середине 60-х годов и состоит изфрагментов программ, имеющих реальное хождение в ЛиверморскойНациональной лаборатории им. Лоуренса в США.

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

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 18 / 26

Page 19: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Ливерморские циклы

1 Hydro fragment

2 ICCG excerpt (Incomplete Cholesky Conjugate Gradient)

3 Inner product

4 Banded linear equations

5 Tri-diagonal elimination, below diagonal

6 General linear recurrence equations

7 Equation of state fragment

8 ADI integration

9 Integrate predictors

Исходный код https://github.com/SemenMartynov/SPbPU_ComputingSystems/tree/master/lab2/livermorec.txt

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 19 / 26

Page 20: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Результат

Для изучения характеристик динамического предсказания ветвлений вконвейере, было решено построить модель BPU(Branch Prediction Unit)и использовать информацию о выполнении нагрузки, а именнорезультат профилирования.

Для получения результатов профилирования был использован pintool:pin-instant. https://github.com/wuyongzheng/pin-instat

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 20 / 26

Page 21: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Результат

Профайлер вводит следующую информацию:

1 addr - время выполнения

2 opcode - код команды

Пример вывода:8048294 push ebx8048295 sub esp8048298 call 0x8048320804829d add ebx80482a3 mov eax80482a9 test eax80482ab jz 0x80482b3

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 21 / 26

Page 22: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Результат

Всего команд: 118735

Команд перехода: 21905

Результат выполнения/------------------------------------------------------------\|Размер BTB | All | Hit | Miss | BTB Hit | Percent ||-----------|---------|-------|-------|----------|-----------|| 8 | 21905 | 9324 | 12581 | 8460 | 38,62 || 16 | 21905 | 11930 | 9975 | 10866 | 49,6 || 32 | 21905 | 12777 | 9128 | 11179 | 51,03 || 64 | 21905 | 17643 | 4262 | 16011 | 73,09 || 128 | 21905 | 19274 | 2631 | 17422 | 79,54 |\------------------------------------------------------------/

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 22 / 26

Page 23: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Результат

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 23 / 26

Page 24: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Результат

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 24 / 26

Page 25: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Выводы

Количество команд перехода составляет около 20%, что означаетбольшую значимость использования BTB.

Как видно из результатов эксперимента используя BTB размеромменее 32 строк не имеет смысла, а BTB больше 64 строкуеличивает процент попадания с ростом строк BTB незначительно.Следовательно, оптимальный размер BTB для данногоэксперимента от 32 до 64 строк.

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 25 / 26

Page 26: Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB

Вопросы?

Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 26 / 26