Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Повышение точности таймеров для встроенных вычислительных систем промышленного управления на основе OC LINUX Федотова Ирина Сергеевна

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Федотова Ирина Сергеевна. Повышение точности таймеров для встроенных вычислительных систем промышленного управления на основе OC LINUX: диссертация ... кандидата Технических наук: 05.13.15 / Федотова Ирина Сергеевна;[Место защиты: ФГБОУ ВО «Сибирский государственный университет телекоммуникаций и информатики»], 2018

Содержание к диссертации

Введение

1 Проблематика измерений времени современных вычислительных систем 10

1.1 Основные механизмы реального времени 13

1.2 Особенности механизмов реального времени на встроенных системах на базе процессоров ARM Cortex-A 18

1.3 Прогнозирование времени выполнения исходного кода 22

1.3.1 Сравнение и обзор существующих методов 25

1.3.2 Вероятностный подход предсказания времени выполнения 29

1.3.3 Алгоритм применения подхода MBPTA 36

1.3.4 Экспериментальная оценка применения вероятностного подхода MBPTA 36

1.4 Выводы 44

2 Методы повышения эффективности и точности таймеров 45

2.1 Разработка библиотеки поддержки высокоточных таймеров HighPerTimer 46

2.2 Измерение точности временных интервалов на ARM процессорах 47

2.2.1 Разработка функций чтения таймера 47

2.2.2 Разработка функций выполнения задержек 53

2.3 Влияние виртуализации аппаратных таймеров на измерения времени 58

2.3.1 Основные установки экспериментальной базы и методология их оценки 61

2.3.2 Результаты измерений и выводы 64

2.4 Выводы 76

3 Методика сложения оценок для системы управления 77

4 Применение методики сложения для анализа систем управления реального времени 79

4.1 Исследование сценария системы на основе интегрального таймера 79

4.1.1 Общая схема функционирования модели 79

4.1.2 Применение методики для прогнозирования времени 81

4.2 Исследование сценария системы на основе электромеханическом реле 87

4.2.1 Общая схема функционирования модели 87

4.2.2 Применение методики для прогнозирования времени 88

4.3 Исследование сценария системы на основе ветровой турбины 93

4.3.1 Общая схема функционирования модели 94

4.3.2 Применение методики для прогнозирования времени 95

4.4 Сравнение результатов и выводы 99

Заключение 101

Список сокращений 103

Список литературы 104

Приложение А 110

Введение к работе

Актуальность темы исследования. Многие современные встроенные системы реального времени состоят из нескольких приложений управления. Большинство таких приложений разработано как программные блоки для микропроцессоров, основная задача которых – управление соответствующими промышленными установками. Разработка встроенной системы управления состоит из двух главных этапов: синтез контроллеров и разработка приложений управления на исполнительной платформе. Синтез контроллера включает в себя задание правил управления, значений периода, задержки, крайнего срока выполнения задач. На этапе разработки, в свою очередь, происходит распределение и планирование вычислительных ресурсов приложения. Данная работа решает задачи предоставления высокой производительности и гарантированной безопасности работы приложения и фокусируется на проблемах эффективности таймерной поддержки встроенных микропроцессоров и оценки временных характеристик системы.

На сегодняшний день доля использования операционной системы GNU/Linux в таких областях промышленности как потребительская электроника, управление промышленным оборудованием, авиационная робототехника, достигает более 50%. Особенно это актуально для встраиваемых устройств с их ограниченными ресурсами. Для подобных систем GNU/Linux является идеальной операционной системой, благодаря своим скромным системным требованиям, открытому исходному коду и возможности использования любых существующих на рынке встраиваемых процессоров. Однако, при использовании такой ОС в процессе разработки могут возникать определённые сложности. Во-первых, известные недостатки временной поддержки стандартной библиотеки Си GNU усугубляются на встроенной версии Linux. Например, если в рамках архитектуры x86 издержки на переход контекста будут составлять десятки наносекунд, то для встроенных архитектур стоимость такого вызова может достигать уровня миллисекунд. Во-вторых, для встроенных платформ используется более широкий спектр архитектур и менее стандартизованных сред, что также создаёт определённые сложности. Так, например, на каждой встроенной архитектуре присутствуют уникальные регистры основного счётчика времени, которые отличаются своими характеристиками и возможностями, что затрудняет использование одного универсального интерфейса для измерений. В-третьих, доступ ко всем регистрам на встроенных платформах осуществляется через защищённое пространство ядра.

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

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

