- •Встроенные микропроцессорные системы
- •Оглавление
- •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.8. Базовые устройства ввода-вывода встроенных систем
Подсистема ввода-вывода ответственна за связь с устройствами ввода-вывода I/O. Каждое I/O в общем случае состоит из двух частей: одна из них называется контроллером, а другая представляет собой само I/O.
С точки зрения программиста подсистему ввода-вывода можно представить или в виде отдельного пространства ввода-вывода (изолированное пространство ввода-вывода) со своими командами для доступа к нему или в виде определенной части адресного пространства памяти (совмещенное пространство ввода-вывода). В любом случае пространство ввода-вывода организовано в виде набора n-разрядных ячеек – портов (n=8,16,32) и линейно упорядочено.
Между CPU и I/O происходит обмен информацией двух типов: служебной и собственно данных. Служебная информация от CPU инициирует действия, связанные с обменом данных, и представляется с помощью управляющих слов CW (Control Word). Служебные сообщения от I/O, информирующие CPU о его текущем состоянии, называются словами состояния SW (Status Word). В отличие от них данные передаются с помощью слов данных DW (Data Word).
Объем служебной информации, которой обмениваются I/O и CPU , а также ее интерпретация зависят от типа I/O. Для наиболее простых устройств, служебная информация не нужна, а для других – управляющая информация и данные о состоянии УВВ могут иметь значительный объем.
Размер пространства доступа (совокупность портов) в общем случае не зависит от объема информации, которой обмениваются I/O и CPU . Распространена практика последовательной передачи массива информации через один и тот же порт. Это связано не только с экономией пространства ввода-вывода, но и с минимизацией ширины физического интерфейса I/O, а также с его стандартизацией. Существует соглашения об обмене информацией между I/O и CPU , называемые протоколами обмена. Эти протоколы являютсяосновой для разработки драйверов (набор подпрограмм) I/O, организующих обмен данными.
В тех случаях, когда процедуры обмена информацией с I/O инициируются и выполняются непосредственно программой, реализуемой CPU, говорят о программно-управляемом обмене. Программно-управляемый обмен не является единственным типом обмена. Но судя по аппаратным затратам, это наиболее эффективный тип обмена, поэтому он находит самое широкое применение в MPS.
В наиболее простом виде процесс программно-управляемого ввода-вывода выполняется независимо от состояния I/O. Такой вид обмена назван прямым или безусловным. Процессы прямого ввода-вывода в чистом виде возможны только при условии, что I/O всегда готовы к обмену. К тому же они являются составными элементами более сложных процессов программно-управляемого обмена, к числу которых относится условный ввод-вывод. Существует два типа условного ввод-вывод: с занятием цикла (рис.27,а) и совмещенный (рис.27,б).
В первом случае MPS «зависает» в цикле ожидания готовности, тратя на это все процессорное время. Во втором случае, если I/O не готово к обмену, CPU возвращается к основной задаче без выполнения операции ввода-вывода. Однако он может снова проверить готовность УВВ к обмену и при удачном исходе выполнить его.
После завершения операции обмена сигнал готовности I/O должен быть снят и выставлен заново только при новой готовности к обмену. С этой целью I/O следует проинформировать об окончании операции, для чего используется включенный в одно из управляющих слов CW сигнал подтверждения. Протокол обмена служебной информации такого типа называется квитированием. Он обеспечивает надежную асинхронную передачу данных со скоростями, определяемыми I/O.
Рис.27. Процедуры программно-управляемого обмена:
б – условного с занятием цикла: в – условного совмещенного