- •Встроенные микропроцессорные системы
- •Оглавление
- •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.7. Магистраль микропроцессорной системы
Каждая микросхема процессора содержит набор выводов, через которые происходит обмен информацией с внешним миром. Эти выводы подразделяются на три типа: адресные, информационные (данные) и управляющие, которые и являются основой трех шинной магистрали микросистемы. Эти выводы называют шиной адреса (AB - Address Bus), шиной данных (DB – Data Bus) и шиной управления (CB – Control Bus). Чтобы, например, выбрать команду, CPU помещает на шину адреса адрес команды. Затем формирует сигналы на одной или нескольких линиях шины управления, чтобы сообщить памяти о выполнении операции чтения. В ответ память помещает на шину данных требуемое слово и посылает сигнал о том, что это сделано. Когда CPU получает данный сигнал, он записывает выставленное слово в регистр команд.
Число адресных выводов и число выводов шины данных – два ключевых параметра, определяющих производительность CPU. При наличии m адресных линий можно обратится к 2*m ячейкам памяти. Обычно m=16,20,32,64. CPU, содержащий n линий шины данных, может считывать или записывать n-битное слово за одну операцию. Обычно n=8,16,32,64.
Линии шины управления регулируют и синхронизируют поток данных, а также выполняют другие разнообразные функции. Все шины управления содержат линии питания, “земли” и синхронизирующего сигнала. Остальные выводы разнятся от одной шины к другой. Тем не менее, линии шины управления можно разделить на несколько основных групп:
1. Управление шиной.
2. Прерывание.
3. Арбитраж шины.
4. Состояние.
5. Разное.
1.7.1. Циклы обращения к магистрали
Обмен данными через магистраль выполняется словами или байтами в виде следующих друг за другом обращений. За один цикл обращения к магистрали между CPU, MM и I/O передается от одного до нескольких байт. Существует несколько типовых циклов обмена. Среди них чтение памяти и запись в память. В случае архитектуры гарвардского типа, когда память программ и данных физически разделены, вводится также цикл чтения памяти программ. Рассмотрим простую магистраль со следующим набором сигналов управления в манере Intel:
RD (Read) – строб чтения памяти;
WR (Write) – строб записи в память;
READY – готовность к обмену.
Временные диаграммы передачи данных через магистраль однотипны и имеют вид, представленный на рис. 22. На диаграммах выходные данные памяти истинны в момент окончания строба RD, тогда как формируемые CPU выходные данные в течение действия сигнала WR.
В некоторых случаях, например, когда в MPS используются медленно работающие компоненты или некоторые из модулей еще не готовы к обмену по ряду причин, не зависящих от CPU, длительность стробов WR и RD могут оказаться недостаточными для правильного обмена со стороны компонента. Тогда для организации надежного завершения магистральной операции в состав магистрали вводят специальную линию READY.
В каждом цикле обращения к магистрали перед окончанием строба RD или WR CPU проверяет линию READY. При подтверждении обмена CPU завершает операцию на магистрали, в противном случае он переходит в состояние ожидания подтверждения, в котором остается до установления сигнала READY (рис.23).
Рис.22. Циклы записи (а) и чтения (б) магистрали
Рис.23. Цикл чтения с подтверждением обмена
Рассмотрим простую магистраль со следующим набором сигналов управления в манере Motorola:
STB – строб операции на магистрали;
W/R – тип операции запись/чтение;
ACK – подтверждение операции.
На рис.24. приведена временная диаграмма цикла чтения в манере Motorola. По сигналу ACK CPU осуществляет прием данных с шины и завершает цикл магистрали.
Рис.24. Циклы чтения с подтверждением обмена в манере Motorola.
1.7.2. Двухшинная магистраль
В CPU с целью сокращения ширины магистрали вводят совмещенную шину адреса/данных (AD), по которой передаются как адреса, так и данные. Этап передачи адресной информации отделен по времени от этапа передачи данных и стробируется специальным сигналом ALE (Address Latch Enable), который включен в состав CB. На рис.25 представлена временная диаграмма работы такой магистрали.
Рис.25. Циклы записи (а) и чтения (б) двухшинной магистрали
Каждый модуль с двухшинной магистралью содержит локальный адресный регистр для запоминания адресной информации по сигналу ALE. Для фиксации адресной информации может быть использован и один общий регистр, в результате MPS с двумя шинами преобразуется в MPS с тремя шинами, как показано на рис.26.
Рис.26. Преобразование магистрали: 1- двухшинная, 2-трехщинная магистраль