Значительный вклад в развитие теории и практики временного анализа вычислительных систем и систем реального времени внесли известные учёные, среди которых: R. Wilhelm, G. Buttazzo, G. Lipari, A. Burns, S. Edgar, L. Santinelli, J. Abella, L. Cucu-Grosjean, T. Nolte, I. Bate, F. Cazorla, E. Quiones, G. Bernat, E. Mezzeti, T. Vardanega, S. Altmeyer, S. Hissam, J. Hansen, G. Moreno, A. Colin, I. Puaut, P. Puschner, E. Bini, G. Lipari, L. Abeni, H. Falk, С. Сорокин, B. Brandenburg и др. На основе их работ предлагаются различные решения главной задачи теории реального времени и временного анализа — задачи предсказания временных характеристик, а именно, нахождения значения наихудшего времени выполнения системы, т.н. WCET (Worst Сase Execution Time). Новый перспективный подход вероятностного анализа временных характеристик системы был предложен в 2001 году и носит название MBPTA (Measurement-Based Probabilistic Timing Analysis). Однако, только с 2013 года начались активные исследования способов его применения, поиск недостатков и методов усовершенствования. При этом данный подход до сих пор применялся только к локальным компонентам приложения или в условиях т.н. бенчмарков. Другими словами, обеспечение временных гарантий системы в целом нуждается либо в новых подходах, либо в рассмотрении совокупности свойств так, чтобы гарантии, получаемые на уровне каждого компонента, могли быть объединены в глобальную оценку.

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

В соответствии с целью определены следующие задачи исследования:

  1. Теоретический анализ таймерной поддержки как на уровне аппаратного обеспечения, так и на уровне операционной системы GNU/Linux для встроенных микропроцессоров архитектуры ARM Cortex-A, и разработка подходов по увеличению точности и эффективности работы таймеров в различных условиях.

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

  3. Разработка на основе временного анализа MBPTA метода оценки временных характеристик по отношению к системе управления в целом, а именно, кластеризация на компоненты и сложение оценок для каждого блока.

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

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

Положения и результаты, выносимые на защиту, соответствуют следующим пунктам паспорта специальности 05.13.15 – «Вычислительные машины, комплексы и компьютерные сети»:

  1. Пункт 2 «Теоретический анализ и экспериментальное исследование функционирования вычислительных машин, комплексов и компьютерных сетей с целью улучшения их технико-экономических и эксплуатационных характеристик». Произведён теоретический анализ и экспериментальное исследование временных характеристик встроенных вычислительных машин. Создан инструмент, повышающий эффективность работы и точность современных аппаратных таймеров для встроенных вычислительных систем высокой производительности. Произведено экспериментальное исследование влияния виртуализации аппаратных таймеров на их точность. В условиях виртуализации предлагаемые методы таймерной поддержки показывают до двух раз более низкую временную стоимость чтения таймера и более 1000 раз, с уровня миллисекунд до микросекунд, меньшее значение времени промаха сна, чем функции из стандартной библиотеки Cи GNU для версии ядра Linux 4.2.

  2. Пункт 6 «Разработка научных методов, алгоритмов и программ, обеспечивающих надёжность, контроль и диагностику функционирования вычислительных машин, комплексов и компьютерных сетей». Экспериментально обоснован выбор вероятностного подхода для прогнозирования временных характеристик аппаратных таймеров. Метод впервые применён для предсказания времени чтения аппаратного таймера. Предложена методика кластеризации и сложения вероятностных оценок для отдельных блоков системы управления. С помощью модельных экспериментов показана согласованность и эффективность методики на работающих системах. Прогнозирование времени с помощью данной методики находится ближе в несколько десятков раз к реальным значениям, полученным на базе многочисленных эмпирических наблюдений, чем прогнозирование времени, основанное на модели «чёрного ящика».

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

1. Разработан механизм повышения точности таймеров для встроенных систем на базе процессора ARM Cortex-A до 4 раз при получении значения

