Лекции. Системы реального времени (2015) (all in one) (1185224), страница 6
Текст из файла (страница 6)
вытеснение задач) должны бытьпредсказуемымиЧто делать:• Сбрасывать кэши при старте задач• Размещать данные по фиксированным адресам• Избегать сложного вычисления адресов53Константные длительности операцийпроцессора•Все операции процессора должны быть реализованы так, чтобывыполняться за константное время, независимо от значений операндов(пример: целочисленный сумматор всегда отрабатывает за 1 такт)•В частности, предикатные команды должны выполняться за константноевремя. Если предикат ложен, команда выполняется, но её результатыотбрасываются и не изменяют состояние процессора.•У циклически выполняемых команд в коде должны быть константныезначения числа итераций.54Производительность линейногокодаВремена выполнения ветвей, выбираемых в зависимости от входныхданных, суммируются в связи с линеаризацией. Время выполнения линейного кода довольно велико (посравнению с оригинальным), если путь выполнения оригинальногокода существенно зависит от входных данных55Производительность линейного кода(2)Процессоры с длинными конвейерами тратят многотактов на перезаполнение конвейера при ошибочномпредсказании ветвления. Предикатное выполнение может быть «дешевле»ветвления Современные компиляторы и процессоры могутиспользовать предикатное выполнение для улучшенияпроизводительности56Пример: ускорение за счет ifпреобразованияПредикатный кодВетвящийся кодВыполнение в трёхступенчатом конвейере:5 тактов6 тактов4 такта57Свойства процедуры линеаризации кода• Полнота: любой участок кода с ограниченным WCETможет быть линеаризован• В линеаризованном коде путь выполнения –единственный• Анализ WCET тривиален: запустить код и измеритьвремя (при «наихудшем» начальном состояниисистемы)• Код выполняется заметно дольше ветвящегося кода58Времена выполненияВремена выполнениядо и послелинеаризации59Оптимизация WCET на этапекомпиляции6162Наихудший путь• Внимание: в результате оптимизации другой путьможет стать наихудшим63Наихудший путь• Внимание: новый наихудший путь может выполнятьсядольше, чем первоначальный64Или всё-таки замерять?Почему нельзя просто измеритьWCET? Замер времени выполнения на всех путях выполненияреалистичной программы – на практике невозможен При определении тестовой выборки могут быть упущены редкиесценарии выполнения (обработка ошибочных ситуаций и т.п.) Выбранные тестовые данные могут не породить самую длинную(по времени) трассу выполнения Внутреннее состояние процессора на момент старта измеренийможет не быть наихудшимПростые замеры могут послужить источником первоначальной(грубой) нижней оценки WCET66С другой стороны…Не во всех случаях строго необходима безопасная (не заниженная) оценкаWCET• Системы мягкого реального времени (например, мультимедиа)• Системы, устойчивые к редким превышениям директивных сроковДля новой аппаратной платформы быстрее всего можно начать именно замерывремени выполнения (а статические методы анализа аппаратных задержекадаптировать долго)Низкие затраты на аннотирование кода => быстрое получение грубой оценки временивыполненияЗамеры дополняют статический анализ, предоставляя реальные значения задержекЗамеры могут использоваться для уточнения результатов статического анализа WCET• Моделировать некоторые современные процессоры действительно сложно• Для некоторых задач зависимость времени выполнения от входных данных понастоящему сложна (вещественные числа, массивы и т.п.)• Люди из промышленности требуют подтверждения теоретических оценок WCETданными «из жизни»67Оценка WCET с помощью измерений• Информация о таймингах получаетсяпутём измерения времени выполнениякода на реальной целевой аппаратуре• Точки инструментирования кодаформируют наблюдаемые извнесобытия, используемые для старта иТрассазавершения измерений• Трасса выполнения содержитсобираемую совместно информацию опутях в программе и временах ихвыполнения (путь = последовательностьлинейных участков)ВходныеданныеСостояниеКод +аппаратураСостояниеВыходныеданные 68••Необходимо СБРОСИТЬ состояние процессора (кэш, конвейер и т.п.) перед каждым прогономНО: для измерения WCET конкретного пути необходимо специфическое начальное состояниекэша (например, если путь входит в состав второй или более поздней итерации цикла, команды69должны находиться в кэше)Методы инструментирования• Чисто аппаратноеинструментирование• Внешние замерывремени выполненияпри помощипрограммноформируемыхсигналов вовне• Чисто программное(внутреннее)инструментирование70Важные соображения по замерамКак измерить именно то, что нужно:• Инструментирование кода не должно изменять путьвыполнения или время выполнения программынепредсказуемым или неизвестным способом.
Точкиинструментирования должны располагаться вфиксированных местах кода.• Нужна уверенность в том, что запуски для замероввсегда стартуют с известного требуемого состоянияпроцессора (кэш, конвейер, предсказание ветвлений ит.п.)71Промышленный подход• Пример промышленного процессаразработки:ПроектированиеТестированиеВнедрениеПлаты-прототипыАппаратура целевой системыАппаратура целевойсистемы72Промышленный подход – массивы входныхданных73Промышленный подход – случайныеданные74Поиск «наихудших» входных данных –оптимизационная задача• Массивы входных данных ограниченный перебор• Случайные входные данные случайный поиск• Как насчёт «умной» оптимизации?7576Схема эволюционного алгоритма• Отбор: выживание наиболееприспособленных. Отборрандомизирован и выполняетсяс учётом значения целевойфункции.• Скрещивание: обмен генами,например одно- или n-точечноескрещивание• Мутация: рандомизированноеизменение генов77Оценка WCET эволюционнымиалгоритмами• Ген = значение входной или внутреннейпеременной• Целевая функция = измеренное времявыполнения (больше значение => особьлучше)• Результат = «наилучшая особь» = особь(набор данных) с наибольшим временемвыполнения программы• Даёт хорошую, но небезопасную оценку WCET78Оценка WCET эволюционными алгоритмами• Старт– [0] x = 0, y = 0 -> ET: 40– [1] x = 1, y = 1 -> ET: 40• Скрещивание:– [2] x = 0, y = 1 -> ET: 50– [3] x = 1, y = 0 -> ET: 30Алгоритм завершается, еслизначение целевой функции неулучшается на протяжениизаданного числа итераций79Результат применения эволюционного алгоритмаЗавышеннаяПрограммаЗаниженнаяНетрезультатаТочность - ?80Выводы• Оценка WCET – сложная задача, разрешимая(безопасно и с приемлемой точностью) только длянекоторых типов процессоров и программ• На практике для оценки WCET применяется сочетаниеформальных методов и измерений• Система реального времени должна быть устойчива котдельным/локальным превышениям имеющихсяоценок WCET– сторожевые таймеры для обнаружения превышения WCET– устойчивость к сбросу задачи-нарушителя (и пропускуитерации её выполнения)– «растяжимые» периоды выполнения задач длядинамической регулировки загрузки процессора81Спасибо за внимание!82ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ СИСТЕМЫРЕАЛЬНОГО ВРЕМЕНИЛекция 7:Архитектура вычислительныхблоков ИУС РВКафедра АСВК,Лаборатория Вычислительных КомплексовБалашов В.В.ПланИНТЕГРАЦИЯ• Однопроцессорные вычислительныеблоки• Распределённые системы изоднопроцессорных блоков• Многомодульные вычислительныеблоки• Архитектура интегрированноймодульной авионики2Необходимый минимализм:однопроцессорные блоки• Технологические ограничения:– вынужденное применение «грубого»технологического процесса– жёсткие ограничения по размерам иэнергопотреблению• Откуда берутся ограничения– требование к устойчивости к внешнимвоздействиям (излучение и т.п.)– неразвитость технологических процессовпроизводства микросхем– общий лимит на размеры иэнергопотребление ИУС РВ3Аппараты с жёсткимиограничениями на ИУС РВ4Центральные ЭВМ марсоходовАппаратCPURAMFlashEEPROMОСSojourner(1997)Intel 80C85, 2 МГц, 5128-разрядный,Кбайт6000 транзисторов(аналог Intel 80801974 г.
разработки)176КбайтНетОднозадачная,жёсткийпорядоквыполнениязадачMarsExplorationRover(2004)IBM/BAE RAD6000,20 МГц,32-разрядный,1.1 млнтранзисторов128Мбайт256Мбайт3 МбайтVxWorks,многозадачнаяMarsScientificLaboratory(2011)BAE RAD750,132 МГц,10.4 млнтранзисторов256Мбайт2Гбайт256КбайтVxWorks,многозадачная5RAD7506Расширение одноплатногокомпьютера: карта-мезонин•••На одноплатном компьютере – локальная шина (например, PCI)К локальной шине присоединяется карта расширения (например,адаптер канала)Карта расширения не зависит от «основного» разъёма, черезкоторый компьютер подключается к управляемой системе7RAD750: внедрения• Deep Impact (полёт к комете)• Mars Reconnaissance Orbiter (спутникМарса)• Lunar Reconnaissance Orbiter (спутникЛуны)• WorldView-1 (спутник оптической съёмки)• Fermi Gamma-ray Space Telescope(орбитальный телескоп)• Kepler space telescope (орбитальныйтелескоп)• Wide-field Infrared Survey Explorer(орбитальный телескоп)• Mars Scientific Laboratory (марсоход)8Слабая интеграция: однопроцессорныеблоки на медленной шинеДатчикиИндикаторыОрганыуправленияСистемауправлениядвижениемРадиолокаторШина MIL STD-1553BОбщаяпамятьШина MIL STD-1553B:порядка 100 Кбайт/с9Назначение блоков• С-1:Прямой каналк радаруОбщая память– контроль состояния бортовых систем– выбор режима работы ИУС РВ– управление обменом по шине (контроллер канала)• С-2:– вычисление управляющих параметров полёта для передачив систему управления движением– подготовка данных для индикаторов• С-3:– вычисление параметров движения самолёта на основепоказаний датчиков– обеспечение движения самолёта по маршруту– управление датчиками• С-4:– управление полётом на малой высоте по показаниям радара10Тесная интеграция: шина VME• Параллельная шина с арбитражем• Реализует прямой доступ к памятимодулей• Объединяет модули в блок (крейт)• Разрядность шины данных:32 или 64 бита• Пропускная способность:– 40 Мбайт/с (VME32)– 80 Мбайт/с (VME64)– до 320 Мбайт/с (VME64 в блочномрежиме, на одну передачу адреса –несколько передач данных)11Структура шины VME••••Адресная шинаШина данныхШина арбитража (для управления доступом)Шина прерыванийЭто похоже напроцессорную шину!Это она и есть(процессор Motorola68000)12Роли модулей на шине VME– Ведущий (Master)• Может инициировать передачу данных– Подчинённый (Slave)• Отвечает на запросы от ведущего– Источник прерывания (Interrupter)• Модуль, способный формировать прерывание (обычно –подчинённый)– Обработчик прерывания (Interrupt handler)• Модуль, способный обрабатывать прерывания (какправило, одноплатный компьютер)– Арбитр (Arbiter)• Модуль, управляющий доступом к шине и осуществляющиймониторинг обмена по шине.