SlideShare a Scribd company logo
1 of 26
Download to read offline
Исследование характеристик динамического
предсказания ветвлений в конвейере с
использованием BTB (Branch Target Buffer)
Чёрная команда
Санкт-Петербургский политехнический университет Петра Великого
Антон Абрамов <abramov91@mail.ru>
Владислав Бусаров <happyfanik@yandex.ru>
Сергей Дедков <dsv.mail@yandex.ru>
Семён Мартынов <semen.martynov@gmail.com>
Николай Патраков <noon.vlg@gmail.com>
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
Конфликты по управлению
Конфликты по управлению связаны с изменением линейной
последовательности команд. В конвейерах конфликт возникает из-за
вычисления логического условия перехода и задержки получения
целевого адреса перехода.
В процессоре присутствует модуль предсказания переходов (Branch
Prediction 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 имеется адрес перехода (target
address).
Чёрная команда (СПбПУ) 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 ebx
8048295 sub esp
8048298 call 0x8048320
804829d add ebx
80482a3 mov eax
80482a9 test eax
80482ab 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

More Related Content

What's hot

Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOMYuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOMOdessaJS Conf
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data MATLAB
 
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...Mikhail Kurnosov
 
TRAFFIC SIMULATOR
TRAFFIC SIMULATORTRAFFIC SIMULATOR
TRAFFIC SIMULATORsoft-point
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППMATLAB
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияMATLAB
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Mikhail Kurnosov
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Mikhail Kurnosov
 
Полунатурная модель управляемой ракеты с пассивной ГСН
Полунатурная модель управляемой ракеты с пассивной ГСНПолунатурная модель управляемой ракеты с пассивной ГСН
Полунатурная модель управляемой ракеты с пассивной ГСНMATLAB
 
031
031031
031JIuc
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"Yandex
 
цсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памятицсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памятиIrina Hahanova
 
О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"Yandex
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
Анализ данных и машинное обучение
Анализ данных и машинное обучениеАнализ данных и машинное обучение
Анализ данных и машинное обучениеMATLAB
 
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...Alexey Paznikov
 
Семинар 12. Параллельное программирование на MPI (часть 5)
Семинар 12. Параллельное программирование на MPI (часть 5)Семинар 12. Параллельное программирование на MPI (часть 5)
Семинар 12. Параллельное программирование на MPI (часть 5)Mikhail Kurnosov
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPMikhail Kurnosov
 

What's hot (20)

Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOMYuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
Yuriy Sherstyuk - Algorithms in Front End: from V8 to VDOM
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
 
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
 
TRAFFIC SIMULATOR
TRAFFIC SIMULATORTRAFFIC SIMULATOR
TRAFFIC SIMULATOR
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКПП
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управления
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
 
Полунатурная модель управляемой ракеты с пассивной ГСН
Полунатурная модель управляемой ракеты с пассивной ГСНПолунатурная модель управляемой ракеты с пассивной ГСН
Полунатурная модель управляемой ракеты с пассивной ГСН
 
031
031031
031
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"
 
цсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памятицсноп 2 11_3_проект памяти
цсноп 2 11_3_проект памяти
 
О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Анализ данных и машинное обучение
Анализ данных и машинное обучениеАнализ данных и машинное обучение
Анализ данных и машинное обучение
 
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...
 
Семинар 12. Параллельное программирование на MPI (часть 5)
Семинар 12. Параллельное программирование на MPI (часть 5)Семинар 12. Параллельное программирование на MPI (часть 5)
Семинар 12. Параллельное программирование на MPI (часть 5)
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 

Viewers also liked

Lifecycle Management
Lifecycle ManagementLifecycle Management
Lifecycle ManagementGlen Alleman
 
Linux kernel development ch4
Linux kernel development   ch4Linux kernel development   ch4
Linux kernel development ch4huangachou
 
Final Deliverable-Enhancing Our Community's Response to Addiction Services
Final Deliverable-Enhancing Our Community's Response to Addiction ServicesFinal Deliverable-Enhancing Our Community's Response to Addiction Services
Final Deliverable-Enhancing Our Community's Response to Addiction ServicesClaire Jackson
 
Social Media Manager Portafolio - Redes Sociales - Community Manager
Social Media Manager Portafolio - Redes Sociales - Community ManagerSocial Media Manager Portafolio - Redes Sociales - Community Manager
Social Media Manager Portafolio - Redes Sociales - Community ManagerBridges Advertising
 
Becoming a black swan - How to apply for a startup
Becoming a black swan - How to apply for a startupBecoming a black swan - How to apply for a startup
Becoming a black swan - How to apply for a startupChristoph Speckmann
 

Viewers also liked (8)

scan0016
scan0016scan0016
scan0016
 
Lifecycle Management
Lifecycle ManagementLifecycle Management
Lifecycle Management
 
Linux kernel development ch4
Linux kernel development   ch4Linux kernel development   ch4
Linux kernel development ch4
 
Final Deliverable-Enhancing Our Community's Response to Addiction Services
Final Deliverable-Enhancing Our Community's Response to Addiction ServicesFinal Deliverable-Enhancing Our Community's Response to Addiction Services
Final Deliverable-Enhancing Our Community's Response to Addiction Services
 
Ethics in sports
Ethics in sportsEthics in sports
Ethics in sports
 
New Android NDK & JNI
New Android NDK & JNINew Android NDK & JNI
New Android NDK & JNI
 
Social Media Manager Portafolio - Redes Sociales - Community Manager
Social Media Manager Portafolio - Redes Sociales - Community ManagerSocial Media Manager Portafolio - Redes Sociales - Community Manager
Social Media Manager Portafolio - Redes Sociales - Community Manager
 
Becoming a black swan - How to apply for a startup
Becoming a black swan - How to apply for a startupBecoming a black swan - How to apply for a startup
Becoming a black swan - How to apply for a startup
 

Similar to Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB (Branch Target Buffer)

Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системpianist2317
 
Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...
Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...
Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...AIST
 
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)AvitoTech
 
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Iosif Itkin
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
Conveyor modeling and source optimization
Conveyor modeling and source optimizationConveyor modeling and source optimization
Conveyor modeling and source optimizationAndrey Glukhov
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техникаYerlanAbilmazhenov
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхSergey Vasilyev
 