времени и более чем в 1000 раз при вызове функции ожидания процесса при сохранении ресурсов ЦПУ по сравнению с системными вызовами стандартной библиотеки Cи GNU для версии ядра Linux до 4.2.

  1. Впервые показаны особенности применения метода MBPTA к отдельным элементам системы управления вместо модели «чёрного ящика».

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

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

Теоретическая и практическая значимость работы.

  1. Разработана программная библиотека HighPerTimer, предоставляющая унифицированный интерфейс доступа к известным аппаратным счётчикам времени встроенных процессоров на базе ARM Cortex-A через пользовательское пространство операционной системы GNU/Linux.

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

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

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

Программная библиотека HighPerTimer была успешно интегрирована в
коммерческий протокол для высокоскоростной передачи данных Reliable Multi-
Destination Transport (RMDT) компании Dexor GmbH. Кроме того, библиотека
интегрирована в коммерческие решения компании Axxeo GmbH в рамках
приложения управления действующих ветрогенераторов.

Алгоритмы оценки прогнозирования временных характеристик и метод
сложения оценок блоков временных характеристик, представленные в работе,
используются Институтом Медицины и Техники IMT (Institut fr Medizin und
Technik e.V., Koethen, Germany) для проектов BitBooster и CloudBDT, а также в
транспортных решениях лаборатории Future Intenet Lab Anhalt (FILA) и Dexor
GmbH.

Представленные в диссертации материалы используются в курсе лекций «Системное программирование» и «Системы реального времени» в Университете Прикладных Наук Анхальт, Кётен, Германия (Anhalt University of Applied Sciences).

Личный вклад. Выносимые на защиту результаты получены соискателем лично. В совместных работах постановки задач и разработка методов их решения осуществлялись при непосредственном участии соискателя.

Степень достоверности и апробация результатов подтверждаются проведёнными экспериментами и моделированием, согласованностью с данными, имеющимися в отечественной и зарубежной литературе. Результаты работы докладывались и обсуждались на международных и российских научных конференциях, в их числе: the International Conference on Networking and Services (ICNS-2013, Португалия), международная суперкомпьютерная конференция и конференция молодых учёных «Научный сервис в сети интернет» (2013, г. Новороссийск), the Scientific and Practical Conference «Information and Measuring Equipment and Technology» (2013, г. Томск), the International Conference on Applied Innovations in IT (ICAIT-2014, ICAIT-2017, Германия), Российская научно-техническая конференция «Современные проблемы телекоммуникаций», (2015, г. Новосибирск), Networking Day at Open Source Automation Development Lab (OSADL, 2015, 2016, Германия), the Advanced Doctoral Conference on Computing, Electrical and Industrial Systems (DoCEIS-2017, Португалия), the International Conference on Measurement Instrumentation and Electronics, (ICMIE-2017, Чехия), the IEEE International Conference on Smart Technologies (EUROCON-2017, Македония), а также на научных семинарах в Сибирском государственном университете телекоммуникаций и информатики и Институте физики полупроводников СО РАН.

Публикации. Автором по теме диссертации опубликовано 12 работ, в числе которых 4 статьи в журналах, из которых 2 входят в список ВАК и 2 журнала индексируются в Scopus, Web of Science и публикуются в издательстве Springer.

Структура и объем работы Диссертация состоит из введения, четырёх глав, заключения, списка литературы из 99 наименований. Общий объем диссертации – 113 страниц. Работа содержит 50 рисунков и 26 таблицы.

Особенности механизмов реального времени на встроенных системах на базе процессоров ARM Cortex-A

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

Около 2010 года появились миниатюрные компьютеры общего назначения с малым энергопотреблением и открытой легковесной ОС, часто основанной на ядре Linux. Наиболее популярные на сегодняшний день мини компьютеры представлены на платах Raspberry Pi, PandaBoard, Beaglebone и множестве подобных им аналогов. Как правило, компьютеры базируются на архитектуре ARM, которая по сравнению с x86 обладает гораздо более эффективными режимами энергосбережения и минимальными затратами на ресурсы. За счёт этого они начали очень широко применяться в мобильных устройствах, в различных учебных проектах, а также активно использоваться в управляющих системах в промышленности. Доля использования архитектуры ARM на рынке стремительно растёт и объясняется своей универсальностью и доступной ценой. Более конкретно, в данной работе рассматривается архитектура ARMv7 и семейство серии ARM Cortex-A. Данная серия ARM Cortex-A (куда относятся A5, A7, A8, A9, A12, A15 и A17) предоставляет ряд решений для устройств, которые используют OC типа Linux или Android, и используются в широком спектре приложений мобильных устройств и корпоративного сетевого оборудования. Вместе эта группа процессоров обеспечивает гибкость проектирования, предоставляя необходимую эффективность при экономичном использовании энергии.

