- •«Пермский национальный исследовательский политехнический университет»
- •«Встроенные микропроцессорные системы»
- •Составитель о.В. Гончаровский
- •Оглавление
- •2. Программное обеспечение встроенных систем ……….
- •Введение
- •Аппаратные средства встроенных систем
- •Организация аппаратных средств встроенных
- •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.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 для моделирования и синтеза [22]
- •1.10.2.3. Операторы присваивание и process [22]
- •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. Исчисление реального времени
- •2.7.4. Модели энергии и мощности
- •2.7.5. Тепловая модель
- •Задания
- •1. Конвейеризация
- •2. Иерархия памяти
- •3. Базовые устройства ввода-вывода встроенных систем
- •5. Многозадачность
- •6. Валидация и оценка проекта
- •Заключение
- •Библиографический список
- •Встроенные микропроцессорные системы
1.6.2.2. Ассоциативная по множеству кэш-память
В кэш-памяти прямого отображения одноименные блоки ОП конкурируют за право занять одну и ту же область в кэш-памяти. Если программе часто требуются ячейки с адресами 0х00000000 и 0х0000800000, то будут иметь место постоянные конфликты и каждое обращение повлечет за собой замещение нулевого блока. Чтобы разрешить эту проблему, нужно сделать так, чтобы одноименные блоки помещались в нескольких местах (множествах) кэш-памяти.
На рис.21. приведена ассоциативная по множеству кэш-память. Такая память сложнее предыдущей, поскольку требуется проверить все множества, чтобы узнать, есть ли нужный блок. Память для хранения тэгов адресов реализуется как ассоциативная, что позволяет исключить перебор при поиске места блока.
Если нужно поместить новый блок в кэш-память, то какой из старых блоков нужно заместить? Для этого хорошо подходит рассмотренный выше алгоритм LRU.
Обобщим параметры кэш памяти:
m – разрядность адреса памяти ;
M = 2^m – величина адресного пространство в байтах;
S = 2^s – число множеств кэш;
E – число линий (входов) в множестве;
B = 2^b – размер блока в байтах;
t = m * s*b – число бит тега;
C – общий размер кэш в байтах.
Таким образом, кэш может быть охарактеризована четверкой (m,S,E,B), а общий размер кэш составляет C = S*E *B байт.
1.6.2.3. Обновление кэш-памяти.
При работе с кэш-памятью одновременно могут существовать две копии одних и тех же данных: одна в кэш, а другая в основной памяти. В ОП данные может изменять не только процессор, но и устройства ввода-вывода, работающие по каналу прямого доступа в память. Поэтому необходимо поддерживать их непротиворечивость или когерентность.
В МПС c несколькими МП, разделяющих общую ОП, также необходимо поддерживать когерентность, но уже и кэшей этих МП.
Рис.21. Ассоциативная по множеству кэш и формат адреса
Во всех решениях контроллер кэш-памяти разрабатывается так, чтобы кэш-память могла перехватывать запросы на магистрали, контролируя все запросы магистрали от других процессоров и устройств ввода-вывода, и предпринимать необходимые действия. Эти устройства называются кэш-памятью с отслеживанием (snooping cashe). Набор правил, которые выполняются кэш-памятью, процессорами и ОП, чтобы предотвратить появление различных вариантов данных в нескольких блоках кэш-памяти, формирует протокол когерентности кэширования. Единица передачи и хранения кэш-памяти называется строкой или блоком кэш-памяти (32 или 64 байта).
Самый простой протокол когерентности кэширования называется сквозной записью (write through). В случае промаха кэш-памяти при записи слова, которое было изменено, оно записывается в ОП. Строка, содержащая нужное слово, не загружается в кэш-память. В случае попадания при записи кэш обновляется, а слово плюс ко всему записывается в ОП. Всегда при обновлении кэш-памяти одновременно обновляется и основная память.
Другой вариант поведения при промахах по записи – загрузка кэш-памяти (политика заполнения по записи – write-allocate). Заполнения по записи эффективно, когда высока вероятность повторного обращения к слову, вызвавшему промах.
В устройствах с отслеживанием все кэши отслеживают все запросы магистрали, и всякий раз, когда записывается слово, оно обновляется в кэш-памяти инициатора запроса, обновляется в ОП и удалится из всех остальных кэшей.