Организация векторной системы прерываний. Программируемый контроллер прерываний ВН59, страница 2

 Каждый запрос шлейфа может быть индивидуально замаскирован с помощью программно-доступного по записи триггера маски MSK.. Обычно этот триггер входит в состав CW устройства и доступен для обратного контроля через SW. Вектор прерывания устройства может быть как фиксированным, так и программно-управляемым. При использовании шлейфа совместно с ЦП на базе ВМ80 вектор имеет вид 11NNN111, соответствующий команде RSTN, N=0—7.

Основной недостаток шлейфовой структуры—трудность уп­равления приоритетами. Устройства, стоящие в INTA-цепочке ближе к ЦП, обладают более высоким приоритетом, поэтому изменение приоритетов сводится к изменению последовательности опроса, для чего может потребоваться специальная логика арбитража. Последняя может выполняться как централизован­ными, так и децентрализованными средствами.

3.6. Программируемый контроллер прерываний ВН59

Система векторных прерываний ВМ80/ВМ85А может быть построена раз­личными способами. Наиболее эффективно она реализуется с помощью специаль­ной БИС типа КР580ВН59 (ВН59), называемой программируемым контроллером прерываний (ПКП). Микросхема выполняется по п-МОП-технологии и размещает­ся в 28-выводном корпусе с вертикальным расположением выводов. Она совместима с ТТЛ-схемами. Для работы БИС требуется единственный источник питания +5 В.

На основе ПКП ВН59 формируется 8-уровневая приоритетная система векторных прерываний для МП типов ВМ80/ВМ85А. Несколько контроллеров ВН59 могут соединяться каскадно для расширения числа уровней прерывания до 64. Прибор обеспечивает работу в нескольких режимах, позволяя оптимизировать

логику работы системы прерываний согласно требованиям, предъявляемым к МС. Структур­ная схема и условное графическое обозначение ПКП приведены на рис. 3.41. •-' Рассмотрим работу ВН59 в автономном режиме (рис. 3.42). Один или несколько запро­сов на прерывания (переход из 0 в 1) подаются на входы 1RO—IR7 и запоминаются в регистре запросов IRR (Interrupt Request Register). Ре­гистр обслуживания ISR (In Service Register) содержит все запросы, которые в данное время находятся в стадии обработки. Регистр маски IMR (Interrupt Mask Register) используется для маскирования отдельных уровней. Запрет некоторого уровня соответствует единице в соответствующем разряде IMR.

Приоритетная логика выбирает разрешенный запрос на прерывание с наивысшим приоритетом из числа поступивших и сравнивает его с текущим приоритетом запросов, находящихся на обслуживании. При превышении последне­го ПКП генерирует сигнал INT (рис. 3.43). Микропроцессор подтверждает прием запроса INT генерацией строба 1NTA, под воздействием которого запрос с высшим приоритетом из IRR фиксируется в соответствующем разряде ISR. Принятый к обслуживанию IRR-бит сбрасывается и прием нового запроса разрешается. Одновременно с этим ПКП генерирует код команды CALL (OCDH), который принимается МП. В ответ ВМ80/ВМ85А инициирует еще два следующих друг за другом INTA-цикла. Во время этих циклов ПКП передает в МП полный адрес программы обслуживания прерывания, принятого к обработке: сначала младший, а затем старший байт адреса. Установленный в ISR бит остается в состоянии 1 до окончания процедуры обслуживания. В конце процедуры в ПКП

должна быть передана специальная команда окончания прерывания EOI, которая сбрасывает соответствующий ISR-бит.

До тех пор, пока некоторый ISR-бит установлен, все запросы с равным или меньшим приоритетом игнорируются. В то же время запросы с более высоким приоритетом приводят к генерации сигнала INT, инициируя вложенные преры­вания МП.

' Каскадное соединение нескольких БИС типа ВН59 (рис. 3.44) позволяет довести число приоритетных уровней до 64. В данном случае одна БИС действует

как ведущая (SP=1), а другие как ведомые (SP=0).