logo
Кафедра “Системы автоматического управления”

14.4. Организация векторной системы прерываний.

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

Указатель на стартовый адрес (вектор) прерывания передается по шине данных от КП к МП. Чтение указателя прерываний аналогично чтению памяти, с той разницей, что код указателя стробируется на шине данных сигналом подтверждения прерывания - INТА.

Пример структурной схемы МПС с КП, реализующей векторную систему прерываний приведен на рис.14.3.

Рис.14.3.

Каждое внешнее устройство может генерировать радиальный запрос на прерывание IRQi, . Все источники прерываний подключаются через контроллер прерываний к одному обобщенному входу прерываний INТR МП.

При возникновении прерывания МП заканчивает выполнение текущей команды программы, что подтверждается первым импульсом на линии INТА. Этот импульс стробирует запись запроса на прерывание IRQi в регистр обслуживания прерываний КП. Однако МП пока еще не имеет информации о конкретной причине прерываний, поэтому он не может тот час запустить необходимую обслуживающую процедуру. Для того, чтобы осведомиться о причине прерывания МП выставляет на шине адреса АВ адрес КП и с помощью второго импульса INТА вводит специальное кодированное слово - вектор прерывания, чем источник прерывания распознается однозначно. Тем самым определяется стартовый адрес необходимой процедуры обслуживания прерывания, который заносится в счетчик команд.

На приведенном рис.14.3 флажок IF регистра флагов МП (разрешение прерываний) схематически показан в виде ключа, с помощью которого можно игнорировать все прерывания от внешних устройств. Для селективного отключения входов прерываний (маскирования) в состав КП введен специальный регистр - регистр маски прерываний. Маска представляет собой байт, разряды которого управляют включением или отключением прерываний по соответствующему входу. КП устанавливает также приоритет прерывания при одновременном появлении более чем одного требования прерывания.

Т.о. основными функциями КП являются: формирование сигнала векторного прерывания; подготовка и выдача на шину данных вектора прерывания; определение приоритета при одновременном появлении более чем одного требования прерывания.

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

Пример формирования 8-ми разрядного указателя таблицы прерываний, расположенной в памяти МПС, начиная с адреса 80Н, контроллером прерываний, имеющим восемь входов для подключения ВУ приведен на рис.14.4.

Рис.14.4.

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

Недостатком векторной системы прерываний является необходимость подключения специальных схем - контроллеров прерываний.