
- •1. Общие положения
- •Характеристики универсальных микропроцессоров:
- •Организация внутренней памяти данных (озу) Преимущества разделения на банки:
- •Память программ
- •3. Аппаратные и программные средства микроконтроллера для обработки битовой информации
- •Сброс флагов запросов прерывания
- •5. Блок таймеров/счетчиков: назначение, структура, режимы работы, применение.
- •Режимы работы таймер/счетчик
- •6. Организация последовательного ввода/вывода в микроконтроллере.
- •7.Включение микроконтроллера в систему управления.
- •0, 1
- •3. Универсальные микропроцессоры
- •Основные функциональные регистры
- •Основные функциональные регистры -Сегментные регистры
- •Типы логического адресного пространства
- •Формирование линейного адреса
- •Формат селектора
- •Формат дескриптора
- •Обращение к глобальной таблице дескрипторов
- •Обращение к локальной таблице дескрипторов
- •Двухэтапное преобразование
- •Формат элемента ктс (таблицы страниц)
- •Структура tlb
- •Механизм замещения строк (lru)
- •Средства защиты должны предотвращать:
- •Обращение к более привилегированным программам через шлюз вызова
- •Структура дескриптора шлюза вызова
- •Для аппаратной поддержки многозадачности используется:
- •Содержимое tss:
- •Дополнительная часть tss:
- •Структура команды межсегментной передачи управления
- •Структура байта доступа в дескрипторе tss
- •Типы кэш памяти
- •Пример:
- •Порядок обработки прерываний
- •Рефлекторные действия процессора
- •Пример (для рефлекторного мк):
- •Типы прерываний
- •Определение адреса обработчика прерываний
- •Шлюзы ловушки и прерывания
- •Шлюз задачи
- •Регистр типов
- •Пример:
- •Время выполнения n-команд
- •Конфликты:
- •Структурные конфликты
- •Причины:
- •Пути решения для Запоминающих Устройств (зу):
- •Традиционные методы
- •Ограничения:
- •Ограничения:
- •Современные направления
- •Достоинства данного подхода:
- •Недостатки:
- •4. Структура и особенности функционирования современных микропроцессоров
Пример:
Нарушение в системных таблицах.INDEXуказывает на дескриптор, а длина таблицы не так определена.
Порядок обработки прерываний
Сознательные действия программиста;
Рефлекторные действия процессора– выполняются на аппаратном уровне, включаются автоматически.
Рефлекторные действия процессора
определение типа прерывания;
сохранение контекстапрерываемой программы (информация, которая позволит вернуться в программу).
EIP, CS, EFLAGS– если переход на обработчик происходит через шлюз прерывания или через шлюз ловушки;
Целиком сегмент задач TSS– если переход через шлюз задач или при переключении.
Определить адрес обработчика прерываний и загрузить его в:
Регистр сегмента кода;
Регистр прерываний.
После этого выполняется обработчик прерывания, соответствующий возникшему запросу. Обработчик должен завершится командой IRET, по которой восстанавливается контекст прерванной программы
Пример (для рефлекторного мк):
Адрес запоминается в стеке;
Определяет тип прерывания;
Вызывает прерывание;
Переход на адрес;
Выполняется написанный обработчик;
IRET – выталкивается адрес возврата.
Типы прерываний
Для программных прерываний: вводятся изнутри микропроцессором, например, отсутствие страницы памяти = тип 14.
Для маскируемыхаппаратных прерываний – тип вводитсяиз контроллера приоритетных прерыванийпо шине данных.
Для немаскируемыхпрерываний –тип=2(автоматически)
Всего МП различает 256 типов прерываний. Это делается автоматически
Определение адреса обработчика прерываний
При
работе в реальном режимеадрес
определяется по таблице векторов
прерываний (1), который занимает младший
килобайт ОП.
В защищённом режимеиспользуется (2) таблица дескрипторов прерываний (IDT), в ней могут храниться ТОЛЬКО дескрипторы типа ШЛЮЗ (ITDнаходится где угодно):
Шлюз ловушка
Шлюз прерывания
Шлюз задачи
Шлюзы ловушки и прерывания
Для CS |
Для EIP |
Байт доступа |
| |||
Селектор |
Смещение |
P |
DPL |
0 |
ТИП |
Резерв |
16 |
32 |
|
|
|
|
|
64 бита = 8 байт |
Назначение: Поиск первой команды обработчика
P– бит присутствия
При входе в обработчик через шлюз прерыванияв регистре флаговсбрасывается бит разрешения прерывания (IF=0). А черезшлюз ловушки–НЕТ.
Программист должен, как можно быстрее, его восстановить, т.к. таймер не работает в это время, т.е. регенерация динамической памяти не осуществляется (возможна потеря информации).
Шлюз задачи
|
Байт доступа |
| |||
Селектор TSS |
P |
DPL |
0 |
0101 |
Резерв |
16 |
8 |
| |||
64 |
Назначение: Запуск дескриптора TSS
Через шлюз задач обычно реализуются аппаратные прерывания.
Аппаратные прерывания в микропроцессорных системах. Источники аппаратных прерываний в стандартной конфигурации МПС. Контроллер приоритетных прерываний (КПП): функции, структура и алгоритм работы. Включение КПП в структуру микропроцессорной системы. Каскадное включение контроллеров приоритетных прерываний.
Прерывание– изменение естественного порядка выполнения программы, связанная с необходимостью реакции компьютера на работу внешних устройств, а так же на ошибки и особые ситуации возникающие при работе программ. При этом вызывается специальная программа «Обработчик прерываний», которая специфична для каждой возникшей ситуации, после завершения которой продолжается прерванная программа.
Запросы аппаратныхпрерываний возникаютасинхронноработе МП исвязаны с работой внешних устройств(мышь, HDD, и т.д.)
Программныезапросы прерываний –связаны с особыми ситуациями при работе программы (отсутствие страниц в ОП, переполнение и т.д.), что не может предвидеть программист. Либо наличие в программе командыINT n– используется для вызова функций ОС, либо BIOS, которые поддерживают работу с внешними устройствами.
Нарушения- обнаруживаются до возникновения фактической ошибки, например, отсутствие страницы в ОП. После обработки нарушения, программа продолжает с рестарта «виноватой команды».
Ловушка– обнаруживается после окончания «виноватой команды». После его обработки выполнение программы продолжается со следующей команды.
Авария(выход из процессора) – столь серьёзная ошибка, что часть контекста программы теряется и её дальнейшее продолжение невозможно. Программа снимается с обработки
Контроллер приоритетных прерываний (КПП)
2контроллера приоритетных прерываний,
до 15 прерываний без ухищрений (сейчас).
Последовательность действий при обработке запросов прерываний:
Зафиксировать пришедший запрос прерывания в регистре запросов прерываний IRR
Незамаскированные в регистре маскизапросы передаются в «Приоритетный арбитр», азамаскированные блокируются.
В соответствии с выбранной дисциплиной обслуживания, арбитр выделяет наиболее приоритетный запрос. Запросы работают по фронту. IRQ0 – максимальный приоритет. При приходе нового прерывания все прерывания могут сдвигаться циклически, что бы не держать один из более приоритетный процесс или принудительно установить наиболее приоритетный запрос.
Приоритет выделенного запроса сравнивается с приоритетом запроса, который обслуживается в данный момент (регистр обслуживания запросов ISR). Если приоритет нового запроса выше, то контроллер вырабатывает сигнал INT в МП, иначе обработка запроса откладывается.
МП анализирует бит IF в регистре флагов. Если прерывание разрешено, то он вырабатывает ДВАсигнала подтверждения INTA в микроконтроллере:
ПЕРВЫЙ сигнал INTA – запрет записи в IRR. Выбранный сигнал из IRR перезаписывается в ISR.
ВТОРОЙ сигнал INTA – тип прерывания из регистра типов передаётся по шине данных микропроцессору, разрешается запись в IRR.