Пересылки по прерыванию
Последовательность действий в алгоритме пересылок по прерыванию может быть описана следующими шагами:
1. Периферийное устройство запрашивает прерывание, выставляя сигнал «Запрос» на соответствующий вход процессора.
2. Процессор завершает выполнение очередной команды текущей программы и, если он находится в состоянии «разрешения прерываний», проверяет наличие сигнала «Запрос». (В режиме «запрещения прерывания» проверка входа «Запрос» не производится). При обнаружении сигнала «Запрос» процессор переходит в состояние ожидания и выставляет на линию «Добро» (подтверждение прерывания) соответствующий уровень сигнала.
3. ПУ принимает сигнал «Добро» и выставляет на шину данных двоичный код, идентифицирующий данное устройство. Одновременно на линию «Готов» выставляется соответствующий сигнал.
4. Приняв сигнал «Готов», процессор снимает идентифицирующий ПУ код с шины данных и организует переход к программе обработки данного прерывания аналогично переходу к обычной подпрограмме (например, используя стек).
5. Первыми командами подпрограммы обработки прерывания должно быть обеспечено сохранение (в стеке) значений флагового регистра и регистров РОН, соответствующих моменту прерывания текущей программы. Далее в подпрограмме обработки прерывания производятся программно-управляемая пересылка данных (например, по асинхронному алгоритму) и, возможно, какие-либо преобразования.
|
|
6. Подпрограмма обработки прерывания заканчивается восстановлением содержимого всех внутренних регистров процессора и командой возврата из подпрограммы.
7. Возобновляется счет по прерванной программе.
Код, идентифицирующий выдавшее запрос прерывания ПУ, используется тем или иным способом (в зависимости от конструкции процессора) для определения начального адреса хранящейся в главной памяти программы обработки данного запроса — вектора прерывания. Кроме описанного выше «векторного» способа обработки запросов существуют и другие. Однако данный способ имеет в настоящее время наибольшее распространение.
Дата добавления: 2015-12-20; просмотров: 17; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!