Для студентов СПбГУ по предмету ДругиеРазработка профайлера для процессоров ARCРазработка профайлера для процессоров ARC
2024-08-042024-08-04СтудИзба
Курсовая работа: Разработка профайлера для процессоров ARC
Описание
Оглавление
3
4
Введение
Оптимизация программного обеспечения часто является одним из необ-ходимых этапов процесса разработки. Особенно сильно эта необходи-мость проявляется при работе со встраиваемыми системами или при программировании вспомогательных модулей аппаратного обеспечения, поскольку в данных случаях имеет значение не только общая произво-дительность и скорость выполнения алгоритма, но также потребление энергии и возможность удовлетворить требования используемых про-токолов взаимодействия с другими компонентами.
Вместе с тем, анализ выполнения программы, запущенной на от-дельном чипе, а не на компьютере разработчика, привносит ряд допол-нительных трудностей. Во-первых, такие системы обладают невысокой производительностью и небольшим по сравнению с рабочими станция-ми объемом памяти, вследствие чего встраивание профилирующих ин-струментов непосредственно в код программы может привести к су-щественным погрешностям в измерениях и невозможности сохранять данные анализа на устройстве. Во-вторых, даже при работе с удален-ным анализатором, запущенным на компьютере разработчика, возника-ет проблема в коммуникации между двумя системами по каналу связи, заведомо более медленному, чем процессоры этих систем, а также необ-ходимость дополнительных затрат на коммуникацию и синхронизацию данных между системами, что также может влиять на результаты ана-лиза.
Однако же, именно при анализе встраиваемых систем с жесткими ограничениями наиболее важна точность измерений и сохранение ха-рактеристик выполнения кода, как можно сильнее приближенных к та-ковым при реальной работе.
Введение | 5 | |||
1. | Постановка задачи | 6 | ||
2. | Обзор | 7 | ||
2.1. | Существующие техники профилирования . . . . . . . . . | 7 | ||
2.2. | Профилирование с использованием встроенных в обору- | |||
дованиесредств ........................ | 9 | |||
2.3. | ЯдраARC ........................... | 10 | ||
2.4. | Существующие инструменты для профилирования на ARC | 11 | ||
2.4.1. xCAM . . . . . . . . . . . . . . . . . . . . . . . . . . | 11 | |||
2.4.2. | nSIM . . . . . . . . . . . . . . . . . . . . . . . . . . | 11 | ||
2.4.3. RTT........................... | 11 | |||
2.5. | Используемые инструменты . . . . . . . . . . . . . . . . . | 12 | ||
3. | Сценарии и алгоритмы анализа | 14 | ||
3.1. | Ручной замер одного прохода участка кода . . . . . . . . | 14 | ||
3.2. | Автоматический замер многократного выполнения участ- | |||
какода ............................. | 14 | |||
3.3. | Точный сбор статистики потребления ресурсов функция- | |||
ми для однопроходных программ . . . . . . . . . . . . . . | 15 | |||
3.4. | Сбор статистики потребления ресурсов функциями для | |||
циклическихпрограмм.................... | 16 | |||
3.5. | Оптимизацияанализа..................... | 17 | ||
3.6. | Метрики ............................ | 18 | ||
4. | Решение | 20 | ||
4.1. | Взаимодействие с оборудованием . . . . . . . . . . . . . . | 20 | ||
4.2. | Инструментация........................ | 21 | ||
4.2.1. Инъекции........................ | 21 | |||
4.2.2. | Полезнаянагрузка .................. | 24 | ||
4.2.3. | Вспомогательный ассемблер . . . . . . . . . . . . . | 25 |
3
4.3. | Измерения ........................... | 25 | ||
4.3.1. Извлечение графа вызовов . . . . . . . . . . . . . . | 27 | |||
4.3.2. | Глобальный подсчет событий . . . . . . . . . . . . | 27 | ||
4.3.3. Подсчет событий на участке кода . . . . . . . . . . | 27 | |||
4.3.4. | Спускпографувызовов . . . . . . . . . . . . . . . | 28 | ||
4.4. | Обработкарезультатов.................... | 29 | ||
4.4.1. Хранение результатов . . . . . . . . . . . . . . . . . | 29 | |||
4.4.2. Вычислениеметрик. . . . . . . . . . . . . . . . . . | 31 | |||
4.4.3. | Представление результатов . . . . . . . . . . . . . | 32 | ||
4.5. | Пользовательские команды . . . . . . . . . . . . . . . . . | 32 | ||
5. | Тестирование | 34 | ||
6. | Апробация | 36 | ||
6.1. | Оценкаточности........................ | 36 | ||
6.2. | Оценкаприменимости .................... | 37 | ||
6.3. | Сравнение с существующими инструментами . . . . . . . | 37 | ||
7. | Заключение | 39 | ||
Список литературы | 40 |
4
Введение
Оптимизация программного обеспечения часто является одним из необ-ходимых этапов процесса разработки. Особенно сильно эта необходи-мость проявляется при работе со встраиваемыми системами или при программировании вспомогательных модулей аппаратного обеспечения, поскольку в данных случаях имеет значение не только общая произво-дительность и скорость выполнения алгоритма, но также потребление энергии и возможность удовлетворить требования используемых про-токолов взаимодействия с другими компонентами.
Вместе с тем, анализ выполнения программы, запущенной на от-дельном чипе, а не на компьютере разработчика, привносит ряд допол-нительных трудностей. Во-первых, такие системы обладают невысокой производительностью и небольшим по сравнению с рабочими станция-ми объемом памяти, вследствие чего встраивание профилирующих ин-струментов непосредственно в код программы может привести к су-щественным погрешностям в измерениях и невозможности сохранять данные анализа на устройстве. Во-вторых, даже при работе с удален-ным анализатором, запущенным на компьютере разработчика, возника-ет проблема в коммуникации между двумя системами по каналу связи, заведомо более медленному, чем процессоры этих систем, а также необ-ходимость дополнительных затрат на коммуникацию и синхронизацию данных между системами, что также может влиять на результаты ана-лиза.
Однако же, именно при анализе встраиваемых систем с жесткими ограничениями наиболее важна точность измерений и сохранение ха-рактеристик выполнения кода, как можно сильнее приближенных к та-ковым при реальной работе.
Характеристики курсовой работы
Список файлов
Разработка профайлера для процессоров ARC.doc