Обмен по прерываниям.
Простота программно-управляемого ввода-вывода оборачивается "бездельем" МП, который почти все время находится в ожидании ввода или вывода. Например, если на принтер выводится информация с быстродействием 1000 символов в секунду, то полезное время работы МП составит всего 0,1% и менее.
При недопустимости такой ситуации требуется обеспечить такой режим работы МП, когда он выполняет две независимые программы, одна из которых - программа управления обменом с ВУ (программно-управляемый обмен) - вызывается только тогда, когда ВУ необходимо выполнить какие-то действия (аварийные, допусковые ситуации и др.). Указанный режим реализуется с помощью механизма прерываний. Данный способ представляет собой расширение "демократии" взаимодействия между элементами в системе и, как следствие, требует дополнительных организационных затрат: аппаратных и программных.
Для организации обмена по прерываниям необходимо дополнительно ввести две шины управления: "Запрос прерывания" (ЗПР) – ВУ запрашивает обслуживания у МП, "Разрешение прерывания" (РПР) – МП подтверждает начало обслуживания (рис.21).
Рис.21 | Рис.22 |
На МП возлагаются следующие функции:
· принять сигнал ЗПР;
· завершить выполнение текущей команды основной программы;
· запомнить в стеке (ОЗУ) адрес следующей для исполнения команды;
· передать управление подпрограмме обработки прерывания (обслуживания запроса ВУ);
· выдать сигнал РПР.
Так как МП не "знает", где в запоминающем устройстве расположена подпрограмма обработки прерывания, он передает управление не ей, а команде ЗУ, расположенной чаще всего по адресу 0 (или любой другой, обусловленной схемотехникой МП). На программиста возлагается задача расположить по этому адресу команду передачи управления подпрограмме обработки запроса ВУ (см. рис.22).
Для корректного использования такого способа ввода-вывода между фоновой программой и программой обмена существуют некоторые соглашения. Так как основная программа будет продолжена, подпрограмма обработки прерывания ВУ должна:
1. Запомнить в стеке состояние всех используемых регистров основной программы.
2. Выполнить обмен информацией между МП и ВУ, устранив причину запроса.
3. Восстановить из стека состояние используемых регистров основной программы.
4. Передать управление в основную программу (адрес возврата находится в стеке).
МП может иметь несколько входов "Запрос прерывания", часть из которых обычно программно "маскируется" (запрещается или разрешается), а часть – нет (для случаев аварийной ситуации на технологическом объекте, требующей безотлагательного вмешательства).
Дата добавления: 2017-02-13; просмотров: 1908;