Программируемый контроллер прерываний
Задача контроллера состоит в приеме запросов прерывания от ВУ, сравнении их приоритетов и посылки запроса прерывания в ЦП вместе с информацией о местоположении соответствующей подпрограммы. В функции ПКП также входит изменение дисциплины обслуживания ВУ, т. е. установка различных режимов присвоения приоритетов ВУ в соответствии с общими требованиями к системе.
Один контроллер позволяет обслуживать восемь ВУ, число которых может быть увеличено путем каскадирования контроллеров. Так, в ВМ используется два ПКП и число обслуживаемых аппаратных прерываний равно 15. На рис. 4.1 изображена схема ПКП.
Буфер данных БД вместе со схемой управления обменом по ШД D7 – D0обеспечивает прием управляющих слов (команд) в контроллер при программировании, а также выдачу состояний регистров контроллера и информации об адресе подпрограммы. Регистр запросов прерываний РЗП служит для запоминания всех запросов от ВУ по входам IR7-IR0. Регистр масок прерываний РМП хранит маску, с помощью которой можно запретить обслуживание запросов по любому входу. Схема сравнения приоритетов СхСПр выбирает запрос с наибольшим приоритетом среди вновь поступивших и уже обслуживаемых запросов. Регистр обслуживаемых прерываний РОП. содержит единицы на позициях, соответствующих обслуживаемым запросам, причем каждая единица запрещает обслуживание запросов с меньшим приоритетом, если отсутствует режим специального маскирования.
Управляющее устройство УУ, содержащее регистры команд инициализации РКИ и регистры рабочих команд РРК, обеспечивает выработку внешних и внутренних управляющих сигналов. Блок каскадирования БК осуществляет связь ведущей БИС контроллера с ведомыми при использовании нескольких ПКП в микропроцессорной системе.
Рис. 4.1. Схема программируемого контроллера прерываний
Intel 8259A
Последовательность действий при обслуживании прерываний:
1. ПКП воспринимает запросы прерывания по входам IR от одного или нескольких ВУ, записывает единицы в соответствующие разряды РЗП, проверяет маскирование, определяет запрос с наивысшим приоритетом и посылает сигнал прерывания INT на соответствующий вход ЦП.
2. Если прерывания разрешены, ЦП заканчивает выполнение текущей команды и активизирует сигнал подтверждения прерывания INTA.
3. По получении первого импульса INTA ПКП устанавливает в «1» разряд регистра РОП, соответствующий запросу, подлежащему обслуживанию, а одноименный разряд регистра РЗП сбрасывается в «0».
4. ЦП вырабатывает второй импульс INTA, по получении которого контроллер посылает по ШД в ЦП8-разрядный указатель (вектор), используемый для определения начального адреса подпрограммы обслуживания прерывания.
5. ЦП переходит на выполнение подпрограммы обслуживания прерывания.
В режиме автоматического окончания прерывания AEOI цикл входа в прерывание завершается по окончании второго импульса INTA, по которому соответствующий разряд РОП сбрасывается в «0». В режиме обычного окончания разряд регистра РОП, соответствующий текущему уровню прерывания, остается в «1> до появления команды EOI - конец прерывания.
Дата добавления: 2018-11-26; просмотров: 832;