Technopolis.NoSQL 03 Cassandra
Technopolis.NoSQL 03 CassandraTechnopolis.NoSQL 03 Cassandra
Technopolis.NoSQL 03 CassandraVadim Tsesko
 
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....HOWWEDOIT
 
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPIMPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPIMikhail Kurnosov
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...ITMO University
 
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейCisco Russia
 
презентация лекции №23
презентация лекции №23презентация лекции №23
презентация лекции №23student_kai
 
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюAlexey Paznikov
 

Similar to Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB (Branch Target Buffer) (20)

Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
 
Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...
Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...
Anton Agafonov and Vladislav Myasnikov - An algorithm for traffic flow parame...
 
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
"Опыт миграции между дата-центрами" Сергей Бурладян и Михаил Тюрин (Avito)
 
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Conveyor modeling and source optimization
Conveyor modeling and source optimizationConveyor modeling and source optimization
Conveyor modeling and source optimization
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техника
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данных
 
Technopolis.NoSQL 03 Cassandra
Technopolis.NoSQL 03 CassandraTechnopolis.NoSQL 03 Cassandra
Technopolis.NoSQL 03 Cassandra
 
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
 
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPIMPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
 
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
 
презентация лекции №23
презентация лекции №23презентация лекции №23
презентация лекции №23
 
Презентация 5
Презентация 5Презентация 5
Презентация 5
 
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
 

More from Semen Martynov

Software engineering seminars: jenkins
Software engineering seminars: jenkinsSoftware engineering seminars: jenkins
Software engineering seminars: jenkinsSemen Martynov
 
Software engineering seminars: jira
 Software engineering seminars: jira Software engineering seminars: jira
Software engineering seminars: jiraSemen Martynov
 
Software engineering seminars: gradle
 Software engineering seminars: gradle Software engineering seminars: gradle
Software engineering seminars: gradleSemen Martynov
 
Software engineering seminars: git
 Software engineering seminars: git Software engineering seminars: git
Software engineering seminars: gitSemen Martynov
 
Software engineering seminars: Docker
Software engineering seminars: DockerSoftware engineering seminars: Docker
Software engineering seminars: DockerSemen Martynov
 
Корпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формированиеКорпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формированиеSemen Martynov
 
Введение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinВведение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinSemen Martynov
 
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...Semen Martynov
 

More from Semen Martynov (9)