Самый первый представитель серии Cortex - это процессор ARM Cortex-A8, который представляет собой высокопроизводительный, маломощный, кэшированный процессор приложений с полной виртуальной памятью. Процессор Cortex-A5 является наименьшим и наименее мощным элементом серии Cortex A, но предлагает возможность совмещения нескольких ядер на одной плате. Хорошо зарекомендовавший себя процессор среднего уровня, представленный ядром ARM Cortex-A9, обеспечивает производительность более 50% по сравнению с процессором Cortex-A8 в одноядерной конфигурации. Далее в работе рассматриваются описанные процессоры, представленные на платах PandaBoard ES для ARM Cortex-A9, AtmelBoard для ARM Cortex-A5 и BeagleBone Black/White для ARM Cortex-A8. Наиболее значимые общие архитектурные особенности процессоров этой серии:

– поддержка системы команд Thumb-2, которая расширяет ограниченный 16-битный набор команд Thumb дополнительными 32-битными командами;

– поддержка расширений Security Extensions, которые не только выполняют функции связанные с безопасностью, но и связанны с механизмами запуска и остановки процессорных ядер, перезагрузки системы, а также затрагивают модуль MMU, контроллер прерываний и контроллер шины;

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

– поддержка иерархического кэша; различные модели памяти формализованы (используется один из двух профилей памяти); использование Virtual Memory System Architecture (VMSA) с поддержкой виртуальной памяти;

– расширение NEON - поддержка инструкций векторной обработки данных с использованием отдельного конвейера и регистрового файла;

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

Архитектурные особенности и особенности работы с памятью

Архитектура ARM поддерживает модифицированную гарвардскую архитектуру и использует отдельный кэш для доступа к данным - D-кэш и к инструкциям - I-кэш внутри кристалла. Основное преимущество этого дизайна заключается в том, что с двумя интерфейсами к процессору ядро может одновременно загружать инструкцию и некоторые данные. При разделении каналов передачи команд и данных на кристалле процессора, последний должен иметь почти вдвое больше интерфейсных выводов, так как шина адреса и шина данных составляют основную часть выводов микропроцессора. Способом разрешения этой проблемы стала идея использовать общие шину данных и шину адреса для всех внешних данных, а внутри процессора использовать шину данных, шину команд и две шины адреса. Разделение шин в таком случае осуществляется при помощи раздельных управляющих сигналов: чтения, записи или выбора области памяти. Именно такая модифицированная концепция используется в ядрах ARM. Семейство процессоров Cortex-A имеет более сложные конвейеры - Cortex-A8 имеет 13-ступенчатый конвейер, Cortex-A5 и A9 - 8-ступенчатый. Cortex-A8 является первым процессором, поддерживающим суперскалярность и внеочередное исполнение машинных инструкций.

Кроме того, следует учитывать алгоритмы кэширования (алгоритмы вытеснения), присущие каждому процессору. Процессор Cortex-A8 поддерживает алгоритм Round-robin, который просто заменяет строки кэша в последовательном порядке, заменяя самый старый блок в наборе. Каждый набор кэш-памяти сопровождается круговым счётчиком, который указывает на следующий блок кэша, который необходимо заменить. При этом счётчик обновляется при каждом пропуске кэша. Процессор Cortex-A5 поддерживает псевдослучайный алгоритм замещения. Этот алгоритм не требует хранения какой-либо информации об истории доступа и допускает эффективное стохастическое моделирование [37] и также часто используется в других семействах процессорах ARM. Процессор Cortex-A9 поддерживает оба алгоритма -псевдослучайный и Round-robin.

Таймеры для Cortex-A8

Исследования временных характеристик выполняются на плате BeagleBone на базе процессора Texas Instruments (TI) Sitara AM335x ARM Cortex-A8. Микропроцессор имеет двое аппаратных часов, где источником периодических импульсов служит либо встроенный осциллятор, либо внешнее устройство. В случае внешнего осциллятора таймером управляет кварцевый генератор с частотой 32-КГц и он настраивается дополнительно таймером RTC. Основной осциллятор на устройстве производит главный высокочастотный синхросигнал с частотой 25 МГц. Согласно спецификации процессора [38], на этом процессоре находятся четыре таймера:

