
Аппаратный полинг.
В аппаратном полинге (синонимы: дейзи-цепь, приоритетная цепочка, гирляндное или каскадное включение устройств) процессор и все периферийные устройства соединяются таким образом, что процессор может осуществить автоматический опрос с целью идентификации прерывающего устройства (рис. 6.5).
Когда процессор реагирует на запрос прерывания, он формирует сигнал подтверждения прерывания INT ACK на линии, которая последовательно проходит через все устройства. При прохождении сигнала по цепочке проверяется состояние флажков готовности устройств. Если устройство не формирует прерывания, сигнал INT ACK проходит в следующее устройство, пока не встретится прерывающее (активное) устройство. Оно блокирует дальнейшее распространение сигнала INT ACK по цепочке. Таким образом, здесь приоритеты устройств определяются их физической близостью к процессору по линии INT ACK.
Рис. 6.5 Схема аппаратного полинга
Затем активное устройство передает по шине данных свой адрес (идентификатор или вектор) вместе со стробирующим (синхронизирующим) импульсом STROBE. Последний информирует процессор о нахождении на шине данных адреса устройства с наибольшим приоритетом, запрашивающего обслуживания. Этот адрес имеет однозначное соответствие с начальным адресом подпрограммы обслуживания прерывания данного устройства, в простейшем случае равен начальному адресу. Иногда возвращаемый адрес представляет собой индекс, прибавляемый к содержимому базового регистра процессора.
Адрес, возвращаемый прерывающим устройством, обычно встраивается в интерфейсную плату, и его с помощью перемычек или переключателей может изменять пользователь. Приоритет устройства определяется размещением его интерфейсной платы в разъеме, занимающем фиксированное положение в схеме.
При наличии нескольких одновременных запросов прерываний аппаратный полинг обеспечивает быструю идентификацию устройства с наибольшим приоритетом. По линии прерывания к процессору можно подключить больше периферийных устройств. Основной недостаток этого способа связан с задержкой распространения сигнала INT ACK в цепочке. Однако общее время идентификации прерывающего устройства оказывается намного меньше, чем в программном полинге, поэтому аппаратный полинг в мини- и микро-ЭВМ распространен довольно широко.