- •Предисловие
- •Введение
- •1. Системный анализ задачи - выделяются процессы и функции, реализация которых будет возложена на мк или ип.
- •Алгоритмизация процессов и функций - разрабатываются алгоритмы решения задачи.
- •Области использования мк
- •Глава 1основы микропроцессорной техники
- •1.1. Классификация микропроцессоров, основные варианты их архитектуры и структуры
- •1.2. Общая структура и принципы функционирования микропроцессорных систем
- •1.3. Система команд и способы адресации операндов
- •Начиная с младшего байта («Little-Endian»);
- •Начиная со старшего байта («Big-Endian»).
- •1.4. Интерфейсы микропроцессорных систем
- •1.4.1. Основные понятия
- •1.4.2. Магистраль vme
- •Verbs находит широкое применение в:
- •VmEbus обеспечивает наилучшее соотношение цена - производительность для системы в целом и предоставляет практически неограниченные возможности наращивания всех ресурсов.
- •1.5. Шина usb
- •На их основе
- •2.1. Структура и функционирование процессоров intel p6
- •2.1.1. Суперскалярная архитектура и организация конвейера команд
- •2.1.2. Режимы работы процессора и организация памяти
- •2.1.3. Регистровая модель
- •1. Функциональные основные регистры:
- •Iopl -уровень привилегий ввода/вывода, задает максимальную величину уровня привилегий текущей программы, при котором разрешается выполнение команд ввода/вывода;
- •2.3 Режимы работы процессора
- •2.1.4. Внутренняя кэш-память
- •8 Зон по 64 Кбайт, занимающих диапазон адресов 0-7fffFh (512 Кбайт);
- •16 Зон по 16 Кбайт, занимающих диапазон адресов 80000h-8ffffh (256 Кбайт);
- •8 Зон размером от 4 Кбайт до максимального размера физической памяти, которые могут размещаться в любой позиции адресного пространства.
- •2.1.5. Форматы команд и способы адресации
- •Содержимого базового регистра евр (вр) или евх (вх);
- •Содержимого индексного регистра esi (si) или edi (di);
- •Disp команды (см. Рис. 2.11).
- •2.2. Система команд: операции над целыми числами
- •Пересылка данных и адресов
- •Xchg - Обмен между регистрами или памятью и регистром
- •Xlat-Преобразование кодов
- •Imul-Знаковое (целочисленное) умножение аам- ascii-коррекция результата умножения
- •Idiv-Знаковое (целочисленное) деление
- •2.2.1. Команды пересылки
- •2.2.2. Команды арифметических операций
- •2.2.3. Команды логических операций и сдвигов
- •2.2.4. Команды битовых и байтовых операций
- •2.2.5. Команды операций со строками символов
- •2.3. Система команд: операции управления
- •Управление программой
- •Прерывания
- •Int3 - Прерывание в контрольной точке
- •Iret-Возврат из подпрограммы обслуживания прерывания
- •2.3.1. Команды управления программой
- •2.3.3. Команды организации защиты памяти
- •2.3.4. Команды управления процессором
- •2.3.5. Префиксные байты
- •2.4. Система команд: операции над числами с плавающей точкой
- •2.4.3. Команды пересылки данных
- •2.4.4. Команды арифметических операций
- •2.4.6. Команды специальных операций
- •2.4.7. Команды управления fpu
- •Команды преобразования
- •Арифметические команды
- •Inub'- Нахождение меньшего значения (беззнаковые байты) Команды сравнения
- •Команды логических операций
- •2.5.1. Форматы представления данных и выполнение операций
- •2.5.2. Команды пересылки и преобразования данных
- •1 2.5.3. Команды арифметических операций '
- •2.5.4. Команды логических операций и сдвигов
- •2.5.5. Команды сравнения и нахождения максимума/минимума
- •2.6. Система команд: операции sse
- •Команды пересылки данных
- •Команды преобразования данных
- •Арифметические команды
- •Команды нахождения максимума и минимума.
- •Команды преобразования формата чисел.
- •Команды управления
- •2.6.1. Форматы представления данных и выполнение операций
- •2.6.2. Команды пересылки и преобразования данных
- •2.6.3. Команды арифметических операций
- •2.6.6. Команды преобразования формата чисел
- •2.6.7. Команды управления
- •2.6.8. Команды пересылки данных с управлением кэшированием
- •2.7. Работа процессора в защищенном и реальном режимах
- •2.7.1. Сегментация памяти в защищенном режиме
- •2.7.2. Страничная организация памяти
- •2.7.3. Защита памяти
- •2.7.4. Поддержка многозадачного режима
- •2.7.5. Реализация режима виртуального 8086 (v86)
- •2.7.6. Функционирование процессора в реальном режиме
- •2.8. Реализация прерываний и исключений. Обеспечение тестирования и отладки
- •2.8.1. Виды прерываний и исключений, реализация их обслуживания
- •2.8.2. Причины возникновения исключений
- •2.8.3. Средства обеспечения отладки
- •2.8.4. Реализация тестирования и контроля функционирования
- •2.9. Risc-микропроцессоры и risc-микроконтроллеры семейств powerpc (мрс60х, мрс50х)
- •2.9.1. Risc-микропроцессоры семейства мрс60х (powerpc)
- •I (invalid) - недостоверное (аннулированное) содержимое строки.
- •2.9.2. Risc-микроконтроллеры семейства мрс5хх ( power pc)
- •3.1. Общие принципы организации кэш-памяти
- •3.1.1. Понятия тега, индекса и блока
- •3.1.2. Механизм кэш-памяти с прямым отображением данных
- •3.1.3. Механизм кэш-памяти
- •3.1.4. Обновление информации в кэш-памяти
- •1.5. Согласованность кэш-памяти
- •3.2.2. Внутренние кэш-памяти команд и данных
- •3.2.3. Алгоритм кэш-замещений
- •3.2 4. Состояния кэш-памяти данных
- •1.При блокированном чтении:
- •3.2.5. Согласованность внутренних кэш-памятей
- •1) Хранить таблицы страниц и директорий в не копируемой в кэш-память области основной памяти или использовать режим сквозной записи страниц;
- •Процессор может быть заменен (возможен upgraded) без изменения памяти и других подсистем мп вс;
- •Без особого снижения общих характеристик системы могут быть использованы более медленные и менее емкие устройства памяти и устройства ввода/вывода.
- •3.3. Функционирование памяти
- •1) Трансляция сегмента, при которой логический адрес, состоящий из селектора сегмента и смещения (относительного адреса внутри сегмента), преобразуется в линейный адрес.
- •3.3.1. Трансляция сегментов
- •Глобальной таблице дескрипторов (gdt);
- •Локальной таблице дескрипторов (ldt).
- •3.3.2. Адресация физической памяти
- •3.3.4. Комбинирование сегментной и страничной трансляции
- •3.4. Защита памяти
- •3.4.1. Зачем нужна защита?
- •Устанавливает различие между разными форматами дескрипторов;
- •Специфицирует функциональное назначение сегмента.
- •1 Поле предела называют также полем границы.
- •2 Байты сегмента размещены в оп в порядке возрастания адресов памяти или в обратном порядке. Такое размещение также называют соответственно по принципу «младший» и «старший крайний».
- •Cpl (текущий уровень привилегий);
- •Rpl (уровень привилегий источника обращений к сегменту) из селектора, используемый для спецификации сегмента назначения;
- •3)Dpl дескриптора сегмента назначения.
- •Загрузить регистр сегмента данных селектором несогласованного, с разрешением чтения кодового сегмента;
- •Загрузить регистр сегмента данных селектором кодового сегмента, который является согласованным и разрешенным для чтения;
- •Использовать префикс переопределения cs, чтобы прочитать разрешенный для чтения кодовый сегмент, селектор которого уже загружен в cs регистр.
- •Для команды call (или для команды jmp для согласованного сегмента) должны быть выполнены следующие правила привилегий:
- •Привилегированные команды, которые нужны для систем управления вычислительным процессом;
- •Чувствительные команды (Sensitive Instructions), которые используются для ввода/вы вода и для действий, связанных с вводом/выводом.
- •1) Проверка того, имеет ли назначение, специфицированное указателем право доступа к
- •Проверка того, соответствует ли тип сегмента заданному использованию;
- •Проверка указателя на соответствие границе сегмента.
- •Verw (Verify for Writing) - проверка доступности по записи обеспечивает те же самые возможности, что и verr для проверки доступности по чтению.
- •3.4.4. Уровень защиты страниц
- •1) Ограничение адресуемой области; 2) проверка типа страницы.
- •3.4.5. Комбинирование защиты сегментов и страниц
- •Глава 4
- •4.1. Структура современных 8-разрядных микроконтроллеров
- •4.1.1. Модульный принцип построения
- •Tiny avr - mk в 8-выводном корпусе низкой стоимости;
- •Classic avr - основная линия мк с производительностью до 16 mips, Flash память программ объемом до 8 Кбайт и статическим озу данных 128. ..512 байт;
- •Mega avr - мк для сложных приложений, требующих большого объема памяти (Flash пзу до 128 Кбайт), озу до 4 Кбайт, производительностью до 6 mips.
- •4.1.4. Резидентная память мк
- •4.1.5. Порты ввода/вывода
- •Однонаправленные порты, предназначенные в соответствие со спецификацией мк только для ввода или только для вывода информации.
- •Двунаправленные порты, направление передачи которых (ввод или вывод) определяется в процессе инициализации системы.
- •4.1.6. Таймеры и процессоры событий
- •Импульсную последовательность с выхода управляемого делителя частоты fBijs;
- •Внешнюю импульсную последовательность, поступающую на один из входов мк.
- •Простое увеличение числа модулей таймеров; этот путь характерен для части мк компаний «Pfilips» и «Atmel» со структурой msc-51, для мк компаний «Mitsubishi» и «Hitachi».
- •Изменение логического уровня с 0 на 1 (нарастающий фронт сигнала);
- •Изменение логического уровня с 1 на 0 (падающий фронт сигнала);
- •Любое изменение логического уровня сигнала.
3.2.2. Внутренние кэш-памяти команд и данных
В современных МП реализованы отдельные кэш-памяти для данных и команд. Использование раздельных кэш-памятей для данных и команд обеспечивает одновременные кэш-просмотры. До двух команд и до одного данного в формате до 128 разрядов можно одновременно просмотреть в кэш-памятях. Каждая кэш-память поддерживает до 16Кбайт. Строка может быть скопирована из основной памяти в кэш-память за четыре обмена.
Кэш-памяти полностью прозрачны для прикладного ПО. Управление адресами в обоих кэш-памятях обеспечивает кэш-согласование для мультипроцессорных систем.
Каждая кэш-память имеет два ряда тегов: виртуальные теги для внутренних обращений из МП и физические теги, используемые для обращений к основной памяти (внешних обращений через магистраль). На рис. 3.9 показано, как разряды виртуального и соответствующего ему физического адреса управляют обращениями к кэш-памяти. Наличие виртуального и физического тегов позволяет поставить один единственный физический адрес, полученный при трансляции, через TLB-буфер в соответствие двум или более виртуальным адресам.
Кэш-промахи при записи в память не копируются в кэш-памяти, а данные, связанные с ними, помещаются в буфер записи и затем, когда внешняя магистраль доступна, отправляются в основную память.
Кэш-память данных. Рис. 3.10. иллюстрирует организацию кэш-памяти данных. Кэш-память данных использует два разряда статуса для каждого физического тега и один разряд статуса - разряд корректности -для виртуального тега.
Кэш-попадание по виртуальному тегу возможно лишь, когда разряд корректности виртуального тега установлен, а состояние физического тега-это М,Е или S.
Соответствие виртуального и физического тегов поддерживается алгоритмом кэш-поиска. Даже хотя физическая строка может использовать совмещение имен (имеется в виду ситуация, когда кэш-строка может быть доступна при обращении по разным виртуальным тегам), процессор никогда не вводит строку в кэш-память данных дважды. Если виртуальный адрес не обнаруживается среди виртуальных тегов в кэш-памяти данных, инициируется цикл магистрали (за исключением того, что чтение не осуществляется, если конвейер магистрали заполнен) и в то же самое время ищется физический тег для физического адреса (который к этому времени был возвращен из блока страничной обработки). При чтениях, если обнаруживается физический адрес (кэш-попадание по физическому адресу), данное из магистрали игнорируется, а используется данное в ЧИПе, и поле виртуального тега замещается новым виртуальным тегом. При записях, если обнаруживается виртуальный адрес (кэш-попадание по виртуальному адресу обращения), запись вводится на магистраль и обновляется память. Если физический адрес обнаруживается (кэш-попадание по физическому адресу), обновляется строка в кэш-памяти, а виртуальный тег замещается новым виртуальным тегом. Однако разряды состояния кэш-памяти (М, Е или S) из тега физического адреса при переписи виртуального тега остаются неизменными.
Стратегии обновления кэш-памяти данных. Для минимизации трафика магистрали обычно используется стратегия обратной записи (write-back). Стратегия обратной записи (также называемая обратным копированием и отложенной записью) уменьшает трафик внешней магистрали путем значительного ограничения многих ненужных записей в память. Записи в какую либо строку кэш-памяти не немедленно перезаписываются в основную память, а накапливаются в кэш-памяти. Измененная кэш-строка переписывается в основную память лишь тогда, когда ее место в кэш-памяти нужно другому данному, когда модифицированное данное нужно другому процессору или когда выполняется процедура сброса кэш-памяти.
При стратегии обратной записи запись при кэш-попаданиях реализуется кэш-памятью за два цикла (один проверяет виртуальные теги на кэш-попадание, другой обновляет кэш-строку). Однако кэш-конвейер позволяет накапливать кэш-попадания для работы за один цикл.
При стратегии сквозной записи запись, запрашивающая строку в кэш-памяти, вызывает обновление как кэш-памяти, так и основной памяти. Дешифратор адреса, например, может выбрать стратегию сквозной записи для записей в видео RAM, когда необходимо, чтобы запись высвечивалась на экране дисплея. ПО путем установки разряда WT таблицы страниц может выбрать стратегию сквозной записи для специфических областей основной памяти, таких, например, которые используются под очереди межпроцессорных сообщений.
Соответствие виртуального и физического тегов поддерживается алгоритмом кэш-поиска. Даже хотя физическая строка может использовать совмещение имен (имеется в виду ситуация, когда кэш-строка может быть доступна при обращении по разным виртуальным тегам), процессор никогда не вводит строку в кэш-память данных дважды. Если виртуальный адрес не обнаруживается среди виртуальных тегов в кэш-памяти данных, инициируется цикл магистрали (за исключением того, что чтение не осуществляется, если конвейер магистрали заполнен) и в то же самое время ищется физический тег для физического адреса (который к этому времени был возвращен из блока страничной обработки). При чтениях, если обнаруживается физический адрес (кэш-попадание по физическому адресу), данное из магистрали игнорируется, а используется данное в ЧИПе, и поле виртуального тега замещается новым виртуальным тегом. При записях, если обнаруживается виртуальный адрес (кэш-попадание по виртуальному адресу обращения), запись вводится на магистраль и обновляется память. Если физический адрес обнаруживается (кэш-попадание по физическому адресу), обновляется строка в кэш-памяти, а виртуальный тег замещается новым виртуальным тегом. Однако разряды состояния кэш-памяти (М, Е или S) из тега физического адреса при переписи виртуального тега остаются неизменными.
Стратегии обновления кэш-памяти данных. Для минимизации трафика магистрали обычно используется стратегия обратной записи (write-back). Стратегия обратной записи (также называемая обратным копированием и отложенной записью) уменьшает трафик внешней магистрали путем значительного ограничения многих ненужных записей в память. Записи, в какую либо строку кэш-памяти не немедленно перезаписываются в основную память, а накапливаются в кэш-памяти. Измененная кэш-строка переписывается в основную память лишь тогда, когда ее место в кэш-памяти нужно другому данному, когда модифицированное данное нужно другому процессору или когда выполняется процедура сброса кэш-памяти.
При стратегии обратной записи запись при кэш-попаданиях реализуется кэш-памятью за два цикла (один проверяет виртуальные теги на кэш-попадание, другой обновляет кэш-строку). Однако кэш-конвейер позволяет накапливать кэш-попадания для работы за один цикл.
При стратегии сквозной записи запись, запрашивающая строку в кэш-памяти, вызывает обновление как кэш-памяти, так и основной памяти. Дешифратор адреса, например, может выбрать стратегию сквозной записи для записей в видео RAM, когда необходимо, чтобы запись высвечивалась на экране дисплея. ПО путем установки разряда WT таблицы страниц может выбрать стратегию сквозной записи для специфических областей основной памяти, таких, например, которые используются под очереди межпроцессорных сообщений.
Стратегия (write-once) - однократная запись - представляет собой сочетание сквозной и обратной записей. Сквозная запись применяется для первой записи кэш-строки, в то же время последующие записи в ту же строку идут по стратегии обратной записи. Однократная запись выгодна в мультипроцессорных системах для обеспечения кэш-согласования при минимально возможном трафике магистрали. Первая запись извещает другой процессор о факте изменения строки. Стратегия однократной записи используется также, если к МП подключена кэш-память второго уровня для согласования обоих уровней кэш-памятей.
Внешняя система может динамически изменять стратегию обновления (обратная запись, сквозная запись, однократная запись) внутренней кэш-памяти данных МП для каждой кэш-строки.
Кэш-память команд. На рис. 3.11 представлена организация кэш-памяти команд. В кэш-памяти команд разряд корректности V является общим для виртуального и физического тега. Поддержание ситуации, когда одна физическая строка может отвечать разным виртуальным адресам для команд состоит не в том, чтобы просто изменять виртуальный тег для некоторой строки, а скорее в выборе строки, если имеет место кэш-промах по значению виртуального тега. Если физический адрес уже существует в кэш-памяти команд, соответствующая ему строка и теги перезаписываются. Таким образом, даже несмотря на то, что к некоторой физической строке можно обращаться по разным виртуальным адресам, процессор никогда не вводит строку дважды в кэш-память команд.