Выделение запроса на прерывание
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

Существует две основные схемы выделения запроса с наибольшим приоритетом:

v Опрос источников прерывания;

v Векторное прерывание.

При первом способе запросы на прерывание у всех источников однотипны, что не позволяет сразу определить код прерывания. При появлении любого запроса формируется общий сигнал прерывания. Этот сигнал инициирует опрос источников прерываний в соответствии с их приоритетом. Только после выявления “виновника” удается сформировать код прерывания и определить программу его обработки.

Способ прост в реализации, но требует много времени на опрос. Применяется в основном в микро-ЭВМ при небольшом количестве источников прерываний.

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

Запросы заносятся в регистр запросов на прерывание (РЗП). Число разрядов РЗП соответствует числу классов прерываний. Каждый класс имеет строго закрепленный за ним разряд РЗП. Чтобы вызвать прерывание с заданным классом требуется установить соответствую-щий разряд регистра в 1.

Некоторые запросы можно проигнорировать – замаскировать. Маска прерываний хранится в специальном регистре масок (РМ).

Одноименные разряды РЗП и РМ соединены по схеме И. Маска устанавливается специальными командами. Схема выделения запроса выявляет самую левую незамаскированную единицу в регистре запросов и формирует общий сигнал прерывания и его код. Код определяется по номеру разряда РЗП.

 

Обработка прерывания

Основные этапы обработки выделенного прерывания были приведены на Рис.1. Уточним содержание некоторых из них.

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

Поэтому процесс перехода к прерывающей программе и возврат к прерванной должен состоять из следующих этапов:

v Сохранение регистров процессора в памяти (запоминание текущего состояния прерываемой программы);

v Загрузка в регистры состояния прерывающей программы и ее выполнение;

v Загрузка в регистры процессора запомненного состояния пре­рванной программы (восстановле­ние состояния программы) и про­должение ее выполнения.

Обычно сохранение и восстановление регистров возлагается на прерывающую программу. Если такая возможность не предусмотрена, сохранение и восстановление регистров должна выполнять сама прерываемая программа. На Рис.3 показано взаимодействие процесса выполнения программы и процесса обработки прерывания.



ЖИЗНЕННЫЙ ЦИКЛ ПРОГРАММЫ

 

Дата: 2019-02-02, просмотров: 268.