таймер двойного режима (DMTimer)

таймер двойного режима 1 мсек (DMTimer_1ms)

подсистема часов реального времени (RTS_SS)

сторожевой таймер (watchdog) Модуль DMTimer_1ms отвечает за генерацию точной отметки каждую миллисекунду с использованием тактового сигнала 32.768 КГц. Таймер DMTimer (по средством регистра DMTimer2) поддерживает тактовую частоту 25 МГц и имеет соответственно разрешение 40 нсек, что позволяет выполнять сравнительно быстрые измерения. Более того, в ядре Linux версии 3.8.10 таймер операционной системы также работает с частотой 25 МГц. Этот аспект подробно изучен в работе [6].

Таймеры для Cortex-A9

Для дальнейших исследований была выбрана плата Pandaboard ES на двухъядерном процессоре ARM Cortex-A9 от Texas Instruments (TI) OMAP 4430. Устройство включает в себя несколько типов таймеров, используемых системным программным обеспечением [39], в том числе:

одиннадцать таймеров общего назначения (General Purpose Timer, GPTimer);

два сторожевых таймера (watchdog)

таймер синхронизации 32 КГц (sync timer)

Разработка функций чтения таймера

Данная глава посвящена разработке методов повышения точности на встроенных платформах на базе процессов ARM. Однако, для получения более полной картины приведём краткое сравнение результатов средних значений стоимости обращения к таймеру и получения времени на различных платформах в таблице 6. В данных экспериментах в качестве системного вызова использована функция clock_gettime(). Следует заметить, что функция поддерживает различные типы часов. В контексте данной работы используются часы CLOCK_MONOTONIC, которые представляют собой абсолютное истекшее время настенных часов с некоторой произвольной неподвижной точки в прошлом. На значение, измеренное этим типом часов, не влияют изменения в системном времени суток.

Далее измерения проводятся на плате BeagleBone на базе процессора ARM Cortex A8. Встроенная версия ядра - Linux 3.8.13-bone47 с дистрибутивом Debian (wheezy), поддерживаемая стандартная библиотека языка Си GNU версией 2.13-38. Эксперимент измерения времени обращения к таймеру заключается в двух последовательных вызовах - либо функции HPTimer() либо clock_gettime()) и накоплением значений разности двух вызовов. Таким образом, исходим из того, что полученное значение представляет собой «стоимость» обращения к счётчику, или, другими словами, сколько времени потребуется на данный вызов. Библиотека HighPerTimer обращается к таймеру DMTimer, который поддерживает тактовую частоту 25 МГц и имеет соответственно разрешение 40 нсек. Системный таймер данной версии ядра Linux также работает с частотой 25 МГц. На рисунке 8 графически проиллюстрированы основные статистические характеристики для набора значений времени чтения таймера системным вызовом clock_gettime():

На рисунке 9 показаны основные статистические характеристики для набора значений методами библиотеки HighPerTimer. Далее для получения представления о наихудшем времени выполнения построим распределение функций CCDF на рисунке 10. Из графика видно, что оба способа по сути используют один и тот же источник времени - аппаратный таймер. Однако, избегая издержек переключения контекста при системном вызове, можно сохранить в 3 раза больше ресурсов. Далее измерения проводятся на плате Atmel на базе процессора ARM Cortex A5. Встроенная версия ядра - Linux 4.4.11-sama5-armv7-r6 с дистрибутивом Debian (jessie), поддерживаемая стандартная библиотека языка Си GNU версией 2.19-18. Аппаратный таймер работает на частоте 11 MГц. На рисунке 11 графически проиллюстрированы основные статистические характеристики для набора значений времени чтения таймера системным вызовом clock_gettime():

На рисунке 12 выше показаны основные статистические характеристики для набора значений методами библиотеки HighPerTimer. Из графика 13 прослеживается аналогичные тенденции поведения хвостов распределений. Среднее значение использования системного вызова составляет 1.280 мксек относительно 0.479 мксек при вызове метода HPTimer().

Применение методики для прогнозирования времени

