60
• Цепочечная структура
В соответствии с рис. 6.6 к каждой ЛЗП (входу системы прерывания) может
быть подключено множество запросчиков ИЗП, объединенных по схеме монтажное
"или". Сигнал "подтверждение прерывания" распространяется по цепочке ИЗП, под-
ключенных к одной ЛЗП. Распространение этого сигнала блокируется ИЗП
j
, выста-
вившим запрос. Получив сигнал "Подтверждение прерывания", ИЗП
j
выставляет на
ШД код адреса вектора прерывания. Таким образом, приоритет подключенных к од-
ной ЛЗП устройств определяется положением ИЗП в цепочке распространения сиг-
нала "Подтверждение прерывания". Это исключает необходимость выполнения про-
цедуры поиска запроса с максимальным приоритетом среди ИЗП, подключенных к
одной ЛЗП.
Если ЛЗП несколько, что обычно имеет место
в реальных системах прерывания
цепочечной структуры, в контроллере прерывания выполняется процедура поиска
возбужденной ЛЗП с максимальным приоритетом, которая аналогична процедуре
поиска запроса с максимальным приоритетом в системе радиальной структуры.
На основании вышеизложенного можно сформулировать последовательность
основных операций по реализации процедуры перехода к прерывающей программе.
При этом предполагается, что состояние возбужденных ЛЗП
фиксируется в разрядах
РгЗП, несмотря на то, что при потенциальном способе задания сигналов запросов
прерывания его наличие не обязательно.
1. При поступлении любого запроса (или нескольких запросов) в РгЗП формиру-
ется сигнал ОСП. Этот сигнал транслируется в процессор, а также инициирует про-
цедуру поиска возбужденной ЛЗП с максимальным приоритетом, результатом вы
-
полнения которой является выбор линии распространения сигнала "Подтверждение
прерывания" (цепочки ИЗП).
2. Процессор заканчивает выполнение текущей команды и посылает в контроллер
сигнал "Подтверждение прерывания" (см. рис. 6.6).
3. Получив этот сигнал, контроллер транслирует его на выбранную цепочку ИЗП.
4. ИЗП, имеющий максимальный приоритет среди устройств, выставивших запрос
на выбранную ЛЗП, блокирует дальнейшее распространение
сигнала "Подтвержде-
ние прерывания" и выставляет на ШД код адреса своего вектора прерывания.
5. Процессор считывает с ШД код адреса вектора прерывания, сохраняет в стеке
вектор текущего состояния прерываемой программы (в простейшем случае только
содержимое счетчика адреса команд) и осуществляет переход к прерывающей про-
грамме. Если вектор текущего состояния прерываемой программы
автоматически
сохраняется только частично, то операции по сохранению его остальных элементов
возлагаются на обработчик (см. рис. 6.2, интервал времени t
з
).
В простых системах прерывания цепочечного типа может присутствовать толь-
ко одна ЛЗП. В этом случае отпадает необходимость выполнения процедуры поиска
ЛЗП с максимальным приоритетом, которая, даже если выполняется аппаратными
средствами, требует сравнительно больших временных затрат. Отпадает необходи-
мость и в контроллере прерываний, поскольку сигнал с ЛЗП может непосредственно
поступать на
соответствующий вход процессора вместо сигнала ОСП. Такие систе-
мы прерывания являются наиболее динамичными даже при достаточно большом
количестве ИЗП.
Уже неоднократно отмечалось, что обязательным компонентом процедуры пе-
рехода к обработчику является операция обнаружения наиболее приоритетного за-
проса прерывания (радиальная структура) или ЛЗП (цепочечная структура), которая
в большинстве случаев выполняется в контроллере
прерываний. Тем самым реали-
зуется система приоритетных соотношений между ИЗП или цепочками ИЗП. Эта
система приоритетных соотношений может быть либо фиксированной, либо изме-
няться программным путем в процессе обработки задачи. В соответствии с этим