Software engineering seminars: jenkins
Software engineering seminars: jenkinsSoftware engineering seminars: jenkins
Software engineering seminars: jenkins
 
Software engineering seminars: jira
 Software engineering seminars: jira Software engineering seminars: jira
Software engineering seminars: jira
 
Software engineering seminars: gradle
 Software engineering seminars: gradle Software engineering seminars: gradle
Software engineering seminars: gradle
 
Software engineering seminars: git
 Software engineering seminars: git Software engineering seminars: git
Software engineering seminars: git
 
Software engineering seminars: Docker
Software engineering seminars: DockerSoftware engineering seminars: Docker
Software engineering seminars: Docker
 
Корпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формированиеКорпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формирование
 
Введение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinВведение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel Pin
 
Dauria aerospace
Dauria aerospaceDauria aerospace
Dauria aerospace
 
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
 

Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB (Branch Target Buffer)

  • 1. Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB (Branch Target Buffer) Чёрная команда Санкт-Петербургский политехнический университет Петра Великого Антон Абрамов <abramov91@mail.ru> Владислав Бусаров <happyfanik@yandex.ru> Сергей Дедков <dsv.mail@yandex.ru> Семён Мартынов <semen.martynov@gmail.com> Николай Патраков <noon.vlg@gmail.com> 8 марта 2016 г. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 1 / 26
  • 2. Содержание 1 Принципы конвейеризации 2 Конфликты в конвейере 3 Предсказание переходов 4 Статическое предсказание переходов 5 Динамическое предсказание переходов 6 Branch Target Buffer 7 Эксперимент 8 Вопросы Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 2 / 26
  • 3. Принципы конвейеризации Существует два подхода к увеличению быстродействия системы: Параллелизм — при параллельной обработке происходит совмещение во времени однотипных операций, выполняемых над разными блоками данных. Конвейеризация — при конвейерной обработке происходит совмещение разнородных вычислительных операций. Конвейер — способ организации вычислений, используемый в современных процессорах и контроллерах с целью повышения их производительности (увеличения числа инструкций, выполняемых в единицу времени), технология, используемая при разработке компьютеров и других цифровых электронных устройств. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 3 / 26
  • 4. Используется конвейерный принцип обработки информации с целью увеличения быстродействия процессора и максимального использования всех его возможностей в современных микропроцессорах. Выполнение каждой команды складывается из ряда последовательных этапов, суть которых не меняется от команды к команде. Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 4 / 26
  • 5. Принципы конвейеризации В различных процессорах количество и суть этапов различаются. Рассмотрим принципы конвейерной обработки информации на примере пятиступенчатого конвейера, в котором выполнение команды складывается из следующих этапов: IF ( INsTRuction Fetch ) - считывание команды в процессор; ID ( INsTRuction DecodINg ) - декодирование команды; OR ( Operand ReadINg ) - считывание операндов; EX ( ExecutINg ) - выполнение команды; WB ( Write Back ) - запись результата. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 5 / 26
  • 6. Принципы конвейеризации Рис. 1: Порядок выполнения команд в 5-ступенчатом конвейре Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 6 / 26
  • 7. Конфликты в конвейере Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом в установившемся режиме, то есть без перезагрузки конвейера. Наличие конфликтов в конвейере и его перезагрузки снижают реальную производительность конвейера по сравнению с идеальным случаем. Конфликты — это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее такте. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 7 / 26
  • 8. Конфликты в конвейере Конфликты делятся на три группы: структурные; по данным; по управлению. Структурные конфликты вызваны недостаточностью ресурсов вычислительной системы для обеспечения и обработки возможных комбинаций команд. Конфликт по данным возникает при наличии логических межкомандных зависимостей, т.е. при использовании одной командой результата выполнения другой команды. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 8 / 26
  • 9. Конфликты по управлению Конфликты по управлению связаны с изменением линейной последовательности команд. В конвейерах конфликт возникает из-за вычисления логического условия перехода и задержки получения целевого адреса перехода. В процессоре присутствует модуль предсказания переходов (Branch Prediction Unit). Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 9 / 26
  • 10. Предсказание переходов Модуль предсказания условных переходов(BranchPredictionUnit, BPU) –модуль процессора,определяющий будет ли выполнен переход и куда. Предсказывает условные переходы, вызовы/возвраты из функций; Вероятность предсказания переходов в современных процессорах превышает 0.9; Альтернативный подход (без BPU) - выполнять обе ветви ветвления, пока не будет вычислено управляющее выражение (условие). Типы предсказания переходов: Статическое предсказание переходов Динамическое предсказание переходов Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 10 / 26
  • 11. Статическое предсказание переходов Статическое предсказание (Static prediction) – фиксированное правило работы предсказателя – условный переход либо выполняются всегда, либо не выполняются никогда. Статические методы предсказания используются когда невозможно задействовать динамические. К статическим методам можно отнести: Возврат. Статическое прогнозирование перехода как: всегда выполняемого, либо – всегда не выполняемого. Разворачивание циклов. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 11 / 26
  • 12. Динамические предсказание переходов Динамическое предсказание (Dynamic prediction) – осуществляет предсказание направления переходов на основании результатов предыдущих выполнений данной команды. При использовании этих методов для команд условных переходов анализируется предыстория переходов - результаты нескольких предыдущих команд ветвления по данному адресу. В этом случае возможно определение чаще всего реализуемого направления ветвления, а также выявление чередующихся переходов. Информация о предыдущих ветвленияххранится в буфере предсказания переходов (Branch Target Buffer – BTB). Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 12 / 26
  • 13. Branch Target Buffer Branch Target Buffer (BTB) – это ассоциативный массив (хештаблица) сопоставляющий адресу инструкции ветвления историю переходов и адрес перехода. На этапе Fetch по адресу инструкции (по IP–Instr. Pointer) происходит обращение в BTB,если запись для IP есть, значит загруженная инструкция –это ветвлениеи в BTB имеется адрес перехода (target address). Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 13 / 26
  • 14. Branch History (1 bit) 0–ветвление не состоялось, не осуществлять переход; 1–ветвление состоялось, осуществлять переход. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 14 / 26
  • 15. Branch History (1 bit) Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 15 / 26
  • 16. Диаграмма состояний автомата схемы Смита Для описания процесса выполнения условных переходов исполь-зуется автомат Мура с 4-мя и более состояниями. Рассмотрим широко применяемый алгоритм Смита с двухразрядными счетчиками. В со-ответствии с ним ведется таблица истории переходов для каждой ус-ловной команды, содержащая по 2 бита на команду. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 16 / 26
  • 17. Эксперимент Задание 3. Исследование характеристик динамического предсказания ветвлений в конвейере с использованием BTB = Branch Target Buffer при разных размерах ВТВ, от 8 до 128 строк. На той же вычислительной нагрузке. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 17 / 26
  • 18. Ливерморские циклы "Ливерморские циклы"появился в середине 60-х годов и состоит из фрагментов программ, имеющих реальное хождение в Ливерморской Национальной лаборатории им. Лоуренса в США. Считается, что Ливерморские циклы – это типичный набор программ для решения численных задач. В этих фрагментах используются различные вычислительные алгоритмы: сеточные, последовательные, волновые, что существенно с точки зрения соответствия вычислительных и аппаратных структур. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 18 / 26
  • 19. Ливерморские циклы 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
  • 20. Результат Для изучения характеристик динамического предсказания ветвлений в конвейере, было решено построить модель BPU(Branch Prediction Unit) и использовать информацию о выполнении нагрузки, а именно результат профилирования. Для получения результатов профилирования был использован pintool: pin-instant. https://github.com/wuyongzheng/pin-instat Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 20 / 26
  • 21. Результат Профайлер вводит следующую информацию: 1 addr - время выполнения 2 opcode - код команды Пример вывода: 8048294 push ebx 8048295 sub esp 8048298 call 0x8048320 804829d add ebx 80482a3 mov eax 80482a9 test eax 80482ab jz 0x80482b3 Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 21 / 26
  • 22. Результат Всего команд: 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
  • 23. Результат Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 23 / 26
  • 24. Результат Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 24 / 26
  • 25. Выводы Количество команд перехода составляет около 20%, что означает большую значимость использования BTB. Как видно из результатов эксперимента используя BTB размером менее 32 строк не имеет смысла, а BTB больше 64 строк уеличивает процент попадания с ростом строк BTB незначительно. Следовательно, оптимальный размер BTB для данного эксперимента от 32 до 64 строк. Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 25 / 26
  • 26. Вопросы? Чёрная команда (СПбПУ) Branch Target Buffer 8 марта 2016 г. 26 / 26