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

Страницы работы

Содержание работы

Организация векторной системы прерываний повышение эффек­тивности системы прерываний связано с параметризацией команды CALL и передачей функции генерации этого параметра, названного вектором прерывания, внешним средствам. Интерфейс векторного запроса расширен шиной VECT для ввода вектора прерывания. Ее физическое совмещение с шиной данных потребо­вало включения в системную магистраль новой командной линии подтверждения прерывания INTA. Временные диаграммы цикла ввода вектора прерывания аналогичны диаграммам цикла чтения памяти с заменой строба MRDC на строб INTA.

Выпускаемые промышленностью МП осуществляют как ради­альные так и векторные прерывания (табл. 3.5). При этом вектор может представлять полную команду CALL (МП типов ВМ80/8085А), ее адресную часть, отдельное поле полного адреса и т. д. В более совершенных системах векторного прерывания (МП типов ВМ86/ВМ88, К1801ВМ1) введен уровень преобразования физическо­го вектора в стартовый адрес про­цедуры обслуживания, который вы­полняется с помощью таблицы пре­рываний IDT (Interrupt Descriptor Table). При этом вектор рассматри­вается как индекс таблицы, которая обычно размещается в системной памяти начиная с нулевого адреса. В новом МП 80286 [52] введен специальный   базовый   регистр IDTR. позволяющий размещать таблицу прерываний в любой части адресного пространства памяти.

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

Аналогичным преобразованиям подвергаются и запросы ради­альных прерываний. Обычно они соотносятся с некоторыми векторными прерываниями и называются запросами с фиксиро­ванными векторами.

Используя схему векторного прерывания с одним и тем же вектором легко получить линию запросов радиального типа. Так, для процессора на базе МП ВМ80 (см. рис. 2.17) не потребуется никаких вспомогательных схем. Действительно, при каждом стробе INTA МП будет принимать состояние свободной шины данных. Для приведенной на рис. 2.17 схемы ЦП с прямой шиной, нагруженной резисторами, подключенными к источнику питания +5 В, цикл INTA закончится вводом вектора OFFH, что соответствует команде RST 7. В результате этого управление будет передано на стартовый адрес 0038Н. В случае инверсной шины ввод ее свободного состояния содержит код ООН, соответствующий команде NOP.

Существует более простой метод ввода вектора, эквивалентного RST 7. Для этого следует свободный выход INTA системного контроллера ВК28/ВК38 подключить через резистор 1 кОм к источнику питания +12 В. Контроллер сам во время циклов INTA будет генерировать команду RST7 на внутреннюю шину данных МП ВМ80 независимо от состояния системной шины данных.

На основе вышеизложенной методики можно легко построить поллинговые расширения системы прерываний с одним уровнем. Для этого следует флажок разрешения прерывания INTE (вариант флажка IS) устанавливать только по окончании обслуживания. Разрешение прерываний выполняется командой EI (вариант операции EOI) перед возвратом RET. Особенность команды EI состоит в том, что прерывания разрешаются только после исполнения последующего командного цикла. Это предотвратит возможное переполнение стека при серии плотно следующих друг за другом запросов. Задача построения процедуры POLL облегча­ется тем, что линия INTR является статической.

Другой способ расширения системы прерываний состоит в проектировании внешних программно-управляемых средств, кото­рые собирают вторичные (периферийные) радиальные запросы IRQ1—IRQN и формируют из них внутрисистемное векторное прерывание. Существуют два основных подхода при решении данной задачи. Первый подход—передача этих функций не­посредственно ПУ и, следовательно, решается методом децентра­лизованного управления. Этот подход нашел свое практическое воплощение в МПК БИС, ориентированных на работу с О-шиной. Второй подход состоит в передаче функции формирования векторного прерывания специальному устройству (рис. 3.39)— контроллеру прерываний. Сам контроллер прерываний может рассматриваться как расширение процессора, по этой причине его часто называют сопроцессором обработки прерываний. Данный подход удовлетворяет стандарту на системный интерфейс пери­ферийных БИС типа Microbus, который предусматривает гене­рацию исключительно радиальных запросов.

Простейший вариант построения внешних средств формирова­ния вектора средствами ПУ носит ярко выраженный шлейфовый характер (рис. 3.40). В нем копируется логика работы программы поллинга, перенося ее на аппаратные средства.

Похожие материалы

Информация о работе