Аппаратные прерывания. Работа контроллера Intel 8259. Приоритет прерываний. Запрет и маскирование аппаратных прерываний
Прерывание— сигнал, сообщающий ЦП о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания(специальная процедура, вызываемая по прерыванию для выполнения его обработки.), который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код. В зависимости от источника возникновения сигнала прерывания делятся на: · асинхронные, или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (Interrupt request, IRQ); · синхронные, или внутренние — события в самом ЦП как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль, переполнение стека, обращение к недопустимым адресам памяти; программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания обычно используются для обращения к функциям встроенного ПО (firmware), драйверов и ОС. Внешние (аппаратные) прерывания в зависимости от возможности запрета делятся на: · маскируемые — прерывания, которые генерируются контроллером прерываний Intel 8259 по запросу периферийных устройств и которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов); · немаскируемые — прерывания, которые формируются схемами, фиксирующими такие события, как сбой питания, ошибки процессора и сопроцессора, ошибки ввода-вывода и прочие катастрофические события, требующие безотлагательной обработки, аппаратные сбои. Обрабатываются всегда, независимо от запретов на другие прерывания. Программы на Ассемблере могут запретить аппаратные прерывания. Это маскируемые прерывания, и они зависят от флага прерывания IF (9 бит регистра флагов): IF = 1 - маскируемые прерывания разрешены; IF = 0 - маскируемые прерывания запрещены. С этим флагом работают две команды процессора: CLI – запретить все аппаратные прерывания; SLI - разрешить все аппаратные прерывания. Существует несколько причин для запрета аппаратных прерываний: · прерывания блокируются для того, чтобы критическая часть кода была выполнена целиком, прежде чем машина произведет какое-либо действие. Например, изменение или настройка вектора аппаратного прерывания (закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний.). · маскируются только определенные аппаратные прерывания. Это делается тогда, когда некоторые прерывания могут взаимодействовать с операциями, критичными к интервалам времени. Например, точно рассчитанная процедура ввода/вывода не может быть прервана другими прерываниями. Когда происходит прерывание, ЦП «приостанавливает» свою работу, выполняет программу прерывания, а затем возвращается к работе в прерванном месте. Для того чтобы иметь возможность вернуться в нужное место программы, адрес этого места сохраняется в стеке. Сохраняется дальний адрес возврата и регистр (регистр - это определенный участок памяти внутри самого процессора, от 8-ми до 32-х бит длиной, который используется для промежуточного хранения информации, обрабатываемой процессором) флагов CS:IP, PSW. Затем в CS:IP загружается адрес программы обработки прерываний, которой передается управление. Программа обработки прерывания – драйвер прерывания. Программа обработки аппаратных прерываний заканчивается всегда инструкцией iret (возврат из прерывания код CF). Из стека восстанавливается CS:IP и регистр флагов PSW, давая возможность продолжить выполнение прерванной программы. Cистема прерываний – это совокупность программных и аппаратных средств, реализующих механизм прерываний. К аппаратным средствам относятся: • выводы микропроцессора: - INTR – вывод для входного сигнала внешнего прерывания. - INTA – вывод МП для выходного сигнала подтверждения получения сигнала. - NMI – вывод МП для немаскируемого прерывания • микросхема ПКП (программируемый контроллер прерывания) 8259А. • внешние устройства: таймер, клавиатура, диски и т.д. К программным средствам относятся: • таблица векторов прерываний – указатели на процедуры обработки прерываний; находится в первом Кб оперативной памяти. Каждый указатель – 4 байта, итого 256 указателей. • флаги в регистре флагов: o IF (Interrupt Flag) - флаг прерывания. Предназначен для маскирования аппаратных прерываний. Если он = 1, то прерывания разрешены, иначе – запрещены. o TF (Trace Flag) – флаг трассировки. Если = 1, то МП в режиме покомандной работы и после выполнения каждой машинной команды в МП генерируется внутреннее прерывание с номером 1 далее следуют действия в соответствии с алгоритмом обработки данного прерывания. • Машинные команды МП: int( программныепрерывания, предназначены для выполнения некоторых действий операционной системы), into (прерывание по переполнению), iret (извлечь последовательно три слова из стека и поместить их соответственно в регистры ip, cs, flags.), cli (защитить от возможного искажения содержимого регистров), sti(разрешить аппаратные прерывания). Устройство ПКП 8259А Эта микросхема может обрабатывать запросы от 8 источников внешних прерываний. Этого недостаточно, поэтому обычно используют 2 последовательно соединенные микросхемы (итого 15 источников). Рисунок 2.1 - Подсистема прерываний компьютера Рисунок 2.2 - Структурная схема и схематическое представление выводов i8259A Функции, выполняемые микросхемой ПКП: • фиксирование запросов на обработку прерывания от 8 источников, формирование единого запроса на прерывание и подача его на вход INTR МП; • формирование номера вектора прерывания и выдача его на шину данных; • организация приоритетной обработки прерываний (приоритет NMI выше всех маскируемых прерываний) • запрещение (маскирование) прерываний с определенными номерами. Назначения выводов микросхемы: • d0…d7 – выводы на системную шину данных. По ним передается номер прерывания и принимается управляющая информация. • INT – вывод выходного сигнала запроса на прерывание, который подается на вход МП INTR. • INTA – вывод для сигнала МП, подтверждающего факт принятия им прерывания на обслуживание; • Irq0…irq7 – выводы для входных сигналов запросов на прерывания от внешних устройств. Назначение основных структурных компонент ПКП: • IRR – регистр запросов на прерывания – 8-разрядный регистр, фиксирующий поступление сигнала на один из входов irq0-irq7. Устанавливается в 1 соответствующий бит. • IMR – регистр маскирования прерываний. 8-разрядный регистр, с помощью которого можно запретить обработку соответствующих запросов на прерывания. Для запрещения необходимо установить соответствующие биты IMR – путем программирования порта 21h. • ISR – регистр обслуживаемых прерываний – 8-разрядный регистр, показывающий какие прерывания обрабатываются в данный момент в МП (если соответствующий бит=1). • PR- арбитр приоритетов – разрешение конфликтов при одновременном приходе запросов на входы irq0-irq7. • Блок управления чтением/записью – организация информационного обмена контроллера прерывания и МП через шину данных.
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1251)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |