Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВМиС - бывшее АПЭВМ / Шпоргалка_apevm.doc
Скачиваний:
32
Добавлен:
15.09.2014
Размер:
146.94 Кб
Скачать

Билет 24 Физические и логические адреса, стек и зарезервированные области памяти

Аппаратные, логические и программные прерывания

Аппаратные прерывания Одна из важнейших концепций в вычислительной технике - это идея аппаратных прерываний. АП оптимизируют системную производительность, поскольку внешние устройства запрашивают ресурсы процессора только по мере необходимости их обслуживания. Если бы в системе не было аппаратных прерываний, процессору пришлось бы периодически опрашивать все устройства в системе, чтобы проверить, не нуждается ли в обслуживании какое-либо из этих устройств.

Что касается организации аппаратных прерываний в архитектуре IBM PC AT, то они разбиты на два подкласса с точки зрения возможности программного маскирования запроса на прерывание непосредственно в микропроцессоре: маскируемые и немаскируемые. При этом предусматривается шестнадцать линий подключения внешних маскируемых источников прерываний, обозначаемых IRQ0-IRQ15 и распределенных между двумя контроллерами прерываний, объединенных в подсистему. Причем одна из линий служит для каскадирования контроллеров и никаких других системных функций выполнять не может. Выход подсистемы контроллеров прерываний соединен с со входом INTR микропроцессора.

Запросы немаскируемых прерываний поступают на специальный вход NMI микропроцессора и имеют высший по отношению к маскируемым прерываниям приоритет обслуживания. Следует помнить, что условия запроса немаскируемого прерывания (ошибки паритета основной и дополнительных подсистем оперативной памяти) могут маскироваться при помощи системного порта 70h.

Уровни маскируемых прерываний IBM PC АТ распределяются по приоритету от IRQ0 (высший) до IRQ7 (низший). Ниже приведен список аппаратных прерываний, расположенных в порядке убывания приоритета обслуживания в базовой конфигурации PC AT.

┌───────────────────────────┬──────────────────────────┐

│ Уровень прерываний │ Источник прерывания │

├───────────────────────────┼──────────────────────────┤

│ NMI │ Ошибки паритета памяти │

├───────────────────────────┼──────────────────────────┤

│ Контроллеры прерываний │ │

│ PIC1 (MASTER) PIC2 (SLAVE)│ │

│ │ │

│ IRQ0 │ Системный таймер │

│ IRQ1 │ Клавиатура (Буфер полон) │

│ IRQ2 ў───┐ │ Выход INTR PIC2 │

│ │ ┌───── │ │

│ │ │ IRQ8 │ Часы реального времени │

│ │ │ IRQ9 │ (см. примечание) │

│ │ │ IRQ10 │ Резерв пользователя │

│ └──┤ IRQ11 │ Резерв пользователя │

│ │ IRQ12 │ Резерв пользователя │

│ │ IRQ13 │ Сопроцессор (80287/387) │

│ │ IRQ14 │ НМД │

│ │ IRQ15 │ Резерв пользователя │

│ └───── │ │

│ IRQ3 │ Стык RS232 (2) │

│ IRQ4 │ Стык RS232 (1) │

│ IRQ5 │ Порт принтера (2) │

│ IRQ6 │ НГМД │

│ IRQ7 │ Порт принтера (1) │

└───────────────────────────┴──────────────────────────┘

Примечание. Уровень IRQ9 обеспечивает потенциальную возможность использовать прерывание от видеоадаптера для ускорения выполнения операции перемещения изображения (скролинг) и обеспечивает совместимость для этой операции по уровню IRQ2 в PC XT.

Для разрешения приоритетных конфликтов и управления маскированием в IBM PC АТ используется программируемый контроллер прерываний (PIC) 8259А. Процессор 8088 может обрабатывать одновременно только одно прерывание, поэтому PIC 8259 оценивает каждый запрос и "решает", следует ли передавать прерывание на процессор. Если PIC 8259 получает запрос более высокого приоритета, выполняемая сервисная программа может быть прервана. В базовой конфигурации PC АТ системный таймер может прервать работу дискового контроллера, но не наоборот.

Когда имеется запрос прерывания и прерывания разрешены, 80286/80386 входит в машинный цикл подтверждения прерывания. Машинный цикл подтверждения прерывания "проталкивает" регистр флажков в стек (аналогично команде PUSHF). Затем сбрасывается флажок IF, запрещающий прерывания. После этого в стек "проталкивается" содержимое регистра кодового сегмента (CS) и указателя команды (IP). (Таким образом, стек сохраняет состояние флажков и местоположение точки возврата к программе после прерывания, которые затем используются при возвращении из программы-обработчика). Когда 80286/80386 получает байт указателя типа прерывания от 8259A, его значение умножается на четыре, чтобы получить адрес входа в таблицу прерываний.

Программные прерывания Программные прерывания в отличие от аппаратных не привязаны к конкретным аппаратным ресурсам и иногда рассматриваются системными программистами как вызовы подпрограмм. Следует отметить, что концепция программного прерывания значительно "моложе" концепции аппаратного прерывания и возникла в микрокомпьютерах с появлением I8080 и его команды RESTART.

ПП включают в себя три уровня: BIOS-прерывания, DOS-прерывания и пользовательские прерывания. Одно из главных назначений BIOS-прерываний - обеспечение корректного (с точки зрения совместимости) доступа к аппаратуре со стороны операционной системы и пользовательской программы. Однако из-за недостаточной функциональной полноты и жестких требований к времени реакции программы многие программы манипулируют аппаратурой непосредственно. Такие программы могут быть неработоспособны на некоторых IBM-совместимых компьютерах. Роль DOS-прерывания заключается в обеспечении доступа пользовательских программ к системным ресурсам. Большинство корректно разработанных программ использует интерфейс DOS-прерываний при работе с системной аппаратурой. Пользовательские прерывания - это такие прерывания, которые нужны пользователю для создания собственных обработчиков прерываний и не используют никакие из существующих векторов прерываний DOS за исключением официально разрешенных: с INT 60 по INT 67. Иногда для этих целей используют прерывания, зарезервированные для BASIC.

По-видимому, наиболее удачным примером для представления взаимосвязи различных уровней системы прерываний может служить клавиатура PC AT. Клавиатуру обслуживают прерывания трех типов: аппаратное прерывание, BIOS-прерывание и DOS-прерывание.