Upload
semen-martynov
View
135
Download
3
Embed Size (px)
Citation preview
Исследование характеристик динамическогопредсказания ветвлений в конвейере с
использованием BTB (Branch Target Buffer)
Чёрная команда
Санкт-Петербургский политехнический университет Петра Великого
Антон Абрамов <[email protected]>Владислав Бусаров <[email protected]>
Сергей Дедков <[email protected]>Семён Мартынов <[email protected]>
Николай Патраков <[email protected]>
8 марта 2016 г.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 1 / 26
Содержание
1 Принципы конвейеризации
2 Конфликты в конвейере
3 Предсказание переходов
4 Статическое предсказание переходов
5 Динамическое предсказание переходов
6 Branch Target Buffer
7 Эксперимент
8 Вопросы
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 2 / 26
Принципы конвейеризации
Существует два подхода к увеличению быстродействия системы:
Параллелизм — при параллельной обработке происходитсовмещение во времени однотипных операций, выполняемых надразными блоками данных.
Конвейеризация — при конвейерной обработке происходитсовмещение разнородных вычислительных операций.
Конвейер —способ организации вычислений, используемый в современныхпроцессорах и контроллерах с целью повышения их производительности(увеличения числа инструкций, выполняемых в единицу времени),технология, используемая при разработке компьютеров и другихцифровых электронных устройств.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 3 / 26
Используется конвейерный принцип обработки информации с цельюувеличения быстродействия процессора и максимальногоиспользования всех его возможностей в современных микропроцессорах.Выполнение каждой команды складывается из ряда последовательныхэтапов, суть которых не меняется от команды к команде.
Этот принцип подразумевает, что в каждый момент времени процессорработает над различными стадиями выполнения нескольких команд,причем на выполнение каждой стадии выделяются отдельныеаппаратные ресурсы. По очередному тактовому импульсу каждаякоманда в конвейере продвигается на следующую стадию обработки,выполненная команда покидает конвейер, а новая поступает в него.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 4 / 26
Принципы конвейеризации
В различных процессорах количество и суть этапов различаются.
Рассмотрим принципы конвейерной обработки информации на примерепятиступенчатого конвейера, в котором выполнение командыскладывается из следующих этапов:
IF ( INsTRuction Fetch ) - считывание команды в процессор;
ID ( INsTRuction DecodINg ) - декодирование команды;
OR ( Operand ReadINg ) - считывание операндов;
EX ( ExecutINg ) - выполнение команды;
WB ( Write Back ) - запись результата.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 5 / 26
Принципы конвейеризации
Рис. 1: Порядок выполнения команд в 5-ступенчатом конвейре
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 6 / 26
Конфликты в конвейере
Значительное преимущество конвейерной обработки передпоследовательной имеет место в идеальном конвейере, в которомотсутствуют конфликты и все команды выполняются друг за другом вустановившемся режиме, то есть без перезагрузки конвейера. Наличиеконфликтов в конвейере и его перезагрузки снижают реальнуюпроизводительность конвейера по сравнению с идеальным случаем.
Конфликты —это такие ситуации в конвейерной обработке, которые препятствуютвыполнению очередной команды в предназначенном для нее такте.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 7 / 26
Конфликты в конвейере
Конфликты делятся на три группы:
структурные;
по данным;
по управлению.
Структурные конфликты вызваны недостаточностью ресурсоввычислительной системы для обеспечения и обработки возможныхкомбинаций команд.
Конфликт по данным возникает при наличии логическихмежкомандных зависимостей, т.е. при использовании одной командойрезультата выполнения другой команды.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 8 / 26
Конфликты по управлению
Конфликты по управлению связаны с изменением линейнойпоследовательности команд. В конвейерах конфликт возникает из-завычисления логического условия перехода и задержки полученияцелевого адреса перехода.
В процессоре присутствует модуль предсказания переходов (BranchPrediction Unit).
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 9 / 26
Предсказание переходов
Модуль предсказания условных переходов(BranchPredictionUnit, BPU)–модуль процессора,определяющий будет ли выполнен переход и куда.
Предсказывает условные переходы, вызовы/возвраты из функций;
Вероятность предсказания переходов в современных процессорахпревышает 0.9;
Альтернативный подход (без BPU) - выполнять обе ветвиветвления, пока не будет вычислено управляющее выражение(условие).
Типы предсказания переходов:
Статическое предсказание переходов
Динамическое предсказание переходов
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 10 / 26
Статическое предсказание переходов
Статическое предсказание (Static prediction) –фиксированное правило работы предсказателя – условный переход либовыполняются всегда, либо не выполняются никогда.
Статические методы предсказания используются когда невозможнозадействовать динамические.
К статическим методам можно отнести:
Возврат. Статическое прогнозирование перехода как: всегдавыполняемого, либо – всегда не выполняемого.
Разворачивание циклов.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 11 / 26
Динамические предсказание переходов
Динамическое предсказание (Dynamic prediction) –осуществляет предсказание направления переходов на основаниирезультатов предыдущих выполнений данной команды.
При использовании этих методов для команд условных переходованализируется предыстория переходов - результаты несколькихпредыдущих команд ветвления по данному адресу. В этом случаевозможно определение чаще всего реализуемого направления ветвления,а также выявление чередующихся переходов.
Информация о предыдущих ветвленияххранится в буфере предсказанияпереходов (Branch Target Buffer – BTB).
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 12 / 26
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
Branch History (1 bit)
0–ветвление не состоялось, не осуществлять переход;
1–ветвление состоялось, осуществлять переход.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 14 / 26
Branch History (1 bit)
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 15 / 26
Диаграмма состояний автомата схемы Смита
Для описания процесса выполнения условных переходов исполь-зуетсяавтомат Мура с 4-мя и более состояниями. Рассмотрим широкоприменяемый алгоритм Смита с двухразрядными счетчиками. Всо-ответствии с ним ведется таблица истории переходов для каждойус-ловной команды, содержащая по 2 бита на команду.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 16 / 26
Эксперимент
Задание 3. Исследование характеристик динамического предсказанияветвлений в конвейере с использованием BTB = Branch Target Bufferпри разных размерах ВТВ, от 8 до 128 строк. На той жевычислительной нагрузке.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 17 / 26
Ливерморские циклы
"Ливерморские циклы"появился в середине 60-х годов и состоит изфрагментов программ, имеющих реальное хождение в ЛиверморскойНациональной лаборатории им. Лоуренса в США.
Считается, что Ливерморские циклы – это типичный набор программдля решения численных задач. В этих фрагментах используютсяразличные вычислительные алгоритмы: сеточные, последовательные,волновые, что существенно с точки зрения соответствиявычислительных и аппаратных структур.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 18 / 26
Ливерморские циклы
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
Результат
Для изучения характеристик динамического предсказания ветвлений вконвейере, было решено построить модель BPU(Branch Prediction Unit)и использовать информацию о выполнении нагрузки, а именнорезультат профилирования.
Для получения результатов профилирования был использован pintool:pin-instant. https://github.com/wuyongzheng/pin-instat
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 20 / 26
Результат
Профайлер вводит следующую информацию:
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
Результат
Всего команд: 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
Результат
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 23 / 26
Результат
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 24 / 26
Выводы
Количество команд перехода составляет около 20%, что означаетбольшую значимость использования BTB.
Как видно из результатов эксперимента используя BTB размеромменее 32 строк не имеет смысла, а BTB больше 64 строкуеличивает процент попадания с ростом строк BTB незначительно.Следовательно, оптимальный размер BTB для данногоэксперимента от 32 до 64 строк.
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 25 / 26
Вопросы?
Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 26 / 26