logo search
Шпоры по ВТ

47. Программный, циклический и цепочечный способы опроса

Используются программный, циклический и цепочечный способы опроса.

Процесс прерывания с программным опросом флажков протекает под управлением специальной программы, описывающей следующий алгоритм:

Программный опрос источников прерываний занимает сравнительно много времени. Для уменьшения этого времени процедуру опроса реализуют аппаратным путём.

Циклический (последовательный) опрос входов системы прерывания в аппаратурном отношении сравнительно прост. Однако время реакции и при этом методе всё-таки велико, особенно при большом числе источников запросов. Поэтому в ряде МП, например работающих в реальном масштабе времени, применяют однотактные схемы.

Схема циклического опроса запросов (источников) прерываний имеет вид: (рис.)‏

Опрос k линий запросов прерывания (или флажков) регистра запросов прерывания производится последовательно (циклически) с помощью n-разрядного счётчика (2n >=k). Счётчик тактируется сигналами генератора тактовых импульсов (ГТИ). Поиск приоритетного запроса прерывания начинается со сброса счётчика и RS-триггера в нулевое состояние, при этом импульсы генератора начинают поступать на счётный вход счётчика.

При помощи дешифратора и элементов И в каждом такте поиска проверяется наличие запроса прерывания, номер которого совпадает с кодом счётчика.

Если на данном входе нет запроса прерывания, то после увеличения состояния счётчика на 1 проверяется следующий по порядку вход. Если же имеется запрос, RS-триггер переключается в 1, при этом в процессор посылается общий сигнал прерывания ОСП и прекращается тактирование счётчика, т.е. завершается цикл просмотра входов системы прерывания.

Содержимое счётчика представляет собой код номера старшего по приоритету выставленного запроса. Этот код используется для формирования начального адреса прерывающей программы.

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

Циклический (последовательный) опрос входов системы прерывания в аппаратурном отношении сравнительно прост. Однако время реакции и при этом методе всё-таки велико, особенно при большом числе источников запросов. Поэтому в ряде МП, например работающих в реальном масштабе времени, применяют однотактные схемы.

Цепочечная однотактная схема ("дейзи-цепочка") позволяет определить номер выставленного запроса старшего приоритета за один такт:

Как и в предыдущей схеме приоритет запросов прерывания уменьшается с возрастанием их номера. Процедура определения приоритетного запроса инициируется сигналом "приоритет", поступающим на цепочку последовательно включённых схем И.

При отсутствии запросов этот сигнал пройдёт через цепочку и ОСП не сформируется.

Если среди выставленных запросов прерывания наибольший приоритет имеет i-й запрос, то распространение сигнала "приоритет" правее схемы И с номером i блокируется. На i-ом выходе цепочечной схемы будет сигнал yi=1, на всех других 0.

В процессор поступит ОСП, при этом шифратор по сигналу yi=1 сформирует код номера i-го запроса, принятого к обслуживанию.

По сигналу процессора "подтверждение прерывания" (на схеме не показан) этот код передаётся в процессор и используется для формирования начального адреса прерывающей программы.

Дополнительную часть схемы, обозначенную пунктиром, мы обсудим чуть позже.

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

При векторном прерывании исключается опрос источников прерывания (флажков регистра запросов).

Прерывание называется векторным, если источник прерывания, выставляя запрос прерывания, посылает в процессор код адреса, по которому расположен соответствующий вектор прерывания во внешней памяти.

Программно-управляемый приоритет позволяет изменять по мере надобности приоритетные соотношения программным путём.

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