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

 

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

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

POLL:

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

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

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

STATUS: IN SW ; Ввод слова состояния

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

RET

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

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

 

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

 








Дата добавления: 2016-01-20; просмотров: 926;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.