- •Встроенные микропроцессорные системы
- •Оглавление
- •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. Валидация и оценка проекта
- •Библиографический список
- •Встроенные микропроцессорные системы
1 2 3 E
Рис. 102. Характеристика объема работы
Соответственно объем работы для одиночного события варьируется между 3 и 4 единицами времени, объем работы для двух событий варьируется между 6 и 8 единицами времени и т.д. Пунктирные линии не являются частью функции, т.к. она определена только для целого числа событий. Объем работы получающийся из входного потока событий теперь может быть легко вычислен. Верхняя и нижняя границы характеризуются функциями:
α u(Δ) = γ u(u(Δ)) (1)
α l(Δ) = γ l(l(Δ)) (2)
Должно быть достаточной вычислительная или коммуникационная пропускная способность для обработки этого объема. Число событий, которое может быть обработано с полезной вычислительной пропускной способностью может быть вычислено как
u(Δ) = (γ l)−1(β u(Δ)) (3)
l(Δ) = (γ u)−1(β l(Δ)) (4)
Равенства 3 и 4 используют обратные функции γ u ( (γ u)−1) и γ l ( (γ l)−1) для конвертирования границ полезной пропускной способности (измеряется действительными значениями времени) в границы, измеряемые в терминах числа событий которые могут быть обработаны.
Основываясь на этой информации, можно получить свойства выходных потоков событий из входных потоков событий. Предположим, что входной поток характеризуется границами [l , u]. Затем вычисляем характеристики выходных потоков как, например соответствующие границам
[l’, u’] исходящего потока событий и оставшейся пропускной способности полезной для других задач. Эту оставшуюся пропускную способность получают преобразованием кривых обслуживания [l , u] в кривые обслуживания [l’,u’] (рис. 103). Эта оставшаяся пропускная способность может быть использована для низкоприоритетных задач для выполнения на том же процессоре.
Рис. 103. Преобразование потока событий и пропускной способности
компонентами реального времени
Исходящие потоки и оставшаяся пропускная способность ограничиваются следующими функциями:
u’ = [(u⊗u) l ]∧ u (5)
l’ = [(l u)⊗ l ]∧ l (6)
u’ = (u−l) ∅0 (7)
l’ = (l −u)0 (8)
Операции, используемые в этих равенствах, определяются следующим образом:
( f∅g)(t) = inf 0≤u≤t{ f (t −u)+g(u)} (9)
( fg)(t) = sup 0≤u≤t{ f (t −u)+g(u)} (10)
( fg)(t) = sup u≥0{ f (t +u)−g(u)} (11)
( f∅g)(t) = inf u≥0{ f (t +u)−g(u)} (12)
∧ обозначает оператор минимума;
inf – точная нижняя граница;
sup – точная верхняя граница.
По существу эти равенства характеризуют исходящие потоки и пропускную способность. Эти равенства были адоптированы из теории связи. Для работы с этими равенствами можно просто использовать инструментарий Matlab.
Эта же теория позволяет вычислить задержку вызванную компонентами реального времени, а так же размер буфера необходимого для временного хранения входящих/исходящих событий.