Программируемый контроллер прерываний
Рассмотрение функций контроллера 82380 продолжим с помощью Рис. 9.3. Функционально программируемый контроллер прерываний идентичен своим предшествующим моделям 8259А и 82С59А, за исключением программирования векторов прерываний. В контроллере 82380 объединены ресурсы трех контроллеров типа 82(С)59А. Каскадируя пятнадцать входов запросов прерываний контроллеров 82С59А, имеющихся в распоряжении программиста, можно организовать до 120 каналов запросов внешних прерываний. Хотя контроллеры могут работать в режиме ведущего устройства, приоритет отдается каскадному режиму.
В контроллере прерываний 82380 имеются более широкие возможности по использованию механизма векторов прерываний, поскольку каждый вход запроса прерываний может отдельно программироваться. Это значит, что каждому запросу прерываний может быть предписан свой собственный вектор прерывания; кроме того, системные программы по умолчанию могут присвоить контроллеру прерываний 82380 определенный вектор. Этот вектор используется в цикле подтверждения незапрашиваемых прерываний или прерываний, вызванных ошибочным запросом, с целью предупреждения системы о ложных прерываниях. С помощью прерывания система также информируется о том, что предпринята попытка запрограммировать векторы контроллера 82380 по методу контроллера 82С59А. Эта особенность гарантирует совместимость существующих программных продуктов с программным обеспечением, написанным для 82380. К другим усовершенствованиям контроллера прерываний 82380 относится возможность каскадного подключения внешних контроллеров прерываний, а также то, что квитирование установления связи между ведущим и ведомым устройствами вынесено из специализированных каскадных линий на шину данных.
На рис. 11.3 показаны пять основных блоков контроллера прерываний:
· регистр запросов прерываний (IRR);
· блок разрешения приоритетов (PR);
· служебный регистр (ISR);
· регистр маски (IMR);
· регистр векторов (VR).
Всеми прерываниями управляют каскадно включенные регистры запроса прерываний IRR и служебный регистр ISR. В регистре IRR фиксируются уровни всех прерываний, требующих обработки, а в регистре ISR — уровни всех прерываний, проходящих обработку. Во время цикла подтверждения прерывания с помощью блока разрешения приоритетов определяются приоритеты запросов по содержимому регистра IRR, а для прерываний с высшим приоритетом в регистре ISR помечаются соответствующие разряды. Регистр маски прерываний IMR используется совместно с регистром IRR и хранит код, по которому будут маскироваться определенные линии прерываний. Маскирование входов с более высоким приоритетом не влияет на линии запросов прерываний с низшим приоритетом. Номера предварительно запрограммированных векторов прерываний записываются в набор векторных регистров VR, для каждой линии запроса прерывания определен свой векторный регистр. Во время цикла подтверждения прерывания контроллера 82380 номер вектора, соответствующий выбранному прерыванию, выставляется на шину данных.
Рис. 9.3. Структурная схема контроллера прерываний
Дата добавления: 2019-02-07; просмотров: 406;