В таблице 11 представлены основные статические величины на основе данных, собранных в результате выше описанного эксперимента. На рисунке 37 построены распределения функций CCDF для блока получения времени get_time() (синяя линяя) и блока управления интегральной схемой control_NE555() (красная линяя). Блок get_time() - это время длительности чтения значения аппаратного таймера, блок control_NE555() - это время длительности управляющего сигнала интегральным таймером NE555. Как и ожидалось, поведение функции получения времени характеризуется редкими, но высокими выбросами: распределение имеет довольно тяжёлый хвост, среднее значение 0.263 мксек при максимуме в 136 мксек. Однако, кривая функции ССDF измерений отклика интегральной схемы также имеет тяжёлый хвост. Из графика хорошо заметно константное значение генерируемой задержки в виде чёткой прямой линии (около 364.9 мксек) и дополнительный джиттер в виде выдающегося хвоста, где максимум достигает около 6.426 мсек Итак, найдём значения функции WCET для каждого блока, применяя подход MBPTA. На рисунке 38 представлены графики оценки стабильности параметров формы. Для компонента get_time() значение порога было выбрано в 17.2 мксек, что даёт 19 экстремумов. На рисунке 38(a) вертикальные линии демонстрируют величину доверительного интервала и в области 17.2 мксек его более высокое значение относительно предшествующих значений порога. Для компонента control_NE555() значение порога было выбрано в 6.399 мсек, что порождает в данном случае 21 экстремумов. На рисунке 38(б) заметно небольшое увлечение относительно предшествующих значений вертикальной линии после 6.3 мсек.

Далее в таблице 12 показаны результаты проверки распределений семейства Парето применительно к полученным экстремумам. Для блока получения времени значение параметра p при проверке распределения Фреше равно 0.190, что больше 0.05. Следовательно, гипотезу о том, что данные следуют распределению Фреше нельзя опровергнуть, тогда как в случаях Гумбеля и Вейбулла значение p слишком низкое. На рисунке 39 QQ график позволяет сравнить распределение исследуемой переменной с параметрическим распределением посредством эмпирических значений квантилей наблюдаемых данных и квантилей стандартной формы распределения. Таким образом, рассматриваем далее параметры распределения Фреше для блока get_time(). Для блока управления control_NE555() гипотезы о том, что экстремумы следуют распределению Фреше и Вейбулла не могут быть приняты, однако значение параметра p при проверке распределения Гумбеля равно 0.244, что считается приемлемым для принятия гипотезы. Более того, в случае Гумбеля параметры AIC и BIC также ниже, чем у Фреше и Вейбулла. Следовательно, для дальнейшего анализа учитываем параметры распределения Гумбеля.

Параметры распределения Фреше для блока get_time() и распределения Гумбеля для блока control_NE555() приведены в таблице 13. Подставляя данные параметры в формулу (1.12), получаем соответствующие значения WCET. Для вероятности риска 10-9 значение максимума чтения таймера достигает примерно 151 мсек

На следующем этапе применим предложенный метод сложения блоков и операцию свёртки. Результат представлен в таблице 14, где X - это время выполнения блока get_time(), выраженное в наносекундах, P(X) - значения функции распределения вероятностей от X, Y - время выполнения блока control_NE555() в наносекундах, P(Y) - значения функции распределения вероятностей от Y. Соответственно P(Z) =P(X)P(Y) - результат свёртки для двух блоков и P(S) =P(Z)P(X) - итоговый результат свёртки для всех трёх блоков согласно схеме на рисунке 34.

Далее применяем MBPTA подход к полученному набору S. Используя метод пороговых значений, находим оптимальное значение u = 6.67 мсек, что порождает 23 экстремума. Проверяя каждое распределение GPD по вышеуказанным критериям, находим подходящие параметры и рассчитываем значения WCET. В таблице 15 приведены данные результаты. Наконец, чтобы их оценить более детально, строим график функции плотности вероятности PDF обобщённого распределения Парето на основе экстремумов (рисунок 40).

На графике синяя линия изображает функцию GPD PDF для первого блока на основе оценённых параметров распределения Фреше. Из графика видно быстрое убывание функции и прогнозирование пессимистичных результатов. Красная линия изображает функцию GPD PDF для второго блока на основе оценённых параметров распределения Гумбеля. Фиолетовая линия демонстрирует функцию плотности обобщённого распределения Парето для данных полученных в результате свёртки. Кривая медленно убывает, что говорит о менее пессимистичных прогнозах относительно поведения синей линии (отдельно блока get_time()).

