Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка пргр МП.docx
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
16 Мб
Скачать
☆

2.3.4 Аппаратный полинг

В случае аппаратного полинга (дейзи-цепочка, приоритетная цепочка, гирляндное или каскадное включение устройств) микропроцессор и все ПУ соединяются таким образом, что микропроцессор может осуществить автоматический запрос с целью идентификации прерывающего устройства, как показано на рисунке.

Рис. 23. Аппаратный полинг

Когда микропроцессор реагирует на запрос прерывания, он формирует сигнал подтверждения прерывания INTA, на линии, которая последовательно проходит через все устройства. При прохождении сигнала по цепочке проверяется состояние флажков готовности ПУ. Если ПУ не формирует сигнал прерывания, сигнал INTA проходит в следующее ПУ, пока не встретит активное ПУ. Это ПУ блокирует дальнейшее распространение сигнала INTA по цепочке.

Приоритет ПУ задается их физической близостью к микропроцессору по линии INTA.

Затем активное ПУ передает по шине данных свой адрес (вектор прерывания), сопровождая его импульсом STROBE. Этот адрес имеет однозначное соответствие с начальным адресом подпрограммы обслуживания прерывания данного устройства.

Время реакции микропроцессора на запрос прерывания определяется временем распространения сигнала INTA в цепочке и намного превышает времени реакции относительно программного полинга, но он требует дополнительные аппаратные средства для определения приоритета, а также для формирования адреса подпрограммы обслуживания.

Адрес (вектор прерывания), возвращаемый прерывающим устройством, обычно встраивается в интерфейсную плату, и его с помощью перемычек и переключателей может изменять пользователь. Приоритет ПУ определяется размещением его интерфейсной платы в разъеме, занимающее фиксированное положение в схеме.

2.3.5 Характеристики систем прерываний

Для оценки эффективности систем прерывания рассмотрим следующие характеристики.

Если управление сохранением состояния и возвратом возложено на саму прерывающую программу, то она состоит из трех частей: подготовительной и заключительной, обеспечивающих переключение программ, и собственно прерывающей программы, выполняющую затребованную запросом передачу информации.

Рис. 24. Временная диаграмма процесса прерывания

tp – время реакции;

tз – сохранение состояния прерванной программы; tв – время восстановления состояния прерванной программы; tПО – время выполнения прерывающей программы.

Время реакции tр – время между появлением сигнала прерывания и началом выполнения прерывающей программы (включая время выполнения цикла прерывания микропроцессора).

Время обслуживания tо есть сумма времени, затраченной на сохранение состояния прерванной программы, и времени на возврат к ней:

to= tз+tв

Глубина прерывания – максимальное число программ, которые могут прерывать друг друга. Глубина равна К, если допускается последовательное прерывание К программ. Глубина прерывания обычно совпадает с числом уровней приоритетов, распознаваемых системой прерываний.

2.3.6 Контроллер прерываний 8259a

В IBM PC-совместимых компьютерах обработка сигналов запросов прерывания выполняется контроллером прерываний (Programmable Interruption Controller, PIC), программно совместимым с микросхемой Intel 8259A. На рисунке ниже представлена типовая схема подключения контроллера 8259A к процессору.

Рис. 25. Контроллер прерываний 8259A

До восьми контроллеров ввода-вывода могут быть непосредственно связаны с восемью входами IRx (Interrupt Request – запрос прерывания, IRQ) микросхемы 8259А. Когда любое из этих устройств решит выполнить прерывание, оно запускает свою линию входа. Если активизируется один или несколько входов, контроллер 8259А выдает сигнал INT (INTerrupt – прерывание), который подается на соответствующий вход центрального процессора. Если центральный процессор способен обработать прерывание, он посылает микросхеме 8259А импульс через вывод INTA (INTerrupt Acknowledge – подтверждение прерывания). В этот момент микросхема 8259А должна определить, на какой именно вход поступил сигнал прерывания. Для этого она помещает номер входа на информационную шину. Эта операция требует особого цикла шины. Центральный процессор использует этот номер для обращения к таблице указателей, которую называют таблицей векторов прерываний, чтобы найти адрес процедуры обработки этого прерывания.

Микросхема 8259А содержит несколько регистров, которые центральный процессор может считывать и записывать, используя обычные линии шины и сигналы управления (чтение, запись и т.д.). Когда программное обеспечение обработало прерывание и готово получить следующее, оно записывает специальный код в один из регистров, который вызывает сброс сигнала INT микросхемой 8259А, если не появляется другое прерывание. Регистры также могут записываться для того, чтобы перевести микросхему 8259А в один из нескольких режимов, и для выполнения некоторых других функций.

При наличии более 8 устройств ввода-вывода микросхемы 8259А могут соединяться каскадом. В самой экстремальной ситуации все 8 входов могут быть связаны с выходами еще 8 микросхем 8259А, соединяя до 64 устройств ввода-вывода в двухступенчатую систему прерывания. Микросхема 8259А содержит несколько выводов для каскадного соединения, но мы их опустили ради простоты.