- •Встроенные микропроцессорные системы
- •Оглавление
- •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. Валидация и оценка проекта
- •Библиографический список
- •Встроенные микропроцессорные системы
Вопросы для самоконтроля
К архитектуре какого типа (Гарвардской или фон Неймана) относится процессор, изображенный на рис.4?
Какие элементы входят в понятие архитектуры процессора?
В чем разница между регистрами адреса, данных и общего назначения?
Какую цель преследовали разработчики архитектуры некоторых процессоров, когда ввели механизм регистровых окон?
С какими особенностями процессоров связано понятие когерентности памяти?
Как соотносятся прерывания и исключения?
Зачем в системе прерываний появилась вторичная система приоритетов?
Для каких целей были придуманы механизмы виртуальной памяти и сегментации памяти?
В чем особенность коммуникационных процессоров?
Какова роль пузырей в конвейере?
Какой вариант перекрытия внутренних банков SDRAM более эффективный?
Какие усовершенствования преобразовали EEPROM память во флэш-память?
В чем отличия блокнотной и кэш памяти?
Чему равно значение параметра Е для кэш-памяти с прямым отображением?
На что направлено обеспечение когерентности кэш-памяти?
В чем суть различия асинхронных магистралей в манерах Intel и Motorola?
Какую роль в аналого-цифровом преобразователе играет схеме выборки/хранения.
Как в UART выполняется синхронизация на уровне бит?
Возможно ли взаимодействие через интерфейс SPI более двух устройств, если да то как?
Модуль 2
1.10. Язык проектирования аппаратуры vhdl
1.10.1. Реконфигурируемая логика
Уже отмечалось, что во многих случаях полностью заказные СБИС (ASIC) дороги, а решения, основанные на программной реализации медленные или энергоемкие. Реконфигурируемая логика обеспечивает решение задачи для случаев, если алгоритмы могут быть эффективно реализованы с помощью заказных СБИС. Такие решения дают почти такое же быстродействие, как и ASIC, но зато реализованные функции могут быть легко изменены конфигурационными данными. Поэтому реконфигурируемая логика находит применение в следующих областях.
Быстрое создание прототипа. Современные ASIC очень сложные, требуют больших усилий разработчиков и длительного времени проектирования. Поэтому часто желательно создать прототип, который мог бы быть использован для экспериментов с системой, работающей «почти» как окончательная система. При этом потребляемая мощность может быть больше, временные ограничения смягчены и только определяющие функции соответствуют техническим требованиям. Поэтому прототип может бать использован для проверки основополагающего поведения системы.
Малый объем приложений. Если ожидаемый объем рынка мал для оправдания реализации приложения в виде ASIC, а программная реализация была бы медленной или неэффективной, тогда выбор остается за реконфигурируемой логикой.
Системы реального времени. Временные характеристики проектов на реконфигурируемой логике обычно хорошо определенны. Поэтому решения получаются с предсказуемым временем выполнения.
Микропроцессорные системы. Для встроенных микропроцессорных систем могут потребоваться нестандартные устройства ввода-вывода, интерфейсы или реализация некоторых функций с большим быстродействием.
СБИС с названием Field Programmable Gate Array (FPGA, программируемая пользователем вентильная матрица) – наиболее общая форма реконфигурируемой логики. Название подчеркивает, что устройство программируется в пользователем в полевых условиях, т.е. после производства и без особых трудностей. Реконфигурируемая логика часто содержит RAM для хранения конфигурации. Однако RAM является энергозависимой памятью. Поэтому конфигурационные данные должны копироваться в RAM при включении питания из внешней энергонезависимой памяти, такой как ROM или Flash. На рис. 47 в качестве примера приведена схема планировки FPGA Virtex-II фирмы Xilinx [17].
В более поздней FPGA Virtex-5 [18] матрица содержит 240 × 108 конфигурируемых логических блоков (CLB - Configurable Logic Blocks), которые можно соединить, используя программируемую структуру соединений. Матрица также содержит 1200 пользовательских входов-выходов и 1056 блока DSP включающих умножитель 25 × 18 бит и 16416 Кбит RAM блок.
Рис. 47. Схема планировкиFPGA Virtex-II
Каждый CLB состоит из двух секций (slice), как показано на рис. 48.
Рис. 48. Virtex-5CLB
Секция состоит из четырех элементов памяти (рис. 49). Каждый элемент памяти может быть использован как таблица соответствия (LUT - Look-Up Table) для реализации одной 6-входовой логической функций (таких функций 2^64) или двух 5-входовых логических функций (таких функций 2^32), а также сконфигурированы как RAM или сдвиговые регистры (SRL). С помощью мультиплексоров несколько элементов памяти могут быть объединены. Каждая секция содержит еще 4 выходных регистра и специальную логику для реализации быстрых операций арифметического сложения.
Конфигурационные данные определяют установки для мультиплексоров, синхронизацию регистров и RAM, содержимое RAM и соединения между CLB. Обычно эти данные генерируются из проектов, написанных, например, на VHDL.
Рис. 49. Упрощенная схема секцииVirtex-5