- •1.Процессор
- •1.1. Арифметико-логическое устройство
- •1.2. Устройство управления
- •1.3. Основные принципы работы современных процессоров
- •1.4. Регистры процессора
- •1.4.1. Регистры общего назначения
- •1.4.2.Указатель команд
- •1.4.3. Сегментные регистры
- •1.4.4. Регистр состояния микропроцессора Intel 8086
- •1.4.5. Управляющие регистры
- •1.4.6. Прочие регистры
- •1.5. Представление команд в эвм
- •1.6. Основные стадии выполнения команд
- •2. СисТемная шина
- •2.1. Шины
- •2.2. Шина данных. Разрядность шины
- •2.3. Адресная шина. Разрядность шины
- •2.4. Шина управления
- •2.5. Цикл шины
- •2.6. Системные и локальные шины
- •2.7. Стандарты шин
- •3. Многоуровневая организация памяти
- •3.1. Регистровая память
- •3.2. Буферная память
- •3.2.1. Кэширование памяти
- •3.2.2. Принципы кэширования
- •3.2.3. Кэш прямого отображения
- •3.2.4. Наборно-ассоциативный кэш
- •3.2.5. Ассоциативный кэш
- •3.3. Оперативная память
- •3.3.1. Логическое распределение оперативной памяти
- •3.3.2. Стандартная оперативная память
- •3.4.Страничная и сегментная организация памяти. Виртуальная память
- •3.4.1. Режимы процессора
- •3.4.2. Организация памяти
- •3.4.3. Концепция виртуальной памяти
- •3.4.4. Страничная организация памяти
- •3.4.5. Сегментация памяти
- •3.4.6. Механизм замены (своппирования) страниц
- •3.5. Защита информации и памяти
- •3.6. Внешняя память
- •3.6.1. Классификация накопителей
- •3.6.2. Логическая структура дисков
- •3.6.3. Флоппи-диски
- •3.6.4. Сменные диски
- •3.6.5. Стриммер
- •3.6.6. Магнитооптические накопители
- •3.6.7.Накопители на гибких магнитных дисках Бернулли
- •3.6.8. Накопители на гибких магнитных дисках Zip
- •4. Система ввода-вывода
- •4.1.Принципы организации обменов данными
- •4.1.1. Структура с одним общим интерфейсом
- •4.1.2. Структура с каналами ввода-вывода
- •4.1.3. Основные параметры интерфейсов
- •4.1.4. Параллельная и последовательная передача данных
- •4.1.5. Методы передачи информации между устройствами эвм
- •4.2. Индивидуальные каналы
- •4.2.1. Основные типы каналов ввода-вывода
- •4.3. Ввод-вывод с отображением на память
- •4.4. Порты ввода-вывода
- •4.4.1. Параллельный порт
- •4.4.2. Последовательный порт
- •Адреса и прерывания последовательных портов
- •4.4.3. Развитие параллельного и последовательного интерфейсов
- •5. Организация прерываний
- •5.1 Механизм прерываний
- •5.1.1. Назначение системы прерываний
- •5.1.2. Порядок обработки прерывания
- •5.1.3. Характеристики системы прерывания
- •5.1.4. Приоритетное обслуживание запросов прерывания
- •5.1.5. Программное управление приоритетом
- •5.2. Организация системы прерываний микропроцессора х86
- •5.2.1. Аппаратные прерывания. Контроллер прерываний
- •5.2.2. Особенности обработки аппаратных прерываний
- •5.2.3. Внутренние прерывания
- •5.2.4. Таблица векторов прерываний
- •5.2.5. Процедуры прерываний
- •1. Пример выполнения упражнения тренинга на умение № 1
- •2. Пример выполнения упражнения тренинга на умение № 2
- •3.Пример выполнения упражнения тренинга на умение № 3
- •4. Пример выполнения упражнения тренинга на умение № 4
- •5. Пример выполнения упражнения тренинга на умение № 5
- •6. Пример выполнения упражнения тренинга на умение № 6
5.2.2. Особенности обработки аппаратных прерываний
В микропроцессоре имеется два входа прерываний - маскируемого прерывания INT и немаскируемого прерывания NMI.
Обработка маскируемых прерываний
На вход INT подается сигнал от программируемого контроллера прерываний, который обрабатывает сигналы запросов прерываний от периферийных устройств. Для программы контроллер прерываний выглядит как порт ввода-вывода, в котором фиксируется код типа прерывания. Его основная функция заключается в восприятии сигналов от периферийных устройств, определении запроса с максимальным приоритетом и генерировании сигнала INT, если запрос имеет больший приоритет, чем выполняемая микропроцессором программа.
Если установлен сигнал на линии INT и установлен в 1 флажок разрешения прерывания IF в регистре флагов, то после завершения выполнения текущей команды происходит прерывание и процессор выполняет следующие действия:
1. Выдает контроллеру прерывания подтверждение прерывания.
2. Считывает из контроллера прерывания код типа прерывания.
3. Заносит в стек содержимое регистра флагов.
4. Заносит в стек содержимое регистров IP (указатель команд) и CS (регистр, хранящий базовый адрес).
5. Вызывает и выполняет процедуру прерывания.
6. Извлекает из стека содержимое CS и IP.
7. Извлекает из стека содержимое регистра флагов.
8. Возвращается к выполнению следующей команды прерванной программы.
Обработка немаскируемых прерываний.
Линия немаскируемого прерывания NMI используется для сигнализации о катастрофических событиях в системе.
Немаскируемые прерывания реализуются аппаратно и поступают в МП по отдельной шине управления.
Немаскируемые запросы обладают наивысшим приоритетом. К ним относятся запросы от схем питания и контроля правильности передачи данных. Снижение уровня питания представляет опасность потери информации. Схемы контроля питания подают запрос прерывания и совершают переход к подпрограмме аварийной перезаписи в ОЗУ с батарейным питанием или во внешнее ЗУ. В блоке питания предусмотрены емкостные фильтры, которые поддерживают уровень питания на время, достаточное для перезаписи.
Немаскируемые прерывания имеют фиксированный код 2. Немаскируемое прерывание выполняется быстрее маскируемого, так как не требует подтверждения и считывания типа.
Если установлен сигнал на линии NMI, то после завершения выполнения текущей команды происходит прерывание и процессор выполняет следующие действия:
1. Заносит в стек содержимое регистра флагов.
2. Заносит в стек содержимое регистра IP и CS, запоминая тем самым точку возврата из процедуры прерывания.
3. Вызывает и выполняет процедуру прерывания.
4. Извлекает из стека содержимое CS и IP.
5. Извлекает из стека содержимое регистра флагов.
6. Возвращается к выполнению следующей команды.
5.2.3. Внутренние прерывания
В процессоре 8086 предусмотрено несколько внутренних прерываний, генерируемых при выполнении программы. Команда INT n вызывает прерывание сразу после своего завершения. Тип прерывания n, закодированный программистом в команде, определяет вызываемую процедуру прерывания. Следовательно, эту команду можно использовать для отладки процедур прерываний, обслуживающих периферийные устройства.
Команда INTO генерирует прерывание типа 4 после своего завершения, если установлен флаг переполнения OF в регистре флагов.
Процессор самостоятельно генерирует прерывание типа 0 сразу после выполнения команд деления DIV и IDIV, если имело место деление на 0.
Если установлен флаг пошаговой работы TF в регистре флагов, процессор автоматически генерирует прерывание типа 1 после выполнения каждой команды. Пошаговый режим предназначен для отладки программ.
Внутренние прерывания характеризуются следующими свойствами:
1. Тип прерывания либо предопределен, либо содержится в коде команды.
2. Подтверждение прерывания не выдается.
3. Внутренние прерывания нельзя запретить, кроме прерываний пошаговой работы.
4. Любое внутреннее прерывание (за исключением прерывания пошаговой работы) имеет более высокий приоритет, чем внешние прерывания. Если запрос NMI или INT появляется при выполнении команды, которая сама генерирует внутреннее прерывание (например, ошибка деления), оно обрабатывается первым.
По командам внутреннего прерывания процессор выполняет следующие действия:
1. Заносит в стек содержимое регистра флагов.
2. Заносит в стек содержимое регистра IP и CS.
3. Вызывает и выполняет процедуру прерывания.
4. Извлекает из стека содержимое CS и IP.
5. Извлекает из стека содержимое регистра флагов.
6. Возвращается к выполнению следующей команды.
Приоритеты прерываний в порядке их убывания:
1. Прерывание из-за ошибки деления.
2. Программное прерывание, инициируемое командой INT.
3. Команда прерывания при переполнении.
4. Немаскируемое прерывание NMI.
5. Маскируемое прерывание INT.
6. Прерывание пошаговой работы.