- •Встроенные микропроцессорные системы
- •Оглавление
- •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.4.2. Параллелизм уровня команд
Процессоры, поддерживающие параллелизм уровня команд (ILP) способны выполнять несколько независимых операций в каждом цикле команды. Рассмотрим четыре основных типа ILP: процессоры CISC, параллелизм части слова, суперскалярные процессоры и процессоры VLIW.
Процессоры со сложными командами (точнее со специализированными) называют CISC (complex instruction set computer) процессорами в противоположность RISC (reduced instruction set computers) процессорам с сокращенным множеством команд .
Процессор DSP типичный CISC процессор, включающий специальные команды поддержки программной реализации фильтров с конечной импульсной характеристикой (FIR фильтров). Такой процессор реализует FIR с производительностью одна команда на ветвление в фильтре. Недостаток такого процессора состоит в экстремальном напряжении сил компилятором для включения таких команд в программу. Поэтому DSP используют библиотеки, написанные и оптимизированные на ассемблере.
Параллелизм части слова [9]. Многие встроенные приложения оперируют с данными меньшей разрядности, чем слово процессора. Для поддержки таких типов данных некоторые процессоры используют параллелизм на уровне части слова, когда многоразрядное ALU разбивается на минимальные части, допускающие одновременное выполнение арифметических или логических операций над маленькими словами.
Векторный процессор один из тех, у кого множество команд включает одновременные операции над элементами множественных данных. Параллелизм уровня команд является формой векторной обработки.
Суперскалярные процессоры [10] используют обычное множество команд, но аппаратура может одновременно распределять несколько команд по индивидуальным узлам обработки, когда обнаруживается, что такое распределение не изменяет поведения программы. Такие процессоры поддерживаю изменение последовательности выполнения, когда поздняя команда потока выполняется перед ранней.
Недостаток суперскалярной архитектуры с точки зрения встроенных систем состоит в трудности предсказания времени выполнения программы. В контексте многозадачности (прерывания и потоки) это время даже может и не иметь высокой повторяемости. Время выполнения может быть очень чувствительно к точному времени прерываний, так незначительные вариации этого времени могут существенно повлиять на время выполнения программы.
Процессоры с архитектурой VLIW [1] часто используются во встроенных системах вместо суперскалярных для получения высокой повторяемости и предсказуемости времени выполнения программ. Так же как суперскалярные процессоры, VLIW процессоры включают несколько функциональных узлов, но вместо динамического определения какие команды могут выполняться одновременно каждая команда определяет то что каждый функциональный узел должен делать в отдельном цикле. Таким образом, VLIW объединяет несколько независимых операций в отдельную команду. Как и в суперскалярных процессорах множество операций выполняется одновременно на различном оборудовании. Однако порядок и одновременность выполнения фиксирована в программе в противоположность принятия решений на лету у суперскалярных процессоров. Это требует от программиста или компилятора обеспечить, чтобы одновременные операции были действительно независимыми. В обмен на эти дополнительные сложности в программировании время выполнения становится высоко повторяемым и предсказуемым. Для приложений требующих еще увеличения производительности VLIW процессоры могут быть усложнены.
Многоядерные процессоры являются комбинацией нескольких CPU на одном кристалле. Разнородные (гетерогенные) многоядерные процессоры объединяют разнотипные CPU в противоположность однородным (гомогенным) процессорам, объединяющим одинаковые CPU. Для встроенных систем многоядерная архитектура несет значительные преимущества, чем одноядерная из-за задач реального времени и задач, критичных по безопасности. По этой причине разнородные многоядерные процессоры используются в мобильных телефонах, т.к. функции по обработке речи и радиосигналов являются функциями жесткого реального времени со значительной вычислительной нагрузкой. В такой архитектуре пользовательские приложения не взаимодействуют с функциями реального времени.