Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
52
Добавлен:
26.03.2015
Размер:
383.49 Кб
Скачать

13.3. Расширение радиальной системы прерываний методом поллинга.

Каждая внешняя радиальная линия IRQ с фиксированным вектором прерывания может быть превращена в магистраль, которая по схеме «монтажное ИЛИ» объединяет запросы от нескольких источников прерываний. Однако в этом случае после принятия общего запроса к обслуживанию возникает задача идентификации источника, выставившего запрос, и передачи управления на соответствующую процедуру обслуживания, которая решается только программными методами с помощью специальной процедуры POLL, называемой поллингом.

Функция поллинга состоит в последовательном опросе состояния всех устройств, связанных с данной линией запросов (рис. 11.3.), и выявлении готового к обслуживанию. При опросе используются стандартные подпрограммы проверки готовности, которые входят в драйверы устройств:

POLL:

CALL

STATUS

; Проверка готовности

JNZ

SERVICE

; и переход, если готов

Конкретный вид процедур проверки готовности STATUS и обслуживания SERVICE зависит от типа ПУ. В подпрограмме предполагается, что признак готовности возвращается через флажок нулевого результата Z. Простейший вид подпрограммы для портов условного ВВ следующий:

STATUS:

IN SW

; Ввод слова состояния

ANI

RDY

; Выделение флажка готовности

RET

Опрашиваемый подпрограммой STATUS флажок готовности RDY обычно является и флажком потенциального запроса на прерывание IRQ. После обслуживания устройства (операция ВВ для портов) флажок RDY сбрасывается, автоматически снимая запрос на обслуживание. Затем может быть дано разрешение на прием новых запросов от устройств, которые к данному моменту уже выставлены. Однако такая схема действительна только для входов статического типа. При использовании динамических входов ряд новых запросов, пришедших от ПУ во время обслуживания, может быть потерян. Для их восстановления в конце текущего цикла обслуживания следует повторить процедуру POLL. Возврат к прерванной программе разрешается только после обслуживания всех устройств.

Рис. 11.3.Организация обслуживания по поллингу.

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

[Вернутся к плану лекции]

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

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

Таблица 11.1

Тип микропроцессора

Запросы

Тип микропроцессора

Запросы

Векторного прерывания

С фиксированным вектором

Векторного прерывания

С фиксированным вектором

КР580ВМ80

INT

Нет

К1816ВЕ51

-

INTO

К1821ВМ85А

INTR

TRAP

-

-

INT1

-

-

RST7.5

K1810BM86

INTR

NM1

-

-

RST6.5

K1801BM1

VIRQ

IRQ3

-

-

RST5.5

-

-

IRQ2

-

-

INT

-

-

IRQ3

-

-

-

80286

INTR

NMI

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

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

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

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

Существует более простой метод ввода вектора, эквивалентного RST 7. Для этого следует свободный выход INТА системного контроллера ВК28/ВК38 подключить через резистор 1 кОм к источнику питания +12 В. Контроллер сам во время циклов INTA будет генерировать команду RST7 на внутреннюю шину данных МП ВМ80 независимо от состояния системной шины данных. На основе вышеизложенной методики можно легко построить поллинговые расширения системы прерываний с одним уровнем. Для этого следует флажок разрешения прерывания INTE (вариант флажка IS) устанавливать только по окончании обслуживания. Разрешение прерываний выполняется командой EI (вариант операции EOI) перед возвратом RET. Особенность команды EI состоит в том, что прерывания разрешаются только после а исполнения последующего командного цикла. Это предотвратит 1 возможное переполнение стека при серии плотно следующих друг за другом запросов. Задача построения процедуры POLL облегчается тем, что линия INTR является статической.

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

Рис. 11.4. Подключение контроллера прерываний к центральному процессору.

РИС. 11.5. Шлейфовая структура системы прерываний: а - логика опроса периферийных устройств; б - схема подключения к центральному процессору.

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

[Вернутся к плану лекции]

Соседние файлы в папке КСТиАК - Конспект лекций