Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Алгоритм обработки прерываний



Сигнал запроса на прерывание вырабатывается периферийным устройством при его готовности к обмену информацией. Сигнал может появиться в произвольный момент времени.

Процессорное ядро может реагировать на запросы прерываний по-разному. В каждой архитектуре реализуется своя оригинальная система обслуживания прерываний. Однако общий алгоритм обработки запросов всегда содержит одни и те же действия ядра:

0 при поступлении запроса на прерывание завершается выполнение текущей инструкции программы;

0 записывается в стек содержимое программного счетчика и текущее состояние некоторых наиболее важных регистров общего назначения;

0 идентифицируется прерывающее устройство;

0 осуществляется переход к выполнению подпрограммы обслуживания прерывания для идентифицированного устройства;

0 по окончании подпрограммы восстанавливает состояние прерванной программы за счет извлечения из стека содержимого регистров общегоназначения и программного счетчика;

0 возобновляется выполнение прерванной программы.

В различных системах обработки прерывания отдельные перечисленные действия реализуются аппаратно или программно.

Пользователю системы всегда предоставляется возможность отключить (замаскировать) отдельные источники прерываний. Для этого в схемах предусматриваются специальные программируемые регистры маски, где каждому источнику прерываний ставится в соответствие один бит.

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

Наиболее простым является фиксированное распределение приоритетов. При этом каждому из источников запросов присваивается постоянный приоритет, соответствующий его порядковому номеру в схеме.

Циклическое распределение приоритетов (очередь) используется в тех случаях, когда ни одному из источников запросов исходно нельзя отдать явного предпочтения. В этом случае приоритеты входов изменяются в процессе работы контроллера после обработки любого из запросов. Вход последнего обслуженного запроса на прерывание получает низший приоритет, а приоритеты остальных входов при этом повышаются.





Дата публикования: 2014-11-03; Прочитано: 1806 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...