- •Встроенные микропроцессорные системы
- •Оглавление
- •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.6. Иерархия памяти
Многие приложения требуют значительного количества памяти, больше чем содержится на кристалле микроконтроллера, поэтому встроенные системы используют иерархию памяти, объединяющую различные технологии для увеличения общей емкости, а также для оптимизации стоимости, задержки и потребления энергии.
Обычно относительно небольшого объема SRAM на кристалле процессора используется вместе с памятью DRAM большого объема вне кристалла процессора. Эта память в дальнейшем может быть объединена с памятью третьего уровня, такой как дисковое запоминающее устройство имеющего очень большую емкость, но без произвольного доступа, что увеличивает время записи и чтения. Прикладной программист может и не знать, что память так фрагментирована. Использование рассмотренной выше схемы виртуальной памяти делает эти разнообразные технологии памяти такими, что на взгляд программиста он имеет дело с непрерывным адресным пространством.
Операционная система и/или аппаратные средства обеспечивают механизм трансляции адресов, который преобразует логический адрес в физический адрес доступной технологии памяти. Эта трансляция часто выполняется специализированной частью аппаратуры под названием TLB (translation look-aside buffer или буфер быстрого преобразования), ускоряющей преобразование адресов. Для разработчиков встроенных систем эта техника может создать серьезные проблемы, т.к. трудно предсказать или понять как будет выполняться доступ к большой памяти. Разработчикам встроенных систем обычно необходимо более глубоко понимать системы памяти. чем программистам, создающих программы общего назначения.
1.6.1. Распределение или карта памяти
Карта памяти процессора определяет, как адреса отображаются на аппаратуру. Общий размер адресного пространства ограничивается разрядностью адреса процессора. 32-разрядный процессор, например, может адресовать 2^32 ячеек или 4 Гбайт, полагая, что каждый адрес относится к одному байту. Разрядность адреса обычно совпадает с разрядностью слова (данных) за исключением 8-разрядных процессоров, у которых разрядность адреса обычно выше (16 бит). На рис.19 в качестве примера приведена карта памяти процессора с архитектурой ARM CortexTM - M3.
Рис.19. Карта памяти процессора с архитектурой ARM CortexTM - M3
Эта архитектура Гарвардского типа, поэтому область А может быть доступна по своей магистрали, а области В и D – по своей. Это удваивает полосу пропускания.
Некоторые реализации в кристалле этой архитектуры ограничивают ее карту памяти. Например, микроконтроллер Luminary Micro LM3S8962 имеет 256 KB flash памяти вместо допустимой flash памяти 0.5 GB. Эта память отображается на пространство 0x00000000 - 0x0003FFFF. Оставшееся пространство 0x00040000 - 0x1FFFFFFF осталось резервным. Это означает, что целевой компилятор не будет его использовать.
LM3S8962 имеет 64 KB SRAM, отображенные на 0x20000000 -0x2000FFFF, маленькую область в B. Он также содержит периферию (устройства), доступную через область C (0x40000000 - 0x5FFFFFFF). К этим устройствам относятся таймеры, ADC, GPIO, UART и другие устройства ввода-вывода. Каждое из устройств занимает небольшое число адресов памяти для реализации регистров, отображаемых на память. Процессор микроконтроллера может записывать данные в некоторые из них для конфигурирования устройств или выдачи данных на их выходы. Некоторые из регистров могут быть прочитаны для ввода данных из периферии. Небольшое количество адресов из области магистраль частной перифериииспользуется для доступа к контроллеру прерываний
К LM3S8962 можно подключить дополнительно внешние память DRAM (в область Е) и устройства, такие как LCD дисплей, слот MicroSD и USB интерфейс. При этом остается много неиспользуемого адресного пространства. В архитектуре АРМ введен механизм под названием bit banding (привязка бит), который позволяет через неиспользуемые адреса осуществлять доступ к индивидуальным битам в памяти и периферии.