Таким образом, применяя предложенный подход «сложения» для p=10-9 итоговое значение WCET = 119.650 мсек, тогда как максимум, получаемый эмпирическими наблюдениями, 366.241 мсек. Анализируя результаты, можно заключить, что для сценария, основанного на интегральной схеме NE555, потенциальный выброс составляет около 120 мсек, что в 3 раза оптимистичнее, если применять вероятностный подход отдельно к каждому блоку.

Применение методики для прогнозирования времени

В таблице 11 представлены основные статические величины на основе данных, собранных в результате выше описанного эксперимента. На рисунке 42 построены распределения функций CCDF для блока получения времени get_time() (синяя линяя) и блока управления реле control_relay() (красная линяя). Поскольку для измерения времени используются аналогичные методы и условия на аппаратной платформе, данные для блока get_time() используются из предыдущего эксперимента. Однако, длина трейса уменьшена с 1e+06 до 1e+05, из-за высокой износоустойчивости применяемой модели реле. Блок control_relay() - это время длительности включения реле от момента отправки сигнала до момента срабатывания. Кривая функции ССDF измерений срабатывания реле практически не имеет хвоста, что говорит о небольшом количестве экстремумов и однородности набора.

На рисунке 43 представлены графики оценки стабильности параметров формы. Для компонента get_time() значение порога было выбрано в 10.4 мксек, что даёт 28 экстремумов. На рисунке 43 вертикальные линии демонстрируют величину доверительного интервала и в области примерно 10.4 мксек его более высокое значение относительно предшествующих потенциальных значений порога.

В таблице 17 показаны результаты проверки распределений семейства Парето применительно к полученным экстремумам. Для блока управления значение параметра p при проверке распределения Фреше равно 0.501, что удовлетворяет условию p 0.05.

Следовательно, гипотезу о том, что данные следуют распределению Фреше нельзя опровергнуть, тогда как в случаях Гумбеля и Вейбулла значение p ниже. Это также подтверждается дополнительными критериями, представленными выше. Таким образом, рассматриваем далее параметры распределения Фреше для блока control_relay(). Параметры распределения Фреше для блока control_relay() приведены в таблице 18.

Подставляя данные параметры в формулу (1.12), получаем соответствующие значения WCET. Для вероятности риска 10-9 значение максимума чтения таймера достигает примерно 96 сек, что, очевидно, вряд ли может быть использовано в реальных приложениях.

На следующем этапе применим предложенный метод сложения блоков и операцию свёртки. Результат представлен в таблице 19, где X - это время выполнения блока get_time() выраженное в наносекундах, P(X) - значения функции распределения вероятностей от X, Y - время выполнения блока control_relay() в наносекундах, P(Y) - значения функции распределения вероятностей от Y. Соответственно P(Z) =P(X)P(Y) - результат свёртки для двух блоков и P(S) =P(Z)P(X) - итоговый результат свёртки для всех трёх блоков согласно схеме на рисунке 45.

Применяя MBPTA метод для экстремумов, полученных путём свёртки, было выбрано значение порога в 13.365 мсек, что с наибольшей вероятностью подходит распределению Гумбеля. Результаты рассчитанных значений WCET с соответствующими параметра распределения Гумбеля представлены в таблице ниже

Факт того, что экстремальные значения блока контроля при сценарии на основе реле следуют распределению Фреше, предсказывает достаточно пессимистичную оценку возможных выбросов. Таким образом, применяя предложенный подход «сложения» для p = 10-9 , итоговое значение WCET = 178.715 мсек, тогда как максимум, получаемый эмпирическими наблюдениями, 96.542 сек. При этом максимальное значение в исходном наборе составляет 13.210 мсек, что в 3 раза оптимистичнее, чем если применять вероятностный подход отдельно к каждому блоку. Красная линия, соответствующая блоку control_relay(), с наибольшей вероятностью подходит распределению Фреше, и, как ожидается, убывает быстрее. Фиолетовая линия, соответствующая результату свёртки, убывает медленнее и производит менее пессимистичные результаты.