- •Встроенные микропроцессорные системы
- •Оглавление
- •2. Программное обеспечение встроенных систем ……….
- •Введение
- •Модуль 1
- •Аппаратные средства встроенных систем
- •1.2. Элементы архитектуры процессоров встроенных систем
- •1.2.1. Множество команд
- •1.2.3.1. Адресное пространство
- •1.2.3.2. Порядок байт
- •1. 2.3.3. Когерентность памяти
- •1. 2.3.4. Защита памяти
- •1. 2. 4. Модель прерываний
- •1.2. 5.Модель управления памятью
- •1.2.5.1. Страничная организация памяти
- •1.2.5.2. Сегментация памяти
- •1.3. Типы процессоров
- •1.4. Формы параллелизма в процессорах
- •1.4.1. Конвейеризация
- •1.4.2. Параллелизм уровня команд
- •1.5.Технологии памяти
- •1.5.1. Оперативная память
- •1.5.1. 1. Статическое озу
- •1.5.2. Постоянное запоминающее устройство (rom)
- •1.6. Иерархия памяти
- •1.6.1. Распределение или карта памяти
- •1.6.2. Блокнотная и кэш память
- •1.6.2.1. Кэш-память прямого отображения
- •1.6.2.2. Ассоциативная по множеству кэш-память
- •1.6.2.3. Обновление кэш-памяти.
- •1.6.2.4. Протокол когерентности кэширования с обратной записью
- •1.7. Магистраль микропроцессорной системы
- •1.8. Базовые устройства ввода-вывода встроенных систем
- •1.8.1. Порты ввода-вывода общего назначения
- •1.7.2. Таймер-счетчик
- •1.8.3. Импульсно-кодовая модуляция.
- •1.8.4. Многоканальный аналого-цифровой преобразователь
- •1.9. Базовые последовательные интерфейсы ввода-вывода
- •1.9.2. Последовательный интерфейс spi
- •1.9.4.1. Введение в usb
- •1.9.4.2. Интерфейс Open Host Controller для usb
- •Вопросы для самоконтроля
- •Модуль 2
- •1.10. Язык проектирования аппаратуры vhdl
- •1.10.2. Введение в vhdl
- •1.10.2.1. Программирование на vhdl для моделирования и синтеза [19]
- •1.10.2.2. Entity и architecture
- •1.10.2.3. Операторы присваивание и process [19]
- •1.10.2.4. Цикл моделирования vhdl
- •1.10.2.5. Многозначная логика и стандарт ieee 1164
- •1.11. Проектирование устройств ввода-вывода и контроллеров
- •1.12. Интегрированная среда разработки аппаратных средств
- •Вопросы для самоконтроля
- •Модуль 3
- •2. Программное обеспечение встроенных систем
- •2.1 Модель вычислений
- •2.2 Автомат с конечным числом состояний
- •2.3. Асинхронный язык проектирования sdl
- •2.4. Синхронный язык проектирования Lustre
- •2.5. Многозадачность.
- •2.5.1. Язык программирования Си
- •2.5.2. Потоки
- •2.5.2.1. Реализация потоков
- •2.5.2.2. Взаимное исключение
- •2.5.2.3. Взаимная блокировка
- •2.5.2.4. Модели непротиворечивости памяти
- •2.5.2.5. Проблемы с потоками
- •2.5.3. Процессы и передача сообщений
- •2.6. Интегрированная среда разработки прикладного программного
- •2.6.2. Комплект программ Telelogic Tau sdl Suite
- •2.6.3. Средства разработки программного обеспечения
- •2.7.1. Моделирование, эмуляция и макетирование
- •2.7.2. Формальная верификация
- •2.7.3. Оценка производительности
- •2.7.3.1. Оценка wcet
- •2.7.3.2. Исчисление реального времени
- •1 2 3 E
- •2.7.4. Модели энергии и мощности
- •2.7.5. Тепловая модель
- •Вопросы для самоконтроля
- •Заключение
- •Задания
- •1. Конвейеризация
- •2. Иерархия памяти
- •3. Базовые устройства ввода-вывода встроенных систем
- •5. Многозадачность
- •6. Валидация и оценка проекта
- •Библиографический список
- •Встроенные микропроцессорные системы
Вопросы для самоконтроля
В чем суть проектирования программного обеспечения встроенных систем, основанного на модели?
Из каких элементов состоит модель вычислений?
Как в модели потока данных организованы вычисления?
Является ли временной автомат подмножеством расширенного автомата, если да, то почему?
Какого рода встроенные системы хорошо описывать на SDL и почему?
В чем суть различия синхронных и асинхронных языков для проектирования встроенных систем?
Как в SCADE выполняется формальная верификация?
Какие механизмы используются на среднем уровне программного обеспечения для реализации одновременного исполнения последовательного кода?
Для чего необходим механизм взаимного исключения?
Что гарантирует последовательная непротиворечивость памяти?
В чем различие между процессами и потоками?
Какие средства используют для валидации проектов прикладного ПО?
Заключение
В учебном пособии раскрываются особенности встроенных систем, область применения ипоследовательность их проектирования. Рассмотрены основные компоненты аппаратного обеспечения встроенных систем: процессор, память, устройства ввода вывода и интерфейсы их взаимодействия. Выбор процессоров для встроенных систем имеет важное последствие для программистов. Программисту может потребоваться использовать ассемблер для того чтобы воспользоваться скрытыми возможностями процессора. Для приложений требующих точных временных реакций управление временем в программах может оказаться трудной задачей из-за сбоев конвейера и необходимости учета работы других параллельных ресурсов процессора.
В результате освоения тем учебного пособия разработчик встроенных систем получает знания по архитектуре памяти целевого процессора и модели памяти языка программирования, а также то, что некорректное использование памяти может привести к экстремально трудно уловимым ошибкам, которые не обнаруживаются при тестировании. Эти ошибки проявляются только в окончательном изделии и могут оказаться роковыми как для пользователей, так и для поставщиков оборудования.
Разработчик получает знания о том, какие части адресного пространства относится к зависимой и энергонезависимой памяти, а также технологии основной памяти и архитектуру кэш памяти. Это необходимо для понимания времени выполнения программ. Разработчик также получает знания модели памяти языка программирования. Это позволяет избежать чтения данных, которые могут быть недействительными, а также показывает как обходиться с динамическим выделением памяти в частности для встроенных систем работающих длительное время, т.к. израсходование доступной памяти может привести к аварийному отказу системы или нежелательному поведению.
Разработчик получает знания аппаратного и программного механизма, используемого для получения процессором данных от датчиков и формирование команд для исполнительных механизмов. В фокусе этого знания лежит мост между последовательной природой программы и параллельным физическим миром. Поэтому рассмотрен интерфейс аналого-цифрового преобразователя в перспективе цифровой обработки сигналов с учетом квантования, дискретизации и шумов.
В учебном пособии рассмотрены вопросы проектирования аппаратных средств на программируемой логике, используемой для реализации компонент встроенной системы, которые нельзя реализовать на стандартных элементах или необходимо их высокопроизводительное решение. Изучение соответствующих тем дает знания по разработке компонент ввода вывода по модели программно-управляемого автомата на языке проектирования аппаратуры VHDL. Выполнение соответствующих заданий из учебного пособия позволяет получить навыки по созданию проектов компонент ввода вывода на программируемой логики.
В учебном пособии рассмотрены абстракции промежуточного уровня программного обеспечения для одновременных программ находящиеся выше уровня прерываний и параллельной аппаратуры, но ниже модели одновременных вычислений. Конкретно объяснены потоки (последовательные программы, выполняемые одновременно и разделяющие общие переменные), взаимное исключение и семафоры. Показаны трудности написания многопоточных программ, а также схемы передачи сообщений позволяющие преодолеть некоторые из них.
Рассмотрен также верхний уровень абстракции программного обеспечения – модели вычислений, позволяющие разрабатывать как спецификации систем, так и их модели для последующей автоматической генерации объектного кода приложения. Модель вычислений позволяет на ранних стадиях проектирования обнаруживать некорректное задание требований и их реализацию. Рассмотрены как синхронные, так и асинхронные модели одновременного поведения. Изучение этих вопросов сформирует знания по эффективной методологии проектирования, основанной на модели.
В последней теме учебного пособия рассмотрены вопросы валидации и оценки проекта. Показаны такие инструменты валидации как моделирование, эмуляция, макетирование и формальная верификация. В качестве составляющих оценки проекта показаны оценки производительности, потребления энергии и выделения тепла.
Успешное освоение содержания дисциплины «Встроенные микропроцессорные системы» позволяет приобрести необходимую квалификацию для разработки функциональных спецификаций на системы управления двигателями летательных аппаратов, опираясь на современные информационные технологии в это области проектной деятельности.
