Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Сигнал запроса на прерывание вырабатывается периферийным устройством при его готовности к обмену информацией. Сигнал может появиться в произвольный момент времени.
Процессорное ядро может реагировать на запросы прерываний по-разному. В каждой архитектуре реализуется своя оригинальная система обслуживания прерываний. Однако общий алгоритм обработки запросов всегда содержит одни и те же действия ядра:
0 при поступлении запроса на прерывание завершается выполнение текущей инструкции программы;
0 записывается в стек содержимое программного счетчика и текущее состояние некоторых наиболее важных регистров общего назначения;
0 идентифицируется прерывающее устройство;
0 осуществляется переход к выполнению подпрограммы обслуживания прерывания для идентифицированного устройства;
0 по окончании подпрограммы восстанавливает состояние прерванной программы за счет извлечения из стека содержимого регистров общегоназначения и программного счетчика;
0 возобновляется выполнение прерванной программы.
В различных системах обработки прерывания отдельные перечисленные действия реализуются аппаратно или программно.
Пользователю системы всегда предоставляется возможность отключить (замаскировать) отдельные источники прерываний. Для этого в схемах предусматриваются специальные программируемые регистры маски, где каждому источнику прерываний ставится в соответствие один бит.
При большом количестве источников прерываний порядок их обслуживания определяется приоритетом источника. Приоритет устанавливается в зависимости от важности и ответственности решаемой этим устройством задачи. Полагается, что запрос с большим приоритетом способен прервать подпрограммы обслуживания прерываний с меньшим приоритетом.
Наиболее простым является фиксированное распределение приоритетов. При этом каждому из источников запросов присваивается постоянный приоритет, соответствующий его порядковому номеру в схеме.
Циклическое распределение приоритетов (очередь) используется в тех случаях, когда ни одному из источников запросов исходно нельзя отдать явного предпочтения. В этом случае приоритеты входов изменяются в процессе работы контроллера после обработки любого из запросов. Вход последнего обслуженного запроса на прерывание получает низший приоритет, а приоритеты остальных входов при этом повышаются.
Дата публикования: 2014-11-03; Прочитано: 1807 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!